.sidebar{position:fixed;inset:0 auto 0 0;z-index:40;width:var(--sidebar-w);display:flex;flex-direction:column;background:var(--surface-sidebar);color:#c4d0de}.sidebar__brand{display:flex;align-items:center;gap:12px;height:var(--topbar-h);padding:0 var(--sp-5);border-bottom:1px solid rgba(255,255,255,.07);flex:none}.sidebar__logo{display:grid;place-items:center;width:38px;height:38px;border-radius:var(--radius);background:#fff;overflow:hidden}.sidebar__logo img{width:34px;height:auto}.sidebar__brand-text{display:flex;flex-direction:column;line-height:1.2}.sidebar__brand-text strong{color:#fff;font-size:var(--fs-md);font-weight:800;letter-spacing:.04em}.sidebar__brand-text span{font-size:var(--fs-xs);color:var(--sky-500);font-weight:600;letter-spacing:.06em;text-transform:uppercase}.sidebar__nav{flex:1;overflow-y:auto;padding:var(--sp-3) var(--sp-3) var(--sp-4);display:flex;flex-direction:column;gap:2px;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.15) transparent}.sidebar__link{position:relative;display:flex;align-items:center;gap:10px;width:100%;min-height:38px;padding:6px 10px;border:0;border-radius:var(--radius);background:none;color:inherit;font-size:var(--fs-base);font-weight:600;text-align:left;cursor:pointer;text-decoration:none}.sidebar__link:hover{background:#ffffff0f;color:#fff}.sidebar__link.is-active{background:#12a2d429;color:#fff}.sidebar__link.is-current{color:#fff}.sidebar__icon{display:grid;place-items:center;flex:none;width:28px;height:28px;border-radius:var(--radius-sm);background:color-mix(in srgb,var(--module) 28%,transparent);color:color-mix(in srgb,var(--module) 45%,#fff)}.sidebar__label{flex:1;min-width:0;line-height:1.3}.sidebar__chevron{flex:none;opacity:.6;transition:transform .15s}.sidebar__group.is-open .sidebar__chevron{transform:rotate(180deg)}.sidebar__children{display:flex;flex-direction:column;gap:1px;margin:2px 0 6px 23px;padding-left:15px;border-left:1px solid rgba(255,255,255,.1)}.sidebar__child{position:relative;display:block;padding:6px 10px;border-radius:var(--radius-sm);color:#9fb0c4;font-size:var(--fs-sm);font-weight:500}.sidebar__child:hover{color:#fff;background:#ffffff0d}.sidebar__child.is-active{color:#fff;background:#12a2d429}.sidebar__child.is-active:before{content:"";position:absolute;left:-16px;top:6px;bottom:6px;width:2px;border-radius:2px;background:var(--sky-500)}.sidebar__foot{flex:none;padding:var(--sp-3) var(--sp-5);border-top:1px solid rgba(255,255,255,.07);font-size:var(--fs-xs);color:#6f829a}@media (max-width: 1024px){.sidebar{transform:translate(-100%);transition:transform .2s ease}.sidebar.is-open{transform:none}}.sidebar-scrim{display:none}@media (max-width: 1024px){.sidebar-scrim.is-open{display:block;position:fixed;top:0;right:0;bottom:0;left:0;z-index:39;background:#0d1e3173}}.stat-card{--tone: var(--brand-600);--tone-bg: var(--brand-50);background:var(--surface-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--sp-4) var(--sp-5);display:flex;flex-direction:column;gap:6px;min-width:0}.stat-card--success{--tone: var(--success-600);--tone-bg: var(--success-50)}.stat-card--ai{--tone: var(--ai-600);--tone-bg: var(--ai-50);border-color:var(--ai-200)}.stat-card--warning{--tone: var(--warning-600);--tone-bg: var(--warning-50)}.stat-card--danger{--tone: var(--danger-600);--tone-bg: var(--danger-50)}.stat-card--violet{--tone: var(--violet-600);--tone-bg: var(--violet-50)}.stat-card--info{--tone: var(--info-600);--tone-bg: var(--info-50)}.stat-card__top{display:flex;justify-content:space-between;align-items:center}.stat-card__label{font-size:var(--fs-sm);font-weight:600;color:var(--text-muted)}.stat-card__icon{display:grid;place-items:center;width:32px;height:32px;border-radius:var(--radius);background:var(--tone-bg);color:var(--tone)}.stat-card__value{font-size:var(--fs-2xl);font-weight:800;letter-spacing:-.02em;line-height:1.1}.stat-card__foot{display:flex;align-items:center;gap:8px;font-size:var(--fs-sm);color:var(--text-muted);flex-wrap:wrap}.stat-card__delta{display:inline-flex;align-items:center;gap:2px;font-weight:700}.stat-card__delta--up{color:var(--success-600)}.stat-card__delta--down{color:var(--danger-600)}.stat-card__delta--neutral{color:var(--text-muted)}.progress{display:flex;align-items:center;gap:8px;min-width:100px}.progress__track{flex:1;height:6px;border-radius:999px;background:var(--gray-100);overflow:hidden}.progress--lg .progress__track{height:10px}.progress__bar{height:100%;border-radius:inherit}.progress__bar--brand{background:var(--brand-600)}.progress__bar--success{background:var(--success-600)}.progress__bar--warning{background:var(--warning-600)}.progress__bar--danger{background:var(--danger-600)}.progress__label{font-size:var(--fs-sm);font-weight:600;color:var(--text-muted);min-width:36px;text-align:right}.tabs{display:flex;gap:var(--sp-1);border-bottom:1px solid var(--border);overflow-x:auto}.tabs__tab{display:inline-flex;align-items:center;gap:6px;padding:10px 12px;border:0;border-bottom:2px solid transparent;margin-bottom:-1px;background:none;font-weight:600;color:var(--text-muted);white-space:nowrap;cursor:pointer}.tabs__tab:hover{color:var(--text)}.tabs__tab.is-active{color:var(--brand-600);border-bottom-color:var(--brand-600)}.tabs__count{padding:0 6px;border-radius:999px;background:var(--gray-100);font-size:var(--fs-xs);color:var(--text-muted)}.tabs__tab.is-active .tabs__count{background:var(--brand-50);color:var(--brand-600)}.timeline{list-style:none;margin:0;padding:0}.timeline__item{--dot: var(--gray-400);position:relative;display:grid;grid-template-columns:20px minmax(0,1fr);gap:var(--sp-3);padding-bottom:var(--sp-5)}.timeline__item:before{content:"";position:absolute;left:9px;top:18px;bottom:0;width:2px;background:var(--gray-100)}.timeline__item:last-child{padding-bottom:0}.timeline__item:last-child:before{display:none}.timeline__item--success{--dot: var(--success-600)}.timeline__item--warning{--dot: var(--warning-600)}.timeline__item--info{--dot: var(--info-600)}.timeline__item--danger{--dot: var(--danger-600)}.timeline__dot{width:12px;height:12px;margin:4px 0 0 4px;border-radius:50%;background:var(--surface-card);border:3px solid var(--dot)}.timeline__head{display:flex;justify-content:space-between;gap:var(--sp-2);flex-wrap:wrap}.timeline__time,.timeline__by{font-size:var(--fs-sm);color:var(--text-muted)}.timeline__detail{margin-top:2px;color:var(--gray-600)}.stepper{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:var(--sp-3)}.stepper__step{position:relative;display:flex;gap:var(--sp-3);padding:var(--sp-3);border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-card)}.stepper__step--current{border-color:var(--warning-600);background:var(--warning-50)}.stepper__step--todo{opacity:.6}.stepper__marker{flex:none;display:grid;place-items:center;width:24px;height:24px;border-radius:50%;background:var(--gray-100);color:var(--text-muted);font-size:var(--fs-sm);font-weight:700}.stepper__step--done .stepper__marker{background:var(--success-600);color:#fff}.stepper__step--current .stepper__marker{background:var(--warning-600);color:#fff}.stepper__body{display:flex;flex-direction:column;font-size:var(--fs-sm);color:var(--text-muted);min-width:0}.stepper__body strong{color:var(--text);font-size:var(--fs-base)}.stepper__time{font-size:var(--fs-xs)}.kv{display:grid;gap:var(--sp-4) var(--sp-6);margin:0}.kv--1{grid-template-columns:minmax(0,1fr)}.kv--2{grid-template-columns:repeat(2,minmax(0,1fr))}.kv--3{grid-template-columns:repeat(3,minmax(0,1fr))}@media (max-width: 640px){.kv--2,.kv--3{grid-template-columns:minmax(0,1fr)}}.kv__row{min-width:0}.kv__key{font-size:var(--fs-xs);font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--text-subtle)}.kv__value{margin:4px 0 0;font-weight:500;overflow-wrap:anywhere}.avatar{flex:none;display:inline-grid;place-items:center;border-radius:50%;background:var(--brand-50);color:var(--brand-700);font-weight:700}.person-cell{display:inline-flex;align-items:center;gap:10px;min-width:0}.notice{--tone: var(--info-600);--tone-bg: var(--info-50);display:flex;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);border-radius:var(--radius);background:var(--tone-bg);color:var(--gray-700);border:1px solid color-mix(in srgb,var(--tone) 25%,transparent)}.notice--warning{--tone: var(--warning-600);--tone-bg: var(--warning-50)}.notice--danger{--tone: var(--danger-600);--tone-bg: var(--danger-50)}.notice--success{--tone: var(--success-600);--tone-bg: var(--success-50)}.notice__icon{flex:none;color:var(--tone);margin-top:1px}.notice__title{display:block;color:var(--text)}.notice__body{font-size:var(--fs-sm)}.topbar{position:sticky;top:0;z-index:30;display:flex;align-items:center;gap:var(--sp-3);height:var(--topbar-h);padding:0 var(--sp-6);background:var(--surface-card);border-bottom:1px solid var(--border)}@media (max-width: 640px){.topbar{padding:0 var(--sp-4)}}.topbar__search{display:flex;align-items:center;gap:8px;flex:1;min-width:0;max-width:440px;height:38px;padding:0 12px;border-radius:var(--radius);background:var(--gray-50);border:1px solid transparent;color:var(--text-subtle)}.topbar__search:focus-within{background:var(--surface-card);border-color:var(--sky-500)}.topbar__search input{flex:1;min-width:0;border:0;outline:0;background:transparent;color:var(--text)}.topbar__search kbd{padding:1px 6px;border:1px solid var(--border-strong);border-radius:4px;font-family:var(--font-mono);font-size:var(--fs-xs)}@media (max-width: 640px){.topbar__search kbd{display:none}}.topbar__right{margin-left:auto;display:flex;align-items:center;gap:var(--sp-2)}.topbar__dropdown{position:relative}.topbar__icon-btn{position:relative;place-items:center;display:grid;width:38px;height:38px;border:0;border-radius:var(--radius);background:none;color:var(--gray-600);cursor:pointer}.topbar__icon-btn:hover{background:var(--gray-100)}.topbar__icon-btn.topbar__menu{display:none}@media (max-width: 1024px){.topbar__icon-btn.topbar__menu{display:grid}}.topbar__dot{position:absolute;top:2px;left:21px;min-width:17px;height:17px;padding:0 4px;border-radius:999px;background:var(--danger-600);color:#fff;font-size:10px;font-weight:700;line-height:17px;border:2px solid var(--surface-card);box-sizing:content-box}.topbar__user{display:flex;align-items:center;gap:10px;padding:4px 8px 4px 4px;border:0;border-radius:var(--radius);background:none;cursor:pointer;color:var(--text-muted)}.topbar__user:hover{background:var(--gray-100)}.topbar__user-text{display:flex;flex-direction:column;align-items:flex-start;line-height:1.25}.topbar__user-text strong{color:var(--text);font-size:var(--fs-sm)}.topbar__user-text span{font-size:var(--fs-xs)}@media (max-width: 640px){.topbar__user-text{display:none}}.topbar__panel{position:absolute;right:0;top:calc(100% + 8px);background:var(--surface-card);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-pop);overflow:hidden}.topbar__panel--notif{width:min(380px,100vw - 32px);right:-60px}.topbar__panel--user{width:200px;padding:6px}.topbar__panel-head{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;border-bottom:1px solid var(--border)}.topbar__link-btn{border:0;background:none;color:var(--sky-600);font-size:var(--fs-sm);font-weight:600;cursor:pointer}.topbar__menu-item{display:flex;align-items:center;gap:10px;width:100%;padding:8px 10px;border:0;border-radius:var(--radius-sm);background:none;color:var(--text);font-size:var(--fs-base);text-align:left;cursor:pointer}.topbar__menu-item:hover{background:var(--gray-50)}.notif-list{list-style:none;margin:0;padding:0;max-height:380px;overflow-y:auto}.notif-list__item{--tone: var(--info-600);--tone-bg: var(--info-50);display:flex;gap:12px;padding:12px 16px;border-bottom:1px solid var(--gray-100);color:var(--text)}.notif-list__item:hover{background:var(--gray-25)}.notif-list__item--danger{--tone: var(--danger-600);--tone-bg: var(--danger-50)}.notif-list__item--warning{--tone: var(--warning-600);--tone-bg: var(--warning-50)}.notif-list__icon{flex:none;display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:var(--tone-bg);color:var(--tone)}.notif-list__text{display:flex;flex-direction:column;min-width:0;font-size:var(--fs-sm)}.notif-list__text strong{font-size:var(--fs-base)}.notif-list__text span{color:var(--text-muted)}.notif-list__text time{color:var(--text-subtle);font-size:var(--fs-xs);margin-top:2px}.admin-layout{min-height:100%}.admin-layout__main{margin-left:var(--sidebar-w);min-height:100vh;display:flex;flex-direction:column;min-width:0}@media (max-width: 1024px){.admin-layout__main{margin-left:0}}.admin-layout__content{flex:1;width:100%;max-width:1440px;margin:0 auto;padding:var(--sp-6);min-width:0}@media (max-width: 640px){.admin-layout__content{padding:var(--sp-4)}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:36px;padding:0 14px;border-radius:var(--radius);border:1px solid transparent;font-size:var(--fs-base);font-weight:600;white-space:nowrap;cursor:pointer;transition:background .15s,border-color .15s,color .15s;text-decoration:none}.btn:disabled{opacity:.5;cursor:not-allowed}.btn__icon{flex:none}.btn--primary{background:var(--brand-600);color:var(--brand-contrast)}.btn--primary:hover:not(:disabled){background:var(--brand-700)}.btn--secondary{background:var(--surface-card);border-color:var(--border-strong);color:var(--text)}.btn--secondary:hover:not(:disabled){background:var(--gray-50)}.btn--ghost{background:transparent;color:var(--text-muted)}.btn--ghost:hover:not(:disabled){background:var(--gray-100);color:var(--text)}.btn--danger{background:var(--danger-600);color:#fff}.btn--danger:hover:not(:disabled){filter:brightness(.92)}.btn--success{background:var(--success-600);color:#fff}.btn--success:hover:not(:disabled){filter:brightness(.92)}.btn--ai{background:var(--ai-50);border-color:var(--ai-100);color:var(--ai-600)}.btn--ai:hover:not(:disabled){background:var(--ai-100)}.btn--sm{height:30px;padding:0 10px;font-size:var(--fs-sm)}.btn--block{width:100%}.btn--icon-only{width:36px;padding:0}.btn--icon-only.btn--sm{width:30px}.badge{--tone-bg: var(--gray-100);--tone-fg: var(--gray-600);display:inline-flex;align-items:center;gap:6px;height:22px;padding:0 8px;border-radius:999px;background:var(--tone-bg);color:var(--tone-fg);font-size:var(--fs-xs);font-weight:600;white-space:nowrap}.badge__dot{width:6px;height:6px;border-radius:50%;background:currentColor}.badge--success{--tone-bg: var(--success-50);--tone-fg: var(--success-600)}.badge--warning{--tone-bg: var(--warning-50);--tone-fg: var(--warning-600)}.badge--danger{--tone-bg: var(--danger-50);--tone-fg: var(--danger-600)}.badge--info{--tone-bg: var(--info-50);--tone-fg: var(--info-600)}.badge--violet{--tone-bg: var(--violet-50);--tone-fg: var(--violet-600)}.badge--brand{--tone-bg: var(--brand-50);--tone-fg: var(--brand-600)}.card{position:relative;background:var(--surface-card);border:1px solid var(--border);border-radius:var(--radius-lg);min-width:0;display:flex;flex-direction:column}.card__header{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);padding:var(--sp-4) var(--sp-5);border-bottom:1px solid var(--border);flex-wrap:wrap}.card__title{font-size:var(--fs-md);font-weight:700}.card__subtitle{font-size:var(--fs-sm);color:var(--text-muted);margin-top:2px}.card__actions{display:flex;gap:var(--sp-2);align-items:center;flex-wrap:wrap}.card__body{padding:var(--sp-5);flex:1;min-width:0}.card--flush .card__body{padding:0}.card__footer{padding:var(--sp-3) var(--sp-5);border-top:1px solid var(--border);background:var(--surface-sunken);border-radius:0 0 var(--radius-lg) var(--radius-lg)}.card--ai{border-color:var(--ai-200);box-shadow:0 0 0 3px var(--ai-50)}.card--ai .card__header{background:linear-gradient(90deg,var(--ai-50),var(--surface-card) 70%);border-bottom-color:var(--ai-100);border-radius:var(--radius-lg) var(--radius-lg) 0 0}.card__ai-tag{position:absolute;top:-9px;right:var(--sp-5);z-index:1;display:inline-flex;align-items:center;gap:3px;height:18px;padding:0 8px;border-radius:999px;background:var(--ai-500);color:#fff;font-size:10px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;white-space:nowrap;pointer-events:none}.page-header{display:flex;flex-direction:column;gap:6px;margin-bottom:var(--sp-5)}.page-header__crumbs{display:flex;flex-wrap:wrap;gap:4px;font-size:var(--fs-sm);color:var(--text-muted)}.page-header__crumb{display:inline-flex;align-items:center;gap:4px}.page-header__crumb a{color:var(--text-muted)}.page-header__crumb a:hover{color:var(--brand-600)}.page-header__row{display:flex;justify-content:space-between;align-items:flex-end;gap:var(--sp-4);flex-wrap:wrap}.page-header__text{min-width:0}.page-header__title-row{display:flex;align-items:center;gap:var(--sp-3);flex-wrap:wrap}.page-header__title{font-size:var(--fs-xl);font-weight:800;letter-spacing:-.01em}.page-header__subtitle{color:var(--text-muted);margin-top:4px;max-width:70ch}.page-header__actions{display:flex;gap:var(--sp-2);flex-wrap:wrap}.data-table{display:flex;flex-direction:column;min-width:0}.data-table__toolbar{display:flex;flex-wrap:wrap;gap:var(--sp-2);align-items:center;padding:var(--sp-3) var(--sp-4);border-bottom:1px solid var(--border)}.data-table__search{display:flex;align-items:center;gap:8px;height:34px;padding:0 10px;border:1px solid var(--border-strong);border-radius:var(--radius);background:var(--surface-card);color:var(--text-subtle);flex:1 1 220px;max-width:340px}.data-table__search:focus-within{border-color:var(--brand-500)}.data-table__search input{border:0;outline:0;background:transparent;width:100%;color:var(--text)}.data-table__filter{height:34px;padding:0 28px 0 10px;border:1px solid var(--border-strong);border-radius:var(--radius);background:var(--surface-card);font-size:var(--fs-sm)}.data-table__toolbar-extra{margin-left:auto;display:flex;gap:var(--sp-2);flex-wrap:wrap}.data-table__scroll{overflow-x:auto}.data-table__table{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums}.data-table__table th{position:sticky;top:0;background:var(--surface-sunken);font-size:var(--fs-xs);font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted);padding:10px var(--sp-4);border-bottom:1px solid var(--border);white-space:nowrap;text-align:left}.data-table__table td{padding:12px var(--sp-4);border-bottom:1px solid var(--gray-100);vertical-align:middle}.data-table__table tbody tr{transition:background .12s}.data-table__table tbody tr:hover{background:var(--gray-25)}.data-table__table tbody tr.is-clickable{cursor:pointer}.data-table__table tbody tr.is-selected{background:var(--brand-50)}.data-table__table th.is-ai{background:var(--ai-50);color:var(--ai-600)}.data-table__table td.is-ai{background:color-mix(in srgb,var(--ai-50) 55%,transparent)}.data-table__ai-icon{flex-shrink:0;margin-right:2px;vertical-align:-2px}.data-table--compact .data-table__table td{padding:8px var(--sp-4)}.data-table__sort{display:inline-flex;align-items:center;gap:4px;border:0;background:none;padding:0;font:inherit;color:inherit;letter-spacing:inherit;text-transform:inherit;cursor:pointer}.data-table__sort svg{opacity:.4}.data-table__sort.is-active svg,.data-table__sort:hover svg{opacity:1}.data-table__check{width:40px}.data-table__check input{width:16px;height:16px;accent-color:var(--brand-600)}.data-table__empty{display:flex;flex-direction:column;align-items:center;gap:6px;padding:var(--sp-8);color:var(--text-subtle)}.data-table__footer{display:flex;justify-content:space-between;align-items:center;padding:var(--sp-3) var(--sp-4);font-size:var(--fs-sm);color:var(--text-muted);flex-wrap:wrap;gap:var(--sp-2)}.data-table__pager{display:flex;align-items:center;gap:var(--sp-2)}.data-table__pager button{display:grid;place-items:center;width:28px;height:28px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface-card);cursor:pointer}.data-table__pager button:disabled{opacity:.4;cursor:default}.cell-primary{display:flex;flex-direction:column;min-width:0}.cell-primary__title{font-weight:600;color:var(--text)}.cell-primary__sub{font-size:var(--fs-sm);color:var(--text-muted)}.cell-link{font-weight:600;color:var(--brand-600);font-family:var(--font-mono);font-size:12.5px}.field{display:flex;flex-direction:column;gap:6px;min-width:0}.field--span-2{grid-column:span 2}.field--span-3{grid-column:span 3}.field--span-full{grid-column:1/-1}.field__label{font-size:var(--fs-sm);font-weight:600;color:var(--gray-700)}.field__req{color:var(--danger-600);margin-left:2px}.field__control{width:100%;height:38px;padding:0 12px;border:1px solid var(--border-strong);border-radius:var(--radius);background:var(--surface-card);font-size:var(--fs-base);transition:border-color .15s,box-shadow .15s}.field__control:focus{outline:none;border-color:var(--brand-500);box-shadow:0 0 0 3px var(--brand-100)}.field__control:disabled,.field__control[readonly]{background:var(--surface-sunken);color:var(--text-muted)}.field__control--textarea{height:auto;padding:10px 12px;resize:vertical;line-height:1.5}.field__affix{display:flex;align-items:stretch;border:1px solid var(--border-strong);border-radius:var(--radius);background:var(--surface-card);overflow:hidden}.field__affix:focus-within{border-color:var(--brand-500);box-shadow:0 0 0 3px var(--brand-100)}.field__affix .field__control{border:0;box-shadow:none;border-radius:0}.field__affix-text{display:grid;place-items:center;padding:0 10px;background:var(--surface-sunken);color:var(--text-muted);font-size:var(--fs-sm);font-weight:600}.field__hint{font-size:var(--fs-sm);color:var(--text-muted)}.form-grid{display:grid;gap:var(--sp-4)}.form-grid--1{grid-template-columns:minmax(0,1fr)}.form-grid--2{grid-template-columns:repeat(2,minmax(0,1fr))}.form-grid--3{grid-template-columns:repeat(3,minmax(0,1fr))}.form-grid--4{grid-template-columns:repeat(4,minmax(0,1fr))}@media (max-width: 760px){.form-grid--2,.form-grid--3,.form-grid--4{grid-template-columns:minmax(0,1fr)}.form-grid .field--span-2,.form-grid .field--span-3{grid-column:auto}}.form-section{display:grid;grid-template-columns:minmax(0,260px) minmax(0,1fr);gap:var(--sp-6);padding:var(--sp-6) 0;border-bottom:1px solid var(--border)}.form-section:first-child{padding-top:0}.form-section:last-child{border-bottom:0}.form-section__title{font-size:var(--fs-md);font-weight:700}.form-section__desc{font-size:var(--fs-sm);color:var(--text-muted);margin-top:4px}@media (max-width: 900px){.form-section{grid-template-columns:minmax(0,1fr);gap:var(--sp-3)}}.form-section--ai .form-section__body{padding:var(--sp-4);border:1px solid var(--ai-200);border-radius:var(--radius);background:color-mix(in srgb,var(--ai-50) 55%,var(--surface-card))}.form-actions{display:flex;justify-content:flex-end;gap:var(--sp-2);padding-top:var(--sp-4);flex-wrap:wrap}.switch{display:inline-flex;align-items:flex-start;gap:10px;cursor:pointer}.switch__input{position:absolute;opacity:0;width:0;height:0}.switch__track{position:relative;flex:none;width:34px;height:20px;border-radius:999px;background:var(--gray-300);transition:background .15s}.switch__thumb{position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:0 1px 2px #0003;transition:transform .15s}.switch__input:checked+.switch__track{background:var(--brand-600)}.switch__input:checked+.switch__track .switch__thumb{transform:translate(14px)}.switch__input:focus-visible+.switch__track{outline:2px solid var(--brand-500);outline-offset:2px}.switch__text{display:flex;flex-direction:column}.switch__label{font-weight:600}.switch__desc{font-size:var(--fs-sm);color:var(--text-muted)}.modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:grid;place-items:center;padding:var(--sp-4)}.modal__backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background:#14182473}.modal__panel{position:relative;width:100%;max-height:calc(100vh - 32px);display:flex;flex-direction:column;background:var(--surface-card);border-radius:var(--radius-lg);box-shadow:var(--shadow-pop)}.modal__panel--sm{max-width:420px}.modal__panel--md{max-width:560px}.modal__panel--lg{max-width:820px}.modal__header{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--sp-3);padding:var(--sp-4) var(--sp-5);border-bottom:1px solid var(--border)}.modal__title{font-size:var(--fs-lg);font-weight:700;display:flex;align-items:center;gap:var(--sp-2);flex-wrap:wrap}.modal__panel--ai{border:1px solid var(--ai-200);overflow:hidden}.modal__panel--ai .modal__header{background:linear-gradient(90deg,var(--ai-50),var(--surface-card) 70%);border-bottom-color:var(--ai-100);box-shadow:inset 0 3px 0 var(--ai-500)}.modal__ai-tag{display:inline-flex;align-items:center;gap:3px;height:18px;padding:0 8px;border-radius:999px;background:var(--ai-500);color:#fff;font-size:10px;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.modal__subtitle{font-size:var(--fs-sm);color:var(--text-muted);margin-top:2px}.modal__close{display:grid;place-items:center;width:30px;height:30px;border:0;border-radius:var(--radius-sm);background:none;color:var(--text-muted);cursor:pointer}.modal__close:hover{background:var(--gray-100)}.modal__body{padding:var(--sp-5);overflow-y:auto}.modal__footer{display:flex;justify-content:flex-end;gap:var(--sp-2);padding:var(--sp-3) var(--sp-5);border-top:1px solid var(--border);background:var(--surface-sunken);border-radius:0 0 var(--radius-lg) var(--radius-lg)}.toasts{position:fixed;right:20px;bottom:20px;z-index:200;display:flex;flex-direction:column;gap:var(--sp-2)}.toast{display:flex;align-items:center;gap:10px;min-width:260px;max-width:380px;padding:12px 14px;border-radius:var(--radius);background:var(--gray-900);color:#fff;box-shadow:var(--shadow-pop);font-weight:500;animation:toast-in .2s ease-out}.toast--success .toast__icon{color:#4ade80}.toast--warning .toast__icon{color:#fbbf24}.toast--info .toast__icon{color:#7dd3fc}@keyframes toast-in{0%{transform:translateY(8px);opacity:0}}.line-items{border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.line-items__table{width:100%;min-width:640px;border-collapse:collapse}.line-items__table th{padding:8px 10px;background:var(--surface-sunken);border-bottom:1px solid var(--border);font-size:var(--fs-xs);font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted);text-align:left}.line-items__table td{padding:6px 10px;border-bottom:1px solid var(--gray-100)}.line-items__table .field__control{height:34px}.line-items__foot{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--sp-4);padding:var(--sp-3);background:var(--surface-sunken);flex-wrap:wrap}.line-items__totals{margin:0;min-width:240px;display:flex;flex-direction:column;gap:4px}.line-items__totals div{display:flex;justify-content:space-between;gap:var(--sp-6)}.line-items__totals dt{color:var(--text-muted)}.line-items__totals dd{margin:0;font-weight:600}.line-items__grand{padding-top:6px;margin-top:2px;border-top:1px solid var(--border-strong)}.line-items__grand dt,.line-items__grand dd{color:var(--text);font-weight:800;font-size:var(--fs-md)}.auth{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);min-height:100vh;background:var(--surface-card)}@media (max-width: 900px){.auth{grid-template-columns:minmax(0,1fr)}}.auth__panel{position:relative;display:flex;flex-direction:column;justify-content:space-between;gap:var(--sp-8);padding:48px;background:var(--brand-900);color:#c4d0de;overflow:hidden}.auth__panel:after{content:"";position:absolute;right:-140px;bottom:-140px;width:380px;height:380px;border:44px solid var(--sky-500);border-radius:48px;transform:rotate(45deg);opacity:.18}@media (max-width: 900px){.auth__panel{display:none}}.auth__maxgrip{width:150px;height:auto}.auth__pitch{position:relative;z-index:1;max-width:420px}.auth__eyebrow{color:var(--sky-500);font-size:var(--fs-sm);font-weight:700;letter-spacing:.1em;text-transform:uppercase}.auth__headline{margin-top:var(--sp-3);color:#fff;font-size:32px;font-weight:800;letter-spacing:-.02em}.auth__highlights{list-style:none;margin:var(--sp-6) 0 0;padding:0;display:flex;flex-direction:column;gap:var(--sp-3)}.auth__highlights li{display:flex;align-items:center;gap:10px;font-weight:500}.auth__highlights svg{color:var(--sky-500)}.auth__legal{position:relative;z-index:1;font-size:var(--fs-sm);color:#6f829a}.auth__main{display:grid;place-items:center;padding:var(--sp-8) var(--sp-4)}.auth__card{width:100%;max-width:380px;display:flex;flex-direction:column;gap:var(--sp-5)}.auth__logo{width:72px;height:auto}.auth__title{font-size:var(--fs-2xl);font-weight:800;letter-spacing:-.02em}.auth__subtitle{color:var(--text-muted);margin-top:4px}.auth__form{display:flex;flex-direction:column;gap:var(--sp-4)}.auth__row{display:flex;justify-content:space-between;align-items:center;font-size:var(--fs-sm)}.auth__row label{display:inline-flex;align-items:center;gap:6px;color:var(--gray-600)}.auth__row input[type=checkbox]{accent-color:var(--brand-600)}.auth__row a{color:var(--sky-600);font-weight:600}.auth__foot{font-size:var(--fs-sm);color:var(--text-muted);text-align:center}.auth__foot a{color:var(--sky-600);font-weight:600}.ai-badge{display:inline-flex;align-items:center;gap:4px;height:20px;padding:0 7px;border-radius:999px;background:var(--ai-50);color:var(--ai-600);font-size:var(--fs-xs);font-weight:700;white-space:nowrap}.ai-title{display:inline-flex;align-items:center;gap:8px}.ai-title__icon{display:grid;place-items:center;width:24px;height:24px;border-radius:var(--radius-sm);background:var(--ai-50);color:var(--ai-600)}.ai-thinking{list-style:none;margin:0;padding:var(--sp-4);display:flex;flex-direction:column;gap:10px;border-radius:var(--radius);background:var(--ai-50)}.ai-thinking__step{display:flex;align-items:center;gap:10px;color:var(--text-subtle);font-weight:500}.ai-thinking__step.is-active{color:var(--text)}.ai-thinking__step.is-done{color:var(--text-muted)}.ai-thinking__mark{display:grid;place-items:center;width:20px;height:20px;border-radius:50%;border:1.5px solid var(--ai-100);background:var(--surface-card);color:var(--ai-600)}.ai-thinking__step.is-done .ai-thinking__mark{background:var(--ai-600);border-color:var(--ai-600);color:#fff}.ai-spin{animation:ai-spin .9s linear infinite}@keyframes ai-spin{to{transform:rotate(360deg)}}.ai-text{white-space:pre-wrap;line-height:1.6}.ai-disclaimer{display:inline-flex;align-items:center;gap:6px;font-size:var(--fs-sm);color:var(--text-muted)}.ai-disclaimer svg{color:var(--ai-600)}.ai-confidence{display:inline-flex;align-items:center;height:22px;padding:0 8px;border-radius:999px;font-size:var(--fs-xs);font-weight:700;white-space:nowrap}.ai-confidence--high{background:var(--success-50);color:var(--success-600)}.ai-confidence--medium{background:var(--warning-50);color:var(--warning-600)}.ai-confidence--low{background:var(--danger-50);color:var(--danger-600)}.ai-panel{display:flex;flex-direction:column;gap:var(--sp-3);padding:var(--sp-4);border:1px solid var(--ai-100);border-radius:var(--radius);background:var(--surface-card)}.ai-panel__head{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-2);flex-wrap:wrap}.ai-panel ul{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:4px}.ai-drop{display:flex;flex-direction:column;align-items:center;gap:var(--sp-2);padding:var(--sp-8) var(--sp-4);border:1.5px dashed var(--ai-500);border-radius:var(--radius-lg);background:var(--ai-50);text-align:center;color:var(--text-muted);cursor:pointer}.ai-drop.is-over{background:var(--ai-100)}.ai-drop svg{color:var(--ai-600)}.ai-drop strong{color:var(--text);font-size:var(--fs-md)}.ai-drop input{display:none}.ai-chips{display:flex;flex-wrap:wrap;gap:var(--sp-2)}.ai-chip{height:30px;padding:0 12px;border:1px solid var(--border-strong);border-radius:999px;background:var(--surface-card);font-size:var(--fs-sm);color:var(--gray-600);cursor:pointer}.ai-chip:hover{border-color:var(--ai-500);color:var(--ai-600)}.ai-skeleton{display:flex;flex-direction:column;gap:10px}.ai-skeleton span{height:12px;border-radius:6px;background:linear-gradient(90deg,var(--ai-50),var(--ai-100),var(--ai-50));background-size:200% 100%;animation:ai-shimmer 1.2s linear infinite}.ai-skeleton span:nth-child(2){width:85%}.ai-skeleton span:nth-child(3){width:60%}@keyframes ai-shimmer{to{background-position:-200% 0}}.ask-ai__form{display:flex;gap:var(--sp-2)}.ask-ai__form .field__control{flex:1;min-width:0;height:42px;font-size:var(--fs-md)}.ask-ai__form .btn{height:42px}.ask-ai__result{display:flex;flex-direction:column;gap:var(--sp-3);margin-top:var(--sp-4);padding-top:var(--sp-4);border-top:1px solid var(--border)}.ask-ai__question{font-size:var(--fs-sm);font-weight:600;color:var(--text-muted)}.ask-ai__answer{font-size:var(--fs-md);max-width:85ch}.ask-ai__how{display:inline-flex;align-items:center;gap:6px;font-size:var(--fs-sm);color:var(--text-muted)}.ask-ai__table{border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.ask-ai__foot{display:flex;justify-content:space-between;align-items:center;gap:var(--sp-3);flex-wrap:wrap}.dashboard__row{margin-top:var(--sp-4)}.dashboard__chart{height:240px}.dashboard__subhead{font-size:var(--fs-xs);font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted);margin-bottom:var(--sp-2)}.dashboard__lowstock{margin-top:var(--sp-5);padding-top:var(--sp-4);border-top:1px solid var(--border)}.dashboard__lowstock ul{list-style:none;margin:0;padding:0}.dashboard__lowstock li{display:grid;grid-template-columns:minmax(0,1fr) auto 104px;align-items:center;gap:var(--sp-3);padding:8px 0;border-bottom:1px solid var(--gray-100)}.dashboard__lowstock li:last-child{border-bottom:0}.dashboard__qty{font-size:var(--fs-sm);color:var(--text-muted)}.dashboard__alerts{list-style:none;margin:0;padding:0}.dashboard__alert{--tone: var(--info-600);--tone-bg: var(--info-50);display:flex;gap:12px;padding:14px var(--sp-5);border-bottom:1px solid var(--gray-100);color:var(--text)}.dashboard__alert:hover{background:var(--gray-25)}.dashboard__alert--danger{--tone: var(--danger-600);--tone-bg: var(--danger-50)}.dashboard__alert--warning{--tone: var(--warning-600);--tone-bg: var(--warning-50)}.dashboard__alert-icon{flex:none;display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:var(--tone-bg);color:var(--tone)}.dashboard__alert-text{display:flex;flex-direction:column;min-width:0;font-size:var(--fs-sm)}.dashboard__alert-text strong{font-size:var(--fs-base)}.dashboard__alert-text span{color:var(--text-muted)}.dashboard__alert-text time{color:var(--text-subtle);font-size:var(--fs-xs);margin-top:2px}.dashboard__donut{position:relative;height:190px}.dashboard__donut-label{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;pointer-events:none}.dashboard__donut-label strong{font-size:var(--fs-2xl);font-weight:800;line-height:1}.dashboard__donut-label span{font-size:var(--fs-sm);color:var(--text-muted)}.dashboard__legend{list-style:none;margin:var(--sp-4) 0 0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--sp-2) var(--sp-4)}.dashboard__legend li{display:flex;align-items:center;gap:8px;font-size:var(--fs-sm)}.dashboard__legend li strong{margin-left:auto}.dashboard__swatch{width:10px;height:10px;border-radius:3px}.briefing{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}@media (max-width: 900px){.briefing{grid-template-columns:minmax(0,1fr)}}.briefing__item{--tone: var(--info-600);--tone-bg: var(--info-50);display:grid;grid-template-columns:auto minmax(0,1fr);gap:4px 12px;padding:var(--sp-4) var(--sp-5);border-bottom:1px solid var(--gray-100)}.briefing__item:nth-child(odd){border-right:1px solid var(--gray-100)}@media (max-width: 900px){.briefing__item:nth-child(odd){border-right:0}}.briefing__item--danger{--tone: var(--danger-600);--tone-bg: var(--danger-50)}.briefing__item--warning{--tone: var(--warning-600);--tone-bg: var(--warning-50)}.briefing__icon{grid-row:span 2;display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:var(--tone-bg);color:var(--tone)}.briefing__text{display:flex;flex-direction:column;gap:2px;min-width:0}.briefing__text span{font-size:var(--fs-sm);color:var(--text-muted)}.briefing__action{grid-column:2;display:inline-flex;align-items:center;gap:4px;margin-top:4px;font-size:var(--fs-sm);font-weight:600;color:var(--sky-600);justify-self:start}.roles{display:grid;grid-template-columns:240px minmax(0,1fr);gap:var(--sp-4);align-items:start}@media (max-width: 900px){.roles{grid-template-columns:minmax(0,1fr)}}.roles__list ul{list-style:none;margin:0;padding:var(--sp-2);display:flex;flex-direction:column;gap:2px}.roles__item{display:flex;flex-direction:column;align-items:flex-start;gap:2px;width:100%;padding:10px 12px;border:0;border-radius:var(--radius);background:none;text-align:left;cursor:pointer}.roles__item span{display:inline-flex;align-items:center;gap:4px;font-size:var(--fs-sm);color:var(--text-muted)}.roles__item:hover{background:var(--gray-50)}.roles__item.is-active{background:var(--brand-50)}.roles__item.is-active strong{color:var(--brand-700)}.roles__module{display:inline-flex;align-items:center;gap:10px;font-weight:600}.roles__module-icon{display:grid;place-items:center;width:28px;height:28px;border-radius:var(--radius-sm);background:color-mix(in srgb,var(--module) 12%,transparent);color:var(--module)}.roles__check{width:17px;height:17px;accent-color:var(--brand-600);cursor:pointer}.price-tag{display:inline-flex;flex-direction:column;gap:1px;min-width:0}.price-tag__price{display:inline-flex;align-items:center;gap:6px;font-weight:700;color:var(--text)}.price-tag__lowest{padding:0 6px;border-radius:999px;background:var(--success-50);color:var(--success-600);font-size:10.5px;font-weight:700;letter-spacing:.02em;line-height:18px}.price-tag__supplier{font-size:var(--fs-sm);color:var(--gray-600)}.price-tag__age{font-size:var(--fs-xs);color:var(--text-subtle)}.price-tag__age.is-stale{color:var(--warning-600);font-weight:600}.price-grid{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums}.price-grid th,.price-grid td{padding:10px var(--sp-3);border-bottom:1px solid var(--gray-100);text-align:left;vertical-align:top}.price-grid th{background:var(--surface-sunken);font-size:var(--fs-xs);font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted);white-space:nowrap}.price-grid__item{min-width:220px}.price-grid__quote{min-width:150px}.price-grid__option{display:flex;gap:8px;align-items:flex-start;width:100%;padding:8px 10px;border:1.5px solid var(--border);border-radius:var(--radius);background:var(--surface-card);text-align:left;cursor:pointer}.price-grid__option input{margin-top:3px;accent-color:var(--brand-600)}.price-grid__option:hover{border-color:var(--border-strong)}.price-grid__option.is-selected{border-color:var(--brand-600);background:var(--brand-50)}.price-grid__empty{display:inline-flex;align-items:center;gap:6px;padding:8px 10px;border:1.5px dashed var(--border-strong);border-radius:var(--radius);color:var(--text-muted);font-size:var(--fs-sm);background:none;cursor:pointer}.price-grid__empty:hover{color:var(--brand-600);border-color:var(--brand-500)}.price-grid__total{text-align:right!important;font-weight:700;white-space:nowrap}.price-grid .field__control{height:34px}.price-grid input[type=number].field__control{min-width:72px}.price-grid select.field__control{min-width:150px}.pricing-summary{margin:0;display:flex;flex-direction:column;gap:8px}.pricing-summary div{display:flex;justify-content:space-between;gap:var(--sp-4)}.pricing-summary dt{color:var(--text-muted)}.pricing-summary dd{margin:0;font-weight:600;font-variant-numeric:tabular-nums}.pricing-summary__sep{padding-top:8px;border-top:1px solid var(--border)}.pricing-summary__grand dt,.pricing-summary__grand dd{color:var(--text);font-size:var(--fs-md);font-weight:800}.pricing-summary__margin dd{color:var(--success-600)}.call-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:var(--sp-2)}.call-list label{display:flex;align-items:center;gap:8px;padding:10px 12px;border:1px solid var(--border);border-radius:var(--radius);cursor:pointer}.call-list label input{accent-color:var(--brand-600)}.stock-mode{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--sp-3);margin-bottom:var(--sp-4)}@media (max-width: 640px){.stock-mode{grid-template-columns:minmax(0,1fr)}}.stock-mode__option{--tone: var(--brand-600);--tone-bg: var(--brand-50);display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-4);border:1.5px solid var(--border);border-radius:var(--radius-lg);background:var(--surface-card);text-align:left;color:var(--text-muted);cursor:pointer}.stock-mode__option>span{display:flex;flex-direction:column;font-size:var(--fs-sm)}.stock-mode__option strong{color:var(--text);font-size:var(--fs-md)}.stock-mode__option--in{--tone: var(--success-600);--tone-bg: var(--success-50)}.stock-mode__option--out{--tone: var(--danger-600);--tone-bg: var(--danger-50)}.stock-mode__option.is-active{border-color:var(--tone);background:var(--tone-bg);color:var(--gray-600)}.stock-mode__option.is-active svg{color:var(--tone)}.transfer-route{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:var(--sp-4);align-items:end}.transfer-route__arrow{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:var(--sky-50);color:var(--sky-600)}@media (max-width: 760px){.transfer-route{grid-template-columns:minmax(0,1fr)}.transfer-route__arrow{transform:rotate(90deg);justify-self:center}}.reorder-plan{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:6px;max-width:90ch}.reorder-plan li::marker{color:var(--ai-600)}.reorder-why{display:block;max-width:40ch;font-size:var(--fs-sm);color:var(--gray-600);line-height:1.4}.report-tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:var(--sp-3)}.report-tile{display:flex;flex-direction:column;gap:6px;padding:var(--sp-4);border:1.5px solid var(--border);border-radius:var(--radius-lg);background:var(--surface-card);text-align:left;cursor:pointer;color:var(--text-muted);font-size:var(--fs-sm)}.report-tile strong{color:var(--text);font-size:var(--fs-md)}.report-tile svg{color:var(--brand-600)}.report-tile:hover{border-color:var(--brand-500)}.report-tile.is-active{border-color:var(--brand-600);background:var(--brand-50)}.asset-tag{display:flex;flex-direction:column;align-items:center;gap:6px;padding:var(--sp-5);border:1.5px dashed var(--border-strong);border-radius:var(--radius);background:#fff;text-align:center}.asset-tag strong{font-size:var(--fs-md);margin-top:6px}.asset-tag span{font-size:var(--fs-sm);color:var(--text-muted)}.status-board{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--sp-3)}@media (max-width: 1100px){.status-board{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 640px){.status-board{grid-template-columns:minmax(0,1fr)}}.status-board__col{--tone: var(--gray-400);display:flex;flex-direction:column;min-width:0;background:var(--surface-sunken);border:1px solid var(--border);border-top:3px solid var(--tone);border-radius:var(--radius-lg)}.status-board__col--Available{--tone: var(--success-600)}.status-board__col--Assigned{--tone: var(--sky-500)}.status-board__col--Maintenance{--tone: var(--warning-600)}.status-board__head{display:flex;justify-content:space-between;align-items:center;padding:var(--sp-3) var(--sp-4);font-weight:700}.status-board__head span{color:var(--text-muted);font-weight:600}.status-board__list{display:flex;flex-direction:column;gap:var(--sp-2);padding:0 var(--sp-3) var(--sp-3)}.status-board__card{display:flex;flex-direction:column;gap:2px;padding:var(--sp-3);background:var(--surface-card);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);font-size:var(--fs-sm)}.status-board__card:hover{border-color:var(--brand-500)}.status-board__card strong{font-size:var(--fs-base)}.status-board__card .u-mono{color:var(--sky-600)}.status-board__meta{color:var(--text-muted)}.ack-flow{display:flex;align-items:center;gap:6px;font-size:var(--fs-sm);color:var(--text-muted)}.ack-flow__step{display:inline-flex;align-items:center;gap:4px}.ack-flow__step.is-done{color:var(--success-600);font-weight:600}.ack-flow__step.is-current{color:var(--warning-600);font-weight:600}.project-overview{display:flex;flex-direction:column;gap:var(--sp-6);padding:var(--sp-5)}.project-overview__title{font-size:var(--fs-xs);font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted);margin-bottom:var(--sp-3)}.gantt{--label-w: 220px;--pct-w: 44px;overflow-x:auto}.gantt__scale{position:relative;height:22px;margin-left:var(--label-w);margin-right:var(--pct-w);border-bottom:1px solid var(--border);min-width:420px}.gantt__scale span{position:absolute;top:0;font-size:var(--fs-xs);font-weight:600;color:var(--text-subtle);white-space:nowrap}.gantt__rows{position:relative;min-width:calc(420px + var(--label-w) + var(--pct-w))}.gantt__overlay{position:absolute;top:0;bottom:0;left:var(--label-w);right:var(--pct-w);pointer-events:none;z-index:1}.gantt__today{position:absolute;top:0;bottom:0;width:2px;margin-left:-1px;background:var(--danger-600);opacity:.55}.gantt__row{display:grid;grid-template-columns:var(--label-w) minmax(0,1fr) var(--pct-w);align-items:center;min-height:40px;border-bottom:1px solid var(--gray-100)}.gantt__label{padding-right:var(--sp-3);font-weight:600;font-size:var(--fs-sm)}.gantt__track{position:relative;height:100%;min-height:40px}.gantt__bar{position:absolute;top:12px;height:16px;border-radius:4px;background:var(--sky-100);overflow:hidden}.gantt__bar.is-done{background:var(--success-50)}.gantt__fill{display:block;height:100%;background:var(--sky-500)}.gantt__bar.is-done .gantt__fill{background:var(--success-600)}.gantt__pct{text-align:right;font-size:var(--fs-sm);color:var(--text-muted)}.po-lines{width:100%;border-collapse:collapse}.po-lines th,.po-lines td{padding:10px var(--sp-4);border-bottom:1px solid var(--gray-100);text-align:left}.po-lines th{font-size:var(--fs-xs);font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted);background:var(--surface-sunken)}.po-lines input{width:90px;height:32px}.doc{min-width:0;width:100%;max-width:820px;margin:0 auto;padding:40px;background:#fff;border:1px solid var(--border);border-radius:var(--radius);color:var(--gray-800);font-size:var(--fs-sm)}@media (max-width: 640px){.doc{padding:var(--sp-4)}}.doc__head{display:flex;justify-content:space-between;gap:var(--sp-6);padding-bottom:var(--sp-5);border-bottom:3px solid var(--brand-600);flex-wrap:wrap}.doc__brand{display:flex;gap:var(--sp-3);max-width:380px}.doc__brand img{width:64px;height:64px;object-fit:contain}.doc__brand div{display:flex;flex-direction:column;color:var(--text-muted)}.doc__brand strong{color:var(--brand-600);font-size:var(--fs-md)}.doc__title{text-align:right}.doc__title h2{font-size:26px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--brand-600)}.doc__title span{color:var(--sky-600);font-weight:600}.doc__parties{display:flex;justify-content:space-between;gap:var(--sp-6);padding:var(--sp-5) 0;flex-wrap:wrap}.doc__parties>div{display:flex;flex-direction:column}.doc__parties strong{font-size:var(--fs-md)}.doc__label{font-size:var(--fs-xs);font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--text-subtle);margin-bottom:4px}.doc__meta{margin:0;display:grid;gap:4px}.doc__meta div{display:flex;justify-content:space-between;gap:var(--sp-6)}.doc__meta dt{color:var(--text-muted)}.doc__meta dd{margin:0;font-weight:600}.doc__table{overflow-x:auto}.doc__lines{min-width:560px;width:100%;border-collapse:collapse}.doc__lines th{padding:8px;background:var(--brand-50);color:var(--brand-700);font-size:var(--fs-xs);font-weight:700;letter-spacing:.04em;text-transform:uppercase;text-align:left}.doc__lines td{padding:10px 8px;border-bottom:1px solid var(--gray-100);vertical-align:top}.doc__bottom{display:flex;justify-content:space-between;gap:var(--sp-6);padding-top:var(--sp-5);flex-wrap:wrap}.doc__notes{max-width:360px;display:flex;flex-direction:column;color:var(--text-muted)}.doc__totals{margin:0;min-width:240px;display:grid;gap:6px}.doc__totals div{display:flex;justify-content:space-between}.doc__totals dt{color:var(--text-muted)}.doc__totals dd{margin:0;font-weight:600}.doc__grand{padding-top:8px;border-top:2px solid var(--brand-600)}.doc__grand dt,.doc__grand dd{color:var(--brand-600);font-size:var(--fs-md);font-weight:800}.aging-bar{display:flex;height:14px;border-radius:999px;overflow:hidden;background:var(--gray-100)}.aging-bar span{height:100%}.aging-legend{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:var(--sp-3);margin-top:var(--sp-4)}@media (max-width: 900px){.aging-legend{grid-template-columns:repeat(2,minmax(0,1fr))}}.aging-legend__item{display:flex;flex-direction:column;gap:2px;padding-left:10px;border-left:3px solid var(--swatch)}.aging-legend__item span{font-size:var(--fs-sm);color:var(--text-muted)}.aging-legend__item strong{font-size:var(--fs-lg)}.quote-lines-head{display:flex;justify-content:space-between;align-items:center;gap:var(--sp-3);margin:var(--sp-5) 0 var(--sp-3);flex-wrap:wrap}.quote-lines-head__title{display:inline-flex;align-items:center;gap:var(--sp-2);font-size:var(--fs-md);font-weight:700}.quote-margin{padding-top:6px;margin-top:4px;border-top:1px dashed var(--border-strong)}.quote-margin dt{font-size:var(--fs-sm)}.quote-margin dd{font-size:var(--fs-sm);font-weight:500!important;color:var(--success-600)}.pick-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--sp-2)}.pick-list__item{display:grid;grid-template-columns:minmax(0,1fr) auto 130px;align-items:center;gap:var(--sp-4);width:100%;padding:var(--sp-3) var(--sp-4);border:1.5px solid var(--border);border-radius:var(--radius);background:var(--surface-card);text-align:left;cursor:pointer}.pick-list__item:hover{border-color:var(--brand-500)}.pick-list__item .badge{justify-self:end}@media (max-width: 640px){.pick-list__item{grid-template-columns:minmax(0,1fr)}.pick-list__item .badge{justify-self:start}}.qr-types{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--sp-2)}@media (max-width: 760px){.qr-types{grid-template-columns:repeat(2,minmax(0,1fr))}}.qr-types__option{display:flex;flex-direction:column;align-items:flex-start;gap:8px;padding:var(--sp-3);border:1.5px solid var(--border);border-radius:var(--radius);background:var(--surface-card);font-weight:600;text-align:left;cursor:pointer}.qr-types__option svg{color:var(--module-qr)}.qr-types__option:hover{border-color:var(--border-strong)}.qr-types__option.is-active{border-color:var(--module-qr);background:color-mix(in srgb,var(--module-qr) 8%,transparent)}.qr-preview{display:flex;flex-direction:column;align-items:center;gap:var(--sp-3);padding:var(--sp-6) var(--sp-4);border-radius:var(--radius);background:var(--surface-sunken)}.qr-preview canvas{max-width:100%;height:auto!important;background:#fff}.qr-preview strong{overflow-wrap:anywhere;text-align:center}.label-sheet{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:var(--sp-3);padding:var(--sp-3);border-radius:var(--radius);background:var(--gray-100)}.label{display:flex;align-items:center;gap:10px;padding:10px;aspect-ratio:5/3;max-width:100%;background:#fff;border:1px dashed var(--border-strong);border-radius:6px;color:#111}.label svg{flex:none}.label__text{display:flex;flex-direction:column;gap:2px;min-width:0}.label__text strong{font-size:12.5px}.label__text span{font-size:11px;line-height:1.25;color:#444;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.label__logo{width:22px;height:auto}:root{--brand-50: #eef3f8;--brand-100: #d6e2ee;--brand-500: #2a5683;--brand-600: #1b3a5c;--brand-700: #132b45;--brand-900: #0d1e31;--brand-contrast: #ffffff;--sky-50: #e8f6fc;--sky-100: #c8eaf8;--sky-500: #12a2d4;--sky-600: #0e87b2;--ai-50: var(--sky-50);--ai-100: var(--sky-100);--ai-200: #9ed8ef;--ai-500: var(--sky-500);--ai-600: var(--sky-600);--gray-0: #ffffff;--gray-25: #fafbfc;--gray-50: #f5f6f8;--gray-100: #eceef2;--gray-200: #dfe2e8;--gray-300: #c9ced7;--gray-400: #9aa2b1;--gray-500: #6b7385;--gray-600: #4d5466;--gray-700: #343a4a;--gray-800: #1f2433;--gray-900: #141824;--success-50: #ecf8f1;--success-600: #16834a;--warning-50: #fff6e6;--warning-600: #b26a00;--danger-50: #fdeeee;--danger-600: #c0322b;--info-50: #eaf5fb;--info-600: #1574a6;--violet-50: #f4effb;--violet-600: #6d3fb0;--module-dashboard: #b42318;--module-core: #d9730d;--module-warehouse: #1f5fbf;--module-asset: #4f8a3c;--module-project: #7a3fb0;--module-finance: #c2367a;--module-qr: #16928f;--module-reports: #a8641e;--surface-page: var(--gray-50);--surface-card: var(--gray-0);--surface-sunken: var(--gray-25);--surface-sidebar: var(--brand-900);--border: var(--gray-200);--border-strong: var(--gray-300);--text: var(--gray-800);--text-muted: var(--gray-500);--text-subtle: var(--gray-400);--font-sans: "Plus Jakarta Sans", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-mono: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--fs-xs: 11px;--fs-sm: 12.5px;--fs-base: 13.5px;--fs-md: 15px;--fs-lg: 18px;--fs-xl: 22px;--fs-2xl: 28px;--sp-1: 4px;--sp-2: 8px;--sp-3: 12px;--sp-4: 16px;--sp-5: 20px;--sp-6: 24px;--sp-8: 32px;--radius-sm: 6px;--radius: 8px;--radius-lg: 12px;--shadow-pop: 0 8px 24px rgba(20, 24, 36, .12), 0 2px 6px rgba(20, 24, 36, .06);--sidebar-w: 256px;--topbar-h: 60px}*,*:before,*:after{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font-family:var(--font-sans);font-size:var(--fs-base);line-height:1.5;color:var(--text);background:var(--surface-page);-webkit-font-smoothing:antialiased}h1,h2,h3,h4{margin:0;line-height:1.25;text-wrap:balance}p{margin:0}a{color:var(--brand-600);text-decoration:none}button,input,select,textarea{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--sky-500);outline-offset:2px}.u-mono{font-family:var(--font-mono);font-size:.92em}.u-num{font-variant-numeric:tabular-nums}.u-muted{color:var(--text-muted)}.u-right{text-align:right}.u-grid{display:grid;gap:var(--sp-4)}.u-grid--2{grid-template-columns:repeat(2,minmax(0,1fr))}.u-grid--3{grid-template-columns:repeat(3,minmax(0,1fr))}.u-grid--4{grid-template-columns:repeat(4,minmax(0,1fr))}.u-grid--side{grid-template-columns:minmax(0,2fr) minmax(0,1fr)}@media (max-width: 1100px){.u-grid--4{grid-template-columns:repeat(2,minmax(0,1fr))}.u-grid--3,.u-grid--side{grid-template-columns:minmax(0,1fr)}}@media (max-width: 640px){.u-grid--2,.u-grid--4{grid-template-columns:minmax(0,1fr)}}.u-stack{display:flex;flex-direction:column;gap:var(--sp-4)}.u-row{display:flex;align-items:center;gap:var(--sp-2);flex-wrap:wrap}@media (prefers-reduced-motion: reduce){*{transition:none!important;animation:none!important}}@media print{.no-print{display:none!important}}
