:root{color-scheme:dark;--bg: #000000;--fg: #f4f6f8;--muted: #aeb6c1;--card: rgba(12, 14, 18, .9);--card-strong: rgba(7, 9, 12, .98);--glass: rgba(255, 255, 255, .06);--glass-border: rgba(235, 241, 248, .14);--accent: #9aa8bd;--accent-strong: #d6b25e;--button-bg: rgba(31, 54, 86, .9);--button-bg-hover: rgba(39, 66, 104, .96);--button-border: rgba(88, 128, 190, .72);--button-border-hover: rgba(114, 154, 218, .88);--danger: #f87171;--success: #63d18c;--warning: #f7c75f;--shadow: 0 18px 46px rgba(0, 0, 0, .34);--radius: 10px;--radius-lg: 14px;--safe-top: env(safe-area-inset-top, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px);--panel: var(--card-strong);--line: rgba(235, 241, 248, .14);--field: rgba(255, 255, 255, .055);--field-border: rgba(235, 241, 248, .18);--focus: 0 0 0 3px rgba(88, 128, 190, .36);--font: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--app-max: 1440px;--page-max: 1320px;--tablet-page-max: 1500px}.light{color-scheme:light;--bg: #f6f7f9;--fg: #15201b;--muted: #5c6570;--card: rgba(255, 255, 255, .82);--card-strong: rgba(255, 255, 255, .94);--glass: rgba(255, 255, 255, .62);--glass-border: rgba(41, 55, 47, .14);--accent: #42526b;--accent-strong: #8b691f;--button-bg: rgba(221, 230, 249, .92);--button-bg-hover: rgba(207, 220, 247, .98);--button-border: rgba(145, 174, 229, .78);--button-border-hover: rgba(100, 140, 215, .92);--danger: #b4232c;--success: #1b7f48;--warning: #8b620f;--shadow: 0 18px 42px rgba(25, 40, 34, .14);--panel: var(--card-strong);--line: rgba(41, 55, 47, .14);--field: rgba(255, 255, 255, .78);--field-border: rgba(41, 55, 47, .18);--focus: 0 0 0 3px rgba(49, 95, 80, .22)}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;background:var(--bg)}body{min-height:100vh;margin:0;background:var(--bg);color:var(--fg);font-family:var(--font);font-size:15px;letter-spacing:0}.light body{background:linear-gradient(180deg,var(--bg),#eef1f5 100%)}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}hr{border:0;border-top:1px solid var(--line)}img,svg,canvas{max-width:100%}button,input,select,textarea{font:inherit}button,.button{min-height:40px;border:1px solid var(--button-border);border-radius:14px;padding:0 14px;background:var(--button-bg);color:var(--fg);box-shadow:none;cursor:pointer;transition:transform .12s ease,border-color .16s ease,background .16s ease,box-shadow .16s ease}button:hover,.button:hover{border-color:var(--button-border-hover);background:var(--button-bg-hover);text-decoration:none}button:active,.button:active{transform:translateY(1px)}button:disabled,.button[aria-disabled=true]{cursor:not-allowed;opacity:.58}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:none;box-shadow:var(--focus)}input,select,textarea{width:100%;min-width:0;min-height:42px;border:1px solid var(--field-border);border-radius:var(--radius);padding:9px 11px;background:var(--field);color:var(--fg);outline:none}input[type=checkbox]{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:22px;min-width:22px;height:22px;min-height:22px;padding:0;border-radius:7px;display:inline-grid;place-content:center;background:#ffffff0a;cursor:pointer}input[type=checkbox]:before{content:"";width:13px;height:13px;transform:scale(0);transition:transform .12s ease-in-out;clip-path:polygon(14% 54%,0 68%,40% 100%,100% 28%,86% 14%,40% 72%);background:#fff}input[type=checkbox]:checked{border-color:#22c55e;background:#22c55e}input[type=checkbox]:checked:before{transform:scale(1)}textarea{min-height:96px;resize:vertical}input::placeholder,textarea::placeholder{color:color-mix(in srgb,var(--muted),transparent 18%)}label{display:flex;flex-direction:column;gap:6px;color:var(--muted);font-size:13px}.app-shell{width:min(100%,var(--app-max));margin:0 auto;padding:max(12px,calc(var(--safe-top) + 10px)) clamp(12px,2vw,28px) calc(var(--safe-bottom) + 18px)}.card,.glass-card,.glass-panel,.glass-toolbar,.section-card{background:var(--card);color:var(--fg);border:1px solid var(--glass-border);border-radius:var(--radius-lg);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(18px) saturate(135%);backdrop-filter:blur(18px) saturate(135%)}.card,.glass-card,.section-card{max-width:1080px;margin:0 auto;padding:16px}.glass-panel{padding:14px}.glass-toolbar{display:flex;align-items:center;gap:10px;padding:10px 12px}.toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.toolbar .grow{flex:1 1 auto}.row{display:flex;gap:12px;align-items:flex-start;flex-wrap:wrap}.grid{display:grid;gap:12px}.grid-2,.two-col{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.wide-layout{width:min(100%,1360px);margin:0 auto}.tablet-wide-page{width:min(100%,var(--page-max));margin-left:auto;margin-right:auto}.split-layout{display:grid;grid-template-columns:minmax(240px,.72fr) minmax(0,1.6fr);gap:16px;align-items:start}.search{width:min(100%,300px)}.table{width:100%;border-collapse:collapse;font-size:14px}.table th,.table td{padding:10px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}.table th{color:var(--muted);font-size:12px;font-weight:700;text-transform:uppercase}.badge,.status-pill,.sync-pill{display:inline-flex;align-items:center;gap:6px;min-height:24px;border:1px solid var(--glass-border);border-radius:999px;padding:3px 9px;background:var(--glass);color:var(--fg);font-size:12px;line-height:1.2}.badge.role,.status-pill.info{border-color:#7fb7a357;background:#7fb7a324}.badge.rank,.status-pill.warning{border-color:#f7c75f5c;background:#f7c75f21}.status-pill.success,.sync-pill.synced{border-color:#63d18c5c;background:#63d18c21}.status-pill.danger,.sync-pill.error{border-color:#f8717161;background:#f8717121}.offline-banner{position:sticky;top:calc(var(--safe-top) + 8px);z-index:80;display:flex;align-items:center;justify-content:space-between;gap:10px;width:min(100%,1080px);margin:0 auto 12px;padding:10px 12px;border:1px solid rgba(247,199,95,.34);border-radius:var(--radius-lg);background:#3f3012db;color:#fff6d9;box-shadow:var(--shadow);-webkit-backdrop-filter:blur(16px) saturate(130%);backdrop-filter:blur(16px) saturate(130%)}.light .offline-banner{background:#fff8e1eb;color:#362500}.sync-toast{position:fixed;left:50%;bottom:calc(var(--safe-bottom) + 16px);z-index:160;display:inline-flex;align-items:center;gap:10px;max-width:min(92vw,420px);transform:translate(-50%);padding:9px 10px 9px 12px;border:1px solid rgba(235,241,248,.14);border-radius:999px;background:#0c0e12f5;color:var(--fg);box-shadow:0 12px 32px #00000052}.sync-toast button{min-width:28px;width:28px;height:28px;min-height:28px;padding:0;justify-content:center;border-radius:999px;background:#ffffff14}.light .sync-toast{background:#fffffff5;color:#15201b}.conflict-modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:6000;display:grid;place-items:center;padding:16px;background:#030807a3;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.conflict-modal__card{width:min(980px,100%);max-height:min(86vh,760px);overflow:auto}.conflict-modal__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.app-review-modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:5200;display:grid;place-items:center;padding:18px;background:#03070a94;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.app-review-modal__card{width:min(460px,100%);display:grid;gap:12px;padding:20px;text-align:center;justify-items:center}.app-review-modal__card h2{margin:0;font-size:24px;line-height:1.15;max-width:340px}.app-review-modal__card p{margin:0;max-width:320px;color:var(--muted)}.app-review-modal__eyebrow{color:var(--muted);font-size:12px;font-weight:700;letter-spacing:0;text-transform:uppercase}.app-review-modal__actions{display:flex;flex-wrap:wrap;gap:10px;justify-content:center}.conflict-field{display:grid;gap:8px;padding:10px;border:1px solid var(--line);border-radius:var(--radius);background:#ffffff0a}.kv{display:grid;grid-template-columns:150px minmax(0,1fr);gap:6px 12px;align-items:start;word-break:break-word}.kv .k,.kv .label,.kv dt{color:var(--muted);font-size:12px;line-height:1.35}.kv .v,.kv .value,.kv dd{min-width:0;margin:0;color:var(--fg);overflow-wrap:anywhere}.kv-2col{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 24px}.kv-grid{display:grid;grid-template-columns:170px minmax(0,1fr) 170px minmax(0,1fr);column-gap:20px;row-gap:8px;align-items:start}.kv-grid-row{display:contents}.kv-grid .k{color:var(--muted);font-size:13px;line-height:1.25;white-space:nowrap}.kv-grid .v{display:flex;align-items:flex-start;gap:8px;min-width:0;min-height:26px}.kv-grid .vtext{min-width:0;white-space:normal;overflow-wrap:anywhere;line-height:1.25}.icon-btn,.hamb{display:inline-grid;place-items:center;min-width:40px;width:40px;height:40px;padding:0}.topbar .notif-btn,.topbar .hamb{flex:0 0 46px;width:46px;min-width:46px;height:46px;min-height:46px;padding:0;border-radius:15px;display:inline-flex;align-items:center;justify-content:center;line-height:1;text-align:center}.topbar .hamb svg,.topbar .notif-icon{display:block;flex:0 0 auto;line-height:1;transform:translateY(-1px)}.topbar .hamb svg{width:22px;height:22px}.topbar .notif-icon{font-size:22px}.icon-btn{min-width:28px;width:28px;height:28px;background:transparent;border-color:var(--line);box-shadow:none;opacity:.8}.icon-btn:hover{opacity:1}.drawer{position:fixed;top:0;right:0;bottom:0;width:min(86vw,420px);transform:translate(100%);transition:transform .22s ease;z-index:100;padding:12px 14px calc(var(--safe-bottom) + 16px);overflow:auto;background:#050608;border-left:1px solid rgba(255,255,255,.12);box-shadow:-18px 0 42px #00000047}.native-android .drawer{top:calc(var(--safe-top, 0px) + 10px)}.drawer.open{transform:translate(0)}.drawer a,.drawer button{display:flex;align-items:center;width:100%;justify-content:flex-start;min-height:50px;margin:7px 0;padding:11px 14px;text-align:left;border:1px solid var(--button-border);border-radius:16px;background:var(--button-bg);box-shadow:none;color:var(--fg);transform:none}.drawer a:hover,.drawer button:hover,.drawer a:active,.drawer button:active{border-color:var(--button-border-hover);background:var(--button-bg-hover);transform:none}.drawer .drawer-item.active{border-color:#d6b25eb8;background:#4b3e1ddb;color:#fff}.light .drawer .drawer-item.active{color:#15201b;border-color:#b1851fa3;background:#ffeeb8eb}.drawer-header{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:44px;margin-bottom:8px}.drawer-title{font-weight:700}.drawer .drawer-close{width:40px;min-width:40px;height:40px;min-height:40px;margin:0;padding:0;justify-content:center;font-size:20px;border-radius:999px}.drawer-divider{border:none;border-top:1px solid rgba(255,255,255,.12);margin:10px 0}.scrim{position:fixed;top:0;right:0;bottom:0;left:0;z-index:90;pointer-events:none;background:#0000006b;opacity:0;transition:opacity .2s ease}.scrim.open{pointer-events:auto;opacity:1}.topbar{position:relative;top:auto;z-index:70}.nav-list{display:flex;align-items:center;justify-content:center;gap:6px;max-width:100%}.nav-tab,.more-item{min-height:38px;border-radius:var(--radius)}.nav-tab{display:inline-flex;align-items:center;gap:6px;padding:9px 12px;white-space:nowrap;color:var(--fg);background:#ffffff0f;border:1px solid var(--line)}.nav-tab.active{color:#fff;border-color:#d0a94f75;background:linear-gradient(180deg,#d0a94f3d,#1f3656d1)}.light .nav-tab.active{color:#142019}.more-menu,.notif-panel,.user-menu>div{background:var(--card-strong)!important;color:var(--fg)!important;border:1px solid var(--glass-border)!important;border-radius:var(--radius-lg)!important;box-shadow:var(--shadow)!important;-webkit-backdrop-filter:blur(18px) saturate(135%);backdrop-filter:blur(18px) saturate(135%)}.more-item{display:block;padding:9px 10px;color:var(--fg)}.more-item:hover,.notif-item:hover{background:#ffffff14;text-decoration:none}.user-menu>div button,.user-menu>div a{width:100%;justify-content:flex-start;margin:4px 0;text-align:left}.notif-btn{position:relative}.notif-badge{position:absolute;top:-5px;right:-6px;min-width:18px;height:18px;border-radius:999px;padding:0 5px;background:var(--danger);color:#fff;font-size:12px;line-height:18px;text-align:center}.notif-item{padding:8px;border-radius:var(--radius)}.notif-item+.notif-item{margin-top:6px}.notif-empty{padding:8px;color:var(--muted);text-align:center}.section-title{margin:0;font-size:18px;font-weight:700}.subtle{color:var(--muted);font-size:12px;font-weight:700;text-transform:uppercase}.chip-row{display:flex;gap:10px;overflow-x:auto;flex-wrap:nowrap;padding-bottom:6px;-webkit-overflow-scrolling:touch}.chip-row::-webkit-scrollbar{height:0}.hide-on-mobile{display:block}.show-on-mobile{display:none}.nlbo-notice{display:grid;gap:6px;padding:10px 12px;border:1px solid var(--glass-border);border-radius:var(--radius-lg);background:var(--glass);color:var(--fg)}.nlbo-notice .nlbo-title{font-size:14px;font-weight:700}.nlbo-notice .nlbo-text{color:var(--muted);font-size:13px;line-height:1.35}.nlbo-compact{padding:8px 10px;border-radius:var(--radius)}.nlbo-title--accent{color:var(--success)}.nlbo-notice--centered,.nlbo-notice--centered .nlbo-text{text-align:center;justify-items:center}body.app-locked{overflow:hidden}#app-lock-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:2147483647;display:grid;place-items:center;pointer-events:none;background:#0000007a;opacity:0;transition:opacity .18s ease;-webkit-backdrop-filter:blur(10px) saturate(120%);backdrop-filter:blur(10px) saturate(120%)}#app-lock-overlay.open{pointer-events:auto;opacity:1}#app-lock-overlay .card{width:min(520px,92vw);text-align:center}#app-lock-overlay .title{margin-bottom:6px;font-size:18px;font-weight:700}#app-lock-overlay .sub{margin-bottom:12px;color:var(--muted);font-size:14px}#app-lock-overlay .row{justify-content:center}.sub-nudge-card{background:var(--card-strong)!important;border:1px solid var(--glass-border)!important;border-radius:var(--radius-lg)!important}@media (min-width: 900px){.app-shell{padding-left:clamp(22px,3vw,44px);padding-right:clamp(22px,3vw,44px)}.wide-layout{display:grid;gap:18px}.card,.glass-card,.section-card{padding:18px}}@media (orientation: landscape) and (min-width: 900px){:root{--app-max: 1680px;--page-max: 1440px}.app-shell{padding-left:clamp(16px,2.2vw,34px);padding-right:clamp(16px,2.2vw,34px)}.app-shell.wide-layout{width:min(100%,var(--app-max))}.topbar.card,.app-shell.wide-layout>.card{max-width:none}.tablet-wide-page,.dashboard-page,.soldiers-page,.scheduling-page,.support-wrap,.ops-wrap,.awol-wrap,.aft-wrap,.lic-wrap,.dueouts-wrap{width:min(100%,var(--tablet-page-max))!important;max-width:var(--tablet-page-max)!important;margin-left:auto!important;margin-right:auto!important}.tablet-wide-page>.card,.tablet-wide-page .card,.scheduling-page>.card,.support-wrap>.card,.ops-wrap>.card,.awol-wrap>.card,.aft-wrap>.card,.lic-wrap>.card,.dueouts-wrap>.card{max-width:none}.split-layout{grid-template-columns:minmax(260px,.64fr) minmax(0,1.8fr)}.topbar{margin-bottom:14px}}@media (max-width: 1000px){.grid-2,.two-col,.kv-2col,.split-layout,.conflict-modal__grid{grid-template-columns:1fr}.kv-grid{grid-template-columns:150px minmax(0,1fr)}}@media (orientation: landscape) and (min-width: 900px){.grid-2,.two-col{grid-template-columns:repeat(2,minmax(0,1fr))}.split-layout{grid-template-columns:minmax(260px,.64fr) minmax(0,1.8fr)}.dashboard-page .dashboard-stack{grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch}.dashboard-page .dashboard-summary-card{max-width:none}.dashboard-page .dashboard-schedule-stack{margin-top:18px!important}.soldiers-page .soldiers-list{gap:16px!important}.soldiers-page .toolbar-grid,.soldiers-page .toolbar-actions{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.soldiers-page .search-row{grid-template-columns:minmax(320px,1fr) max-content max-content}}@media (max-width: 859px){.hide-on-mobile{display:none!important}.show-on-mobile{display:inline-flex!important}}@media (max-width: 640px){body{font-size:14px}.card,.glass-card,.glass-panel,.section-card{padding:12px;border-radius:var(--radius)}.kv{grid-template-columns:1fr}.table{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch}.offline-banner{align-items:flex-start;flex-direction:column}}@supports (-webkit-touch-callout: none){input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=button]):not([type=submit]):not([type=reset]):not([type=image]),select,textarea,button{min-height:44px;font-size:16px}}@media (prefers-reduced-transparency: reduce){.card,.glass-card,.glass-panel,.glass-toolbar,.section-card,.drawer,.offline-banner,.conflict-modal,.more-menu,.notif-panel,.user-menu>div{-webkit-backdrop-filter:none!important;backdrop-filter:none!important;background:var(--card-strong)!important}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}
