:root { --bg:#eef3fb; --surface:#ffffff; --surface-alt:#f6faff; --text:#172436; --text-soft:#5a6b84; --primary:#1f5f99; --primary-dark:#194f80; --primary-soft:#e9f2ff; --accent:#0aa4a3; --danger:#b4232c; --danger-soft:#fdecee; --success:#0f7a4b; --success-soft:#e9f8f0; --warning:#8a5b00; --warning-soft:#fff8e8; --border:#d7e2f1; --ring:rgba(31,95,153,.24); --shadow:0 10px 28px rgba(15,33,63,.10); --radius:12px; }
* { box-sizing:border-box; font-family:"Inter","Segoe UI",Arial,sans-serif; }
body { margin:0; background:radial-gradient(circle at top,#f7fbff,#eef3fb 58%,#eaf1fb 100%); color:var(--text); line-height:1.55; }
a { color:var(--primary); text-decoration:none; }
a:hover { text-decoration:underline; }
h1,h2,h3 { margin:0 0 .5rem; color:var(--text); line-height:1.25; }
p { margin:.25rem 0 .75rem; }
ul,ol { margin:.35rem 0 0; padding-left:1.15rem; }
li { margin:.18rem 0; }
label { display:grid; gap:.35rem; font-weight:600; color:var(--text); }
main { min-height:calc(100vh - 160px); }
.top-nav { background:linear-gradient(95deg,#0c3158,#16538a 54%,#1e6eae); color:#fff; border-bottom:1px solid rgba(255,255,255,.22); box-shadow:0 10px 20px rgba(10,38,70,.28); position:sticky; top:0; z-index:100; }
.top-nav-shell { max-width:1240px; margin:0 auto; padding:.8rem 1rem; display:flex; align-items:center; justify-content:space-between; gap:1rem; flex-wrap:wrap; }
.menu-toggle { display:none; width:40px; height:40px; border:1px solid rgba(255,255,255,.35); border-radius:9px; background:rgba(255,255,255,.08); padding:.45rem; margin:0; cursor:pointer; }
.menu-toggle span { display:block; width:100%; height:2px; background:#fff; border-radius:999px; }
.menu-toggle span + span { margin-top:6px; }
.brand-wrap { display:flex; align-items:center; min-width:0; padding:0; margin:0; background:transparent; border:0; border-radius:0; box-shadow:none; }
.logo-slot { display:block; height:40px; width:auto; max-width:240px; padding:0; margin:0; background:transparent; border:0; border-radius:0; box-shadow:none; object-fit:contain; }
.nav-links { list-style:none; display:flex; align-items:center; flex-wrap:wrap; gap:.45rem .68rem; margin:0; padding:0; }
.nav-links li { margin:0; }
.nav-links a { color:#fff; display:inline-block; padding:.45rem .72rem; border-radius:9px; border:1px solid transparent; font-weight:600; position:relative; }
.nav-help-link { display:inline-flex !important; align-items:center; justify-content:center; min-width:2.2rem; }
.nav-help-icon { display:inline-flex; width:1rem; height:1rem; line-height:1; }
.nav-help-icon svg { display:block; width:100%; height:100%; fill:currentColor; }
.inbox-link { display:inline-flex !important; align-items:center; gap:.38rem; }
.nav-inbox-badge { min-width:1.15rem; height:1.15rem; border-radius:999px; background:#fff; color:#0f4d84; font-size:.68rem; font-weight:700; line-height:1; display:inline-flex; align-items:center; justify-content:center; padding:0 .28rem; border:1px solid rgba(15,77,132,.25); }
.nav-links a:hover { background:rgba(255,255,255,.14); border-color:rgba(255,255,255,.26); text-decoration:none; }
.nav-label { font-size:.7rem; color:#d3e8ff; text-transform:uppercase; font-weight:700; letter-spacing:.09em; margin:0 .1rem 0 .4rem; }
.nav-user-meta { display:grid; gap:.05rem; justify-items:start; line-height:1.15; }
.nav-user-role,.nav-user-team { font-size:.72rem; color:#d3e8ff; font-weight:700; text-transform:uppercase; letter-spacing:.06em; }
.has-tooltip::after { content:attr(data-tooltip); position:absolute; left:50%; bottom:calc(100% + 8px); transform:translateX(-50%); background:#0f2846; color:#fff; border:1px solid rgba(255,255,255,.18); border-radius:6px; box-shadow:0 8px 20px rgba(0,0,0,.28); font-size:.73rem; line-height:1.25; width:max-content; max-width:220px; white-space:normal; padding:.4rem .5rem; opacity:0; pointer-events:none; transition:opacity .14s ease-in-out; }
.has-tooltip:hover::after { opacity:1; }
.container { max-width:1080px; margin:2rem auto; padding:0 1rem 1rem; }
.game-requests-container { max-width:1320px; }
.narrow { max-width:560px; }
.card { background:var(--surface); border:1px solid var(--border); border-radius:var(--radius); padding:1rem 1.1rem; box-shadow:var(--shadow); margin-bottom:1rem; }
.card > :first-child { margin-top:0; }
.form,.form-grid { display:grid; gap:.75rem; }
.form-grid.two-col-grid { grid-template-columns:repeat(auto-fit,minmax(230px,1fr)); }
input,select,button,textarea { width:100%; padding:.65rem .72rem; border-radius:9px; border:1px solid var(--border); background:#fff; font-size:.95rem; color:var(--text); }
textarea { min-height:90px; resize:vertical; }
input:focus,select:focus,textarea:focus,button:focus { outline:2px solid var(--ring); outline-offset:1px; }
button { width:auto; background:var(--primary); color:#fff; border:1px solid transparent; font-weight:600; cursor:pointer; transition:background .15s ease,border-color .15s ease,transform .15s ease; }
button:hover { background:var(--primary-dark); transform:translateY(-1px); }
button:disabled { opacity:.6; cursor:not-allowed; transform:none; }
button.danger { background:var(--danger); }
button.danger:hover { background:#971d24; }
.subtitle { margin:.1rem 0 1rem; color:var(--text-soft); }
.alert { padding:.75rem .85rem; border-radius:9px; margin-bottom:1rem; border:1px solid transparent; font-weight:600; }
.alert.error { background:var(--danger-soft); border-color:#f5c8cd; color:var(--danger); }
.alert.success { background:var(--success-soft); border-color:#bde6ce; color:var(--success); }
.alert.warning { background:var(--warning-soft); border-color:#f1dfb2; color:var(--warning); }
.data-table,table,.export-friendly-table { width:100%; border-collapse:collapse; background:#fff; }
.data-table th,.data-table td,th,td { padding:.62rem .52rem; border-bottom:1px solid var(--border); vertical-align:top; text-align:left; }
th { background:var(--surface-alt); font-size:.87rem; text-transform:uppercase; letter-spacing:.03em; color:#3a516f; }
tr:hover td { background:#f8fbff; }
.export-friendly-table { font-size:.92rem; }
.export-friendly-table th,.export-friendly-table td { border:1px solid var(--border); padding:.5rem; }
.inline-form { display:flex; gap:.45rem; align-items:flex-end; flex-wrap:wrap; }
.inline-form input,.inline-form select,.inline-form button { width:auto; }
.button-link { display:inline-flex; align-items:center; justify-content:center; padding:.55rem .8rem; border-radius:9px; background:var(--primary); color:#fff; text-decoration:none; font-weight:600; border:1px solid transparent; transition:background .15s ease,transform .15s ease; }
.button-link:hover { background:var(--primary-dark); text-decoration:none; transform:translateY(-1px); }
.button-link.secondary { background:#fff; color:var(--primary); border-color:var(--border); }
.button-link.secondary:hover { background:var(--primary-soft); }
.quick-links { display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:.75rem; }
.pagination { margin-top:1rem; display:flex; gap:.75rem; align-items:center; flex-wrap:wrap; }
.footer { text-align:center; color:#5b6f89; margin:2.4rem 0 1.2rem; }
.badge { display:inline-block; padding:.15rem .45rem; border-radius:999px; font-size:.76rem; font-weight:700; background:var(--primary-soft); color:var(--primary); border:1px solid #cfe0f9; }
.table-scroll { overflow-x:auto; border:1px solid var(--border); border-radius:10px; }
.open-game-requests-table { font-size:.9rem; }
.stack { display:grid; gap:1rem; }
.muted { color:var(--text-soft); }
.switch-row { display:flex; align-items:center; justify-content:space-between; gap:.9rem; }
.switch { position:relative; display:inline-flex; width:52px; height:30px; flex-shrink:0; }
.switch input { position:absolute; opacity:0; width:0; height:0; }
.switch-slider { position:absolute; inset:0; border-radius:999px; background:#b8c4d6; transition:background .18s ease; cursor:pointer; }
.switch-slider::before { content:''; position:absolute; left:4px; top:4px; width:22px; height:22px; border-radius:50%; background:#fff; transition:transform .18s ease; box-shadow:0 1px 4px rgba(0,0,0,.25); }
.switch input:checked + .switch-slider { background:var(--accent); }
.switch input:checked + .switch-slider::before { transform:translateX(22px); }
.dashboard-team-title-wrap { display:flex; align-items:flex-end; justify-content:space-between; gap:.75rem; flex-wrap:wrap; }
.dashboard-team-title { margin:0; font-size:1.8rem; }
.dashboard-team-meta { display:block; margin-top:.2rem; font-size:1rem; color:var(--text-soft); font-weight:700; text-transform:uppercase; letter-spacing:.02em; }
.dashboard-change-link { width:auto; padding:0; border:0; background:transparent; color:var(--primary); font-size:.95rem; font-weight:700; text-decoration:underline; text-transform:lowercase; }
.dashboard-change-link:hover { background:transparent; color:var(--primary-dark); transform:none; }
@media (max-width:820px) { .container { margin:1.4rem auto; } .card { padding:.9rem; } .inline-form { align-items:stretch; } .inline-form input,.inline-form select,.inline-form button { width:100%; } .top-nav-shell { padding:.75rem .8rem; align-items:flex-start; } .menu-toggle { display:inline-block; position:relative; z-index:2; } .brand-wrap { flex:1; min-width:0; width:auto; } .nav-links { width:100%; display:none; margin-top:.35rem; } .top-nav-shell.menu-open .nav-links { display:grid; gap:.35rem; } .nav-links a { display:block; width:100%; } .nav-label { margin-left:0; } .has-tooltip::after { display:none; } }
@media print { .top-nav,.button-link,button { display:none!important; } .container { max-width:100%; margin:0; padding:0; } .card { box-shadow:none; border:none; padding:0; } tr:hover td { background:transparent; } }
.calendar-toolbar { display:flex; align-items:center; justify-content:space-between; gap:.6rem; margin:.65rem 0; }
.calendar-toolbar button.secondary { background:#fff; color:var(--primary); border-color:var(--border); }
.availability-calendar { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:.35rem; }
.calendar-weekday { font-size:.78rem; text-transform:uppercase; letter-spacing:.04em; color:var(--text-soft); font-weight:700; padding:.35rem .2rem; text-align:center; }
.calendar-day { min-height:86px; border:1px solid var(--border); border-radius:10px; padding:.35rem; background:#fff; display:flex; flex-direction:column; gap:.22rem; cursor:pointer; position:relative; overflow:hidden; }
.calendar-day.outside-month { background:#f8fbff; cursor:default; }
.calendar-day.open-date:hover,.calendar-day:not(.outside-month):hover { border-color:#aac7ee; box-shadow:0 0 0 2px rgba(31,95,153,.08) inset; }
.calendar-day-header { display:flex; align-items:center; justify-content:space-between; gap:.35rem; }
.calendar-day-number { font-weight:700; font-size:.88rem; color:#35516f; position:relative; z-index:1; }
.calendar-day-designation { font-size:.74rem; font-weight:700; color:#35516f; position:relative; z-index:1; }
.calendar-day.selected-date { border-color:var(--accent); box-shadow:0 0 0 2px rgba(10,164,163,.12) inset; }
.calendar-item { border:0; border-radius:999px; padding:.13rem .42rem; text-align:left; font-size:.7rem; font-weight:700; width:fit-content; background:#e9f2ff; color:#1f5f99; }
.calendar-day-detail { margin-top:.2rem; font-size:.74rem; font-weight:700; line-height:1.25; white-space:normal; color:inherit; position:relative; z-index:1; }
.calendar-day.day-open,.calendar-day.day-request,.calendar-day.day-home-request,.calendar-day.day-confirmed,.calendar-day.game-home,.calendar-day.game-away,.calendar-day.day-cancelled { color:#17324d; }
.day-open,.chip-open { background:#dff1ff; color:#1b5fae; }
.day-home-request,.chip-home-request { background:#e7f0ff; color:#1e4f93; border-color:#b8cff2; }
.day-request,.chip-request { background:#fff2dd; color:#8a5b00; }
.calendar-day.day-home-request { border-color:#f3ddb0; box-shadow:inset 0 0 0 1px #f3ddb0; }
.day-confirmed,.game-home,.chip-home { background:#8fd3ac; color:#0f4c2e; border-color:#62b888; }
.game-away,.chip-away { background:#dff2e5; color:#1f6f41; border-color:#b8dfc6; }
.day-cancelled,.chip-cancelled { background:#fff8cc; color:#7a5d00; }
.calendar-legend { display:flex; flex-wrap:wrap; gap:.35rem .45rem; margin:.35rem 0 .7rem; }
.calendar-chip { padding:.16rem .52rem; border-radius:999px; font-size:.72rem; font-weight:700; }
.calendar-help { margin-top:.7rem; }
.calendar-action-popup { position:fixed; inset:0; background:rgba(16,27,40,.32); z-index:90; display:flex; align-items:center; justify-content:center; padding:1rem; }
.calendar-action-popup[hidden] { display:none; }
.calendar-action-popup-card { width:min(360px,100%); position:relative; background:#fff; border:1px solid var(--border); border-radius:12px; box-shadow:0 20px 50px rgba(11,29,51,.22); padding:1rem; display:grid; gap:.8rem; }
.calendar-action-popup-title { font-weight:700; color:#26415f; }
.calendar-action-popup-links { display:grid; gap:.5rem; }
.calendar-popup-close { position:absolute; top:.45rem; right:.45rem; width:1.9rem; height:1.9rem; border:1px solid var(--border); border-radius:999px; background:#fff; color:#26415f; font-size:1.2rem; line-height:1; padding:0; display:inline-flex; align-items:center; justify-content:center; cursor:pointer; }
.calendar-popup-close:hover { background:var(--primary-soft); }
.calendar-item.game-home,.calendar-item.game-away { width:100%; border-radius:7px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.request-popup-card { width:min(680px,100%); max-height:90vh; overflow:auto; }
.calendar-request-list { display:grid; gap:.75rem; }
.calendar-request-item { border:1px solid var(--border); border-radius:10px; background:var(--surface-alt); padding:.7rem; display:grid; gap:.5rem; }
.calendar-request-badge { margin-top:auto; align-self:flex-start; padding:.15rem .45rem; border-radius:999px; border:1px solid #f3ddb0; background:#fff2dd; color:#8a5b00; font-size:.72rem; font-weight:700; text-transform:uppercase; letter-spacing:.03em; cursor:pointer; }
.calendar-request-badge:hover { background:#ffe7c5; }
.request-detail-link { justify-self:flex-start; }

.badge.pending-badge { background:#fff2dd; color:#8a5b00; border-color:#f3ddb0; }
.badge.rejected-badge { background:#fdecee; color:#b4232c; border-color:#f4c3c7; }
.map-toolbar { display:flex; justify-content:space-between; align-items:flex-end; gap:.75rem; flex-wrap:wrap; }
.opponent-map-filter-form { display:flex; gap:.5rem; align-items:flex-end; flex-wrap:wrap; }
.opponent-map-filter-form label { display:grid; gap:.2rem; font-size:.78rem; color:#3a516f; font-weight:700; }
.opponent-map-filter-form input,.opponent-map-filter-form select { min-width:120px; }
.map-filter-summary { margin:.15rem 0 0; }
.opponent-map-container { max-width:1520px; }
.team-map { width:100%; height:68vh; min-height:430px; border:1px solid var(--border); border-radius:10px; }
.opponent-map-layout { display:grid; grid-template-columns:minmax(0,1fr) minmax(340px,420px) minmax(240px,280px); gap:1rem; align-items:stretch; }
.open-dates-panel { border:1px solid var(--border); border-radius:10px; background:var(--surface-alt); padding:.75rem; min-height:520px; max-height:78vh; overflow:auto; position:sticky; top:78px; display:grid; gap:.65rem; align-content:start; }
.opponent-map-calendar-panel { position:sticky; top:78px; align-self:start; }
.opponent-map-calendar-toolbar { margin:.1rem 0 .55rem; }
.opponent-map-calendar-toolbar strong { flex:1; text-align:center; font-size:.82rem; }
.opponent-map-mini-calendar { display:grid; gap:.45rem; max-height:78vh; overflow:auto; }
.opponent-map-calendar-legend { margin:.15rem 0 .55rem; }
.opponent-map-mini-calendar .mini-month-title { font-size:.72rem; }
.opponent-map-mini-calendar .mini-day { font-size:.62rem; border-radius:3px; }
.opponent-map-mini-calendar .mini-day:not(.empty):not(.day-open):not(.day-request):not(.day-confirmed) { background:#f8fbff; color:#a6b3c4; border:1px solid #eaf1f8; }
.opponent-map-mini-calendar .mini-day.day-open::before,.opponent-map-mini-calendar .mini-day.day-request::before,.opponent-map-mini-calendar .mini-day.day-confirmed::before { display:none; }
.opponent-map-mini-calendar .mini-day.day-open,.opponent-map-mini-calendar .mini-day.day-request,.opponent-map-mini-calendar .mini-day.day-confirmed { border:1px solid #4f6f93; box-shadow:inset 0 0 0 1px rgba(16,35,58,.18); }
.opponent-map-mini-calendar .mini-day.day-open { background:#dff1ff; color:#1b5fae; }
.opponent-map-mini-calendar .mini-day.day-request { background:#fff2dd; color:#8a5b00; }
.opponent-map-mini-calendar .mini-day.day-confirmed { background:#8fd3ac; color:#0f4c2e; }
.map-panel-intro { margin:0; }
.map-detail-card { border:1px solid var(--border); border-radius:8px; background:#fff; padding:.65rem; }
.map-open-dates-card { min-height:320px; }
.map-detail-card h3,.map-detail-card h4 { margin:0 0 .4rem; }
.map-detail-content { font-size:.92rem; }
.map-detail-line { margin:.15rem 0; word-break:break-word; }
.map-school-card { background:#eef5ff; }
.open-dates-list { margin:.4rem 0 0; display:grid; gap:.45rem; }
.open-date-row { display:flex; align-items:center; justify-content:space-between; gap:.6rem; border:1px solid var(--border); border-radius:8px; padding:.45rem .5rem; background:#fff; }
.open-date-text { min-width:0; font-size:.9rem; }
.open-date-action-form { margin:0; }
.open-date-action-form button,.open-date-review-link { white-space:nowrap; }
.invite-coach-button { width:100%; margin-top:.75rem; font-size:1.05rem; font-weight:700; padding:.85rem 1rem; }
.request-game-popup[hidden] { display:none; }
.request-game-popup { position:fixed; inset:0; z-index:1200; }
.request-game-popup-overlay { position:absolute; inset:0; background:rgba(16,24,40,.45); }
.request-game-popup-dialog { position:relative; z-index:1; width:min(520px,92vw); margin:12vh auto 0; background:#fff; border:1px solid var(--border); border-radius:12px; padding:1rem; box-shadow:0 20px 40px rgba(15,23,42,.22); display:grid; gap:.55rem; }
.game-request-counter-dialog { width:min(1100px,95vw); max-height:88vh; overflow:auto; }
.counter-calendar-grid { display:grid; grid-template-columns:1fr 1.55fr; gap:.75rem; }
.counter-home-calendar { display:grid; gap:.55rem; max-height:62vh; overflow:auto; }
.counter-month-grid { gap:4px; }
.mini-weekdays { display:grid; grid-template-columns:repeat(7,1fr); gap:2px; font-size:.62rem; font-weight:700; color:#5f7490; text-transform:uppercase; }
.mini-weekdays span { text-align:center; }
.counter-home-day { border:1px solid #d3dce8; border-radius:6px; min-height:96px; background:#f8fbff; padding:.22rem; display:grid; align-content:start; gap:.2rem; }
.counter-home-day.day-open { background:#eef9f1; border-color:#97d2ae; }
.counter-home-day.day-confirmed { background:#e7f3ea; border-color:#8bc6a6; }
.counter-home-day.day-cancelled { background:#fff7de; border-color:#ecd79a; }
.counter-home-day.day-current-request { background:#fff2dd; border-color:#f3b66b; box-shadow:inset 0 0 0 1px rgba(172,94,0,.22); }
.counter-home-day.selectable { cursor:pointer; border-color:#2e6db6; }
.counter-home-day.selectable.active { background:#2e6db6; border-color:#1f4f86; color:#fff; }
.counter-home-day.day-current-request.selectable.active { background:#fff2dd; border-color:#f3b66b; color:#8a5b00; box-shadow:inset 0 0 0 2px rgba(172,94,0,.3); }
.counter-home-day-number { font-weight:700; font-size:.8rem; color:#1f3551; }
.counter-home-day.selectable.active .counter-home-day-number,.counter-home-day.selectable.active .counter-home-details,.counter-home-day.selectable.active .counter-open-slots { color:#fff; }
.counter-home-day.day-current-request.selectable.active .counter-home-day-number,.counter-home-day.day-current-request.selectable.active .counter-home-details,.counter-home-day.day-current-request.selectable.active .counter-open-slots { color:#8a5b00; }
.counter-home-details { margin:0; padding-left:.85rem; font-size:.63rem; line-height:1.25; color:#2f4763; display:grid; gap:.1rem; }
.counter-home-details li { margin:0; }
.counter-open-slots { margin:0; padding-left:.85rem; font-size:.63rem; line-height:1.25; color:#2f4763; display:grid; gap:.1rem; }
.counter-open-slots li { margin:0; }
.counter-open-slot { width:100%; border:1px solid #2e6db6; background:#fff; color:#1f4f86; border-radius:4px; font-size:.63rem; line-height:1.1; padding:.16rem .25rem; cursor:pointer; text-align:left; }
.counter-open-slot:hover { background:#e9f3ff; }
.counter-open-slot.active { background:#2e6db6; color:#fff; }
.counter-calendar-nav { display:flex; align-items:center; justify-content:space-between; gap:.4rem; }
.counter-calendar-nav-label { font-size:.72rem; font-weight:700; color:#3a516f; text-transform:uppercase; letter-spacing:.03em; }
.counter-calendar-nav .button-link { padding:.2rem .45rem; font-size:.68rem; }
@media (max-width:900px) { .counter-calendar-grid { grid-template-columns:1fr; } }
.request-game-popup-dialog h3 { margin:0 0 .2rem; }
.request-game-popup-dialog p { margin:0; }
.request-game-popup-dialog input { width:100%; }
.request-game-popup-dialog select { width:100%; }
.request-game-popup-dialog textarea { width:100%; min-height:92px; resize:vertical; }
.request-game-popup-actions { display:flex; gap:.55rem; justify-content:flex-end; margin-top:.2rem; }
.open-date-review-link { background:#fff2dd; color:#8a5b00; border-color:#f3ddb0; }
.open-date-review-link:hover { background:#ffe7c5; }
.history-cards { display:grid; gap:.45rem; margin-top:.15rem; }
.history-card { border:1px solid var(--border); border-radius:8px; background:var(--surface-alt); padding:.5rem; display:grid; gap:.25rem; }
.history-card-title { margin:0; font-size:.95rem; }
.history-card-line { margin:0; font-size:.86rem; }
.history-card-link { justify-self:start; margin-top:.15rem; }
.open-dates-button { margin-top:.55rem; width:auto; }
.opponent-search-container { max-width:1760px; }
.opponent-search-layout { display:grid; grid-template-columns:320px minmax(0,1fr); gap:1rem; align-items:start; }
.opponent-search-filters { position:sticky; top:84px; }
.opponent-search-filter-form { grid-template-columns:1fr; }
.opponent-search-filter-form button { width:100%; }
.opponent-results-content { display:grid; grid-template-columns:minmax(0,1fr) 200px; gap:.75rem; align-items:start; }
.opponent-results-table-wrap { min-width:0; }
.opponent-slots-table { min-width:620px; }
.opponent-slots-table th,.opponent-slots-table td { font-size:.66rem; padding:.25rem .2rem; white-space:nowrap; }
.opponent-team-cell { min-width:250px; white-space:normal !important; line-height:1.35; }
.opponent-team-name { font-weight:700; margin-bottom:.1rem; }
.request-game-form textarea { min-height:120px; font-size:.78rem; }
.opponent-mini-calendar-wrap { display:grid; gap:.35rem; }
.opponent-mini-calendar-label { font-size:.78rem; font-weight:700; text-transform:uppercase; letter-spacing:.03em; color:#3a516f; }
.opponent-mini-calendar { border:1px solid var(--border); border-radius:10px; background:var(--surface-alt); padding:.45rem; display:grid; gap:.45rem; max-height:70vh; overflow:auto; }
.mini-month { display:grid; gap:.2rem; }
.mini-month-title { font-size:.66rem; font-weight:700; color:#3a516f; text-transform:uppercase; letter-spacing:.04em; }
.mini-month-grid { display:grid; grid-template-columns:repeat(7,1fr); gap:2px; }
.mini-day { width:100%; aspect-ratio:1/1; border-radius:2px; background:#e8edf6; display:flex; align-items:center; justify-content:center; font-size:.65rem; color:#2a3443; line-height:1; }
.mini-day.empty { background:transparent; }
.mini-day.has-game { background:#16a34a; }
.mini-day.has-request { background:#2563eb; }
.mini-day.has-game,.mini-day.has-request { color:#fff; font-weight:700; }
@media (max-width:1200px) { .opponent-map-layout { grid-template-columns:minmax(0,1fr) minmax(300px,360px); } .opponent-map-calendar-panel { grid-column:1 / -1; position:static; } .opponent-map-mini-calendar { grid-template-columns:repeat(auto-fit,minmax(120px,1fr)); max-height:none; } }
@media (max-width:980px) { .opponent-map-layout { grid-template-columns:minmax(0,1fr); } .open-dates-panel { min-height:auto; max-height:none; position:static; top:auto; } .opponent-map-calendar-panel { position:static; } }
@media (max-width:980px) { .opponent-search-layout { grid-template-columns:280px minmax(0,1fr); } .opponent-results-content { grid-template-columns:minmax(0,1fr); } .opponent-mini-calendar { max-height:none; } }
@media (max-width:760px) { .opponent-map-layout { grid-template-columns:1fr; gap:0; border:1px solid var(--border); border-radius:10px; overflow:hidden; } .team-map { height:52vh; min-height:320px; border:0; border-bottom:1px solid var(--border); border-radius:0; } .open-dates-panel { position:static; border:0; border-radius:0; min-height:0; max-height:none; top:auto; overflow:visible; } .opponent-map-calendar-panel .map-detail-card { border:0; border-top:1px solid var(--border); border-radius:0; } .open-date-row { flex-wrap:wrap; align-items:flex-start; } .open-date-action-form,.open-date-review-link { width:100%; } .open-date-action-form button,.open-date-review-link { width:100%; text-align:center; } .map-open-dates-card { min-height:0; } .opponent-search-layout { grid-template-columns:1fr; } .opponent-search-filters { position:static; } }
@media (max-width:760px) { .opponent-map-filter-form { width:100%; } .opponent-map-filter-form label { flex:1 1 46%; } .opponent-map-filter-form button { width:100%; } }
.general-header-row { display:flex; align-items:center; justify-content:space-between; gap:.75rem; margin-bottom:.35rem; }
.general-mail-table { table-layout:fixed; }
.general-mail-table th,.general-mail-table td { font-size:.86rem; }
.general-mail-table th:nth-child(1) { width:20%; }
.general-mail-table th:nth-child(2) { width:24%; }
.general-mail-table th:nth-child(3) { width:38%; }
.general-mail-table th:nth-child(4) { width:18%; }
.general-mail-table th:nth-child(5) { width:52px; text-align:center; }
.general-mail-row { cursor:pointer; }
.general-mail-preview { font-weight:400; color:var(--text-soft); }
.game-request-inbox-table th,.game-request-inbox-table td { font-size:.86rem; }
.thread-delete-col { text-align:center; white-space:nowrap; }
.thread-delete-form { margin:0; }
.thread-action-form { margin:0; }
.thread-delete-button { width:30px; height:30px; padding:0; border-radius:999px; border:1px solid #f4c3c7; background:#fff; color:var(--danger); font-size:1rem; line-height:1; display:inline-flex; align-items:center; justify-content:center; cursor:pointer; }
.thread-delete-button:hover { background:#fdecee; color:var(--danger); transform:none; }
.thread-mark-unread-form { margin-top:.35rem; }
.thread-mark-unread-button { width:30px; height:30px; padding:0; border-radius:999px; border:1px solid #bad3f7; background:#fff; color:#1b4f8a; font-size:1rem; line-height:1; display:inline-flex; align-items:center; justify-content:center; cursor:pointer; }
.thread-mark-unread-button:hover { background:#e3f0ff; color:#1b4f8a; transform:none; }
.typeahead-wrap { position:relative; }
.typeahead-results { position:absolute; top:calc(100% + 4px); left:0; right:0; z-index:3; border:1px solid var(--border); border-radius:9px; background:#fff; box-shadow:var(--shadow); max-height:260px; overflow:auto; display:grid; }
.typeahead-results[hidden] { display:none; }
.typeahead-item { width:100%; text-align:left; border:0; border-bottom:1px solid #ebf1fa; border-radius:0; background:#fff; color:var(--text); font-weight:500; padding:.55rem .65rem; }
.typeahead-item:last-child { border-bottom:0; }
.typeahead-item:hover { background:#f4f8ff; color:var(--text); transform:none; }
.typeahead-item:disabled { opacity:1; color:var(--text-soft); cursor:default; }
.general-thread-modal { width:min(820px,94vw); max-height:88vh; overflow:auto; }
.general-thread-messages { display:grid; gap:.55rem; max-height:50vh; overflow:auto; margin-bottom:.6rem; }
.general-thread-message { border:1px solid var(--border); border-radius:10px; padding:.55rem .62rem; background:#fff; display:grid; gap:.1rem; }
.general-thread-message.message-incoming { background:#f3f8ff; }
.general-thread-message.message-outgoing { background:#eefbf8; }
.unread-badge { background:#e3f0ff; border-color:#bad3f7; color:#1b4f8a; }
@media (max-width:760px) { .general-mail-table th:nth-child(2),.general-mail-table td:nth-child(2) { display:none; } .general-mail-table th:nth-child(5),.general-mail-table td:nth-child(5) { width:40px; } }

.nav-help-link { display:inline-flex !important; align-items:center; gap:.38rem; }
.nav-help-icon { display:inline-flex; align-items:center; justify-content:center; font-size:.9rem; line-height:1; }
.help-intro { margin-top:.15rem; }
