:root{color-scheme:dark;--bg: #0a1526;--surface: #0f1e35;--surface-2: #0c1a30;--header-1: #0d1c34;--header-2: #0a1526;--ink: #e8f1fa;--heading: #eaf6fb;--muted: #89a4c2;--accent: #22d3ee;--accent-ink: #7fe6f5;--accent-soft: #0e2a3a;--line: #1e3a5f;--line-strong: #274b73;--day-head: #123a5c;--day-head-ink: #dcecfa;--event: #2dd4a7;--event-fill: #0c2a23;--event-ink: #8ef0d6;--event-head: #178a63;--event-head-ink: #d7f7ec;--donsa: #1c6f97;--donsa-fill: #0d2338;--donsa-ink: #bfe8fb;--donsa-head-ink: #eaf6fb;--focus-event-fill: #0e2a3a;--focus-event-ink: #7fe6f5;--company: #d99a2b;--company-fill: #2a2110;--company-ink: #f2cf8a;--company-head-ink: #1d1503;--danger-ink: #fca5a5;--danger-line: #7f2a2a;--danger-fill: #2a1113;--warn-ink: #f7d08a;--error-ink: #fb7185;--focus-ring: rgba(34, 211, 238, .2);--accent-glow: rgba(34, 211, 238, .08);--veil: rgba(10, 21, 38, .55);--scrim-rgb: 4 10 20;--radius: 6px;--radius-sm: 4px;--radius-lg: 8px;--radius-xl: 10px;--radius-sheet: 14px;--cell-w: 15.5rem;--font: -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--mono: ui-monospace, "SF Mono", "Cascadia Code", "Segoe UI Mono", monospace;--shadow: 0 1px 2px rgba(0, 0, 0, .4), 0 6px 18px rgba(0, 0, 0, .28)}@media screen{:root[data-theme=terminal]{--bg: #020604;--surface: #061510;--surface-2: #04100a;--header-1: #07190f;--header-2: #020604;--ink: #49e07e;--heading: #8dffb0;--muted: #3f9c64;--accent: #eafff2;--accent-ink: #a8ffc6;--accent-soft: #0a2e19;--line: #123723;--line-strong: #1e5c38;--day-head: #0c2f1c;--day-head-ink: #b9ffd2;--event: #62ff9e;--event-fill: #0b3320;--event-ink: #ccffe0;--event-head: #12873f;--event-head-ink: #eafff1;--donsa: #117994;--donsa-fill: #06242c;--donsa-ink: #96e8f8;--donsa-head-ink: #e8fbff;--focus-event-fill: #0a2e19;--focus-event-ink: #a8ffc6;--company: #ffb527;--company-fill: #2b2104;--company-ink: #ffd98a;--company-head-ink: #1d1502;--danger-ink: #ff6f5f;--danger-line: #8a2a1c;--danger-fill: #2b0d07;--warn-ink: #ffd98a;--error-ink: #ff6f5f;--focus-ring: rgba(234, 255, 242, .22);--accent-glow: rgba(234, 255, 242, .07);--veil: rgba(2, 6, 4, .55);--scrim-rgb: 1 5 3;--radius: 0px;--radius-sm: 0px;--radius-lg: 0px;--radius-xl: 0px;--radius-sheet: 0px;--font: ui-monospace, "SF Mono", "Cascadia Code", "Segoe UI Mono", monospace;--shadow: 0 0 0 1px rgba(61, 255, 136, .05), 0 0 18px rgba(61, 255, 136, .06)}:root[data-theme=cyberpunk]{--bg: #0d0518;--surface: #170b2b;--surface-2: #110723;--header-1: #1d0d35;--header-2: #0d0518;--ink: #eadffc;--heading: #f6f0ff;--muted: #8f7ab8;--accent: #ff2ec4;--accent-ink: #ff9ce2;--accent-soft: #360b2c;--line: #2f1c55;--line-strong: #46297e;--day-head: #261250;--day-head-ink: #e6d9ff;--event: #3bff9d;--event-fill: #07281c;--event-ink: #9dffd3;--event-head: #0e8a55;--event-head-ink: #e9fff4;--donsa: #3a5fe0;--donsa-fill: #0e1638;--donsa-ink: #bccdff;--donsa-head-ink: #eef2ff;--focus-event-fill: #360b2c;--focus-event-ink: #ff9ce2;--company: #ff9e2b;--company-fill: #2d1a04;--company-ink: #ffce8c;--company-head-ink: #221100;--danger-ink: #ff5c86;--danger-line: #8a2043;--danger-fill: #2d0a18;--warn-ink: #ffce8c;--error-ink: #ff5c86;--focus-ring: rgba(255, 46, 196, .2);--accent-glow: rgba(255, 46, 196, .1);--veil: rgba(13, 5, 24, .55);--scrim-rgb: 9 3 17;--shadow: 0 1px 2px rgba(0, 0, 0, .5), 0 8px 24px rgba(255, 46, 196, .1)}}*{box-sizing:border-box}html{height:100%}body{min-height:100%;display:flex;flex-direction:column}#root{flex:1 0 auto}body{margin:0;font-family:var(--font);color:var(--ink);background:var(--bg);font-size:14px;line-height:1.35}.app{min-height:100%;display:flex;flex-direction:column}.app-header{background:linear-gradient(180deg,var(--header-1),var(--header-2));color:var(--ink);padding:.6rem 1rem;display:flex;align-items:center;gap:1rem;flex-wrap:wrap;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:10}.app-title{font-family:var(--mono);font-size:.98rem;font-weight:600;letter-spacing:.04em;margin:0;color:var(--ink)}.app-title small{display:block;font-size:.66rem;font-weight:400;color:var(--muted);letter-spacing:.12em;margin-top:1px}.toolbar{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.toolbar .spacer{flex:1}.tabs{display:flex;gap:.25rem}.tab{background:transparent;color:var(--muted);border:1px solid var(--line);border-radius:var(--radius);padding:.35rem .8rem;font-size:.82rem;font-weight:600;cursor:pointer;letter-spacing:.02em}.tab:hover{background:var(--surface-2);color:var(--ink)}.tab.active{background:var(--accent-soft);color:var(--accent-ink);border-color:var(--accent);text-decoration:underline;text-underline-offset:4px}select,input[type=text],input[type=date],textarea{font-family:var(--font);font-size:.85rem;color:var(--ink)}.control{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:.35rem .5rem;font-weight:600;color:var(--ink)}.btn{background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:var(--radius);padding:.4rem .9rem;font-weight:700;font-size:.82rem;cursor:pointer;letter-spacing:.02em}.btn:hover{background:var(--surface-2);border-color:var(--line-strong)}.btn-primary{background:var(--accent-soft);color:var(--accent-ink);border-color:var(--accent)}.btn-primary:hover{background:var(--accent-soft);border-color:var(--accent-ink)}.btn-danger{color:var(--danger-ink);border-color:var(--danger-line);background:transparent}.btn-danger:hover{background:var(--danger-fill)}.profile-danger{border-color:var(--danger-line)}.main{padding:1rem;flex:1}.file-bar{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;padding:.4rem 1rem;background:var(--surface);border-bottom:1px solid var(--line);font-size:.75rem;color:var(--muted)}.file-bar .file-status{letter-spacing:.02em}.file-bar .file-status b{color:var(--accent-ink);font-weight:700}.btn-small{padding:.2rem .55rem;font-size:.72rem}.save-hint{font-size:.72rem;color:var(--muted);letter-spacing:.03em;min-width:5.5rem;text-align:right}.save-hint.save-error{color:var(--danger-ink);font-weight:700;min-width:12rem}.sheet-head{display:flex;align-items:baseline;gap:.75rem;margin:0 0 .6rem}.sheet-head h2{margin:0;font-size:1.05rem;color:var(--heading);letter-spacing:.04em;font-family:var(--mono);font-weight:600}.sheet-head .period{color:var(--muted);font-weight:600}.legend{display:flex;gap:.9rem;margin-left:auto;font-size:.72rem;color:var(--muted);align-items:center}.legend .swatch{display:inline-block;width:.8rem;height:.8rem;border-radius:3px;margin-right:.3rem;vertical-align:-1px;border:1px solid var(--line-strong)}.legend .swatch.event{background:var(--event-fill);border-color:var(--event)}.legend .swatch.donsa{background:var(--donsa-fill);border-color:var(--donsa)}.weeks{display:flex;flex-direction:column;gap:.9rem}.grid-wrap{position:relative}.grid-veil{position:absolute;inset:0;z-index:2;display:grid;place-items:center;background:var(--veil);color:var(--muted);font-size:.85rem}.firstplan-hint{display:flex;align-items:center;justify-content:space-between;gap:.6rem;margin:0 0 .6rem;padding:.45rem .7rem;background:var(--surface);border:1px dashed var(--line-strong);border-radius:var(--radius);color:var(--muted);font-size:.8rem}.week{background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);break-inside:avoid}.week-strip{display:grid;grid-template-columns:repeat(5,minmax(0,1fr))}.daycell{border-right:1px solid var(--line);display:flex;flex-direction:column;min-width:0;background:var(--surface-2)}.daycell:last-child{border-right:none}.daycell.is-today{outline:2px solid var(--accent);outline-offset:-2px}.daycell.is-today .daycell-date{color:var(--accent-ink)}.daycell.event-day{background:var(--event-fill)}.daycell.donsa{background:var(--donsa-fill)}.daycell-head{background:var(--day-head);color:var(--day-head-ink);padding:.28rem .5rem;display:flex;justify-content:space-between;align-items:baseline;gap:.4rem}.daycell.out-of-month .daycell-head{opacity:.6}.daycell.event-day .daycell-head{background:var(--event-head);color:var(--event-head-ink)}.daycell.donsa .daycell-head{background:var(--donsa);color:var(--donsa-head-ink)}.daycell-weekday{font-family:var(--mono);font-size:.62rem;font-weight:700;letter-spacing:.09em;opacity:.9}.daycell-date{font-size:.78rem;font-weight:700}.donsa-banner{background:var(--donsa);color:var(--donsa-head-ink);text-align:center;font-family:var(--mono);font-size:.66rem;font-weight:800;letter-spacing:.12em;padding:.16rem}.daycell.company-day{background:var(--company-fill)}.daycell.company-day .daycell-head{background:var(--company);color:var(--company-head-ink)}.daycell.out-of-month{background:repeating-linear-gradient(-45deg,var(--surface),var(--surface) 6px,var(--bg) 6px,var(--bg) 12px)}.dv-card.company-day{border-color:var(--company)}.company-banner{background:var(--company);color:var(--company-head-ink);text-align:center;font-family:var(--mono);font-size:.66rem;font-weight:800;letter-spacing:.12em;padding:.16rem;display:flex;justify-content:center;align-items:center;gap:.5rem;flex-wrap:wrap}.company-grant-btn{font-family:var(--mono);font-size:.58rem;font-weight:800;letter-spacing:.08em;background:transparent;color:var(--company-head-ink);border:1px solid currentColor;border-radius:3px;padding:.06rem .3rem;cursor:pointer}.company-grant-btn:hover{background:#00000026}.cat-pill.co-pill{background:var(--company-fill);color:var(--company-ink);border:1px solid var(--company);margin-left:.3rem}.cal-cell.company-day{background:var(--company-fill);border-color:var(--company)}.cal-cell.company-day .cal-daynum{color:var(--company-ink)}.cal-tag.cal-tag-company{background:var(--company);color:var(--company-head-ink)}.modal-scrim{position:fixed;inset:0;z-index:60;background:rgb(var(--scrim-rgb) / .65);display:flex;align-items:center;justify-content:center;padding:1rem}.modal-card{background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--radius);box-shadow:var(--shadow);padding:.9rem 1rem;width:100%;max-width:26rem;max-height:80vh;overflow-y:auto}.modal-head{display:flex;justify-content:space-between;align-items:center;gap:.5rem}.modal-head h3{margin:0;font-size:.95rem;color:var(--heading)}.grant-list{list-style:none;margin:.6rem 0 0;padding:0;display:flex;flex-direction:column;gap:.3rem}.grant-row{display:flex;justify-content:space-between;align-items:center;gap:.6rem;border-bottom:1px solid var(--line);padding:.25rem 0}.grant-name{font-size:.8rem}.chips{display:flex;flex-direction:column;gap:.2rem;padding:.3rem .35rem .1rem}.chip{background:var(--event-fill);border:1px solid var(--event);border-left:3px solid var(--event);border-radius:var(--radius-sm);padding:.16rem .35rem;font-size:.68rem;color:var(--event-ink)}.chip.donsa{background:var(--donsa-fill);border-color:var(--donsa);border-left-color:var(--donsa);color:var(--donsa-ink)}.chip-title{font-weight:800;letter-spacing:.02em}.chip-cat{font-family:var(--mono);font-size:.6rem;font-weight:700;opacity:.85;margin-right:.25rem;letter-spacing:.05em}.chip-details{font-weight:500;opacity:.9}.fields{display:flex;flex-direction:column;padding:.25rem .35rem .4rem;gap:.18rem}.field{display:flex;flex-direction:column;gap:.05rem}.field-label{font-family:var(--mono);font-size:.56rem;font-weight:700;letter-spacing:.09em;color:var(--muted)}.field-input{border:1px solid transparent;border-bottom:1px solid var(--line);border-radius:3px;padding:.1rem .25rem;font-size:.72rem;resize:none;background:transparent;color:var(--ink);width:100%;min-height:1.35rem;font-family:var(--font);overflow:hidden}.field-input:hover{background:var(--surface)}.field-input:focus{outline:none;border-color:var(--accent);background:var(--surface);box-shadow:0 0 0 2px var(--focus-ring)}.daycell.out-of-month .field-input{color:var(--muted)}.focus-row{display:flex;align-items:center;gap:.35rem;padding:.3rem .4rem .15rem}.focus-row .field-label{margin-right:auto}.focus-select{font-size:.68rem;font-weight:700;padding:.1rem .25rem;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);color:var(--ink)}.focus-select.EVENT{color:var(--focus-event-ink);background:var(--focus-event-fill);border-color:var(--accent)}.focus-select.DONSA{color:var(--donsa-ink);background:var(--donsa-fill);border-color:var(--donsa)}.events-page{max-width:60rem;margin:0 auto}.events-head{display:flex;align-items:center;gap:.75rem;margin-bottom:.75rem}.events-head h2{margin:0;color:var(--heading);font-family:var(--mono);font-weight:600;letter-spacing:.03em}.events-table{width:100%;border-collapse:collapse;background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--radius);overflow:hidden}.events-table th{background:var(--day-head);color:var(--day-head-ink);text-align:left;padding:.5rem .6rem;font-family:var(--mono);font-size:.68rem;letter-spacing:.05em;font-weight:600}.events-table td{padding:.4rem .6rem;border-top:1px solid var(--line);vertical-align:top}.events-table tr.donsa-row td{background:var(--donsa-fill)}.events-table input,.events-table select,.events-table textarea{width:100%;border:1px solid var(--line);border-radius:var(--radius-sm);padding:.25rem .35rem;font-size:.8rem;background:var(--surface-2);color:var(--ink)}.events-table textarea{resize:vertical;min-height:1.8rem}.cat-pill{display:inline-block;padding:.1rem .4rem;border-radius:999px;font-size:.68rem;font-weight:700;background:var(--accent-soft);color:var(--accent-ink)}.empty-row td{text-align:center;color:var(--muted);padding:1.2rem;font-style:italic}.checkcell{text-align:center}.ev-cards{display:flex;flex-direction:column;gap:.55rem}.ev-card{background:var(--surface);border:1px solid var(--line-strong);border-left:3px solid var(--event);border-radius:var(--radius);padding:.6rem .7rem}.ev-card.donsa{border-left-color:var(--donsa);background:var(--donsa-fill)}.ev-card-top{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-bottom:.25rem}.ev-dates{font-family:var(--mono);font-size:.74rem;font-weight:700;letter-spacing:.04em;color:var(--accent-ink);white-space:nowrap}.ev-card.donsa .ev-dates{color:var(--donsa-ink)}.ev-title{font-size:.9rem;font-weight:700;color:var(--ink);line-height:1.3}.ev-details{font-size:.78rem;color:var(--muted);margin-top:.15rem;line-height:1.4}.ev-dates-row{display:flex;gap:.5rem}.ev-dates-row label{flex:1 1 0;min-width:0}.ev-card input[type=date]{min-width:0;max-width:100%;-webkit-appearance:none;appearance:none}.ev-card-top .ev-dates{margin-right:auto}.ev-card label{display:block;margin-bottom:.5rem}.ev-card label>span{display:block;margin-bottom:.15rem;font-family:var(--mono);font-size:.56rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}.ev-card input[type=date],.ev-card input[type=text],.ev-card select,.ev-card textarea{width:100%;box-sizing:border-box;padding:.45rem .5rem;font-size:.88rem;background:var(--surface-2);color:var(--ink);border:1px solid var(--line);border-radius:var(--radius)}.ev-card textarea{resize:vertical;min-height:2.4rem}.ev-check{display:flex!important;align-items:center;gap:.45rem;font-size:.82rem;color:var(--ink);margin:.2rem 0 .7rem!important}.ev-check input{width:1.05rem;height:1.05rem}.ev-actions{display:flex;gap:.4rem}.ev-actions .btn{flex:1;padding:.5rem}.hint{color:var(--muted);font-size:.78rem;margin:.5rem 0 0}.seg-toggle .tab{padding:.35rem .7rem}.plan-print-src{display:none}html.phone-shell,html.phone-shell body{overflow-x:hidden}@supports (overflow: clip){html.phone-shell,html.phone-shell body{overflow-x:clip;overflow-y:visible}}html.native-shell body:before{content:"";position:fixed;top:0;left:0;right:0;height:env(safe-area-inset-top,0);background:var(--header-1);z-index:40;pointer-events:none}html.native-shell:has(.auth-shell) body:before,html.native-shell:has(.console) body:before{background:var(--bg)}html.native-shell .app,html.native-shell .company{padding-top:env(safe-area-inset-top,0)}html.native-shell .console{padding-top:calc(1rem + env(safe-area-inset-top,0));padding-bottom:calc(3rem + env(safe-area-inset-bottom,0))}html.native-shell .auth-shell{padding-top:calc(24px + env(safe-area-inset-top,0));padding-bottom:calc(24px + env(safe-area-inset-bottom,0))}html.native-shell .m-topbar,html.native-shell .app-header{top:env(safe-area-inset-top,0)}.edit-switch{display:inline-flex;align-items:center;gap:.4rem;padding:.2rem .3rem;font:inherit;background:transparent;border:none;cursor:pointer;color:var(--muted)}.edit-switch .es-label{font-family:var(--mono);font-size:.68rem;font-weight:700;letter-spacing:.09em;text-transform:uppercase;min-width:2.5rem;text-align:right}.edit-switch .es-track{position:relative;flex:0 0 auto;width:2.2rem;height:1.2rem;border-radius:999px;background:var(--surface-2);border:1px solid var(--line-strong);transition:background .15s ease,border-color .15s ease}.edit-switch .es-knob{position:absolute;top:2px;left:2px;width:calc(1.2rem - 6px);height:calc(1.2rem - 6px);border-radius:50%;background:var(--muted);transition:transform .15s ease,background .15s ease}.edit-switch:hover .es-track{border-color:var(--accent)}.edit-switch.is-on{color:#f7d08a}.edit-switch.is-on .es-track{background:#d9a44138;border-color:#d9a441}.edit-switch.is-on .es-knob{transform:translate(1rem);background:#f7d08a}.edit-switch.is-on:hover .es-track{border-color:#f7d08a}.field-input.is-readonly,.dv-input.is-readonly{border-color:transparent;background:transparent;cursor:default}.field-input.is-readonly:hover,.dv-input.is-readonly:hover{background:transparent}.field-input.is-readonly::placeholder,.dv-input.is-readonly::placeholder{color:var(--muted);opacity:.7}.dv-input.is-readonly{border-bottom:1px solid var(--line);border-radius:0;padding-left:.15rem}.focus-select:disabled{opacity:1;color:var(--ink);background:transparent;border-color:transparent;-webkit-appearance:none;appearance:none}.events-table input:read-only,.events-table textarea:read-only{border-color:transparent;background:transparent;color:var(--ink)}.events-table select:disabled{opacity:1;color:var(--ink);background:transparent;border-color:transparent;-webkit-appearance:none;appearance:none}.dayview{max-width:34rem;margin:0 auto}.dayview-nav{display:flex;align-items:center;justify-content:space-between;gap:.6rem;margin-bottom:.7rem}.dv-navbtn{flex:0 0 auto;width:2.6rem;height:2.6rem;line-height:1;font-size:1.5rem;font-weight:700;background:var(--surface);color:var(--accent-ink);border:1px solid var(--line-strong);border-radius:var(--radius);cursor:pointer}.dv-navbtn:hover{background:var(--surface-2);border-color:var(--accent)}.dv-when{text-align:center;line-height:1.2}.dv-weekday{display:block;font-family:var(--mono);font-size:.7rem;font-weight:700;letter-spacing:.12em;color:var(--muted)}.dv-date{display:block;font-size:1.15rem;font-weight:800;color:var(--heading)}.dv-card{position:relative;background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow)}.dv-card.event-day{border-color:var(--event)}.dv-card.donsa{border-color:var(--donsa)}.dv-card.out-of-month{opacity:.85}.dv-loading{position:absolute;inset:0;display:grid;place-items:center;background:var(--veil);color:var(--muted);font-size:.85rem;z-index:2}.dv-chips{padding:.5rem .5rem .1rem}.dv-focus-row{display:flex;align-items:center;gap:.6rem;padding:.6rem .7rem;border-bottom:1px solid var(--line)}.dv-focus-row .field-label{font-size:.66rem}.dv-focus-row .focus-select{margin-left:auto;font-size:.9rem;padding:.4rem .5rem;min-width:9rem}.dv-fields{display:flex;flex-direction:column;padding:.5rem .7rem .8rem;gap:.7rem}.dv-field{display:flex;flex-direction:column;gap:.2rem}.dv-field .field-label{font-size:.62rem}.dv-input{border:1px solid var(--line-strong);border-radius:var(--radius);padding:.5rem .55rem;font-size:.95rem;line-height:1.4;background:var(--surface-2);color:var(--ink);width:100%;min-height:2.5rem;resize:none;overflow:hidden}.dv-input:focus{outline:none;border-color:var(--accent);background:var(--surface);box-shadow:0 0 0 2px var(--focus-ring)}.dv-hint{text-align:center;color:var(--muted);font-size:.72rem;margin:.7rem 0 0}.dv-lock{font:inherit;color:var(--accent-ink);background:transparent;border:none;padding:0;cursor:pointer;text-decoration:underline;text-underline-offset:2px}.dv-lock-note{margin-top:.25rem}.calendar{max-width:60rem;margin:0 auto}.cal-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:4px}.cal-dow{font-family:var(--mono);font-size:.62rem;font-weight:700;letter-spacing:.1em;color:var(--muted);text-align:center;padding:.2rem 0}.cal-cell{display:flex;flex-direction:column;align-items:flex-start;gap:2px;min-height:4.6rem;padding:.3rem .35rem;text-align:left;background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius);cursor:pointer;color:var(--ink);font-family:var(--font)}.cal-cell:hover{border-color:var(--accent);background:var(--surface)}.cal-cell.event-day{background:var(--event-fill);border-color:var(--event)}.cal-cell.donsa{background:var(--donsa-fill);border-color:var(--donsa)}.cal-cell.out-of-month{background:repeating-linear-gradient(-45deg,var(--surface),var(--surface) 6px,var(--bg) 6px,var(--bg) 12px);color:var(--muted)}.cal-cell.is-today{box-shadow:0 0 0 2px var(--accent);border-color:var(--accent)}.cal-daynum{font-weight:800;font-size:.9rem;color:var(--heading)}.cal-cell.event-day .cal-daynum{color:var(--event-ink)}.cal-cell.donsa .cal-daynum{color:var(--donsa-ink)}.cal-tag{font-family:var(--mono);font-size:.56rem;font-weight:800;letter-spacing:.08em;color:var(--donsa-ink)}.cal-ev{font-size:.62rem;font-weight:700;line-height:1.2;color:var(--event-ink);width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cal-focus{font-family:var(--mono);font-size:.58rem;font-weight:700;letter-spacing:.04em;color:var(--accent-ink)}.cal-loc{font-size:.58rem;line-height:1.25;color:var(--muted);width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cal-cell.event-day .cal-loc{color:var(--event-ink);opacity:.85}.calendar .sheet-head{align-items:center}.cal-nav{display:flex;align-items:center;gap:.5rem}.cal-nav .period{min-width:8.5rem;text-align:center}.cal-navbtn{width:2rem;height:2rem;font-size:1.15rem}@media (max-width: 720px){.calendar .sheet-head{flex-wrap:wrap}.calendar .sheet-head h2{display:none}.cal-nav{flex:1;justify-content:center}}.m-topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:.5rem;flex-wrap:wrap;padding:.5rem .7rem;background:var(--header-1);border-bottom:1px solid var(--line)}.m-lock-note{flex-basis:100%;margin:.15rem 0 0;font-size:.7rem;line-height:1.4;color:var(--muted)}.m-context{flex:1;min-width:0;text-align:left;background:transparent;border:none;padding:0;cursor:pointer;font:inherit;color:var(--ink)}.m-context-main{display:block;font-family:var(--mono);font-size:.82rem;font-weight:700;letter-spacing:.06em;color:var(--heading);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.m-context-main:after{content:" ▾";color:var(--accent);font-size:.7rem}.m-context-sub{display:block;font-size:.68rem;color:var(--muted);margin-top:1px}.m-topbar-right{display:flex;align-items:center;gap:.4rem;flex:none}.m-save{font-size:.68rem;color:var(--muted)}.m-save.is-error{color:var(--danger-ink);font-weight:700}.m-tabbar{position:fixed;left:0;right:0;bottom:0;z-index:20;display:flex;background:var(--header-1);border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom,0)}.m-tabbar button{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;padding:.45rem .2rem .5rem;font:inherit;font-size:.62rem;letter-spacing:.04em;background:transparent;border:none;color:var(--muted);cursor:pointer}.m-tabbar button.on{color:var(--accent-ink);font-weight:700}.m-tabbar svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.has-mobile-nav .main{padding-bottom:calc(4.5rem + env(safe-area-inset-bottom,0))}.m-sheet-backdrop{position:fixed;inset:0;z-index:45;background:rgb(var(--scrim-rgb) / .6);display:flex;align-items:flex-end}.m-sheet{width:100%;max-height:85vh;overflow-y:auto;background:var(--surface);border-top:1px solid var(--line-strong);border-radius:var(--radius-sheet) var(--radius-sheet) 0 0;padding:.5rem .9rem calc(1rem + env(safe-area-inset-bottom,0))}.m-sheet-grip{width:100%;height:1.6rem;margin:0 0 .45rem;display:flex;align-items:center;justify-content:center;touch-action:none;cursor:grab}.m-sheet-grip:before{content:"";width:2.2rem;height:4px;border-radius:2px;background:var(--line-strong)}.m-sheet-label{display:block;font-family:var(--mono);font-size:.58rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin:.9rem 0 .35rem}.m-chipset{display:flex;gap:.4rem;flex-wrap:wrap}.m-chipset button{flex:1;min-width:4rem;font:inherit;font-size:.8rem;font-weight:600;padding:.5rem .6rem;cursor:pointer;background:var(--surface-2);color:var(--muted);border:1px solid var(--line);border-radius:var(--radius)}.m-chipset button.on{background:var(--accent-soft);color:var(--accent-ink);border-color:var(--accent);font-weight:800}.m-selects{display:flex;gap:.4rem}.m-selects select{flex:1;font:inherit;font-size:.85rem;padding:.5rem;background:var(--surface-2);color:var(--ink);border:1px solid var(--line);border-radius:var(--radius)}.m-sheet-actions{display:flex;gap:.4rem;margin-top:1.1rem}.m-sheet-actions button{flex:1;font:inherit;font-size:.8rem;font-weight:600;padding:.6rem;background:var(--surface-2);color:var(--ink);border:1px solid var(--line-strong);border-radius:var(--radius);cursor:pointer}.m-signout,.m-sheet-close{display:block;width:100%;margin-top:.5rem;padding:.6rem;font:inherit;font-size:.8rem;cursor:pointer;background:transparent;border:1px solid var(--line);border-radius:var(--radius);color:var(--muted)}.m-sheet-close{margin-top:.9rem;color:var(--ink);border-color:var(--line-strong);font-weight:600}@media (max-width: 720px){.app-header{gap:.5rem;padding:.5rem .7rem}.app-title{width:100%}.toolbar{width:100%;gap:.4rem}.main{padding:.7rem}.tab{padding:.4rem .7rem;font-size:.8rem}.save-hint{min-width:0}.cal-cell{min-height:3.9rem}.cal-dow{font-size:.56rem}}@media (max-width: 420px){.cal-cell{min-height:3.3rem;padding:.25rem}.cal-daynum{font-size:.8rem}.cal-ev,.cal-focus{font-size:.54rem}}.edit-lock,.m-lock{font-family:var(--mono);font-size:.62rem;font-weight:700;letter-spacing:.09em;color:var(--muted);border:1px solid var(--line);border-radius:999px;padding:.25rem .6rem;white-space:nowrap}button.m-lock{background:transparent;cursor:pointer}.tpl-menu{display:inline-flex}.tpl-btn{font:inherit;font-size:.68rem;font-weight:700;cursor:pointer;color:var(--accent-ink);background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--radius);padding:.15rem .45rem;white-space:nowrap}.tpl-btn:hover{border-color:var(--accent);background:var(--surface-2)}.tpl-btn.is-compact{font-size:.62rem;padding:.05rem .3rem;line-height:1.4}.tpl-backdrop{position:fixed;inset:0;z-index:59;background:rgb(var(--scrim-rgb) / .45)}.tpl-pop{position:fixed;z-index:60;left:50%;top:18%;transform:translate(-50%);width:min(20rem,92vw);display:flex;flex-direction:column;gap:.3rem;background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--radius);box-shadow:var(--shadow);padding:.7rem}.tpl-head{font-family:var(--mono);font-size:.6rem;font-weight:700;letter-spacing:.12em;color:var(--muted);text-transform:uppercase}.tpl-item{display:flex;justify-content:space-between;align-items:baseline;gap:.5rem;font:inherit;font-size:.85rem;font-weight:600;text-align:left;cursor:pointer;color:var(--ink);background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius);padding:.45rem .55rem}.tpl-item:hover{border-color:var(--accent)}.tpl-item small{color:var(--muted);font-weight:500;white-space:nowrap}.tpl-item:disabled{opacity:.55;cursor:default}.tpl-item:disabled:hover{border-color:var(--line)}.tpl-saveas{color:var(--accent-ink);background:transparent;border-style:dashed}.tpl-clear{color:var(--danger-ink);background:transparent;border-color:var(--danger-line)}.tpl-clear:hover{background:var(--danger-fill);border-color:var(--danger-line)}.tpl-empty{font-size:.8rem;color:var(--muted);padding:.2rem 0}.tpl-name{font:inherit;font-size:.9rem;padding:.45rem .5rem;background:var(--surface-2);color:var(--ink);border:1px solid var(--line-strong);border-radius:var(--radius)}.tpl-name:focus{outline:none;border-color:var(--accent)}.tpl-warn{font-size:.72rem;color:var(--warn-ink)}.tpl-error{font-size:.72rem;color:var(--error-ink)}.tpl-row{display:flex;gap:.4rem;margin-top:.2rem}.dv-tpl-row{display:flex;justify-content:flex-end;padding:.5rem .5rem 0}.daycell-head .daycell-weekday{margin-right:auto}.profile-page{max-width:44rem;margin:0 auto;display:flex;flex-direction:column;gap:.9rem}.profile-card{background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--radius);padding:.9rem 1rem}.profile-sub{margin:0 0 .5rem;font-family:var(--mono);font-size:.85rem;letter-spacing:.05em;color:var(--heading)}.profile-row{display:flex;align-items:center;gap:.75rem;padding:.3rem 0;flex-wrap:wrap}.profile-label{min-width:7.5rem;font-family:var(--mono);font-size:.62rem;font-weight:700;letter-spacing:.1em;color:var(--muted);text-transform:uppercase}.profile-value{font-weight:700;color:var(--ink);display:inline-flex;align-items:center;gap:.5rem}.profile-hint{margin:.4rem 0 0;font-size:.78rem;color:var(--muted)}.profile-hint a{color:var(--accent-ink);font-weight:700}.profile-error{margin:.4rem 0 0;font-size:.78rem;color:var(--error-ink)}.role-badge{font-family:var(--mono);font-size:.58rem;font-weight:800;letter-spacing:.1em;border:1px solid var(--line-strong);border-radius:999px;padding:.1rem .45rem;color:var(--muted);white-space:nowrap}.role-badge.role-member{color:#a9c3e0;border-color:#3d5f8a;background:#3d5f8a26}.role-badge.role-squad_leader{color:#93c5fd;border-color:#3b82f6;background:#3b82f624}.role-badge.role-platoon_sergeant{color:#e2b7fb;border-color:#b35ce0;background:#b35ce029}.role-badge.role-leadership{color:#5eead4;border-color:#14b8a6;background:#14b8a629}.role-badge.role-admin,.role-badge.is-admin{color:#f7d08a;border-color:#d9a441;background:#d9a4411f}.role-badge.role-owner{color:#fbe3ad;border-color:#e6b85c;background:#e6b85c33}.role-badge.role-linked{color:#86efac;border-color:#22c55e;background:#22c55e24}.squad-pill{display:inline-block;font-family:var(--mono);font-size:.6rem;font-weight:800;letter-spacing:.08em;padding:.14rem .55rem;border-radius:var(--radius);border:1px solid var(--line-strong);color:var(--muted);background:transparent;white-space:nowrap}.squad-pill.squad-c1{border-color:#22d3ee;color:#7fe6f5}.squad-pill.squad-c2{border-color:#4ade80;color:#86efac}.squad-pill.squad-c3{border-color:#fb923c;color:#fdba74}.squad-pill.squad-c4{border-color:#a78bfa;color:#c4b5fd}.squad-pill.squad-c5{border-color:#fb7185;color:#fda4af}.squad-pill.squad-c6{border-color:#facc15;color:#fde047}.squad-pill.squad-c7{border-color:#38bdf8;color:#7dd3fc}.squad-pill.squad-c8{border-color:#2dd4bf;color:#5eead4}.squad-pill.squad-none{border-color:var(--line-strong);color:var(--muted)}.roster-group{margin:0 0 .7rem;border:1px solid var(--line-strong);border-radius:var(--radius-lg);overflow:hidden;background:var(--surface)}.roster-group:last-child{margin-bottom:0}.roster-group.is-mine{border-color:var(--accent);box-shadow:0 0 0 1px var(--focus-ring)}.roster-group-head{display:flex;align-items:center;gap:.5rem;padding:.4rem .6rem;background:var(--surface-2);border-bottom:1px solid var(--line)}.roster-yours{font-family:var(--mono);font-size:.54rem;font-weight:800;letter-spacing:.1em;color:var(--accent-ink);border:1px solid var(--accent);border-radius:999px;padding:.05rem .4rem}.roster-count{margin-left:auto;color:var(--muted);font-size:.72rem;font-weight:600}.profile-squads{display:flex;gap:.4rem;flex-wrap:wrap}.profile-squad{font:inherit;font-weight:800;letter-spacing:.04em;cursor:pointer;padding:.45rem .9rem;border-radius:var(--radius-lg);background:var(--surface-2);color:var(--muted);border:1px solid var(--line-strong)}.profile-squad.active{color:var(--accent-ink);border-color:var(--accent);background:var(--accent-soft);text-decoration:underline;text-underline-offset:3px}.profile-squad:disabled{opacity:.6;cursor:default}.tpl-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.4rem}.tpl-list-row{display:flex;align-items:center;justify-content:space-between;gap:.6rem;background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius);padding:.4rem .55rem}.tpl-list-name{font-weight:600;display:inline-flex;align-items:baseline;gap:.5rem;min-width:0}.tpl-list-name small{color:var(--muted);font-weight:500;white-space:nowrap}.tpl-actions{flex:0 0 auto;display:grid;grid-template-columns:repeat(3,4.6rem);gap:.3rem}.tpl-actions>.btn{width:100%}.tpl-actions>.btn-small{padding:.2rem .3rem;font-size:.7rem;text-align:center}@media (max-width: 720px){.tpl-list-row{flex-wrap:wrap}.tpl-list-name{flex:1 1 100%;flex-wrap:wrap}.tpl-actions{flex:1 1 100%;grid-template-columns:repeat(3,1fr)}}.m-profile{display:block;width:100%;margin-top:.5rem;padding:.6rem;font:inherit;font-size:.8rem;cursor:pointer;background:transparent;border:1px solid var(--line-strong);border-radius:var(--radius);color:var(--accent-ink)}.pw-row{display:flex;gap:.4rem;flex-wrap:wrap;align-items:center}.pw-row input{flex:1 1 10rem;min-width:0;font:inherit;font-size:.85rem;padding:.4rem .5rem;background:var(--surface-2);color:var(--ink);border:1px solid var(--line-strong);border-radius:var(--radius)}.pw-row input:focus{outline:none;border-color:var(--accent)}.grant-form{display:flex;gap:.4rem;flex-wrap:wrap;align-items:stretch;margin:.4rem 0 .6rem}.grant-form select,.grant-form input[type=month]{flex:1 1 8.5rem;min-width:0;height:2.2rem;box-sizing:border-box;font:inherit;font-size:.85rem;padding:.35rem .45rem;background:var(--surface-2);color:var(--ink);border:1px solid var(--line-strong);border-radius:var(--radius);-webkit-appearance:none;appearance:none}.roster-actions{display:flex;gap:.35rem;align-items:center;flex-wrap:wrap}.pw-inline{display:inline-flex;gap:.3rem;align-items:center}.pw-inline input{font:inherit;font-size:.8rem;width:9rem;padding:.3rem .4rem;background:var(--surface-2);color:var(--ink);border:1px solid var(--line-strong);border-radius:var(--radius)}.auth-squad-none{flex-basis:100%;margin-top:.1rem}.roster-lines{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}.roster-line{display:flex;align-items:center;gap:.4rem;flex-wrap:wrap;padding:.4rem .6rem;border-bottom:1px solid var(--line)}.roster-line:last-child{border-bottom:none}.roster-line:nth-child(2n){background:#ffffff04}.roster-line.is-self{background:var(--accent-soft)}.roster-name{flex:1 1 4.5rem;min-width:0;font-weight:700;letter-spacing:.01em;display:inline-flex;align-items:center;gap:.4rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.roster-you{font-family:var(--mono);font-size:.52rem;font-weight:800;letter-spacing:.08em;color:var(--accent-ink);border:1px solid var(--accent);border-radius:999px;padding:.02rem .35rem;flex:0 0 auto}.roster-line-ctrl{display:inline-flex;align-items:center;gap:.35rem;flex-wrap:wrap;justify-content:flex-end}.roster-line select{font:inherit;font-size:.78rem;padding:.25rem .3rem;min-width:0;background:var(--surface);color:var(--ink);border:1px solid var(--line-strong);border-radius:var(--radius)}.roster-line .btn-small{padding:.2rem .45rem;font-size:.7rem}.roster-line .pw-inline{flex-basis:100%;justify-content:flex-end;margin-top:.3rem}.roster-line .pw-inline input{flex:1;min-width:0}.profile-btn{display:inline-flex;align-items:center;gap:.45rem}.m-user{display:inline-flex;align-items:center;gap:.3rem;font-size:.72rem;font-weight:700;color:var(--ink);max-width:9.5rem;overflow:hidden}.m-user-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tpl-list-item{display:flex;flex-direction:column}.tpl-list-item .tpl-list-row{border-radius:var(--radius) var(--radius) 0 0}.tpl-preview{margin:0;padding:.5rem .65rem;display:flex;flex-direction:column;gap:.3rem;background:var(--surface);border:1px solid var(--line);border-top:none;border-radius:0 0 var(--radius) var(--radius);font-size:.8rem}.tpl-preview dt{font-family:var(--mono);font-size:.56rem;font-weight:700;letter-spacing:.1em;color:var(--muted)}.tpl-preview dd{margin:.05rem 0 0;white-space:pre-wrap;color:var(--ink)}.tpl-editor{display:flex;flex-direction:column;gap:.4rem;margin:.4rem 0 .7rem;padding:.65rem;background:var(--surface-2);border:1px solid var(--line-strong);border-radius:var(--radius-lg)}.tpl-editor-row{display:flex;gap:.4rem;flex-wrap:wrap}.tpl-editor-row .tpl-name{flex:2 1 12rem}.tpl-editor-row select{flex:1 1 8rem;min-width:0;font:inherit;font-size:.85rem;padding:.4rem .45rem;background:var(--surface);color:var(--ink);border:1px solid var(--line-strong);border-radius:var(--radius)}.tpl-editor-field{display:flex;flex-direction:column;gap:.15rem}.tpl-editor-field textarea{font:inherit;font-size:.85rem;padding:.35rem .45rem;resize:none;overflow:hidden;min-height:2rem;background:var(--surface);color:var(--ink);border:1px solid var(--line-strong);border-radius:var(--radius)}.dn-fields{display:flex;gap:.4rem;flex-wrap:wrap}.dn-rank{flex:0 0 6rem;font:inherit;font-size:.9rem;padding:.45rem .5rem;background:var(--surface-2, #0c1a30);color:var(--ink, #e8f1fa);border:1px solid var(--line-strong, #274b73);border-radius:var(--radius)}.dn-last{flex:1 1 8rem;min-width:0;font:inherit;font-size:.9rem;padding:.45rem .5rem;background:var(--surface-2, #0c1a30);color:var(--ink, #e8f1fa);border:1px solid var(--line-strong, #274b73);border-radius:var(--radius)}.dn-rank:focus,.dn-last:focus{outline:none;border-color:var(--accent, #22d3ee)}.dn-preview{margin:.55rem 0 .2rem;text-align:center;font-weight:800;letter-spacing:.02em;color:var(--accent-ink, #7fe6f5);min-height:1.2em}.dn-edit{display:flex;gap:.4rem;flex-wrap:wrap;align-items:center}.profile-muted{color:var(--muted);font-weight:500;font-size:.85em}.roster-handle{color:var(--muted);font-weight:500;font-size:.78em}.support-banner{display:flex;align-items:center;justify-content:center;gap:.8rem;padding:.45rem .8rem;font-family:var(--mono);font-size:.7rem;letter-spacing:.14em;color:#fbe3ad;background:#e6b85c24;border-bottom:1px solid #e6b85c}.offline-banner{display:flex;align-items:center;justify-content:center;padding:.45rem .8rem;font-family:var(--mono);font-size:.7rem;letter-spacing:.1em;color:var(--danger-ink);background:var(--danger-fill);border-bottom:1px solid var(--danger-line)}.team-inline{display:flex;gap:.45rem;align-items:center;flex-wrap:wrap}.team-inline input,.team-squad-row input{font:inherit;font-size:.88rem;padding:.4rem .6rem;color:var(--ink);background:var(--bg);border:1px solid var(--line-strong);border-radius:var(--radius);min-width:0;flex:1;max-width:18rem}.team-inline input:focus,.team-squad-row input:focus{border-color:var(--accent);outline:none}.team-squads{list-style:none;margin:.4rem 0;padding:0;display:flex;flex-direction:column;gap:.45rem}.team-squad-row{display:flex;gap:.45rem;align-items:center}.team-add{margin-top:.6rem}.team-confirm{margin:.6rem 0}.team-code-reveal{display:flex;gap:.6rem;align-items:center;flex-wrap:wrap}.team-code{font-family:var(--mono);font-size:1.05rem;letter-spacing:.12em;padding:.4rem .7rem;color:var(--accent-ink);background:var(--accent-soft);border:1px solid var(--accent);border-radius:var(--radius);user-select:all}@media (max-width: 720px){.field-input,.dv-input,.focus-select,.tpl-name,.tpl-editor-row select,.tpl-editor-field textarea,.m-selects select,.ev-card input[type=date],.ev-card input[type=text],.ev-card select,.ev-card textarea,.events-table input,.events-table select,.events-table textarea,.pw-row input,.pw-row select,.pw-inline input,.grant-form select,.grant-form input[type=month],.roster-line select,.dn-rank,.dn-last,.team-inline input,.team-squad-row input{font-size:16px}}@media screen and (max-width: 900px){.week{overflow-x:auto}.week-strip{min-width:54rem}}@media print{:root{color-scheme:light;--bg: #ffffff;--surface: #ffffff;--surface-2: #ffffff;--header-1: #ffffff;--header-2: #ffffff;--ink: #16202b;--heading: #0e2841;--muted: #4a5b6b;--accent: #156082;--accent-ink: #0c3a50;--accent-soft: #eaf4ff;--line: #c9d3dc;--line-strong: #94a6b5;--day-head: #0e2841;--day-head-ink: #ffffff;--print-cyan: #0d6a8f;--event: #196b24;--event-fill: #e3f2e4;--event-ink: #0f4417;--event-head: #196b24;--event-head-ink: #ffffff;--donsa: #1c6f97;--donsa-fill: #d6eaf4;--donsa-ink: #0c3a50;--donsa-head-ink: #ffffff;--focus-event-fill: #eaf4ff;--focus-event-ink: #0b4a86;--company: #a9741a;--company-fill: #f7ecd6;--company-ink: #6d4a0d;--company-head-ink: #ffffff;--shadow: none}@page{size:landscape;margin:.45in .45in .6in}html,body{background:#fff!important}*{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}.app-header,.legend,.no-print{display:none!important}.main{padding:0!important}.print-header{display:flex!important}.weeks{gap:0!important}.week{break-inside:auto;page-break-inside:auto;box-shadow:none!important;border:1.5px solid #143452!important;border-radius:0!important;margin-bottom:.18in}.week.page-break-before{break-before:page;page-break-before:always}.daycell{break-inside:avoid;page-break-inside:avoid}.daycell.out-of-month{background:repeating-linear-gradient(-45deg,#fff,#fff 6px,#e7eef4 6px 12px)!important}.daycell.is-today{outline:none!important;box-shadow:none!important}.daycell.is-today .daycell-date{color:inherit!important}.field-input{border:none!important;background:transparent!important;box-shadow:none!important;white-space:pre-wrap;color:#16202b!important}.field-input::placeholder{color:transparent!important}.print-hide{display:none!important}.focus-select{border:none!important;-webkit-appearance:none;appearance:none}.week-header{display:flex!important;align-items:flex-end;justify-content:space-between;border-bottom:2px solid var(--heading);padding:7pt 8pt 5pt}.wh-title{font-family:var(--mono);font-size:13pt;font-weight:700;color:var(--heading);letter-spacing:.06em}.wh-squad{display:block;font-family:var(--mono);font-size:8pt;letter-spacing:.14em;color:var(--muted);margin-top:2pt}.wh-unit{display:block;font-family:var(--mono);font-size:9pt;font-weight:700;letter-spacing:.12em;color:var(--heading);margin-top:2pt}.wh-company{display:block;font-family:var(--mono);font-size:7pt;letter-spacing:.14em;color:var(--muted);margin-top:1pt}.wh-period{font-family:var(--mono);font-size:11pt;font-weight:700;color:var(--print-cyan);letter-spacing:.05em}.week-rule{display:block!important;height:2px;width:56px;background:var(--print-cyan);margin:6pt 0 0 8pt}.print-footer{display:flex!important;position:fixed;bottom:0;left:0;right:0;justify-content:space-between;align-items:center;font-family:var(--mono);font-size:7pt;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);background:#fff;border-top:1px solid var(--line-strong);padding:4pt 0 0}}.week-header,.week-rule,.print-footer{display:none}.auth-shell{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:24px;padding:32px 16px 24px;background:radial-gradient(ellipse 60% 45% at 50% 0%,var(--accent-glow),transparent 70%),var(--bg)}.auth-hero{display:flex;flex-direction:column;align-items:center}.auth-halo{position:relative;width:148px;height:157px;margin-bottom:18px}.auth-halo:before{content:"";position:absolute;inset:-36px;border-radius:50%;background:radial-gradient(circle,var(--focus-ring),transparent 70%);animation:auth-breathe 2.6s ease-in-out infinite}.auth-mark{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 14px 30px rgba(0,0,0,.55));animation:auth-lift 2.6s ease-in-out infinite}.auth-wordmark{margin:0;font-family:var(--mono);font-size:21px;font-weight:600;letter-spacing:.34em;text-indent:.34em;text-transform:uppercase;color:var(--heading)}.auth-tagline{margin:6px 0 0;font-family:var(--mono);font-size:10px;letter-spacing:.3em;text-indent:.3em;text-transform:uppercase;color:var(--muted)}.auth-loadbar{position:relative;width:120px;height:2px;margin-top:8px;border-radius:var(--radius-sm);background:var(--line);overflow:hidden}.auth-loadbar:after{content:"";position:absolute;top:0;left:-40%;width:40%;height:100%;background:linear-gradient(90deg,transparent,var(--accent),transparent);animation:auth-scan 1.5s ease-in-out infinite}@keyframes auth-breathe{0%,to{opacity:.5;transform:scale(.95)}50%{opacity:1;transform:scale(1.05)}}@keyframes auth-lift{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}@keyframes auth-scan{to{left:100%}}@media (prefers-reduced-motion: reduce){.auth-halo:before,.auth-mark,.auth-loadbar:after{animation:none}}@media (max-height: 700px){.auth-halo{width:112px;height:119px;margin-bottom:12px}.auth-wordmark{font-size:18px}}.auth-card{width:min(400px,100%);padding:28px 26px 22px;background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--radius-xl);box-shadow:0 24px 60px #00000073}.auth-sub{margin:0 0 18px;text-align:center;font-size:12px;letter-spacing:.22em;text-transform:uppercase;color:var(--muted)}.auth-tabs{display:flex;gap:6px;margin-bottom:16px}.auth-tab{flex:1;padding:8px 10px;font:inherit;font-size:13px;color:var(--muted);background:transparent;border:1px solid var(--line);border-radius:var(--radius);cursor:pointer}.auth-tab.active{color:var(--accent-ink);border-color:var(--accent);background:var(--accent-soft)}.auth-note{margin:0 0 14px;font-size:13px;color:var(--accent-ink)}.auth-field{display:block;margin-bottom:12px}.auth-field span{display:block;margin-bottom:4px;font-family:var(--mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}.auth-field input{width:100%;box-sizing:border-box;padding:9px 11px;font:inherit;font-size:14px;color:var(--ink);background:var(--bg);border:1px solid var(--line-strong);border-radius:var(--radius);outline:none}.auth-field input:focus{border-color:var(--accent)}.auth-hint{margin:4px 0 0;font-size:11px;line-height:1.4;color:var(--muted)}.auth-error{margin:2px 0 10px;padding:8px 10px;font-size:13px;color:var(--danger-ink);background:var(--danger-fill);border:1px solid var(--danger-line);border-radius:var(--radius)}.auth-submit{width:100%;margin-top:4px;padding:10px 12px;font:inherit;font-size:14px;font-weight:600;color:var(--accent-ink);background:var(--accent-soft);border:1px solid var(--accent);border-radius:var(--radius);cursor:pointer}.auth-submit:disabled{opacity:.6;cursor:default}.auth-alt{width:100%;margin-top:8px;padding:8px;font:inherit;font-size:13px;color:var(--muted);background:transparent;border:1px solid var(--line);border-radius:var(--radius);cursor:pointer}.auth-field textarea{width:100%;box-sizing:border-box;padding:9px 11px;font:inherit;font-size:14px;color:var(--ink);background:var(--bg);border:1px solid var(--line-strong);border-radius:var(--radius);outline:none;resize:vertical}.auth-field textarea:focus{border-color:var(--accent)}.auth-hp{position:absolute;left:-9999px;top:-9999px;height:1px;width:1px;overflow:hidden}.auth-foot{margin:14px 0 0;text-align:center;font-size:11.5px;line-height:1.5;color:var(--muted)}.auth-squads{display:flex;gap:.5rem;margin:.4rem 0 1rem}.auth-squad{flex:1;padding:.85rem .5rem;font:inherit;font-weight:800;letter-spacing:.05em;cursor:pointer;border-radius:var(--radius-lg);background:var(--surface-2, #0c1a30);color:var(--muted, #89a4c2);border:1px solid var(--line-strong, #274b73)}.auth-squad.active{color:var(--accent-ink, #7fe6f5);border-color:var(--accent, #22d3ee);background:var(--accent-soft, #0e2a3a);box-shadow:0 0 0 2px var(--focus-ring)}@media (max-width: 720px){.auth-card input,.auth-card select,.auth-card textarea{font-size:16px}}.company{min-height:100%;display:flex;flex-direction:column}.company-head{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap;padding:.55rem 1rem;background:linear-gradient(var(--header-1),var(--header-2));border-bottom:1px solid var(--line-strong)}.company-title{margin:0;font-size:1.05rem;color:var(--heading);display:flex;align-items:baseline;gap:.5rem}.company-title small{font-size:.72rem;font-weight:500;color:var(--muted);display:inline-flex;align-items:center;gap:.35rem}.company-tabs{display:flex;gap:.25rem;flex-wrap:wrap}.company-tabs .tab{background:transparent;border:1px solid var(--line);color:var(--ink);border-radius:var(--radius-sm);padding:.3rem .7rem;font-size:.78rem;cursor:pointer}.company-tabs .tab.active{background:var(--accent-soft);border-color:var(--accent);color:var(--accent-ink)}.company-main{padding:.9rem 1rem 2rem}.role-badge.role-command{background:var(--company-fill);color:var(--company-ink);border:1px solid var(--company)}.glance-nav{display:flex;align-items:center;gap:.4rem;flex-wrap:wrap;margin-bottom:.6rem}.glance-week{font-family:var(--mono);font-size:.78rem;color:var(--muted);margin-left:.4rem}.glance-scroll{overflow-x:auto}@media (min-width: 721px){.assignments .glance-scroll:has(.assign-picker){overflow:visible}}.glance-table{border-collapse:collapse;width:100%;min-width:46rem;table-layout:fixed;background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--radius)}.glance-table th,.glance-table td{border:1px solid var(--line);padding:.3rem .4rem;text-align:left;vertical-align:top}.glance-table thead th{background:var(--day-head);color:var(--day-head-ink);text-align:center}.glance-table thead th.is-today{box-shadow:inset 0 0 0 2px var(--accent)}.glance-wd{display:block;font-family:var(--mono);font-size:.6rem;font-weight:700;letter-spacing:.09em}.glance-dnum{display:block;font-size:.78rem;font-weight:700}.glance-rowhead{font-family:var(--mono);font-size:.62rem;font-weight:700;letter-spacing:.08em;color:var(--muted);white-space:nowrap;width:7rem;position:sticky;left:0;z-index:2;background:var(--surface);box-shadow:inset -1px 0 0 var(--line),inset 0 -1px 0 var(--line)}.glance-rowhead:before{content:"";position:absolute;top:-1px;bottom:-1px;left:-1px;width:2px;background:var(--line-strong)}.glance-table tbody tr:last-child .glance-rowhead:after{content:"";position:absolute;left:-1px;right:0;bottom:-1px;height:2px;background:var(--line-strong)}.glance-pin-frame{position:relative}.glance-pin-frame:before{content:"";position:absolute;left:-1px;top:0;bottom:0;width:3px;background:var(--line-strong);z-index:4;pointer-events:none}.glance-company-row .glance-rowhead{background:var(--surface-2);white-space:normal}.glance-table thead th.glance-rowhead{background:var(--day-head);color:var(--day-head-ink);z-index:3}.glance-platoon{background:var(--surface-2);color:var(--heading);font-family:var(--mono);font-size:.7rem;font-weight:700;letter-spacing:.08em}.glance-platoon-name{position:sticky;left:.4rem;display:inline-block}.glance-squad{padding-left:.9rem}.glance-company-row td{background:var(--surface-2)}.glance-table td.donsa{background:var(--donsa-fill)}.glance-table td.event-cell{background:var(--event-fill)}.glance-table td.company-cell{background:var(--company-fill)}.glance-table td.out-of-month{background:repeating-linear-gradient(-45deg,var(--surface),var(--surface) 6px,var(--bg) 6px,var(--bg) 12px)}.glance-table td.is-today{box-shadow:inset 0 0 0 2px var(--accent)}.glance-cell-btn{display:flex;flex-direction:column;gap:.1rem;align-items:flex-start;width:100%;background:transparent;border:0;padding:0;cursor:pointer;color:inherit;text-align:left;font:inherit}.glance-focus{font-family:var(--mono);font-size:.6rem;font-weight:800;letter-spacing:.06em;color:var(--accent-ink)}.glance-focus.focus-EVENT{color:var(--event-ink)}.glance-focus.focus-DONSA{color:var(--donsa-ink)}.glance-loc{font-size:.72rem;color:var(--ink);overflow-wrap:anywhere}.glance-tag{display:inline-block;font-family:var(--mono);font-size:.58rem;font-weight:800;letter-spacing:.06em;border-radius:3px;padding:.05rem .3rem;margin:.05rem .2rem .05rem 0;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:top}.glance-tag.donsa-tag{background:var(--donsa);color:var(--donsa-head-ink)}.glance-tag.event-tag{background:var(--event-fill);color:var(--event-ink);border:1px solid var(--event)}.glance-assigned{display:inline-block;font-family:var(--mono);font-size:.62rem;font-weight:800;background:var(--company);color:var(--company-head-ink);border:0;border-radius:3px;padding:.1rem .35rem;cursor:pointer;margin:.05rem .2rem .05rem 0;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:top}.day-detail .detail-row{display:flex;gap:.6rem;border-bottom:1px solid var(--line);padding:.25rem 0}.day-detail .field-label{width:7rem;flex:none;padding-top:.1rem}.day-detail .detail-value{font-size:.8rem;white-space:pre-wrap;overflow-wrap:anywhere}.assign-table td{position:relative;min-width:8rem}.assign-picker{position:absolute;z-index:20;top:100%;left:0;min-width:13rem;background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--radius);box-shadow:var(--shadow);padding:.5rem;display:flex;flex-direction:column;gap:.3rem}.assign-picker.open-up{top:auto;bottom:100%}.assign-picker.open-right{left:auto;right:0}.assign-when{font-family:var(--mono);font-size:.68rem;font-weight:800;letter-spacing:.08em;color:var(--heading);margin:0 0 .15rem}.assign-warn{color:var(--danger-ink);font-size:.72rem;margin:0 0 .2rem}.company-teams{list-style:none;margin:.3rem 0;padding:0;display:flex;flex-direction:column;gap:.25rem;font-size:.82rem}.company-teams small{color:var(--muted)}.m-sheet-who{margin:.2rem 0 0;font-size:.85rem;color:var(--ink)}.company.has-mobile-nav .company-main{padding-bottom:calc(4.5rem + env(safe-area-inset-bottom,0))}@media (max-width: 720px){.company-main{padding:.6rem .7rem 1.2rem}.glance-nav{gap:.35rem}.glance-nav .control,.glance-nav .btn,.glance-nav .tab{min-height:2.75rem;font-size:.85rem}.glance-nav .control{flex:1 1 8rem;min-width:0}.glance-week{width:100%;margin-left:0}.glance-table th,.glance-table td{padding:.45rem .4rem}.glance-rowhead{width:5.5rem}.glance-cell-btn{min-height:2.5rem}.assign-picker,.assign-picker.open-up,.assign-picker.open-right{position:fixed;inset:18% auto auto 50%;transform:translate(-50%);width:min(20rem,92vw);max-height:70vh;overflow-y:auto}.assign-picker .btn{min-height:2.5rem}.company-teams{font-size:.9rem}}.console{max-width:52rem;margin:0 auto;padding:1rem 1.25rem 3rem}.console-head{display:flex;align-items:center;gap:1rem;flex-wrap:wrap;padding:.6rem 0 .9rem;border-bottom:1px solid var(--line)}.console-title{margin:0;font-size:1.05rem;letter-spacing:.14em}.console-title small{display:block;font-size:.68rem;letter-spacing:.1em;color:var(--muted);font-weight:400}.console-tabs{display:flex;gap:.4rem;flex:1}.console-tabs button{font:inherit;font-size:.8rem;padding:.35rem .8rem;color:var(--muted);background:transparent;border:1px solid var(--line);border-radius:var(--radius);cursor:pointer}.console-tabs button.on{color:var(--accent-ink);border-color:var(--accent);background:var(--accent-soft)}.console-main{padding-top:1rem}.console-error{margin:.8rem 0 0;padding:.5rem .7rem;font-size:.82rem;color:var(--danger-ink);background:var(--danger-fill);border:1px solid var(--danger-line);border-radius:var(--radius)}.console-ok{color:var(--event-ink);font-size:.82rem}.console-bad{color:var(--danger-ink);font-size:.82rem}.console-sub{margin:1.6rem 0 .4rem;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}.console-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.7rem}.console-muted{font-size:.78rem;color:var(--muted);gap:.25rem}.console-request,.console-team{padding:.8rem .9rem;border:1px solid var(--line);border-radius:var(--radius);background:#ffffff05}.console-team.is-disabled{opacity:.6}.console-request-head{display:flex;align-items:baseline;justify-content:space-between;gap:.8rem}.console-age{font-size:.72rem;color:var(--muted);white-space:nowrap}.console-just{margin:.4rem 0;font-size:.85rem;white-space:pre-wrap}.console-email{margin:0 0 .4rem;font-size:.78rem;color:var(--muted)}.console-actions{display:flex;gap:.45rem;flex-wrap:wrap;margin-top:.5rem}.console-confirm,.console-roles{margin-top:.7rem;padding-top:.7rem;border-top:1px dashed var(--line);display:flex;flex-direction:column;gap:.45rem}.console-confirm input{font:inherit;font-size:.85rem;padding:.4rem .6rem;color:var(--ink);background:var(--bg);border:1px solid var(--line-strong);border-radius:var(--radius);max-width:20rem}.console-role-row{display:flex;align-items:center;justify-content:space-between;gap:.8rem;font-size:.85rem}.console-role-row small{color:var(--muted);margin-left:.35rem}.console-folders{display:flex;flex-direction:column;gap:.55rem}.console-folder-caret{display:inline-block;width:1em;color:var(--muted)}.console-unit-row{font:inherit;display:flex;align-items:baseline;gap:.55rem;width:100%;padding:.6rem .9rem;background:#ffffff05;border:1px solid var(--line);border-radius:var(--radius);text-align:left;cursor:pointer;color:var(--ink);font-size:.88rem}.console-unit-row:hover{border-color:var(--line-strong)}.console-unit-row.is-disabled{opacity:.6}.console-unit-row .console-age{margin-left:auto}.console-crumbs{display:flex;align-items:center;gap:.6rem;margin-bottom:.9rem}.console-crumb-path{font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}.console-chip{font-family:var(--mono);font-size:.56rem;font-weight:800;letter-spacing:.1em;border:1px solid var(--line-strong);border-radius:999px;padding:.08rem .42rem;color:var(--muted);white-space:nowrap;vertical-align:middle}.console-create{margin-top:.7rem;display:flex;flex-direction:column;gap:.35rem}.console-create-row{display:flex;gap:.45rem;flex-wrap:wrap}.console-create input{font:inherit;font-size:.85rem;padding:.4rem .6rem;color:var(--ink);background:var(--bg);border:1px solid var(--line-strong);border-radius:var(--radius);max-width:20rem;flex:1}.console-linker{margin-top:.8rem;max-width:26rem}.console-modal-backdrop{position:fixed;inset:0;background:rgb(var(--scrim-rgb) / .75);display:flex;align-items:center;justify-content:center;z-index:60;padding:1rem}.console-modal{background:var(--surface, #0e1c30);border:1px solid var(--line-strong);border-radius:var(--radius);padding:1.2rem 1.4rem;max-width:26rem;width:100%;display:flex;flex-direction:column;gap:.6rem}.console-modal h3{margin:0;font-size:1rem}.console-modal-actions{display:flex;gap:.5rem;margin-top:.4rem}
