:root{--bg:#f3f4f7;--surface:#fff;--fg:#1b1f27;--muted:#5b6373;--border:#d4d9e1;--accent:#1f5fbf;--accent-fg:#fff;--header-h:56px;--tap:44px;--font:system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--bg:#111318;--surface:#1a1d24;--fg:#e7e9ee;--muted:#9aa3b2;--border:#343a46;--accent:#7fa8f5;--accent-fg:#0b1a33}}*{box-sizing:border-box}body{background:var(--bg);color:var(--fg);font-family:var(--font);margin:0;line-height:1.45}a{color:var(--accent)}a,button{min-height:var(--tap)}a{align-items:center;display:inline-flex}.app-header{height:var(--header-h);background:var(--surface);border-bottom:1px solid var(--border);align-items:center;padding:0 16px;display:flex}.app-title{font-weight:600}.app-main{max-width:960px;margin:0 auto;padding:16px}.btn{min-height:var(--tap);border:1px solid var(--border);background:var(--surface);color:var(--fg);font:inherit;cursor:pointer;border-radius:8px;justify-content:center;align-items:center;gap:8px;padding:0 16px;text-decoration:none;display:inline-flex}.btn:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-primary{background:var(--accent);border-color:var(--accent);color:var(--accent-fg)}.btn-ghost{color:var(--accent);background:0 0;border-color:#0000}.btn-sm{padding:0 8px}.block{width:100%}.service{text-align:center;background:var(--surface);border:1px solid var(--border);border-radius:12px;max-width:480px;margin:32px auto;padding:24px}.service h1{margin:12px 0 8px;font-size:1.35rem}.service p{color:var(--muted);margin:0 0 12px}.service-icon{background:var(--bg);width:56px;height:56px;color:var(--muted);border-radius:50%;justify-content:center;align-items:center;display:inline-flex}.service-icon.ok{background:var(--ok-soft);color:var(--ok)}.step-links{justify-content:space-between;gap:8px;margin-top:14px;font-size:14px;display:flex}.service-icon.warn{color:#b26a00}.service-icon.danger{color:#c0392b}.service-icon .icon{width:28px;height:28px}.service .actions{gap:8px;margin-top:16px;display:grid}.trace{color:var(--muted);flex-wrap:wrap;justify-content:center;align-items:center;gap:4px;font-size:.9rem;display:inline-flex}.trace-field{width:100%;min-height:var(--tap);font:inherit;text-align:center;margin-top:8px;padding:0 8px;display:block}.service progress{width:100%;height:8px;margin-bottom:12px}.inline-error{background:var(--surface);border:1px solid #c0392b;border-radius:8px;gap:4px;padding:12px 16px;display:grid}.inline-error p{margin:0}:root{--surface-2:#f7f8fb;--accent-soft:#e4edfb;--bottom-h:62px}@media (prefers-color-scheme:dark){:root{--surface-2:#20242d;--accent-soft:#1f2a42}}.app-header{gap:8px}.brand{color:var(--fg);white-space:nowrap;align-items:center;gap:8px;margin-right:12px;font-size:17px;font-weight:800;text-decoration:none;display:inline-flex}.brand:before{content:"";background:var(--accent);border-radius:3px;width:12px;height:12px}.top-nav{flex:auto;align-items:stretch;gap:2px;height:100%;display:flex;overflow-x:auto}.top-nav a{color:var(--muted);white-space:nowrap;border-bottom:2px solid #0000;padding:0 12px;font-size:14px;font-weight:600;text-decoration:none}.top-nav a.active{color:var(--accent);border-bottom-color:var(--accent)}.user-menu{white-space:nowrap;align-items:center;gap:8px;margin-left:auto;display:flex}.user-menu .who{color:var(--fg);font-size:14px;text-decoration:none}a:focus-visible,button:focus-visible,input:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.banners{flex-direction:column;display:flex}.banners:empty{display:none}.banner{border-bottom:1px solid var(--border);background:var(--accent-soft);color:var(--fg);flex-wrap:wrap;align-items:center;gap:10px;padding:10px 24px;font-size:14px;display:flex}.banner .icon{flex:none}.banner .grow{flex:200px}.banner-offline{background:var(--fg);color:var(--bg)}@media (width<=767px){.banner{padding:10px 12px}}.app-body{max-width:1200px;margin:0 auto}.app-body.with-side{grid-template-columns:220px minmax(0,1fr);gap:16px;padding:16px 16px 0;display:grid}.app-body.with-side .app-main{padding:0}.side-nav{top:calc(var(--header-h) + 16px);flex-direction:column;align-self:start;gap:2px;display:flex;position:sticky}.side-nav a{color:var(--fg);border-radius:8px;align-items:center;padding:10px 12px;font-size:14px;font-weight:600;text-decoration:none;display:flex}.side-nav a:hover{background:var(--bg)}.side-nav a.active{background:var(--accent-soft);color:var(--accent)}.bottom-nav{z-index:30;height:var(--bottom-h);padding-bottom:env(safe-area-inset-bottom);background:var(--surface);border-top:1px solid var(--border);display:none;position:fixed;bottom:0;left:0;right:0}.bottom-nav a,.bottom-nav button{min-height:var(--tap);color:var(--muted);font:inherit;cursor:pointer;background:0 0;border:0;flex:1 1 0;justify-content:center;align-items:center;font-size:12px;font-weight:600;text-decoration:none;display:flex}.bottom-nav a.active,.bottom-nav button[aria-expanded=true]{color:var(--accent)}.more-panel{right:8px;bottom:calc(var(--bottom-h) + 8px);z-index:40;background:var(--surface);border:1px solid var(--border);border-radius:12px;min-width:220px;padding:4px;display:none;position:fixed;box-shadow:0 4px 16px #0000002e}.more-panel a,.more-panel button{width:100%;min-height:var(--tap);color:var(--fg);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;align-items:center;padding:0 12px;text-decoration:none;display:flex}.boot{color:var(--muted);text-align:center;padding:32px 16px}@media (width<=767px){.top-nav,.user-menu .logout{display:none}.bottom-nav{display:flex}.more-panel{display:block}.app-main{padding:12px 12px calc(var(--bottom-h) + 24px)}.app-body.with-side{padding:12px 12px 0;display:block}.side-nav{flex-direction:row;margin-bottom:12px;position:static;overflow-x:auto}.side-nav a{white-space:nowrap}}:root{--danger:#b3261e;--danger-soft:#fbe3e1;--on-danger:#fff;--warn:#8a5a00;--warn-soft:#fff0c7;--ok:#1c6e3f;--ok-soft:#dcf2e3;--shadow:0 8px 28px #10182829}@media (prefers-color-scheme:dark){:root{--danger:#ff8a80;--danger-soft:#42201d;--on-danger:#1a0a09;--warn:#f2c35a;--warn-soft:#3b2f0f;--ok:#6fd39a;--ok-soft:#173a27;--shadow:0 8px 28px #0000008c}}.auth-card{background:var(--surface);border:1px solid var(--border);border-radius:16px;width:100%;max-width:440px;margin:24px auto;padding:28px}.auth-card.wide{max-width:760px}.auth-card h1{margin-bottom:14px;font-size:1.25rem}.auth-foot{color:var(--muted);text-align:center;margin-top:18px;font-size:.85rem}.field{flex-direction:column;gap:6px;margin-bottom:14px;display:flex}.field>label{color:var(--muted);font-size:.85rem;font-weight:600}.input{width:100%;min-height:var(--tap);border:1px solid var(--border);background:var(--surface);color:var(--fg);font:inherit;border-radius:8px;padding:0 12px}::placeholder{color:var(--muted);opacity:1}.input:focus-visible{outline:3px solid var(--accent)}.input[readonly],.input:disabled{background:var(--bg);color:var(--muted)}.field.invalid .input{border-color:var(--danger)}.input-group{gap:8px;display:flex}.input-group .input{flex:auto}.error-text{color:var(--danger);font-size:.85rem}.hint,.note{color:var(--muted);font-size:.8rem}.alert{border:1px solid var(--border);background:var(--bg);border-radius:8px;margin-bottom:14px;padding:10px 12px}.alert.danger{border-color:var(--danger);background:var(--danger-soft)}.alert.warn{border-color:var(--warn);background:var(--warn-soft)}.alert.ok{border-color:var(--ok);background:var(--ok-soft)}.alert.info{background:var(--accent-soft)}.doc-tabs{flex-wrap:wrap;gap:6px;margin-bottom:14px;display:flex}.doc-tabs .btn.current{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.legal-text{font-size:.95rem;line-height:1.55}.legal-text h2{margin-bottom:6px;font-size:1.1rem}.legal-text p{white-space:pre-line;margin-bottom:8px}@media (width<=767px){.auth-card{padding:22px 18px}.input{font-size:1rem}}.center{text-align:center}.auth-actions{margin-top:16px}.kv-box{background:var(--bg);border-radius:8px;margin-bottom:14px;padding:10px 12px}.kv-head{color:var(--muted);letter-spacing:.02em;text-transform:uppercase;margin-bottom:8px;font-size:.75rem;font-weight:700}.kv{grid-template-columns:max-content 1fr;gap:4px 14px;margin:0;display:grid}.kv dt{color:var(--muted)}.kv dd{margin:0}.kv dd.muted{color:var(--muted)}.consent-box{border:1px solid var(--border);border-radius:8px;margin-top:14px;padding:10px 12px}.consent-box .check{align-items:flex-start;gap:10px;font-size:.9rem;display:flex}.consent-box .check input{flex:none;width:20px;height:20px;margin-top:2px}.consent-box .hint{margin-top:6px;display:block}.dialog-backdrop{z-index:50;background:#0a0e1680;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.dialog{background:var(--surface);width:100%;max-width:540px;max-height:92vh;color:var(--fg);border-radius:14px;overflow:auto}.dialog.wide{max-width:760px}.dialog-title{padding:16px 20px 0}.dialog-title .btn-sm{min-width:var(--tap)}.dialog-title h2{font-size:1.1rem}.dialog-body{padding:14px 20px}.dialog-actions{border-top:1px solid var(--border);flex-wrap:wrap;justify-content:flex-end;gap:8px;padding:12px 20px 16px;display:flex}.dialog-actions .left{margin-right:auto}@media (width<=767px){.dialog-backdrop{align-items:flex-end;padding:0}.dialog{border-radius:16px 16px 0 0;max-width:none}}.muted{color:var(--muted)}.nowrap{white-space:nowrap}.icon{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;vertical-align:middle;width:18px;height:18px}.btn-icon{min-width:var(--tap);padding:0}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}.period-nav{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.period-nav h1{margin:0 4px}.save-state{color:var(--muted);align-items:center;gap:6px;font-size:13px;display:inline-flex}.save-state.ok{color:var(--ok)}.save-state.err{color:var(--danger)}.table-wrap{background:var(--surface);border:1px solid var(--border);border-radius:10px;overflow-x:auto}.table{border-collapse:separate;border-spacing:0;width:100%;font-size:14px}.table th,.table td{border-bottom:1px solid var(--border);text-align:left;vertical-align:middle;padding:8px 10px}.table th{background:var(--bg);color:var(--muted);white-space:nowrap;font-size:12px;font-weight:700}.table tbody tr:last-child td,.table tbody tr:last-child th{border-bottom:0}.table tbody th{background:var(--surface);color:var(--fg);font-size:14px}.table .num{text-align:right}.table tfoot th,.table tfoot td{background:var(--bg);border-top:2px solid var(--border);font-weight:700}.table .today{background:var(--accent-soft)}.week-grid .table th.day{text-align:center;min-width:76px}.week-grid .table td.hcell{text-align:center;padding:6px 4px;position:relative}.week-grid .table .pair-col{min-width:240px}.pair{align-items:center;gap:8px;display:inline-flex}.pair .code{font-variant-numeric:tabular-nums;font-weight:700}.pair .stage{white-space:nowrap;font-weight:700}.hinput{text-align:center;width:52px;height:36px;font:inherit;border:1px solid var(--border);background:var(--surface);color:var(--fg);font-variant-numeric:tabular-nums;border-radius:8px;font-size:16px;font-weight:600}.hinput:disabled{background:var(--bg);color:var(--muted);border-color:#0000}.hinput.invalid{border-color:var(--danger);color:var(--danger)}.day-totals td{text-align:center}.tot{border-radius:999px;min-width:36px;padding:2px 8px;font-weight:700;display:inline-block}.tot.ok{background:var(--ok-soft);color:var(--ok)}.tot.under{background:var(--bg);color:var(--muted)}.tot.over{background:var(--danger-soft);color:var(--danger)}.tot.none{color:var(--muted)}.week-actions{flex-wrap:wrap;align-items:center;gap:12px;margin-top:12px;display:flex}.empty{text-align:center;color:var(--muted);background:var(--surface);border:1px dashed var(--border);border-radius:10px;padding:40px 16px}.empty h2{color:var(--fg);margin-bottom:6px}.empty .btn{margin-top:12px}.list{flex-direction:column;gap:8px;margin:12px 0;padding:0;list-style:none;display:flex}.list-item{border:1px solid var(--border);background:var(--surface);border-radius:10px;flex-wrap:wrap;align-items:center;gap:8px;padding:10px 12px;display:flex}.list-item .main{flex:200px}.list-item .main small{color:var(--muted);display:block}.list-item.disabled{opacity:.6}.cell-hint{z-index:4;background:var(--danger-soft);width:max-content;max-width:200px;color:var(--danger);border-radius:6px;padding:2px 8px;font-size:12px;position:absolute;top:calc(100% - 6px);left:50%;transform:translate(-50%)}.hcell .quick{z-index:5;background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);opacity:0;pointer-events:none;border-radius:8px;gap:4px;padding:4px;display:flex;position:absolute;top:calc(100% - 4px);left:50%;transform:translate(-50%)}.hcell:hover .quick,.hcell:focus-within .quick{opacity:1;pointer-events:auto}.hcell .quick .btn{min-height:30px;padding:0 10px}.toast{z-index:60;width:calc(100% - 32px);max-width:520px;box-shadow:var(--shadow);border-radius:12px;flex-wrap:wrap;align-items:center;gap:10px;padding:12px 16px;font-size:14px;display:flex;position:fixed;bottom:24px;left:50%;transform:translate(-50%)}.toast.install-hint{background:var(--fg);color:var(--bg)}.toast.install-hint .btn{border-color:var(--bg);min-height:32px;color:var(--bg);background:0 0}.toast.install-hint .grow{flex:200px}.toast.install-hint small{opacity:.8}@media (width<=767px){.toast.install-hint{bottom:calc(var(--bottom-h) + 12px);width:calc(100% - 24px)}}.toast.problem{background:var(--surface);color:var(--fg);border:1px solid var(--danger);border-left:5px solid var(--danger)}.problem-title{align-items:center;gap:6px;font-weight:700;display:flex}.problem-detail{flex:100%}.problem-trace{color:var(--muted);flex:100%;font-size:12px}.problem-actions{flex:100%;justify-content:flex-end;gap:8px;display:flex}.day-strip{grid-template-columns:repeat(7,1fr);gap:4px;margin:12px 0;display:grid}.day-strip .day{border:1px solid var(--border);background:var(--surface);min-height:66px;color:inherit;font:inherit;cursor:pointer;border-radius:10px;flex-direction:column;align-items:center;gap:2px;padding:6px 0;display:flex}.day-strip .dow{color:var(--muted);text-transform:uppercase;font-size:11px;font-weight:600}.day-strip .dom{font-size:16px;font-weight:700}.day-strip .tot{text-align:center;min-width:24px;padding:0 6px;font-size:12px}.day-strip .day.selected{border-color:var(--accent);background:var(--accent-soft)}.day-strip .day.today .dom{color:var(--accent)}.day-strip .day.future{opacity:.5}.day-head{justify-content:space-between;align-items:baseline;gap:8px;margin:8px 0;display:flex}.day-sum{font-weight:700}.day-sum.ok{color:var(--ok)}.day-sum.over{color:var(--danger)}.pair-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.pair-item{background:var(--surface);border:1px solid var(--border);border-radius:12px;flex-direction:column;gap:10px;padding:12px;display:flex}.pair-item .controls{justify-content:space-between;align-items:center;gap:8px;display:flex}.stepper{border:1px solid var(--border);background:var(--surface);border-radius:10px;align-items:center;display:inline-flex;overflow:hidden}.stepper button{width:var(--tap);height:var(--tap);background:var(--bg);color:var(--fg);cursor:pointer;border:0;font-size:20px}.stepper button:disabled{opacity:.4;cursor:default}.stepper output{text-align:center;font-variant-numeric:tabular-nums;min-width:48px;font-size:20px;font-weight:700}.stepper.off output{opacity:.5}.quick-row{gap:6px;display:inline-flex}.quick-row .btn{min-width:48px;min-height:var(--tap);font-size:16px}.quick-row .btn.on{background:var(--accent);border-color:var(--accent);color:var(--accent-fg)}.week-sum{background:var(--bg);border-radius:12px;justify-content:space-between;margin:16px 0;padding:12px;font-weight:700;display:flex}.row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.row.between{justify-content:space-between}.textarea{resize:vertical;width:100%;min-height:84px;font:inherit;color:var(--fg);background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:10px 12px}.field.invalid .textarea{border-color:var(--danger)}.check{align-items:flex-start;gap:8px;margin-top:12px;font-size:14px;display:flex}.check input{width:18px;height:18px;accent-color:var(--accent);margin:2px 0 0}.btn-danger-ghost{color:var(--danger);background:0 0;border-color:#0000}.drawer-list{margin:0;padding:0;list-style:none}.drawer-list li{border-bottom:1px solid var(--border);padding:8px 0;font-size:14px}.drawer-list li:last-child{border-bottom:0}.drawer-list li.bad{color:var(--danger)}.chip{border:1px solid var(--border);background:var(--surface);white-space:nowrap;border-radius:999px;align-items:center;gap:6px;min-height:32px;padding:0 12px;font-size:13px;font-weight:600;display:inline-flex}.month-card{border:1px solid var(--border);background:var(--surface);border-radius:12px;padding:16px}.calendar{grid-template-columns:repeat(7,1fr);gap:6px;display:grid}.cal-head{color:var(--muted);text-align:center;padding:4px 0;font-size:12px;font-weight:700}.cal-day{border:1px solid var(--border);background:var(--surface);min-height:78px;color:inherit;border-radius:8px;flex-direction:column;gap:2px;padding:6px 8px;text-decoration:none;display:flex;position:relative}.cal-day:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.cal-day .n{color:var(--muted);justify-content:space-between;align-items:center;font-size:12px;font-weight:600;display:flex}.cal-day .h{font-variant-numeric:tabular-nums;margin-top:auto;font-size:20px;font-weight:700}.cal-day.weekend,.cal-day.future{background:var(--bg)}.cal-day.future .h{color:var(--muted)}.cal-day.other{opacity:.45}.cal-day.absent{background:var(--accent-soft)}.cal-day .a{color:var(--accent);margin-top:auto;font-size:12px;font-weight:700}.cal-day .a+.h{margin-top:0}.cal-day.today{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.cal-day.today .n{color:var(--accent)}.legend{color:var(--muted);flex-wrap:wrap;gap:14px;margin-top:10px;font-size:12px;display:flex}.legend span{align-items:center;gap:6px;display:inline-flex}.legend i{border:1px solid var(--border);border-radius:3px;width:12px;height:12px;display:inline-block}.legend i.today{border-color:var(--accent)}.legend i.future{background:var(--bg)}.legend i.absent{background:var(--accent-soft)}@media (width<=767px){.month-card{padding:10px}.calendar{gap:3px}.cal-day{border-radius:6px;min-height:58px;padding:4px 5px}.cal-day .h{font-size:16px}.cal-day .a{font-size:10px}}.star{width:32px;height:32px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:6px;flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.star:disabled{opacity:.6;cursor:default}.star .icon{width:18px;height:18px}.star.on{color:var(--warn)}.star.on .icon{fill:currentColor}.pair-cell,.pair-line{align-items:center;gap:4px;display:flex}.pair-line .star,.dialog .star{width:var(--tap);height:var(--tap)}.pair-line .star{margin:-6px 0}.chip-row{flex-wrap:wrap;gap:8px;margin-bottom:8px;display:flex}button.chip{min-height:var(--tap);color:var(--fg);cursor:pointer;font-family:inherit}.chip[aria-pressed=true]{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}.badge{background:var(--bg);color:var(--fg);white-space:nowrap;border-radius:999px;align-items:center;gap:4px;padding:1px 8px;font-size:12px;font-weight:600;display:inline-flex}.badge-info{background:var(--accent-soft);color:var(--accent)}.badge-warn{background:var(--warn-soft);color:var(--warn)}.badge-ok{background:var(--ok-soft);color:var(--ok)}.badge-danger{background:var(--danger-soft);color:var(--danger)}.badge-lock{border:1px solid var(--border);color:var(--muted)}.badge .icon{width:13px;height:13px}.table .cell-sub{color:var(--muted);font-size:12px;font-weight:400;display:block}.table-foot{border-top:1px solid var(--border);color:var(--muted);padding:10px 12px;font-size:13px}.link-btn{min-height:44px;color:var(--accent);font:inherit;cursor:pointer;background:0 0;border:0;padding:0 4px;text-decoration:underline}.step-who{color:var(--muted);align-items:center;gap:8px;margin-bottom:14px;font-size:.875rem;display:flex}.code-input{font-variant-numeric:tabular-nums;letter-spacing:.4em;text-align:center;font-size:1.5rem}.sent-list{color:var(--muted);margin:0 0 14px;padding-left:20px;font-size:.875rem}.sent-list li+li{margin-top:4px}.btn .spinner{border:2px solid;border-right-color:#0000;border-radius:50%;width:14px;height:14px;display:inline-block}.legal-scroll{border:1px solid var(--border);background:var(--bg);border-radius:8px;max-height:40vh;margin-bottom:4px;padding:10px 12px;font-size:.9rem;line-height:1.5;overflow-y:auto}.legal-scroll p{margin-bottom:8px}.consent-check{margin-top:14px}.actions-row{flex-wrap:wrap;justify-content:space-between;gap:8px;margin-top:16px;display:flex}.pcards{grid-template-columns:1fr;gap:16px;margin-top:16px;display:grid}@media (width>=900px){.pcards{grid-template-columns:1fr 1fr;align-items:start}}.pcard{border:1px solid var(--border);background:var(--surface);border-radius:12px;margin-top:16px;padding:16px}.pcards>.pcard{margin-top:0}.pcard-title{justify-content:space-between;align-items:center;gap:8px;margin-bottom:12px;display:flex}.pcard-title h2{margin:0;font-size:1.05rem}.pcard-fields{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:0 12px;display:grid}.pending-banner{margin-top:12px}.day-strip .absence-icon{width:16px;height:16px}:root{--lock-soft:#e5e7eb}@media (prefers-color-scheme:dark){:root{--lock-soft:#2b303a}}.banner-lock{background:var(--lock-soft)}.banner-ok{background:var(--ok-soft)}.banner-danger{background:var(--danger-soft)}.lock-mark{vertical-align:-2px;width:14px;height:14px;color:var(--muted);margin-left:4px}.day-strip .day .lock-mark{width:12px;height:12px;margin:0 auto;display:block}.day-strip .day.locked{background:var(--lock-soft)}.locked-value{text-align:center;min-width:44px;color:var(--muted);padding:8px 0;display:inline-block}.week-mobile .locked-value{font-size:1.25rem;font-weight:600}.period-banners{gap:8px;margin-bottom:12px;display:grid}.period-year{width:auto;min-width:96px}.period-loading{padding:12px 0}.period-skeleton{background:var(--bg);border-radius:6px;height:18px;margin-bottom:10px}.period-tabs{border-bottom:1px solid var(--border);gap:2px;margin-bottom:16px;display:flex;overflow-x:auto}.period-tab{min-height:44px;color:var(--muted);white-space:nowrap;border-bottom:2px solid #0000;align-items:center;gap:6px;margin-bottom:-1px;padding:10px 14px;font-size:14px;font-weight:600;text-decoration:none;display:inline-flex}.period-tab.active{color:var(--accent);border-bottom-color:var(--accent)}.period-reminder{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.period-reminder .grow{flex:240px}.period-matrix td,.period-matrix .actions{white-space:nowrap}.period-matrix th small{font-weight:500;display:block}.period-matrix .sticky{z-index:1;background:var(--surface);position:sticky;left:0}.period-matrix thead .sticky{background:var(--bg)}.period-matrix .actions{text-align:right}.period-matrix .actions .btn{margin-left:4px}.period-matrix .cell-act{flex-wrap:wrap;gap:4px;margin-top:4px;display:flex}.period-matrix button[aria-disabled=true]{opacity:.55;cursor:not-allowed}.btn-danger{border-color:var(--danger);background:var(--danger);color:var(--on-danger)}.btn-danger:disabled{opacity:.55}.req-toolbar{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:8px;display:flex}.req-toolbar .note{flex:240px}.req-table .reason-cell{white-space:normal;min-width:220px;max-width:420px}.req-table .actions{white-space:nowrap}.req-table .actions .btn+.btn{margin-left:4px}.req-table button[aria-disabled=true],.req-list button[aria-disabled=true]{opacity:.55;cursor:not-allowed}.own-note{white-space:normal;max-width:280px;color:var(--muted);margin-top:4px;font-size:12px;display:block}.req-list{flex-direction:column;gap:8px;display:flex}.req-list .reason,.req-list .meta{margin-top:4px;font-size:13px}.req-list .meta{color:var(--muted);flex-wrap:wrap;gap:6px;display:flex}.on-behalf-banner{border-left:4px solid var(--accent);margin-bottom:8px}.on-behalf-banner+.banner-lock{margin-bottom:8px}.on-behalf-mark{vertical-align:-2px;width:14px;height:14px;color:var(--accent);margin-left:4px}.bitrix-actions button[aria-disabled=true]{opacity:.55;cursor:not-allowed}.bitrix-refresh{justify-content:flex-end;margin-bottom:12px}.bitrix-loading{padding:12px 0}.bitrix-skeleton{background:var(--bg);border-radius:6px;height:18px;margin-bottom:10px}.bitrix-banner{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.bitrix-banner .grow{flex:240px}.bitrix-banner .bitrix-error,.bitrix-banner .note{display:block}.bitrix-progress{width:100%;max-width:360px;margin-top:8px;display:block}.bitrix-tiles,.imp-tiles{grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:10px;margin-bottom:14px;display:grid}.bitrix-tile,.imp-tile{border:1px solid var(--border);background:var(--surface);border-left-width:4px;border-radius:8px;padding:10px 12px}.bitrix-tile[data-tone=ok],.imp-tile[data-tone=ok]{border-left-color:var(--ok)}.bitrix-tile[data-tone=warn],.imp-tile[data-tone=warn]{border-left-color:var(--warn);background:var(--warn-soft)}.bitrix-tile[data-tone=danger],.imp-tile[data-tone=danger]{border-left-color:var(--danger);background:var(--danger-soft)}.bitrix-tile .v,.imp-tile .v{overflow-wrap:anywhere;font-size:1.25rem;font-weight:700}.bitrix-tile .l,.imp-tile .l{color:var(--muted);font-size:.8rem}.bitrix-card{border:1px solid var(--border);background:var(--surface);border-radius:10px;margin-bottom:16px;padding:10px 12px}.bitrix-card-title{flex-wrap:wrap;align-items:baseline;gap:4px 12px;margin-bottom:8px;display:flex}.bitrix-card-title h2{margin:0;font-size:1.05rem}.bitrix-card-title small{color:var(--muted)}.bitrix-warn-list{margin:0;padding:0;list-style:none}.bitrix-warn-list li{align-items:baseline;gap:10px;padding:4px 0;display:flex}.bitrix-table .sticky{z-index:1;background:var(--surface);position:sticky;left:0}.bitrix-table thead .sticky{background:var(--bg)}.bitrix-table td{white-space:nowrap}.bitrix-table tr.hot td,.bitrix-table tr.hot th{background:var(--warn-soft)}.status-strip{background:var(--surface-2);border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:8px;padding:8px 24px;font-size:13px;display:flex}.status-strip .label{color:var(--muted);margin-right:4px;font-weight:600}.status-strip a.chip{min-height:var(--tap);color:var(--fg);text-decoration:none}.chip-warn,.status-strip a.chip.chip-warn{background:var(--warn-soft);color:var(--warn);border-color:#0000}.visually-hidden{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (width<=767px){.status-strip{flex-wrap:nowrap;padding:8px 12px;overflow-x:auto}}.imp-card .check{min-height:var(--tap);align-items:center}.imp-steps{flex-wrap:wrap;gap:6px;margin:0 0 16px;padding:0;list-style:none;display:flex}.imp-steps li{border:1px solid var(--border);background:var(--surface);color:var(--muted);border-radius:999px;align-items:center;gap:8px;padding:4px 12px 4px 4px;font-size:13px;font-weight:600;display:inline-flex}.imp-num{background:var(--surface-2);border-radius:50%;justify-content:center;align-items:center;width:24px;height:24px;font-size:12px;display:inline-flex}.imp-steps li.current{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.imp-steps li.current .imp-num{background:var(--accent);color:var(--accent-fg)}.imp-steps li.done{background:var(--ok-soft);color:var(--ok);border-color:#0000}.imp-steps li.done .imp-num{background:var(--ok);color:var(--surface)}.imp-steps li.bad{border-color:var(--danger);background:var(--danger-soft);color:var(--danger)}.imp-two{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:16px;margin-bottom:16px;display:grid}.imp-card{border:1px solid var(--border);background:var(--surface);border-radius:10px;margin-bottom:16px;padding:12px 16px}.imp-two .imp-card{margin-bottom:0}.imp-title{flex-wrap:wrap;align-items:baseline;gap:4px 12px;margin-bottom:10px;display:flex}.imp-title h2{margin:0;font-size:1.05rem}.imp-title small,.imp-list.hint{color:var(--muted)}.imp-drop{border:2px dashed var(--border);background:var(--surface-2);text-align:center;border-radius:10px;flex-direction:column;align-items:center;gap:6px;padding:20px 12px;display:flex}.imp-drop.over{border-color:var(--accent)}.imp-file{border:1px dashed var(--border);background:var(--surface-2);border-radius:8px;align-items:center;gap:10px;margin-top:8px;padding:10px 12px;font-size:14px;display:flex}.imp-actions{flex-wrap:wrap;gap:8px;margin-top:16px;display:flex}.imp-list{margin:0 0 8px;padding-left:20px;font-size:14px}.imp-list li{margin-bottom:6px}.imp-list.hint{font-size:13px}.imp-progress{width:100%;max-width:360px;margin-bottom:8px;display:block}.imp-block{display:block}.imp-id{font-family:ui-monospace,Consolas,monospace}.imp-sel{min-width:140px}.imp-err{color:var(--danger);display:block}.table tr.imp-off th,.table tr.imp-off td{color:var(--muted)}.imp-src{font-weight:600}.imp-subform>td{background:var(--surface-2,var(--bg))}.imp-form{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin-bottom:8px;display:grid}.imp-kept{max-height:240px;margin-bottom:8px;overflow-y:auto}.imp-history-bar{flex-wrap:wrap;align-items:end;gap:12px;margin-bottom:12px;display:flex}.imp-history-bar .field{margin:0}.imp-note{color:var(--muted);font-size:13px;display:block}
