.iesiri-cell{display:flex;flex-direction:column;gap:2px}.iesiri-cell__main{font-weight:500}.iesiri-cell__sub{font-size:var(--fs-sm);color:var(--text-muted);font-family:var(--font-mono)}.iesiri-edit__actions{display:flex;justify-content:flex-end;gap:var(--sp-2);margin-top:var(--space-3, var(--sp-3))}.emp-gate{display:grid;gap:var(--sp-4);padding:var(--sp-6);border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface-2)}.emp-gate--denied{border-color:var(--red)}.emp-gate__identity{display:grid;grid-template-columns:auto minmax(0,1fr);gap:var(--sp-4);align-items:center}.emp-gate__meta{display:grid;gap:var(--sp-2);justify-items:start;min-width:0}.emp-gate__name{font-size:clamp(1.15rem,3vw,1.6rem);line-height:1.2}.emp-gate__badge{color:var(--text-muted)}.emp-gate__countdown{display:grid;gap:var(--sp-2)}.emp-gate__bar{height:6px;border-radius:999px;background:var(--surface-3);overflow:hidden}.emp-gate__fill{height:100%;background:var(--accent);transition:width 1s linear}.emp-gate__hint{font-size:.875rem;color:var(--text-muted)}.emp-gate__actions{display:flex;flex-wrap:wrap;gap:var(--sp-3)}.emp-avatar{width:clamp(96px,22vw,160px);aspect-ratio:1;border-radius:var(--radius-lg);overflow:hidden;border:1px solid var(--border);background:var(--surface)}.emp-avatar img{width:100%;height:100%;object-fit:cover;display:block}.emp-avatar--fallback{display:grid;place-items:center;font-size:clamp(1.75rem,6vw,3rem);font-weight:600;color:var(--text-muted)}.retur{display:grid;gap:var(--sp-4);min-width:0}.retur__done{display:grid;justify-items:center;gap:var(--sp-3);text-align:center;padding:var(--sp-8) var(--sp-4)}.retur__done-badge{width:56px;height:56px;display:grid;place-items:center;border-radius:var(--radius-pill);background:var(--green-soft);color:var(--green)}.retur__done-badge svg{width:30px;height:30px}.retur-progress{display:grid;gap:var(--sp-2);padding:var(--sp-3);border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-1)}.retur-progress__head{display:flex;align-items:baseline;justify-content:space-between;gap:var(--sp-2);font-size:.95rem;color:var(--text-dim)}.retur-progress__pct{font-variant-numeric:tabular-nums;color:var(--text);font-weight:600}.retur-progress__bar{height:8px;border-radius:var(--radius-pill);background:var(--border);overflow:hidden}.retur-progress__fill{height:100%;background:var(--green);border-radius:var(--radius-pill);transition:width .35s ease}.retur-bons{display:grid;gap:var(--sp-3);min-width:0}.retur-bon{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-0);overflow:hidden}.retur-bon__head{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-2) var(--sp-3);padding:var(--sp-3);border-bottom:1px solid var(--border);background:var(--bg-1)}.retur-bon__num{font-weight:700;font-family:var(--font-mono)}.retur-bon__meta{color:var(--text-muted);font-size:.85rem}.retur-bon__pill{margin-left:auto;padding:2px 10px;border-radius:var(--radius-pill);background:var(--amber-soft);color:var(--amber);font-size:.8rem;font-weight:600;white-space:nowrap}.retur-bon__pill.is-complete{background:var(--green-soft);color:var(--green)}.chip-list{list-style:none;margin:0;padding:var(--sp-3);display:grid;gap:var(--sp-2);min-width:0}.chip{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-1);transition:background .3s ease,border-color .3s ease;min-width:0}.chip__icon{display:inline-grid;place-items:center;width:20px;height:20px;color:var(--green)}.chip__icon svg{width:18px;height:18px}.chip__body{display:grid;min-width:0}.chip__name{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chip__bc{font-family:var(--font-mono);font-size:.78rem;color:var(--text-muted)}.chip__status{font-size:.78rem;font-weight:600;padding:2px 8px;border-radius:var(--radius-pill);white-space:nowrap}.chip--pending{border-color:var(--amber)}.chip--pending .chip__status{background:var(--amber-soft);color:var(--amber)}.chip--returned{border-color:var(--green);background:var(--green-soft)}.chip--returned .chip__status{background:var(--green);color:#fff}.chip--damaged,.chip--missing{border-color:var(--red);background:var(--red-soft)}.chip--damaged .chip__status,.chip--missing .chip__status{background:var(--red);color:#fff}@keyframes chipFlash{0%{transform:scale(1)}40%{transform:scale(1.03);box-shadow:0 0 0 3px var(--green-soft)}to{transform:scale(1)}}.chip--flash{animation:chipFlash .7s ease}.chip__menu{position:relative}.chip__menu-btn{border:none;background:transparent;cursor:pointer;font-size:1.1rem;line-height:1;padding:4px 8px;border-radius:var(--radius-sm);color:var(--text-dim)}.chip__menu-btn:hover{background:var(--border)}.chip__dropdown{position:absolute;right:0;top:calc(100% + 4px);z-index:5;display:grid;min-width:190px;background:var(--bg-0);border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:var(--shadow);overflow:hidden}.chip__dropdown button{border:none;background:transparent;text-align:left;padding:var(--sp-2) var(--sp-3);cursor:pointer;font:inherit;color:var(--text)}.chip__dropdown button:hover{background:var(--red-soft);color:var(--red)}@media (max-width: 560px){.chip{grid-template-columns:auto minmax(0,1fr) auto}.chip__status{grid-column:2 / 3;justify-self:start}}.shift-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);flex-wrap:wrap;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:var(--space-4) var(--space-5);margin-bottom:var(--space-4)}.shift-head__opener{display:flex;align-items:center;gap:var(--space-3);min-width:0}.shift-head__meta{display:flex;flex-direction:column;min-width:0}.shift-head__name{font-weight:600;font-size:var(--fs-md)}.shift-head__opened{font-size:var(--fs-sm);color:var(--text-dim)}.shift-head__duration{display:flex;flex-direction:column;align-items:center;gap:2px}.shift-head__duration-value{font-variant-numeric:tabular-nums;font-size:var(--fs-h2);font-weight:700;letter-spacing:.02em}.shift-head__duration-label{font-size:var(--fs-label);text-transform:uppercase;letter-spacing:.04em;color:var(--text-dim)}.shift-events__type{display:inline-flex;align-items:center;gap:var(--space-2)}.shift-events__type-icon{display:grid;place-items:center;width:1.5rem;height:1.5rem;flex:none}@media (max-width: 768px){.shift-head{flex-direction:column;align-items:stretch}.shift-head__duration{align-items:flex-start}}.profile-tabs{display:flex;flex-wrap:wrap;gap:var(--sp-2);margin-bottom:var(--sp-6);border-bottom:1px solid var(--border);padding-bottom:var(--sp-2)}.profile-tab{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;background:transparent;color:var(--text-muted);font-size:var(--fs-sm);font-weight:600;padding:var(--sp-2) var(--sp-4);border-radius:var(--radius-pill);cursor:pointer}.profile-tab:hover{color:var(--text);background:var(--surface-2)}.profile-tab.is-active{color:#fff;background:linear-gradient(140deg,var(--primary),var(--accent))}.profile-sections{display:flex;flex-direction:column}.profile-section__foot{display:flex;align-items:center;gap:var(--sp-3);margin-top:var(--sp-4)}.profile-section__saved{color:var(--success, #1a8a4a);font-size:var(--fs-sm)}.avatar-large{display:flex;align-items:center;gap:var(--sp-4);margin-bottom:var(--sp-4)}.avatar-large .usermenu__avatar{width:88px;height:88px;font-size:var(--fs-h2)}.avatar-large__actions{display:flex;flex-direction:column;gap:var(--sp-2)}.session-row{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);padding:var(--sp-3) 0;border-bottom:1px solid var(--border)}.session-row:last-child{border-bottom:none}.session-row__meta{display:flex;flex-direction:column;gap:2px;font-size:var(--fs-sm)}.session-row__ua{color:var(--text)}.session-row__sub{color:var(--text-muted);font-size:var(--fs-xs)}.password-hint{color:var(--text-muted);font-size:var(--fs-xs);margin:0 0 var(--sp-3)}.activity-row{display:flex;align-items:baseline;justify-content:space-between;gap:var(--sp-3);padding:var(--sp-2) 0;border-bottom:1px solid var(--border);font-size:var(--fs-sm)}.activity-row:last-child{border-bottom:none}.activity-row__time{color:var(--text-muted);font-size:var(--fs-xs);white-space:nowrap}.backup-codes-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--sp-2);list-style:none;padding:0;margin:var(--sp-3) 0}.backup-codes-list code{display:block;text-align:center;font-family:var(--font-mono);background:var(--surface-2);border-radius:var(--radius-sm);padding:var(--sp-2)}.twofactor-secret{font-family:var(--font-mono);background:var(--surface-2);border-radius:var(--radius-sm);padding:2px var(--sp-2);-webkit-user-select:all;user-select:all}.toggle-row{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);padding:var(--sp-2) 0}@media (max-width: 768px){.profile-tabs{display:none}.profile-accordion__item{border:1px solid var(--border);border-radius:var(--radius);margin-bottom:var(--sp-3);overflow:hidden}.profile-accordion__trigger{width:100%;display:flex;align-items:center;justify-content:space-between;padding:var(--sp-3) var(--sp-4);background:var(--surface-2);border:none;font-weight:600;font-size:var(--fs-sm);cursor:pointer;color:var(--text)}}@media (min-width: 769px){.profile-accordion__trigger{display:none}}.help-chapter__intro{color:var(--text-muted);margin:0 0 var(--sp-5)}.help-steps{list-style:none;counter-reset:help;padding:0;margin:0;display:flex;flex-direction:column;gap:var(--sp-5)}.help-step{counter-increment:help;position:relative;padding-left:2.75rem}.help-step:before{content:counter(help);position:absolute;left:0;top:0;width:1.75rem;height:1.75rem;display:grid;place-items:center;border-radius:var(--radius-pill);background:linear-gradient(140deg,var(--primary),var(--accent));color:#fff;font-size:var(--fs-sm);font-weight:700}.help-step__title{font-weight:600;color:var(--text);margin:0 0 2px}.help-step__body{color:var(--text-muted);margin:0}.help-step__note{display:flex;align-items:flex-start;gap:var(--sp-2);margin:var(--sp-2) 0 0;padding:var(--sp-2) var(--sp-3);border-radius:var(--radius-sm);background:var(--surface-2);color:var(--text);font-size:var(--fs-sm)}.help-step__note svg{flex:0 0 auto;width:1rem;height:1rem;margin-top:2px;color:var(--primary)}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-cyrillic-ext-400-normal-g30qAdWV.woff2) format("woff2"),url(/assets/ibm-plex-sans-cyrillic-ext-400-normal-Dsrv2Tcn.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-cyrillic-400-normal-DZqxrq2p.woff2) format("woff2"),url(/assets/ibm-plex-sans-cyrillic-400-normal-BTotfTJu.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-greek-400-normal-_efipK4i.woff2) format("woff2"),url(/assets/ibm-plex-sans-greek-400-normal-D9ESIMu3.woff) format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-vietnamese-400-normal-DG4YqDda.woff2) format("woff2"),url(/assets/ibm-plex-sans-vietnamese-400-normal-fK1oJ5dG.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-latin-ext-400-normal-C5H60-Va.woff2) format("woff2"),url(/assets/ibm-plex-sans-latin-ext-400-normal-RBey6euL.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-latin-400-normal-CDDApCn2.woff2) format("woff2"),url(/assets/ibm-plex-sans-latin-400-normal-CYLoc0-x.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-cyrillic-ext-500-normal-Cs5J6C77.woff2) format("woff2"),url(/assets/ibm-plex-sans-cyrillic-ext-500-normal-DB5PtV2g.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-cyrillic-500-normal-CocWQlwt.woff2) format("woff2"),url(/assets/ibm-plex-sans-cyrillic-500-normal-ByOcLdNv.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-greek-500-normal-JMMifIXV.woff2) format("woff2"),url(/assets/ibm-plex-sans-greek-500-normal-CuWXN6rf.woff) format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-vietnamese-500-normal-e4dixQRQ.woff2) format("woff2"),url(/assets/ibm-plex-sans-vietnamese-500-normal-BEb3_waV.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-latin-ext-500-normal-DakdToA3.woff2) format("woff2"),url(/assets/ibm-plex-sans-latin-ext-500-normal-D0aIdm-b.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-latin-500-normal-6ng42L7E.woff2) format("woff2"),url(/assets/ibm-plex-sans-latin-500-normal-BgVn5rGT.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-cyrillic-ext-600-normal-DUMzJB7m.woff2) format("woff2"),url(/assets/ibm-plex-sans-cyrillic-ext-600-normal-Bz0x94Yp.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-cyrillic-600-normal-71GNu3SW.woff2) format("woff2"),url(/assets/ibm-plex-sans-cyrillic-600-normal-BGq0mW3O.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-greek-600-normal-DzTrcv_p.woff2) format("woff2"),url(/assets/ibm-plex-sans-greek-600-normal-D-CqTdkO.woff) format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-vietnamese-600-normal-DpPYBSTl.woff2) format("woff2"),url(/assets/ibm-plex-sans-vietnamese-600-normal-DgdngZtN.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-latin-ext-600-normal-DOrvGEcy.woff2) format("woff2"),url(/assets/ibm-plex-sans-latin-ext-600-normal-DIrixKbi.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-latin-600-normal-CuJfVYMP.woff2) format("woff2"),url(/assets/ibm-plex-sans-latin-600-normal-Cu4Hd6ag.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/ibm-plex-sans-cyrillic-ext-700-normal-BmRLXWpJ.woff2) format("woff2"),url(/assets/ibm-plex-sans-cyrillic-ext-700-normal-DCQwxkRk.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/ibm-plex-sans-cyrillic-700-normal-D_uavGvn.woff2) format("woff2"),url(/assets/ibm-plex-sans-cyrillic-700-normal-RFb1v-CK.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/ibm-plex-sans-greek-700-normal-wyJ6jzdA.woff2) format("woff2"),url(/assets/ibm-plex-sans-greek-700-normal-CkZN0sRy.woff) format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/ibm-plex-sans-vietnamese-700-normal-CkEo6LDy.woff2) format("woff2"),url(/assets/ibm-plex-sans-vietnamese-700-normal-BV5B8Are.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/ibm-plex-sans-latin-ext-700-normal-aMgXseD4.woff2) format("woff2"),url(/assets/ibm-plex-sans-latin-ext-700-normal-DZH6Xh-4.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/ibm-plex-sans-latin-700-normal-Bxkt5Cjx.woff2) format("woff2"),url(/assets/ibm-plex-sans-latin-700-normal-Bth3BMcD.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-cyrillic-ext-400-normal-xuaO2J-f.woff2) format("woff2"),url(/assets/ibm-plex-mono-cyrillic-ext-400-normal-DMdlQ8Kv.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-cyrillic-400-normal-BSMlKf0J.woff2) format("woff2"),url(/assets/ibm-plex-mono-cyrillic-400-normal-CEL4l2ZJ.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-vietnamese-400-normal-BulugwFq.woff2) format("woff2"),url(/assets/ibm-plex-mono-vietnamese-400-normal-DDuiU_S-.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-latin-ext-400-normal-BmRBH3aV.woff2) format("woff2"),url(/assets/ibm-plex-mono-latin-ext-400-normal-D3D2R8hC.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-latin-400-normal-DMJ8VG8y.woff2) format("woff2"),url(/assets/ibm-plex-mono-latin-400-normal-CvHOgSBP.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-cyrillic-ext-500-normal-BqneJy0T.woff2) format("woff2"),url(/assets/ibm-plex-mono-cyrillic-ext-500-normal-BIfNGwUT.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-cyrillic-500-normal-Bq9vWWag.woff2) format("woff2"),url(/assets/ibm-plex-mono-cyrillic-500-normal-Ael50iVv.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-vietnamese-500-normal-DZ4AoWbu.woff2) format("woff2"),url(/assets/ibm-plex-mono-vietnamese-500-normal-C8zxqsMH.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-latin-ext-500-normal-CAhNIIs5.woff2) format("woff2"),url(/assets/ibm-plex-mono-latin-ext-500-normal-CZ70TYgx.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-latin-500-normal-DSY6xOcd.woff2) format("woff2"),url(/assets/ibm-plex-mono-latin-500-normal-CB9ihrfo.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-mono-cyrillic-ext-600-normal-V-xxqcpd.woff2) format("woff2"),url(/assets/ibm-plex-mono-cyrillic-ext-600-normal-9HEixskS.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-mono-cyrillic-600-normal-CTOM6hUh.woff2) format("woff2"),url(/assets/ibm-plex-mono-cyrillic-600-normal-fLZuRloM.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-mono-vietnamese-600-normal-D2EvbN8M.woff2) format("woff2"),url(/assets/ibm-plex-mono-vietnamese-600-normal-iLQfcSjf.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-mono-latin-ext-600-normal-D38SheWl.woff2) format("woff2"),url(/assets/ibm-plex-mono-latin-ext-600-normal-DmB0ttJJ.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-mono-latin-600-normal-BgSNZQsw.woff2) format("woff2"),url(/assets/ibm-plex-mono-latin-600-normal-DWFSQ4vo.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--font-sans: "IBM Plex Sans", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-mono: "IBM Plex Mono", ui-monospace, "Cascadia Code", Consolas, monospace;--fs-display: clamp(2rem, 1.3rem + 2.3vw, 2.75rem);--fs-h1: clamp(1.6rem, 1.2rem + 1.4vw, 2.25rem);--fs-h2: clamp(1.3rem, 1.1rem + .7vw, 1.6rem);--fs-h3: 1.0625rem;--fs-body: 1rem;--fs-sm: .875rem;--fs-label: .75rem;--lh-tight: 1.2;--lh-body: 1.6;--fs-xs: var(--fs-label);--fs-mono: var(--fs-label);--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 24px;--space-6: 32px;--space-8: 48px;--space-10: 64px;--sp-1: var(--space-1);--sp-2: var(--space-2);--sp-3: var(--space-3);--sp-4: var(--space-4);--sp-6: var(--space-5);--sp-8: var(--space-6);--sp-12: var(--space-8);--radius-sm: 10px;--radius: 14px;--radius-lg: 20px;--radius-pill: 999px;--motion-fast: .12s ease;--motion: .18s cubic-bezier(.16, 1, .3, 1);--motion-slow: .28s cubic-bezier(.16, 1, .3, 1);--t-fast: var(--motion-fast);--t: var(--motion);--brand-navy: #0b3d6b;--brand-blue: #0d5cab;--brand-cyan: #0ea5c4;--topbar-h: 60px;--sidebar-w: 250px;--sidebar-w-collapsed: 68px;--bp-sm: 480px;--bp-md: 768px;--bp-lg: 1024px;--bp-xl: 1280px;--content-max: 1160px;--card-gap: clamp(12px, 1.5vw, 24px);--gutter: var(--space-4);--gutter-lg: var(--space-6);--tap: 44px;--safe-b: env(safe-area-inset-bottom, 0px);--safe-t: env(safe-area-inset-top, 0px);--wizard-max: clamp(640px, 52vw, 820px);--form-max: 560px;--z-topbar: 40;--z-sidebar: 30;--z-modal: 80;--z-toast: 90;--z-palette: 85}:root,:root[data-theme=light]{color-scheme:light;--bg-0: #eef1f6;--bg-1: #ffffff;--surface: #ffffff;--surface-2: #f5f8fc;--surface-3: #eaf0f7;--border: #e6ebf2;--border-strong: #ccd6e4;--text: #16222f;--text-muted: #566577;--text-dim: #6b7889;--primary: #0e5fb2;--primary-hover: #0b4e94;--primary-active: #093e74;--primary-soft: rgba(14, 95, 178, .1);--primary-border: rgba(14, 95, 178, .28);--on-primary: #ffffff;--accent: #0e8fa8;--green: #158043;--green-soft: #d1f2df;--amber: #8a5a06;--amber-dim: #e2c186;--amber-soft: #fbe8c2;--red: #c02a1f;--red-soft: #fadad6;--cyan: #0e8fa8;--cyan-soft: rgba(14, 143, 168, .12);--shadow-sm: 0 1px 2px rgba(16, 33, 48, .05), 0 1px 3px rgba(16, 33, 48, .06);--shadow: 0 6px 20px -6px rgba(16, 33, 48, .12), 0 2px 6px rgba(16, 33, 48, .05);--shadow-lg: 0 24px 56px -18px rgba(16, 33, 48, .3);--ring: 0 0 0 3px rgba(14, 95, 178, .22);--skeleton-1: #e7edf3;--skeleton-2: #f2f6fa;--overlay: rgba(22, 34, 47, .42)}:root[data-theme=dark]{color-scheme:dark;--bg-0: #0a0f17;--bg-1: #0e141d;--surface: #131d2a;--surface-2: #17212e;--surface-3: #1d2836;--border: #223042;--border-strong: #31465e;--text: #e8eef5;--text-muted: #93a4b9;--text-dim: #74849a;--primary: #4a9ff0;--primary-hover: #62adf3;--primary-active: #2f8adb;--primary-soft: rgba(74, 159, 240, .16);--primary-border: rgba(74, 159, 240, .4);--on-primary: #05121f;--accent: #2bc0d8;--green: #2ecc71;--green-soft: rgba(46, 204, 113, .14);--amber: #f5a524;--amber-dim: #6f4d12;--amber-soft: rgba(245, 165, 36, .14);--red: #ff5b5b;--red-soft: rgba(255, 91, 91, .13);--cyan: #35c9d6;--cyan-soft: rgba(53, 201, 214, .14);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .4), 0 1px 3px rgba(0, 0, 0, .45);--shadow: 0 6px 20px -6px rgba(0, 0, 0, .55), 0 2px 6px rgba(0, 0, 0, .4);--shadow-lg: 0 24px 56px -18px rgba(0, 0, 0, .6);--ring: 0 0 0 3px rgba(74, 159, 240, .32);--skeleton-1: #17212e;--skeleton-2: #202c3b;--overlay: rgba(3, 6, 10, .66)}:root{font-family:var(--font-sans);-webkit-font-smoothing:antialiased}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg-0);color:var(--text);transition:background-color var(--motion-slow),color var(--motion-slow)}button{font-family:inherit;cursor:pointer}h1,h2,h3,h4{font-weight:700;letter-spacing:-.01em}:focus-visible{outline:2px solid var(--primary);outline-offset:2px;border-radius:var(--radius-sm)}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,a:focus-visible{outline:2px solid var(--primary);outline-offset:2px}a{color:var(--primary)}.skip-link{position:fixed;top:-60px;left:12px;z-index:100;padding:var(--sp-2) var(--sp-4);background:var(--primary);color:var(--on-primary);border-radius:var(--radius-sm);font-size:var(--fs-sm);font-weight:600;text-decoration:none;transition:top var(--t)}.skip-link:focus{top:12px}.field{display:flex;flex-direction:column;gap:var(--sp-2)}.field__label{font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.16em;text-transform:uppercase;color:var(--text-muted)}.field__input{width:100%;padding:var(--sp-3) var(--sp-3);background:var(--bg-1);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);font-size:var(--fs-body);font-family:var(--font-sans);transition:border-color .15s,box-shadow .15s}.field__input::placeholder{color:var(--text-dim)}.field__input:focus{outline:none;border-color:var(--primary);box-shadow:var(--ring)}.field__input.is-invalid{border-color:var(--red)}.field__input.is-invalid:focus{box-shadow:0 0 0 3px var(--red-soft)}.page-head{margin-bottom:var(--sp-6)}.page-title{margin:0 0 var(--sp-2);font-size:var(--fs-h1);font-weight:700;letter-spacing:-.01em}.page-lead{margin:0;max-width:60ch;color:var(--text-muted);font-size:var(--fs-body);line-height:1.5}.module-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));grid-auto-rows:1fr;gap:var(--card-gap)}.module-card{position:relative;height:100%;padding:var(--sp-4);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);transition:border-color .15s,transform .15s}.module-card:hover{border-color:var(--border-strong);transform:translateY(-2px)}.module-card__code{font-family:var(--font-mono);font-size:var(--fs-mono);letter-spacing:.16em;color:var(--cyan)}.module-card__title{margin:var(--sp-2) 0 var(--sp-1);font-size:var(--fs-h3);font-weight:600}.module-card__note{margin:0 0 var(--sp-4);color:var(--text-muted);font-size:var(--fs-sm);line-height:1.4}.module-card__soon{display:inline-block;padding:.2rem var(--sp-2);background:#f5a52414;border:1px solid var(--amber-dim);border-radius:var(--radius-sm);font-family:var(--font-mono);font-size:var(--fs-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--amber)}.module-card--active{display:block;text-decoration:none;color:inherit;box-shadow:var(--shadow-sm);transition:border-color var(--motion),box-shadow var(--motion),transform var(--motion)}.module-card--active:hover{border-color:var(--primary-border);box-shadow:var(--shadow);transform:translateY(-1px)}.module-card__open{display:inline-block;padding:.2rem var(--sp-2);background:#35c9d614;border:1px solid rgba(53,201,214,.35);border-radius:var(--radius-sm);font-family:var(--font-mono);font-size:var(--fs-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--cyan)}.stat-panel{margin-bottom:var(--sp-8)}.stat-panel__head{display:flex;align-items:center;justify-content:space-between;padding-bottom:var(--sp-2);margin-bottom:var(--sp-3);border-bottom:1px solid var(--border)}.stat-panel__title{font-family:var(--font-mono);font-size:var(--fs-mono);letter-spacing:.18em;text-transform:uppercase;color:var(--text-muted)}.stat-panel__live{display:inline-flex;align-items:center;gap:var(--sp-2);font-family:var(--font-mono);font-size:var(--fs-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--text-dim)}.stat-panel__pulse{width:6px;height:6px;border-radius:50%;background:var(--green);box-shadow:0 0 #2ecc7180;animation:stat-pulse 2s infinite}@keyframes stat-pulse{0%{box-shadow:0 0 #2ecc7173}70%{box-shadow:0 0 0 6px #2ecc7100}to{box-shadow:0 0 #2ecc7100}}.stat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(158px,1fr));grid-auto-rows:1fr;gap:var(--card-gap)}.stat-tile{--tone: var(--border-strong);position:relative;overflow:hidden;height:100%;padding:var(--sp-4) var(--sp-4) var(--sp-3);background:linear-gradient(180deg,var(--surface-2),var(--surface));border:1px solid var(--border);border-radius:var(--radius-sm);display:flex;flex-direction:column;gap:.15rem;transition:border-color .15s,transform .15s}.stat-tile:before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:var(--tone);opacity:.9}.stat-tile:hover{border-color:var(--tone);transform:translateY(-1px)}.stat-tile--cyan{--tone: var(--cyan)}.stat-tile--green{--tone: var(--green)}.stat-tile--amber{--tone: var(--amber)}.stat-tile--red{--tone: var(--red)}.stat-tile--neutral{--tone: var(--text-dim)}.stat-tile__icon{color:var(--tone);font-size:22px}.stat-tile__value{font-family:var(--font-mono);font-size:var(--fs-display);font-weight:600;line-height:1;letter-spacing:-.02em;font-variant-numeric:tabular-nums;color:var(--text)}.stat-tile--green .stat-tile__value{color:var(--green)}.stat-tile--amber .stat-tile__value{color:var(--amber)}.stat-tile--red .stat-tile__value{color:var(--red);text-shadow:0 0 18px rgba(255,77,77,.35)}.stat-tile__label{margin-top:var(--sp-2);font-size:var(--fs-xs);font-weight:600;color:var(--text)}.stat-tile__hint{font-family:var(--font-mono);font-size:var(--fs-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--text-dim)}.stat-tile--skeleton{--tone: var(--border);animation:stat-skeleton 1.3s ease-in-out infinite}.stat-tile--skeleton .stat-tile__value{color:var(--text-dim)}@keyframes stat-skeleton{0%,to{opacity:.55}50%{opacity:.85}}.section-label{margin:0 0 var(--sp-4);font-family:var(--font-mono);font-size:var(--fs-mono);font-weight:500;letter-spacing:.18em;text-transform:uppercase;color:var(--text-dim)}.users{display:grid;grid-template-columns:minmax(260px,320px) 1fr;gap:var(--sp-6);align-items:start}@media (max-width: 820px){.users{grid-template-columns:1fr}}.users__form{display:flex;flex-direction:column;gap:var(--sp-4);padding:var(--sp-4);background:linear-gradient(180deg,var(--surface-2),var(--surface));border:1px solid var(--border-strong);border-radius:var(--radius-sm);position:sticky;top:5rem}.users__form-head{display:flex;align-items:center;gap:var(--sp-2);padding-bottom:var(--sp-2);border-bottom:1px solid var(--border)}.users__form-code{font-family:var(--font-mono);font-size:var(--fs-mono);letter-spacing:.16em;color:var(--cyan)}.users__form-title{margin:0;font-size:var(--fs-body);font-weight:600}.users__form select.field__input{-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer}.users__list{min-width:0;overflow-x:auto}.settings{display:flex;flex-direction:column;gap:var(--sp-4);max-width:640px}.setting{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--sp-4);padding:var(--sp-4);background:linear-gradient(180deg,var(--surface-2),var(--surface));border:1px solid var(--border-strong);border-radius:var(--radius-sm)}.setting__body{display:flex;flex-direction:column;gap:var(--sp-2);min-width:0;flex:1}.setting__body select.field__input{-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer}.setting__hint{margin:0;font-size:var(--fs-sm);color:var(--text-dim)}.setting__actions{display:flex;align-items:center;gap:var(--sp-2);padding-bottom:.15rem}.setting__saved{font-size:var(--fs-sm);color:var(--green)}@media (max-width: 640px){.setting{flex-direction:column;align-items:stretch}}.filters{display:flex;gap:var(--sp-2);margin-bottom:var(--sp-3)}.filters .field__input{width:auto;flex:1 1 auto}.data-table{width:100%;border-collapse:collapse;font-size:var(--fs-sm)}.data-table thead th{text-align:left;padding:var(--sp-2) var(--sp-3);background:var(--bg-1);border-bottom:1px solid var(--border-strong);font-family:var(--font-mono);font-size:var(--fs-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--text-muted);white-space:nowrap}.data-table tbody td{padding:var(--sp-2) var(--sp-3);border-bottom:1px solid var(--border);vertical-align:middle}.data-table tbody tr:hover td{background:var(--surface-2)}.data-table tr.is-inactive td{color:var(--text-dim)}.data-table__id{width:3rem;font-family:var(--font-mono);color:var(--text-dim)}.data-table__mono{font-family:var(--font-mono);font-size:var(--fs-sm)}.data-table__actions{text-align:right;white-space:nowrap}.role-tag{display:inline-block;padding:.15rem var(--sp-2);border-radius:var(--radius-sm);font-family:var(--font-mono);font-size:var(--fs-mono);letter-spacing:.1em;text-transform:uppercase}.role-tag--admin{background:#f5a5241a;border:1px solid var(--amber-dim);color:var(--amber)}.role-tag--magazioner{background:#35c9d614;border:1px solid rgba(53,201,214,.3);color:var(--cyan)}.role-tag--special{background:#f5a5241a;border:1px solid var(--amber-dim);color:var(--amber)}.role-tag--rack{background:#35c9d614;border:1px solid rgba(53,201,214,.3);color:var(--cyan)}.status-dot{display:inline-flex;align-items:center;gap:var(--sp-2);font-size:var(--fs-sm)}.status-dot:before{content:"";width:.45rem;height:.45rem;border-radius:50%}.status-dot--on{color:var(--green)}.status-dot--on:before{background:var(--green);box-shadow:0 0 6px var(--green)}.status-dot--off{color:var(--text-dim)}.status-dot--off:before{background:var(--text-dim)}.status-dot--valid{color:var(--green)}.status-dot--valid:before{background:var(--green);box-shadow:0 0 6px var(--green)}.status-dot--due-soon{color:var(--amber)}.status-dot--due-soon:before{background:var(--amber);box-shadow:0 0 6px var(--amber)}.status-dot--expired{color:var(--red)}.status-dot--expired:before{background:var(--red);box-shadow:0 0 6px var(--red)}.status-dot--unknown{color:var(--text-dim)}.status-dot--unknown:before{background:var(--text-dim)}.row-action{padding:var(--sp-2) var(--sp-3);background:transparent;border:1px solid var(--border-strong);border-radius:var(--radius-sm);color:var(--text-muted);font-size:var(--fs-xs);transition:border-color .15s,color .15s}.row-action:hover:not(:disabled){border-color:var(--primary);color:var(--primary)}.row-action:disabled{opacity:.4;cursor:not-allowed}.field__hint{font-size:var(--fs-xs);color:var(--text-dim);line-height:1.35}.field__check{display:flex;align-items:center;gap:var(--sp-2);font-size:var(--fs-sm);color:var(--text-muted);cursor:pointer}.filter-bar{display:flex;gap:var(--sp-3);margin-bottom:var(--sp-4)}.filter-bar .field{flex:1}button.role-tag{cursor:pointer;transition:filter .15s}button.role-tag:hover:not(:disabled){filter:brightness(1.15)}button.role-tag:disabled{opacity:.5;cursor:not-allowed}.calib-badge{display:inline-block;padding:.15rem var(--sp-2);border-radius:var(--radius-sm);font-family:var(--font-mono);font-size:var(--fs-mono);letter-spacing:.08em;text-transform:uppercase;white-space:nowrap}.calib-badge--valid{background:#2ecc711a;border:1px solid rgba(46,204,113,.35);color:var(--green)}.calib-badge--soon{background:#f5a5241a;border:1px solid var(--amber-dim);color:var(--amber)}.calib-badge--expired{background:#ff4d4d1a;border:1px solid rgba(255,77,77,.4);color:var(--red)}.calib-badge--unknown{background:var(--surface-2);border:1px solid var(--border-strong);color:var(--text-dim)}.import-box{margin-top:var(--sp-4);padding-top:var(--sp-4);border-top:1px dashed var(--border-strong);display:flex;flex-direction:column;gap:var(--sp-2)}.import-box__hint{font-size:var(--fs-xs);color:var(--text-dim);line-height:1.35}.import-report{margin-top:var(--sp-2);padding:var(--sp-2) var(--sp-3);background:var(--surface-2);border:1px solid var(--border-strong);border-radius:var(--radius-sm)}.import-report__summary{font-size:var(--fs-sm);color:var(--text-muted)}.import-report__summary strong{color:var(--primary)}.import-report__list{margin:var(--sp-2) 0 0;padding-left:0;list-style:none;display:flex;flex-direction:column;gap:var(--sp-2);max-height:14rem;overflow-y:auto;font-size:var(--fs-xs);color:var(--text-dim)}.import-report__list li{display:flex;align-items:center;gap:var(--sp-2)}.scan-steps{list-style:none;margin:0 0 var(--sp-4);padding:0;display:flex;flex-direction:column;gap:var(--sp-2)}.scan-steps li{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);border:1px solid var(--border, #2a2a2a);border-radius:var(--radius);background:var(--surface-2)}.scan-steps li.is-active{border-color:var(--primary);box-shadow:inset 0 0 0 1px var(--primary-border)}.scan-steps li.is-done{opacity:.85}.scan-steps__label{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted, #888);min-width:4.5rem}.scan-steps__badge{font-family:ui-monospace,monospace;font-size:var(--fs-xs);color:var(--text-dim, #aaa)}.link-button{background:none;border:none;color:var(--primary);cursor:pointer;padding:0;font:inherit;text-decoration:underline}.link-button--icon{display:inline-flex;align-items:center;gap:.4em;min-height:var(--tap);text-decoration:none}.link-button--icon:hover{text-decoration:underline}.link-button--icon svg{width:1.1em;height:1.1em}.data-table__empty{text-align:center;color:var(--text-muted, #888);padding:var(--sp-4)}.tabs{display:flex;flex-wrap:wrap;gap:var(--sp-1);margin-bottom:var(--sp-4);border-bottom:1px solid var(--border)}.tab{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;border:none;border-bottom:2px solid transparent;color:var(--text-muted);padding:var(--sp-2) var(--sp-3);font-size:var(--fs-sm);cursor:pointer;transition:color .15s ease,border-color .15s ease}.tab:hover{color:var(--text)}.tab--active{color:var(--primary);border-bottom-color:var(--primary)}.filters{flex-wrap:wrap}.reports__actions{display:flex;align-items:center;gap:var(--sp-2);margin-bottom:var(--sp-3)}.reports__count{margin-right:auto;font-size:var(--fs-sm);color:var(--text-muted);font-family:var(--font-mono)}.reports__more{margin-top:var(--sp-3);text-align:center}.table-scroll{overflow-x:auto}.data-table--dense{font-size:var(--fs-sm)}.data-table--dense thead th,.data-table--dense tbody td{padding:var(--sp-2) var(--sp-2);white-space:nowrap}.data-table__row--clickable{cursor:pointer}.data-table__row--clickable:hover td{background:var(--surface-2)}.audit__changes{max-width:380px;overflow:hidden;text-overflow:ellipsis;color:var(--text-muted);font-family:var(--font-mono)}.audit__pager{display:flex;gap:var(--sp-2);justify-content:flex-end}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:flex;align-items:center;justify-content:center;padding:var(--sp-6);background:#0f172a59;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);animation:modal-overlay-in var(--motion) both}@keyframes modal-overlay-in{0%{opacity:0}}.modal{width:min(640px,100%);max-height:85vh;overflow:auto;padding:var(--sp-6) var(--sp-6) var(--sp-6);background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);animation:modal-in var(--motion) both}@keyframes modal-in{0%{opacity:0;transform:scale(.98)}}.modal__head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--sp-4)}.modal__title{margin:0;font-family:var(--font-mono);font-size:var(--fs-h3);color:var(--text)}.modal__close{width:2.75rem;height:2.75rem;line-height:1;cursor:pointer;color:var(--text-muted);background:transparent;border:1px solid var(--border);border-radius:var(--radius-sm)}.modal__close:hover{color:var(--text);border-color:var(--border-strong)}.modal__meta{display:flex;gap:var(--sp-8);margin:var(--sp-4) 0 var(--sp-2)}.modal__meta dt{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.05em;color:var(--text-dim)}.modal__meta dd{margin:.15rem 0 0;font-family:var(--font-mono);font-size:var(--fs-sm);color:var(--text)}.modal__json{margin:var(--sp-2) 0 0;padding:var(--sp-4) var(--sp-4);font-family:var(--font-mono);font-size:var(--fs-sm);color:var(--text);white-space:pre-wrap;word-break:break-word;background:var(--bg-1);border:1px solid var(--border);border-radius:var(--radius)}.shell{min-height:100vh;display:grid;grid-template-columns:var(--sidebar-w) minmax(0,1fr);grid-template-rows:var(--topbar-h) 1fr;grid-template-areas:"topbar topbar" "sidebar content";transition:grid-template-columns var(--t)}.shell--collapsed{grid-template-columns:var(--sidebar-w-collapsed) minmax(0,1fr)}.topbar{grid-area:topbar;position:sticky;top:0;z-index:var(--z-topbar);display:flex;align-items:center;gap:var(--sp-4);padding:0 clamp(20px,3vw,40px);background:var(--bg-1);border-bottom:1px solid var(--border)}.topbar__left{display:flex;align-items:center;gap:var(--sp-2);min-width:0}.topbar__brand{display:flex;align-items:center;gap:var(--sp-2);text-decoration:none;color:var(--text);padding:var(--sp-1) var(--sp-2);border-radius:var(--radius-sm)}.topbar__logo{display:grid;place-items:center;color:var(--primary);flex:none}.topbar__wordmark{display:flex;flex-direction:column;line-height:1.05}.topbar__brand-name{font-weight:700;font-size:var(--fs-h3);letter-spacing:-.01em}.topbar__brand-sub{font-family:var(--font-mono);font-size:var(--fs-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--text-dim)}.topbar__search{display:flex;align-items:center;gap:var(--sp-2);position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:min(560px,40vw);min-width:240px;padding:var(--sp-2) var(--sp-3);background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-pill);color:var(--text-dim);font-size:var(--fs-sm);transition:border-color var(--t-fast),background var(--t-fast)}.topbar__search:hover{border-color:var(--border-strong)}.topbar__search-icon{font-size:var(--fs-h3);flex:none}.topbar__search-text{flex:1;text-align:left}.topbar__kbd,.palette__esc{font-family:var(--font-mono);font-size:var(--fs-mono);letter-spacing:.05em;padding:.12rem var(--sp-2);border:1px solid var(--border-strong);border-radius:var(--radius-sm);color:var(--text-muted);background:var(--bg-1)}.topbar__right{display:flex;align-items:center;gap:var(--sp-2);margin-left:auto}.topbar__icon-btn{display:grid;place-items:center;width:2.75rem;height:2.75rem;font-size:var(--fs-h2);color:var(--text-muted);background:transparent;border:1px solid transparent;border-radius:var(--radius-sm);transition:background var(--t-fast),color var(--t-fast),border-color var(--t-fast)}.topbar__icon-btn:hover{background:var(--surface-2);color:var(--text);border-color:var(--border)}.topbar__burger{display:none}.topbar__pop{position:relative}.usermenu__trigger{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-1) var(--sp-2) var(--sp-1) var(--sp-2);background:transparent;border:1px solid transparent;border-radius:var(--radius-pill);color:var(--text);transition:background var(--t-fast),border-color var(--t-fast)}.usermenu__trigger:hover{background:var(--surface-2);border-color:var(--border)}.usermenu__avatar{display:grid;place-items:center;width:2.05rem;height:2.05rem;border-radius:50%;background:linear-gradient(140deg,var(--primary),var(--accent));color:#fff;font-size:var(--fs-xs);font-weight:700;letter-spacing:.02em;flex:none}.usermenu__avatar--lg{width:2.5rem;height:2.5rem;font-size:var(--fs-sm)}.usermenu__meta{display:flex;flex-direction:column;align-items:flex-start;line-height:1.2}.usermenu__name{font-size:var(--fs-sm);font-weight:600}.usermenu__role{font-size:var(--fs-xs);color:var(--text-dim)}.usermenu__caret{font-size:var(--fs-body);color:var(--text-dim)}.popover{position:absolute;top:calc(100% + 8px);right:0;min-width:240px;padding:var(--sp-2);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-lg);z-index:var(--z-topbar);animation:pop-in .14s ease both}@keyframes pop-in{0%{opacity:0;transform:translateY(-4px)}}.popover--notif{width:280px}.popover__head{padding:var(--sp-2) var(--sp-2);font-size:var(--fs-xs);font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--text-dim)}.popover__id{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-2)}.popover__id-name{font-weight:600;font-size:var(--fs-body)}.popover__id-mail{font-size:var(--fs-xs);color:var(--text-muted)}.popover__sep{height:1px;margin:var(--sp-1) 0;background:var(--border)}.popover__item{display:flex;align-items:center;gap:var(--sp-2);width:100%;padding:var(--sp-2) var(--sp-2);background:transparent;border:none;border-radius:var(--radius-sm);color:var(--text);font-size:var(--fs-sm);text-align:left;text-decoration:none;transition:background var(--t-fast)}.popover__item svg{font-size:var(--fs-h3);color:var(--text-muted)}.popover__item:hover{background:var(--surface-2)}.popover__item--danger{color:var(--red)}.popover__item--danger svg{color:var(--red)}.context-menu{position:fixed;min-width:190px;padding:var(--sp-2);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-lg);z-index:var(--z-modal);animation:pop-in .14s ease both}.context-menu__item{display:block;width:100%;padding:var(--sp-2) var(--sp-2);background:transparent;border:none;border-radius:var(--radius-sm);color:var(--text);font-size:var(--fs-sm);text-align:left}.context-menu__item:hover{background:var(--surface-2)}.context-menu__item--danger{color:var(--red)}.sidebar{grid-area:sidebar;position:sticky;top:var(--topbar-h);align-self:start;height:calc(100vh - var(--topbar-h));display:flex;flex-direction:column;background:var(--bg-1);border-right:1px solid var(--border);overflow:hidden}.sidebar__nav{flex:1;overflow-y:auto;padding:var(--sp-3) var(--sp-2) var(--sp-4);display:flex;flex-direction:column;gap:.15rem}.navgroup{margin-top:var(--sp-2)}.navgroup__label{display:flex;align-items:center;gap:var(--sp-2);width:100%;padding:var(--sp-2) var(--sp-2);border-radius:var(--radius-sm);background:transparent;border:0;cursor:pointer;font-size:var(--fs-mono);font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--text-dim);transition:background var(--t-fast),color var(--t-fast)}.navgroup__label:hover{background:var(--surface-2);color:var(--text-muted)}.navgroup__icon{font-size:var(--fs-body);opacity:.8}.navgroup__caret{margin-left:auto;font-size:var(--fs-body);opacity:.7;transition:transform var(--t)}.navgroup.is-open .navgroup__caret{transform:rotate(180deg)}.navitem{position:relative;display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-2) var(--sp-2);border-radius:var(--radius-sm);color:var(--text-muted);text-decoration:none;font-size:var(--fs-body);font-weight:500;transition:background var(--t-fast),color var(--t-fast)}.navitem:hover{background:var(--surface-2);color:var(--text)}.navitem__icon{display:grid;place-items:center;font-size:var(--fs-h2);flex:none;width:1.35rem}.navitem.is-active{background:var(--primary-soft);color:var(--primary);font-weight:600}.navitem.is-active:before{content:"";position:absolute;left:-.6rem;top:50%;transform:translateY(-50%);width:3px;height:1.35rem;border-radius:0 3px 3px 0;background:var(--primary)}.sidebar__collapse{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-3) var(--sp-3);margin:var(--sp-2) var(--sp-2);background:transparent;border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-muted);font-size:var(--fs-sm);transition:background var(--t-fast),color var(--t-fast)}.sidebar__collapse:hover{background:var(--surface-2);color:var(--text)}.sidebar__collapse-icon{font-size:var(--fs-h3);transition:transform var(--t)}.shell--collapsed .topbar__wordmark,.shell--collapsed .navitem__label,.shell--collapsed .navgroup__label span,.shell--collapsed .navgroup__caret,.shell--collapsed .sidebar__collapse-text{display:none}.shell--collapsed .navgroup__label,.shell--collapsed .navitem{justify-content:center;padding:var(--sp-2) 0}.shell--collapsed .sidebar__collapse{justify-content:center}.shell--collapsed .sidebar__collapse-icon{transform:rotate(180deg)}.shell--collapsed .navitem[data-tooltip]:hover:after,.has-tip[data-tooltip]:hover:after,.field__help[data-tooltip]:hover:after,.field__help[data-tooltip]:focus-visible:after{content:attr(data-tooltip);position:absolute;left:calc(100% + 10px);top:50%;transform:translateY(-50%);white-space:nowrap;padding:var(--sp-2) var(--sp-2);background:var(--text);color:var(--bg-1);font-size:var(--fs-xs);font-weight:500;border-radius:var(--radius-sm);box-shadow:var(--shadow);z-index:var(--z-topbar);pointer-events:none}.has-tip{position:relative;display:inline-flex}.has-tip--top[data-tooltip]:hover:after{left:50%;top:auto;bottom:calc(100% + 8px);transform:translate(-50%)}.content{grid-area:content;min-width:0;display:flex;flex-direction:column}.content__inner{flex:1;display:flex;flex-direction:column;width:100%;padding:clamp(16px,2.2vw,36px) clamp(16px,3vw,56px) var(--space-10)}.sidebar__backdrop{display:none}@media (max-width: 880px){.shell,.shell--collapsed{grid-template-columns:1fr;grid-template-areas:"topbar" "content"}.topbar__burger{display:grid}.topbar__search{display:none}.sidebar{position:fixed;top:var(--topbar-h);left:0;width:var(--sidebar-w);height:calc(100vh - var(--topbar-h));transform:translate(-105%);transition:transform var(--t);z-index:var(--z-sidebar);box-shadow:var(--shadow-lg)}.shell--mobile-open .sidebar{transform:translate(0)}.shell--collapsed .topbar__wordmark,.shell--collapsed .navitem__label,.shell--collapsed .navgroup__label span,.shell--collapsed .sidebar__collapse-text{display:revert}.shell--collapsed .navitem,.shell--collapsed .navgroup__label,.shell--collapsed .sidebar__collapse{justify-content:flex-start;padding:var(--sp-2) var(--sp-2)}.shell--mobile-open .sidebar__backdrop{display:block;position:fixed;inset:var(--topbar-h) 0 0;background:var(--overlay);z-index:calc(var(--z-sidebar) - 1)}.content__inner{padding:var(--sp-4) var(--sp-4) var(--sp-8)}}.palette-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--z-palette);display:flex;justify-content:center;align-items:flex-start;padding-top:14vh;background:var(--overlay);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);animation:fade-in .12s ease both}@keyframes fade-in{0%{opacity:0}}.palette{width:min(560px,92vw);background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);overflow:hidden;animation:pop-in .16s ease both}.palette__search{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-4) var(--sp-4);border-bottom:1px solid var(--border)}.palette__search-icon{font-size:var(--fs-h2);color:var(--text-muted)}.palette__input{flex:1;background:transparent;border:none;outline:none;color:var(--text);font-size:var(--fs-h3)}.palette__list{list-style:none;margin:0;padding:var(--sp-2);max-height:52vh;overflow-y:auto}.palette__item{display:flex;align-items:center;gap:var(--sp-2);width:100%;padding:var(--sp-2) var(--sp-3);background:transparent;border:none;border-radius:var(--radius-sm);color:var(--text);font-size:var(--fs-body);text-align:left}.palette__item-label{flex:1}.palette__item-go{font-size:var(--fs-h3);color:var(--text-dim);opacity:0;transition:opacity var(--t-fast)}.palette__item.is-active{background:var(--primary-soft);color:var(--primary)}.palette__item.is-active .palette__item-go{opacity:1;color:var(--primary)}.palette__empty{display:flex;flex-direction:column;align-items:center;gap:var(--sp-1);padding:var(--space-6) var(--sp-4);text-align:center;color:var(--text-muted);font-size:var(--fs-body)}.palette__empty-icon{font-size:1.5rem;color:var(--text-dim);margin-bottom:var(--sp-1)}.palette__empty-title{color:var(--text);font-weight:600;font-size:var(--fs-body)}.palette__empty-hint{color:var(--text-dim);font-size:var(--fs-sm)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-2);border:1px solid transparent;border-radius:var(--radius-sm);font-family:inherit;font-weight:600;line-height:1;white-space:nowrap;transition:background var(--t-fast),border-color var(--t-fast),color var(--t-fast),box-shadow var(--t-fast),transform .04s}.btn:active:not(:disabled){transform:translateY(1px)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn--sm{padding:var(--sp-2) var(--sp-3);font-size:var(--fs-sm);min-height:2rem}.btn--md{padding:var(--sp-2) var(--sp-4);font-size:var(--fs-body)}.btn--lg{padding:var(--sp-3) var(--sp-4);font-size:var(--fs-body)}.btn--block{width:100%}.btn__icon{display:inline-flex;font-size:1.1em}.btn--primary{background:var(--primary);color:var(--on-primary);box-shadow:var(--shadow-sm)}.btn--primary:hover:not(:disabled){background:var(--primary-hover)}.btn--secondary{background:var(--surface);color:var(--text);border-color:var(--border-strong)}.btn--secondary:hover:not(:disabled){border-color:var(--primary);color:var(--primary)}.btn--ghost{background:transparent;color:var(--text-muted)}.btn--ghost:hover:not(:disabled){background:var(--surface-2);color:var(--text)}.btn--danger{background:var(--red);color:#fff}.btn--danger:hover:not(:disabled){filter:brightness(1.06)}.btn__spinner{width:.95em;height:.95em;border:2px solid currentColor;border-top-color:transparent;border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.badge{display:inline-flex;align-items:center;gap:var(--sp-2);padding:.16rem var(--sp-2);border-radius:var(--radius-pill);font-size:var(--fs-xs);font-weight:600;letter-spacing:.02em;border:1px solid transparent;white-space:nowrap}.badge__dot{width:.45rem;height:.45rem;border-radius:50%;background:currentColor}.badge--success{background:var(--green-soft);color:var(--green);border-color:var(--green-soft)}.badge--warning{background:var(--amber-soft);color:var(--amber);border-color:var(--amber-soft)}.badge--danger{background:var(--red-soft);color:var(--red);border-color:var(--red-soft)}.badge--info{background:var(--cyan-soft);color:var(--cyan);border-color:var(--cyan-soft)}.badge--primary{background:var(--primary-soft);color:var(--primary);border-color:var(--primary-soft)}.badge--neutral{background:var(--surface-2);color:var(--text-muted);border-color:var(--border)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm)}.card--interactive{transition:transform var(--motion),box-shadow var(--motion)}.card--interactive:hover{transform:translateY(-1px);box-shadow:var(--shadow)}.card__head{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-4) var(--sp-4);border-bottom:1px solid var(--border)}.card__head-icon{display:grid;place-items:center;width:2.2rem;height:2.2rem;border-radius:var(--radius-sm);background:var(--primary-soft);color:var(--primary);font-size:var(--fs-h2);flex:none}.card__head-text{min-width:0;flex:1}.card__title{margin:0;font-size:var(--fs-h3);font-weight:600}.card__subtitle{margin:.15rem 0 0;font-size:var(--fs-sm);color:var(--text-muted)}.card__head-actions{display:flex;align-items:center;gap:var(--sp-2)}.card__body{padding:var(--sp-4)}.card__foot{display:flex;align-items:center;justify-content:flex-end;gap:var(--sp-2);padding:var(--sp-3) var(--sp-4);border-top:1px solid var(--border)}.field__label-row{display:flex;align-items:center;gap:var(--sp-2)}.field__help{display:inline-grid;place-items:center;position:relative;width:1rem;height:1rem;color:var(--text-dim);cursor:help}.field__help:hover{color:var(--primary)}.field__error{font-size:var(--fs-xs);color:var(--red)}.field__textarea{min-height:5.5rem;resize:vertical;line-height:1.5}.field__select-wrap{position:relative}.field__select{-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;padding-right:var(--sp-8)}.field__select-wrap:after{content:"";position:absolute;right:.85rem;top:50%;width:.5rem;height:.5rem;border-right:2px solid var(--text-muted);border-bottom:2px solid var(--text-muted);transform:translateY(-70%) rotate(45deg);pointer-events:none}.shadow-legend__items{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-4)}.shadow-legend__item{display:inline-flex;align-items:center;gap:var(--space-2);font-size:var(--fs-sm);color:var(--text)}.shadow-legend__swatch{display:inline-block;flex-shrink:0;width:16px;height:16px;border-radius:var(--radius-sm);border:1px solid var(--border)}.empty{display:flex;flex-direction:column;align-items:center;text-align:center;gap:var(--sp-2);padding:var(--sp-8) var(--sp-6);background:var(--surface-2);border:1px dashed var(--border-strong);border-radius:var(--radius)}.empty--compact{padding:var(--sp-6) var(--sp-4);background:transparent;border:none}.empty__icon{display:grid;place-items:center;width:3.2rem;height:3.2rem;margin-bottom:var(--sp-2);border-radius:50%;background:var(--primary-soft);color:var(--primary);font-size:var(--fs-h1)}.empty__title{margin:0;font-size:var(--fs-h3);font-weight:600;color:var(--text)}.empty__desc{margin:0;max-width:42ch;font-size:var(--fs-sm);color:var(--text-muted);line-height:1.5}.empty__action{margin-top:var(--sp-3)}.spinner{display:inline-block;border:2px solid var(--border-strong);border-top-color:var(--primary);border-radius:50%;animation:spin .7s linear infinite}.skeleton{display:block;background:linear-gradient(90deg,var(--skeleton-1),var(--skeleton-2),var(--skeleton-1));background-size:200% 100%;animation:shimmer 1.3s ease-in-out infinite}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.skeleton-table{display:flex;flex-direction:column;gap:var(--sp-3);padding:var(--sp-2) 0}.skeleton-table__row{display:grid;grid-template-columns:1fr 2fr 2fr 1fr;gap:var(--sp-4);align-items:center}.modal--sm{width:min(420px,100%)}.modal--md{width:min(560px,100%)}.modal--lg{width:min(720px,100%)}.modal[data-variant]{border-top:4px solid var(--v-accent)}.modal__head-icon{display:grid;place-items:center;width:2rem;height:2rem;flex:none;color:var(--v-accent, var(--primary));font-size:24px}.modal__content{margin-top:var(--sp-4)}.modal__message{margin:var(--sp-2) 0 0;color:var(--text-muted);font-size:var(--fs-body);line-height:1.55}.modal__message--error{color:var(--red)}.modal__foot{display:flex;justify-content:flex-end;gap:var(--sp-2);margin-top:var(--sp-6)}.toaster{position:fixed;bottom:1.2rem;right:1.2rem;z-index:var(--z-toast);display:flex;flex-direction:column;gap:var(--sp-2);max-width:min(360px,92vw)}.toast{display:flex;align-items:flex-start;gap:var(--sp-2);padding:var(--sp-3) var(--sp-3);background:var(--surface);border:1px solid var(--border);border-left:3px solid var(--text-dim);border-radius:var(--radius);box-shadow:var(--shadow-lg);animation:toast-in .2s cubic-bezier(.16,1,.3,1) both}@keyframes toast-in{0%{opacity:0;transform:translate(16px)}}.toast__icon{font-size:var(--fs-h2);flex:none;margin-top:.05rem}.toast__msg{flex:1;font-size:var(--fs-sm);line-height:1.4;color:var(--text)}.toast__undo{flex:none;background:transparent;border:none;color:var(--cyan);font-size:var(--fs-sm);font-weight:600;padding:0;line-height:1.4;text-decoration:underline}.toast__undo:hover{opacity:.8}.toast__close{background:transparent;border:none;color:var(--text-dim);font-size:var(--fs-h3);padding:0;line-height:1}.toast__close:hover{color:var(--text)}.toast--success{border-left-color:var(--green)}.toast--success .toast__icon{color:var(--green)}.toast--error{border-left-color:var(--red)}.toast--error .toast__icon{color:var(--red)}.toast--warning{border-left-color:var(--amber)}.toast--warning .toast__icon{color:var(--amber)}.toast--info{border-left-color:var(--cyan)}.toast--info .toast__icon{color:var(--cyan)}.breadcrumbs{margin-bottom:var(--sp-4)}.breadcrumbs__list{display:flex;align-items:center;flex-wrap:wrap;gap:var(--sp-2);margin:0;padding:0;list-style:none}.breadcrumbs__item{display:inline-flex;align-items:center;gap:var(--sp-2)}.breadcrumbs__link{color:var(--text-muted);text-decoration:none;font-size:var(--fs-sm)}.breadcrumbs__link:hover{color:var(--primary)}.breadcrumbs__current{color:var(--text);font-size:var(--fs-sm);font-weight:600}.breadcrumbs__sep{display:inline-flex;font-size:var(--fs-sm);color:var(--text-dim)}.data-table__th--sortable{padding:0}.data-table__sort{display:inline-flex;align-items:center;gap:var(--sp-1);width:100%;padding:var(--sp-2) var(--sp-3);background:transparent;border:none;color:inherit;font:inherit;letter-spacing:inherit;text-transform:inherit;cursor:pointer}.data-table__sort:hover{color:var(--primary)}.data-table__sort-icon{display:inline-flex;font-size:var(--fs-body);opacity:.35;transition:transform var(--t-fast),opacity var(--t-fast)}.data-table__sort-icon.is-asc{opacity:1;transform:rotate(180deg);color:var(--primary)}.data-table__sort-icon.is-desc{opacity:1;color:var(--primary)}.onboard{position:relative;overflow:hidden;margin-bottom:var(--sp-6);padding:var(--sp-6) var(--sp-6);background:linear-gradient(135deg,var(--primary-soft),transparent 70%),var(--surface);border:1px solid var(--primary-border);border-radius:var(--radius-lg)}.onboard__dismiss{position:absolute;top:.8rem;right:.8rem;display:grid;place-items:center;width:1.9rem;height:1.9rem;background:transparent;border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-muted)}.onboard__dismiss:hover{color:var(--text);border-color:var(--border-strong)}.onboard__eyebrow{margin:0 0 .2rem;font-size:var(--fs-xs);font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--primary)}.onboard__title{margin:0 0 var(--sp-1);font-size:var(--fs-h2)}.onboard__lead{margin:0 0 var(--sp-4);max-width:60ch;color:var(--text-muted);font-size:var(--fs-body);line-height:1.5}.onboard__steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:var(--sp-3)}.onboard__step{display:flex;flex-direction:column;gap:var(--sp-2);padding:var(--sp-4) var(--sp-4);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);text-decoration:none;color:var(--text);transition:border-color var(--t-fast),transform var(--t-fast),box-shadow var(--t-fast)}.onboard__step:hover{border-color:var(--primary);transform:translateY(-2px);box-shadow:var(--shadow)}.onboard__step-num{display:grid;place-items:center;width:1.7rem;height:1.7rem;border-radius:50%;background:var(--primary);color:var(--on-primary);font-size:var(--fs-sm);font-weight:700}.onboard__step-title{font-weight:600;font-size:var(--fs-body)}.onboard__step-note{font-size:var(--fs-sm);color:var(--text-muted);line-height:1.4}.onboard__step-cta{margin-top:.2rem;font-size:var(--fs-xs);font-weight:600;color:var(--primary)}.signin{min-height:100vh;min-height:100dvh;display:grid;grid-template-columns:3fr 2fr;background:#070f1c;color:#eef4fb}.signin__scene{position:relative;overflow:hidden;isolation:isolate;display:flex;background-color:#070f1c}.signin__scene:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-image:url(/login-hero-bg.jpg);background-size:cover;background-position:center;background-repeat:no-repeat;filter:brightness(1.16) contrast(1.06) saturate(1.1)}.signin__jet-track{position:absolute;top:0;left:50%;height:100%;aspect-ratio:3 / 2;margin-left:-75dvh;pointer-events:none;clip-path:inset(0 0 0 6%)}.signin__jet{position:absolute;top:0;right:0;bottom:0;left:0;background:url(/login-hero-plane.webp) center / 100% 100% no-repeat;filter:brightness(1.16) contrast(1.06) saturate(1.1);transform-origin:30% 64%;will-change:transform;animation:signin-taxi-in 4.1s cubic-bezier(.45,.05,.2,1) both}@keyframes signin-taxi-in{0%{transform:translate3d(-38%,0,0) scale(.62)}to{transform:translateZ(0) scale(1)}}.signin__scene-overlay{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background:linear-gradient(120deg,#040a1685,#040a1633 42%,#040a160a 68%,#040a166b),linear-gradient(180deg,rgba(4,10,22,.22) 0%,transparent 42%,rgba(4,10,22,.45) 100%)}.signin__flares{position:absolute;top:0;left:50%;height:100%;aspect-ratio:3 / 2;margin-left:-75dvh;pointer-events:none}.signin__flare{position:absolute;left:var(--x);top:var(--y);width:var(--size);height:var(--size);margin:calc(var(--size) / -2) 0 0 calc(var(--size) / -2);border-radius:50%;background:radial-gradient(circle,rgba(255,244,224,.9) 0%,rgba(255,219,160,.42) 18%,rgba(255,186,110,.14) 44%,transparent 70%);mix-blend-mode:screen;filter:blur(3px);will-change:opacity,transform;animation:signin-flare 6.5s ease-in-out infinite;animation-delay:var(--delay, 0s)}.signin__flare:before{content:"";position:absolute;top:50%;left:-55%;width:210%;height:8%;transform:translateY(-50%);border-radius:50%;background:linear-gradient(90deg,transparent 0%,rgba(255,226,178,.28) 32%,rgba(255,240,214,.5) 50%,rgba(255,226,178,.28) 68%,transparent 100%);filter:blur(2px)}@keyframes signin-flare{0%,to{opacity:calc(.4 * var(--gain, 1));transform:scale(.9)}50%{opacity:calc(1 * var(--gain, 1));transform:scale(1.14)}}.signin__scene-fade{position:absolute;top:0;right:0;bottom:0;left:55%;pointer-events:none;-webkit-backdrop-filter:blur(16px) saturate(.95);backdrop-filter:blur(16px) saturate(.95);background:linear-gradient(90deg,transparent 0%,rgba(10,21,38,.22) 50%,rgba(10,21,38,.7) 82%,#0a1526 100%);-webkit-mask-image:linear-gradient(90deg,transparent 0%,#000 55%,#000 100%);mask-image:linear-gradient(90deg,transparent 0%,#000 55%,#000 100%)}.signin__scene:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;pointer-events:none;background:linear-gradient(90deg,transparent 68%,rgba(10,21,38,.45) 88%,rgba(10,21,38,.85) 97%,#0a1526 100%)}.signin__brand-content{position:relative;z-index:3;display:flex;flex-direction:column;align-items:flex-end;justify-content:space-between;gap:var(--sp-8);width:100%;padding:clamp(28px,4vw,52px);text-align:right;color:#eaf2fb}.signin__brandbar{display:flex;align-items:center;justify-content:flex-end;gap:14px}.signin__brand-logo{color:#fff;display:inline-flex}.signin__brand-name{font-size:var(--fs-h1);font-weight:700;letter-spacing:-.01em;line-height:1.05}.signin__brand-sub{display:block;font-family:var(--font-mono);font-size:var(--fs-mono);letter-spacing:.18em;text-transform:uppercase;color:#eaf2fb9e}.signin__brandbody{max-width:27rem}.signin__tagline{margin:0 0 var(--sp-4);font-size:var(--fs-display);font-weight:700;line-height:1.16;letter-spacing:-.02em;text-shadow:0 2px 24px rgba(0,0,0,.4)}.signin__blurb{margin:0;font-size:var(--fs-body);line-height:1.6;color:#eaf2fbd1;text-shadow:0 1px 12px rgba(0,0,0,.35)}.signin__chips{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:var(--sp-2)}.signin__chip{display:inline-flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);border-radius:var(--radius-pill);border:1px solid rgba(255,255,255,.16);background:#08101c66;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);font-size:var(--fs-xs);letter-spacing:.04em}.signin__chip svg{font-size:.95rem;opacity:.85}.signin__panel{position:relative;display:flex;align-items:center;justify-content:center;padding:clamp(24px,4vw,56px);background:radial-gradient(140% 100% at 100% 0%,rgba(18,41,71,.9) 0%,rgba(11,26,48,.7) 45%,transparent 75%),#0a1526}.signin__hall{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;pointer-events:none}.signin__card{position:relative;width:min(400px,100%);padding:clamp(28px,4vw,44px);border-radius:var(--radius-lg);border:1px solid rgba(255,255,255,.08);background:#0f172a8c;-webkit-backdrop-filter:blur(20px) saturate(1.4);backdrop-filter:blur(20px) saturate(1.4);box-shadow:0 20px 60px -20px #00000080,0 0 0 1px #ffffff0d;animation:signin-card-in .55s cubic-bezier(.16,1,.3,1) both}@keyframes signin-card-in{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.signin__head{margin-bottom:clamp(22px,3vw,30px)}.signin__title{margin:0 0 8px;font-size:var(--fs-h1);font-weight:700;color:#fff;letter-spacing:-.02em}.signin__lead{margin:0;font-size:.9rem;color:#eaf2fb99;line-height:1.5}.signin__form{display:flex;flex-direction:column;gap:18px}.signin__field{display:flex;flex-direction:column;gap:7px}.signin__label{font-size:.78rem;font-weight:600;letter-spacing:.02em;color:#eaf2fbbf}.signin__input-wrap{position:relative;display:flex;align-items:center}.signin__input-icon{position:absolute;left:14px;display:inline-flex;font-size:1.15rem;color:#eaf2fb73;pointer-events:none}.signin__input{width:100%;height:50px;padding:0 14px 0 44px;font-size:.95rem;font-family:inherit;color:#fff;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:var(--radius);transition:border-color .18s ease,box-shadow .18s ease,background .18s ease;-webkit-appearance:none;-moz-appearance:none;appearance:none}.signin__input::placeholder{color:#eaf2fb59}.signin__input:hover{border-color:#ffffff2e}.signin__input:focus{outline:none;border-color:var(--primary);background:#ffffff12;box-shadow:0 0 0 3px #0e5fb247}.signin__input:-webkit-autofill,.signin__input:-webkit-autofill:hover,.signin__input:-webkit-autofill:focus{-webkit-text-fill-color:#fff;caret-color:#fff;-webkit-box-shadow:0 0 0 1000px #141e2f inset;box-shadow:0 0 0 1000px #141e2f inset;transition:background-color 9999s ease-out}.signin__input:-webkit-autofill:focus{-webkit-box-shadow:0 0 0 1000px #141e2f inset,0 0 0 3px rgba(14,95,178,.28);box-shadow:0 0 0 1000px #141e2f inset,0 0 0 3px #0e5fb247}.signin__input--pw{padding-right:46px}.signin__toggle{position:absolute;right:8px;display:grid;place-items:center;width:34px;height:34px;border:none;background:transparent;cursor:pointer;color:#eaf2fb80;font-size:1.15rem;border-radius:9px;transition:color .15s ease,background .15s ease}.signin__toggle:hover{color:#fff;background:#ffffff0f}.signin__toggle:focus-visible{outline:2px solid var(--primary);outline-offset:1px}.signin__error{display:flex;align-items:center;gap:9px;margin:0;padding:11px 13px;border-radius:var(--radius-sm);font-size:.85rem;line-height:1.35;background:#c02a1f24;border:1px solid rgba(255,120,110,.4);color:#ffb4ad}.signin__error svg{flex-shrink:0;font-size:1.1rem}.signin__form .btn{margin-top:4px}.signin__foot{margin-top:clamp(20px,3vw,28px);padding-top:18px;border-top:1px solid rgba(255,255,255,.08);display:flex;align-items:center;gap:9px;font-size:.8rem;color:#eaf2fb8c}.signin__pulse{position:relative;width:9px;height:9px;border-radius:50%;background:#22c55e;box-shadow:0 0 #22c55e80;animation:signin-pulse 2s ease-in-out infinite}@keyframes signin-pulse{0%{box-shadow:0 0 #22c55e80}70%{box-shadow:0 0 0 8px #22c55e00}to{box-shadow:0 0 #22c55e00}}@media (max-width: 1024px){.signin{grid-template-columns:1fr 1fr}}@media (max-width: 640px){.signin{grid-template-columns:1fr}.signin__scene{position:fixed;top:0;right:0;bottom:0;left:0;z-index:0}.signin__brand-content,.signin__scene-fade{display:none}.signin__scene:after{display:none}.signin__scene-overlay{background:linear-gradient(180deg,#040a169e,#040a16cc)}.signin__panel{position:relative;z-index:1;background:transparent;min-height:100vh;min-height:100dvh}.signin__card{background:#0c1422b8;-webkit-backdrop-filter:blur(24px) saturate(1.4);backdrop-filter:blur(24px) saturate(1.4)}}@media (prefers-reduced-motion: reduce){.signin__pulse,.signin__jet{animation:none!important}.signin__flare{animation:none!important;opacity:.7}.signin__card{animation-duration:.001ms}}.alert{display:flex;align-items:flex-start;gap:var(--sp-2);margin:0;padding:var(--sp-3);border:1px solid;border-radius:var(--radius-sm);font-size:var(--fs-sm)}.alert__icon{flex-shrink:0;display:inline-flex;line-height:1}.alert__body{flex:1;min-width:0}.alert__title{margin:0;font-weight:600}.alert__text{margin:0}.alert__title+.alert__text{margin-top:var(--sp-2)}.alert__action{flex-shrink:0}.alert__close{flex-shrink:0;display:grid;place-items:center;width:1.5rem;height:1.5rem;background:transparent;border:none;color:inherit;opacity:.7;cursor:pointer;border-radius:var(--radius-sm)}.alert__close:hover{opacity:1}.alert--info{background:var(--primary-soft);border-color:var(--primary);color:var(--primary)}.alert--success{background:var(--green-soft);border-color:var(--green);color:var(--green)}.alert--warning{background:var(--amber-soft);border-color:var(--amber);color:var(--amber)}.alert--error{background:var(--red-soft);border-color:var(--red);color:var(--red)}.alert--compact{padding:var(--space-2) var(--space-3);gap:var(--space-2);font-size:var(--fs-xs)}.alert--compact .alert__title{font-size:var(--fs-sm)}.alert--compact .alert__title+.alert__text{margin-top:.1rem}.page-head--flex{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--sp-4);flex-wrap:wrap}.photo-evidence{margin-top:var(--sp-6)}.photo-evidence__line{padding:var(--sp-4) 0;border-top:1px solid var(--border)}.photo-evidence__tool{margin:0 0 var(--sp-2);font-size:var(--fs-sm);color:var(--text-muted)}.photo-uploader{display:flex;flex-direction:column;gap:var(--sp-3)}.photo-uploader__label{margin:0;font-size:var(--fs-xs);font-weight:600;letter-spacing:.02em;color:var(--text-dim);text-transform:uppercase}.photo-drop{position:relative;display:flex;align-items:center;justify-content:center;min-height:84px;padding:var(--sp-4);text-align:center;background:var(--surface-2);border:1px dashed var(--border-strong);border-radius:var(--radius-sm);color:var(--text-muted);cursor:pointer;transition:border-color .15s,background .15s}.photo-drop:hover,.photo-drop--over{border-color:var(--cyan);background:var(--cyan-soft);color:var(--text)}.photo-drop__hint{font-size:var(--fs-sm)}.photo-drop__input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:var(--sp-2);margin:0;padding:0;list-style:none}.photo-thumb{position:relative;aspect-ratio:1;border-radius:var(--radius-sm);overflow:hidden;border:1px solid var(--border)}.photo-thumb__img{width:100%;height:100%;object-fit:cover;display:block}.photo-thumb__remove{position:absolute;top:4px;right:4px;width:22px;height:22px;display:flex;align-items:center;justify-content:center;border:none;border-radius:999px;background:#0009;color:#fff;font-size:var(--fs-h3);line-height:1;cursor:pointer}.photo-chips{display:flex;flex-wrap:wrap;gap:var(--sp-2);margin:0;padding:0;list-style:none}.photo-chip{display:inline-flex;align-items:center;gap:var(--sp-2);padding:.2rem var(--sp-2);font-size:var(--fs-xs);background:var(--green-soft);border:1px solid var(--border);border-radius:var(--radius-pill);color:var(--text)}.photo-chip__check{color:var(--green);font-weight:700}.shift-summary{display:flex;flex-direction:column;gap:var(--sp-4);margin-bottom:var(--sp-6)}.shift-alerts{display:flex;flex-direction:column;gap:var(--sp-2);margin:0;padding:0;list-style:none}.checkbox-inline{display:inline-flex;align-items:center;gap:var(--sp-2);font-size:var(--fs-body);color:var(--text);padding:var(--sp-2) 0}tr.is-overdue td{background:var(--red-soft)}.verify{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:var(--sp-6) var(--sp-4);background:var(--bg-0)}.verify__card{width:100%;max-width:420px;padding:var(--sp-6) var(--sp-6);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:0 12px 40px #0000001f}.verify__brand{display:flex;align-items:center;gap:var(--sp-2);margin-bottom:var(--sp-4)}.verify__brand-name{font-weight:700;letter-spacing:.02em;color:var(--text)}.verify__title{margin:0 0 var(--sp-4);font-size:var(--fs-h2);color:var(--text)}.verify__muted{color:var(--text-muted)}.verify__list{margin:0;display:flex;flex-direction:column;gap:.15rem}.verify__row{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-4);padding:var(--sp-2) 0;border-bottom:1px solid var(--border)}.verify__row dt{font-size:var(--fs-sm);color:var(--text-dim);text-transform:uppercase;letter-spacing:.03em}.verify__row dd{margin:0;font-weight:600;color:var(--text);text-align:right}.verify__hash{font-family:var(--font-mono);font-size:var(--fs-sm)}.verify__footer{margin:var(--sp-4) 0 0;font-size:var(--fs-xs);color:var(--text-dim);text-align:center}.offline-ind{position:relative}.offline-ind--online{color:var(--green)}.offline-ind--syncing{color:var(--amber)}.offline-ind--offline{color:var(--red)}.offline-badge{position:absolute;top:-2px;right:-2px;min-width:1.05rem;height:1.05rem;padding:0 var(--sp-1);display:grid;place-items:center;font-size:var(--fs-mono);font-weight:700;line-height:1;color:#fff;background:var(--amber);border-radius:var(--radius-pill)}.popover--offline{width:300px;padding:var(--sp-2)}.offline-panel__head{display:flex;align-items:center;gap:var(--sp-2);padding:.2rem var(--sp-1) var(--sp-2)}.offline-panel__title{font-weight:700;font-size:var(--fs-body)}.offline-dot{width:.6rem;height:.6rem;border-radius:50%;flex:none}.offline-dot--online{background:var(--green)}.offline-dot--syncing{background:var(--amber)}.offline-dot--offline{background:var(--red)}.offline-panel__line{margin:0 0 var(--sp-2);padding:0 var(--sp-1);font-size:var(--fs-sm);color:var(--text-muted);line-height:1.4}.offline-panel__stats{display:flex;gap:var(--sp-2);margin-bottom:var(--sp-2)}.offline-panel__stats>div{flex:1;display:flex;flex-direction:column;align-items:center;gap:.1rem;padding:var(--sp-2);background:var(--surface-2);border-radius:var(--radius-sm)}.offline-panel__stats strong{font-size:var(--fs-h2);font-weight:700}.offline-panel__stats span{font-size:var(--fs-xs);color:var(--text-dim);text-transform:uppercase;letter-spacing:.04em}.offline-panel__list{list-style:none;margin:0 0 var(--sp-2);padding:0;max-height:220px;overflow-y:auto;display:flex;flex-direction:column;gap:var(--sp-1)}.offline-item{display:flex;flex-direction:column;gap:.15rem;padding:var(--sp-2) var(--sp-2);border-radius:var(--radius-sm);background:var(--surface-2);border-left:3px solid var(--amber)}.offline-item--failed{border-left-color:var(--red)}.offline-item__label{font-size:var(--fs-sm);font-weight:600}.offline-item__state{font-size:var(--fs-xs);color:var(--text-dim)}.offline-item--failed .offline-item__state{color:var(--red)}.offline-panel__sync{width:100%;padding:var(--sp-2);font-size:var(--fs-sm);font-weight:600;color:var(--on-primary);background:var(--primary);border:none;border-radius:var(--radius-sm);transition:background var(--t-fast)}.offline-panel__sync:hover:not(:disabled){background:var(--primary-hover)}.offline-panel__sync:disabled{opacity:.5;cursor:not-allowed}.install-banner{position:fixed;left:50%;bottom:1rem;transform:translate(-50%);z-index:var(--z-toast);display:flex;align-items:center;gap:var(--sp-3);width:min(560px,calc(100vw - 2rem));padding:var(--sp-3) var(--sp-4);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);animation:pop-in .18s ease both}.install-banner__logo{display:grid;place-items:center;width:2.6rem;height:2.6rem;color:var(--primary);background:var(--primary-soft);border-radius:var(--radius);flex:none}.install-banner__text{display:flex;flex-direction:column;gap:.1rem;flex:1}.install-banner__text strong{font-size:var(--fs-body)}.install-banner__text span{font-size:var(--fs-xs);color:var(--text-muted);line-height:1.35}.install-banner__actions{display:flex;gap:var(--sp-2);flex:none}.install-banner__dismiss,.install-banner__install{padding:var(--sp-2) var(--sp-3);font-size:var(--fs-sm);font-weight:600;border-radius:var(--radius-sm);transition:background var(--t-fast)}.install-banner__dismiss{color:var(--text-muted);background:transparent;border:1px solid var(--border)}.install-banner__dismiss:hover{background:var(--surface-2)}.install-banner__install{color:var(--on-primary);background:var(--primary);border:none}.install-banner__install:hover{background:var(--primary-hover)}@media (max-width: 560px){.install-banner{flex-wrap:wrap}.install-banner__actions{width:100%;justify-content:flex-end}}.ac{position:relative}.ac__control{position:relative;display:flex;align-items:center}.ac__icon{position:absolute;left:.6rem;display:inline-flex;color:var(--text-dim);pointer-events:none}.ac__icon svg{width:15px;height:15px}.ac__input{padding-left:var(--sp-8);padding-right:var(--sp-8);width:100%}.ac__clear,.ac__caret{position:absolute;right:.5rem;display:inline-flex;align-items:center;color:var(--text-dim)}.ac__clear{background:transparent;border:none;cursor:pointer}.ac__clear:hover{color:var(--text)}.ac__caret{pointer-events:none}.ac__clear svg,.ac__caret svg{width:14px;height:14px}.ac__dropdown{position:absolute;z-index:var(--z-modal);top:calc(100% + 4px);left:0;right:0;background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius);box-shadow:var(--shadow-lg);overflow:hidden}.ac__list{list-style:none;margin:0;padding:var(--sp-1);max-height:280px;overflow-y:auto}.ac__section{padding:var(--sp-2) var(--sp-2) var(--sp-1);font-family:var(--font-mono);font-size:var(--fs-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--text-dim)}.ac__option{display:flex;flex-direction:column;gap:1px;padding:var(--sp-2) var(--sp-2);border-radius:var(--radius-sm);cursor:pointer}.ac__option.is-active{background:var(--primary-soft)}.ac__option-label{font-size:var(--fs-body);color:var(--text)}.ac__option-sub{font-size:var(--fs-xs);color:var(--text-dim)}.ac__empty{display:flex;flex-direction:column;gap:var(--sp-2);padding:var(--sp-3) var(--sp-2);font-size:var(--fs-sm);color:var(--text-muted)}.ac__hint{padding:var(--sp-2);font-size:var(--fs-sm);color:var(--text-dim)}.ac__create{align-self:flex-start;padding:var(--sp-1) var(--sp-2);font-size:var(--fs-sm);font-weight:600;color:var(--primary);background:var(--primary-soft);border:1px solid var(--primary-border);border-radius:var(--radius-sm);cursor:pointer;text-decoration:none}.ac__create:hover{background:var(--primary-soft);filter:brightness(1.05)}.ac__loading{display:flex;flex-direction:column;gap:var(--sp-1);padding:var(--sp-2) var(--sp-2)}.ac__skeleton{height:14px;border-radius:var(--radius-sm);background:linear-gradient(90deg,var(--skeleton-1),var(--skeleton-2),var(--skeleton-1));background-size:200% 100%;animation:ac-shimmer 1.2s infinite}.ac__skeleton:nth-child(2){width:70%}.ac__skeleton:nth-child(3){width:50%}@keyframes ac-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.dt{display:flex;flex-direction:column;gap:var(--sp-3)}.dt__toolbar{display:flex;align-items:center;gap:var(--sp-2);flex-wrap:wrap}.dt__toolbar-spacer{flex:1 1 auto}.dt__search{position:relative;flex:0 1 280px}.dt__search-icon{position:absolute;left:.6rem;top:50%;transform:translateY(-50%);color:var(--text-dim);display:inline-flex;pointer-events:none}.dt__search-icon svg{width:15px;height:15px}.dt__search-input{padding-left:var(--sp-8);width:100%}.dt__tool-btn{display:inline-flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);font-size:var(--fs-sm);color:var(--text-muted);background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius-sm);cursor:pointer;transition:border-color var(--t-fast),color var(--t-fast)}.dt__tool-btn:hover{border-color:var(--primary);color:var(--primary)}.dt__tool-btn svg{width:14px;height:14px}.dt__menu-wrap{position:relative}.dt__menu{position:absolute;right:0;top:calc(100% + 4px);z-index:var(--z-modal);min-width:180px;padding:var(--sp-2);background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius);box-shadow:var(--shadow-lg)}.dt__menu-item{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-2);font-size:var(--fs-sm);color:var(--text);border-radius:var(--radius-sm);cursor:pointer}.dt__menu-item:hover{background:var(--surface-2)}.dt__bulk{display:inline-flex;align-items:center;gap:var(--sp-2);padding:var(--sp-1) var(--sp-2);background:var(--primary-soft);border:1px solid var(--primary-border);border-radius:var(--radius-sm)}.dt__bulk-count{font-size:var(--fs-sm);color:var(--primary);font-weight:600}.dt__scroll{overflow-x:auto}.dt__table thead th{position:sticky;top:0;z-index:1}.dt__check-col{width:2.2rem;text-align:center}.dt__filter-row th{padding:var(--sp-1) var(--sp-2);background:var(--surface-2)}.dt__filter-input{width:100%;padding:var(--sp-1) var(--sp-2);font-size:var(--fs-xs)}.dt__filter-range{display:flex;gap:var(--sp-1)}.row-action--danger{color:var(--red);border-color:var(--red-soft)}.row-action--danger:hover:not(:disabled){border-color:var(--red);color:var(--red)}.dt__footer{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:var(--sp-2)}.dt__count{font-size:var(--fs-sm);color:var(--text-muted)}.dt__pager{display:flex;align-items:center;gap:var(--sp-2)}.dt__size{display:inline-flex;align-items:center;gap:var(--sp-2);font-size:var(--fs-xs);color:var(--text-muted)}.dt__size select{width:auto;padding:var(--sp-1) var(--sp-6) var(--sp-1) var(--sp-2)}.dt__page-btn{display:inline-flex;padding:var(--sp-1);color:var(--text-muted);background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius-sm);cursor:pointer}.dt__page-btn:disabled{opacity:.4;cursor:not-allowed}.dt__page-btn svg{width:15px;height:15px}.dt__page-info{display:inline-flex;align-items:center;gap:var(--sp-2);font-size:var(--fs-sm);color:var(--text-muted)}.dt__page-input{width:3rem;padding:var(--sp-1) var(--sp-2);text-align:center}.palette__group{padding:.15rem 0}.palette__group+.palette__group{border-top:1px solid var(--border);margin-top:var(--sp-1);padding-top:var(--sp-2)}.palette__group-label{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3) var(--sp-1);font-size:var(--fs-xs);font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--text-dim)}.palette__group-icon{font-size:var(--fs-h3)}.palette__item-icon{flex:none;font-size:var(--fs-h3);color:var(--text-muted)}.palette__item-hint{flex:none;font-size:var(--fs-xs);color:var(--text-dim);padding:.05rem var(--sp-2);border:1px solid var(--border);border-radius:var(--radius-pill)}.palette__searching{padding:var(--sp-2) var(--sp-3);font-size:var(--fs-sm);color:var(--text-muted)}.palette__foot{display:flex;align-items:center;gap:var(--sp-1);padding:var(--sp-2) var(--sp-4);border-top:1px solid var(--border);background:var(--surface-2);color:var(--text-dim);font-size:var(--fs-label)}.palette__foot kbd{font-family:var(--font-mono);font-size:var(--fs-label);letter-spacing:.02em;padding:.05rem var(--sp-1);border:1px solid var(--border-strong);border-radius:4px;color:var(--text-muted);background:var(--bg-1)}.skeleton-card{display:flex;flex-direction:column;gap:var(--sp-2);padding:var(--sp-4) var(--sp-4);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius)}.skeleton-card__title{margin-bottom:.2rem}.skeleton-text{display:flex;flex-direction:column;gap:var(--sp-2)}.row--pending{position:relative}.row--pending:after{content:"";position:absolute;left:4px;top:50%;width:7px;height:7px;margin-top:-3.5px;border-radius:50%;background:var(--cyan);animation:pulse-dot 1s ease-in-out infinite}@keyframes pulse-dot{0%,to{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.6)}}.row--success{animation:row-fade .6s ease both}@keyframes row-fade{0%{background:var(--green-soft)}to{background:transparent}}.row--error{animation:row-shake .4s ease both}@keyframes row-shake{0%,to{transform:translate(0)}20%{transform:translate(-5px)}40%{transform:translate(5px)}60%{transform:translate(-3px)}80%{transform:translate(3px)}}.autosave-note{display:inline-flex;align-items:center;gap:var(--sp-2);font-size:var(--fs-xs);color:var(--text-dim)}.autosave-note__dot{width:6px;height:6px;border-radius:50%;background:var(--green)}.dash-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:var(--space-4);margin-bottom:var(--space-5)}.dash-head__actions{display:flex;flex-wrap:wrap;gap:var(--space-2)}.dash-kpis{margin-bottom:var(--space-5)}.dash-widgets{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:var(--space-4);margin-bottom:var(--space-5)}.dash-racks{margin-top:var(--space-5)}.dash-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-3)}.dash-attention{display:flex;flex-direction:column;gap:var(--space-2)}.dash-list__item{display:flex;align-items:center;gap:var(--space-3)}.dash-list__body{display:flex;flex-direction:column;gap:.1rem;min-width:0;flex:1}.dash-list__title{font-size:var(--fs-sm);font-weight:600;color:var(--text)}.dash-list__meta{font-size:var(--fs-xs);color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dash-list__skel{display:block;height:2.2rem;width:100%;border-radius:var(--radius-sm)}.dash-empty{margin:0;padding:var(--space-3) 0;font-size:var(--fs-sm);color:var(--text-muted)}.dash-link{font-size:var(--fs-sm);font-weight:600;color:var(--primary);text-decoration:none;white-space:nowrap}.dash-link:hover{text-decoration:underline}.dash-dot{flex:none;width:8px;height:8px;border-radius:50%;background:var(--text-dim)}.dash-dot--cyan{background:var(--cyan)}.dash-dot--amber{background:var(--amber)}.dash-dot--red{background:var(--red)}.dash-occ{display:flex;align-items:center;gap:var(--space-2);flex:none}.dash-occ__bar{width:72px;height:6px;border-radius:var(--radius-pill);background:var(--surface-3);overflow:hidden}.dash-occ__fill{display:block;height:100%;border-radius:var(--radius-pill);background:var(--amber)}.dash-occ__val{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--text-muted);min-width:2.5rem;text-align:right}.cmp-hero{display:flex;align-items:center;gap:var(--sp-6);flex-wrap:wrap}.cmp-hero__gauge{flex:0 0 auto}.cmp-hero__meta{display:flex;flex-direction:column;gap:var(--sp-2);align-items:flex-start}.cmp-breakdown{display:flex;flex-direction:column;gap:var(--sp-3)}.cmp-bar{display:grid;grid-template-columns:9rem 1fr 2.5rem;align-items:center;gap:var(--sp-3)}.cmp-bar__label{font-size:var(--fs-sm);color:var(--text-muted)}.cmp-bar__track{height:.6rem;background:var(--bg-1);border:1px solid var(--border);border-radius:var(--radius-sm);overflow:hidden}.cmp-bar__fill{display:block;height:100%;min-width:2px;border-radius:inherit;transition:width var(--t)}.cmp-bar__count{font-family:var(--font-mono);font-size:var(--fs-sm);text-align:right;font-variant-numeric:tabular-nums}.cmp-summary{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);flex-wrap:wrap}.not-found{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:var(--space-6);background:var(--bg-0)}.not-found__card{width:min(420px,100%);display:flex;flex-direction:column;align-items:center;text-align:center;gap:var(--space-3);padding:var(--space-8) var(--space-6);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg)}.not-found__logo{color:var(--primary);margin-bottom:var(--space-2)}.not-found__code{font-size:3.5rem;font-weight:700;line-height:var(--lh-tight);color:var(--primary);letter-spacing:-.02em}.not-found__title{margin:0;font-size:var(--fs-h1);font-weight:700;color:var(--text)}.not-found__hint{margin:0 0 var(--space-2);font-size:var(--fs-body);color:var(--text-muted);line-height:var(--lh-body)}@media (prefers-reduced-motion: reduce){body,.card--interactive,.module-card--active{transition-duration:.01ms}.card--interactive:hover,.module-card--active:hover{transform:none}.modal-overlay,.modal{animation:none}.toast{animation-duration:.01ms}}html,body{overflow-x:clip;max-width:100%}#root{max-width:100vw;overflow-x:clip}img,svg,video,canvas,table{max-width:100%}img,video{height:auto}pre,code{overflow-wrap:anywhere;word-break:break-word}svg[viewBox]{height:auto}body{font-size:var(--fs-body);line-height:var(--lh-body)}.content,.content__inner{min-width:0}.mono,.data-num,.dt__table td .mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums;letter-spacing:-.01em}.container{width:100%;max-width:var(--content-max);margin-inline:auto;padding-inline:var(--gutter)}@media (min-width: 768px){.container{padding-inline:var(--gutter-lg)}}.list-head{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:var(--space-3);margin-bottom:var(--space-5)}.list-head__titles{min-width:0}.list-head__title{margin:0;font-size:var(--fs-h1);letter-spacing:-.02em}.list-head__sub{margin:var(--space-1) 0 0;color:var(--text-muted);font-size:var(--fs-sm)}.list-head__sub .data-num{color:var(--text);font-weight:600}.list-head__actions{display:flex;flex-wrap:wrap;gap:var(--space-2)}@media (max-width: 560px){.list-head__actions{width:100%}.list-head__actions>*{flex:1 1 auto;justify-content:center}}.topbar__icon-btn,.usermenu__trigger{min-width:var(--tap);min-height:var(--tap)}.modal__close{min-width:var(--tap);min-height:var(--tap);display:inline-flex;align-items:center;justify-content:center}@media (max-width: 768px){.row-action,.dt__tool-btn,.dt__page-btn,.btn,.field__input,input,select,textarea{min-height:var(--tap)}}@media (min-width: 1025px) and (max-width: 1280px){.topbar__search{width:min(300px,28vw);min-width:220px}}@media (max-width: 1024px){.shell,.shell--collapsed{grid-template-columns:minmax(0,1fr);grid-template-areas:"topbar" "content"}.topbar__burger{display:grid}.topbar__search{display:none}.sidebar{position:fixed;top:var(--topbar-h);left:0;width:min(86vw,var(--sidebar-w));height:calc(100dvh - var(--topbar-h));transform:translate(-105%);transition:transform var(--motion);z-index:var(--z-sidebar);box-shadow:var(--shadow-lg);overflow-y:auto}.shell--mobile-open .sidebar{transform:translate(0)}.shell--collapsed .topbar__wordmark,.shell--collapsed .navitem__label,.shell--collapsed .navgroup__label span,.shell--collapsed .sidebar__collapse-text{display:revert}.shell--collapsed .navitem,.shell--collapsed .navgroup__label,.shell--collapsed .sidebar__collapse{justify-content:flex-start;padding:var(--space-2) var(--space-2)}.shell--mobile-open .sidebar__backdrop{display:block;position:fixed;inset:var(--topbar-h) 0 0;background:var(--overlay);z-index:calc(var(--z-sidebar) - 1)}.content__inner{padding:var(--space-5) var(--gutter-lg) var(--space-10)}}@media (max-width: 768px){.content__inner{padding:var(--space-4) var(--gutter) var(--space-10)}.topbar{gap:var(--space-2)}.topbar__brand-sub,.usermenu__meta{display:none}.usermenu__trigger{gap:var(--space-1);padding:var(--space-1)}}@media (max-width: 400px){:root{--fs-display: 2rem;--fs-h1: 1.5rem}.content__inner{padding:var(--space-3) var(--space-3) var(--space-10)}.topbar__wordmark{display:none}.topbar__right{gap:var(--space-1)}}@media (max-width: 768px){.dt__scroll,.table-scroll{overflow:visible}.data-table{border-collapse:separate;border-spacing:0;width:100%}.data-table thead{display:none}.data-table,.data-table tbody{display:block;width:100%}.data-table tbody tr{display:block;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:var(--space-2) var(--space-3);margin-bottom:var(--space-3)}.data-table tbody td{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);width:auto;padding:var(--space-2) 0;border:none;border-bottom:1px solid var(--border);text-align:right!important;white-space:normal;word-break:break-word}.data-table tbody td:last-child{border-bottom:none}.data-table tbody td[data-label]:not([data-label=""]):before{content:attr(data-label);flex:0 0 auto;margin-right:var(--space-3);font-size:var(--fs-label);font-weight:600;letter-spacing:.02em;text-transform:uppercase;color:var(--text-dim);text-align:left}.data-table tbody td.dt__check-col,.data-table tbody td.data-table__actions{justify-content:flex-end}.data-table tbody td.data-table__empty{justify-content:center;text-align:center!important}.data-table tbody td.data-table__actions{flex-wrap:wrap;gap:var(--space-2);padding-top:var(--space-3)}.data-table tbody td.data-table__actions .row-action{flex:1 1 auto;text-align:center}.dt__toolbar{gap:var(--space-2)}.dt__search{flex:1 1 100%}.dt__footer{justify-content:center;gap:var(--space-3)}}.stat-grid,.module-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr))}.wizard{width:100%;max-width:var(--wizard-max);margin-inline:auto;display:flex;flex-direction:column;gap:var(--space-5)}.wizard__head{display:flex;flex-direction:column;gap:var(--space-3)}.wizard__topbar{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3)}.wizard__title{margin:0;font-size:var(--fs-h2);letter-spacing:-.02em}.wizard__cancel{display:inline-flex;align-items:center;justify-content:center;min-width:var(--tap);min-height:var(--tap);color:var(--text-muted);background:transparent;border:1px solid var(--border);border-radius:var(--radius-sm)}.wizard__cancel:hover{color:var(--text);border-color:var(--border-strong)}.wizard__steps{display:flex;align-items:center;gap:var(--space-1);list-style:none;margin:0;padding:0}.wizard__step{display:flex;align-items:center;gap:var(--space-2);flex:1 1 0;min-width:0}.wizard__step-dot{flex:none;display:grid;place-items:center;width:30px;height:30px;border-radius:var(--radius-pill);background:var(--surface-2);border:1.5px solid var(--border-strong);color:var(--text-muted);font-size:var(--fs-sm);font-weight:600;font-variant-numeric:tabular-nums;transition:background var(--motion-fast),border-color var(--motion-fast),color var(--motion-fast)}.wizard__step-label{font-size:var(--fs-sm);color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.wizard__step-line{flex:1 1 auto;height:2px;min-width:12px;background:var(--border-strong);border-radius:2px}.wizard__step.is-active .wizard__step-dot{background:var(--primary);border-color:var(--primary);color:var(--on-primary);box-shadow:var(--ring)}.wizard__step.is-active .wizard__step-label{color:var(--text);font-weight:600}.wizard__step.is-done .wizard__step-dot{background:var(--green);border-color:var(--green);color:#fff}.wizard__step.is-done~.wizard__step .wizard__step-line{background:var(--border-strong)}.wizard__step.is-active .wizard__step-line,.wizard__step.is-done .wizard__step-line{background:var(--primary)}.wizard__progress{display:none}.wizard__progress-track{height:6px;background:var(--surface-3);border-radius:var(--radius-pill);overflow:hidden}.wizard__progress-fill{height:100%;background:var(--primary);border-radius:var(--radius-pill);transition:width var(--motion)}.wizard__progress-meta{display:flex;justify-content:space-between;margin-bottom:var(--space-2);font-size:var(--fs-sm)}.wizard__progress-step{color:var(--text);font-weight:600}.wizard__progress-count{color:var(--text-muted);font-variant-numeric:tabular-nums}.wizard__panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:var(--space-6);animation:wizard-in var(--motion) both}@media (max-width: 560px){.wizard__panel{padding:var(--space-4)}}.wizard__panel-head{margin-bottom:var(--space-4)}.wizard__panel-title{margin:0;font-size:var(--fs-h3);font-weight:700}.wizard__panel-desc{margin:var(--space-1) 0 0;color:var(--text-muted);font-size:var(--fs-sm)}.wizard__fields{display:flex;flex-direction:column;gap:var(--space-4)}@keyframes wizard-in{0%{opacity:0;transform:translate(12px)}}@media (prefers-reduced-motion: reduce){.wizard__panel{animation:none}}.wizard__actions{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3)}.wizard__actions .wizard__spacer{flex:1 1 auto}@media (max-width: 768px){.wizard__actions{position:sticky;bottom:0;background:linear-gradient(to top,var(--bg-0) 70%,transparent);padding:var(--space-3) 0 calc(var(--space-3) + var(--safe-b));margin-top:var(--space-2)}.wizard__actions .btn{flex:1 1 auto;justify-content:center}}.wizard__review{display:flex;flex-direction:column;gap:var(--space-4)}.wizard__review-group{border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.wizard__review-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-3) var(--space-4);background:var(--surface-2);border-bottom:1px solid var(--border)}.wizard__review-head h4{margin:0;font-size:var(--fs-sm)}.wizard__review-edit{font-size:var(--fs-sm);color:var(--primary);background:transparent;border:none;padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm)}.wizard__review-edit:hover{background:var(--primary-soft)}.wizard__review-row{display:flex;justify-content:space-between;gap:var(--space-4);padding:var(--space-2) var(--space-4);font-size:var(--fs-sm)}.wizard__review-row+.wizard__review-row{border-top:1px solid var(--border)}.wizard__review-row dt{color:var(--text-muted);margin:0}.wizard__review-row dd{margin:0;color:var(--text);text-align:right;font-weight:500}@media (max-width: 768px){.wizard__steps{display:none}.wizard__progress{display:block}}.notif-badge{position:absolute;top:4px;right:4px;display:grid;place-items:center;min-width:1.1rem;height:1.1rem;padding:0 .3rem;border-radius:var(--radius-pill);background:var(--red);color:#fff;font-size:.65rem;font-weight:700;line-height:1}.topbar__icon-btn{position:relative}.notif-drawer-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--z-modal);background:var(--overlay);animation:modal-overlay-in var(--motion) both}.notif-drawer{position:fixed;top:0;right:0;bottom:0;z-index:calc(var(--z-modal) + 1);width:min(400px,100vw);max-width:100vw;display:flex;flex-direction:column;background:var(--surface);border-left:1px solid var(--border-strong);box-shadow:-24px 0 60px #00000040;animation:notif-drawer-in var(--motion) both}@keyframes notif-drawer-in{0%{transform:translate(100%)}}@media (max-width: 768px){.notif-drawer{width:100vw}}.notif-drawer__head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--sp-3);padding:var(--sp-4);border-bottom:1px solid var(--border)}.notif-drawer__title{margin:0;font-family:var(--font-mono);font-size:var(--fs-h3);color:var(--text)}.notif-drawer__head-actions{display:flex;align-items:center;gap:var(--sp-2);flex:none}.notif-drawer__mark-all{padding:var(--sp-1) var(--sp-2);background:transparent;border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--primary);font-size:var(--fs-xs);white-space:nowrap}.notif-drawer__mark-all:hover{background:var(--surface-2);border-color:var(--border-strong)}.notif-drawer__tabs{display:flex;gap:var(--sp-1);padding:var(--sp-3) var(--sp-4) 0;overflow-x:auto}.notif-drawer__tab{flex:none;padding:var(--sp-2) var(--sp-3);background:transparent;border:none;border-bottom:2px solid transparent;color:var(--text-muted);font-size:var(--fs-sm);font-weight:600;white-space:nowrap}.notif-drawer__tab.is-active{color:var(--primary);border-bottom-color:var(--primary)}.notif-drawer__list{flex:1;overflow-y:auto;padding:var(--sp-3) var(--sp-4) var(--sp-6)}.notif-item{display:flex;align-items:flex-start;gap:var(--sp-3);padding:var(--sp-3) 0;border-bottom:1px solid var(--border)}.notif-item--read{opacity:.55}.notif-item__icon{flex:none;display:grid;place-items:center;width:2rem;height:2rem;border-radius:50%;font-size:var(--fs-body)}.notif-item--info .notif-item__icon{background:var(--cyan-soft);color:var(--cyan)}.notif-item--warning .notif-item__icon{background:var(--amber-soft);color:var(--amber)}.notif-item--critical .notif-item__icon{background:var(--red-soft);color:var(--red)}.notif-item__body{flex:1;min-width:0}.notif-item__title{font-weight:600;font-size:var(--fs-sm);color:var(--text)}.notif-item__text{margin-top:.15rem;font-size:var(--fs-sm);color:var(--text-muted);overflow-wrap:break-word}.notif-item__meta{margin-top:var(--sp-1);font-size:var(--fs-xs);color:var(--text-dim)}.notif-item__actions{display:flex;gap:var(--sp-2);margin-top:var(--sp-2)}.notif-item__action{padding:.2rem var(--sp-2);background:transparent;border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--primary);font-size:var(--fs-xs)}.notif-item__action:hover:not(:disabled){background:var(--surface-2);border-color:var(--border-strong)}.notif-item__action:disabled{color:var(--text-dim);cursor:default}.notif-item__delete{flex:none;display:grid;place-items:center;width:1.75rem;height:1.75rem;background:transparent;border:none;border-radius:var(--radius-sm);color:var(--text-dim)}.notif-item__delete:hover{background:var(--surface-2);color:var(--text)}.import-drawer__body{flex:1;overflow-y:auto;padding:var(--sp-4);display:flex;flex-direction:column;gap:var(--sp-3)}.import-drawer__status{margin:0;font-size:var(--fs-sm);color:var(--text-muted)}.import-drawer__error{display:flex;flex-direction:column;gap:var(--sp-2)}.import-drawer__error-line{margin:0;font-size:var(--fs-sm);line-height:1.5}.import-drawer__error-label{display:block;font-size:var(--fs-xs);font-weight:600;letter-spacing:.04em;text-transform:uppercase;opacity:.7}.import-drawer__rows{margin:0;padding:0 var(--sp-4) var(--sp-3);list-style:none;display:flex;flex-direction:column}.import-drawer__empty{padding:var(--sp-3) 0;font-size:var(--fs-sm);color:var(--text-dim)}.import-drawer__foot{padding:var(--sp-4);border-top:1px solid var(--border);display:flex;justify-content:flex-end}.import-drawer__photos{display:flex;flex-direction:column;gap:var(--sp-2)}.import-drawer__photos-pick{align-self:flex-start;padding:var(--sp-2) var(--sp-3);border:1px dashed var(--border);border-radius:var(--radius-sm);background:transparent;color:var(--text);font:inherit;font-size:var(--fs-sm);cursor:pointer}.import-drawer__photos-pick:hover:not(:disabled){border-color:var(--primary);color:var(--primary)}.import-drawer__photos-hint{margin:0;font-size:var(--fs-xs);color:var(--text-dim)}.import-report__missing{margin:var(--sp-2) 0 0;font-size:var(--fs-xs);color:var(--warning, var(--text-dim));overflow-wrap:anywhere}.employee-photo{display:flex;flex-direction:column;gap:var(--sp-3);align-items:flex-start}.employee-photo__img{width:96px;height:96px;object-fit:cover;border-radius:var(--radius-sm);border:1px solid var(--border-strong);display:block}.employee-photo__zoom{padding:0;border:0;background:none;border-radius:var(--radius-sm);cursor:zoom-in;line-height:0}.employee-photo__zoom:hover .employee-photo__img,.employee-photo__zoom:focus-visible .employee-photo__img{border-color:var(--primary)}.employee-photo__full{display:grid;place-items:center}.employee-photo__full img{max-width:100%;max-height:min(70vh,640px);object-fit:contain;border-radius:var(--radius-sm)}.employee-photo__placeholder{display:grid;place-items:center;width:96px;height:96px;border-radius:var(--radius-sm);border:1px dashed var(--border-strong);background:var(--surface-2);color:var(--text-dim);font-size:var(--fs-xs);text-align:center;padding:var(--sp-2)}.tool-photo{display:flex;flex-direction:column;gap:var(--sp-3);align-items:flex-start}.tool-photo__img{width:96px;height:96px;object-fit:cover;border-radius:var(--radius-sm);border:1px solid var(--border-strong)}.tool-photo__placeholder{display:grid;place-items:center;width:96px;height:96px;border-radius:var(--radius-sm);border:1px dashed var(--border-strong);background:var(--surface-2);color:var(--text-dim);font-size:var(--fs-xs);text-align:center;padding:var(--sp-2)}.tool-photo-thumb{width:32px;height:32px;object-fit:cover;border-radius:var(--radius-sm);border:1px solid var(--border-strong);flex-shrink:0}.op-step{display:flex;flex-direction:column;gap:var(--sp-3);min-width:0}.op-step__summary{display:flex;flex-direction:column;align-items:flex-start;gap:var(--sp-2)}.aircraft-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(220px,100%),1fr));grid-auto-rows:1fr;gap:var(--card-gap);min-width:0}@media (max-width: 640px){.aircraft-grid{grid-template-columns:1fr}}.aircraft-card{display:flex;flex-direction:column;align-items:flex-start;gap:var(--sp-3);min-width:0;width:100%;height:100%;min-height:clamp(200px,20vh,280px);padding:clamp(20px,2vw,32px);border:1px solid var(--border-strong);border-radius:var(--radius-lg);background:var(--surface-2);color:inherit;text-align:left;cursor:pointer;transition:border-color var(--motion),box-shadow var(--motion),transform var(--motion)}.aircraft-card:hover{border-color:var(--primary-border);box-shadow:var(--shadow);transform:translateY(-2px)}.aircraft-card--selected{border-color:var(--primary);box-shadow:var(--shadow-lg),inset 0 0 0 1px var(--primary-border)}.aircraft-card__head{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);width:100%;min-width:0}.aircraft-card__icon{flex-shrink:0;color:var(--primary);font-size:22px}.aircraft-card__code{flex:1 1 auto;min-width:0;max-width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-size:clamp(28px,3vw,44px);line-height:1.1;font-weight:700;letter-spacing:-.02em}.aircraft-card__check{flex-shrink:0;color:var(--primary);font-weight:700}.aircraft-card__meta{display:flex;flex-direction:column;gap:2px;font-size:var(--fs-sm);color:var(--text-muted)}.aircraft-card__barcode{width:100%;max-width:100%;overflow:hidden;padding:var(--sp-2) 0}.aircraft-card__select{align-self:stretch;margin-top:auto;width:100%;padding:var(--sp-3) var(--sp-4);border-radius:var(--radius-sm);background:var(--primary-soft);font-size:var(--fs-sm);font-weight:600;text-align:center;text-transform:uppercase;letter-spacing:.05em;color:var(--primary);transition:background-color var(--motion),color var(--motion)}.aircraft-card--selected .aircraft-card__select{background:var(--primary);color:var(--on-primary)}.barcode-label{display:flex;flex-direction:column;align-items:flex-start;gap:2px;max-width:100%}.barcode-label__svg{width:100%;max-width:200px;height:auto}.barcode-label__title{font-size:var(--fs-xs);color:var(--text-muted)}.barcode-label__value{font-family:ui-monospace,monospace;font-size:var(--fs-xs);color:var(--text-dim);word-break:break-all}.barcode-label__sub{font-size:var(--fs-xs);color:var(--text-muted)}.signature-pad{display:flex;flex-direction:column;gap:var(--sp-2);width:100%;min-width:0}.signature-pad__label{font-size:var(--fs-sm);color:var(--text-muted)}.signature-pad__canvas{width:100%;max-width:100%;display:block;border:1px dashed var(--border-strong);border-radius:var(--radius-sm);background:#fff;touch-action:none;cursor:crosshair}.signature-pad__actions{display:flex;justify-content:flex-end}.op-shell{--op-bar-h: 60px;min-height:100vh;min-height:100dvh;display:grid;grid-template-rows:var(--op-bar-h) 1fr;background:var(--bg-0)}.op-shell__bar{grid-row:1;position:sticky;top:0;z-index:var(--z-topbar);display:flex;align-items:center;gap:var(--sp-4);padding:0 clamp(20px,3vw,40px);min-width:0;background:var(--bg-1);border-bottom:1px solid var(--border-strong)}.op-shell__brand{display:flex;align-items:center;gap:var(--sp-2);min-width:0;flex:none}.op-shell__logo{display:grid;place-items:center;color:var(--primary);flex:none}.op-shell__wordmark{display:flex;flex-direction:column;line-height:1.05;min-width:0}.op-shell__brand-name{font-weight:700;font-size:var(--fs-h3);letter-spacing:-.01em}.op-shell__brand-by{font-family:var(--font-mono);font-size:var(--fs-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--text-dim)}.op-shell__title{margin:0;flex:1 1 auto;min-width:0;text-align:center;font-size:var(--fs-h2);font-weight:700;letter-spacing:-.01em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.op-shell__right{display:flex;align-items:center;gap:var(--sp-3);flex:none;margin-left:auto}.op-shell__clock{font-family:var(--font-mono);font-size:var(--fs-h3);font-weight:600;color:var(--text-muted);font-variant-numeric:tabular-nums}.op-shell__end{display:inline-flex;align-items:center;min-height:48px;padding:0 var(--sp-4);border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface-2);color:var(--text);font-family:inherit;font-size:var(--fs-body);font-weight:600;cursor:pointer;transition:border-color var(--t-fast),background var(--t-fast)}.op-shell__end:hover{border-color:var(--red);color:var(--red)}.op-shell__main{grid-row:2;min-width:0;min-height:calc(100vh - var(--op-bar-h));min-height:calc(100dvh - var(--op-bar-h));padding:clamp(16px,2.4vw,40px) clamp(16px,3vw,56px) var(--space-10);overflow-x:hidden}@media (max-width: 768px){.op-shell{--op-bar-h: 56px}.op-shell__bar{gap:var(--sp-3)}.op-shell__title{display:none}.op-shell__main{padding:var(--sp-4) var(--gutter) var(--sp-10)}}@media (max-width: 480px){.op-shell__brand-by{display:none}.op-shell__end{padding:0 var(--sp-3)}}.op-kiosk{width:100%}.op-kiosk .page-title{font-size:var(--fs-display)}.op-kiosk .page-lead{font-size:var(--fs-h3)}.op-kiosk .users{grid-template-columns:1fr}.op-kiosk .users__form{position:static;padding:var(--sp-6);gap:var(--sp-6)}.op-kiosk .users__form-title{font-size:var(--fs-h2)}.op-kiosk .scan-steps{flex-direction:row;flex-wrap:wrap;gap:var(--sp-3)}.op-kiosk .scan-steps li{flex:1 1 160px;flex-direction:column;align-items:flex-start;gap:var(--sp-1);padding:var(--sp-3) var(--sp-4);border-width:2px;border-radius:var(--radius)}.op-kiosk .scan-steps li.is-active{box-shadow:inset 0 0 0 2px var(--primary-border)}.op-kiosk .scan-steps__label{font-size:var(--fs-sm)}.op-kiosk .scan-steps li strong{font-size:var(--fs-h3)}.scan-steps__pick{display:flex;align-items:center;gap:var(--sp-2);min-width:0}.scan-steps__pick-text{display:flex;flex-direction:column;gap:2px;min-width:0}.scan-steps__pick .emp-avatar{width:clamp(40px,12vw,56px);flex:0 0 auto;border-radius:var(--radius-md)}.scan-steps__pick .emp-avatar--fallback{font-size:var(--fs-sm)}.scan-steps__plane{display:grid;place-items:center;width:clamp(40px,12vw,56px);aspect-ratio:1;flex:0 0 auto;border-radius:var(--radius-md);border:1px solid var(--border);background:var(--surface);color:var(--primary)}.scan-steps__plane svg{width:60%;height:60%}.op-kiosk .op-step .btn{min-height:56px;padding:var(--sp-3) var(--sp-6);font-size:var(--fs-h3);border-radius:var(--radius)}.op-kiosk .op-step .btn--sm{min-height:48px;font-size:var(--fs-body)}.op-kiosk .field__input{min-height:52px;font-size:var(--fs-h3)}.op-kiosk .link-button--icon{min-height:48px;font-size:var(--fs-body)}.op-kiosk .aircraft-grid{grid-template-columns:repeat(auto-fill,minmax(min(300px,100%),1fr));gap:clamp(20px,3vw,40px)}.op-kiosk .signature-pad__label{font-size:var(--fs-body)}.op-kiosk .signature-pad__canvas{min-height:200px}.op-kiosk .signature-pad{max-width:min(600px,90vw)}@media (min-width: 900px){.op-kiosk .signature-pad__canvas{min-width:400px}}.op-kiosk .data-table th,.op-kiosk .data-table td{font-size:var(--fs-body)}@media (max-width: 768px){.op-kiosk .page-title{font-size:var(--fs-h1)}.op-kiosk .scan-steps li{flex-basis:120px}}.calibration-certs__form{display:flex;flex-direction:column;gap:var(--sp-4);margin-top:var(--sp-6);padding-top:var(--sp-5);border-top:1px solid var(--border)}.calibration-certs__subhead{font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.16em;text-transform:uppercase;color:var(--text-muted);margin:0}.calibration-certs__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(220px,100%),1fr));gap:var(--sp-4)}.dash-grid{display:grid;gap:var(--card-gap);grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));grid-auto-flow:dense;flex:1;align-content:start}@media (min-width: 1600px){.dash-grid{grid-template-columns:repeat(auto-fit,minmax(340px,1fr))}}.dash-tile{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:var(--space-5);display:flex;flex-direction:column;gap:var(--space-3);min-width:0;height:100%}.dash-tile[data-span="2"]{grid-column:span 2}.dash-tile__head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3)}.dash-tile__head h3{margin:0;font-size:var(--fs-h3);letter-spacing:-.01em;flex:1;min-width:0}.dash-tile__body{min-width:0}[data-variant=neutral]{--v-bg: var(--surface-2);--v-accent: var(--primary)}[data-variant=success]{--v-bg: var(--green-soft);--v-accent: var(--green)}[data-variant=warning]{--v-bg: var(--amber-soft);--v-accent: var(--amber)}[data-variant=critical]{--v-bg: var(--red-soft);--v-accent: var(--red)}[data-variant=info]{--v-bg: var(--primary-soft);--v-accent: var(--primary)}.card[data-variant],.dash-tile[data-variant]{background:var(--v-bg);border-left:4px solid var(--v-accent)}.dash-tile__head-icon,.card[data-variant] .card__head-icon{color:var(--v-accent)}.dash-tile__head-icon{display:grid;place-items:center;width:2rem;height:2rem;flex:none;border-radius:var(--radius-sm);background:color-mix(in srgb,var(--v-accent, var(--primary)) 14%,transparent);color:var(--v-accent, var(--primary));font-size:24px}@media (max-width: 768px){.dash-tile{grid-column:auto}}.detail-layout{display:grid;grid-template-columns:minmax(0,2fr) minmax(300px,1fr);gap:clamp(16px,2vw,32px);align-items:start}.detail-layout:not(:has(.detail-aside)){grid-template-columns:minmax(0,1fr)}.detail-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));gap:var(--space-4);align-items:start}.detail-main{min-width:0;display:flex;flex-direction:column;gap:var(--space-4)}.detail-aside{min-width:0;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:var(--space-4)}@media (max-width: 1200px){.detail-layout{grid-template-columns:minmax(0,1fr)}}.detail-section{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:var(--space-4)}.detail-section__head{margin:0;font-size:var(--fs-h3);font-weight:600;letter-spacing:-.01em;cursor:pointer;list-style:none}.detail-section__head::-webkit-details-marker{display:none}.detail-section__icon{color:var(--v-accent, var(--primary));margin-right:var(--space-2)}.detail-section[data-variant]{border-left:4px solid var(--v-accent)}.detail-section__body{margin-top:var(--space-3)}@media (min-width: 769px){.detail-section__body{display:block!important}.detail-section__head{cursor:default}}.detail-fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:var(--space-3) var(--space-4);margin:var(--space-4) 0 0}.detail-fields dt{margin:0;font-size:var(--fs-sm);color:var(--text-muted)}.detail-fields dd{margin:0;font-weight:500}.detail-photo{max-width:100%;border-radius:var(--radius);border:1px solid var(--border)}.detail-timeline{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-2)}.detail-timeline__item{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap;padding:var(--space-2) 0;border-bottom:1px solid var(--border)}.detail-timeline__item:last-child{border-bottom:none}.detail-timeline__label{flex:1;min-width:0}.detail-timeline__time{color:var(--text-muted);font-size:var(--fs-sm)}
