.rail{position:fixed;top:0;left:0;width:var(--rail-w-open);height:100vh;height:100dvh;background:linear-gradient(180deg,#a41e22,#8b1a1d);border-right:1px solid rgba(255,255,255,.06);z-index:var(--z-drawer);display:flex;flex-direction:column;overflow:hidden;transform:translate(-100%);transition:transform .28s cubic-bezier(.32,.72,0,1);backface-visibility:hidden}.rail.is-open{transform:translate(0);box-shadow:4px 0 24px #00000059}.rail-overlay{position:fixed;inset:0;background:#00000073;z-index:var(--z-overlay)}@media (min-width: 1024px){.rail{width:var(--rail-w);transform:translate(0);z-index:var(--z-rail);transition:width .22s cubic-bezier(.4,0,.2,1);overflow-x:hidden;overflow-y:auto;scrollbar-width:none}.rail::-webkit-scrollbar{width:0}.rail:hover{width:var(--rail-w-open);box-shadow:6px 0 24px #0000004d}.rail-overlay,.rail__close{display:none!important}.rail:not(:hover) .rail__label,.rail:not(:hover) .rail__group-title,.rail:not(:hover) .rail__user-meta,.rail:not(:hover) .rail__foot-label{opacity:0;width:0;flex:0;overflow:hidden;white-space:nowrap;transition:opacity .18s,flex .18s}.rail:hover .rail__label,.rail:hover .rail__group-title,.rail:hover .rail__user-meta,.rail:hover .rail__foot-label{opacity:1;width:auto;flex:1}.rail:not(:hover) .rail__item{justify-content:center;padding:7px 0;gap:0}.rail:not(:hover) .rail__group-title{height:4px;padding:2px 0}.rail:not(:hover) .rail__search{opacity:0;height:0;padding:0;overflow:hidden}.rail:not(:hover) .rail__head{justify-content:center;padding:0}.rail:not(:hover) .rail__brand-logo{display:none}.rail:not(:hover) .rail__mark{display:block}.rail:not(:hover) .rail__user,.rail:not(:hover) .rail__foot-btn,.rail:not(:hover) .rail__conn{justify-content:center;gap:0;padding-left:0;padding-right:0}}.rail__head{position:relative;height:64px;min-height:64px;padding:0;display:flex;align-items:center;justify-content:center;flex-shrink:0;overflow:hidden;background:#fff}.rail__brand-logo{height:38px;width:auto;flex-shrink:0}.rail__mark{display:none;font-size:1.125rem;font-weight:800;letter-spacing:.1em;color:var(--brand)}.rail__close{position:absolute;right:10px;top:50%;transform:translateY(-50%);background:none;border:none;font-size:1.25rem;color:#00000073;cursor:pointer;width:30px;height:30px;display:grid;place-items:center;border-radius:8px}.rail__close:hover{background:#00000012;color:#111}@media (max-width: 1023px){.rail__brand-logo{height:34px}}.rail__search{padding:8px 10px 4px}.rail__search input{width:100%;padding:6px 10px;border-radius:var(--r-sm);background:#ffffff0d;border:1px solid rgba(255,255,255,.06);color:#ffffffd9;font-size:.6875rem;font-family:var(--font-sans);outline:none;transition:border-color .15s}.rail__search input::placeholder{color:#ffffff40}.rail__search input:focus{border-color:#fff3}.rail__nav{flex:1;min-height:0;padding:6px 8px;overflow-y:auto;overflow-x:hidden;scrollbar-width:none}.rail__nav::-webkit-scrollbar{width:0}.rail__group-title{padding:10px 10px 4px;font-size:.625rem;font-weight:700;color:#ffffff4d;text-transform:uppercase;letter-spacing:.08em;white-space:nowrap;overflow:hidden}.rail__item{display:flex;align-items:center;gap:10px;padding:5px 8px;min-height:42px;border-radius:var(--r-sm);color:#ffffff8c;cursor:pointer;white-space:nowrap;margin-bottom:1px;transition:all .15s}.rail__item:hover{background:#ffffff14;color:#fff}.rail__item.is-active{background:#ffffff29;color:#fff;font-weight:600;box-shadow:inset 2px 0 #fff}.rail__icon{width:30px;height:30px;min-width:30px;display:grid;place-items:center;font-size:.95rem;border-radius:var(--r-sm);color:inherit;transition:all .15s}.rail:not(:hover) .rail__item.is-active{background:transparent;box-shadow:none}.rail:not(:hover) .rail__item.is-active .rail__icon{background:#ffffff38;box-shadow:0 0 0 3px #ffffff1a}.rail__label{flex:1;min-width:0;font-size:.78rem;overflow:hidden;text-overflow:ellipsis}.rail__foot{padding:10px 8px 16px;border-top:1px solid rgba(255,255,255,.08);display:flex;flex-direction:column;gap:6px;flex-shrink:0}.rail__conn{display:flex;align-items:center;gap:8px;padding:4px 10px;font-size:.625rem;font-weight:600;color:#fff6;text-transform:uppercase;letter-spacing:.04em}.rail__conn-dot{width:7px;height:7px;min-width:7px;border-radius:50%;background:#22c55e;box-shadow:0 0 0 3px #22c55e2e}.rail__conn-dot.is-off{background:var(--faint);box-shadow:0 0 0 3px #9aa0aa2e}.rail__user{display:flex;align-items:center;gap:10px;padding:6px 8px;border-radius:var(--r);cursor:pointer;overflow:hidden;transition:background .15s}.rail__user:hover{background:#ffffff14}.rail__avatar{width:32px;height:32px;min-width:32px;border-radius:var(--r);background:var(--brand);color:#fff;display:grid;place-items:center;font-size:.6875rem;font-weight:700}.rail__user-meta{display:flex;flex-direction:column;min-width:0}.rail__user-name{font-weight:600;font-size:.78rem;color:#fff}.rail__user-role{font-size:.625rem;color:#fff6;text-transform:uppercase;font-weight:600;letter-spacing:.04em}.rail__foot-btn{display:flex;align-items:center;gap:8px;padding:6px 8px;background:transparent;border:none;border-radius:var(--r);color:#fff6;font-size:.6875rem;font-weight:600;font-family:var(--font-sans);cursor:pointer;width:100%;white-space:nowrap;transition:all .15s}.rail__foot-btn:hover{background:#ef444426;color:#ff6b6b}.rail__foot-label{text-align:left}.topbar{display:flex;align-items:center;gap:12px;height:var(--topbar-h);padding:0 16px;background:#a41e22;color:#fff;position:sticky;top:0;z-index:var(--z-sticky);flex-shrink:0}.topbar__burger{width:44px;height:44px;border-radius:var(--r);border:1px solid rgba(255,255,255,.12);background:#ffffff0f;color:#fff;font-size:1rem;cursor:pointer;display:grid;place-items:center}.topbar__title{font-weight:700;font-size:.875rem}@media (min-width: 1024px){.topbar{display:none}}.auth-page,.auth-page *{font-family:Montserrat,Segoe UI,system-ui,sans-serif}.auth-page{min-height:100vh;min-height:100dvh;background:#0f172a;position:relative;padding:40px 20px;display:flex;flex-direction:column;align-items:center;justify-content:center;overflow:hidden;font-family:Montserrat,Segoe UI,system-ui,sans-serif}.auth-banner{position:fixed;top:0;left:0;right:0;height:38px;background:linear-gradient(90deg,#0f172a,#1e293b,#0f172a);border-bottom:1px solid rgba(255,255,255,.06);overflow:hidden;display:flex;align-items:center;z-index:10}.auth-banner__track{display:inline-flex;align-items:center;gap:32px;white-space:nowrap;animation:auth-marquee 25s linear infinite}.auth-banner__track span{font-size:.75rem;font-weight:600;letter-spacing:2px;text-transform:uppercase;color:#64748b}.auth-banner__dot{width:4px!important;height:4px!important;min-width:4px;border-radius:50%;background:#dc2626!important;display:inline-block;letter-spacing:0!important}@keyframes auth-marquee{0%{transform:translate(-50%)}to{transform:translate(0)}}.auth-brand{position:relative;z-index:2;margin-bottom:26px;text-align:center}.auth-brand__logo{display:block;width:260px;max-width:72vw;height:auto;margin:0 auto;filter:drop-shadow(0 2px 10px rgba(0,0,0,.35))}.auth-brand__mark{font-size:2.1rem;font-weight:700;letter-spacing:.18em;color:#f1f5f9;line-height:1;text-shadow:0 2px 12px rgba(0,0,0,.4)}.auth-brand__rule{width:54px;height:3px;background:#dc2626;margin:14px auto 8px;border-radius:2px}.auth-brand__sub{font-size:.7rem;letter-spacing:.28em;text-transform:uppercase;color:#64748b;font-weight:500}.auth-card{width:420px;max-width:90vw;padding:36px 32px 28px;font-size:14px;color:#f1f5f9;display:flex;flex-direction:column;gap:20px;border-radius:16px;position:relative;z-index:1;background:#1e293b;overflow:hidden}.auth-card:before{content:"";position:absolute;top:50%;left:50%;width:150%;height:150%;transform:translate(-50%,-50%);background:conic-gradient(from 0deg,transparent 0deg,#DC2626 60deg,transparent 120deg,#3B82F6 200deg,transparent 260deg,rgba(220,38,38,.4) 320deg,transparent 360deg);animation:auth-border-spin 6s linear infinite;z-index:-2}.auth-card:after{content:"";position:absolute;inset:2px;background:#1e293b;border-radius:14px;z-index:-1}@keyframes auth-border-spin{to{transform:translate(-50%,-50%) rotate(360deg)}}@media (prefers-reduced-motion: reduce){.auth-card:before{animation:none}.auth-banner__track{animation:none}}.auth-card__title{margin:0 0 2px;font-size:1.375rem;font-weight:700;color:#f1f5f9;text-align:center;letter-spacing:-.01em}.auth-card__subtitle{margin:0;font-size:.8125rem;color:#94a3b8;text-align:center}.auth-form{display:flex;flex-direction:column;gap:16px}.auth-input-group{display:flex;flex-direction:column;gap:6px}.auth-label{font-weight:600;font-size:.6875rem;color:#94a3b8;text-transform:uppercase;letter-spacing:.5px}.auth-input-wrapper{position:relative;display:flex;align-items:center}.auth-input{width:100%;padding:11px 14px;background-color:#0f172a66!important;border:1px solid rgba(51,65,85,.8);color:#f1f5f9!important;border-radius:8px;font-size:.875rem;font-family:inherit;transition:border-color .3s,box-shadow .2s,background .2s;-webkit-text-fill-color:#F1F5F9}.auth-input:-webkit-autofill,.auth-input:-webkit-autofill:hover,.auth-input:-webkit-autofill:focus{-webkit-box-shadow:0 0 0 30px #1E293B inset!important;-webkit-text-fill-color:#F1F5F9!important;border-color:#334155cc;caret-color:#f1f5f9}.auth-input-wrapper .auth-input{padding-right:44px}.auth-input::placeholder{color:#475569;-webkit-text-fill-color:#475569}.auth-input:focus{outline:none;border-color:#dc2626;box-shadow:0 0 0 3px #dc26261f;background:#0f172acc!important}.auth-input--error{border-color:#ef4444}.auth-input--error:focus{box-shadow:0 0 0 3px #ef444433;border-color:#ef4444}.auth-password-toggle{position:absolute;right:6px;top:50%;transform:translateY(-50%);background:none;border:none;padding:6px;cursor:pointer;color:#64748b;display:flex;align-items:center;justify-content:center;border-radius:6px;transition:color .15s,background .15s}.auth-password-toggle:hover{color:#94a3b8;background:#ffffff0f}.auth-field-error{font-size:.75rem;color:#fca5a5;font-weight:500;padding-left:2px}.auth-error{display:flex;align-items:flex-start;gap:8px;padding:10px 14px;border-radius:10px;background:#ef44441f;border:1px solid rgba(239,68,68,.25);color:#fecaca;font-size:.8125rem;line-height:1.4}.auth-error svg{flex-shrink:0;margin-top:1px}.auth-notice{display:flex;flex-direction:column;gap:4px;padding:10px 14px;border-radius:10px;background:#38bdf81a;border:1px solid rgba(56,189,248,.22);color:#bae6fd;font-size:.8125rem;line-height:1.45}.auth-notice__aside{color:#7dd3fc;opacity:.8;font-size:.75rem}.auth-input--code{text-align:center;font-size:1.5rem;font-weight:600;letter-spacing:.5em;text-indent:.5em;font-variant-numeric:tabular-nums}.auth-policy{margin:-4px 0 0;padding-left:18px;color:#94a3b8;font-size:.75rem;line-height:1.65}.auth-link{background:none;border:none;padding:0;color:#94a3b8;font-family:inherit;font-size:.8125rem;cursor:pointer;text-align:center;transition:color .2s}.auth-link:hover:not(:disabled){color:#f1f5f9;text-decoration:underline}.auth-link:disabled{opacity:.5;cursor:default}.auth-link-row{display:flex;justify-content:space-between;gap:12px}.auth-btn{width:100%;padding:13px 24px;margin-top:4px;background:#dc2626;color:#f1f5f9;border:none;border-radius:8px;font-size:.9375rem;font-weight:600;font-family:inherit;cursor:pointer;transition:background .3s,transform .1s;display:inline-flex;align-items:center;justify-content:center;gap:8px}.auth-btn:hover:not(:disabled){background:#ef4444}.auth-btn:active:not(:disabled){transform:scale(.98)}.auth-btn:disabled{opacity:.7;cursor:not-allowed}.auth-spinner{width:16px;height:16px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:auth-spin .6s linear infinite}@keyframes auth-spin{to{transform:rotate(360deg)}}.auth-loading{pointer-events:none}.auth-divider{display:flex;align-items:center;gap:12px;color:#475569;font-size:.75rem;font-weight:500;text-transform:uppercase;letter-spacing:.5px}.auth-divider:before,.auth-divider:after{content:"";flex:1;height:1px;background:#334155}.auth-hint{text-align:center;font-size:.78rem;color:#64748b;line-height:1.7}.auth-hint a{color:#94a3b8}.auth-hint a:hover{color:#f1f5f9;text-decoration:underline}.auth-footer{margin-top:28px;font-size:.8125rem;color:#64748b;text-align:center;letter-spacing:.3px;position:relative;z-index:2}@media (max-width: 480px){.auth-page{padding:30px 16px}.auth-brand__logo{width:200px}.auth-card{padding:28px 20px 22px;gap:16px}.auth-card__title{font-size:1.2rem}}.dt-wrap{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);overflow:auto;max-height:max(320px,calc(100vh - 280px));box-shadow:var(--sh-1)}.dt{width:100%;min-width:560px;border-collapse:collapse;font-size:.78rem}.dt thead{position:sticky;top:0;z-index:2;background:var(--n-50);color:#fff}.dt thead th{padding:12px 14px;text-align:left;font-size:.6875rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);white-space:nowrap;border-bottom:1px solid var(--border)}.dt thead th.is-sortable{cursor:pointer;user-select:none}.dt thead th.is-sortable:hover{background:var(--n-150)}.dt thead th .sort-arrow{opacity:.7;margin-left:4px;font-size:.7em}.dt tbody tr{transition:background .12s ease}.dt tbody tr:nth-child(2n){background:#00000005}.dt tbody tr:hover{background:#1a1a2e0d}.dt tbody tr.is-selected{background:var(--brand-soft)}.dt td{padding:9px 14px;vertical-align:middle;color:var(--text);border-bottom:1px solid var(--border)}.dt .c-center{text-align:center}.dt .c-right{text-align:right}.dt .c-num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.dt .c-mono{font-family:var(--font-mono);font-size:.72rem;color:var(--text-2)}.dt .c-name{font-weight:600;color:var(--navy)}.dt .c-muted{color:var(--muted)}.dt .c-actions{white-space:nowrap;text-align:right}.dt .c-actions .btn{margin-left:5px}.dt .c-tight{width:1%;white-space:nowrap}.dt .c-zero{color:var(--n-300)}.dt .dt-group td{background:#e9eaee;font-size:.6875rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--navy);padding:7px 14px;border-bottom:1px solid var(--border)}.dt-toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:14px}.dt-toolbar .spacer{margin-left:auto}.dt-footer{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:12px 2px 0;font-size:.75rem;color:var(--muted)}.pager{display:flex;align-items:center;gap:4px;margin-left:auto}.pager__btn{border:1px solid var(--border);background:var(--surface);color:var(--text-2);border-radius:var(--r-sm);padding:5px 10px;font-size:.6875rem;font-weight:600;font-family:var(--font-sans);cursor:pointer;transition:all .12s}.pager__btn:hover:not(:disabled){background:var(--navy);border-color:var(--navy);color:#fff}.pager__btn:disabled{opacity:.4;cursor:not-allowed}.pager__page{font-size:.72rem;color:var(--muted);padding:0 8px}.dt--compact{font-size:.7rem;min-width:0}.dt--compact thead th{padding:7px 10px;font-size:.5875rem;letter-spacing:.05em;line-height:1.25}.dt--compact td{padding:5px 10px}.dt--compact .c-actions .btn{margin-left:4px}.dt--compact .eq-row__qty{transform:scale(.92)}.syslog-table{table-layout:fixed;width:100%}.syslog-c-when{width:104px}.syslog-c-who{width:130px}.syslog-c-act{width:160px}.syslog-c-type{width:110px}.syslog-c-what{width:24%}.syslog-c-info{width:40px}@media (max-width: 640px){.syslog-table{table-layout:auto}.syslog-c-when,.syslog-c-who,.syslog-c-act,.syslog-c-type,.syslog-c-what,.syslog-c-info{width:auto}}.syslog-act{display:inline-block;padding:1px 8px;border-radius:999px;font-size:.625rem;font-weight:700;background:var(--n-100);color:var(--text-2);white-space:normal;line-height:1.5;max-width:100%}.syslog-act--created,.syslog-act--uploaded,.syslog-act--generated,.syslog-act--imported,.syslog-act--approved{background:var(--ok-soft);color:var(--ok-text)}.syslog-act--updated,.syslog-act--exported{background:var(--info-soft);color:var(--info-text)}.syslog-act--deleted,.syslog-act--deactivated,.syslog-act--error,.syslog-act--rejected{background:var(--bad-soft);color:var(--bad-text)}.syslog-act--warning{background:var(--warn-soft);color:var(--warn-text)}.syslog-details{overflow-wrap:anywhere}.syslog-changes{display:flex;flex-wrap:wrap;gap:2px 14px}.syslog-change{font-size:.6875rem;color:var(--muted)}.syslog-change s{color:var(--bad-text)}.syslog-note{font-size:.6875rem;color:var(--muted);font-style:italic}.boq-level td{background:var(--n-50);border-top:2px solid var(--border-strong);font-size:.75rem}.boq-level__code{display:inline-block;margin-right:8px;padding:1px 8px;border-radius:var(--r-sm);background:var(--navy);color:#fff;font-family:var(--font-mono);font-size:.625rem;font-weight:700}.boq-level__rename{margin-left:7px;border:none;background:none;color:var(--muted);cursor:pointer;font-size:.75rem}.boq-level__rename:hover{color:var(--navy)}.boq-prev__head{display:flex;align-items:center;gap:8px;margin-bottom:6px;font-size:.8125rem}.boq-prev__grand{display:flex;align-items:center;padding:12px 14px;border:1px solid var(--border-strong);border-radius:var(--r);background:var(--n-50);font-size:.875rem}.th-sort{cursor:pointer;user-select:none;white-space:nowrap}.th-sort:hover{color:var(--navy)}.th-sort__mark{display:inline-block;width:12px;font-size:.55rem;margin-left:2px}.modal-overlay{position:fixed;inset:0;background:#0009;backdrop-filter:blur(2px);z-index:var(--z-modal);display:flex;align-items:center;justify-content:center;padding:24px;animation:fade .14s ease}.modal-overlay--nested{z-index:var(--z-nested-modal)}@keyframes fade{0%{opacity:0}to{opacity:1}}.modal{background:var(--surface);border-radius:var(--r-xl);box-shadow:var(--sh-4);width:min(96vw,640px);max-height:92vh;display:flex;flex-direction:column;overflow:hidden;animation:rise .18s cubic-bezier(.2,.8,.3,1)}.modal--sm{width:min(96vw,450px)}.modal--md{width:min(96vw,640px)}.modal--lg{width:min(96vw,920px)}.modal--xl{width:min(97vw,1220px)}.modal--full{width:97vw;height:94vh;max-height:94vh}@keyframes rise{0%{opacity:0;transform:translateY(8px) scale(.985)}to{opacity:1;transform:none}}.modal__head{display:flex;align-items:flex-start;gap:14px;padding:16px 22px;background:var(--navy);border-bottom:1px solid rgba(255,255,255,.15);flex-shrink:0}.modal__title{font-size:1rem;font-weight:700;color:#fff;line-height:1.3}.modal__sub{font-size:.72rem;color:#ffffff8c;margin-top:3px}.modal__head-actions{margin-left:auto;display:flex;gap:8px;align-items:center}.modal__head .btn{border-color:#fff3;background:#ffffff1f;color:#fff}.modal__head .btn:hover:not(:disabled){background:#ffffff38}.modal__head .btn--brand{background:var(--brand);border-color:var(--brand)}.modal__close{width:32px;height:32px;border-radius:var(--r);border:1px solid rgba(255,255,255,.2);background:#ffffff1f;color:#ffffffbf;font-size:1.25rem;line-height:1;cursor:pointer;display:grid;place-items:center;transition:all .12s}.modal__close:hover{background:#ffffff3d;color:#fff}.modal__body{padding:20px 22px;overflow-y:auto;flex:1;min-height:0}.modal__body--flush{padding:0}.doc-preview__frame{display:block;width:100%;height:min(72vh,980px);border:1px solid var(--border);border-radius:var(--r);background:#fff}.modal__foot{display:flex;align-items:center;gap:10px;padding:16px 22px;border-top:1px solid var(--border);background:var(--n-25);flex-shrink:0;flex-wrap:wrap}.modal__foot .spacer{margin-left:auto}.confirm__message{font-size:.9rem;line-height:1.65;color:var(--text)}.confirm__detail{margin-top:12px;padding:12px 14px;background:var(--n-50);border:1px solid var(--border);border-radius:var(--r-sm);font-size:.8rem;color:var(--muted);line-height:1.6}.confirm__facts{margin:12px 0 0;border:1px solid var(--border);border-radius:var(--r-sm);overflow:hidden}.confirm__facts>div{display:flex;align-items:baseline;gap:12px;padding:7px 14px;border-top:1px solid var(--border);background:var(--surface)}.confirm__facts>div:first-child{border-top:none}.confirm__facts dt{flex:0 0 40%;font-size:.6875rem;font-weight:600;color:var(--muted)}.confirm__facts dd{margin:0;flex:1;min-width:0;font-size:.8125rem;font-weight:700;color:var(--navy);word-break:break-word}.confirm__warning{margin-top:12px;padding:10px 14px;background:var(--warn-soft);border:1px solid #f0dcb0;border-left:3px solid var(--warn);border-radius:var(--r-sm);font-size:.78rem;color:var(--warn-text);line-height:1.6}.detail-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));background:var(--surface);border:1px solid var(--border);border-radius:var(--r);overflow:hidden}.detail-list>div{padding:10px 14px;min-width:0;box-shadow:-1px -1px 0 0 var(--border)}.detail__label{font-size:.5875rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--faint);margin-bottom:3px}.detail__value{font-size:.8125rem;font-weight:550;color:var(--text);word-break:break-word}.detail-list--tiles{background:none;border:0;border-radius:0;overflow:visible;gap:8px}.detail-list--tiles>div{box-shadow:none;background:var(--n-50);border:1px solid var(--border);border-radius:var(--r-sm);padding:9px 12px}.detail__label--bare{margin-bottom:4px}.timeline{display:flex;flex-direction:column}.timeline__item{display:flex;gap:14px;padding:14px 0;border-bottom:1px solid var(--n-150);position:relative}.timeline__item:last-child{border-bottom:none}.timeline__dot{width:8px;height:8px;border-radius:50%;background:var(--n-400);margin-top:7px;flex-shrink:0;box-shadow:0 0 0 3px var(--n-100)}.timeline__dot--created{background:var(--ok);box-shadow:0 0 0 3px var(--ok-soft)}.timeline__dot--deleted,.timeline__dot--deactivated{background:var(--bad);box-shadow:0 0 0 3px var(--bad-soft)}.timeline__dot--imported{background:var(--info);box-shadow:0 0 0 3px var(--info-soft)}.timeline__body{flex:1;min-width:0}.timeline__head{display:flex;gap:8px;align-items:baseline;flex-wrap:wrap}.timeline__action{font-size:.78rem;font-weight:700;color:var(--navy)}.timeline__meta{font-size:.6875rem;color:var(--faint);margin-top:2px}.timeline__changes{margin-top:8px;display:grid;gap:4px;padding:10px 12px;background:var(--n-50);border-radius:var(--r-sm);border:1px solid var(--border)}.timeline__change{font-size:.78rem;color:var(--text-2)}.timeline__change b{font-weight:560;color:var(--text)}.timeline__from{color:var(--bad-text);text-decoration:line-through}.timeline__to{color:var(--ok-text);font-weight:500}.pd__group{font-size:.625rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);padding-bottom:6px;margin-bottom:12px;border-bottom:1px solid var(--border)}.timeline__note{margin-top:4px;padding-left:8px;border-left:2px solid var(--line);font-size:.72rem;line-height:1.5;color:var(--muted);white-space:pre-wrap}.badge--soft{background:var(--surface-2);color:var(--faint);border:1px solid var(--line);font-weight:600}.imprev__sec{border:1px solid var(--border);border-radius:var(--r);overflow:hidden}.imprev__head{display:flex;align-items:center;gap:8px;padding:9px 12px;background:var(--n-25);font-size:.75rem;cursor:pointer}.imprev__head input[type=checkbox]{width:15px;height:15px;accent-color:var(--brand)}.imprev__badge{min-width:26px;text-align:center;padding:1px 7px;border-radius:999px;font-size:.6875rem;font-weight:800;font-variant-numeric:tabular-nums}.imprev__badge--ok{background:var(--ok-soft);color:var(--ok-text)}.imprev__badge--warn{background:var(--warn-soft);color:var(--warn-text)}.imprev__badge--bad{background:var(--bad-soft);color:var(--bad-text)}.imprev__rows{max-height:220px;overflow-y:auto;border-top:1px solid var(--border)}.imprev__row{display:flex;align-items:center;gap:9px;padding:6px 12px;font-size:.72rem;border-bottom:1px solid var(--border)}.imprev__row:last-child{border-bottom:none}.imprev__row--tall{align-items:flex-start}.imprev__mark{font-weight:800;width:14px;text-align:center;flex-shrink:0}.imprev__mark--ok{color:var(--ok-text)}.imprev__mark--warn{color:var(--warn-text)}.imprev__mark--bad{color:var(--bad-text)}.imprev__changes{display:flex;flex-wrap:wrap;gap:4px 14px;margin-top:3px}.imprev__change{font-size:.6875rem;color:var(--muted)}.imprev__change s{color:var(--bad-text);text-decoration:line-through}.imprev__change b{color:var(--ok-text)}.detail-list--pairs{grid-template-columns:repeat(2,1fr)}.field{display:flex;flex-direction:column;gap:6px;min-width:0}.field__label{font-size:.6875rem;font-weight:700;color:var(--text-2);text-transform:uppercase;letter-spacing:.04em}.field__label .req{color:var(--brand);margin-left:3px}.field__hint{font-size:.6875rem;color:var(--faint);line-height:1.5}.field__error{font-size:.6875rem;color:var(--bad-text);font-weight:600}.input,.select,.textarea{width:100%;padding:8px 11px;font-family:var(--font-sans);font-size:.78rem;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:var(--r-sm);outline:none;transition:border-color .13s,box-shadow .13s}.input::placeholder,.textarea::placeholder{color:var(--faint)}.input:hover:not(:disabled),.select:hover:not(:disabled),.textarea:hover:not(:disabled){border-color:var(--border-strong)}.input:focus,.select:focus,.textarea:focus{border-color:var(--navy);box-shadow:0 0 0 3px #1a1a2e1a}.input:disabled,.select:disabled,.textarea:disabled{background:var(--n-50);color:var(--muted);cursor:not-allowed;border-color:var(--border)}.input.is-invalid,.select.is-invalid{border-color:var(--bad)}.input.is-invalid:focus,.select.is-invalid:focus{box-shadow:0 0 0 3px #dc35451f}.textarea{resize:vertical;min-height:80px;line-height:1.6}.input--sm{padding:5px 9px;font-size:.72rem}.input--num{text-align:right;font-variant-numeric:tabular-nums}.select{appearance:none;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%236c757d' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 6.5 8 10.5l4-4'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 9px center;background-size:14px;padding-right:28px;cursor:pointer}.form-grid{display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(230px,1fr))}.form-grid .span-2{grid-column:span 2}@media (max-width: 560px){.form-grid .span-2{grid-column:span 1}}.check{display:inline-flex;align-items:center;gap:8px;cursor:pointer;font-size:.75rem;color:var(--text-2)}.check input{width:15px;height:15px;accent-color:var(--navy);cursor:pointer}.check.is-disabled{opacity:.5;cursor:not-allowed}.richtext{border:1px solid var(--border-strong);border-radius:var(--r);overflow:hidden;background:var(--surface)}.richtext__bar{display:flex;flex-wrap:wrap;gap:4px 10px;padding:6px 8px;background:var(--n-50);border-bottom:1px solid var(--border);align-items:center}.richtext__group{display:inline-flex;gap:2px;align-items:center}.richtext__group+.richtext__group{border-left:1px solid var(--border);padding-left:10px}.richtext__group--end{margin-left:auto}.richtext__fields{display:flex;flex-wrap:wrap;gap:6px;align-items:center;padding:6px 10px;background:var(--surface-2, var(--n-50));border-bottom:1px solid var(--border)}.richtext__hint{font-size:.65rem;font-weight:600;color:var(--faint);margin-right:2px}.richtext__btn{border:1px solid transparent;border-radius:var(--r-sm);background:transparent;color:var(--text-2);font-family:var(--font-sans);font-size:.72rem;font-weight:600;padding:4px 9px;cursor:pointer;min-height:26px}.richtext__btn:hover{background:var(--n-100);border-color:var(--border);color:var(--navy)}.richtext__btn--field{border:1px solid var(--border);background:var(--surface);border-radius:999px;font-size:.66rem;padding:3px 9px}.richtext__btn--field:hover{border-color:var(--navy)}.richtext__page{padding:14px 16px;font-size:.85rem;line-height:1.6;outline:none;background:#fff;color:#1a1a1a;overflow-y:auto;resize:vertical}.richtext__page p{margin:0 0 .6em}.richtext__page ul,.richtext__page ol{margin:0 0 .6em;padding-left:1.4em}.ratelist{border:1px solid var(--border);border-radius:var(--r);background:var(--surface);overflow:hidden;min-width:0}.ratelist__head{display:flex;align-items:baseline;gap:10px;padding:9px 13px;background:var(--n-50);border-bottom:1px solid var(--border)}.ratelist__title{font-size:.5875rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--faint)}.ratelist__sub{font-size:.6875rem;color:var(--faint)}.ratelist__total{margin-left:auto;font-size:.78rem;font-weight:700;color:var(--text);font-variant-numeric:tabular-nums}.raterow{display:flex;align-items:center;gap:10px;padding:4px 13px;border-bottom:1px solid var(--border)}.raterow:last-child{border-bottom:none}.raterow__name{flex:1;min-width:0;font-size:.78rem}.raterow--off .raterow__name{color:var(--muted)}.raterow__pct{display:flex;align-items:center;gap:5px;flex:none}.raterow__pct .input{width:76px}.raterow__pct .unit{font-size:.72rem;color:var(--faint);width:8px}.raterow--sum{background:var(--n-50)}.raterow--sum .raterow__name{font-weight:650;color:var(--text)}.formpanel{border:1px solid var(--border);border-radius:var(--r);background:var(--surface);padding:13px 15px 15px;min-width:0}.formpanel__title{font-size:.5875rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--faint);padding-bottom:9px;margin-bottom:13px;border-bottom:1px solid var(--border)}.formpanel__body{display:grid;gap:13px;align-content:start}.search{position:relative;display:inline-flex;align-items:center;min-width:min(210px,100%);max-width:100%}.search__icon{position:absolute;left:10px;display:inline-flex;color:var(--faint);pointer-events:none;line-height:1}.search__icon svg{width:13px;height:13px}.search .input{padding-left:29px}.segmented{display:inline-flex;flex-wrap:wrap;background:var(--n-100);border:1px solid var(--border);border-radius:var(--r);padding:3px;gap:2px}.segmented button{border:none;background:transparent;padding:6px 16px;border-radius:var(--r-sm);font-family:var(--font-sans);font-size:.6875rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);cursor:pointer;transition:all .13s}.segmented button:hover:not(.is-active){color:var(--navy)}.segmented button.is-active{background:var(--navy);color:#fff}.dropzone{border:1.5px dashed var(--border-strong);border-radius:var(--r-lg);padding:32px 20px;text-align:center;color:var(--muted);font-size:.78rem;cursor:pointer;background:var(--n-50);transition:border-color .15s,background .15s}.dropzone:hover,.dropzone.is-over{border-color:var(--brand);background:var(--brand-soft)}.dropzone__title{font-weight:700;color:var(--navy);margin-bottom:4px}.dropzone__hint{font-size:.6875rem;color:var(--faint)}.dd{position:relative}.dd__trigger{display:flex;align-items:center;gap:7px;width:100%;height:32px;padding:0 10px 0 11px;border:1px solid var(--border);border-radius:var(--r);background:var(--surface);font-family:var(--font-sans);font-size:.6875rem;font-weight:600;color:var(--navy);cursor:pointer;text-align:left;transition:border-color .13s,background .13s}.dd__trigger:hover{border-color:var(--border-strong);background:var(--n-25)}.dd__trigger.is-open{border-color:var(--navy);box-shadow:0 0 0 3px #1a1a2e1a}.dd__meta{font-family:var(--font-mono);font-size:.625rem;font-weight:600;color:var(--muted);flex-shrink:0}.dd__label{flex:1;min-width:0}.dd__caret{color:var(--muted);font-size:.8rem;line-height:1;margin-top:-4px;flex-shrink:0;transition:transform .15s}.dd__trigger.is-open .dd__caret{transform:rotate(180deg);margin-top:2px}.dd__list{position:absolute;top:calc(100% + 5px);left:0;z-index:var(--z-dropdown);min-width:100%;width:max-content;max-width:min(340px,92vw);background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--sh-3);overflow:hidden;animation:dd-in .13s ease}@keyframes dd-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}.dd__search{display:flex;align-items:center;gap:7px;padding:8px 10px;border-bottom:1px solid var(--border);background:var(--n-25)}.dd__search-icon{color:var(--faint);font-size:.8rem;line-height:1}.dd__search input{flex:1;min-width:0;border:none;background:none;outline:none;font-family:var(--font-sans);font-size:.72rem;color:var(--text)}.dd__search input::placeholder{color:var(--faint)}.dd__scroll{margin:0;padding:4px;list-style:none;max-height:264px;overflow-y:auto;overscroll-behavior:contain}.dd__empty{padding:14px 10px;font-size:.72rem;color:var(--faint);text-align:center}.dd__opt{display:flex;align-items:center;gap:8px;width:100%;padding:7px 9px;border:none;border-radius:var(--r-sm);background:transparent;font-family:var(--font-sans);font-size:.72rem;font-weight:600;color:var(--text);cursor:pointer;text-align:left}.dd__opt.is-active{background:var(--n-100)}.dd__opt.is-selected{color:var(--brand)}.dd__opt.is-selected .dd__meta{color:var(--brand);opacity:.75}.dd__opt.is-selected.is-active{background:var(--brand-soft)}.dd__tick{margin-left:auto;color:var(--brand);font-size:.72rem;flex-shrink:0}.dd__create{display:flex;align-items:center;gap:7px;width:100%;padding:9px 10px;border:none;border-top:1px solid var(--border);background:var(--n-25);font-family:var(--font-sans);font-size:.72rem;font-weight:700;color:var(--brand);cursor:pointer;text-align:left}.dd__create:hover{background:var(--brand-soft)}.pick__similar{display:flex;flex-wrap:wrap;gap:6px}.pick__act{border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface);color:var(--muted);font-family:var(--font-sans);font-size:.5875rem;font-weight:700;padding:2px 7px;cursor:pointer;opacity:0;transition:opacity .12s,color .12s,border-color .12s}[role=button]:hover .pick__act,.pick__act:focus{opacity:1}@media (pointer: coarse){.pick__act{opacity:1}}.pick__act:hover{color:var(--navy);border-color:var(--navy)}.pick__act--bad:hover{color:var(--brand);border-color:var(--brand)}.sel{display:grid;grid-template-columns:minmax(190px,220px) minmax(0,1fr) minmax(200px,240px);gap:12px;align-items:stretch;height:100%;min-height:0}.sel--vh{height:calc(100vh - 142px);min-height:420px}@media (max-width: 1023px){.sel--vh{height:auto;min-height:0}}@media (max-width: 1240px){.sel{grid-template-columns:minmax(0,1fr) minmax(200px,250px)}.sel__pane--pick{grid-column:1 / -1}}@media (max-width: 840px){.sel{grid-template-columns:1fr}.sel__pane--pick{grid-column:auto}}.sel__pane{display:flex;flex-direction:column;min-height:0;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--sh-1);position:relative;transition:opacity .15s,box-shadow .15s}.sel__pane.is-waiting{opacity:.55}.sel__pane--out{background:var(--n-25)}.sel__pane--out .sel__pane-head{background:var(--n-100);border-bottom-color:var(--border-strong)}.sel__pane--out .cart__row{border-bottom-color:var(--n-150)}.sel__pane--out .cart__row:hover{background:var(--n-50)}.sel__pane-head{padding:11px 14px;background:var(--surface);border-bottom:1px solid var(--border);display:flex;align-items:center;gap:10px;flex-wrap:nowrap;flex-shrink:0}.sel__pane-title{font-size:.8125rem;font-weight:700;color:var(--navy);letter-spacing:-.01em}.sel__pane-sub{font-size:.6875rem;color:var(--muted)}.sel__pane-count{margin-left:auto;font-size:.6875rem;font-weight:700;color:var(--text-2);white-space:nowrap;font-variant-numeric:tabular-nums}.sel__pane-body{flex:1;overflow-y:auto;overflow-x:auto;min-height:0}.sel__pane-foot{padding:11px 16px;border-top:1px solid var(--border);background:var(--n-50);flex-shrink:0;display:flex;gap:8px;align-items:center;flex-wrap:wrap}.sel__cascade{display:flex;flex-direction:column;min-height:0}.sel__cascade-group{border-bottom:1px solid var(--border);padding-bottom:4px}.sel__cascade-label{padding:10px 16px 4px;font-size:.625rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--faint)}.sel__opt{padding:7px 14px;font-size:.75rem;cursor:pointer;display:flex;align-items:center;gap:8px;min-width:0;color:var(--text-2);border-left:2px solid transparent;transition:background .12s,color .12s}.sel__opt:hover{background:var(--n-50);color:var(--navy)}.sel__opt.is-chosen{background:var(--n-50);color:var(--navy);font-weight:700}.sel__opt.is-active{border-left-color:var(--brand);background:var(--brand-soft);color:var(--brand);font-weight:700}.sel__opt-meta{margin-left:auto;padding-left:8px;font-size:.6875rem;color:var(--faint);white-space:nowrap;flex-shrink:0}.sel__cascade-empty{padding:4px 16px 10px;font-size:.6875rem;color:var(--faint);font-style:italic}.sel__pane-alert{color:var(--bad);font-weight:700}.sel__tag-input{width:200px;min-width:140px;font-weight:700;font-family:var(--font-mono);color:var(--navy);flex-shrink:1}.sel__foot-totals{display:flex;align-items:baseline;gap:5px;font-size:.6875rem;color:var(--muted);white-space:nowrap}.sel__foot-totals b{color:var(--navy);font-weight:700;font-variant-numeric:tabular-nums}.sel__foot-totals i{color:var(--n-300);font-style:normal}.sel__tagbar{display:flex;align-items:flex-end;gap:14px;padding:14px 16px;border-bottom:1px solid var(--border);flex-wrap:wrap;flex-shrink:0}.sel__io-strip{display:flex;gap:16px;flex-wrap:wrap;align-items:baseline;padding:8px 14px;border-bottom:1px solid var(--border);background:var(--n-25);flex-shrink:0}.io-chip{display:flex;align-items:baseline;gap:5px;font-size:.6875rem}.io-chip__label{font-weight:600;color:var(--faint);letter-spacing:.03em}.io-chip__value{font-variant-numeric:tabular-nums;font-weight:700;color:var(--navy)}.io-chip.is-zero{opacity:.45}.io-chip--total .io-chip__label{color:var(--muted)}.io-chip--total .io-chip__value{color:var(--navy);background:var(--n-150);border-radius:var(--r-sm);padding:1px 7px}.sel__group-head{position:sticky;top:0;z-index:1;background:var(--surface);padding:10px 14px 4px;font-size:.5625rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--faint);border-bottom:1px solid var(--border);display:flex;align-items:center;gap:9px}.sel__group-head input[type=checkbox]{width:15px;height:15px;accent-color:var(--brand);cursor:pointer}.sel__group-count{margin-left:auto;font-weight:600;color:var(--muted);letter-spacing:0;text-transform:none;font-variant-numeric:tabular-nums}.sel__row{display:grid;grid-template-columns:24px 50px minmax(180px,1fr) minmax(110px,.55fr) repeat(5,38px) minmax(64px,78px) 26px;gap:6px;align-items:center;padding:3px 14px;border-bottom:1px solid var(--border);font-size:.75rem;transition:background .1s}.sel__row:hover{background:var(--n-50)}.sel__row.is-checked{background:var(--brand-soft)}.sel__row.is-checked .sel__name-text{font-weight:700;color:var(--navy)}.sel__row.is-draft{opacity:.5}.sel__row-head{font-size:.625rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--faint);background:var(--surface);border-bottom:1px solid var(--border-strong);position:sticky;top:0;z-index:2;padding-top:9px;padding-bottom:9px}.sel__row-head:hover{background:var(--surface)}.sel__row input[type=checkbox]{width:15px;height:15px;accent-color:var(--brand);cursor:pointer}.sel__row .input{border-color:transparent;background:transparent;padding:3px 7px;font-size:.72rem;transition:border-color .12s,background .12s}.sel__row .input:hover:not(:disabled){border-color:var(--border);background:var(--surface)}.sel__row .input:focus{border-color:var(--navy);background:var(--surface);box-shadow:0 0 0 2px #1a1a2e14}.sel__row .input:disabled{background:transparent;border-color:transparent;color:var(--faint);cursor:default}.sel__row .input--io{text-align:center;padding:3px 2px;font-variant-numeric:tabular-nums}.sel__row .input--io.is-zero{color:var(--n-300)}.sel__row .input--io.is-zero:focus{color:var(--text)}.sel__row .mono{font-family:var(--font-mono)}.sel__row .row--tight{flex-wrap:nowrap}.sel__name{min-width:0;font-size:.72rem}.sel__name-text{font-weight:500;color:var(--text)}@media (max-width: 900px){.sel__row{grid-template-columns:24px 50px 1fr;row-gap:5px}}.cart__row{display:flex;align-items:center;gap:8px;padding:8px 12px 8px 14px;border-bottom:1px solid var(--border);border-left:2px solid transparent;cursor:pointer;transition:background .12s}.cart__row:hover{background:var(--n-50)}.cart__row.is-active{border-left-color:var(--brand);background:var(--brand-soft)}.cart__tag{font-weight:700;font-size:.8125rem;color:var(--navy)}.cart__lamp{width:7px;height:7px;min-width:7px;border-radius:50%;flex-shrink:0}.cart__lamp.is-ok{background:var(--ok);box-shadow:0 0 0 2px var(--ok-soft)}.cart__lamp.is-bad{background:var(--bad);box-shadow:0 0 0 2px var(--bad-soft)}.cart__qty{font-size:.72rem;font-weight:600;color:var(--muted);font-variant-numeric:tabular-nums;min-width:22px;text-align:right}.cart__info{width:22px;height:22px;min-width:22px;display:grid;place-items:center;border:1px solid var(--border);border-radius:50%;background:var(--n-100);color:var(--navy);cursor:pointer;flex-shrink:0;padding:0;transition:all .15s}.cart__info:hover{background:var(--navy);border-color:var(--navy);color:#fff}.sel__project-bar{display:flex;align-items:baseline;gap:22px;flex-wrap:wrap;margin:0 2px 12px;padding-bottom:10px;border-bottom:1px solid var(--border)}.sel__project-name{font-weight:700;font-size:.8125rem;color:var(--navy)}.sel__project-stat{display:flex;align-items:baseline;gap:6px;line-height:1.2}.sel__project-stat b{font-size:.9375rem;font-variant-numeric:tabular-nums;font-weight:700;color:var(--navy)}.sel__project-stat span{font-size:.6875rem;color:var(--muted);font-weight:500}.sel__project-stat[style] b{color:inherit}.pnl-item{display:flex;align-items:center;gap:7px;padding:7px 10px 7px 14px;border-bottom:1px solid var(--border);border-left:2px solid transparent;cursor:pointer;transition:background .12s}.pnl-item:hover{background:var(--n-50)}.pnl-item.is-active{border-left-color:var(--brand);background:var(--brand-soft)}.pnl-item__name{font-weight:700;font-size:.8125rem;color:var(--navy);min-width:0}.pnl-item__tag{font-size:.5625rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);background:var(--n-100);border-radius:20px;padding:1px 6px;flex-shrink:0}.pnl-item__pts{font-size:.6875rem;font-weight:700;color:var(--text-2);font-variant-numeric:tabular-nums;white-space:nowrap;flex-shrink:0}.pnl-row{display:grid;grid-template-columns:minmax(140px,1fr) minmax(90px,.55fr) 40px minmax(104px,.7fr) 176px 24px;gap:8px;align-items:center;padding:4px 14px;border-bottom:1px solid var(--border);font-size:.75rem;transition:background .1s}.pnl-row:hover{background:var(--n-50)}.pnl-row--head{font-size:.625rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--faint);background:var(--surface);border-bottom:1px solid var(--border-strong);position:sticky;top:0;z-index:2;padding-top:9px;padding-bottom:9px}.pnl-row--head:hover{background:var(--surface)}.pnl-row--unit.is-left{border-left:2px solid var(--bad)}.pnl-row--unit.is-placed{border-left:2px solid transparent}.pnl-cell__tag{min-width:0;font-weight:700;color:var(--navy)}.pnl-cell__muted{min-width:0;color:var(--muted)}.pnl-cell__num{text-align:center;color:var(--muted);font-variant-numeric:tabular-nums}.pnl-cell__where{min-width:0;display:flex;align-items:center;gap:5px}.pnl-cell__act{display:flex;justify-content:flex-end;gap:5px}.pnl-cell__act .btn{white-space:nowrap}@media (max-width: 1100px){.pnl-row{grid-template-columns:minmax(110px,1fr) minmax(96px,.7fr) 168px 24px}.pnl-cell__muted,.pnl-cell__cmps,.pnl-row--head span:nth-child(2),.pnl-row--head span:nth-child(3){display:none}}.eq-row__qty{display:inline-flex;align-items:center;border:1px solid var(--border-strong);border-radius:var(--r-sm);overflow:hidden;background:var(--surface)}.eq-row__step{width:22px;height:24px;border:none;background:transparent;color:var(--text-2);font-size:.8rem;cursor:pointer;line-height:1}.eq-row__step:hover{background:var(--n-150);color:var(--navy)}.eq-row__qty-value{min-width:26px;text-align:center;padding:0 4px;border-left:1px solid var(--border);border-right:1px solid var(--border);font-size:.72rem;font-weight:700;font-variant-numeric:tabular-nums;color:var(--navy);line-height:24px}.sel__row .cart__info{width:20px;height:20px;min-width:20px}.sel__row .cart__info:not(:hover){background:transparent;border-color:transparent;color:var(--n-300)}@media (pointer: coarse){.sel__row .cart__info:not(:hover){background:var(--n-100);border-color:var(--border);color:var(--navy)}}.sel__row:hover .cart__info{background:var(--n-100);border-color:var(--border);color:var(--navy)}.cart__search{display:flex;align-items:center;gap:7px;padding:7px 12px;border-bottom:1px solid var(--border);background:var(--surface);flex-shrink:0}.cart__search-icon{color:var(--faint);font-size:.8rem;line-height:1}.cart__search input{flex:1;min-width:0;border:none;background:none;outline:none;font-family:var(--font-sans);font-size:.72rem;color:var(--text)}.cart__search input::placeholder{color:var(--faint)}.cart__search-clear{border:none;background:none;color:var(--faint);font-size:1rem;line-height:1;cursor:pointer;padding:0 2px}.cart__search-clear:hover{color:var(--navy)}.cmp-row__name{font-size:.75rem;font-weight:600;color:var(--navy);flex:1 1 40%;min-width:0}.pcg{border-bottom:1px solid var(--border)}.pcg:last-child{border-bottom:none}.pcg__head{display:flex;align-items:center;gap:8px;padding:8px 10px 6px 14px;background:var(--n-50);border-bottom:1px solid var(--border)}.pcg__count{font-size:.625rem;color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap}.pcg__split{font-size:.5625rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--warn-text);background:var(--warn-soft);border-radius:20px;padding:1px 7px}.pcg__clear{width:20px;height:20px;border:none;border-radius:var(--r-sm);background:transparent;color:var(--n-400);font-size:1rem;line-height:1;cursor:pointer;transition:all .13s}.pcg__clear:hover{background:var(--bad-soft);color:var(--bad)}.pcg .cart__row{padding-left:22px}.sel--two{grid-template-columns:minmax(200px,250px) minmax(0,1fr)}@media (max-width: 840px){.sel--two{grid-template-columns:1fr}}.eq-state{display:inline-flex;align-items:center;gap:5px;font-size:.6875rem;font-weight:700;white-space:nowrap;font-variant-numeric:tabular-nums}.eq-state--left{color:var(--bad)}.eq-state--done{color:var(--ok);font-weight:600}.eq-state__dot{width:6px;height:6px;border-radius:50%;background:var(--bad);box-shadow:0 0 0 2px var(--bad-soft)}.eq-row.is-left{border-left:2px solid var(--bad)}.eq-row.is-placed{border-left:2px solid transparent}.pd-contents{border:1px solid var(--border);border-radius:var(--r);overflow:hidden auto;max-height:320px}.pcg__type{font-size:.625rem;color:var(--muted);min-width:0}.wsteps__own{display:inline-flex;align-items:center;gap:6px}.pdp{display:flex;flex-direction:column;gap:16px}.pdp__sec{display:flex;flex-direction:column;gap:7px}.pdp__cap{display:flex;align-items:baseline;gap:8px;margin:0;font-size:.625rem;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--faint)}.pdp__cap-note{margin-left:auto;text-transform:none;letter-spacing:0;font-size:.6875rem;font-weight:600;color:var(--muted);font-variant-numeric:tabular-nums}.pdp__box{border:1px solid var(--border);border-radius:var(--r);overflow:hidden}.pdp__io{border:1px solid var(--border);border-radius:var(--r);gap:20px}.pdp__none{margin:0;padding:10px 12px;font-size:.72rem;color:var(--faint);font-style:italic;border:1px dashed var(--border);border-radius:var(--r)}.pdp__note{margin:0;font-size:.75rem;color:var(--text-2)}.pdp__box .pcg:last-child .cart__row:last-child{border-bottom:none}.eq-row__here{font-size:.625rem;font-weight:600;color:var(--muted);white-space:nowrap}.sel__pane-acts{display:flex;align-items:center;gap:8px;flex-shrink:0;padding-left:10px}.sel__pane-acts .btn{white-space:nowrap}.cart__act{border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface);color:var(--muted);font-family:var(--font-sans);font-size:.5875rem;font-weight:700;padding:2px 7px;cursor:pointer;opacity:0;transition:opacity .12s,color .12s,border-color .12s}.cart__row:hover .cart__act,.cart__row.is-active .cart__act,.cart__act:focus{opacity:1}.cart__act:hover{color:var(--navy);border-color:var(--navy)}.cart__act--bad{font-size:.8rem;line-height:1;padding:1px 6px}.cart__act--bad:hover{color:var(--brand);border-color:var(--brand)}.sel__detail-table{max-height:min(52vh,420px);border-radius:var(--r)}.sel__detail-table tfoot td{position:sticky;bottom:0;background:var(--surface-2);border-top:1px solid var(--border);font-variant-numeric:tabular-nums}.sel__price{text-align:right;font-size:.72rem;font-variant-numeric:tabular-nums;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sel__row.is-checked .sel__price{color:var(--navy);font-weight:600}.whead{display:flex;align-items:stretch;gap:0;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--sh-1);margin-bottom:12px;min-height:48px;overflow:visible}.whead__project{display:flex;align-items:center;gap:9px;padding:0 16px 0 12px;border:none;border-right:1px solid var(--border);background:transparent;color:var(--navy);font-family:var(--font-sans);text-align:left;cursor:pointer;width:208px;flex-shrink:0;border-radius:var(--r-lg) 0 0 var(--r-lg);transition:background .15s}.whead__project:hover{background:var(--n-50)}.whead__project-back{width:22px;height:22px;min-width:22px;border-radius:50%;display:grid;place-items:center;background:var(--n-100);border:1px solid var(--border);color:var(--navy);transition:all .15s}.whead__project:hover .whead__project-back{background:var(--navy);border-color:var(--navy);color:#fff}.whead__project-name{display:block;font-size:.8125rem;font-weight:700;letter-spacing:-.01em;line-height:1.2;color:var(--navy)}.whead__project-code{display:block;font-family:var(--font-mono);font-size:.625rem;color:var(--muted);margin-top:1px}.wsteps{display:flex;align-items:center;gap:4px;flex-wrap:wrap;flex:1;min-width:0;padding:6px 12px}.whead>.dd,.whead>.btn{align-self:center;margin-right:8px;flex-shrink:0}.whead>.dd{margin-left:8px}@media (max-width: 1100px){.whead{flex-wrap:wrap}.whead__project{width:100%;padding:10px 16px}}.wsteps__item{display:inline-flex;align-items:center;gap:6px;padding:5px 10px;border:none;background:transparent;border-radius:var(--r-sm);font-family:var(--font-sans);font-size:.72rem;font-weight:600;color:var(--muted);cursor:pointer;white-space:nowrap;transition:all .13s}.wsteps__item:hover{background:var(--n-100);color:var(--navy)}.wsteps__item.is-active{background:var(--navy);color:#fff;font-weight:700}.wsteps__dot{font-size:.6875rem;font-weight:700;font-variant-numeric:tabular-nums;color:var(--n-400);line-height:1}.wsteps__item.is-done .wsteps__dot{color:var(--ok)}.wsteps__item.is-warn .wsteps__dot{color:var(--warn)}.wsteps__item.is-active .wsteps__dot{color:#fff9}.wsteps__state{font-size:.625rem;font-weight:650;white-space:nowrap;color:var(--warn-text);background:var(--warn-bg, #fdf6dd);border:1px solid rgba(180,130,0,.25);border-radius:999px;padding:3px 10px}.btn.btn--guide{background:#ffd23f;border-color:#e8b820;color:#4a3800;font-weight:800;gap:6px}.btn.btn--guide:hover:not(:disabled){background:#ffc81e;border-color:#d4a812;color:#3a2c00}.btn--guide__mark{display:inline-grid;place-items:center;width:15px;height:15px;border-radius:50%;background:#4a3800;color:#ffd23f;font-size:.625rem;font-weight:800;line-height:1}@media (max-width: 900px){.wsteps__state{display:none}}.step__actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:14px}@media (max-width: 640px){.wsteps__item .wsteps__text{display:none}.wsteps__item.is-active .wsteps__text{display:inline}}.str{display:flex;flex-direction:column;gap:12px}.str__head{display:flex;align-items:center;gap:10px;padding:12px 16px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--sh-1)}.str__title{font-size:.875rem;font-weight:700;color:var(--navy);letter-spacing:-.01em}.str__sub{font-size:.6875rem;color:var(--muted);margin-top:1px}.str__grid{display:flex;flex-wrap:wrap;gap:14px;align-items:flex-start}.str-card{flex:0 0 360px;max-width:100%;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--sh-1);overflow:hidden}.str-card--loose{background:var(--n-25);border-style:dashed}.str-card__head{display:flex;align-items:center;gap:8px;padding:14px 12px 13px 18px;border-bottom:1px solid var(--border)}.str-card__name{font-size:1rem;font-weight:700;letter-spacing:-.01em;color:var(--navy);min-width:0}.str-card__meta{padding:8px 18px;font-size:.625rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--faint);border-bottom:1px solid var(--border)}.str-card__body{padding:4px 0;min-height:96px}.str-card__none{padding:10px 14px;font-size:.72rem;color:var(--faint);font-style:italic}.str-card__add{width:100%;padding:11px 18px;border:none;border-top:1px solid var(--border);background:var(--n-50);color:var(--text-2);font-family:var(--font-sans);font-size:.6875rem;font-weight:700;text-align:left;cursor:pointer;transition:all .13s}.str-card__add:hover{background:var(--n-100);color:var(--navy)}.str-floor{display:flex;align-items:center;gap:9px;padding:9px 12px 9px 18px;border-bottom:1px solid var(--n-100)}.str-floor:last-child{border-bottom:none}.str-floor:hover{background:var(--n-50)}.str-floor__name{font-size:.8125rem;font-weight:600;color:var(--navy);min-width:0}.str-floor__count{font-size:.6875rem;color:var(--muted);white-space:nowrap;font-variant-numeric:tabular-nums}.str-act{width:24px;height:24px;min-width:24px;border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface);color:var(--muted);display:grid;place-items:center;font-size:.95rem;line-height:1;cursor:pointer;transition:all .13s}.str-act:hover{background:var(--n-100);border-color:var(--border-strong);color:var(--navy)}.str-act--bad:hover{background:var(--bad-soft);border-color:var(--bad);color:var(--bad)}.str__foot{display:flex;align-items:center;gap:10px;font-size:.72rem;color:var(--muted)}@media (max-width: 420px){.str-card{flex-basis:100%}}.szp{display:flex;flex-direction:column;gap:16px;padding:14px}.szp__hint{margin:0;font-size:.6875rem;color:var(--faint);line-height:1.5}.szp__list{margin:6px 0 0;padding-left:18px;font-size:.75rem;line-height:1.6}.szs{width:7px;height:7px;min-width:7px;border-radius:50%;flex-shrink:0}.szs--ok{background:var(--ok);box-shadow:0 0 0 2px var(--ok-soft)}.szs--warn{background:var(--warn);box-shadow:0 0 0 2px var(--warn-soft)}.szs--bad{background:var(--bad);box-shadow:0 0 0 2px var(--bad-soft)}.szs--none{background:transparent;border:1px solid var(--border-strong)}.szc{display:flex;flex-direction:column;gap:8px}.szc__head{display:flex;align-items:center;gap:9px;width:100%;padding:9px 12px;border:none;background:var(--n-50);font-family:var(--font-sans);text-align:left;cursor:pointer;transition:background .13s}.szc__head:hover{background:var(--n-100)}.szc__part{font-family:var(--font-mono);font-size:.75rem;font-weight:700;color:var(--navy);white-space:nowrap}.szc__group{font-size:.5875rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--faint);white-space:nowrap}.szc__lim{font-size:.5875rem;font-weight:700;color:var(--muted);font-variant-numeric:tabular-nums;padding:2px 7px;border:1px solid var(--border);border-radius:999px;white-space:nowrap}.szc__lim.is-hit{color:var(--bad);border-color:var(--bad);background:var(--bad-soft)}.szg__prob{padding:8px 12px;background:var(--bad-soft);color:var(--bad-text);font-size:.6875rem;border-top:1px solid var(--border)}.szg__add{display:block;width:100%;padding:7px 12px;border:none;border-top:1px dashed var(--border);background:var(--n-50);color:var(--text-2);font-family:var(--font-sans);font-size:.6875rem;font-weight:700;text-align:left;cursor:pointer;transition:background .13s,color .13s}.szg__add:hover{background:var(--n-100);color:var(--navy)}.szd{display:flex;align-items:center;gap:9px;padding:6px 11px;border-bottom:1px solid var(--n-100)}.szd:last-child{border-bottom:none}.szd:hover{background:var(--n-50)}.szd.is-bad{background:var(--bad-soft)}.szd__role{font-size:.5625rem;font-weight:700;letter-spacing:.05em;color:var(--muted);background:var(--n-150);border-radius:var(--r-sm);padding:2px 6px;min-width:34px;text-align:center;flex-shrink:0}.szd__role.is-ctrl{background:var(--navy);color:#fff}.szd__act{border:1px solid var(--border-strong);border-radius:var(--r-sm);background:var(--surface);color:var(--text-2);font-family:var(--font-sans);font-size:.625rem;font-weight:700;line-height:1;padding:5px 8px;cursor:pointer;transition:all .13s}.szd__act:hover{background:var(--n-100);border-color:var(--navy);color:var(--navy)}.szd__act--bad{padding:4px 8px;font-size:.875rem}.szd__act--bad:hover{background:var(--bad-soft);border-color:var(--bad);color:var(--bad)}.chip-row{display:flex;flex-wrap:wrap;gap:6px}.chip{border:1px solid var(--border-strong);border-radius:20px;background:var(--surface);color:var(--text-2);font-family:var(--font-sans);font-size:.6875rem;font-weight:700;padding:4px 12px;cursor:pointer;transition:all .13s}.chip:hover{background:var(--n-50);border-color:var(--navy);color:var(--navy)}.chip.is-on{background:var(--navy);border-color:var(--navy);color:#fff}.szpick__need{display:flex;align-items:center;gap:6px;padding:9px 12px;border-radius:var(--r);border:1px solid var(--warn);background:var(--warn-soft);color:var(--text-2);font-size:.6875rem}.szpick__need.is-done{border-color:var(--border);background:var(--n-50);color:var(--muted)}.szpick__need strong{color:var(--navy)}.szpick__need-total{font-weight:700;font-variant-numeric:tabular-nums;color:var(--navy)}.szpick__cov{display:inline-block;min-width:34px;padding:2px 7px;border-radius:999px;background:var(--ok-soft);color:var(--ok-text);font-size:.625rem;font-weight:700;font-variant-numeric:tabular-nums}.szpick__no{font-size:.5875rem;font-weight:700;color:var(--brand);text-transform:uppercase;letter-spacing:.03em}.dt tr.is-muted td{opacity:.5}.szp__start{display:flex;flex-direction:column;align-items:flex-start;gap:10px;padding:14px;border:1px dashed var(--border-strong);border-radius:var(--r);background:var(--n-50)}.szp__start .pdp__none{margin:0}.cpt-table th{white-space:nowrap;vertical-align:bottom}.cpt-table td{vertical-align:middle}.cpt-table tr.is-done td{color:var(--muted);background:var(--n-50)}.cpt-table tr.is-done .c-name{color:var(--text-2)}.cpt__left{color:var(--warn-text);font-weight:800}.cpt-table{table-layout:fixed;width:100%}.cpt-table .cpt-c-tag{width:16%}.cpt-table .cpt-c-type{width:26%}.cpt-table .cpt-c-io{width:10%}.cpt-table .cpt-c-n{width:14%}.cpt-table .cpt-c-act{width:28%;min-width:150px}.cpt-table .cpt-c-info{width:6%}.cpt-table thead th{white-space:nowrap;text-align:center}.cpt-table thead th:first-child,.cpt-table thead th:nth-child(2){text-align:left}.cpt-table td{line-height:1.35;height:34px}.cpt-table .cpt-c-io,.cpt-table td.cpt-io{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cpt-table td:nth-child(2){overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cpt-table tbody tr:nth-child(2n){background:transparent}.cpt-table tbody td{border-bottom:1px solid var(--border-soft, rgba(0, 0, 0, .05))}.cpt-table tbody tr:hover td{background:#1a1a2e0a}.cpt__nil{color:var(--n-300)}.sums{display:flex;flex-wrap:wrap;align-items:stretch;border:1px solid var(--border);border-radius:var(--r);background:var(--n-50);overflow:hidden}.sums__item{display:flex;flex-direction:column;gap:3px;flex:1 1 130px;padding:12px 16px;border-right:1px solid var(--border)}.sums__item:last-child{border-right:none}.sums__label{font-size:.5875rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}.sums__value{font-size:1.15rem;font-weight:800;color:var(--navy);font-variant-numeric:tabular-nums}.sums-table{table-layout:auto}.sums-table th,.sums-table td{padding-top:11px;padding-bottom:11px}.sums-table .c-name,.sums-table .nowrap{white-space:nowrap}.sums-table .sums-fitted{max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sums-bar{display:flex;align-items:center;gap:7px;min-width:90px}.sums-bar__track{flex:1;height:5px;border-radius:999px;background:var(--n-200);overflow:hidden}.sums-bar__fill{display:block;height:100%;background:var(--navy)}.sums-bar b{font-weight:800;font-variant-numeric:tabular-nums;color:var(--navy)}.greet{background:linear-gradient(135deg,#1a1a2e,#16213e 40%,#0f3460);border:1px solid rgba(255,255,255,.06);border-radius:var(--r-xl);color:#fff;position:relative;overflow:hidden;box-shadow:0 8px 32px #0000002e,0 2px 8px #0000001a}.greet:before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,#a41e22,#3d3d5c,#2d2d4e,#a41e22);background-size:300% 100%;animation:greet-shift 6s ease infinite}@keyframes greet-shift{0%,to{background-position:0% 50%}50%{background-position:100% 50%}}.greet__shapes{position:absolute;inset:0;pointer-events:none;overflow:hidden}.greet__shape{position:absolute;border-radius:50%}.greet__shape--1{width:280px;height:280px;top:-100px;right:-60px;background:radial-gradient(circle,rgba(164,30,34,.18) 0%,transparent 70%)}.greet__shape--2{width:160px;height:160px;bottom:-50px;left:10%;background:radial-gradient(circle,rgba(255,255,255,.05) 0%,transparent 70%)}.greet__shape--3{width:120px;height:120px;top:10%;right:25%;background:radial-gradient(circle,rgba(255,255,255,.03) 0%,transparent 70%)}.greet__content{display:flex;align-items:center;justify-content:space-between;gap:32px;position:relative;z-index:1;padding:30px 34px}.greet__text{flex:1;min-width:0}.greet__eyebrow{display:inline-flex;align-items:center;gap:6px;font-size:.6875rem;font-weight:600;color:#ffffff80;margin-bottom:14px;padding:5px 12px;background:#ffffff0f;border:1px solid rgba(255,255,255,.08);border-radius:20px}.greet__title{font-size:1.0625rem;font-weight:500;color:#ffffffb3;line-height:1.3}.greet__name{font-size:clamp(1.5rem,3vw,2rem);font-weight:800;color:#fff;line-height:1.2;letter-spacing:-.02em;margin-bottom:8px}.greet__subtitle{font-size:.78rem;color:#ffffff6b}.greet__right{display:flex;flex-direction:column;align-items:center;gap:10px;flex-shrink:0;cursor:pointer;transition:transform .2s,opacity .2s}.greet__right:hover{transform:translateY(-2px);opacity:.92}.greet__right:hover .greet__ring{box-shadow:0 0 0 4px #a41e2233,0 8px 28px #a41e2259}.greet__ring{padding:4px;border-radius:50%;background:linear-gradient(135deg,#a41e22,#ff4b4b,#a41e22);box-shadow:0 0 0 4px #a41e221f,0 6px 24px #a41e224d}.greet__avatar{width:68px;height:68px;border-radius:50%;background:linear-gradient(145deg,#1e2a45,#0f1b32);display:grid;place-items:center;font-size:1.5rem;font-weight:800;color:#fff}.greet__role{font-size:.625rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#fff;padding:4px 12px;border-radius:var(--r-sm);background:#00000059;border:1px solid rgba(255,255,255,.12)}.greet__status{display:flex;align-items:center;gap:5px;font-size:.6875rem;color:#ffffff73;font-weight:500}.greet__status-dot{width:7px;height:7px;border-radius:50%;background:#22c55e;box-shadow:0 0 0 3px #22c55e33}@media (max-width: 640px){.greet__content{padding:22px 20px;flex-direction:column;text-align:center;gap:18px}.greet__name{font-size:1.5rem}.greet__avatar{width:56px;height:56px;font-size:1.25rem}.greet__shape--1{width:180px;height:180px;top:-60px;right:-40px}}.home-projects{list-style:none;margin:0;padding:0}.home-projects__row{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:14px 20px;border-top:1px solid var(--border);cursor:pointer;transition:background .12s}.home-projects__row:first-child{border-top:none}.home-projects__row:hover{background:var(--n-50)}.home-projects__name{font-size:.875rem;font-weight:700;color:var(--navy);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.home-projects__meta{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:5px;font-size:.6875rem;color:var(--muted)}.rq{display:flex;flex-direction:column;gap:4px}.rq__section{padding:16px 0;border-top:1px solid var(--line)}.rq__section:first-of-type{border-top:none;padding-top:4px}.rq__section-head{margin-bottom:12px}.rq__section-title{margin:0;font-size:.8125rem;font-weight:700;color:var(--navy);letter-spacing:.01em}.rq__section-hint{margin:3px 0 0;font-size:.72rem;line-height:1.45;color:var(--faint);max-width:62ch}.rq__io{display:grid;grid-template-columns:repeat(auto-fit,minmax(84px,1fr));gap:8px}.rq__io-cell{display:flex;flex-direction:column;gap:4px;min-width:0}.rq__io-label{font-size:.625rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--faint);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rq__io-input{text-align:center;font-variant-numeric:tabular-nums;padding-left:6px;padding-right:6px}.rq-chain{display:flex;align-items:center;flex-wrap:wrap;gap:4px 6px;font-size:.72rem}.rq-chain__step{color:var(--faint);white-space:nowrap}.rq-chain__step--new{color:var(--navy);font-weight:700}.rq-chain__sep{color:var(--line);font-weight:400}.rq-note{margin-top:6px;padding:8px 10px;border-left:2px solid var(--line);font-size:.72rem;line-height:1.5;color:var(--muted);white-space:pre-wrap}.rq-diff{display:flex;flex-wrap:wrap;gap:4px 10px}.rq-diff__item{display:inline-flex;align-items:center;gap:4px;font-size:.72rem;font-variant-numeric:tabular-nums}.rq-diff__label{font-size:.625rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--faint)}.rq-diff__from{color:var(--faint);text-decoration:line-through}.rq-diff__arrow{color:var(--line)}.rq-diff__to{font-weight:700;color:var(--navy)}:root{--font-sans: "IBM Plex Sans", "Segoe UI", system-ui, -apple-system, sans-serif;--font-mono: "Cascadia Mono", "SF Mono", Consolas, monospace;--navy: #1F2937;--navy-2: #16213e;--navy-deep: #0f3460;--brand: #A41E22;--brand-hover:#8B1A1D;--brand-soft: #f7eaea;--brand-ring: rgba(164, 30, 34, .18);--n-0: #ffffff;--n-25: #fbfbfc;--n-50: #f8f9fa;--n-100:#F5F5F5;--n-150:#eeeff2;--n-200:#E5E7EB;--n-300:#D1D5DB;--n-400:#9aa0aa;--n-500:#6B7280;--n-600:#4d5560;--n-700:#343b45;--n-800:#1f2430;--n-900:#1a1a2e;--ok: #28a745;--ok-soft: #e8f6ec;--ok-text: #1c7a33;--warn: #d98b00;--warn-soft: #fdf4e3;--warn-text: #8a5a00;--bad: #dc3545;--bad-soft: #fdecee;--bad-text: #b02a37;--info: #0f4b8c;--info-soft: #e9f0f8;--info-text: #0f4b8c;--r-sm: 6px;--r: 8px;--r-lg: 12px;--r-xl: 16px;--sh-1: 0 2px 12px rgba(0, 0, 0, .06);--sh-2: 0 4px 14px rgba(0, 0, 0, .07);--sh-3: 0 10px 30px rgba(0, 0, 0, .12);--sh-4: 0 20px 50px rgba(0, 0, 0, .22);--bg: #F5F5F5;--surface: #ffffff;--surface-2: #f8f9fa;--surface-sunken:#F5F5F5;--border: #E5E7EB;--border-strong: #D1D5DB;--text: #1F2937;--text-2: #4d5560;--muted: #6B7280;--faint: #9aa0aa;--success: var(--ok);--success-bg: var(--ok-soft);--success-fg: var(--ok-text);--danger: var(--bad);--danger-bg: var(--bad-soft);--danger-fg: var(--bad-text);--warning: var(--warn);--warning-bg: var(--warn-soft);--warning-fg: var(--warn-text);--info-bg: var(--info-soft);--info-fg: var(--info-text);--radius: var(--r);--radius-sm: var(--r-sm);--radius-lg: var(--r-lg);--shadow-sm: var(--sh-1);--shadow: var(--sh-1);--shadow-lg: var(--sh-4);--rail-w: 64px;--rail-w-open: 240px;--topbar-h: 56px;--z-sticky: 10;--z-rail: 100;--z-dropdown: 200;--z-overlay: 300;--z-drawer: 350;--z-modal: 500;--z-nested-modal: 550;--z-toast: 700}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;text-size-adjust:100%}html,body,#root{height:100%}body{font-family:var(--font-sans);background:var(--bg);color:var(--text);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden}a{color:inherit;text-decoration:none}*{scrollbar-width:thin;scrollbar-color:rgba(26,26,46,.2) transparent}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#1a1a2e33;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#1a1a2e59}:focus-visible{outline:2px solid var(--navy);outline-offset:2px;border-radius:4px}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}.app-shell{min-height:100vh;display:flex;flex-direction:column}@media (min-width: 1024px){.app-shell{padding-left:var(--rail-w)}}.page{display:flex;flex-direction:column;min-height:100vh;min-width:0}@media (min-width: 1024px){.page{height:100vh;overflow:hidden}.page__body{flex:1;min-height:0;overflow-y:auto}}.page__head{display:flex;align-items:flex-start;gap:20px;flex-wrap:wrap;padding:16px 24px 14px;background:var(--surface);border-bottom:1px solid var(--border);flex-shrink:0}.page__title{font-size:1.125rem;font-weight:700;color:var(--navy);line-height:1.3}.page__subtitle{font-size:.75rem;color:var(--muted);margin-top:4px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}.page__actions{margin-left:auto;display:flex;gap:8px;align-items:center;flex-wrap:wrap}.page__body{padding:16px 24px 48px}@media (max-width: 640px){.page__head{padding:14px 16px 12px}.page__body{padding:14px 16px 40px}.page__title{font-size:1rem}}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--sh-1)}.card__head{padding:16px 20px;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:14px;flex-wrap:wrap}.card__title{font-size:1rem;font-weight:700;color:var(--navy)}.card__sub{font-size:.75rem;color:var(--muted);margin-top:2px}.card__body{padding:16px 20px}.card__strip{padding:12px 20px;border-bottom:1px solid var(--border)}.card__actions{margin-left:auto;display:flex;gap:8px;align-items:center;flex-wrap:wrap}.btn{display:inline-flex;align-items:center;justify-content:center;gap:5px;font-family:var(--font-sans);font-size:.6875rem;font-weight:600;line-height:1;height:32px;padding:7px 14px;border-radius:var(--r);border:1px solid var(--border);background:transparent;color:var(--text);cursor:pointer;white-space:nowrap;transition:all .15s ease}.btn:hover:not(:disabled){transform:translateY(-1px)}.btn:active:not(:disabled){transform:translateY(0)}.btn:disabled{opacity:.35;cursor:not-allowed;transform:none!important}.btn--primary{background:var(--navy);border-color:var(--navy);color:#fff}.btn--primary:hover:not(:disabled){background:#2d2d4e;border-color:#2d2d4e;box-shadow:0 4px 12px #1a1a2e4d}.btn--brand{background:var(--brand);border-color:var(--brand);color:#fff}.btn--brand:hover:not(:disabled){background:var(--brand-hover);border-color:var(--brand-hover);box-shadow:0 4px 12px #a41e224d}.btn--outline{background:transparent;border-color:#1a1a2e4d;color:var(--navy)}.btn--outline:hover:not(:disabled){background:var(--navy);color:#fff;border-color:var(--navy)}.btn--warn{background:var(--warn-soft);border-color:#d98b0073;color:var(--warn-text)}.btn--warn:hover:not(:disabled){background:#d98b002e;border-color:var(--warn)}.btn--danger{background:transparent;border-color:#dc35454d;color:var(--bad)}.btn--danger:hover:not(:disabled){background:#dc35451a;border-color:#dc354580}.btn--ghost{background:transparent;border-color:var(--border);color:var(--muted)}.btn--ghost:hover:not(:disabled){background:var(--bg);color:var(--text);border-color:var(--muted)}.btn--sm{height:26px;padding:4px 10px;font-size:.625rem;border-radius:var(--r-sm)}.btn--lg{height:38px;padding:10px 20px;font-size:.78rem}.btn--icon{padding:7px 9px}.btn--sq{padding:0;width:30px}.btn--sm.btn--sq{width:26px}.btn--sq svg{width:14px;height:14px}@media (pointer: coarse){.btn,.btn--sm,.btn--lg{height:auto;min-height:44px}.btn--sq,.btn--sm.btn--sq{width:44px}.dd__trigger{min-height:44px}.pager__btn{min-height:40px}.modal__close{width:40px;height:40px}.check{min-height:44px}.check input{width:18px;height:18px}}.btn--block{width:100%}.badge{display:inline-flex;align-items:center;gap:5px;padding:3px 10px;border-radius:20px;font-size:.625rem;font-weight:700;letter-spacing:.03em;text-transform:uppercase;background:var(--n-100);color:var(--text-2);border:1px solid var(--border);white-space:nowrap;line-height:1.5}.badge--success{background:var(--ok-soft);color:var(--ok-text);border-color:#c3e6cd}.badge--danger{background:var(--bad-soft);color:var(--bad-text);border-color:#f5c6cb}.badge--warning{background:var(--warn-soft);color:var(--warn-text);border-color:#f0dcb0}.badge--info{background:var(--info-soft);color:var(--info-text);border-color:#c9dcf0}.badge--navy{background:var(--n-100);color:var(--navy);border-color:var(--border-strong)}.badge--solid{background:var(--navy);color:#fff;border-color:var(--navy)}.code-chip{font-family:var(--font-mono);font-size:.6875rem;font-weight:600;color:var(--navy);background:var(--n-100);border:1px solid var(--border);padding:2px 8px;border-radius:var(--r-sm);white-space:nowrap}.empty{padding:56px 24px;text-align:center;color:var(--muted)}.empty__title{font-weight:700;color:var(--navy);margin-bottom:6px;font-size:.9375rem}.empty__hint{font-size:.78rem;color:var(--faint);max-width:46ch;margin:0 auto;line-height:1.6}.loader{display:flex;align-items:center;justify-content:center;gap:6px;padding:48px}.loader span{width:7px;height:7px;border-radius:50%;background:var(--brand);animation:pulse 1s ease-in-out infinite}.loader span:nth-child(2){animation-delay:.16s}.loader span:nth-child(3){animation-delay:.32s}@keyframes pulse{0%,to{opacity:.25;transform:scale(.75)}50%{opacity:1;transform:scale(1)}}.toast-stack{position:fixed;top:76px;right:16px;z-index:var(--z-toast);display:flex;flex-direction:column;align-items:flex-end;gap:8px;width:min(420px,calc(100vw - 32px));pointer-events:none}.toast{position:relative;display:flex;align-items:center;gap:11px;width:100%;padding:11px 12px 11px 14px;border-radius:var(--r-lg);background:var(--navy);border:1px solid rgba(255,255,255,.1);color:#fff;box-shadow:0 10px 30px #1a1a2e47;font-family:var(--font-sans);font-size:.78rem;overflow:hidden;pointer-events:auto;animation:toastIn .2s cubic-bezier(.2,.8,.3,1)}.toast--error{background:linear-gradient(180deg,#2a1418,var(--navy));border-color:#a41e228c}.toast__icon{width:20px;height:20px;min-width:20px;border-radius:50%;display:grid;place-items:center;font-size:.6875rem;font-weight:700;background:#ffffff29;color:#fff}.toast--success .toast__icon{background:var(--ok);color:#fff}.toast--error .toast__icon{background:var(--brand);color:#fff}.toast--warning .toast__icon{background:var(--warn);color:#1a1a2e}.toast--info .toast__icon{background:#ffffff29;color:#fff}.toast__msg{flex:1;line-height:1.45}.toast__undo{flex-shrink:0;padding:4px 11px;border-radius:var(--r-sm);border:1px solid rgba(255,255,255,.35);background:transparent;color:#fff;font-family:var(--font-sans);font-size:.6875rem;font-weight:700;letter-spacing:.02em;cursor:pointer;transition:background .13s,border-color .13s}.toast__undo:hover:not(:disabled){background:var(--brand);border-color:var(--brand)}.toast__undo:disabled{opacity:.55;cursor:default}.toast__close{background:none;border:none;color:#ffffff80;font-size:1.1rem;line-height:1;cursor:pointer;padding:0 2px;flex-shrink:0}.toast__close:hover{color:#fff}.toast__timer{position:absolute;left:0;bottom:0;height:2px;width:100%;background:#ffffff47;transform-origin:left;animation-name:toast-timer;animation-timing-function:linear;animation-fill-mode:forwards}.toast--success .toast__timer{background:var(--ok)}.toast--warning .toast__timer{background:var(--warn)}.toast--info .toast__timer{background:var(--brand)}@keyframes toast-timer{0%{transform:scaleX(1)}to{transform:scaleX(0)}}@keyframes toastIn{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}.stack{display:grid;gap:16px;align-content:start}.stack-sm{display:grid;gap:8px;align-content:start}.stack>*,.stack-sm>*,.grid-side>*{min-width:0}.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.row--tight{gap:6px}.grow{flex:1 1 auto;min-width:0}.seclist__row{display:flex;align-items:center;gap:10px;padding:9px 16px;border-bottom:1px solid var(--border)}.seclist__row:last-child{border-bottom:none}.seclist__row.is-off{opacity:.55}.seclist__num{font-family:var(--font-mono);font-size:.65rem;color:var(--faint)}.seclist__title{font-size:.8rem;font-weight:600;color:var(--navy);min-width:0}.seclist__dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--brand);margin-left:7px;vertical-align:1px}.seclist__auto{font-size:.58rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--faint)}.guide__sec{border:1px solid var(--border);border-radius:var(--r-lg);background:var(--surface);overflow:hidden}.guide__sec-head{display:flex;align-items:center;gap:9px;padding:8px 13px;background:var(--n-50);border-bottom:1px solid var(--n-100)}.guide__sec-num{display:grid;place-items:center;width:20px;height:20px;min-width:20px;border-radius:50%;background:var(--navy);color:#fff;font-size:.625rem;font-weight:800;line-height:1}.guide__sec-title{margin:0;font-size:.75rem;font-weight:750;color:var(--navy);letter-spacing:-.01em}.guide__sec-hint{margin-left:auto;font-size:.625rem;color:var(--faint);font-style:italic;white-space:nowrap}.guide__sec-body{padding:10px 13px 11px}.guide__sec--example{border-color:#f2e5b8}.guide__sec--example .guide__sec-head{background:#fdf6dd;border-bottom-color:#f2e5b8}.guide__sec--example .guide__sec-num{background:#b8860b}.guide__sec--example .guide__sec-title{color:#7a5b00}.guide__sec--example .guide__sec-hint{color:#a8873a}.guide__sec--example .guide__sec-body{background:#fffdf4}.guide__steps{margin:0;padding:0;list-style:none;counter-reset:gstep}.guide__steps li{counter-increment:gstep;position:relative;padding:0 0 0 26px;margin-bottom:7px}.guide__steps li:last-child{margin-bottom:0}.guide__steps li:before{content:counter(gstep);position:absolute;left:0;top:1px;width:16px;height:16px;border-radius:50%;display:grid;place-items:center;background:var(--n-100);color:var(--navy);font-size:.5625rem;font-weight:800;line-height:1}.guide__control{display:grid;grid-template-columns:138px 1fr;gap:10px;padding:6px 0;border-top:1px solid var(--n-100);align-items:baseline}.guide__control--head{border-top:none;padding-top:0;font-size:.58rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--faint)}.guide__control-name{font-size:.6875rem;font-weight:700;color:var(--navy)}@media (max-width: 560px){.guide__control{grid-template-columns:1fr;gap:1px}.guide__control--head span:last-child{display:none}}.guide__tips{margin:0;padding:0;list-style:none}.guide__tips li{position:relative;padding-left:19px;margin-bottom:6px}.guide__tips li:last-child{margin-bottom:0}.guide__tips li:before{content:"✓";position:absolute;left:0;top:0;color:var(--ok);font-size:.6875rem;font-weight:800}.guide__flow{display:flex;flex-wrap:wrap;align-items:center;gap:4px 2px}.guide__hop{display:inline-flex;align-items:center;gap:2px}.guide__arrow{color:var(--faint);font-size:.6875rem;padding:0 2px}.guide__chip{font-size:.625rem;font-weight:650;color:var(--muted);border:1px solid var(--border);border-radius:999px;padding:2px 8px;white-space:nowrap}.guide__chip.is-here{background:var(--navy);border-color:var(--navy);color:#fff}.revlist{overflow-y:auto;max-height:232px}.revrow{padding:6px 16px 7px 20px;border-bottom:1px solid var(--border)}.revrow:last-child{border-bottom:none}.revrow__top{display:flex;align-items:center;gap:6px;min-width:0}.revrow__name{font-size:.8125rem;font-weight:650;white-space:nowrap}.revrow__when{font-size:.6875rem;color:var(--faint);margin-top:1px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.spacer{margin-left:auto}.muted{color:var(--muted)}.faint{color:var(--faint)}.small{font-size:.75rem}.tiny{font-size:.6875rem}.strong{font-weight:700}.mono{font-family:var(--font-mono)}.nowrap{white-space:nowrap}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hidden{display:none!important}.num{font-variant-numeric:tabular-nums}.grid-2{display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}.grid-3{display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(210px,1fr))}.grid-side{display:grid;gap:18px;grid-template-columns:minmax(220px,280px) 1fr;align-items:start}@media (max-width: 767px){.grid-side{grid-template-columns:1fr}}.stat{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);padding:16px 18px;box-shadow:var(--sh-1)}.stat__label{font-size:.625rem;color:var(--muted);font-weight:700;text-transform:uppercase;letter-spacing:.05em}.stat__value{font-size:1.625rem;font-weight:800;color:var(--navy);margin-top:6px;font-variant-numeric:tabular-nums;letter-spacing:-.02em;line-height:1.15}.stat__hint{font-size:.6875rem;color:var(--faint);margin-top:4px}.alert{padding:12px 16px;border-radius:var(--r);font-size:.78rem;line-height:1.6;background:var(--surface);border:1px solid var(--border);border-left:3px solid var(--muted);color:var(--text-2)}.alert strong{color:var(--text);font-weight:700}.alert--error{border-left-color:var(--bad);background:var(--bad-soft);border-color:#f5c6cb;color:var(--bad-text)}.alert--success{border-left-color:var(--ok);background:var(--ok-soft);border-color:#c3e6cd;color:var(--ok-text)}.alert--warning{border-left-color:var(--warn);background:var(--warn-soft);border-color:#f0dcb0;color:var(--warn-text)}.alert--info{border-left-color:var(--info);background:var(--info-soft);border-color:#c9dcf0;color:var(--info-text)}.alert--error strong,.alert--success strong,.alert--warning strong,.alert--info strong{color:inherit}.xfer{position:fixed;right:18px;bottom:18px;z-index:600;display:grid;gap:8px;width:min(280px,calc(100vw - 32px))}.xfer__item{display:flex;align-items:center;gap:10px;padding:10px 12px;background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--r-lg);box-shadow:var(--sh-3)}.xfer__dir{font-size:.8rem;color:var(--navy);flex-shrink:0}.xfer__meta{flex:1;min-width:0}.xfer__label{font-size:.6875rem;font-weight:600;color:var(--text);margin-bottom:5px}.xfer__bar{height:5px;border-radius:3px;background:var(--n-150);overflow:hidden;position:relative}.xfer__bar span{display:block;height:100%;background:var(--brand);border-radius:3px;transition:width .2s}.xfer__bar.is-indeterminate span{width:40%;position:absolute;animation:xfer-sweep 1.1s ease-in-out infinite}@keyframes xfer-sweep{0%{left:-40%}to{left:100%}}.xfer__pct{font-size:.625rem;font-weight:700;color:var(--muted);font-variant-numeric:tabular-nums;flex-shrink:0;width:32px;text-align:right}
