.requests-board { min-width:0; }
.requests-intro { position:relative; overflow:hidden; padding:25px; margin:0 0 24px; border:3px solid var(--border,#231c45); box-shadow:inset 2px 2px #fff,5px 5px var(--border,#231c45); background:linear-gradient(115deg,#fff4ce 0%,#edfaff 52%,#f3e4ff 100%); }
.requests-intro::after { content:'✦'; position:absolute; right:25px; top:21px; color:#926bc4; opacity:.2; font:84px/1 var(--body,monospace); pointer-events:none; }
.requests-intro h1 { position:relative; margin:12px 0 15px; padding-right:35px; color:#28477d; font:clamp(16px,2.5vw,23px)/1.7 var(--pixel,monospace); }
.requests-intro p { position:relative; max-width:62ch; margin:0 0 16px; color:#49376b; font:24px/1.45 var(--body,monospace); }
.requests-intro .requests-intro-note { margin:15px 0 0; font-size:21px; color:#5b4775; }
.requests-actions,.requests-tabs { display:flex; flex-wrap:wrap; align-items:center; gap:11px; }
.requests-actions { margin-top:16px; }
.requests-actions .button { min-height:44px; max-width:100%; }
.requests-tabs { margin:23px 0 17px; padding:12px; border:3px solid #453260; background:linear-gradient(105deg,#d4efff,#f3ddff); box-shadow:inset 2px 2px #fff,3px 3px #453260; }
.requests-toolbar { margin-bottom:24px; padding:20px; color:#473362; background:linear-gradient(135deg,#fff9e9,#f3eaff); }
.requests-filters { display:grid; grid-template-columns:minmax(160px,2fr) minmax(130px,1fr) minmax(95px,.6fr) auto; gap:14px; align-items:end; }
.requests-filters label { display:grid; gap:7px; min-width:0; margin:0; color:#533d70; font:22px/1.25 var(--body,monospace); }
.requests-filters :is(input,select) { width:100%; min-width:0; min-height:45px; background:#fffdf5; }
.requests-filters .button { min-height:45px; }
.requests-toolbar .requests-filter-note { margin:13px 0 0; color:#5d4879; font:20px/1.4 var(--body,monospace); }
.requests-toolbar .requests-filter-note button { font:inherit; color:#31598d; text-decoration:underline; text-underline-offset:3px; }
.requests-board .requests-count { margin:0 0 15px; padding:10px 14px; border-left:4px solid #9979bd; background:#fff9e8; color:#594373; font:21px/1.3 var(--body,monospace); }
.requests-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr)); gap:23px; align-items:stretch; padding-bottom:10px; }
.request-card { --request-accent:#7d59a5; --request-tint:#f4eaff; display:flex; flex-direction:column; min-width:0; margin:0; border:3px solid #453260; box-shadow:inset 2px 2px #fff,4px 4px #453260; color:#3c2d58; background:linear-gradient(150deg,#fffbed 45%,var(--request-tint)); overflow-wrap:anywhere; }
.request-type-social { --request-accent:#a24d85; --request-tint:#ffeaf5; }
.request-type-training { --request-accent:#396cb0; --request-tint:#e9f4ff; }
.request-type-exploration { --request-accent:#36786a; --request-tint:#e6faef; }
.request-type-combat { --request-accent:#a6505b; --request-tint:#ffece4; }
.request-card-top { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:10px; padding:12px 15px; border-bottom:2px solid #b69dcc; background:var(--request-tint); }
.request-kind { display:inline-flex; align-items:center; gap:8px; color:var(--request-accent); font:9px/1.6 var(--pixel,monospace); }
.request-status { display:inline-flex; align-items:center; gap:6px; padding:4px 7px; border:1px solid #48816c; color:#265a46; background:#effff4; font:18px/1.2 var(--body,monospace); }
.request-status::before { content:''; width:6px; height:6px; background:currentColor; box-shadow:1px 1px #fff; }
.request-status-full { color:#806018; border-color:#af923d; background:#fff5c9; }
.request-status-closed { color:#665573; border-color:#9989a5; background:#f1eaf4; }
.request-card-body { flex:1; padding:18px 18px 15px; min-width:0; }
.request-card h2 { margin:0 0 15px; color:#304c84; font:11px/1.8 var(--pixel,monospace); }
.request-title-button { padding:0; border:0; background:none; color:inherit; text-align:left; font:inherit; overflow-wrap:anywhere; cursor:pointer; }
.request-title-button:hover { color:#8b468d; text-decoration:underline; text-underline-offset:5px; }
.request-host { display:flex; align-items:center; gap:11px; min-width:0; margin:12px 0 15px; }
.request-portrait,.request-avatar-fallback { flex:0 0 43px; width:43px; height:43px; object-fit:cover; border:2px solid #8f77b3; background:#e4edff; }
.request-avatar-fallback { display:grid; place-items:center; color:#6981b6; }
.request-host>div:last-child { min-width:0; }
.request-host strong { display:block; color:#5e3e7a; font:23px/1.2 var(--body,monospace); }
.request-host small { display:block; margin-top:3px; color:#6c5584; font:18px/1.2 var(--body,monospace); }
.request-card .request-description { margin:0 0 16px; color:#493764; font:23px/1.45 var(--body,monospace); }
.request-facts { display:flex; flex-wrap:wrap; gap:8px; margin:0 0 14px; }
.request-facts>span { display:inline-flex; align-items:center; gap:7px; padding:6px 9px; border:2px solid #b39ec8; color:#493864; background:#fffaf0; font:20px/1.15 var(--body,monospace); }
.request-card .request-availability { margin:0; padding-top:11px; border-top:1px dashed #b49ec4; color:#604c78; font:20px/1.35 var(--body,monospace); }
.request-card-footer { padding:13px 18px 17px; border-top:2px solid #c5b0d6; background:#fff9eb; }
.request-card-footer .requests-actions { margin:0; gap:9px; }
.request-card-footer .button { min-height:42px; padding:10px 12px; font-size:8px; }
.request-card .request-personal-status { margin:0 0 10px; color:#765080; font:20px/1.3 var(--body,monospace); }
.requests-empty { grid-column:1/-1; padding:30px 24px; text-align:center; border:3px dashed #b197cb; background:linear-gradient(120deg,#fff9e7,#eff9ff); }
.requests-empty h2 { margin:12px 0; color:#4b3973; font:12px/1.8 var(--pixel,monospace); }
.requests-empty p { margin:0; color:#685080; font:24px/1.45 var(--body,monospace); }
.requests-empty>span { display:inline-grid; place-items:center; padding:12px; border:2px solid #ab8dcc; color:#647db9; background:#e8f2ff; box-shadow:3px 3px #d3c1e1; }
.requests-more { margin:23px 0; text-align:center; }
.request-modal,.request-form { min-width:0; font-family:var(--body,monospace); }
#modal .request-modal p,#modal .request-form p { max-width:none; font:24px/1.45 var(--body,monospace); }
.request-modal .request-host { padding:13px 16px; border:2px solid #b39bcc; background:linear-gradient(110deg,#e6f8ff,#f2e6ff); }
.request-section { padding:17px 19px; margin:18px 0; border:2px solid #b39bcc; background:linear-gradient(120deg,#fff9e8,#f7eeff); box-shadow:inset 2px 2px #fff; }
.request-section h3 { margin:0 0 12px; color:#63487f; font:11px/1.75 var(--pixel,monospace); }
.request-section p { margin:10px 0 0; white-space:pre-wrap; overflow-wrap:anywhere; }
.request-section p:first-of-type { margin-top:0; }
.request-information { display:grid; grid-template-columns:1fr 1fr; gap:13px; }
.request-information>div { min-width:0; padding:13px; border:2px solid #bbabd0; background:#f4eeff; }
.request-information h3 { margin:0 0 8px; color:#624679; font:9px/1.7 var(--pixel,monospace); }
.request-people { list-style:none; margin:0; padding:0; }
.request-person { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:8px 15px; padding:15px 0; border-bottom:1px dashed #b49dcc; }
.request-person:first-child { padding-top:0; }
.request-person:last-child { padding-bottom:0; border-bottom:0; }
.request-person strong { color:#4f3b73; font:23px/1.3 var(--body,monospace); }
.request-person small { display:block; color:#735a84; font:19px/1.3 var(--body,monospace); }
.request-person .request-response-message { grid-column:1/-1; margin:0; font:22px/1.4 var(--body,monospace); }
.request-person .requests-actions { grid-column:1/-1; margin:3px 0 0; }
.request-response-status { align-self:start; padding:4px 8px; border:1px solid #ae96c1; color:#654681; background:#f3e9ff; font:18px/1.2 var(--body,monospace); }
.request-response-accepted { color:#2b6651; border-color:#82af94; background:#e6f9ed; }
.request-response-withdrawn,.request-response-declined { color:#715568; border-color:#bba2b3; background:#f5eaf0; }
.request-form { display:grid; gap:17px; }
.request-form>label,.request-fields>label { display:grid; gap:7px; min-width:0; margin:0; color:#634781; font:22px/1.4 var(--body,monospace); }
.request-form :is(input,select,textarea) { width:100%; min-width:0; }
.request-fields { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.request-fields.request-level-fields { grid-template-columns:repeat(3,minmax(0,1fr)); }
.request-form label small { color:#765f87; font:19px/1.35 var(--body,monospace); }
.request-form .request-help,.request-modal .request-help { padding:12px 15px; border-left:4px solid #8d71b6; color:#5d437d; background:#f0e9fc; }
.request-form label.request-check { display:flex; align-items:flex-start; gap:11px; }
.request-check input { width:21px; height:21px; flex:0 0 21px; margin:4px 0 0; accent-color:#8154a2; }
.request-form .modal-actions { margin-top:5px; }
.request-modal :is(button,a):focus-visible,.requests-board :is(button,a):focus-visible { outline:3px solid #245fab; outline-offset:4px; }
@media(max-width:1050px) {
  .requests-filters { grid-template-columns:minmax(150px,1.4fr) minmax(120px,1fr); }
}
@media(max-width:560px) {
  .requests-intro { padding:19px 16px; }
  .requests-intro h1 { padding-right:15px; font-size:16px; }
  .requests-intro::after { font-size:64px; right:15px; }
  .requests-toolbar { padding:15px; }
  .requests-filters,.request-fields,.request-fields.request-level-fields,.request-information { grid-template-columns:1fr; }
  .requests-tabs { gap:8px; padding:10px; }
  .requests-tabs .button { flex:1 1 125px; padding:11px 9px; font-size:8px; }
  .request-card-body { padding:17px 15px; }
  .request-card-footer { padding:13px 15px 16px; }
  .request-section { padding:15px 12px; }
  .request-person { grid-template-columns:1fr; }
  .request-response-status { justify-self:start; }
}
