@import url("https://fonts.googleapis.com/css2?family=Big+Shoulders+Display:wght@700;800;900&family=Inter:wght@400;500;600;700;800&display=swap");:root{color-scheme:dark;--ink:#dce6f2;--muted:#7a8aa0;--line:#223047;--surface:#131a26;--surface-2:#0a0e17;--surface-3:#1b2536;--accent:#3fc8ff;--accent-dark:#1f9bd4;--accent-ink:#051822;--accent-glow:rgba(63,200,255,0.35);--brass:#c9a468;--brass-dark:#8a6d3f;--danger:#f87171;--danger-bg:#3b1418;--warn:#fbbf24;--warn-bg:#2e2009;--ok:#4ade80;--ok-bg:#0e2818;--blue:#818cf8;--purple:#c084fc;--font-display:"Big Shoulders Display",Inter,Segoe UI,Arial,sans-serif;font-family:Inter,Segoe UI,Arial,sans-serif}html.light{color-scheme:light;--ink:#0f1c2b;--muted:#55677c;--line:#c2d0dd;--surface:#ffffff;--surface-2:#eef3f8;--surface-3:#e2eaf2;--accent:#0e7fab;--accent-dark:#0a5f80;--accent-ink:#ffffff;--accent-glow:rgba(14,127,171,0.25);--brass:#96703a;--brass-dark:#6e5228;--danger:#dc2626;--danger-bg:#fee2e2;--warn:#d97706;--warn-bg:#fef3c7;--ok:#16a34a;--ok-bg:#dcfce7;--blue:#4f46e5;--purple:#7c3aed}html.light button.secondary{background:#e2eaf2;color:#0f1c2b;border:1px solid #c2d0dd}html.light button.secondary:hover{background:#d3e0ec}html.light input,html.light select,html.light textarea{background:#ffffff;color:#0f1c2b;border-color:#c2d0dd}*{box-sizing:border-box}[hidden]{display:none!important}body{margin:0;min-height:100vh;background:var(--surface-2);color:var(--ink)}button,input,select,textarea{font:inherit}button{border:0;border-radius:6px;background:var(--accent);color:var(--accent-ink);padding:.7rem .95rem;cursor:pointer;font-weight:700;transition:background .15s,box-shadow .15s,transform .1s}button:hover{background:var(--accent-dark);box-shadow:0 0 16px var(--accent-glow)}button:active{transform:translateY(1px)}button.secondary{background:var(--surface-3);color:var(--ink);border:1px solid var(--line)}button.secondary:hover{box-shadow:none;background:var(--surface)}button.danger{background:var(--danger);color:var(--accent-ink)}button.danger:hover{box-shadow:0 0 16px rgba(248,113,113,.35)}button.compact{padding:.42rem .62rem;font-size:.82rem}button:disabled{cursor:not-allowed;opacity:.48}button.icon-button{width:32px;height:32px;padding:0;font-size:.8rem}input,select,textarea{width:100%;border:1px solid var(--line);border-radius:6px;padding:.65rem .75rem;background:var(--surface-3);color:var(--ink);transition:border-color .15s,box-shadow .15s}input:focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-glow);outline:none}input::placeholder,textarea::placeholder{color:var(--muted)}label{display:grid;grid-gap:.35rem;gap:.35rem;color:var(--muted);font-size:.9rem;font-weight:700}.oob-pub-tabs{display:flex;flex-wrap:wrap;gap:.4rem}.oob-pub-tab{background:transparent;border:1px solid var(--line);color:var(--muted);padding:.35rem .9rem;border-radius:5px;font-size:.8rem;font-weight:600;cursor:pointer;transition:border-color .15s,color .15s}.oob-pub-tab:hover{border-color:var(--accent);color:var(--ink)}.oob-pub-tab.active{border-color:var(--accent);color:var(--accent-ink);background:var(--accent)}.oob-sub-tab-bar{display:flex;gap:.4rem;padding:.75rem 1rem 0}.oob-sub-tab{background:transparent;border:1px solid var(--line);color:var(--muted);padding:.32rem .85rem;border-radius:5px;font-size:.78rem;font-weight:600;cursor:pointer;transition:border-color .15s,color .15s}.oob-sub-tab:hover{border-color:var(--accent);color:var(--ink)}.oob-sub-tab.active{border-color:var(--accent);color:var(--accent-ink);background:var(--accent)}.det-two-col{grid-template-columns:1fr 1fr;grid-gap:.55rem}.det-three-col,.det-two-col{display:grid;gap:.55rem;align-items:start}.det-three-col{grid-template-columns:repeat(3,1fr);grid-gap:.55rem}.det-flight{border-top:1px solid var(--line)}.det-flight-hdr{font-size:.66rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);padding:.28rem .5rem .1rem}.oob-page{min-height:100vh;background:var(--surface-2);color:var(--ink);position:relative;isolation:isolate}.oob-page:before{content:"";position:fixed;top:-35vw;right:-35vw;width:70vw;height:70vw;border-radius:50%;background:repeating-conic-gradient(from 0deg,var(--accent) 0deg 1.2deg,transparent 1.2deg 15deg);opacity:.05;pointer-events:none;z-index:0}.oob-page>*{position:relative;z-index:1}.oob-page-hdr{display:flex;justify-content:space-between;align-items:center;padding:.9rem 2rem;background:var(--surface-2);border-bottom:2px solid var(--accent);position:-webkit-sticky;position:sticky;top:0;z-index:10}.oob-page-brand h1{margin:0;font-size:1.3rem;font-family:var(--font-display);letter-spacing:.01em}.oob-page-brand .eyebrow{margin:0 0 .1rem}.oob-wrap{max-width:1440px;margin:0 auto;padding:1.25rem 1.5rem;display:grid;grid-gap:.8rem;gap:.8rem}.oob-title-bar{position:relative;text-align:center;padding:.9rem;border:1px solid var(--line);border-radius:6px;background:radial-gradient(ellipse 120% 100% at 50% -20%,var(--accent-glow),transparent 60%),var(--surface)}.oob-title-bar:after,.oob-title-bar:before{content:"";position:absolute;width:16px;height:16px;pointer-events:none}.oob-title-bar:before{top:6px;left:6px;border-top:2px solid var(--brass);border-left:2px solid var(--brass)}.oob-title-bar:after{bottom:6px;right:6px;border-bottom:2px solid var(--brass);border-right:2px solid var(--brass)}.oob-title-bar #editOobStructureBtn{position:absolute;top:.7rem;right:.9rem}.oob-heading{font-family:var(--font-display);font-size:1.5rem;font-weight:800;text-transform:uppercase;letter-spacing:.05em}.oob-subheading{color:var(--muted);font-size:.82rem;margin-top:.2rem}.oob-block{border:1px solid var(--line);border-radius:6px;overflow:hidden}.oob-block-hdr{background:var(--accent);color:var(--accent-ink);font-weight:800;text-transform:uppercase;font-size:.76rem;letter-spacing:.06em;padding:.4rem 1rem;text-align:center}.oob-block--narrow{max-width:calc(50% - .4rem);margin:0 auto}.oob-block-hdr--cerberus{background:#5c1f1f;color:#fff}.oob-block-hdr--warhawk{background:#1c3a5c;color:#fff}.oob-block-hdr--aviation{background:#1c5c32;color:#fff}.oob-block-hdr--talos{background:#8a4a12;color:#fff}.oob-block-hdr--chimera{background:#3a1c5c;color:#fff}.oob-cmd-row{display:grid}.oob-cmd-2col{grid-template-columns:1fr 1fr}.oob-cmd-4col{grid-template-columns:repeat(4,1fr)}.oob-cmd-slot{padding:.45rem .7rem;border-top:1px solid var(--line);border-right:1px solid var(--line);display:flex;flex-direction:column;gap:.2rem;min-width:0}.oob-cmd-slot:last-child{border-right:0}.oob-cmd-label{font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em}.oob-platoon-strip{display:grid;grid-template-columns:repeat(var(--oob-platoon-count,2),1fr);grid-gap:.8rem;gap:.8rem}.oob-platoon-block{border:1px solid var(--line);border-radius:6px;overflow:hidden}.oob-platoon-block .oob-cmd-2col{grid-template-columns:1fr 1fr}.oob-squad-columns{grid-template-columns:repeat(var(--oob-platoon-count,2),1fr);align-items:start}.oob-squad-col,.oob-squad-columns{display:grid;grid-gap:1.25rem;gap:1.25rem}.oob-squad-col{min-width:0}.oob-squad-pair{display:grid;grid-template-columns:1fr 1fr;grid-gap:.9rem;gap:.9rem;min-width:0;align-items:start}.oob-squad{border:1px solid var(--line);border-radius:6px;overflow:hidden;background:transparent;min-width:0}.oob-squad-empty{background:transparent;border-color:transparent;pointer-events:none}.oob-squad-hdr{background:#2a1515;color:#fff;font-weight:800;font-size:.7rem;text-transform:uppercase;letter-spacing:.04em;padding:.35rem .5rem;text-align:center;border-bottom:1px solid var(--line)}.oob-squad-hdr--warhawk{background:#1c3a5c}.oob-squad-hdr--cerberus{background:#5c1f1f}.oob-squad-hdr--aviation{background:#1c5c32}.oob-squad-hdr--talos{background:#8a4a12}.oob-squad-hdr--chimera{background:#3a1c5c}.oob-slot{display:flex;flex-direction:row;align-items:center;gap:.35rem;padding:.28rem .5rem;border-bottom:1px solid var(--line)}.oob-slot:last-child{border-bottom:0}.oob-slot-lbl{font-size:.65rem;font-weight:700;text-transform:uppercase;letter-spacing:.03em;line-height:1.25;flex:0 0 115px;white-space:normal}.oob-name{font-size:.8rem;font-weight:600;flex:1 1;min-width:0}.oob-empty{color:#3a3a3a;font-size:.78rem;flex:1 1}.oob-select{font-size:.74rem;padding:.15rem .3rem;background:var(--surface-3);border:1px solid var(--line);border-radius:4px;flex:1 1;min-width:0;max-width:155px}.role-officer{color:#60a5fa}.role-co{color:#ffd700}.role-nco{color:#fb923c}.role-medic{color:#f87171}.role-radio{color:#4ade80}.role-trooper{color:#e2e2e2}.staff-grid{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:.55rem;gap:.55rem}.rank-block{overflow-x:auto}.ref-table{width:100%;border-collapse:collapse;font-size:.76rem}.ref-table th{text-align:left;padding:.35rem .6rem;background:#1a1a1a;color:var(--muted);font-size:.68rem;text-transform:uppercase;letter-spacing:.04em}.ref-table td,.ref-table th{border-bottom:1px solid var(--line)}.ref-table td{padding:.3rem .6rem;vertical-align:top}.ref-table tr:last-child td{border-bottom:0}.ref-table tr:hover td{background:#1e1e1e}.perm-state-btn{width:100%;min-width:4.5rem;padding:.25rem .5rem;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.03em;border-radius:4px;border:1px solid var(--line);background:transparent;color:var(--muted);cursor:pointer}.perm-state-btn:hover{border-color:var(--accent)}.perm-state-allow{border-color:#2e7d32;color:#4caf50;background:rgba(76,175,80,.1)}.perm-state-deny,.perm-state-never{border-color:#b71c1c;color:#ef5350;background:rgba(239,83,80,.1)}.perm-state-inherit-allow{border-style:dashed;color:#4caf50}.perm-state-inherit-deny{border-style:dashed;color:var(--muted)}.rank-grade{color:#ffd700;font-weight:700;font-size:.72rem;white-space:nowrap}.rank-initial{color:var(--muted);font-size:.71rem;white-space:nowrap}.rank-name{color:var(--ink);font-weight:600}.rank-desc{color:var(--muted);font-size:.72rem}.status-pill{padding:.1rem .45rem;font-size:.66rem;font-weight:700}.status-pill.open{background:#0e2818;color:#4ade80}.status-pill.closed{background:#3b1418;color:#f87171}.oob-block-hdr--aviation.kit-role-hdr{background:#1a3322}.oob-block-hdr--talos.kit-role-hdr{background:#2a2040}.kit-plt-bar{display:flex;gap:.5rem;flex-wrap:wrap;margin-bottom:.75rem}.kit-plt-btn{min-width:90px}.kit-rules-block{margin-bottom:.75rem}.kit-rules-list{margin:0;padding:.5rem .7rem .5rem 1.6rem;font-size:.75rem;color:var(--muted);line-height:1.6}.kit-roles-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(420px,1fr));grid-gap:.75rem;gap:.75rem}.kit-role-block{page-break-inside:avoid;break-inside:avoid}.kit-table{table-layout:fixed}.kit-cat{font-size:.67rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);padding-right:.8rem;vertical-align:top;padding-top:.35rem}.kit-cat,.kit-qty{font-weight:700;white-space:nowrap}.kit-qty{text-align:center;width:2.5rem;color:var(--accent);font-size:.72rem}.kit-mod{white-space:nowrap;font-size:.66rem;color:var(--muted);width:3rem}.kit-limit{display:inline-block;margin-left:.5rem;padding:.05rem .4rem;border-radius:999px;font-size:.62rem;font-weight:700;background:rgba(255,255,255,.15);letter-spacing:.03em;vertical-align:middle}.kit-first-row td{border-top:1px solid var(--line)}.kit-first-row:first-child td{border-top:0}.kit-role-hdr{display:flex!important;align-items:center;justify-content:space-between;text-align:left!important;gap:.4rem;cursor:default}.kit-role-hdr>span{flex:1 1}.kit-role-toggle{flex-shrink:0;background:none;border:none;color:inherit;font-size:.85rem;line-height:1;padding:0 .2rem;cursor:pointer;transition:transform .2s ease;opacity:.8}.kit-role-block.collapsed .kit-role-toggle{transform:rotate(-90deg)}.kit-role-body{overflow:hidden}.kit-role-block.collapsed .kit-role-body{display:none}.kit-edit-role-btn{flex-shrink:0;font-size:.65rem!important;padding:.15rem .4rem!important;opacity:.85}.kit-add-role-btn{margin-left:auto}.kit-role-dialog-form{width:min(720px,95vw)}.form-hint{color:var(--muted);font-size:.72rem;font-weight:400;margin-left:.2rem}.kit-items-section{margin-top:.9rem}.kit-items-toolbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:.4rem;font-size:.8rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}.kit-edit-wrap{max-height:50vh;overflow-y:auto;border:1px solid var(--line);border-radius:6px}.kit-edit-table{table-layout:fixed}.kit-edit-table input{width:100%;background:transparent;border:none;border-radius:0;padding:.2rem .3rem;color:var(--ink);font-size:.74rem;box-shadow:none}.kit-edit-table input:focus{background:#1e2a1e;outline:1px solid var(--accent);outline-offset:-1px}.kit-edit-row td{padding:.1rem .2rem}.kit-del-item-btn{font-size:.65rem;opacity:.6}.kit-del-item-btn:hover{opacity:1}.medal-row{display:flex;gap:.6rem;align-items:flex-start;padding:.35rem .7rem;border-bottom:1px solid var(--line)}.medal-row:last-child{border-bottom:0}.medal-num{color:var(--accent);font-weight:800;font-size:.72rem;flex:0 0 24px;padding-top:.1rem;text-align:right}.medal-name{color:var(--ink);font-weight:600;font-size:.78rem}.medal-desc{color:var(--muted);font-size:.71rem;margin-top:.1rem}#loginDialog{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:1.75rem;color:var(--ink);width:min(380px,90vw);box-shadow:0 24px 70px rgba(0,0,0,.6)}#loginDialog::-webkit-backdrop{background:rgba(0,0,0,.65);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}#loginDialog::backdrop{background:rgba(0,0,0,.65);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.dialog-login-hdr{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1.2rem}.dialog-login-hdr h3{margin:0}.dialog-login-hdr .eyebrow{margin:0 0 .15rem}.remember-me-label{display:flex;align-items:center;gap:.5rem;font-size:.875rem;cursor:pointer}.remember-me-label input[type=checkbox]{width:auto;margin:0}.sidebar h1,.topbar h2{margin:0;font-family:var(--font-display);letter-spacing:.01em}.stack{display:grid;grid-gap:1rem;gap:1rem;margin-top:1.5rem}.eyebrow{margin:0 0 .4rem;color:var(--brass);font-size:.75rem;text-transform:uppercase;font-weight:800;letter-spacing:.08em}.error,.hint{margin:0;font-size:.9rem}.hint{color:var(--muted)}.error{color:var(--danger);min-height:1.2em}.app-shell{min-height:100vh;display:grid;grid-template-columns:240px 1fr}.sidebar{background:var(--surface-2);color:var(--ink);padding:1.4rem;display:grid;grid-template-rows:auto 1fr auto;grid-gap:1.5rem;gap:1.5rem;position:-webkit-sticky;position:sticky;top:0;height:100vh;overflow-y:auto}.sidebar .eyebrow{color:var(--brass)}nav{display:grid;align-content:start;grid-gap:.35rem;gap:.35rem}.mobile-nav-backdrop,.mobile-nav-toggle{display:none}.nav-button{background:transparent;color:var(--muted);text-align:left;border:1px solid transparent;padding:.55rem .75rem;font-family:var(--font-display);font-weight:700;letter-spacing:.02em}.nav-button.active,.nav-button:hover{background:var(--surface-3);border-color:var(--accent);color:var(--ink)}.nav-button.active{box-shadow:inset 3px 0 0 var(--accent)}.user-box{display:grid;grid-gap:.5rem;gap:.5rem}.user-box-actions{display:flex;gap:.4rem;align-items:center}.user-box-actions #logoutButton{flex:1 1}.workspace{min-width:0;padding:1.5rem}.topbar{justify-content:space-between;gap:1rem;margin-bottom:1.5rem}.topbar,.topbar-actions{display:flex;align-items:center}.topbar-actions{gap:.6rem}.tab{display:none}.tab.active{display:block}.platoon-grid{display:grid;grid-template-columns:repeat(2,minmax(0,520px));grid-gap:2rem;gap:2rem;justify-content:center;margin:0 auto}.platoon-card{position:relative;border:1px solid var(--line);border-radius:12px;overflow:hidden;cursor:pointer;aspect-ratio:3/2;transition:border-color .15s,box-shadow .15s,transform .12s}.platoon-card:hover{border-color:var(--accent);box-shadow:0 8px 32px rgba(63,200,255,.28);transform:translateY(-3px)}.platoon-card-image{position:absolute;inset:0;background:linear-gradient(135deg,var(--surface-2),var(--surface-3));display:flex;align-items:center;justify-content:center;font-size:6rem;font-weight:900;color:rgba(63,200,255,.18);-webkit-user-select:none;-moz-user-select:none;user-select:none}.platoon-card-image img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.platoon-card-overlay{position:absolute;bottom:0;left:0;right:0;padding:2rem 1.4rem 1.3rem;background:linear-gradient(0deg,rgba(0,0,0,.82) 0,rgba(0,0,0,.3) 60%,transparent)}.platoon-card-overlay h3{margin:0 0 .2rem;font-size:1.5rem;font-weight:800;color:#fff;text-shadow:0 1px 6px rgba(0,0,0,.6);letter-spacing:.02em}.platoon-card-overlay .hint{margin:0;color:rgba(255,255,255,.68);font-size:.85rem}.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(140px,1fr));grid-gap:1rem;gap:1rem;margin-bottom:1rem}.metric,.settings-card,.table-wrap,.user-list{background:var(--surface);border:1px solid var(--line);border-radius:8px}.metric{padding:1rem;display:grid;grid-gap:.25rem;gap:.25rem}.metric span{font-size:2rem;font-weight:800}.metric small{color:var(--muted);font-weight:700}.dashboard-breakdown{background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:1rem}.dashboard-breakdown h3{margin:0 0 1rem}.audit-list,.breakdown,.user-list{display:grid;grid-gap:.6rem;gap:.6rem}.audit-row,.breakdown-row,.user-row{display:flex;justify-content:space-between;gap:1rem;align-items:center;border-bottom:1px solid var(--line);padding-bottom:.6rem}.audit-row:last-child,.breakdown-row:last-child,.user-row:last-child{border-bottom:0}.filters,.inline-form{display:grid;grid-template-columns:2fr repeat(2,1fr);grid-gap:.75rem;gap:.75rem;margin-bottom:1rem}.inline-form{grid-template-columns:1fr 1fr 1fr auto}.reserve-filters{grid-template-columns:1fr}.segment-tabs{display:flex;gap:.5rem;margin-bottom:1rem;overflow-x:auto;padding-bottom:.15rem}.segment-button{background:#101821;border:1px solid var(--line);color:var(--ink);flex:0 0 auto}.segment-button.active,.segment-button:hover{background:var(--accent);border-color:var(--accent);color:#041412}.table-wrap{overflow:auto;-webkit-overflow-scrolling:touch}.roster-pagination{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.75rem;margin-top:.9rem;padding-top:.9rem;border-top:1px solid var(--line)}.roster-pagination label{display:flex;align-items:center;gap:.5rem;color:var(--muted);font-size:.85rem}.roster-pagination select{width:auto}.roster-pagination-nav{display:flex;align-items:center;gap:.75rem;font-size:.85rem;color:var(--muted)}.roster-pagination-nav button{padding:.4rem .75rem;width:auto}.roster-pagination-nav button:disabled{opacity:.45;cursor:not-allowed}table{width:100%;border-collapse:collapse;min-width:680px}td,th{padding:.75rem .8rem;text-align:left;border-bottom:1px solid var(--line);vertical-align:middle}.action-cell{display:flex;gap:.45rem;align-items:center}th{color:var(--muted);font-size:.78rem;text-transform:uppercase;background:#0f1720}tr.member-row:hover td{background:rgba(20,184,166,.05)}.status-pill{display:inline-flex;border-radius:999px;padding:.25rem .55rem;background:#253244;color:#dbe6f2;font-size:.82rem;font-weight:800}.status-active{background:var(--ok-bg);color:var(--ok)}.status-loa,.status-reserve,.status-un-slotted{background:var(--warn-bg);color:var(--warn)}.status-old-guard{background:#1a1a2e;color:#a78bfa}.status-inactive,.status-suspended{background:var(--danger-bg);color:var(--danger)}.detail-cell{padding:0!important}.detail-panel{display:grid;grid-template-columns:1fr 1fr 1fr;grid-gap:1rem;gap:1rem;padding:.9rem 1rem;background:#0d1720;border-top:1px solid var(--line)}.detail-panel strong{display:block;color:var(--muted);font-size:.8rem;text-transform:uppercase;margin-bottom:.4rem}.cert-badges,.medal-list{display:flex;flex-wrap:wrap;gap:.35rem}.cert-badge{background:rgba(20,184,166,.15);color:var(--accent);font-weight:700}.cert-badge,.medal-tag{border-radius:4px;padding:.2rem .45rem;font-size:.78rem}.medal-tag{background:rgba(251,191,36,.12);color:var(--warn)}.notes-text{margin:0;color:var(--muted);font-size:.9rem;white-space:pre-wrap}.reserve-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));grid-gap:1rem;gap:1rem}.empty-panel,.reserve-card{background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:1rem}.reserve-card{display:grid;grid-gap:1rem;gap:1rem}.reserve-card footer,.reserve-card header{display:flex;justify-content:space-between;align-items:flex-start;gap:.75rem}.reserve-card h3{margin-bottom:.25rem}.banned-card{border-color:rgba(220,38,38,.3)}.notes-box{background:rgba(8,13,19,.42);border:1px solid var(--line);border-radius:8px;padding:.75rem}.notes-box p{margin:.4rem 0 0;color:var(--muted);white-space:pre-wrap}.attendance-platoon-filter{gap:.5rem}.attendance-header,.attendance-platoon-filter{display:flex;flex-wrap:wrap;margin-bottom:1rem}.attendance-header{align-items:center;gap:1rem}.attendance-nav{display:flex;align-items:center;gap:.75rem}.attendance-nav h3{margin:0;min-width:160px;text-align:center}.lock-badge{background:var(--danger-bg);color:var(--danger);border-radius:6px;padding:.3rem .7rem;font-size:.82rem;font-weight:800}.attendance-month-picker{width:-moz-fit-content;width:fit-content;background:var(--surface);color:var(--text);border:1px solid var(--line);border-radius:6px;padding:.25rem .5rem;font-size:.82rem;font-family:inherit;cursor:pointer}.attendance-month-picker:focus{outline:2px solid var(--accent);outline-offset:2px}#addSessionForm{margin-bottom:1rem;grid-template-columns:auto 1fr auto}#addSessionForm input[type=date]{width:auto}.att-table{min-width:600px}.att-table td,.att-table th{padding:.6rem .75rem}.session-header{text-align:center;font-size:.78rem;min-width:90px}.session-header div{font-weight:700}.platoon-group-header td{background:#1a1a1a;color:var(--accent);font-size:.75rem;font-weight:800;letter-spacing:.06em;padding:.5rem .8rem}.platoon-group-header td,.squad-group-header td{text-transform:uppercase;border-bottom:1px solid var(--line)}.squad-group-header td{background:#141414;color:var(--muted);font-size:.72rem;font-weight:700;letter-spacing:.04em;padding:.3rem 1.4rem}.att-name{white-space:nowrap}.att-name small{display:block}.att-cell{text-align:center}.att-select{width:auto;min-width:130px;padding:.3rem .5rem;font-size:.8rem;border-radius:4px}.att-select.status-attended{border-color:var(--ok);color:var(--ok)}.att-select.status-extended-loa,.att-select.status-loa{border-color:var(--warn);color:var(--warn)}.att-select.status-permanent-loa{border-color:var(--blue);color:var(--blue)}.att-select.status-not-in-slot{border-color:var(--purple);color:var(--purple)}.att-select.status-did-not-attend{border-color:var(--danger);color:var(--danger)}.att-total{text-align:center;font-weight:700;color:var(--muted);font-size:.85rem;white-space:nowrap}.pub-att-nav{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem}.att-month-label{font-weight:600;min-width:10rem;text-align:center}.att-badge{display:inline-block;padding:.2rem .45rem;border-radius:4px;font-size:.78rem;white-space:nowrap;border:1px solid var(--line);color:var(--muted)}.att-badge.status-attended{border-color:var(--ok);color:var(--ok)}.att-badge.status-extended-loa,.att-badge.status-loa{border-color:var(--warn);color:var(--warn)}.att-badge.status-permanent-loa{border-color:var(--blue);color:var(--blue)}.att-badge.status-not-in-slot{border-color:var(--purple);color:var(--purple)}.att-badge.status-did-not-attend{border-color:var(--danger);color:var(--danger)}.promo-val{font-size:.82rem;white-space:nowrap}.promo-table{min-width:900px}.promo-rank-hdr{text-align:center;font-size:.7rem;white-space:nowrap;padding:.4rem .3rem;min-width:96px}.promo-cell{padding:.2rem .25rem;vertical-align:middle}.promo-input{width:96px;padding:.2rem .3rem;font-size:.75rem;background:var(--surface-3);border:1px solid var(--line);border-radius:4px;color:var(--ink);text-align:center}.promo-input:focus{border-color:var(--accent);outline:none}.promo-input::placeholder{color:var(--muted);font-style:italic;font-size:.66rem;opacity:1}.promo-eligible .promo-input{background:var(--ok-bg);border-color:var(--ok);color:var(--ok)}.promo-eligible .promo-input::placeholder{color:var(--ok);font-style:italic}.promo-rank-label{color:var(--muted);font-size:.72rem;font-weight:400}.settings-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));grid-gap:1rem;gap:1rem}.settings-card{padding:1rem}.settings-card ul{padding:0;color:var(--muted)}.option-list{display:grid;grid-gap:.45rem;gap:.45rem;list-style:none}.option-list li{display:flex;justify-content:space-between;gap:.75rem;align-items:center;border-bottom:1px solid var(--line);padding-bottom:.45rem;transition:opacity .15s}.option-list li:last-child{border-bottom:0}.option-list li.dragging{opacity:.3}.option-list li.drag-over{border-top:2px solid var(--accent);margin-top:-2px}.option-list input{min-width:0;flex:1 1}.option-actions{display:flex;flex:0 0 auto;gap:.4rem}.fqt-btn{font-size:.78rem;min-width:5.5rem}.fqt-yes{background:rgba(74,222,128,.15);color:var(--ok);border-color:var(--ok)}.fqt-no{background:rgba(255,255,255,.05);color:var(--muted)}.drag-handle{cursor:-webkit-grab;cursor:grab;color:var(--muted);-webkit-user-select:none;-moz-user-select:none;user-select:none;flex-shrink:0;font-size:1.1rem;padding:0 .15rem;line-height:1}.drag-handle:active{cursor:-webkit-grabbing;cursor:grabbing}.settings-card form{display:flex;gap:.5rem}#promoThresholdSettings{grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}#promoThresholdSettings .settings-card{min-width:0}.promo-threshold-list{display:grid;grid-gap:.4rem;gap:.4rem;list-style:none;padding:0;margin:0 0 .75rem}.promo-threshold-list li{display:flex;justify-content:space-between;align-items:center;gap:.5rem;border-bottom:1px solid var(--line);padding-bottom:.35rem}.promo-threshold-list li:last-child{border-bottom:0;padding-bottom:0}.promo-threshold-label{color:var(--muted);font-size:.85rem;flex:1 1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.promo-threshold-input{width:4.75rem;flex:0 0 auto;min-width:0;text-align:right}#promoThresholdSettings #addPromoThresholdPlatoonForm{display:flex;gap:.5rem}#promoThresholdSettings #addPromoThresholdPlatoonForm select{flex:1 1;min-width:0}#oobStructureBody{display:grid;grid-gap:1rem;gap:1rem;max-height:55vh;overflow-y:auto;padding-right:.3rem}.oob-struct-platoon{border:1px solid var(--line);border-radius:8px;padding:.7rem;display:grid;grid-gap:.6rem;gap:.6rem;transition:opacity .15s}.oob-struct-platoon.dragging,.oob-struct-role.dragging,.oob-struct-squad.dragging{opacity:.3}.oob-struct-platoon.drag-over,.oob-struct-role.drag-over,.oob-struct-squad.drag-over{border-top:2px solid var(--accent);margin-top:-2px}.oob-struct-row{display:flex;align-items:center;gap:.5rem}.oob-struct-row input.oob-struct-input{min-width:0;flex:1 1}.oob-struct-platoon-row select.oob-struct-tag{flex:0 0 auto;width:auto}.oob-struct-squads{display:grid;grid-gap:.6rem;gap:.6rem;padding-left:1.4rem}.oob-struct-squad{border:1px solid var(--line);border-radius:6px;padding:.55rem;display:grid;grid-gap:.5rem;gap:.5rem}.oob-struct-roles{display:grid;grid-gap:.35rem;gap:.35rem;padding-left:1.4rem}.oob-struct-role{display:flex;align-items:center;gap:.5rem}.oob-struct-add-role,.oob-struct-add-squad{display:flex;gap:.5rem;padding-left:1.4rem}.oob-struct-add-role input,.oob-struct-add-squad input{flex:1 1;min-width:0}#oobAddPlatoonForm{display:flex;gap:.5rem}#oobAddPlatoonForm select{flex:0 0 auto;width:auto}#oobAddPlatoonForm input{flex:1 1;min-width:0}#detStructureDialog .dialog-form h4{margin:.4rem 0 0;font-family:var(--font-display);letter-spacing:.02em}#detStructureChimeraBody,#detStructureTalosDaedalusBody,#detStructureTalosSurtrBody,#detStructureWingBody{display:grid;grid-gap:1rem;gap:1rem}#addChimeraTeamForm,#addTalosDaedalusForm,#addTalosSurtrForm,#addWingSquadronForm{display:flex;gap:.5rem}#addChimeraTeamForm input,#addTalosDaedalusForm input,#addTalosSurtrForm input,#addWingSquadronForm input{flex:1 1;min-width:0}.user-list{padding:1rem}.user-row,.user-row-actions{align-items:center}.user-row-actions{display:flex;gap:.4rem}.user-last-login{font-size:.78rem;color:var(--muted);white-space:nowrap}.audit-controls{padding:1rem 1rem 0}.audit-controls input{width:100%;max-width:360px}.audit-list{padding:1rem;display:grid;grid-gap:.4rem;gap:.4rem}.audit-row{display:grid;grid-template-columns:160px 120px 160px 1fr;grid-gap:.75rem;gap:.75rem;align-items:baseline;padding:.5rem 0;border-bottom:1px solid var(--line);font-size:.85rem}.audit-row:last-child{border-bottom:0}.audit-time{color:var(--muted);white-space:nowrap}.audit-user{font-weight:600}.audit-action{color:var(--accent)}.audit-detail{color:var(--muted)}.audit-pager{display:flex;gap:1rem;align-items:center;padding:.75rem 1rem;font-size:.85rem}.role-badge{font-size:.78rem;font-weight:700;border-radius:4px;padding:.2rem .5rem;background:#1e2e3e;color:var(--muted)}.role-admin{background:rgba(20,184,166,.15);color:var(--accent)}.role-roster-clerk{background:rgba(74,222,128,.12);color:var(--ok)}.role-platoon-command{background:rgba(251,191,36,.12);color:var(--warn)}.role-recruiter{background:rgba(248,113,113,.12);color:var(--danger)}.role-team-lead{background:rgba(201,164,104,.15);color:var(--brass)}.role-badge.role-nco{background:rgba(129,140,248,.15);color:var(--blue)}.role-badge.role-drill-instructor{background:rgba(192,132,252,.15);color:var(--purple)}.role-pinned-badge{font-size:.72rem;font-weight:700;border-radius:4px;padding:.2rem .5rem;background:rgba(201,164,104,.15);border:1px solid var(--brass);color:var(--brass)}.role-badge-wrap{position:relative;display:inline-flex;align-items:center;gap:.35rem}.role-extra-toggle{font-size:.72rem;font-weight:700;border-radius:4px;padding:.15rem .4rem;background:rgba(255,255,255,.06);color:var(--muted);border:1px solid var(--line);cursor:pointer;line-height:1.2}.role-extra-toggle:hover{color:var(--ink);border-color:var(--accent)}.role-extra-dropdown{position:absolute;top:calc(100% + .35rem);left:0;z-index:20;background:var(--surface);border:1px solid var(--line);border-radius:6px;padding:.5rem;display:flex;flex-direction:column;gap:.35rem;box-shadow:0 8px 24px rgba(0,0,0,.45);min-width:150px}dialog{width:min(860px,calc(100% - 2rem));max-height:calc(100vh - 2rem);overflow-y:auto;border:1px solid var(--brass-dark);border-radius:8px;padding:0;background:var(--surface);color:var(--ink);box-shadow:0 0 0 1px rgba(0,0,0,.4),0 12px 48px var(--accent-glow)}dialog::-webkit-backdrop{background:rgba(4,8,15,.78)}dialog::backdrop{background:rgba(4,8,15,.78)}.dialog-form{display:grid;grid-gap:1rem;gap:1rem;padding:1.2rem}.checkbox-row{display:flex;align-items:center;gap:.5rem;font-size:.9rem;color:var(--ink)}.checkbox-row input{width:auto}.dialog-form h3{font-family:var(--font-display);letter-spacing:.02em}.dialog-form footer,.dialog-form header{display:flex;justify-content:space-between;align-items:center;gap:1rem}.dialog-form h3{margin:0}.form-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:.9rem;gap:.9rem}fieldset{border:1px solid var(--line);border-radius:8px;padding:.9rem;background:rgba(8,13,19,.34)}legend{color:var(--muted);font-weight:800}.check-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));grid-gap:.45rem;gap:.45rem}.check-grid label{grid-template-columns:auto 1fr;display:grid;align-items:center;color:var(--ink);font-weight:600}.check-grid input{width:auto}.check-grid-scroll{max-height:220px;overflow-y:auto;padding-right:.3rem}.ts-marker{margin-left:.3rem;font-size:.85em;opacity:.85}.training-recruit-list{max-height:420px;overflow-y:auto;padding-right:.3rem}.training-recruit-row{border:1px solid var(--border);border-radius:8px;padding:.6rem .75rem;margin-bottom:.5rem}.training-recruit-name{display:flex;align-items:center;gap:.4rem;font-weight:600}.training-recruit-name input{width:auto}.training-recruit-details{margin-top:.5rem;padding-left:1.5rem;display:flex;flex-direction:column;gap:.5rem}.training-recruit-platoon{display:flex;align-items:center;gap:.5rem;font-weight:600}.training-recruit-platoon select{width:auto}.training-recruit-certs .check-grid{grid-template-columns:repeat(auto-fit,minmax(120px,1fr))}.member-picker{position:fixed;z-index:9999;background:var(--surface);border:1px solid var(--line);border-radius:8px;box-shadow:0 8px 28px rgba(0,0,0,.5);min-width:220px;overflow:hidden}.member-picker input{display:block;width:100%;box-sizing:border-box;border:none;border-bottom:1px solid var(--line);background:var(--bg);color:var(--text);padding:.5rem .75rem;font-size:.9rem;outline:none}.member-picker ul{list-style:none;margin:0;padding:0;max-height:220px;overflow-y:auto}.member-picker li{padding:.4rem .75rem;cursor:pointer;font-size:.875rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.member-picker li:hover{background:rgba(63,200,255,.15);color:var(--accent)}.member-picker li.picker-selected{background:rgba(63,200,255,.25);color:var(--accent);font-weight:600}.toast{position:fixed;right:1rem;bottom:2.5rem;background:#e6edf3;color:#0b1118;padding:.75rem 1rem;border-radius:6px;box-shadow:0 14px 34px rgba(0,0,0,.36);font-weight:600}.comms-table{width:100%;border-collapse:collapse;font-size:.875rem}.comms-table th{text-align:left;padding:.5rem .75rem;border-bottom:2px solid var(--line);color:var(--muted);font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;white-space:nowrap}.comms-table td{padding:.55rem .75rem;border-bottom:1px solid var(--line);vertical-align:middle}.comms-table tbody tr:last-child td{border-bottom:0}.comms-table tbody tr:hover{background:var(--surface-3)}.comms-freq-cell{font-family:monospace;font-weight:600;color:var(--accent);white-space:nowrap}.comms-notes-cell{color:var(--muted);font-size:.82rem}.comms-actions-cell{width:4rem;text-align:right}.comms-empty{color:var(--muted);padding:1rem .75rem;font-style:italic}.comms-group-hdr td{background:var(--surface-3);color:var(--accent);font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;padding:.35rem .75rem;border-top:2px solid var(--line)}.comms-wrap{padding:1rem;display:flex;flex-direction:column;gap:2rem}.comms-section-hdr{display:flex;align-items:center;margin-bottom:.5rem}.quick-links-wrap{padding:1rem;max-width:800px}.quick-link-card{display:flex;align-items:flex-start;gap:1rem;background:var(--surface-3);border:1px solid var(--line);border-radius:6px;padding:.85rem 1rem;margin-bottom:.6rem}.quick-link-body{flex:1 1;min-width:0}.quick-link-title{font-size:1rem;font-weight:600;color:#60a5fa;text-decoration:none;word-break:break-all}.quick-link-title:hover{text-decoration:underline}.quick-link-desc{margin:.25rem 0 0;color:var(--muted);font-size:.875rem}.quick-link-actions{display:flex;gap:.4rem;flex-shrink:0}.patch-notes{padding:1.5rem 1.75rem 2rem;max-width:860px}.patch-notes-title{font-family:var(--font-display);font-size:1.15rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:0}.patch-notes-title-row{display:flex;align-items:baseline;flex-wrap:wrap;justify-content:space-between;gap:.6rem;margin:0 0 1.25rem;border-bottom:1px solid var(--line);padding-bottom:.5rem}.patch-notes-title-row .patch-notes-title{flex:1 1 auto;min-width:0}.patch-notes-title-row .drag-handle,.patch-notes-title-row button{flex-shrink:0}.patch-notes-header{display:flex;align-items:center;justify-content:space-between;gap:.6rem;padding:1.5rem 1.75rem 0;max-width:860px}.patch-notes-header h3{font-family:var(--font-display);font-size:1.3rem;margin:0}.patch-notes-add-version{padding:1.5rem 1.75rem 0;max-width:860px}.patch-entry.dragging,.patch-notes.dragging{opacity:.3}.patch-entry.drag-over,.patch-notes.drag-over{border-top:2px solid var(--accent);margin-top:-2px}.patch-entry{position:relative;padding-left:1.25rem;margin-bottom:1.75rem;border-left:2px solid var(--accent)}.patch-entry-actions{display:flex;align-items:center;gap:.4rem;margin-top:.6rem}.patch-version{font-weight:700;font-size:.95rem;margin-bottom:.5rem;color:var(--ink)}.patch-date{font-weight:400;font-size:.78rem;color:var(--muted);margin-left:.5rem}.patch-entry ul{margin:0;padding:0 0 0 1.1rem;display:flex;flex-direction:column;gap:.3rem}.patch-entry li{font-size:.875rem;color:var(--muted);line-height:1.55}.patch-entry li strong{color:var(--ink)}.howto-guide{max-width:900px}.howto-your-role{background:var(--surface-3);border:1px solid var(--accent);border-radius:8px;padding:.7rem 1rem;margin-bottom:1.25rem;font-size:.9rem}.howto-your-role a{color:var(--accent);font-weight:600;margin-left:.4rem}.howto-toc{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem .9rem;background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:.85rem 1rem;margin-bottom:1.75rem;font-size:.85rem}.howto-toc a{color:var(--muted)}.howto-toc a:hover{color:var(--accent)}.howto-guide .patch-entry p{font-size:.875rem;color:var(--muted);margin:.4rem 0}.howto-guide .patch-entry p strong{color:var(--ink)}.howto-guide code{background:var(--surface-3);border:1px solid var(--line);border-radius:4px;padding:.05rem .4rem;font-family:ui-monospace,SF Mono,Consolas,monospace;font-size:.82em;color:var(--accent)}.patch-entry.howto-highlight{border-left-color:var(--warn);background:rgba(251,191,36,.06);border-radius:0 8px 8px 0}.punishments-controls{padding:1rem 1.25rem 0;display:flex;gap:.75rem}.punishments-controls input{flex:1 1;max-width:420px}#punishmentsList{padding:1rem 1.25rem;display:flex;flex-direction:column;gap:.85rem}.punishment-card{background:var(--surface-2);border:1px solid var(--line);border-radius:8px;overflow:hidden}.punishment-card-header{display:flex;align-items:center;gap:.6rem;padding:.6rem 1rem;background:var(--surface-3);border-bottom:1px solid var(--line);flex-wrap:wrap}.punishment-name{font-weight:700;font-size:1rem}.punishment-rank{color:var(--accent);font-size:.85rem}.punishment-date,.punishment-squad{color:var(--muted);font-size:.82rem}.punishment-date{margin-left:auto}.punishment-fields{padding:.75rem 1rem;display:flex;flex-direction:column;gap:.45rem}.punishment-field{display:grid;grid-template-columns:140px 1fr;grid-gap:.5rem;gap:.5rem;font-size:.875rem;align-items:baseline}.punishment-label{font-weight:600;color:var(--muted);font-size:.78rem;text-transform:uppercase;letter-spacing:.04em}.transfer-route{font-weight:600;color:var(--accent);font-size:.9rem}.transfer-pending{color:var(--muted);font-style:italic}.transfer-approved{color:var(--ok);font-weight:600}.transfer-denied{color:var(--danger);font-weight:600}.transfer-decide-btns{display:flex;gap:.4rem;flex-wrap:wrap}.transfer-decide-wrap{display:flex;flex-direction:column;gap:.4rem;align-items:flex-start}.punish-form-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:.65rem 1rem;gap:.65rem 1rem;margin-bottom:.65rem}.calendar-grid{display:grid;grid-template-columns:repeat(2,1fr);grid-gap:1.25rem;gap:1.25rem;padding:1.25rem}.cal-month-card{background:var(--surface-2);border:1px solid var(--line);border-radius:8px;overflow:hidden}.cal-month-hdr{background:var(--accent);color:#fff;padding:.65rem .9rem;display:flex;justify-content:space-between;align-items:center;font-weight:600;font-size:.95rem}.cal-month-hdr .compact{font-size:.7rem;padding:.2rem .55rem;background:rgba(255,255,255,.15);border-color:rgba(255,255,255,.3);color:#fff}.cal-month-hdr .compact:hover{background:rgba(255,255,255,.25)}.cal-day-names{display:grid;grid-template-columns:repeat(7,1fr);background:var(--surface-3);border-bottom:1px solid var(--line)}.cal-day-name{text-align:center;font-size:.65rem;font-weight:600;padding:.3rem 0;text-transform:uppercase;color:var(--muted)}.cal-days{display:grid;grid-template-columns:repeat(7,1fr);grid-gap:1px;gap:1px;background:var(--line)}.cal-cell{background:var(--surface-2);padding:.25rem .3rem;min-height:4.5rem;position:relative;display:flex;flex-direction:column;gap:2px}.cal-cell.empty{background:var(--surface)}.cal-cell:hover{background:var(--surface-3)}.cal-day-num{font-size:.72rem;font-weight:500;color:var(--muted);line-height:1.4;display:inline-flex;align-items:center;justify-content:center;width:1.35rem;height:1.35rem;border-radius:50%;flex-shrink:0}.cal-cell.today .cal-day-num{background:var(--accent);color:#fff;font-weight:700}.cal-event{background:var(--accent);color:#fff;font-size:.63rem;border-radius:3px;padding:1px 5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block;line-height:1.5}.cal-event.editable{cursor:pointer}.cal-event.editable:hover{opacity:.8}.cal-add-btn{display:none;position:absolute;bottom:3px;right:3px;width:1.25rem;height:1.25rem;border-radius:50%;background:var(--surface-3);border:1px solid var(--line);color:var(--muted);font-size:.8rem;cursor:pointer;padding:0;line-height:1;align-items:center;justify-content:center}.cal-cell:hover .cal-add-btn{display:flex}.gallery-toolbar{margin-bottom:1rem}.gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));grid-gap:1rem;gap:1rem}.gallery-card{position:relative;background:var(--surface-3);border:1px solid var(--line);border-radius:6px;overflow:hidden;cursor:pointer;transition:border-color .15s}.gallery-card:hover{border-color:var(--accent)}.gallery-card img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block}.gallery-card-info{padding:.5rem .6rem}.gallery-card-info strong{display:block;font-size:.9rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.gallery-card-info p{font-size:.8rem;color:var(--muted);margin:.2rem 0 0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.gallery-meta{display:block;font-size:.75rem;color:var(--muted);margin-top:.25rem}.gallery-delete-btn{position:absolute;top:.35rem;right:.35rem;width:1.6rem;height:1.6rem;border-radius:50%;border:none;font-size:1rem;line-height:1;cursor:pointer;opacity:0;transition:opacity .15s;display:flex;align-items:center;justify-content:center}.gallery-card:hover .gallery-delete-btn{opacity:1}.lightbox-dialog{background:rgba(0,0,0,.92);border:none;max-width:100vw;max-height:100vh;width:100vw;height:100vh;padding:0;margin:0}.lightbox-dialog[open]{display:flex;align-items:center;justify-content:center}.lightbox-dialog::-webkit-backdrop{background:rgba(0,0,0,.85)}.lightbox-dialog::backdrop{background:rgba(0,0,0,.85)}.lightbox-content{display:flex;flex-direction:column;align-items:center;max-width:90vw;max-height:90vh}.lightbox-content img{max-width:80vw;max-height:70vh;object-fit:contain;border-radius:4px}.lightbox-caption{text-align:center;margin-top:.75rem;color:var(--ink)}.lightbox-caption strong{font-size:1.05rem}.lightbox-caption p{font-size:.9rem;color:var(--muted);margin:.25rem 0 0}.lightbox-meta{font-size:.78rem;color:var(--muted);margin-top:.25rem;display:block}.lightbox-close{top:1rem;right:1rem;background:transparent;border:1px solid var(--line);font-size:1.5rem;width:2.2rem;height:2.2rem;border-radius:50%;line-height:1}.lightbox-close,.lightbox-nav{position:fixed;color:var(--ink);cursor:pointer;display:flex;align-items:center;justify-content:center}.lightbox-nav{top:50%;transform:translateY(-50%);background:rgba(0,0,0,.5);border:1px solid var(--line);font-size:2rem;width:2.8rem;height:4rem}.lightbox-prev{left:.5rem;border-radius:0 4px 4px 0}.lightbox-next{right:.5rem;border-radius:4px 0 0 4px}.login-divider{display:flex;align-items:center;gap:.6rem;color:var(--muted);font-size:.8rem}.login-divider:after,.login-divider:before{content:"";flex:1 1;height:1px;background:var(--line)}.discord-btn{display:flex;align-items:center;justify-content:center;gap:.5rem;width:100%;background:#5865F2;color:#fff;border:none}.discord-btn:hover{background:#4752c4}.nav-badge{display:inline-block;margin-left:.45rem;padding:.05rem .45rem;border-radius:999px;background:var(--accent);color:#fff;font-size:.72rem;font-weight:700;line-height:1.3;vertical-align:middle}.unlinked-discord-card{margin-top:1rem}.unlinked-discord-list{list-style:none;margin:.75rem 0 0;padding:0;max-height:340px;overflow-y:auto}.unlinked-discord-list li{display:flex;flex-wrap:wrap;align-items:baseline;gap:.5rem;padding:.5rem .2rem;border-bottom:1px solid var(--line);font-size:.88rem}.unlinked-discord-list li:last-child{border-bottom:none}.unlinked-discord-meta{color:var(--muted);font-size:.8rem}.unlinked-name-link{background:none;border:0;padding:0;border-radius:0;font-weight:700;font-size:inherit;color:var(--ink);cursor:pointer;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;text-underline-offset:2px}.unlinked-name-link:hover{color:var(--accent);box-shadow:none;background:none}.deletions-list{display:flex;flex-direction:column;gap:.6rem;max-width:800px}.deletion-card{display:flex;align-items:center;justify-content:space-between;gap:1rem;background:var(--surface);border:1px solid var(--line);border-radius:6px;padding:.75rem 1rem}.deletion-info strong{display:block;margin-bottom:.2rem}.deletion-meta{color:var(--muted);font-size:.8rem}.deletion-reason{display:block;margin-top:.3rem;font-size:.85rem;color:var(--ink)}.deletion-reason--empty{color:var(--muted);font-style:italic}.deletion-actions{display:flex;gap:.5rem;flex-shrink:0}.discord-settings{margin-top:1rem}.discord-settings .hint{margin-bottom:.8rem}.discord-map-group{font-size:.8rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:.9rem 0 .5rem}.discord-map-rows{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));grid-gap:.5rem 1rem;gap:.5rem 1rem;margin-bottom:.9rem}.discord-map-row{display:flex;align-items:center;gap:.6rem}.discord-map-row span{flex:0 0 45%;font-size:.85rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.discord-map-row input{flex:1 1;min-width:0}.profile-page{max-width:1440px;margin:0 auto;font-size:1.08rem}.profile-head{text-align:center;margin-bottom:2rem;padding-bottom:1.25rem;border-bottom:3px solid var(--line)}.profile-head h2{margin-bottom:.35rem;font-size:2.1rem}.profile-head p{color:var(--muted);font-size:1.1rem}.profile-head--cerberus{border-bottom-color:#5c1f1f}.profile-head--warhawk{border-bottom-color:#1c3a5c}.profile-head--aviation{border-bottom-color:#1c5c32}.profile-head--talos{border-bottom-color:#8a4a12}.profile-head--chimera{border-bottom-color:#3a1c5c}.profile-grid3{display:grid;grid-template-columns:repeat(3,1fr);grid-template-areas:"medals   portrait  certs" "promo    mid1      mid2" "attend   attend    attend";grid-gap:1.75rem;gap:1.75rem;align-items:stretch}.profile-card{--card-accent:var(--accent);position:relative;background:linear-gradient(160deg,var(--surface) 0,var(--surface-2) 100%);border:1px solid var(--card-accent);border-radius:2px;overflow:hidden;-webkit-clip-path:polygon(16px 0,100% 0,100% calc(100% - 16px),calc(100% - 16px) 100%,0 100%,0 16px);clip-path:polygon(16px 0,100% 0,100% calc(100% - 16px),calc(100% - 16px) 100%,0 100%,0 16px);box-shadow:0 0 0 1px rgba(0,0,0,.35),0 0 18px -6px var(--card-accent)}.profile-card:after{content:"";position:absolute;inset:0;pointer-events:none;box-shadow:inset 0 0 24px -10px var(--card-accent)}.profile-card h3{margin:0;padding:.85rem 1.4rem;font-family:var(--font-display);font-size:1.05rem;font-weight:800;text-transform:uppercase;letter-spacing:.1em;color:var(--card-accent);background:linear-gradient(90deg,color-mix(in srgb,var(--card-accent) 22%,transparent),transparent 75%),var(--surface-3);border-bottom:1px solid var(--card-accent);text-shadow:0 0 10px color-mix(in srgb,var(--card-accent) 55%,transparent)}.profile-card-body{padding:1.35rem 1.4rem 1.4rem;position:relative}.profile-card--medals{--card-accent:#eab308;grid-area:medals}.profile-card--certs{--card-accent:#38bdf8;grid-area:certs}.profile-card--promo{--card-accent:var(--accent);grid-area:promo}.profile-card--attendance{--card-accent:var(--ok);grid-area:attend}.profile-card--portrait{--card-accent:var(--brass);grid-area:portrait}.profile-portrait-img,.profile-portrait-panel{height:100%;min-height:300px}.profile-portrait-img{width:100%;object-fit:cover;display:block}.profile-mid1{grid-area:mid1}.profile-mid2{grid-area:mid2}.profile-card--placeholder{--card-accent:var(--line);border-style:dashed;box-shadow:none}.profile-card--placeholder:after{display:none}.profile-card--placeholder .profile-card-body{display:flex;align-items:center;justify-content:center;min-height:130px;font-size:1rem}.profile-chips{display:flex;flex-wrap:wrap;gap:.55rem}.profile-chip{display:inline-block;padding:.4rem .85rem;border:1px solid var(--line);border-radius:999px;background:var(--surface-3);font-size:.95rem}.profile-card--medals .profile-chip{background:rgba(234,179,8,.12);border-color:rgba(234,179,8,.4);color:#eab308}.profile-card--certs .profile-chip{background:rgba(56,189,248,.12);border-color:rgba(56,189,248,.4);color:#38bdf8}.profile-empty{color:var(--muted);font-size:1rem}.profile-promo-table{width:100%;border-collapse:collapse}.profile-promo-table td{padding:.65rem .7rem;border-bottom:1px solid var(--line);font-size:1.02rem;vertical-align:top}.profile-promo-table tr:last-child td{border-bottom:none}.profile-promo-rank{white-space:nowrap;width:1%}.profile-att-month{margin-bottom:1.2rem}.profile-att-month:last-child{margin-bottom:0}.profile-att-hdr{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:.5rem;font-size:1.05rem}.profile-att-hdr span{color:var(--muted);font-size:.95rem}.profile-att-badges{display:flex;flex-wrap:wrap;gap:.7rem}.profile-att-session{display:flex;flex-direction:column;align-items:center;gap:.3rem}.profile-att-session .att-badge{font-size:.9rem;padding:.35rem .7rem}.profile-att-date{font-size:.78rem;color:var(--muted);text-transform:uppercase;letter-spacing:.03em}.profile-selector{position:relative;max-width:360px;margin:0 auto 1.5rem}.profile-search-input{background:var(--surface-3);border:1px solid var(--brass)}.profile-search-input:focus{border-color:var(--accent)}.profile-search-results{position:absolute;top:calc(100% + 4px);left:0;right:0;z-index:20;margin:0;padding:.3rem;list-style:none;background:var(--surface);border:1px solid var(--line);border-radius:6px;box-shadow:0 12px 32px rgba(0,0,0,.4);max-height:280px;overflow-y:auto}.profile-search-results li{display:flex;justify-content:space-between;align-items:baseline;gap:.5rem;padding:.5rem .6rem;border-radius:4px;cursor:pointer;font-size:.9rem}.profile-search-results li:hover{background:var(--surface-3)}.profile-search-meta{color:var(--muted);font-size:.78rem;white-space:nowrap}.profile-search-empty{color:var(--muted);cursor:default}.profile-search-empty:hover{background:none}@media (max-width:900px){.profile-grid3{grid-template-columns:1fr;grid-template-areas:"portrait" "medals" "certs" "promo" "mid1" "mid2" "attend"}}.recruitment-title-bar{display:flex;align-items:center;justify-content:space-between;gap:1rem;text-align:left}.recruitment-title-bar .oob-heading{margin:0}.recruitment-submissions{margin-top:1.5rem}.recruitment-submissions h3{margin-bottom:.75rem}#recruitmentFormDialog fieldset{margin:0}#recruitmentFormDialog .hint{margin-top:.5rem}@media (max-width:900px){.app-shell{grid-template-columns:1fr}.metric-grid{grid-template-columns:repeat(2,1fr)}.detail-panel,.filters,.form-grid,.inline-form{grid-template-columns:1fr}.topbar{align-items:stretch;flex-direction:column}#addSessionForm,.calendar-grid{grid-template-columns:1fr}.gallery-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr))}.oob-platoon-strip,.oob-squad-columns,.platoon-grid{grid-template-columns:1fr}.oob-cmd-4col,.staff-grid{grid-template-columns:repeat(2,1fr)}.kit-roles-grid{grid-template-columns:1fr}.oob-block--narrow{max-width:100%}.audit-row{grid-template-columns:1fr;gap:.15rem}.mobile-nav-toggle{display:flex;align-items:center;justify-content:center;position:fixed;top:.7rem;left:.7rem;z-index:41;width:44px;height:44px;padding:0;border-radius:6px;font-size:1.3rem;line-height:1}.mobile-nav-backdrop,.mobile-nav-toggle.hidden-while-open{opacity:0;pointer-events:none}.mobile-nav-backdrop{display:block;position:fixed;inset:0;background:rgba(4,8,15,.6);z-index:39;transition:opacity .2s ease}.mobile-nav-backdrop.open{opacity:1;pointer-events:auto}.sidebar{position:fixed;top:0;left:0;width:min(280px,82vw);z-index:40;transform:translateX(-100%);transition:transform .2s ease;box-shadow:4px 0 28px rgba(0,0,0,.45)}.sidebar.open{transform:translateX(0)}.workspace{padding:4.2rem 1rem 1.5rem}.oob-page-hdr{flex-wrap:wrap;padding:.75rem 1rem;row-gap:.6rem}.oob-sub-tab-bar{overflow-x:auto;flex-wrap:nowrap;-webkit-overflow-scrolling:touch;padding-bottom:.35rem}.oob-sub-tab{flex:0 0 auto;white-space:nowrap}}@media (max-width:560px){.det-three-col,.det-two-col,.oob-cmd-2col,.oob-cmd-4col,.oob-squad-pair,.punish-form-grid,.staff-grid{grid-template-columns:1fr}.roster-pagination{flex-direction:column;align-items:stretch;text-align:center}.roster-pagination-nav{justify-content:center}.dialog-form footer,.dialog-form header{flex-wrap:wrap}.cal-cell{min-height:3.2rem;padding:.2rem}.metric-grid{grid-template-columns:1fr 1fr}}a.nav-button{display:block;text-decoration:none;cursor:pointer}