:root{--color-bg:#1e1e1e;--color-bg-deep:#111;--color-bg-raised:#1a1a1a;--color-surface:#2a2a2a;--color-text:#fff;--color-text-secondary:#ffffffb3;--color-text-muted:#ffffff8a;--color-text-faint:#ffffff61;--color-text-disabled:#ffffff3d;--color-border:#ffffff1f;--color-primary:#4caf50;--color-primary-soft:#4caf5026;--color-on-primary:#fff;--color-success:#4caf50;--color-danger:#f44336;--color-pending:#9e9e9e;--color-info:#448aff;--color-warning:#ff9800;--color-qual-expert:#ffc107;--color-qual-sharpshooter:#29b6f6;--color-qual-marksman:#4caf50;--color-qual-unqualified:#f44336;--color-qual-pending:#9e9e9e;--font-family:"Roboto", system-ui, -apple-system, "Segoe UI", sans-serif;--font-size-base:16px;--font-size-sm:13px;--font-size-xs:11px;--radius:10px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px}[data-theme=light]{--color-bg:#f0f2f5;--color-bg-deep:#e0e3e8;--color-bg-raised:#e8eaf0;--color-surface:#fff;--color-text:#000000de;--color-text-secondary:#0009;--color-text-muted:#00000073;--color-text-faint:#00000052;--color-text-disabled:#0000003d;--color-border:#0000001a;--color-primary:#388e3c;--color-primary-soft:#388e3c1a;--color-on-primary:#fff;--color-success:#388e3c;--color-danger:#d32f2f;--color-pending:#757575;--color-info:#1565c0;--color-warning:#e65100;--color-qual-expert:#f9a825;--color-qual-sharpshooter:#0277bd;--color-qual-marksman:#388e3c;--color-qual-unqualified:#d32f2f;--color-qual-pending:#757575}html,body{background:var(--color-bg);color:var(--color-text);font-family:var(--font-family);font-size:var(--font-size-base);margin:0}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}input,select,textarea{font-size:max(16px,1em)}a,button,[role=button],input,select,textarea,label{touch-action:manipulation}html,body,#root{height:100%}.app{flex-direction:column;min-height:100%;display:flex}.top-nav{height:56px;padding:0 var(--space-4);background-color:var(--color-bg-deep);border-bottom:1px solid var(--color-border);z-index:20;flex-shrink:0;align-items:center;display:flex;position:sticky;top:0}.top-nav__title{letter-spacing:.3em;color:var(--color-primary);flex:1;font-size:1.1rem;font-weight:800}.top-nav__settings-btn{color:var(--color-text-secondary);cursor:pointer;padding:var(--space-1);border-radius:var(--radius);background:0 0;border:none;justify-content:center;align-items:center;min-width:44px;min-height:44px;display:flex}.top-nav__settings-btn:active{background:var(--color-primary-soft);color:var(--color-primary)}.header-action-btn{color:var(--color-text-secondary);cursor:pointer;padding:var(--space-1);border-radius:var(--radius);background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;min-width:44px;min-height:44px;display:flex}.header-action-btn:active{background:var(--color-primary-soft);color:var(--color-primary)}.undo-bar{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);background:var(--color-surface);border-bottom:1px solid var(--color-border);flex-shrink:0;animation:.18s ease-out undo-slide-in;display:flex}@keyframes undo-slide-in{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.undo-bar__label{font-size:var(--font-size-sm);color:var(--color-text-secondary);white-space:nowrap;text-overflow:ellipsis;flex:1;overflow:hidden}.undo-bar__btn{color:var(--color-primary);font-size:var(--font-size-sm);font-weight:700;font-family:var(--font-family);cursor:pointer;padding:var(--space-1) var(--space-2);border-radius:var(--radius);background:0 0;border:none;flex-shrink:0;min-height:36px}.undo-bar__btn:active{background:var(--color-primary-soft)}.undo-bar__count{color:var(--color-text-muted);font-weight:400}.undo-bar__dismiss{color:var(--color-text-muted);font-size:var(--font-size-sm);cursor:pointer;padding:var(--space-1);border-radius:var(--radius);background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;min-width:32px;min-height:32px;display:flex}.app-main{flex-direction:column;flex:1;min-width:0;display:flex}.app-content{padding-bottom:calc(56px + env(safe-area-inset-bottom,0px));flex-direction:column;flex:1;display:flex}.tab-pane{display:none}.tab-pane--active{flex-direction:column;flex:1;display:flex}.bottom-tab-bar{background:var(--color-bg-deep);border-top:1px solid var(--color-border);z-index:90;padding-bottom:env(safe-area-inset-bottom,0px);align-items:stretch;display:flex;position:fixed;bottom:0;left:0;right:0}.bottom-tab-bar__item{cursor:pointer;min-height:56px;color:var(--color-text-muted);font-family:var(--font-family);font-size:var(--font-size-xs);letter-spacing:.05em;text-transform:uppercase;background:0 0;border:none;border-top:2px solid #0000;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:3px;padding:0;font-weight:600;transition:color .15s;display:flex}.bottom-tab-bar__item:active{opacity:.7}.bottom-tab-bar__item--active{color:var(--color-primary);border-top-color:var(--color-primary)}.bottom-tab-bar__icon{fill:currentColor;flex-shrink:0;width:24px;height:24px}@media (width>=900px){.app{flex-direction:row;height:100vh;overflow:hidden}.app-main{height:100vh;overflow:hidden}.app-content{flex:1;padding-bottom:0;overflow:hidden}.tab-pane--active{overflow-y:auto}.bottom-tab-bar{border-top:none;border-right:1px solid var(--color-border);flex-direction:column;flex-shrink:0;justify-content:flex-start;align-items:stretch;width:200px;height:100vh;padding-bottom:0;position:sticky;inset:0 auto auto;overflow-y:auto}.bottom-tab-bar:before{content:"PHALANX";height:56px;padding:0 var(--space-4);letter-spacing:.3em;color:var(--color-primary);border-bottom:1px solid var(--color-border);flex-shrink:0;align-items:center;font-size:.95rem;font-weight:800;display:flex}.bottom-tab-bar__item{justify-content:flex-start;align-items:center;gap:var(--space-3);min-height:52px;padding:0 var(--space-4);font-size:var(--font-size-sm);text-align:left;border-top:none;border-left:3px solid #0000;flex-direction:row;flex:none}.bottom-tab-bar__item--active{border-left-color:var(--color-primary);background:var(--color-primary-soft);border-top-color:#0000}.bottom-tab-bar__item:active{opacity:1;background:#ffffff0d}.bottom-tab-bar__icon{flex-shrink:0;width:20px;height:20px}.fab-container{bottom:var(--space-4)}}.app-dialog-backdrop{z-index:400;padding:var(--space-4);background:#000000b3;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.app-dialog{background:var(--color-surface);border-radius:var(--radius);padding:var(--space-4);gap:var(--space-3);flex-direction:column;width:100%;max-width:380px;display:flex}.app-dialog__title{font-size:var(--font-size-base);color:var(--color-text);margin:0;font-weight:700}.app-dialog__body{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin:0;line-height:1.5}.app-dialog__actions{gap:var(--space-2);justify-content:flex-end;display:flex}.app-dialog__input{background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius);color:var(--color-text);font-size:var(--font-size-base);font-family:var(--font-family);padding:var(--space-2) var(--space-3);box-sizing:border-box;width:100%}.app-dialog__input:focus{outline:2px solid var(--color-primary);outline-offset:1px;border-color:var(--color-primary)}.app-dialog__input::placeholder{color:var(--color-text-faint)}.app-dialog__input-row{gap:var(--space-2);align-items:center;display:flex}.app-dialog__input-row .app-dialog__input{flex:1}.app-dialog__show-btn{border:1px solid var(--color-border);border-radius:var(--radius);color:var(--color-text-secondary);cursor:pointer;background:0 0;flex-shrink:0;justify-content:center;align-items:center;min-width:44px;height:44px;display:flex}.app-dialog__error{font-size:var(--font-size-sm);color:var(--color-danger);margin:0}.nudge-banner{align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-4);background:var(--color-bg-raised);border-bottom:1px solid var(--color-border);flex-shrink:0;display:flex}.nudge-banner__msg{font-size:var(--font-size-sm);color:var(--color-text-secondary);flex:1}.nudge-banner__action{font-size:var(--font-size-sm);padding:var(--space-1) var(--space-3);white-space:nowrap;flex-shrink:0;min-height:32px}.nudge-banner__dismiss{color:var(--color-text-muted);font-family:var(--font-family);cursor:pointer;padding:var(--space-1);border-radius:var(--radius);background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;min-width:28px;min-height:28px;font-size:14px;line-height:1;display:flex}.nudge-banner__dismiss:active{background:var(--color-primary-soft)}.pwa-toast{bottom:calc(56px + env(safe-area-inset-bottom,0px) + var(--space-4));background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:var(--space-3) var(--space-4);align-items:center;gap:var(--space-3);z-index:500;white-space:nowrap;display:flex;position:fixed;left:50%;transform:translate(-50%);box-shadow:0 4px 16px #0006}.pwa-toast__msg{font-size:var(--font-size-sm);color:var(--color-text)}.pwa-toast__action{background:var(--color-primary);color:var(--color-on-primary);padding:var(--space-1) var(--space-3);font-size:var(--font-size-sm);font-family:var(--font-family);cursor:pointer;border:none;border-radius:6px;min-height:32px;font-weight:600}.pwa-toast__action:active{opacity:.85}.pwa-toast__dismiss{color:var(--color-text-muted);font-family:var(--font-family);cursor:pointer;padding:var(--space-1);border-radius:var(--radius);background:0 0;border:none;justify-content:center;align-items:center;min-width:28px;min-height:28px;font-size:14px;line-height:1;display:flex}.pwa-toast__dismiss:active{background:var(--color-primary-soft)}@media (width>=900px){.pwa-toast{bottom:var(--space-4);left:auto;right:var(--space-4);transform:none}}.roster-screen{min-height:100%;padding-bottom:calc(56px + env(safe-area-inset-bottom,0px) + 88px);flex-direction:column;display:flex}.roster-header{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);background-color:var(--color-surface);border-bottom:1px solid var(--color-border);z-index:10;flex-wrap:wrap;flex-shrink:0;min-height:52px;display:flex;position:sticky;top:56px}.roster-header>.btn{flex-shrink:0}.roster-export-bar{gap:var(--space-2);padding:var(--space-1) var(--space-4);background-color:var(--color-surface);border-bottom:1px solid var(--color-border);flex-shrink:0;display:flex}.roster-title{font-size:var(--font-size-sm);letter-spacing:.1em;text-transform:uppercase;color:var(--color-text-muted);flex:1;margin:0;font-weight:700}.roster-controls{gap:var(--space-1);flex:0 0 100%;order:10;display:flex}.btn{min-height:44px;padding:0 var(--space-4);border-radius:var(--radius);cursor:pointer;letter-spacing:.03em;white-space:nowrap;font-size:.95rem;font-weight:700;font-family:var(--font-family);border:none;justify-content:center;align-items:center;transition:opacity .1s;display:inline-flex}.btn:active{opacity:.75}.btn--primary{background-color:var(--color-primary);color:var(--color-on-primary)}.btn--ghost{color:var(--color-text-secondary);font-size:var(--font-size-sm);min-height:36px;padding:0 var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius);background:0 0;font-weight:600}.btn--ghost:active{background:var(--color-surface)}.btn--sm{min-height:36px;padding:0 var(--space-3);font-size:var(--font-size-sm)}.btn--large{min-height:56px;padding:0 36px;font-size:1rem}.btn--danger{background-color:var(--color-danger);color:var(--color-on-primary)}.icon-btn{cursor:pointer;border-radius:var(--radius);min-width:40px;min-height:40px;color:var(--color-text-muted);background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;font-size:.95rem;display:flex}.icon-btn:active{background:var(--color-surface);color:var(--color-text)}.icon-btn--danger:active{color:var(--color-danger)}.import-result{margin:var(--space-3) var(--space-4) 0;border-radius:var(--radius);font-size:var(--font-size-sm)}.import-result--loading{padding:var(--space-3) var(--space-4);background:var(--color-surface);color:var(--color-text-muted);border-radius:var(--radius)}.import-result--error{align-items:flex-start;gap:var(--space-2);padding:var(--space-3) var(--space-4);background:var(--color-surface);border:1px solid var(--color-danger);border-radius:var(--radius);color:var(--color-danger);line-height:1.5;display:flex}.import-result--success{background:var(--color-primary-soft);border:1px solid var(--color-primary);border-radius:var(--radius)}.import-result__header{padding:var(--space-3) var(--space-4) var(--space-2);color:var(--color-primary);justify-content:space-between;align-items:center;font-weight:700;display:flex}.import-result__body{padding:0 var(--space-4) var(--space-3);color:var(--color-text-secondary);gap:var(--space-1);flex-direction:column;line-height:1.5;display:flex}.import-result__text{flex:1;line-height:1.5}.import-result__dismiss{cursor:pointer;color:inherit;opacity:.6;border-radius:var(--radius);background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;min-width:28px;min-height:28px;margin:-2px -4px 0 0;padding:0;font-size:1rem;display:flex}.import-result__dismiss:active{opacity:1}.import-result__flags{margin-top:var(--space-2);color:var(--color-warning)}.import-result__flag-header{margin-bottom:var(--space-1);font-weight:700}.import-result__flag{padding-left:var(--space-3)}.import-result__no-flags{color:var(--color-text-muted);margin-top:var(--space-1)}.roster-empty{justify-content:center;align-items:center;gap:var(--space-3);padding:64px var(--space-4);text-align:center;flex-direction:column;flex:1;display:flex}.roster-empty__message{color:var(--color-text);font-size:1.15rem;font-weight:600}.roster-empty__hint{color:var(--color-text-muted);font-size:var(--font-size-sm);max-width:280px;margin-bottom:var(--space-2);line-height:1.6}.roster-loading{padding:64px var(--space-4);text-align:center;color:var(--color-text-muted);font-size:var(--font-size-sm)}.unit-tree__meta{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-2) var(--space-2) var(--space-4);color:var(--color-text-muted);font-size:var(--font-size-xs);letter-spacing:.08em;text-transform:uppercase;border-bottom:1px solid var(--color-border);font-weight:700;display:flex}.unit-tree__collapse-controls{gap:var(--space-1);flex-shrink:0;display:flex}.unit-row{border-bottom:1px solid var(--color-border);align-items:stretch;display:flex}.unit-toggle{align-items:center;gap:var(--space-2);cursor:pointer;text-align:left;padding:0 var(--space-2) 0 var(--space-4);color:var(--color-text);background:0 0;border:none;flex:1;min-width:0;min-height:52px;display:flex}.unit-chevron{font-size:var(--font-size-xs);color:var(--color-text-muted);flex-shrink:0;width:12px}.unit-name{text-overflow:ellipsis;white-space:nowrap;flex:1;font-weight:600;line-height:1.3;overflow:hidden}.unit-name__short{display:none}@media (width<=599px){.unit-name__full{display:none}.unit-name__short{display:inline}}.unit-count{font-size:var(--font-size-sm);color:var(--color-text-muted);background:var(--color-surface);text-align:center;border-radius:100px;flex-shrink:0;min-width:28px;padding:1px 8px;font-weight:700}.unit-actions{padding-right:var(--space-1);flex-shrink:0;align-items:center;display:flex}.unit-block--depth-0>.unit-row{background-color:var(--color-bg-deep)}.unit-block--depth-0>.unit-row>.unit-toggle{border-left:4px solid var(--color-primary);padding-left:calc(var(--space-4) - 4px);min-height:60px}.unit-block--depth-0>.unit-row>.unit-toggle .unit-name{letter-spacing:.02em;font-size:1rem;font-weight:800}.unit-block--depth-1>.unit-row{background-color:var(--color-surface)}.unit-block--depth-1>.unit-row>.unit-toggle{min-height:52px;padding-left:24px}.unit-block--depth-1>.unit-row>.unit-toggle .unit-name{font-size:.97rem;font-weight:700}.unit-block--depth-2>.unit-row{background-color:var(--color-bg)}.unit-block--depth-2>.unit-row>.unit-toggle{min-height:48px;padding-left:36px}.unit-block--depth-2>.unit-row>.unit-toggle .unit-name{font-size:.93rem;font-weight:600}.unit-block--depth-3>.unit-row{background-color:var(--color-bg)}.unit-block--depth-3>.unit-row>.unit-toggle{min-height:46px;color:var(--color-text-secondary);padding-left:48px}.unit-block--depth-3>.unit-row>.unit-toggle .unit-name{font-size:.9rem}.soldier-row-wrap{position:relative;overflow:hidden}.soldier-row__delete-action{cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;width:72px;padding:0 8px 0 0;display:flex;position:absolute;top:0;bottom:0;right:0}.soldier-row__hover-delete{display:none}@media (hover:hover){.soldier-row__hover-delete{color:var(--color-text-faint);cursor:pointer;border-radius:var(--radius);opacity:0;background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;min-width:32px;min-height:32px;padding:4px;transition:opacity .15s,color .15s;display:flex}.soldier-row-wrap:hover .soldier-row__hover-delete{opacity:1}.soldier-row__hover-delete:hover{color:var(--color-danger);background:#f4433614}}.soldier-row__delete-icon{background:var(--color-danger);color:#fff;border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:46px;height:46px;display:flex}.unit-block--depth-0>.unit-body>.soldier-row-wrap>.soldier-row{padding-left:28px}.unit-block--depth-1>.unit-body>.soldier-row-wrap>.soldier-row{padding-left:40px}.unit-block--depth-2>.unit-body>.soldier-row-wrap>.soldier-row{padding-left:52px}.unit-block--depth-3>.unit-body>.soldier-row-wrap>.soldier-row{padding-left:64px}.soldier-row{align-items:center;gap:var(--space-3);min-height:52px;padding:var(--space-2) var(--space-1) var(--space-2) var(--space-4);border-bottom:1px solid var(--color-border);background-color:var(--color-bg);display:flex}.soldier-rank{font-size:var(--font-size-xs);color:var(--color-primary);letter-spacing:.05em;flex-shrink:0;width:36px;font-weight:800}.soldier-main{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.soldier-name-line{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.soldier-name{color:var(--color-text);font-size:.97rem;line-height:1.3}.soldier-tag{font-size:var(--font-size-xs);color:var(--color-text-muted);background:var(--color-surface);border:1px solid var(--color-border);white-space:nowrap;border-radius:4px;padding:1px 6px;font-weight:700}.soldier-notes{font-size:var(--font-size-xs);color:var(--color-text-muted);white-space:nowrap;text-overflow:ellipsis;line-height:1.3;overflow:hidden}.soldier-actions{flex-shrink:0;align-items:center;display:flex}.roster-filter-bar{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);border-bottom:1px solid var(--color-border);background:var(--color-bg);display:flex}.roster-search-input{background:var(--color-surface);min-width:0;color:var(--color-text);border:1px solid var(--color-border);border-radius:var(--radius);padding:0 var(--space-3);font-size:var(--font-size-sm);font-family:var(--font-family);flex:1;height:40px}.roster-search-input:focus{outline:2px solid var(--color-primary);outline-offset:1px;border-color:var(--color-primary)}.view-mode-toggle{flex-shrink:0;align-items:center;gap:2px;display:flex}.view-mode-btn{border:1px solid var(--color-border);border-radius:var(--radius);cursor:pointer;width:40px;height:40px;color:var(--color-text-muted);background:0 0;flex-shrink:0;justify-content:center;align-items:center;display:flex}.view-mode-btn--active{background:var(--color-primary-soft);border-color:var(--color-primary);color:var(--color-primary)}.view-mode-btn:active{opacity:.75}.sort-icon-btn{border:1px solid var(--color-border);border-radius:var(--radius);cursor:pointer;width:40px;height:40px;color:var(--color-text-secondary);font-family:var(--font-family);background:0 0;flex-shrink:0;justify-content:center;align-items:center;display:flex}.sort-icon-btn:active{background:var(--color-surface)}.sort-menu-item{width:100%;min-height:48px;padding:0 var(--space-4);border:none;border-bottom:1px solid var(--color-border);color:var(--color-text);font-size:var(--font-size-sm);font-weight:600;font-family:var(--font-family);cursor:pointer;text-align:left;background:0 0;justify-content:space-between;align-items:center;display:flex}.sort-menu-item:active{background:var(--color-bg)}.sort-menu-item--active{color:var(--color-primary)}.sort-menu-item__check{color:var(--color-primary);font-weight:700}.flat-list{flex-direction:column;display:flex}.flat-list__header{padding:var(--space-2) var(--space-4);background:var(--color-surface);border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;display:flex}.flat-list__count{font-size:var(--font-size-sm);color:var(--color-text-muted)}.flat-list__empty{padding:var(--space-6) var(--space-4);text-align:center;color:var(--color-text-muted);font-size:var(--font-size-sm);line-height:1.6}.flat-list .soldier-row{padding-left:var(--space-4)}.soldier-row--selectable{cursor:pointer}.soldier-row--selectable:active{opacity:.75}.soldier-row--selected{background:var(--color-primary-soft)}.soldier-checkbox{width:22px;height:22px;accent-color:var(--color-primary);cursor:pointer;flex-shrink:0}.soldier-unit-path{font-size:var(--font-size-xs);color:var(--color-text-muted);margin-top:1px;line-height:1.4;display:block}.bulk-action-bar{bottom:calc(56px + env(safe-area-inset-bottom,0px));justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);background:var(--color-surface);border-top:2px solid var(--color-primary);z-index:60;display:flex;position:fixed;left:0;right:0}.bulk-action-bar__count{font-size:var(--font-size-sm);color:var(--color-text);font-weight:700}.soldier-row--tappable{cursor:pointer}.soldier-row--tappable:active{background:var(--color-surface)}.sh-soldier-meta{padding:var(--space-2) var(--space-4);background:var(--color-surface);border-bottom:1px solid var(--color-border)}.sh-soldier-meta__unit{font-size:var(--font-size-xs);color:var(--color-text-muted)}.sh-section-label{padding:var(--space-2) var(--space-4) var(--space-1);font-size:var(--font-size-xs);letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-muted);border-bottom:1px solid var(--color-border);background:var(--color-bg);font-weight:700}.sh-item{gap:var(--space-1);padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-border);flex-direction:column;display:flex}.sh-item__top{justify-content:space-between;align-items:center;gap:var(--space-2);display:flex}.sh-item__name{color:var(--color-text);flex:1;min-width:0;font-size:.97rem;font-weight:700}.sh-item__meta{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.sh-item__date{font-size:var(--font-size-xs);color:var(--color-text-muted)}.sh-item__type{font-size:var(--font-size-xs);color:var(--color-text-muted);background:var(--color-surface);border:1px solid var(--color-border);white-space:nowrap;border-radius:4px;padding:1px 6px;font-weight:700}.sh-item__notes{font-size:var(--font-size-xs);color:var(--color-text-secondary);margin-top:2px;line-height:1.5}.sh-empty{padding:48px var(--space-4);text-align:center;color:var(--color-text-muted);font-size:var(--font-size-sm);line-height:1.6}.sh-outcome-badge{font-size:var(--font-size-xs);white-space:nowrap;border:1px solid #0000;border-radius:100px;flex-shrink:0;padding:2px 9px;font-weight:700;display:inline-block}.sh-outcome-badge--pass{color:var(--color-success);border-color:var(--color-success);background:#4caf5026}.sh-outcome-badge--fail{color:var(--color-danger);border-color:var(--color-danger);background:#f4433626}.sh-outcome-badge--pending{color:var(--color-pending);border-color:var(--color-border);background:0 0}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (width>=900px){.roster-header{top:0}}.form-overlay{z-index:200;background:#0000008c;flex-direction:column;justify-content:flex-end;display:flex;position:fixed;inset:0}.form-sheet{background:var(--color-bg);border-radius:var(--radius) var(--radius) 0 0;flex-direction:column;min-height:50dvh;max-height:92vh;display:flex;overflow:hidden}.form-header{padding:0 var(--space-2) 0 var(--space-4);border-bottom:1px solid var(--color-border);background:var(--color-surface);align-items:center;gap:var(--space-2);flex-shrink:0;height:52px;display:flex}.form-header__title{color:var(--color-text);text-align:center;flex:1;margin:0;font-size:.97rem;font-weight:700}.form-header__cancel{color:var(--color-text-secondary);font-size:var(--font-size-sm);cursor:pointer;min-height:44px;padding:0 var(--space-2);font-weight:600;font-family:var(--font-family);background:0 0;border:none;flex-shrink:0;width:64px}.form-header__spacer{flex-shrink:0;width:64px}.form-header__save{color:var(--color-primary);font-size:var(--font-size-sm);cursor:pointer;min-height:44px;padding:0 var(--space-2);font-weight:700;font-family:var(--font-family);text-align:right;background:0 0;border:none;flex-shrink:0;width:64px}.form-header__save:disabled{color:var(--color-text-muted);cursor:not-allowed}.form-body{-webkit-overflow-scrolling:touch;padding:var(--space-4);padding-bottom:max(var(--space-4), env(safe-area-inset-bottom,0px));gap:var(--space-3);flex-direction:column;flex:1;display:flex;overflow-y:auto}.form-footer{padding:var(--space-3) var(--space-4);border-top:1px solid var(--color-border);background:var(--color-bg);padding-bottom:max(var(--space-3), env(safe-area-inset-bottom,0px));flex-shrink:0}.form-footer .btn{width:100%}.form-field{gap:var(--space-1);flex-direction:column;display:flex}.form-label{font-size:var(--font-size-sm);color:var(--color-text-secondary);font-weight:600}.form-required{color:var(--color-danger);margin-left:2px}.form-optional{color:var(--color-text-muted);margin-left:2px;font-weight:400}.form-hint{font-size:var(--font-size-xs);color:var(--color-text-muted);line-height:1.4}.form-preview{font-size:var(--font-size-sm);color:var(--color-primary);padding:var(--space-2) var(--space-3);background:var(--color-primary-soft);border-radius:var(--radius);font-weight:700}.form-suggestion-btn{align-items:center;gap:var(--space-1);margin-top:var(--space-1);padding:var(--space-1) var(--space-2);background:var(--color-primary-soft);border:1px solid var(--color-primary);border-radius:var(--radius);color:var(--color-primary);font-size:var(--font-size-xs);cursor:pointer;font-weight:600;font-family:var(--font-family);display:inline-flex}.form-suggestion-btn:active{opacity:.75}.form-input,.form-select,.form-textarea{background:var(--color-surface);color:var(--color-text);border:1px solid var(--color-border);border-radius:var(--radius);padding:0 var(--space-3);font-size:.97rem;font-family:var(--font-family);box-sizing:border-box;width:100%;min-width:0;max-width:100%;min-height:48px;display:block}.form-input:focus,.form-select:focus,.form-textarea:focus{outline:2px solid var(--color-primary);outline-offset:2px;border-color:var(--color-primary)}.form-textarea{padding-top:var(--space-3);padding-bottom:var(--space-3);resize:vertical;min-height:88px;line-height:1.5}.form-select{appearance:auto;cursor:pointer}.form-select--compact{flex-shrink:0;width:auto}.form-input[type=date],.form-input[type=time],.form-input--time{appearance:none;box-sizing:border-box;width:100%;min-width:0;padding-top:13px;padding-bottom:13px;line-height:1.2}.form-inline{gap:var(--space-2);align-items:center;display:flex}.form-inline .form-input{flex:1;min-width:0}.form-row{gap:var(--space-3);align-items:flex-start;display:flex}.form-field--half,.form-field--third{flex:1;min-width:0}.threshold-label--expert{color:var(--color-qual-expert)}.threshold-label--sharpshooter{color:var(--color-qual-sharpshooter)}.threshold-label--marksman{color:var(--color-qual-marksman)}.form-toggle-row{justify-content:space-between;align-items:center;gap:var(--space-2);cursor:pointer;min-height:32px;display:flex}.form-toggle{width:20px;height:20px;accent-color:var(--color-primary);cursor:pointer;flex-shrink:0}.thresholds-group{padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface)}.form-error{background:var(--color-surface);border:1px solid var(--color-danger);border-radius:var(--radius);padding:var(--space-3);color:var(--color-danger);font-size:var(--font-size-sm);line-height:1.5}.confirm-overlay{z-index:300;background:#000000a6;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.confirm-dialog{background:var(--color-surface);gap:var(--space-3);border-radius:20px;flex-direction:column;width:100%;max-width:340px;padding:24px;display:flex}.confirm-dialog__title{color:var(--color-text);margin:0;font-size:1.05rem;font-weight:700}.confirm-dialog__message{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin:0;line-height:1.6}.confirm-dialog__actions{gap:var(--space-2);margin-top:var(--space-1);justify-content:flex-end;display:flex}.fab-container{bottom:calc(56px + env(safe-area-inset-bottom,0px) + 16px);right:var(--space-4);z-index:50;align-items:flex-end;gap:var(--space-2);flex-direction:column;display:flex;position:fixed}.fab{background:var(--color-primary);width:56px;height:56px;color:var(--color-on-primary);cursor:pointer;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:1.6rem;line-height:1;display:flex;box-shadow:0 4px 16px #00000073}.fab:active{opacity:.8;transform:scale(.96)}.fab-menu{align-items:flex-end;gap:var(--space-2);flex-direction:column;display:flex}.fab-option{align-items:center;gap:var(--space-2);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:0 var(--space-3);cursor:pointer;color:var(--color-text);font-size:var(--font-size-sm);font-weight:700;font-family:var(--font-family);white-space:nowrap;min-height:44px;display:flex;box-shadow:0 2px 8px #00000059}.fab-option:active{background:var(--color-bg-raised)}.form-input-prefixed{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);align-items:stretch;min-height:48px;display:flex;overflow:hidden}.form-input-prefixed:focus-within{outline:2px solid var(--color-primary);outline-offset:2px;border-color:var(--color-primary)}.form-input-prefix{padding:0 var(--space-3);letter-spacing:.04em;color:var(--color-primary);background:var(--color-primary-soft);border-right:1px solid var(--color-border);white-space:nowrap;flex-shrink:0;align-items:center;font-size:.97rem;font-weight:800;display:flex}.form-input-core{min-width:0;color:var(--color-text);font-family:var(--font-family);padding:0 var(--space-3);background:0 0;border:none;outline:none;flex:1;min-height:48px;font-size:.97rem}.form-input-core::placeholder{color:var(--color-text-faint)}@media (width>=600px){.form-overlay{justify-content:center;align-items:center}.form-sheet{border-radius:var(--radius);width:100%;max-width:540px;min-height:0;max-height:85vh}}.events-screen{min-height:100%;padding-bottom:calc(56px + env(safe-area-inset-bottom,0px) + 88px);flex-direction:column;display:flex}.events-header{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);background-color:var(--color-surface);border-bottom:1px solid var(--color-border);z-index:10;flex-shrink:0;min-height:52px;display:flex;position:sticky;top:56px}.events-title{font-size:var(--font-size-sm);letter-spacing:.1em;text-transform:uppercase;color:var(--color-text-muted);flex:1;margin:0;font-weight:700}.event-list{gap:var(--space-3);padding:var(--space-3) var(--space-4);flex-direction:column;display:flex}.event-card-row{border-radius:var(--radius);position:relative;overflow:hidden}.event-card__delete-action{cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;width:80px;padding:0 12px 0 0;display:flex;position:absolute;top:0;bottom:0;right:0}.event-card__delete-action:before{content:"";display:none}.event-card__delete-icon{background:var(--color-danger);color:#fff;border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;width:52px;height:52px;display:flex}.event-card{z-index:1;background:var(--color-surface);border-radius:var(--radius);padding:var(--space-4);border:1px solid var(--color-border);cursor:pointer;gap:var(--space-2);flex-direction:column;display:flex;position:relative}.event-card:active{border-color:var(--color-primary)}.event-card__top{align-items:flex-start;gap:var(--space-2);display:flex}.event-card__name{color:var(--color-text);flex:1;margin:0;font-size:1rem;font-weight:700;line-height:1.3}.event-card__hover-delete{display:none}@media (hover:hover){.event-card__hover-delete{color:var(--color-text-faint);cursor:pointer;border-radius:var(--radius);opacity:0;background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;min-width:32px;min-height:32px;padding:4px;transition:opacity .15s,color .15s;display:flex}.event-card-row:hover .event-card__hover-delete{opacity:1}.event-card__hover-delete:hover{color:var(--color-danger);background:#f4433614}}.event-card__meta{font-size:var(--font-size-sm);color:var(--color-text-muted);margin:0}.event-card__pills{gap:var(--space-1);margin-top:var(--space-1);flex-wrap:wrap;display:flex}.pill{font-size:var(--font-size-xs);border:1px solid #0000;border-radius:12px;align-items:center;padding:2px 8px;font-weight:700;display:inline-flex}.pill--total{color:var(--color-info);background:#448aff1f;border-color:#448aff59}.pill--pass{color:var(--color-success);background:#4caf501f;border-color:#4caf5059}.pill--fail{color:var(--color-danger);background:#f443361f;border-color:#f4433659}.pill--pending{color:var(--color-pending);background:#9e9e9e1f;border-color:#9e9e9e59}.status-badge{font-size:var(--font-size-xs);border-radius:4px;flex-shrink:0;padding:2px 8px;font-weight:700}.status-badge--planning{color:var(--color-info);background:#448aff26}.status-badge--active{color:var(--color-success);background:#4caf5026}.status-badge--complete{color:var(--color-pending);background:#9e9e9e26}.events-empty{justify-content:center;align-items:center;gap:var(--space-3);padding:64px var(--space-4);text-align:center;flex-direction:column;flex:1;display:flex}.events-empty__message{color:var(--color-text);font-size:1.15rem;font-weight:600}.events-empty__hint{color:var(--color-text-muted);font-size:var(--font-size-sm);max-width:280px;margin-bottom:var(--space-2);line-height:1.6}.events-loading{padding:64px var(--space-4);text-align:center;color:var(--color-text-muted);font-size:var(--font-size-sm)}.detail-screen{min-height:100%;padding-bottom:calc(56px + env(safe-area-inset-bottom,0px) + 88px);flex-direction:column;display:flex}.detail-sticky-top{z-index:10;flex-shrink:0;position:sticky;top:56px}.detail-header{gap:var(--space-1);padding:var(--space-3) var(--space-4) var(--space-2);background:var(--color-surface);border-bottom:1px solid var(--color-border);flex-direction:column;display:flex}.detail-header__nav{align-items:center;gap:var(--space-2);min-height:32px;display:flex}.detail-header__back{color:var(--color-text-secondary);font-size:var(--font-size-sm);cursor:pointer;font-weight:600;font-family:var(--font-family);align-items:center;gap:var(--space-1);background:0 0;border:none;min-width:36px;min-height:36px;padding:0;display:flex}.detail-header__back:active{opacity:.7}.detail-header__name{color:var(--color-text);text-overflow:ellipsis;white-space:nowrap;flex:1;margin:0;font-size:1rem;font-weight:800;overflow:hidden}.detail-header__row2{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.detail-header__meta{font-size:var(--font-size-sm);color:var(--color-text-muted);flex:1}.summary-bar{background:var(--color-bg-raised);border-bottom:1px solid var(--color-border);padding:var(--space-3);align-items:stretch;gap:var(--space-2);-webkit-overflow-scrolling:touch;scrollbar-width:none;flex-wrap:nowrap;flex-shrink:0;display:flex;overflow-x:auto}.summary-bar::-webkit-scrollbar{display:none}.summary-stat{padding:var(--space-3) var(--space-2);border-radius:var(--radius);font-family:var(--font-family);cursor:pointer;background:0 0;border:1.5px solid #0000;flex-direction:column;flex:1 0 60px;justify-content:center;align-items:center;gap:3px;transition:background 80ms;display:flex}.summary-stat--total{border-color:#448aff66}.summary-stat--pass{border-color:#4caf5066}.summary-stat--fail{border-color:#f4433666}.summary-stat--pending{border-color:#9e9e9e4d}.summary-stat__value{font-size:1.5rem;font-weight:800;line-height:1}.summary-stat__label{font-size:var(--font-size-xs);letter-spacing:.05em;text-transform:uppercase;color:var(--color-text-muted);font-weight:700}.summary-stat--total .summary-stat__value{color:var(--color-info)}.summary-stat--pass .summary-stat__value{color:var(--color-success)}.summary-stat--fail .summary-stat__value{color:var(--color-danger)}.summary-stat--pending .summary-stat__value{color:var(--color-pending)}.add-participants-bar{gap:var(--space-2);padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-border);background:var(--color-bg);display:flex}.add-participants-bar .btn{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.participant-list{flex-direction:column;display:flex}.participant-list__controls{justify-content:space-between;align-items:center;gap:var(--space-1) var(--space-2);padding:var(--space-2) var(--space-4);border-bottom:1px solid var(--color-border);background:var(--color-surface);flex-wrap:wrap;min-height:44px;display:flex}.participant-list__count{font-size:var(--font-size-xs);letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-muted);font-weight:700}.participant-row-wrap{position:relative;overflow:hidden}.participant-row__delete-action{width:var(--participant-delete-width,72px);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:0 10px 0 0;display:flex;position:absolute;top:0;bottom:0;right:0}.participant-row__delete-icon{background:var(--color-danger);color:#fff;border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:48px;height:48px;display:flex}.participant-row-slide{background:var(--color-bg)}.participant-row{align-items:center;gap:var(--space-3);min-height:56px;padding:var(--space-2) var(--space-4) var(--space-2) var(--space-3);border-bottom:1px solid var(--color-border);background:var(--color-bg);cursor:pointer;display:flex}.participant-row--selected{background:var(--color-primary-soft)}.participant-row:active{opacity:.8}.participant-row__hover-delete{display:none}@media (hover:hover){.participant-row__hover-delete{color:var(--color-text-faint);cursor:pointer;border-radius:var(--radius);opacity:0;background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;min-width:32px;min-height:32px;padding:4px;transition:opacity .15s,color .15s,background .15s;display:flex}.participant-row-slide:hover .participant-row__hover-delete{opacity:1}.participant-row__hover-delete:hover{color:var(--color-danger);background:#f4433614}}.participant-checkbox{width:22px;height:22px;accent-color:var(--color-primary);cursor:pointer;flex-shrink:0}.participant-avatar{width:36px;height:36px;font-size:var(--font-size-xs);letter-spacing:.02em;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-weight:800;display:flex}.participant-avatar--pass{color:var(--color-success);background:#4caf5026}.participant-avatar--fail{color:var(--color-danger);background:#f4433626}.participant-avatar--pending{color:var(--color-pending);background:#9e9e9e1f}.participant-main{flex-direction:column;flex:1;gap:1px;min-width:0;display:flex}.participant-name{color:var(--color-text);white-space:nowrap;text-overflow:ellipsis;font-size:.97rem;font-weight:600;overflow:hidden}.participant-sub{font-size:var(--font-size-xs);color:var(--color-text-muted);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.outcome-badge{font-size:var(--font-size-xs);letter-spacing:.06em;cursor:pointer;text-align:center;min-width:56px;font-weight:800;font-family:var(--font-family);background:0 0;border:1px solid #0000;border-radius:4px;flex-shrink:0;padding:4px 10px}.outcome-badge--pass{color:var(--color-success);border-color:var(--color-success);background:#4caf5026}.outcome-badge--fail{color:var(--color-danger);border-color:var(--color-danger);background:#f4433626}.outcome-badge--pending{color:var(--color-pending);border-color:var(--color-border);background:0 0}.outcome-badge:active{opacity:.75}.outcome-badge{pointer-events:none}.event-bulk-bar{bottom:calc(56px + env(safe-area-inset-bottom,0px));align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);background:var(--color-surface);border-top:2px solid var(--color-primary);z-index:60;flex-wrap:wrap;display:flex;position:fixed;left:0;right:0}.event-bulk-bar__count{font-size:var(--font-size-sm);color:var(--color-text);white-space:nowrap;flex:1;font-weight:700}.event-bulk-bar__actions{gap:var(--space-2);flex-wrap:wrap;display:flex}.picker-overlay{z-index:200;background:#0000008c;flex-direction:column;justify-content:flex-end;display:flex;position:fixed;inset:0}.picker-sheet{background:var(--color-bg);border-radius:var(--radius) var(--radius) 0 0;flex-direction:column;height:90vh;max-height:90vh;display:flex;overflow:hidden}@media (width>=600px){.picker-overlay{justify-content:center;align-items:center}.picker-sheet{border-radius:var(--radius);width:100%;max-width:540px;height:auto;max-height:85vh}}.picker-empty{padding:48px var(--space-4);color:var(--color-text-muted);font-size:var(--font-size-sm);text-align:center;flex:1;justify-content:center;align-items:center;display:flex}.picker-unit-row{align-items:center;gap:var(--space-2);padding:0 var(--space-4);border-bottom:1px solid var(--color-border);background:var(--color-surface);min-height:48px;display:flex}.picker-unit-toggle{align-items:center;gap:var(--space-2);color:var(--color-text);font-size:.93rem;font-weight:700;font-family:var(--font-family);cursor:pointer;text-align:left;background:0 0;border:none;flex:1;min-height:48px;padding:0;display:flex}.picker-unit-chevron{font-size:var(--font-size-xs);color:var(--color-text-muted);flex-shrink:0;width:12px}.picker-unit-name{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.picker-unit-count{font-size:var(--font-size-xs);color:var(--color-text-muted);font-weight:700}.picker-unit-select-btn{border:1px solid var(--color-border);border-radius:var(--radius);color:var(--color-primary);font-size:var(--font-size-xs);font-weight:700;font-family:var(--font-family);cursor:pointer;white-space:nowrap;background:0 0;flex-shrink:0;padding:4px 8px}.picker-unit-select-btn:active{opacity:.7}.picker-soldier-row{align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-4) var(--space-2) 40px;border-bottom:1px solid var(--color-border);background:var(--color-bg);cursor:pointer;min-height:52px;display:flex}.picker-soldier-row--disabled{opacity:.38;cursor:not-allowed}.picker-soldier-row--selected{background:var(--color-primary-soft)}.picker-soldier-rank{font-size:var(--font-size-xs);color:var(--color-primary);flex-shrink:0;width:32px;font-weight:800}.picker-soldier-name{color:var(--color-text);flex:1;font-size:.93rem;font-weight:600}.picker-already-added{font-size:var(--font-size-xs);color:var(--color-text-muted);font-style:italic}.summary-stat:active{opacity:.75}.summary-stat--total.summary-stat--active{border-color:var(--color-info);background:#448aff1f}.summary-stat--pass.summary-stat--active{border-color:var(--color-success);background:#4caf501f}.summary-stat--fail.summary-stat--active{border-color:var(--color-danger);background:#f443361f}.summary-stat--pending.summary-stat--active{border-color:var(--color-pending);background:#9e9e9e1f}.list-filter-bar{gap:var(--space-2);padding:var(--space-2) var(--space-4);border-bottom:1px solid var(--color-border);background:var(--color-surface);align-items:center;display:flex}.list-filter-bar__search{background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius);min-width:0;color:var(--color-text);font-family:var(--font-family);font-size:var(--font-size-sm);outline:none;flex:1;min-height:36px;padding:8px 12px}.list-filter-bar__search:focus{border-color:var(--color-primary)}.list-filter-bar__search::placeholder{color:var(--color-text-muted)}.sort-menu-container{flex-shrink:0;position:relative}.sort-menu-btn{background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius);width:36px;height:36px;color:var(--color-text-muted);cursor:pointer;justify-content:center;align-items:center;transition:border-color 80ms,color 80ms;display:flex}.sort-menu-btn svg{fill:currentColor;width:20px;height:20px}.sort-menu-btn--open,.sort-menu-btn:active{border-color:var(--color-primary);color:var(--color-primary)}.sort-menu-backdrop{z-index:98;position:fixed;inset:0}.sort-menu{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);z-index:99;min-width:148px;position:absolute;top:calc(100% + 4px);right:0;overflow:hidden;box-shadow:0 6px 20px #00000059}.sort-menu-item{border:none;border-bottom:1px solid var(--color-border);width:100%;color:var(--color-text);font-family:var(--font-family);font-size:var(--font-size-sm);cursor:pointer;text-align:left;background:0 0;justify-content:space-between;align-items:center;padding:13px 16px;font-weight:500;display:flex}.sort-menu-item:last-child{border-bottom:none}.sort-menu-item:active{opacity:.7}.sort-menu-item--active{color:var(--color-primary);font-weight:700}.sort-menu-item__check{opacity:.9;font-size:.75rem}.status-menu-btn{font-size:var(--font-size-xs);font-weight:700;font-family:var(--font-family);cursor:pointer;white-space:nowrap;border:none;border-radius:4px;flex-shrink:0;align-items:center;gap:3px;padding:3px 8px;display:inline-flex}.status-menu-btn:active{opacity:.75}.status-menu-btn__caret{opacity:.7;margin-top:1px;font-size:.6rem}.status-picker-list{padding:var(--space-2) 0;padding-bottom:max(var(--space-2), env(safe-area-inset-bottom,0px));flex-direction:column;display:flex}.status-picker-item{align-items:center;gap:var(--space-3);min-height:60px;padding:var(--space-3) var(--space-4);border:none;border-bottom:1px solid var(--color-border);font-family:var(--font-family);cursor:pointer;text-align:left;background:0 0;display:flex}.status-picker-item:last-child{border-bottom:none}.status-picker-item:active,.status-picker-item--selected{background:var(--color-surface)}.status-picker-item__check{color:var(--color-primary);margin-left:auto;font-size:1rem;font-weight:700}.filter-clear-btn{margin-left:var(--space-2);border:1px solid var(--color-border);color:var(--color-text-muted);font-size:var(--font-size-xs);font-family:var(--font-family);cursor:pointer;background:0 0;border-radius:12px;padding:2px 8px;font-weight:700}.filter-clear-btn:active{opacity:.7}.participant-notes-dot{color:var(--color-primary);margin-left:2px;font-weight:900}.score-sheet-overlay{z-index:200;background:#000000c7;flex-direction:column;justify-content:flex-end;align-items:center;display:flex;position:fixed;inset:0}.score-sheet{background:var(--color-bg);border-radius:var(--radius) var(--radius) 0 0;padding-bottom:env(safe-area-inset-bottom,0px);flex-direction:column;width:100%;max-width:520px;display:flex;overflow:hidden}.score-sheet__header{align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-border);background:var(--color-surface);min-height:56px;display:flex}.score-sheet__title{flex-direction:column;flex:1;gap:2px;display:flex;overflow:hidden}.score-sheet__name{color:var(--color-text);white-space:nowrap;text-overflow:ellipsis;font-size:1rem;font-weight:700;overflow:hidden}.score-sheet__unit{font-size:var(--font-size-xs);color:var(--color-text-muted);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.score-sheet__buttons{gap:var(--space-3);padding:var(--space-4);background:var(--color-bg);display:flex}.score-sheet__outcome-btn{padding:20px var(--space-3);border-radius:var(--radius);letter-spacing:.12em;font-size:1.25rem;font-weight:800;font-family:var(--font-family);cursor:pointer;border:2px solid #0000;flex:1}.score-sheet__outcome-btn--pass{color:#4caf5073;background:#4caf500f;border-color:#4caf5040}.score-sheet__outcome-btn--pass.score-sheet__outcome-btn--active{border-color:var(--color-success);color:var(--color-success);background:#4caf502e}.score-sheet__outcome-btn--fail{color:#f4433673;background:#f443360f;border-color:#f4433640}.score-sheet__outcome-btn--fail.score-sheet__outcome-btn--active{border-color:var(--color-danger);color:var(--color-danger);background:#f443362e}.score-sheet__outcome-btn:active{opacity:.75}.score-sheet__notes-section{gap:var(--space-2);padding:0 var(--space-4) var(--space-3);background:var(--color-bg);flex-direction:column;display:flex}.score-sheet__notes{resize:none}.score-sheet__body{-webkit-overflow-scrolling:touch;min-height:0;padding:var(--space-4);gap:var(--space-3);flex-direction:column;flex:1;display:flex;overflow-y:auto}.score-sheet__footer{gap:var(--space-2);padding:var(--space-3) var(--space-4);border-top:1px solid var(--color-border);background:var(--color-surface);display:flex}@media (width>=600px){.score-sheet-overlay{justify-content:center}.score-sheet{border-radius:var(--radius);max-height:85vh}}.participant-avatar--expert{color:var(--color-qual-expert);background:#ffc10726}.participant-avatar--sharpshooter{color:var(--color-qual-sharpshooter);background:#29b6f626}.participant-avatar--marksman,.participant-avatar--qualified{color:var(--color-qual-marksman);background:#4caf5026}.participant-avatar--unqualified{color:var(--color-qual-unqualified);background:#f4433626}.qual-badge{font-size:var(--font-size-xs);letter-spacing:.05em;text-align:center;border:1px solid #0000;border-radius:4px;flex-shrink:0;min-width:52px;padding:3px 7px;font-weight:800}.qual-badge--expert{color:var(--color-qual-expert);border-color:var(--color-qual-expert);background:#ffc1071f}.qual-badge--sharpshooter{color:var(--color-qual-sharpshooter);border-color:var(--color-qual-sharpshooter);background:#29b6f61f}.qual-badge--marksman,.qual-badge--qualified{color:var(--color-qual-marksman);border-color:var(--color-qual-marksman);background:#4caf501f}.qual-badge--unqualified{color:var(--color-qual-unqualified);border-color:var(--color-qual-unqualified);background:#f443361f}.qual-badge--pending{color:var(--color-qual-pending);border-color:var(--color-border);background:0 0}.wq-score-col{flex-direction:column;flex-shrink:0;align-items:flex-end;gap:3px;display:flex}.wq-score-value{color:var(--color-text);font-size:1rem;font-weight:800;line-height:1}.wq-score-max{font-size:var(--font-size-xs);color:var(--color-text-muted);font-weight:400}.wq-summary-bar{-webkit-overflow-scrolling:touch;scrollbar-width:none;flex-wrap:nowrap;overflow-x:auto}.wq-summary-bar::-webkit-scrollbar{display:none}.summary-stat--expert{border-color:#ffc10766}.summary-stat--sharpshooter{border-color:#29b6f666}.summary-stat--marksman,.summary-stat--qualified{border-color:#4caf5066}.summary-stat--unqualified{border-color:#f4433666}.summary-stat--expert .summary-stat__value{color:var(--color-qual-expert)}.summary-stat--sharpshooter .summary-stat__value{color:var(--color-qual-sharpshooter)}.summary-stat--marksman .summary-stat__value,.summary-stat--qualified .summary-stat__value{color:var(--color-qual-marksman)}.summary-stat--unqualified .summary-stat__value{color:var(--color-qual-unqualified)}.summary-stat--expert.summary-stat--active{border-color:var(--color-qual-expert);background:#ffc1071a}.summary-stat--sharpshooter.summary-stat--active{border-color:var(--color-qual-sharpshooter);background:#29b6f61a}.summary-stat--marksman.summary-stat--active,.summary-stat--qualified.summary-stat--active{border-color:var(--color-qual-marksman);background:#4caf501a}.summary-stat--unqualified.summary-stat--active{border-color:var(--color-qual-unqualified);background:#f443361a}.qual-preview{padding:var(--space-3) var(--space-4);border-radius:var(--radius);border:2px solid #0000;justify-content:space-between;align-items:center;display:flex}.qual-preview--expert{border-color:var(--color-qual-expert);background:#ffc10714}.qual-preview--sharpshooter{border-color:var(--color-qual-sharpshooter);background:#29b6f614}.qual-preview--marksman,.qual-preview--qualified{border-color:var(--color-qual-marksman);background:#4caf5014}.qual-preview--unqualified{border-color:var(--color-qual-unqualified);background:#f4433614}.qual-preview__level{letter-spacing:.06em;font-size:1rem;font-weight:800}.qual-preview--expert .qual-preview__level{color:var(--color-qual-expert)}.qual-preview--sharpshooter .qual-preview__level{color:var(--color-qual-sharpshooter)}.qual-preview--marksman .qual-preview__level,.qual-preview--qualified .qual-preview__level{color:var(--color-qual-marksman)}.qual-preview--unqualified .qual-preview__level{color:var(--color-qual-unqualified)}.qual-preview__expires{font-size:var(--font-size-sm);color:var(--color-text-muted)}.type-chooser-option{align-items:center;gap:var(--space-3);padding:var(--space-4);border:1.5px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);cursor:pointer;text-align:left;font-family:var(--font-family);width:100%;transition:border-color .1s,background .1s;display:flex}.type-chooser-option:active{border-color:var(--color-primary);background:var(--color-primary-soft)}@media (hover:hover){.type-chooser-option:hover{border-color:var(--color-primary)}}.type-chooser-option--disabled{opacity:.4;cursor:not-allowed}.type-chooser-option--disabled:active{border-color:var(--color-border);background:var(--color-surface)}.type-chooser-option__icon{width:48px;height:48px;color:var(--color-text-secondary);background:#9e9e9e1f;border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.type-chooser-option__icon--qual{color:var(--color-qual-marksman);background:#4caf501f}.type-chooser-option__icon--nav{color:var(--color-info);background:#448aff1f}.type-chooser-option__text{flex-direction:column;flex:1;gap:3px;display:flex;overflow:hidden}.type-chooser-option__title{color:var(--color-text);align-items:center;gap:var(--space-2);flex-wrap:wrap;font-size:1rem;font-weight:700;display:flex}.type-chooser-option__desc{font-size:var(--font-size-sm);color:var(--color-text-muted);line-height:1.4}.type-chooser-option__coming-soon{font-size:var(--font-size-xs);color:var(--color-pending);letter-spacing:.03em;background:#9e9e9e26;border-radius:10px;padding:2px 7px;font-weight:700}.type-chooser-option__chevron{color:var(--color-text-muted);flex-shrink:0;font-size:1.4rem;line-height:1}.segmented-control{border:1.5px solid var(--color-border);border-radius:var(--radius);background:var(--color-bg);display:flex;overflow:hidden}.segmented-control__btn{padding:10px var(--space-2);border:none;border-right:1.5px solid var(--color-border);color:var(--color-text-secondary);font-family:var(--font-family);font-size:var(--font-size-sm);cursor:pointer;background:0 0;flex:1;font-weight:700;transition:background 80ms,color 80ms}.segmented-control__btn:last-child{border-right:none}.segmented-control__btn:active{opacity:.7}.segmented-control__btn--active{background:var(--color-primary);color:var(--color-on-primary);border-right-color:var(--color-primary)}.segmented-control__btn--add{color:var(--color-primary);border-right:none;flex:0 0 44px;font-size:1.2rem;font-weight:400}.segmented-control__btn--add.segmented-control__btn--active{background:var(--color-primary);color:var(--color-on-primary)}.view-toggle{background:var(--color-surface);border-bottom:1px solid var(--color-border);flex-shrink:0;display:flex}.view-toggle__btn{padding:var(--space-3) var(--space-4);color:var(--color-text-muted);font-family:var(--font-family);font-size:var(--font-size-sm);cursor:pointer;letter-spacing:.04em;background:0 0;border:none;border-bottom:2.5px solid #0000;flex:1;font-weight:700;transition:color .1s,border-color .1s}.view-toggle__btn--active{color:var(--color-primary);border-bottom-color:var(--color-primary)}.view-toggle__btn:active{opacity:.75}.range-board{flex-direction:column;flex:1;display:flex}.range-board__toolbar{justify-content:space-between;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);background:var(--color-surface);border-bottom:1px solid var(--color-border);flex-wrap:wrap;min-height:52px;display:flex}.range-board__hint{font-size:var(--font-size-sm);color:var(--color-text-muted);flex:1;line-height:1.4}.iteration-rows{padding-bottom:var(--space-4);flex-direction:column;display:flex}.iteration-row{flex-direction:column;display:flex}.iteration-row__header{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4) var(--space-2);display:flex}.iteration-row__label{font-size:var(--font-size-xs);letter-spacing:.12em;text-transform:uppercase;white-space:nowrap;flex-shrink:0;font-weight:800}.iteration-row__label--shooting{color:var(--color-success)}.iteration-row__label--ondeck{color:var(--color-pending)}.iteration-row__divider{background:var(--color-border);flex:1;height:1px}.iteration-row__lanes{gap:var(--space-2);-webkit-overflow-scrolling:touch;scrollbar-width:none;padding:0 var(--space-4) var(--space-3);display:flex;overflow-x:auto}.iteration-row__lanes::-webkit-scrollbar{display:none}.iteration-row__lanes .lane-card{flex-shrink:0;width:108px;min-height:96px}.lane-grid{gap:var(--space-3);padding:var(--space-3) var(--space-4);grid-template-columns:repeat(2,1fr);display:grid}@media (width>=480px){.lane-grid{grid-template-columns:repeat(3,1fr)}}@media (width>=720px){.lane-grid{grid-template-columns:repeat(4,1fr)}}.lane-card{padding:28px var(--space-2) var(--space-3);border-radius:var(--radius);border:2px solid var(--color-border);background:var(--color-surface);cursor:default;text-align:center;-webkit-tap-highlight-color:transparent;flex-direction:column;justify-content:center;align-items:center;gap:4px;min-height:100px;display:flex;position:relative}.lane-card[role=button]{cursor:pointer}.lane-card[role=button]:active{opacity:.75}.lane-card--shooting{border-color:var(--color-success);background:#4caf500f}.lane-card--ondeck{border-color:var(--color-border)}.lane-card--done{border-color:var(--color-border);opacity:.6}.lane-card--closed{opacity:.55;background:#f443360d;border-color:#f4433659}.lane-card--empty{border-color:var(--color-border);border-style:dashed}.lane-card__num{top:var(--space-2);left:var(--space-2);font-size:var(--font-size-xs);letter-spacing:.06em;text-transform:uppercase;color:var(--color-text-muted);font-weight:700;line-height:1;position:absolute}.lane-card__rank{font-size:var(--font-size-xs);color:var(--color-primary);font-weight:800}.lane-card__name{color:var(--color-text);text-overflow:ellipsis;white-space:nowrap;max-width:100%;padding:0 var(--space-3);font-size:.93rem;font-weight:700;overflow:hidden}.lane-card__status-badge{font-size:var(--font-size-xs);letter-spacing:.05em;border:1px solid #0000;border-radius:4px;margin-top:2px;padding:2px 7px;font-weight:800}.lane-card__status-badge--shooting{color:var(--color-success);border-color:var(--color-success);background:#4caf5026}.lane-card__status-badge--ondeck{color:var(--color-pending);border-color:var(--color-border);background:#9e9e9e1f}.lane-card__status-badge--done{color:var(--color-text-muted);border-color:var(--color-border);background:0 0}.lane-card__label{font-size:var(--font-size-sm);font-weight:700}.lane-card__label--closed{color:var(--color-danger);letter-spacing:.06em;font-size:var(--font-size-xs)}.lane-card__label--empty{color:var(--color-text-faint);font-size:1.4rem;font-weight:300}.lane-card__edit-btn{color:var(--color-text-faint);cursor:pointer;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;min-width:28px;min-height:28px;padding:4px;font-size:.9rem;line-height:1;display:flex;position:absolute;top:4px;right:4px}.lane-card__edit-btn:active{opacity:.6}@media (hover:hover){.lane-card__edit-btn{opacity:0;transition:opacity .12s}.lane-card:hover .lane-card__edit-btn{opacity:1}}.lane-card__advance-btn{border:1px solid var(--color-success);color:var(--color-success);font-family:var(--font-family);font-size:var(--font-size-xs);letter-spacing:.04em;cursor:pointer;background:#4caf5026;border-radius:4px;margin-top:6px;padding:4px 10px;font-weight:800}.lane-card__advance-btn:active{opacity:.7}.lane-card__notes{font-size:var(--font-size-xs);color:var(--color-text-muted);text-overflow:ellipsis;white-space:nowrap;max-width:100%;padding:0 var(--space-1);margin-top:1px;overflow:hidden}.lane-assign-badge{min-width:32px;font-size:var(--font-size-xs);letter-spacing:.04em;color:var(--color-text-muted);border:1px solid var(--color-border);text-align:center;background:0 0;border-radius:4px;flex-shrink:0;padding:3px 6px;font-weight:800}.lane-assign-badge--assigned{color:var(--color-info);background:#448aff1a;border-color:#448aff59}.participant-notes{font-size:var(--font-size-xs);color:var(--color-text-muted);white-space:nowrap;text-overflow:ellipsis;font-style:italic;overflow:hidden}.lane-analysis{border-bottom:1px solid var(--color-border)}.lane-analysis__topbar{align-items:center;gap:var(--space-2) var(--space-4);padding:var(--space-2) var(--space-4);border-bottom:1px solid var(--color-border);font-size:var(--font-size-xs);color:var(--color-text-muted);background:#ffffff08;flex-wrap:wrap;display:flex}.lane-analysis__avg{color:var(--color-text-primary);font-size:var(--font-size-sm)}.lane-analysis__legend{align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.la-leg-item{white-space:nowrap;align-items:center;gap:4px;display:flex}.la-leg-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.la-leg-dot--good{background:#4caf50}.la-leg-dot--check{background:#ffc107}.la-leg-dot--defect{background:#f44336}.lane-analysis__cards{gap:var(--space-3);padding:var(--space-3) var(--space-4);-webkit-overflow-scrolling:touch;scrollbar-width:none;display:flex;overflow-x:auto}.lane-analysis__cards::-webkit-scrollbar{display:none}.la-card{border:2px solid var(--color-border);width:88px;padding:var(--space-2) var(--space-2) var(--space-2);text-align:center;background:var(--color-bg-raised);border-radius:8px;flex-direction:column;flex-shrink:0;align-items:center;gap:1px;display:flex}.la-card--good{border-color:#4caf50}.la-card--check{border-color:#ffc107}.la-card--defect{border-color:#f44336}.la-card--empty{border-color:var(--color-border);opacity:.6}.la-card--closed{border-color:var(--color-border);opacity:.4}.la-card__header{letter-spacing:.1em;font-size:9px;font-weight:700}.la-card--good .la-card__header{color:#4caf50}.la-card--check .la-card__header{color:#ffc107}.la-card--defect .la-card__header{color:#f44336}.la-card--empty .la-card__header,.la-card--closed .la-card__header{color:var(--color-text-muted)}.la-card__num{margin:2px 0 4px;font-size:1.75rem;font-weight:800;line-height:1}.la-card--good .la-card__num{color:#4caf50}.la-card--check .la-card__num{color:#ffc107}.la-card--defect .la-card__num{color:#f44336}.la-card--empty .la-card__num,.la-card--closed .la-card__num{color:var(--color-text-muted)}.la-card__score{font-size:var(--font-size-lg);color:var(--color-text-primary);font-weight:700;line-height:1.1}.la-card__pct{font-size:var(--font-size-base);color:var(--color-text-primary);font-weight:700;line-height:1.1}.la-card__sublabel{letter-spacing:.05em;color:var(--color-text-muted);text-transform:lowercase;margin-bottom:2px;font-size:9px}.la-card__badge{letter-spacing:.07em;text-transform:uppercase;border-radius:4px;margin-top:4px;padding:2px 6px;font-size:9px;font-weight:800}.la-card__badge--good{color:#4caf50;background:#4caf502e}.la-card__badge--check{color:#ffc107;background:#ffc1072e}.la-card__badge--defect{color:#f44336;background:#f443362e}.la-card__count{color:var(--color-text-muted);white-space:nowrap;margin-top:3px;font-size:9px}.la-card__empty-label{font-size:var(--font-size-xs);color:var(--color-text-muted);padding:var(--space-2) 0;text-align:center}.la-card--tappable{cursor:pointer}.la-card--tappable:hover,.la-card--tappable:focus-visible{filter:brightness(1.15);outline:none}.lane-history__order{font-size:var(--font-size-xs);color:var(--color-text-muted);text-align:center;flex-shrink:0;width:24px}.ammo-panel{padding:var(--space-3) var(--space-4);gap:var(--space-3);padding-bottom:calc(var(--space-4) + env(safe-area-inset-bottom,0px));flex-direction:column;display:flex}.ammo-panel__header{justify-content:space-between;align-items:center;min-height:40px;display:flex}.ammo-panel__title{font-size:var(--font-size-sm);letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-muted);margin:0;font-weight:700}.ammo-empty{text-align:center;padding:40px var(--space-4);color:var(--color-text-muted);font-size:var(--font-size-sm);align-items:center;gap:var(--space-3);flex-direction:column;display:flex}.ammo-calc{border:1px solid var(--color-border);border-radius:var(--radius);padding:var(--space-3) var(--space-4);background:#ffffff0a}.ammo-calc__stat-row{justify-content:center;align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.ammo-calc__stat{flex-direction:column;align-items:center;gap:3px;min-width:64px;display:flex}.ammo-calc__value{color:var(--color-text);font-size:1.6rem;font-weight:800;line-height:1}.ammo-calc__value--result{color:var(--color-primary)}.ammo-calc__label{font-size:var(--font-size-xs);color:var(--color-text-muted);text-align:center;white-space:nowrap}.ammo-calc__input{text-align:center;border:1px solid var(--color-border);width:72px;color:var(--color-text);background:#ffffff14;border-radius:4px;padding:2px 4px;font-size:1.4rem;font-weight:800;line-height:1.2}.ammo-calc__input:focus{border-color:var(--color-primary);outline:none}.ammo-calc__op{color:var(--color-text-muted);padding-top:12px;font-size:1.2rem;font-weight:400}.ammo-lot-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:var(--space-3) var(--space-3);gap:var(--space-3);flex-direction:column;display:flex}.ammo-lot-header{justify-content:space-between;align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.ammo-drag-handle{padding:0 var(--space-2);cursor:grab;color:var(--color-text-muted);touch-action:none;background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;display:flex}.ammo-drag-handle:active{cursor:grabbing}.ammo-section-label{font-size:var(--font-size-xs);letter-spacing:.1em;text-transform:uppercase;color:var(--color-text-muted);padding:var(--space-1) 0;border-top:1px solid var(--color-border);margin-top:var(--space-1);font-weight:700}.ammo-lot-identity{align-items:center;gap:var(--space-2);display:flex}.ammo-lot-dodic-block{flex-direction:column;gap:2px;display:flex}.ammo-lot-dodic{letter-spacing:.08em;color:var(--color-text);font-size:1.15rem;font-weight:800}.ammo-lot-nomenclature{font-size:var(--font-size-xs);color:var(--color-text-secondary);letter-spacing:0;font-weight:400}.ammo-status-badge{font-size:var(--font-size-xs);letter-spacing:.06em;text-transform:uppercase;border-radius:4px;padding:2px 6px;font-weight:700}.ammo-status-badge--active{color:var(--color-primary);background:#4caf5026}.ammo-status-badge--paused{color:var(--color-text-muted);background:#ffffff12}.ammo-lot-actions{gap:var(--space-2);margin-left:auto;display:flex}.ammo-lot-stats{gap:var(--space-2);border-top:1px solid var(--color-border);padding-top:var(--space-3);grid-template-columns:repeat(3,1fr);display:grid}.ammo-stat{flex-direction:column;align-items:center;gap:3px;display:flex}.ammo-stat__value{color:var(--color-text);font-size:1.4rem;font-weight:800;line-height:1}.ammo-stat__label{font-size:var(--font-size-xs);color:var(--color-text-muted);text-align:center;line-height:1.2}.ammo-stat-input{text-align:center;border:1px solid var(--color-border);width:100%;color:var(--color-text);background:#ffffff0f;border-radius:4px;padding:2px 4px;font-size:1.4rem;font-weight:800;line-height:1.2}.ammo-stat-input:focus{border-color:var(--color-primary);background:#ffffff1a;outline:none}.ammo-stat-input:disabled{opacity:.5;cursor:default}.ammo-actual-row{border-top:1px solid var(--color-border);padding-top:var(--space-3);gap:var(--space-2);flex-direction:column;display:flex}.ammo-actual-label{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.ammo-actual-input-row{gap:var(--space-2);align-items:center;display:flex}.ammo-actual-input{text-align:center;flex:1;font-size:1.4rem!important}.events-detail-panel{flex-direction:column;flex:1;min-width:0;display:flex}.events-detail-empty{flex:1;justify-content:center;align-items:center;display:flex}.events-detail-empty__hint{font-size:var(--font-size-sm);color:var(--color-text-faint);letter-spacing:.03em}@media (width<=1199px){.events-tab-pane--list .events-detail-panel,.events-tab-pane--detail .events-screen{display:none}}@media (width>=900px) and (width<=1199px){.events-screen{padding-bottom:var(--space-4)}}@media (width>=1200px){.events-tab-pane.tab-pane--active{flex-direction:row;overflow:hidden}.events-screen{border-right:1px solid var(--color-border);width:440px;padding-bottom:var(--space-4);flex-shrink:0;overflow-y:auto}.events-detail-panel{overflow-y:auto}}@media (width>=720px) and (width<=899px){.event-list{grid-template-columns:repeat(2,1fr);align-items:start;display:grid}}@media (width>=900px){.roster-screen{padding-bottom:var(--space-4)}.events-header,.detail-sticky-top{top:0}.detail-screen{min-height:0;padding-bottom:var(--space-6)}}.landnav-group{margin-bottom:var(--space-2)}.landnav-group__header{padding:var(--space-2) var(--space-4);border-top:1px solid var(--color-border);border-bottom:1px solid var(--color-border);background:#ffffff0a;justify-content:space-between;align-items:center;display:flex}.landnav-group__label{font-size:var(--font-size-xs);letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-muted);font-weight:600}.landnav-group__count{font-size:var(--font-size-xs);color:var(--color-text-muted)}.landnav-card-badge{font-size:var(--font-size-xs);color:var(--color-primary);white-space:nowrap;text-overflow:ellipsis;background:#4caf5026;border:1px solid #4caf504d;border-radius:4px;flex-shrink:0;max-width:7rem;padding:2px 6px;font-weight:600;overflow:hidden}.la-card__toggle-btn{margin-top:var(--space-2);letter-spacing:.04em;cursor:pointer;width:100%;font-size:10px;font-weight:600;font-family:var(--font-family);background:0 0;border:1px solid;border-radius:4px;padding:3px 0}.la-card__toggle-btn--close{color:var(--color-danger)}.la-card__toggle-btn--open{color:var(--color-primary)}.ln-tracking-view{padding-bottom:var(--space-6,24px)}.ln-tracking-header{align-items:center;gap:var(--space-4);background:var(--color-bg-raised);border-bottom:1px solid var(--color-border);padding:var(--space-4);display:flex}.ln-tracking-stat{flex-direction:column;align-items:center;min-width:64px;display:flex}.ln-tracking-stat--btn{cursor:pointer;font-family:var(--font-family);border-radius:var(--radius);padding:var(--space-2) var(--space-3);margin:calc(var(--space-2) * -1) calc(var(--space-3) * -1);background:0 0;border:none;transition:background .1s}.ln-tracking-stat--btn:disabled{cursor:default}.ln-tracking-stat--btn.ln-tracking-stat--active:active{background:#ffffff12}@media (hover:hover){.ln-tracking-stat--btn.ln-tracking-stat--active:hover{background:#ffffff12}}.ln-tracking-stat--deadline{align-items:flex-end;margin-left:auto}.ln-tracking-stat__value{color:var(--color-text);font-size:28px;font-weight:800;line-height:1}.ln-tracking-stat__label{font-size:var(--font-size-sm);color:var(--color-text-muted);white-space:nowrap;margin-top:3px}.ln-out-list-row{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-border);min-height:60px;display:flex}.ln-out-list-row--btn{border:none;border-bottom:1px solid var(--color-border);width:100%;font-family:var(--font-family);cursor:pointer;text-align:left;background:0 0}.ln-out-list-row--btn:active{background:#ffffff0d}@media (hover:hover){.ln-out-list-row--btn:hover{background:#ffffff0a}}.ln-out-list-row__name{min-width:0;color:var(--color-text);flex-direction:column;flex:1;gap:2px;font-size:.97rem;font-weight:600;display:flex}.ln-out-list-row__unit{font-size:var(--font-size-xs);color:var(--color-text-muted);font-weight:400}.ln-out-list-row__times{align-items:center;gap:var(--space-3);flex-shrink:0;display:flex}.ln-out-list-row__time-item{flex-direction:column;align-items:flex-end;gap:1px;display:flex}.ln-out-list-row__time-label{font-size:var(--font-size-xs);color:var(--color-text-muted);white-space:nowrap}.ln-out-list-row__time-val{color:var(--color-text);font-variant-numeric:tabular-nums;white-space:nowrap;font-size:.93rem;font-weight:700}.ln-out-list-row__chevron{width:18px;height:18px;color:var(--color-text-muted);flex-shrink:0}.ln-tracking-cards{gap:var(--space-3);padding:var(--space-3) var(--space-3);flex-direction:column;display:flex}@media (width>=400px){.ln-tracking-cards{padding:var(--space-3) var(--space-4)}}.ln-tracking-card{background:var(--color-surface);border-radius:var(--radius);border:1px solid var(--color-border);overflow:hidden}.ln-tracking-card--overdue{background:#f4433608;border-color:#f4433673}.ln-tracking-card__header{align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-border);background:#ffffff0a;display:flex}.ln-tracking-card__header-left{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.ln-tracking-card__header-right{align-items:center;gap:var(--space-2);flex-shrink:0;display:flex}.ln-tracking-card__label{color:var(--color-text);white-space:nowrap;text-overflow:ellipsis;font-size:1.05rem;font-weight:700;overflow:hidden}.ln-tracking-card__count{font-size:var(--font-size-sm);color:var(--color-text-muted)}.ln-status-chip{font-size:var(--font-size-sm);letter-spacing:.05em;text-transform:uppercase;border-radius:12px;flex-shrink:0;padding:4px 10px;font-weight:700}.ln-status-chip--staged{color:var(--color-pending);background:#9e9e9e26}.ln-status-chip--out{color:var(--color-info);background:#448aff26}.ln-status-chip--returned{color:var(--color-success);background:#4caf5026}.ln-status-chip--overdue{color:var(--color-danger);background:#f443362e}.ln-tracking-card__time-row{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-border);min-height:48px;display:flex}.ln-tracking-card__time-row--capped{background:#ff98000f}.ln-tracking-card__time-left{align-items:center;gap:var(--space-2);flex-shrink:1;min-width:0;display:flex}.ln-tracking-card__time-label{color:var(--color-text-muted);white-space:nowrap;font-size:.97rem}.ln-tracking-card__time-val{color:var(--color-text);font-variant-numeric:tabular-nums;white-space:nowrap;letter-spacing:.02em;flex-shrink:0;font-size:1.05rem;font-weight:700}.ln-tracking-card__cap-badge{font-size:var(--font-size-xs);color:var(--color-warning);white-space:nowrap;background:#ff98001f;border-radius:4px;flex-shrink:0;padding:2px 6px;font-weight:700}.ln-tracking-card__edit-hint{font-size:var(--font-size-xs);color:var(--color-primary);opacity:.85;white-space:nowrap;flex-shrink:0;font-weight:700}.ln-tracking-card__time-row--tappable:active{background:#ffffff0f}@media (hover:hover){.ln-tracking-card__time-row--tappable:hover{cursor:pointer;background:#ffffff0d}}.ln-tracking-card__score-row{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-border);min-height:52px;font-size:.93rem;display:flex}.ln-tracking-card__actions{gap:var(--space-2);padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-border);flex-wrap:wrap;display:flex}.ln-tracking-card__members{flex-direction:column;display:flex}.ln-tracking-member{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-border);min-height:52px;display:flex}.ln-tracking-member:last-child{border-bottom:none}.ln-tracking-member__name{color:var(--color-text);text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:.97rem;overflow:hidden}.ln-tracking-member__points{border:1px solid var(--color-border);color:var(--color-text);cursor:pointer;font-size:1rem;font-weight:700;font-family:var(--font-family);text-align:center;font-variant-numeric:tabular-nums;background:#ffffff0f;border-radius:6px;flex-shrink:0;align-items:baseline;gap:2px;min-width:56px;padding:6px 12px;display:flex}.ln-tracking-member__points:hover:not(:disabled){border-color:var(--color-primary);background:#ffffff1a}.ln-tracking-member__points:active:not(:disabled){opacity:.75}.ln-tracking-member__points:disabled{cursor:default;opacity:.6}.ln-tracking-member__pts-denom{font-size:var(--font-size-sm);color:var(--color-text-muted);font-weight:400}.export-screen{min-height:100%;padding-bottom:var(--space-4);flex-direction:column;display:flex}.export-header{padding:var(--space-2) var(--space-2) var(--space-2) var(--space-4);align-items:center;gap:var(--space-2);flex-shrink:0;display:flex}.export-header .export-title{flex:1}.export-title{font-size:var(--font-size-sm);letter-spacing:.1em;text-transform:uppercase;color:var(--color-text-muted);margin:0;font-weight:700}.export-format-bar{align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-4);border-bottom:1px solid var(--color-border);flex-shrink:0;display:flex}.export-format-bar__label{font-size:var(--font-size-sm);color:var(--color-text-secondary);flex-shrink:0;font-weight:600}.export-format-toggle{border:1px solid var(--color-border);border-radius:var(--radius);flex-shrink:0;display:flex;overflow:hidden}.export-format-btn{color:var(--color-text-secondary);font-size:var(--font-size-sm);font-family:var(--font-family);padding:6px var(--space-3);cursor:pointer;background:0 0;border:none;min-width:54px;min-height:34px;font-weight:600;transition:background .12s,color .12s}.export-format-btn+.export-format-btn{border-left:1px solid var(--color-border)}.export-format-btn--active{background:var(--color-primary);color:#fff}.export-format-bar__hint{font-size:var(--font-size-xs);color:var(--color-text-muted);flex:1}.export-group{margin-bottom:var(--space-4)}.export-group-bar{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);font-size:var(--font-size-xs);letter-spacing:.1em;text-transform:uppercase;border-left:3px solid;font-weight:700;display:flex}.export-group-bar--import{color:var(--color-info);background:#448aff12}.export-group-bar--export{color:var(--color-primary);background:#4caf500f}.export-section{margin-bottom:var(--space-3)}.export-section__title{margin:0 0 var(--space-1);padding:var(--space-2) var(--space-4) 0;font-size:var(--font-size-xs);letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-muted);font-weight:600}.export-card{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-top:1px solid var(--color-border);min-height:60px;display:flex}.export-card:last-child{border-bottom:1px solid var(--color-border)}.export-card--danger{cursor:pointer}.export-card--danger:active{background:#f443360f}.export-card__info{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.export-card__name{font-size:var(--font-size-base);color:var(--color-text);white-space:nowrap;text-overflow:ellipsis;font-weight:500;overflow:hidden}.export-card__name--danger{color:var(--color-danger)}.export-card__desc{font-size:var(--font-size-sm);color:var(--color-text-muted);line-height:1.4}.export-picker-card{padding:var(--space-3) var(--space-4);border-top:1px solid var(--color-border);border-bottom:1px solid var(--color-border);gap:var(--space-2);flex-direction:column;display:flex}.export-picker-label{font-size:var(--font-size-xs);letter-spacing:.06em;text-transform:uppercase;color:var(--color-text-muted);font-weight:600}.export-select{background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius);color:var(--color-text);font-size:var(--font-size-base);font-family:var(--font-family);padding:var(--space-2) var(--space-3);appearance:none;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23888' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");background-position:right 12px center;background-repeat:no-repeat;width:100%;padding-right:36px}.export-select:focus{outline:2px solid var(--color-primary);outline-offset:1px}.export-select:disabled{opacity:.5;cursor:not-allowed}.export-sync-desc{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin:0;line-height:1.5}.export-btns{gap:var(--space-1);flex-direction:column;flex-shrink:0;display:flex}.export-btns--inline{flex-flow:wrap}.export-btn{background:var(--color-primary-soft);color:var(--color-primary);border:1px solid var(--color-primary);border-radius:var(--radius);font-size:var(--font-size-sm);font-family:var(--font-family);padding:var(--space-1) var(--space-3);cursor:pointer;white-space:nowrap;min-width:72px;min-height:34px;font-weight:600;transition:opacity .15s}.export-btn--secondary{color:var(--color-text-secondary);border-color:var(--color-border);background:0 0}.export-btn:disabled{opacity:.4;cursor:not-allowed}.export-btn:not(:disabled):active{opacity:.7}.export-dialog-backdrop{z-index:300;padding:var(--space-4);background:#000000b3;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.export-dialog{background:var(--color-surface);border-radius:var(--radius);padding:var(--space-4);gap:var(--space-3);flex-direction:column;width:100%;max-width:380px;display:flex}.export-dialog__title{font-size:var(--font-size-base);color:var(--color-danger);margin:0;font-weight:700}.export-dialog__body{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin:0;line-height:1.5}.export-dialog__backup-btn{font-size:var(--font-size-sm);align-self:flex-start}.export-dialog__confirm-label{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.export-dialog__confirm-input{background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius);color:var(--color-text);font-size:var(--font-size-base);font-family:var(--font-family);padding:var(--space-2) var(--space-3);box-sizing:border-box;width:100%}.export-dialog__confirm-input::placeholder{color:var(--color-text-faint)}.export-dialog__confirm-input:focus{outline:2px solid var(--color-danger);outline-offset:1px;border-color:var(--color-danger)}.export-dialog__actions{gap:var(--space-2);justify-content:flex-end;display:flex}.export-dialog__title--neutral{color:var(--color-text)}.export-encrypt-row{align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-4);border-bottom:1px solid var(--color-border);cursor:pointer;-webkit-user-select:none;user-select:none;min-height:44px;display:flex}.export-encrypt-row:active{background:var(--color-primary-soft)}.export-encrypt-input{opacity:0;pointer-events:none;width:0;height:0;position:absolute}.export-encrypt-track{background:var(--color-border);border-radius:11px;flex-shrink:0;width:40px;height:22px;transition:background .2s;position:relative}.export-encrypt-track:after{content:"";background:#fff;border-radius:50%;width:18px;height:18px;transition:transform .2s;position:absolute;top:2px;left:2px;box-shadow:0 1px 3px #00000040}.export-encrypt-input:checked+.export-encrypt-track{background:var(--color-primary)}.export-encrypt-input:checked+.export-encrypt-track:after{transform:translate(18px)}.export-encrypt-hint{font-size:var(--font-size-sm);color:var(--color-text-secondary);flex:1}.export-phrase-input-row{gap:var(--space-2);align-items:center;display:flex}.export-phrase-input-row .export-dialog__confirm-input{flex:1}.export-phrase-input-row .export-dialog__confirm-input:focus{outline-color:var(--color-primary);border-color:var(--color-primary)}.export-phrase-show-btn{border:1px solid var(--color-border);border-radius:var(--radius);color:var(--color-text-secondary);cursor:pointer;background:0 0;flex-shrink:0;justify-content:center;align-items:center;min-width:40px;height:40px;display:flex}.export-phrase-error{font-size:var(--font-size-sm);color:var(--color-danger);margin:0}.btn--primary{background:var(--color-primary);color:var(--color-on-primary);opacity:1;border:none;transition:opacity .15s}.btn--primary:disabled{opacity:.4;cursor:not-allowed}.btn--primary:not(:disabled):active{opacity:.85}.csv-wizard-overlay{background:var(--color-bg);z-index:100;-webkit-overflow-scrolling:touch;flex-direction:column;display:flex;position:fixed;inset:0;overflow-y:auto}.csv-wizard__header{align-items:center;gap:var(--space-3);padding:0 var(--space-4);background:var(--color-bg-deep);border-bottom:1px solid var(--color-border);z-index:10;flex-shrink:0;height:56px;display:flex;position:sticky;top:0}.csv-wizard__title{color:var(--color-text);flex:1;font-size:1rem;font-weight:700}.csv-wizard__step-label{font-size:var(--font-size-sm);color:var(--color-text-muted);white-space:nowrap}.csv-wizard__cancel{color:var(--color-text-muted);cursor:pointer;border-radius:var(--radius);background:0 0;border:none;justify-content:center;align-items:center;min-width:44px;min-height:44px;font-size:1.25rem;display:flex}.csv-wizard__cancel:active{color:var(--color-text)}.csv-wizard__body{padding:var(--space-4);flex:1;width:100%;max-width:600px;margin:0 auto;padding-bottom:120px}.csv-wizard__step-heading{color:var(--color-text);margin-bottom:var(--space-1);font-size:1.05rem;font-weight:700}.csv-wizard__step-hint{font-size:var(--font-size-sm);color:var(--color-text-muted);margin-bottom:var(--space-4);line-height:1.5}.csv-wizard__footer{background:var(--color-bg);border-top:1px solid var(--color-border);padding:var(--space-3) var(--space-4);gap:var(--space-3);z-index:10;justify-content:flex-end;display:flex;position:fixed;bottom:0;left:0;right:0}.csv-field{gap:var(--space-1);margin-bottom:var(--space-3);flex-direction:column;display:flex}.csv-field__label{font-size:var(--font-size-sm);color:var(--color-text-secondary);align-items:center;gap:var(--space-2);font-weight:600;display:flex}.csv-field__required{color:var(--color-danger);font-size:var(--font-size-xs)}.csv-field__optional{color:var(--color-text-muted);font-size:var(--font-size-xs);font-weight:400}.csv-select,.csv-input{background:var(--color-surface);width:100%;min-height:48px;color:var(--color-text);border:1px solid var(--color-border);border-radius:var(--radius);padding:0 var(--space-3);font-size:.97rem;font-family:var(--font-family);appearance:auto}.csv-select:focus,.csv-input:focus{outline:2px solid var(--color-primary);outline-offset:2px}.csv-preview{margin-top:var(--space-4);border-radius:var(--radius);border:1px solid var(--color-border);overflow:hidden}.csv-preview__title{padding:var(--space-2) var(--space-3);font-size:var(--font-size-xs);letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-muted);background:var(--color-surface);border-bottom:1px solid var(--color-border);font-weight:700}.csv-preview__scroll{overflow-x:auto}.csv-preview table{border-collapse:collapse;width:100%;min-width:320px;font-size:var(--font-size-sm)}.csv-preview th{text-align:left;padding:var(--space-2) var(--space-3);background:var(--color-bg-raised);color:var(--color-text-muted);font-size:var(--font-size-xs);letter-spacing:.06em;text-transform:uppercase;white-space:nowrap;border-bottom:1px solid var(--color-border);font-weight:700}.csv-preview td{padding:var(--space-2) var(--space-3);color:var(--color-text-secondary);border-bottom:1px solid var(--color-border);white-space:nowrap;text-overflow:ellipsis;max-width:160px;overflow:hidden}.csv-preview__empty{padding:var(--space-3);color:var(--color-text-muted);font-size:var(--font-size-sm);text-align:center}.rank-resolve-item{gap:var(--space-1);margin-bottom:var(--space-4);padding:var(--space-3);background:var(--color-surface);border-radius:var(--radius);border:1px solid var(--color-border);flex-direction:column;display:flex}.rank-resolve-item__raw{font-family:monospace;font-size:var(--font-size-sm);color:var(--color-warning);font-weight:600}.rank-resolve-item__count{font-size:var(--font-size-xs);color:var(--color-text-muted);margin-bottom:var(--space-1)}.unit-mode-tabs{border:1px solid var(--color-border);border-radius:var(--radius);margin-bottom:var(--space-4);display:flex;overflow:hidden}.unit-mode-tab{cursor:pointer;min-height:44px;color:var(--color-text-muted);font-size:var(--font-size-sm);font-weight:600;font-family:var(--font-family);background:0 0;border:none;flex:1;transition:background .1s,color .1s}.unit-mode-tab--active{background:var(--color-primary);color:var(--color-on-primary)}.unit-mode-tab:not(.unit-mode-tab--active):active{background:var(--color-surface)}.unit-note{align-items:flex-start;gap:var(--space-2);padding:var(--space-3);background:var(--color-primary-soft);border-radius:var(--radius);font-size:var(--font-size-sm);color:var(--color-text-secondary);margin-bottom:var(--space-3);line-height:1.5;display:flex}.unit-note__icon{color:var(--color-primary);flex-shrink:0;margin-top:1px}.existing-unit-option{padding-left:0}.confirm-row{align-items:flex-start;gap:var(--space-3);padding:var(--space-3) 0;border-bottom:1px solid var(--color-border);display:flex}.confirm-row:last-child{border-bottom:none}.confirm-row__icon{text-align:center;flex-shrink:0;width:24px;margin-top:1px;font-size:1.1rem}.confirm-row__text{color:var(--color-text);flex:1;font-size:.97rem;line-height:1.5}.confirm-row__sub{font-size:var(--font-size-sm);color:var(--color-text-muted);margin-top:2px}.confirm-row--warning .confirm-row__icon,.confirm-row--warning .confirm-row__text{color:var(--color-warning)}.confirm-row--info .confirm-row__icon{color:var(--color-info)}.settings-overlay{z-index:200;padding:var(--space-4);background:#0009;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.settings-sheet{background:var(--color-surface);border-radius:var(--radius);flex-direction:column;width:100%;max-width:480px;max-height:85dvh;display:flex;overflow:hidden}.settings-header{padding:var(--space-4);border-bottom:1px solid var(--color-border);flex-shrink:0;align-items:center;display:flex}.settings-header__title{font-size:var(--font-size-base);color:var(--color-text);flex:1;margin:0;font-weight:700}.settings-header__close{color:var(--color-text-secondary);font-size:var(--font-size-base);padding:var(--space-1) var(--space-2);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;min-width:44px;min-height:44px;display:flex}.settings-body{padding:var(--space-4) 0;flex:1;overflow-y:auto}.settings-section{margin-bottom:var(--space-4)}.settings-section__title{margin:0 0 var(--space-2);padding:0 var(--space-4);font-size:var(--font-size-xs);letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-muted);font-weight:600}.settings-row{align-items:center;gap:var(--space-3);width:100%;padding:var(--space-3) var(--space-4);border:none;border-top:1px solid var(--color-border);cursor:pointer;text-align:left;background:0 0;min-height:60px;display:flex}.settings-row:last-child{border-bottom:1px solid var(--color-border)}.settings-row--action{color:var(--color-text)}.settings-row--action:active{background:var(--color-primary-soft)}.settings-row__content{flex-direction:column;flex:1;gap:2px;display:flex}.settings-row__label{font-size:var(--font-size-base);font-weight:500}.settings-row__desc{font-size:var(--font-size-sm);color:var(--color-text-muted);line-height:1.4}.settings-row__arrow{color:var(--color-text-muted);font-size:var(--font-size-sm);flex-shrink:0}.settings-name-input{background:var(--color-surface);color:var(--color-text);border:1px solid var(--color-border);border-radius:var(--radius);padding:0 var(--space-3);font-size:var(--font-size-sm);font-family:var(--font-family);flex-shrink:0;width:140px;min-width:0;height:40px}.settings-name-input:focus{outline:2px solid var(--color-primary);outline-offset:2px;border-color:var(--color-primary)}.settings-passphrase-group{align-items:center;gap:var(--space-2);flex-shrink:0;display:flex}.settings-passphrase-toggle,.settings-passphrase-clear{border:1px solid var(--color-border);border-radius:var(--radius);color:var(--color-text-secondary);font-size:var(--font-size-sm);font-family:var(--font-family);cursor:pointer;padding:0 var(--space-2);background:0 0;flex-shrink:0;justify-content:center;align-items:center;min-width:40px;height:40px;display:flex}.settings-passphrase-clear{color:var(--color-danger);border-color:var(--color-danger)}.settings-row--static{cursor:default}.settings-row--static:active{background:0 0}.theme-toggle{border:1px solid var(--color-border);border-radius:var(--radius);flex-shrink:0;display:flex;overflow:hidden}.theme-toggle__btn{color:var(--color-text-secondary);font-size:var(--font-size-sm);font-family:var(--font-family);padding:var(--space-1) var(--space-3);cursor:pointer;background:0 0;border:none;min-width:60px;min-height:36px;transition:background .15s,color .15s}.theme-toggle__btn+.theme-toggle__btn{border-left:1px solid var(--color-border)}.theme-toggle__btn--active{background:var(--color-primary);color:var(--color-on-primary)}.btn--danger{background:var(--color-danger);color:#fff;opacity:1;border:none;transition:opacity .15s}.btn--danger:disabled{opacity:.4;cursor:not-allowed}.btn--danger:not(:disabled):active{opacity:.85}.settings-pin-section{padding-top:var(--space-3);padding-bottom:var(--space-3);align-items:flex-start}.settings-pin-btn{font-size:var(--font-size-sm);padding:var(--space-1) var(--space-3);white-space:nowrap;flex-shrink:0;min-height:34px}.settings-pin-btn--danger{color:var(--color-danger);border-color:var(--color-danger)}.settings-pin-change{padding:var(--space-3) var(--space-4);border-top:1px solid var(--color-border);align-items:center;gap:var(--space-3);flex-direction:column;display:flex}.settings-pin-change__label{font-size:var(--font-size-sm);color:var(--color-text-secondary);align-self:flex-start;margin:0}.settings-pin-change__error{font-size:var(--font-size-sm);color:var(--color-danger);align-self:flex-start;margin:0}.settings-pin-change__cancel{font-size:var(--font-size-sm);padding:var(--space-1) var(--space-3);align-self:flex-start;min-height:34px}.settings-pin-success{padding:0 var(--space-4) var(--space-2);font-size:var(--font-size-sm);color:var(--color-primary);margin:0}.settings-toggle-label{cursor:pointer;flex-shrink:0;align-items:center;display:flex;position:relative}.settings-toggle-input{opacity:0;pointer-events:none;width:0;height:0;position:absolute}.settings-toggle-track{background:var(--color-border);border-radius:11px;flex-shrink:0;width:40px;height:22px;transition:background .2s;position:relative}.settings-toggle-track:after{content:"";background:#fff;border-radius:50%;width:18px;height:18px;transition:transform .2s;position:absolute;top:2px;left:2px;box-shadow:0 1px 3px #00000040}.settings-toggle-input:checked+.settings-toggle-track{background:var(--color-primary)}.settings-toggle-input:checked+.settings-toggle-track:after{transform:translate(18px)}.settings-storage-chip{font-size:var(--font-size-xs);letter-spacing:.05em;border-radius:20px;flex-shrink:0;padding:3px 10px;font-weight:700}.settings-storage-chip--on{background:var(--color-primary-soft);color:var(--color-primary)}.settings-storage-chip--off{color:var(--color-text-muted);background:#ffffff14}.settings-footer{padding:var(--space-3) var(--space-4);border-top:1px solid var(--color-border);gap:var(--space-2);flex-shrink:0;justify-content:flex-end;display:flex}.auth-screen{background:var(--color-bg);z-index:500;position:fixed;inset:0;overflow-y:auto}.auth-skip-footer{padding:var(--space-6) var(--space-4) max(40vh, 180px);justify-content:center;display:flex}.auth-skip-btn{color:var(--color-text-muted);font-size:var(--font-size-sm);font-family:var(--font-family);cursor:pointer;padding:var(--space-3) var(--space-4);text-underline-offset:3px;background:0 0;border:none;min-height:44px;text-decoration:underline}.auth-card{justify-content:center;align-items:center;gap:var(--space-4);width:100%;max-width:340px;min-height:100dvh;padding:var(--space-6) var(--space-4);box-sizing:border-box;flex-direction:column;margin:0 auto;display:flex}.auth-title{letter-spacing:.12em;color:var(--color-primary);margin:0;font-size:2rem;font-weight:800}.auth-subtitle{font-size:var(--font-size-xs);letter-spacing:.1em;text-transform:uppercase;color:var(--color-text-muted);margin:-12px 0 0;font-weight:600}.auth-prompt{font-size:var(--font-size-base);color:var(--color-text-secondary);text-align:center;margin:0}.auth-text-input{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);width:100%;color:var(--color-text);font-size:var(--font-size-base);font-family:var(--font-family);padding:var(--space-3) var(--space-3);box-sizing:border-box;text-align:center}.auth-text-input:focus{outline:2px solid var(--color-primary);outline-offset:1px;border-color:var(--color-primary)}.auth-text-input::placeholder{color:var(--color-text-faint)}.pin-input{cursor:pointer;padding:var(--space-2) 0;justify-content:center;gap:20px;display:flex;position:relative}.pin-input--disabled{cursor:default;opacity:.6}.pin-input__real{opacity:0;cursor:pointer;width:100%;height:100%;font-size:1px;position:absolute;inset:0}.pin-input--disabled .pin-input__real{cursor:default}.pin-dot{border:2px solid var(--color-border);background:0 0;border-radius:50%;flex-shrink:0;width:22px;height:22px;transition:background .12s,border-color .12s}.pin-dot--filled{background:var(--color-primary);border-color:var(--color-primary)}.auth-btn{background:var(--color-primary);width:100%;color:var(--color-on-primary);border-radius:var(--radius);font-size:var(--font-size-base);font-family:var(--font-family);padding:var(--space-3) var(--space-4);cursor:pointer;border:none;min-height:48px;font-weight:600;transition:opacity .15s}.auth-btn:disabled{opacity:.4;cursor:not-allowed}.auth-btn:not(:disabled):active{opacity:.8}.auth-btn--ghost{color:var(--color-text-secondary);border:1px solid var(--color-border);background:0 0}.auth-error{font-size:var(--font-size-sm);color:var(--color-danger);text-align:center;margin:0}.auth-loading{font-size:var(--font-size-sm);color:var(--color-text-muted);text-align:center;margin:0}.auth-bypass-backdrop{z-index:10;padding:var(--space-4);background:#0009;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.auth-bypass-dialog{background:var(--color-surface);border-radius:var(--radius);padding:var(--space-4);gap:var(--space-3);flex-direction:column;width:100%;max-width:340px;display:flex}.auth-bypass-title{font-size:var(--font-size-base);color:var(--color-text);margin:0;font-weight:700}.auth-bypass-body{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin:0;line-height:1.5}.auth-bypass-actions{gap:var(--space-2);flex-direction:column;display:flex}.dashboard{flex-direction:column;flex:1;min-height:0;display:flex;overflow-y:auto}.dashboard-scope-bar{align-items:center;gap:var(--space-3);padding:0 var(--space-4);background:var(--color-bg);border-bottom:1px solid var(--color-border);flex-shrink:0;height:44px;display:flex}.dashboard-scope-bar__label{font-size:var(--font-size-xs);letter-spacing:.06em;text-transform:uppercase;color:var(--color-text-muted);flex-shrink:0;font-weight:700}.dashboard-scope-bar .header-action-btn{flex-shrink:0;margin-left:auto}@keyframes dashboard-spin{to{transform:rotate(360deg)}}.dashboard-refresh--spinning svg{animation:.7s linear infinite dashboard-spin}.dashboard-scope-select{appearance:none;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);color:var(--color-text);font-size:var(--font-size-sm);font-weight:600;font-family:var(--font-family);cursor:pointer;padding:0 32px 0 var(--space-3);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23888' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");background-position:right 10px center;background-repeat:no-repeat;flex-shrink:0;max-width:200px;height:34px}.dashboard-scope-select:focus{outline:2px solid var(--color-primary);outline-offset:1px;border-color:var(--color-primary)}.dashboard-scope-divider{color:var(--color-text-faint);font-size:var(--font-size-xs);flex-shrink:0}.dashboard-section-label{font-size:var(--font-size-xs);letter-spacing:.1em;text-transform:uppercase;color:var(--color-text-muted);padding:var(--space-4) var(--space-4) var(--space-2);font-weight:700}.widget-scroll-wrap{overflow-x:auto}.event-grid{padding:0 var(--space-4);grid-template-columns:1fr 52px 52px 52px 52px;min-width:max-content;display:grid}.event-grid-hdr{font-size:var(--font-size-xs);color:var(--color-text-muted);letter-spacing:.04em;padding-bottom:var(--space-1);font-weight:600}.event-grid-hdr--num{text-align:center}.event-row-cell{border-top:1px solid var(--color-border);padding-top:var(--space-2);padding-bottom:var(--space-2);align-items:center;min-height:60px;display:flex}.event-row-cell--info{min-width:0;padding-right:var(--space-2);flex-direction:column;align-items:flex-start;gap:3px}.event-table-row__info{min-width:0;padding-right:var(--space-2);flex-direction:column;gap:3px;display:flex}.event-table-row__name{color:var(--color-text);white-space:nowrap;text-overflow:ellipsis;font-size:1rem;font-weight:700;overflow:hidden}.event-table-row__meta{align-items:center;gap:var(--space-2);display:flex}.event-table-row__date{font-size:var(--font-size-xs);color:var(--color-text-muted)}.event-table-row__type{font-size:var(--font-size-xs);letter-spacing:.04em;text-transform:uppercase;font-weight:700}.event-table-row__type--weaponqual{color:var(--color-qual-expert)}.event-table-row__type--landnav{color:var(--color-qual-sharpshooter)}.event-table-row__type--passfail{color:var(--color-success)}.event-num{cursor:pointer;min-height:44px;font-size:1.3rem;font-weight:800;line-height:1;font-family:var(--font-family);background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;transition:background .1s;display:flex}.event-num:active{background:#ffffff12}.event-num.event-row-cell{border-top:1px solid var(--color-border)}.event-num--total{color:var(--color-info)}.event-num--passed{color:var(--color-success)}.event-num--failed{color:var(--color-danger)}.event-num--pending{color:var(--color-warning)}.event-num--zero{color:var(--color-text-faint)}.names-sheet-list{flex-direction:column;display:flex}.names-sheet-row{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-border);display:flex}.names-sheet-row:last-child{border-bottom:none}.names-sheet-row__rank{font-size:var(--font-size-xs);color:var(--color-text-secondary);min-width:36px;font-weight:700}.names-sheet-row__name{font-size:var(--font-size-sm);color:var(--color-text)}.dashboard-widget-grid{gap:var(--space-3);padding:var(--space-3);grid-template-columns:1fr;display:grid}@media (width>=900px){.dashboard-widget-grid{grid-template-columns:1fr 1fr}}.dashboard-widget{background:var(--color-surface);border-radius:var(--radius);border:1px solid var(--color-border);overflow:hidden}.dashboard-widget--wide{grid-column:1/-1}.bd-unit-full{display:none}.bd-unit-short{display:inline}@media (width>=900px){.bd-unit-full{display:inline}.bd-unit-short{display:none}}.breakdown-section-label{justify-content:space-between;align-items:center;display:flex}.breakdown-event-picker{color:var(--color-text-secondary);font-size:var(--font-size-xs);font-weight:600;font-family:var(--font-family);cursor:pointer;text-align:right;background:0 0;border:none;max-width:200px;padding:0 2px}.ammo-event-hdr{align-items:baseline;gap:var(--space-3);padding:var(--space-2) 0 var(--space-1);grid-column:1/-1;display:flex}.ammo-event-hdr--sep{border-top:2px solid var(--color-border);margin-top:var(--space-3);padding-top:var(--space-3)}.ammo-event-hdr__name{font-size:1rem;font-weight:700;font-family:var(--font-family);color:var(--color-text)}.ammo-event-hdr__date{font-size:var(--font-size-xs);color:var(--color-text-muted)}.ammo-table{column-gap:var(--space-4);padding:0 var(--space-4) var(--space-3);grid-template-columns:1fr minmax(72px,max-content) minmax(72px,max-content) minmax(72px,max-content);min-width:max-content;display:grid}.ammo-col-hdr{font-size:var(--font-size-xs);color:var(--color-text-muted);letter-spacing:.04em;padding-bottom:var(--space-1);font-weight:600}.ammo-col-hdr--num{text-align:center}.ammo-row-cell{border-top:1px solid var(--color-border);padding-top:var(--space-2);padding-bottom:var(--space-2);align-items:center;min-height:48px;display:flex}.ammo-lot-row__info{min-width:0;padding-right:var(--space-2);flex-direction:column;justify-content:center;gap:2px;display:flex}.ammo-lot-row__dodic{font-size:1rem;font-weight:700;font-family:var(--font-family);color:var(--color-text);letter-spacing:.04em}.ammo-lot-row__nom{font-size:var(--font-size-xs);color:var(--color-text-muted);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.ammo-lot-num{font-size:1.3rem;font-weight:800;font-family:var(--font-family);font-variant-numeric:tabular-nums;color:var(--color-text-secondary);justify-content:center}.ammo-lot-num--remaining{color:var(--color-warning)}.ammo-lot-num--warn{color:var(--color-danger)}.rp-controls{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);border-top:1px solid var(--color-border);flex-wrap:wrap;display:flex}.rp-search{min-width:120px;height:32px;padding:0 var(--space-2);background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius);color:var(--color-text);font-size:var(--font-size-sm);font-family:var(--font-family);flex:1}.rp-search::placeholder{color:var(--color-text-faint)}.rp-filters{gap:var(--space-1);display:flex}.rp-filter-btn{height:28px;padding:0 var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius);color:var(--color-text-muted);font-size:var(--font-size-xs);font-weight:600;font-family:var(--font-family);cursor:pointer;white-space:nowrap;background:0 0;transition:background .1s,color .1s,border-color .1s}.rp-filter-btn--active{background:var(--color-primary);border-color:var(--color-primary);color:#000}.rp-table-wrap{border-top:1px solid var(--color-border);overflow-x:auto}.rp-table{min-width:500px}.rp-table--wq{min-width:590px}.rp-table-header,.rp-table-row{padding:0 var(--space-4);grid-template-columns:48px minmax(90px,max-content) minmax(76px,max-content) 100px 100px 80px;align-items:center;display:grid}.rp-table--wq .rp-table-header,.rp-table--wq .rp-table-row{grid-template-columns:48px minmax(90px,max-content) minmax(76px,max-content) 100px 100px 80px 80px}.rp-table-header{padding-top:var(--space-2);padding-bottom:var(--space-2);background:var(--color-bg);z-index:1;position:sticky;top:0}.rp-table-body{max-height:220px;overflow-y:auto}.rp-table-row{border-top:1px solid var(--color-border);min-height:44px}.rp-empty{padding:var(--space-4);color:var(--color-text-muted);text-align:center;font-size:var(--font-size-sm)}.rp-col{font-size:var(--font-size-xs);white-space:nowrap;text-overflow:ellipsis;padding-right:var(--space-2);overflow:hidden}.rp-table-header .rp-col{color:var(--color-text-muted);letter-spacing:.04em;font-weight:600}.rp-col--rank{min-width:0}.rp-col--last,.rp-col--first{text-overflow:clip;overflow:visible}.rp-table-body .rp-col--last{font-size:var(--font-size-sm);color:var(--color-text);font-weight:600}.rp-table-body .rp-col--first{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.rp-table-body .rp-col--unit,.rp-table-body .rp-col--date{color:var(--color-text-secondary)}.rp-table-body .rp-col--status{font-weight:700}.rp-status--expert{color:var(--color-qual-expert)}.rp-status--sharpshooter{color:var(--color-qual-sharpshooter)}.rp-status--marksman{color:var(--color-qual-marksman)}.rp-status--unqual{color:var(--color-qual-unqualified)}.rp-status--pending{color:var(--color-qual-pending)}.rp-status--pass{color:var(--color-success)}.rp-status--fail{color:var(--color-danger)}.dashboard-empty{justify-content:center;align-items:center;gap:var(--space-3);padding:48px var(--space-4);color:var(--color-text-muted);text-align:center;flex-direction:column;display:flex}.dashboard-empty__text{font-size:var(--font-size-sm);max-width:260px;line-height:1.5}
