:root{--dsg-border-color:#e8ebed;--dsg-selection-border-color:#4580e6;--dsg-selection-border-radius:2px;--dsg-selection-border-width:2px;--dsg-selection-background-color:#4580e60a;--dsg-selection-disabled-border-color:#9da6ab;--dsg-selection-disabled-background-color:#0000000a;--dsg-corner-indicator-width:10px;--dsg-header-text-color:#9da6ab;--dsg-header-active-text-color:black;--dsg-cell-background-color:white;--dsg-cell-disabled-background-color:#fafafa;--dsg-transition-duration:.1s;--dsg-expand-rows-indicator-width:10px;--dsg-scroll-shadow-width:7px;--dsg-scroll-shadow-color:#0003}.dsg-container{border:solid 1px var(--dsg-border-color);cursor:cell;-webkit-user-select:none;user-select:none;box-sizing:border-box;color:#000;will-change:transform;direction:ltr;background:#fff;border-top:none;border-left:none;width:100%;position:relative;overflow:auto}.dsg-corner-indicator{border-bottom:solid var(--dsg-corner-indicator-width) var(--dsg-header-text-color);border-left:solid var(--dsg-corner-indicator-width) transparent;width:0;margin:auto}.dsg-row{background:var(--dsg-cell-background-color);box-shadow:0 1px var(--dsg-border-color) inset;position:absolute;top:0;left:0}.dsg-row-header{z-index:40;position:sticky;top:0}.dsg-cell{box-sizing:border-box;background:var(--dsg-cell-background-color);border:solid 1px var(--dsg-border-color);box-shadow:1px 1px var(--dsg-border-color);border-bottom:none;border-right:none;align-items:center;height:100%;display:flex;position:absolute;top:0}.dsg-hidden-cell{display:none}.dsg-cell-sticky-right{z-index:30;margin-left:auto;position:sticky;right:0;transform:translateY(-100%)}.dsg-cell-disabled{background:var(--dsg-cell-disabled-background-color)}.dsg-cell-header,.dsg-cell-gutter{color:var(--dsg-header-text-color);transition:color var(--dsg-transition-duration);box-shadow:none}.dsg-cell-header-container{padding:0 10px;line-height:15px}.dsg-cell-header.dsg-cell-gutter{box-shadow:1px 0 var(--dsg-border-color), 0 1px var(--dsg-border-color)}.dsg-cell-header.dsg-cell-sticky-right{box-shadow:0 1px var(--dsg-border-color)}.dsg-cell-gutter{z-index:30;justify-content:center;height:100%;padding:0 5px;position:sticky;left:0}.dsg-cell-header-active,.dsg-cell-gutter-active{color:var(--dsg-header-active-text-color)}.dsg-active-cell,.dsg-selection-rect{border:solid var(--dsg-selection-border-width) var(--dsg-selection-border-color);box-sizing:border-box;border-radius:var(--dsg-selection-border-radius);transition:all var(--dsg-transition-duration);pointer-events:none;z-index:20;position:absolute}.dsg-active-cell-focus{box-shadow:0 2px 5px #0000004d}.dsg-active-cell-disabled,.dsg-selection-rect-disabled{border-color:var(--dsg-selection-disabled-border-color)}.dsg-selection-rect{background:var(--dsg-selection-background-color)}.dsg-selection-rect-disabled{background:var(--dsg-selection-disabled-background-color)}.dsg-scrollable-view-container{pointer-events:none;position:absolute;top:0;left:0}.dsg-scrollable-view{z-index:10;box-sizing:border-box;border:solid 1px var(--dsg-border-color);box-shadow:0 0 var(--dsg-scroll-shadow-width) calc(0px - var(--dsg-scroll-shadow-width)) var(--dsg-scroll-shadow-color) inset, 0 0 var(--dsg-scroll-shadow-width) calc(0px - var(--dsg-scroll-shadow-width)) var(--dsg-scroll-shadow-color) inset, 0 0 var(--dsg-scroll-shadow-width) calc(0px - var(--dsg-scroll-shadow-width)) var(--dsg-scroll-shadow-color) inset, 0 0 var(--dsg-scroll-shadow-width) calc(0px - var(--dsg-scroll-shadow-width)) var(--dsg-scroll-shadow-color) inset;border-bottom:none;border-right:none;transition:box-shadow .3s;position:sticky}.dsg-scrollable-view-t{box-shadow:0 var(--dsg-scroll-shadow-width) var(--dsg-scroll-shadow-width) calc(0px - var(--dsg-scroll-shadow-width)) var(--dsg-scroll-shadow-color) inset, 0 0 var(--dsg-scroll-shadow-width) calc(0px - var(--dsg-scroll-shadow-width)) var(--dsg-scroll-shadow-color) inset, 0 0 var(--dsg-scroll-shadow-width) calc(0px - var(--dsg-scroll-shadow-width)) var(--dsg-scroll-shadow-color) inset, 0 0 var(--dsg-scroll-shadow-width) calc(0px - var(--dsg-scroll-shadow-width)) var(--dsg-scroll-shadow-color) inset}.dsg-scrollable-view-r{box-shadow:0 0 var(--dsg-scroll-shadow-width) calc(0px - var(--dsg-scroll-shadow-width)) var(--dsg-scroll-shadow-color) inset, calc(0px - var(--dsg-scroll-shadow-width)) 0 var(--dsg-scroll-shadow-width) calc(0px - var(--dsg-scroll-shadow-width)) var(--dsg-scroll-shadow-color) inset, 0 0 var(--dsg-scroll-shadow-width) calc(0px - var(--dsg-scroll-shadow-width)) var(--dsg-scroll-shadow-color) inset, 0 0 var(--dsg-scroll-shadow-width) calc(0px - var(--dsg-scroll-shadow-width)) var(--dsg-scroll-shadow-color) inset}.dsg-scrollable-view-b{box-shadow:0 0 var(--dsg-scroll-shadow-width) calc(0px - var(--dsg-scroll-shadow-width)) var(--dsg-scroll-shadow-color) inset, 0 0 var(--dsg-scroll-shadow-width) calc(0px - var(--dsg-scroll-shadow-width)) var(--dsg-scroll-shadow-color) inset, 0 calc(0px - var(--dsg-scroll-shadow-width)) var(--dsg-scroll-shadow-width) calc(0px - var(--dsg-scroll-shadow-width)) var(--dsg-scroll-shadow-color) inset, 0 0 var(--dsg-scroll-shadow-width) calc(0px - var(--dsg-scroll-shadow-width)) var(--dsg-scroll-shadow-color) inset}.dsg-scrollable-view-l{box-shadow:0 0 var(--dsg-scroll-shadow-width) calc(0px - var(--dsg-scroll-shadow-width)) var(--dsg-scroll-shadow-color) inset, 0 0 var(--dsg-scroll-shadow-width) calc(0px - var(--dsg-scroll-shadow-width)) var(--dsg-scroll-shadow-color) inset, 0 0 var(--dsg-scroll-shadow-width) calc(0px - var(--dsg-scroll-shadow-width)) var(--dsg-scroll-shadow-color) inset, var(--dsg-scroll-shadow-width) 0 var(--dsg-scroll-shadow-width) calc(0px - var(--dsg-scroll-shadow-width)) var(--dsg-scroll-shadow-color) inset}.dsg-scrollable-view-t.dsg-scrollable-view-r{box-shadow:0 var(--dsg-scroll-shadow-width) var(--dsg-scroll-shadow-width) calc(0px - var(--dsg-scroll-shadow-width)) var(--dsg-scroll-shadow-color) inset, calc(0px - var(--dsg-scroll-shadow-width)) 0 var(--dsg-scroll-shadow-width) calc(0px - var(--dsg-scroll-shadow-width)) var(--dsg-scroll-shadow-color) inset, 0 0 var(--dsg-scroll-shadow-width) calc(0px - var(--dsg-scroll-shadow-width)) var(--dsg-scroll-shadow-color) inset, 0 0 var(--dsg-scroll-shadow-width) calc(0px - var(--dsg-scroll-shadow-width)) var(--dsg-scroll-shadow-color) inset}.dsg-scrollable-view-r.dsg-scrollable-view-b{box-shadow:0 0 var(--dsg-scroll-shadow-width) calc(0px - var(--dsg-scroll-shadow-width)) var(--dsg-scroll-shadow-color) inset, calc(0px - var(--dsg-scroll-shadow-width)) 0 var(--dsg-scroll-shadow-width) calc(0px - var(--dsg-scroll-shadow-width)) var(--dsg-scroll-shadow-color) inset, 0 calc(0px - var(--dsg-scroll-shadow-width)) var(--dsg-scroll-shadow-width) calc(0px - var(--dsg-scroll-shadow-width)) var(--dsg-scroll-shadow-color) inset, 0 0 var(--dsg-scroll-shadow-width) calc(0px - var(--dsg-scroll-shadow-width)) var(--dsg-scroll-shadow-color) inset}.dsg-scrollable-view-b.dsg-scrollable-view-l{box-shadow:0 0 var(--dsg-scroll-shadow-width) calc(0px - var(--dsg-scroll-shadow-width)) var(--dsg-scroll-shadow-color) inset, 0 0 var(--dsg-scroll-shadow-width) calc(0px - var(--dsg-scroll-shadow-width)) var(--dsg-scroll-shadow-color) inset, 0 calc(0px - var(--dsg-scroll-shadow-width)) var(--dsg-scroll-shadow-width) calc(0px - var(--dsg-scroll-shadow-width)) var(--dsg-scroll-shadow-color) inset, var(--dsg-scroll-shadow-width) 0 var(--dsg-scroll-shadow-width) calc(0px - var(--dsg-scroll-shadow-width)) var(--dsg-scroll-shadow-color) inset}.dsg-scrollable-view-l.dsg-scrollable-view-t{box-shadow:0 var(--dsg-scroll-shadow-width) var(--dsg-scroll-shadow-width) calc(0px - var(--dsg-scroll-shadow-width)) var(--dsg-scroll-shadow-color) inset, 0 0 var(--dsg-scroll-shadow-width) calc(0px - var(--dsg-scroll-shadow-width)) var(--dsg-scroll-shadow-color) inset, 0 0 var(--dsg-scroll-shadow-width) calc(0px - var(--dsg-scroll-shadow-width)) var(--dsg-scroll-shadow-color) inset, var(--dsg-scroll-shadow-width) 0 var(--dsg-scroll-shadow-width) calc(0px - var(--dsg-scroll-shadow-width)) var(--dsg-scroll-shadow-color) inset}.dsg-scrollable-view-t.dsg-scrollable-view-b{box-shadow:0 var(--dsg-scroll-shadow-width) var(--dsg-scroll-shadow-width) calc(0px - var(--dsg-scroll-shadow-width)) var(--dsg-scroll-shadow-color) inset, 0 0 var(--dsg-scroll-shadow-width) calc(0px - var(--dsg-scroll-shadow-width)) var(--dsg-scroll-shadow-color) inset, 0 calc(0px - var(--dsg-scroll-shadow-width)) var(--dsg-scroll-shadow-width) calc(0px - var(--dsg-scroll-shadow-width)) var(--dsg-scroll-shadow-color) inset, 0 0 var(--dsg-scroll-shadow-width) calc(0px - var(--dsg-scroll-shadow-width)) var(--dsg-scroll-shadow-color) inset}.dsg-scrollable-view-l.dsg-scrollable-view-r{box-shadow:0 0 var(--dsg-scroll-shadow-width) calc(0px - var(--dsg-scroll-shadow-width)) var(--dsg-scroll-shadow-color) inset, calc(0px - var(--dsg-scroll-shadow-width)) 0 var(--dsg-scroll-shadow-width) calc(0px - var(--dsg-scroll-shadow-width)) var(--dsg-scroll-shadow-color) inset, 0 0 var(--dsg-scroll-shadow-width) calc(0px - var(--dsg-scroll-shadow-width)) var(--dsg-scroll-shadow-color) inset, var(--dsg-scroll-shadow-width) 0 var(--dsg-scroll-shadow-width) calc(0px - var(--dsg-scroll-shadow-width)) var(--dsg-scroll-shadow-color) inset}.dsg-scrollable-view-t.dsg-scrollable-view-r.dsg-scrollable-view-b{box-shadow:0 var(--dsg-scroll-shadow-width) var(--dsg-scroll-shadow-width) calc(0px - var(--dsg-scroll-shadow-width)) var(--dsg-scroll-shadow-color) inset, calc(0px - var(--dsg-scroll-shadow-width)) 0 var(--dsg-scroll-shadow-width) calc(0px - var(--dsg-scroll-shadow-width)) var(--dsg-scroll-shadow-color) inset, 0 calc(0px - var(--dsg-scroll-shadow-width)) var(--dsg-scroll-shadow-width) calc(0px - var(--dsg-scroll-shadow-width)) var(--dsg-scroll-shadow-color) inset, 0 0 var(--dsg-scroll-shadow-width) calc(0px - var(--dsg-scroll-shadow-width)) var(--dsg-scroll-shadow-color) inset}.dsg-scrollable-view-r.dsg-scrollable-view-b.dsg-scrollable-view-l{box-shadow:0 0 var(--dsg-scroll-shadow-width) calc(0px - var(--dsg-scroll-shadow-width)) var(--dsg-scroll-shadow-color) inset, calc(0px - var(--dsg-scroll-shadow-width)) 0 var(--dsg-scroll-shadow-width) calc(0px - var(--dsg-scroll-shadow-width)) var(--dsg-scroll-shadow-color) inset, 0 calc(0px - var(--dsg-scroll-shadow-width)) var(--dsg-scroll-shadow-width) calc(0px - var(--dsg-scroll-shadow-width)) var(--dsg-scroll-shadow-color) inset, var(--dsg-scroll-shadow-width) 0 var(--dsg-scroll-shadow-width) calc(0px - var(--dsg-scroll-shadow-width)) var(--dsg-scroll-shadow-color) inset}.dsg-scrollable-view-b.dsg-scrollable-view-l.dsg-scrollable-view-t{box-shadow:0 var(--dsg-scroll-shadow-width) var(--dsg-scroll-shadow-width) calc(0px - var(--dsg-scroll-shadow-width)) var(--dsg-scroll-shadow-color) inset, 0 0 var(--dsg-scroll-shadow-width) calc(0px - var(--dsg-scroll-shadow-width)) var(--dsg-scroll-shadow-color) inset, 0 calc(0px - var(--dsg-scroll-shadow-width)) var(--dsg-scroll-shadow-width) calc(0px - var(--dsg-scroll-shadow-width)) var(--dsg-scroll-shadow-color) inset, var(--dsg-scroll-shadow-width) 0 var(--dsg-scroll-shadow-width) calc(0px - var(--dsg-scroll-shadow-width)) var(--dsg-scroll-shadow-color) inset}.dsg-scrollable-view-l.dsg-scrollable-view-t.dsg-scrollable-view-r{box-shadow:0 var(--dsg-scroll-shadow-width) var(--dsg-scroll-shadow-width) calc(0px - var(--dsg-scroll-shadow-width)) var(--dsg-scroll-shadow-color) inset, calc(0px - var(--dsg-scroll-shadow-width)) 0 var(--dsg-scroll-shadow-width) calc(0px - var(--dsg-scroll-shadow-width)) var(--dsg-scroll-shadow-color) inset, 0 0 var(--dsg-scroll-shadow-width) calc(0px - var(--dsg-scroll-shadow-width)) var(--dsg-scroll-shadow-color) inset, var(--dsg-scroll-shadow-width) 0 var(--dsg-scroll-shadow-width) calc(0px - var(--dsg-scroll-shadow-width)) var(--dsg-scroll-shadow-color) inset}.dsg-scrollable-view-t.dsg-scrollable-view-r.dsg-scrollable-view-b.dsg-scrollable-view-l{box-shadow:0 var(--dsg-scroll-shadow-width) var(--dsg-scroll-shadow-width) calc(0px - var(--dsg-scroll-shadow-width)) var(--dsg-scroll-shadow-color) inset, calc(0px - var(--dsg-scroll-shadow-width)) 0 var(--dsg-scroll-shadow-width) calc(0px - var(--dsg-scroll-shadow-width)) var(--dsg-scroll-shadow-color) inset, 0 calc(0px - var(--dsg-scroll-shadow-width)) var(--dsg-scroll-shadow-width) calc(0px - var(--dsg-scroll-shadow-width)) var(--dsg-scroll-shadow-color) inset, var(--dsg-scroll-shadow-width) 0 var(--dsg-scroll-shadow-width) calc(0px - var(--dsg-scroll-shadow-width)) var(--dsg-scroll-shadow-color) inset}.dsg-selection-col-marker-container{position:absolute;top:0}.dsg-selection-col-marker{background:var(--dsg-selection-border-color);width:100%;height:var(--dsg-selection-border-width);position:sticky}.dsg-selection-row-marker-container{position:absolute;left:0}.dsg-selection-row-marker{background:var(--dsg-selection-border-color);height:100%;width:var(--dsg-selection-border-width);position:sticky}.dsg-selection-col-marker-container,.dsg-selection-col-marker,.dsg-selection-row-marker-container,.dsg-selection-row-marker{z-index:20;transition:all var(--dsg-transition-duration);pointer-events:none}.dsg-selection-col-marker-disabled,.dsg-selection-row-marker-disabled{background:var(--dsg-selection-disabled-border-color)}.dsg-add-row{border:1px solid var(--dsg-border-color);color:#000;background:#fafafa;border-top:none;align-items:center;padding:7px 10px;display:flex}.dsg-add-row>*{margin-right:10px}.dsg-add-row-btn,.dsg-add-row-input{background:#fff;border:1px solid #dcdcdc;border-radius:2px;align-items:center;padding:7px 10px;transition:all .2s;display:flex;position:relative}.dsg-add-row-input{width:55px}.dsg-add-row-btn:hover,.dsg-add-row-input:hover{border-color:#c7c7c7}.dsg-add-row-btn:focus,.dsg-add-row-input:focus{border-color:var(--dsg-selection-border-color);outline:none}.dsg-add-row-btn:before{content:"";background:#9da6ab;width:10px;height:2px;margin-right:10px;display:inline-block}.dsg-add-row-btn:after{content:"";background:#9da6ab;width:2px;height:10px;margin-right:10px;display:block;position:absolute;left:14px}.dsg-input{box-sizing:border-box;background:0 0;border:none;outline:none;flex:1;align-self:stretch;min-width:0;padding:0 10px;font-size:1rem;display:block}.dsg-input-suffix{opacity:.5;margin-left:-5px;padding-right:10px}.dsg-input-align-right{text-align:right}.dsg-hide-date-picker[type=date]::-webkit-inner-spin-button{-webkit-appearance:none;display:none}.dsg-hide-date-picker[type=date]::-webkit-calendar-picker-indicator{-webkit-appearance:none;display:none}.dsg-checkbox{margin:auto}.dsg-context-menu{z-index:10000;color:#000;background:#fff;border-radius:4px;padding:5px 0;position:fixed;box-shadow:0 2px 6px 2px #3c404326}.dsg-context-menu-item{cursor:default;padding:3px 20px}.dsg-context-menu-item:hover{background:#fafafa}.dsg-expand-rows-indicator{background:var(--dsg-cell-background-color);border:solid 1px var(--dsg-selection-border-color);box-shadow:0 0 0 1px var(--dsg-cell-background-color);width:var(--dsg-expand-rows-indicator-width);height:var(--dsg-expand-rows-indicator-width);box-sizing:border-box;transition:all var(--dsg-transition-duration);cursor:crosshair;z-index:25;position:absolute}.dsg-expand-rows-indicator-disabled{border:solid 1px var(--dsg-selection-disabled-border-color)}.dsg-expand-rows-rect{box-sizing:border-box;transition:all var(--dsg-transition-duration);pointer-events:none;background:#00000008;position:absolute}:root{--navy:#1c3a6b;--blue:#1a5ba6;--sky:#00aeef;--teal:#5dc4c6;--white:#fff;--offwhite:#f5f7fa;--border:#e6ebf1;--border-strong:#dde4ed;--gray:#8c9bab;--dark:#2c3e50;--muted:#64748b;--red:#e8303a;--green:#27ae60;--orange:#f39c12;--ring:#00aeef2e;--grid-line:#d4d4d4;--grid-head:#f2f2f2;--ui:Inter, "Segoe UI", system-ui, -apple-system, sans-serif;--display:"Space Grotesk", Inter, system-ui, sans-serif;--sidebar-w:240px;--shadow-card:0 1px 2px #1018280a, 0 1px 3px #1018280f;--shadow-hover:0 10px 28px #1018281a}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{color:var(--dark);font-family:var(--ui);-webkit-font-smoothing:antialiased;font-feature-settings:"tnum" 1, "kern" 1;background:radial-gradient(1200px 620px at 100% -8%, #00aeef17, transparent 60%), radial-gradient(1000px 520px at -8% -4%, #1c3a6b12, transparent 55%), radial-gradient(circle at 1px 1px, #1c3a6b12 1px, transparent 0) 0 0 / 22px 22px, var(--offwhite);background-attachment:fixed;font-size:13px}h1,h2,h3{font-family:var(--display);letter-spacing:-.018em;color:var(--navy);margin:0;font-weight:700}h1{font-size:22px;line-height:1.15}h2{font-size:17px}h3{font-size:14px}a{color:var(--blue)}button,input,select,textarea{font-family:inherit;font-size:13px}select:focus,input:focus,textarea:focus,button:focus-visible{box-shadow:0 0 0 3px var(--ring);border-color:var(--sky);outline:none}::selection{background:#00aeef38}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{border:2px solid var(--offwhite);background:#c6d2e0;border-radius:8px}.shell{min-height:100vh;display:flex}.rail{width:var(--sidebar-w);background:var(--white);border-right:1px solid var(--border-strong);z-index:40;flex-direction:column;transition:width .2s;display:flex;position:fixed;inset:0 auto 0 0}.rail.collapsed{--sidebar-w:64px;width:64px}.rail .brand{border-bottom:1px solid var(--border);align-items:center;gap:10px;height:56px;padding:0 14px;display:flex}.rail .brand img{width:auto;height:30px}.rail .brand .name{font-family:var(--display);color:var(--navy);letter-spacing:-.01em;white-space:nowrap;font-size:14px;font-weight:700}.rail .brand .name small{font-family:var(--ui);color:var(--gray);letter-spacing:.04em;font-size:10.5px;font-weight:500;display:block}.rail .section{letter-spacing:.14em;text-transform:uppercase;color:var(--gray);white-space:nowrap;padding:14px 14px 4px;font-size:10px;font-weight:700}.rail.collapsed .section,.rail.collapsed .brand .name,.rail.collapsed .nav-item span.lbl{display:none}.rail .nav-item{color:var(--dark);white-space:nowrap;border-radius:10px;align-items:center;gap:10px;margin:1px 8px;padding:7px 10px;font-size:13px;font-weight:500;text-decoration:none;display:flex}.rail .nav-item:hover{background:var(--offwhite);color:var(--navy)}.rail .nav-item.active{color:var(--navy);box-shadow:inset 3px 0 0 var(--sky);background:#eaf0f8;font-weight:700}.rail .nav-item .dot{background:var(--sky);border-radius:50%;flex:0 0 8px;width:8px;height:8px}.rail .nav-item .dot.navy{background:var(--navy)}.rail .nav-item .dot.green{background:var(--green)}.rail .nav-item .dot.amber{background:var(--orange)}.rail .nav-item .dot.teal{background:var(--teal)}.rail .nav-item .dot.purple{background:#7b1fa2}.rail .grow{flex:1}.rail .foot{border-top:1px solid var(--border);align-items:center;gap:10px;padding:10px 12px;display:flex}.rail .avatar{background:linear-gradient(135deg, var(--navy), var(--sky));color:#fff;border-radius:50%;flex:0 0 30px;place-items:center;width:30px;height:30px;font-size:12px;font-weight:700;display:grid}.rail .who{min-width:0}.rail .who b{color:var(--navy);white-space:nowrap;text-overflow:ellipsis;font-size:12.5px;display:block;overflow:hidden}.rail .who span{color:var(--gray);font-size:11px}.rail .collapse{border:1px solid var(--border);background:var(--white);cursor:pointer;width:28px;height:28px;color:var(--gray);border-radius:8px}.rail.collapsed .who,.rail.collapsed .foot a{display:none}.content{min-width:0;padding-left:var(--sidebar-w);flex-direction:column;flex:1;min-height:100vh;transition:padding .2s;display:flex}.topbar{z-index:30;-webkit-backdrop-filter:blur(10px)saturate(180%);backdrop-filter:blur(10px)saturate(180%);border-bottom:1px solid var(--border-strong);background:#ffffffd9;align-items:center;gap:12px;height:56px;padding:0 22px;display:flex;position:sticky;top:0}.topbar .crumb{align-items:center;gap:8px;min-width:0;display:flex}.topbar .crumb .root{letter-spacing:.14em;text-transform:uppercase;color:var(--gray);font-size:10px}.topbar .crumb .sep{color:var(--border-strong)}.topbar .crumb .cur{font-family:var(--display);color:var(--navy);font-size:14px;font-weight:700}.topbar .spacer{flex:1}.topbar select{border:1px solid var(--border-strong);background:var(--white);color:var(--dark);border-radius:8px;padding:6px 28px 6px 10px;font-weight:500}.topbar .date{color:var(--gray);white-space:nowrap;font-size:11.5px}.live{letter-spacing:.02em;border:1px solid;border-radius:999px;align-items:center;gap:6px;padding:3px 10px;font-size:10.5px;font-weight:700;display:inline-flex}.live.on{color:#0e8a6a;background:#e8f8f5;border-color:#9fd6d0}.live .d{background:#1abc9c;border-radius:50%;width:7px;height:7px;animation:1.5s infinite pulse}.live.snap{color:#0288d1;background:#e3f6ff;border-color:#a7e0f7}.live.snap .d{background:var(--sky);animation:none}.live.off{color:var(--muted);border-color:var(--border);background:#f1f4f8}.live.off .d{background:var(--gray);animation:none}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}.main{flex:1;min-width:0;padding:18px 22px 28px}.footer{border-top:1px solid var(--border);color:var(--gray);background:var(--white);justify-content:space-between;align-items:center;padding:8px 22px;font-size:10.5px;display:flex}.footer img{height:20px}@media (width<=767px){.rail{display:none}.content{padding-left:0}}.page-head{flex-wrap:wrap;align-items:center;gap:14px;margin-bottom:14px;display:flex}.page-head h1{font-size:20px}.page-head .meta{color:var(--muted);font-size:12px}.page-head .spacer{flex:1}.section-label{letter-spacing:.16em;color:var(--sky);text-transform:uppercase;margin:16px 0 8px;font-size:10px;font-weight:700}.toolbar{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:10px;display:flex}.btn{border:1px solid var(--border-strong);background:var(--white);color:var(--dark);cursor:pointer;box-shadow:var(--shadow-card);border-radius:9px;align-items:center;gap:6px;padding:7px 13px;font-weight:600;text-decoration:none;transition:transform .12s,box-shadow .15s,background .15s,border-color .15s;display:inline-flex}.btn:hover{border-color:var(--sky);color:var(--navy);box-shadow:var(--shadow-hover);transform:translateY(-1px)}.btn:active{transform:translateY(.5px)}.btn:disabled{opacity:.5;cursor:not-allowed;box-shadow:none;transform:none}.btn.primary{background:linear-gradient(180deg, var(--blue), var(--navy));border-color:var(--navy);color:#fff}.btn.primary:hover{color:#fff;filter:brightness(1.05)}.btn.danger{color:var(--red);background:#fdecec;border-color:#f6c7c9}.btn.sm{border-radius:7px;padding:4px 9px;font-size:12px}.pill{letter-spacing:.01em;white-space:nowrap;border:1px solid #0000;border-radius:9999px;align-items:center;padding:2px 9px;font-size:10.5px;font-weight:700;line-height:16px;display:inline-flex}.pill.draft,.pill.not_opened{color:var(--muted);border-color:var(--border);background:#f1f4f8}.pill.submitted{color:var(--blue);background:#e8f1fd;border-color:#b9d4f5}.pill.locked,.pill.approved,.pill.signed_off,.pill.match{color:var(--green);background:#e8f8f0;border-color:#bfe6cf}.pill.posted,.pill.reconciled{color:#00897b;background:#e2f4f3;border-color:#9fd6d0}.pill.pending,.pill.timing,.pill.outside_payroll,.pill.explained{color:#c9760a;background:#fff4e5;border-color:#fad7a1}.pill.rejected,.pill.payroll_difference,.pill.mapping,.pill.envelope_changed,.pill.open{color:var(--red);background:#fdecec;border-color:#f6c7c9}.card{background:var(--white);border:1px solid var(--border);box-shadow:var(--shadow-card);border-radius:16px;position:relative;overflow:hidden}.card:before{content:"";background:linear-gradient(90deg, var(--sky), var(--teal));height:3px;position:absolute;inset:0 0 auto}.card .body{padding:14px 16px}.kpis{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;margin-bottom:14px;display:grid}.kpi{background:var(--white);border:1px solid var(--border);border-radius:16px;padding:14px 16px 12px;transition:transform .18s,box-shadow .18s;position:relative;overflow:hidden;box-shadow:0 2px 12px #1c3a6b0f}.kpi:hover{transform:translateY(-2px);box-shadow:0 16px 40px -16px #1c3a6b59}.kpi:before{content:"";background:linear-gradient(90deg, var(--sky), var(--teal));height:3px;position:absolute;inset:0 0 auto}.kpi.navy:before{background:linear-gradient(90deg, var(--navy), var(--blue))}.kpi.green:before{background:linear-gradient(90deg, var(--green), #1abc9c)}.kpi.orange:before{background:linear-gradient(90deg, var(--orange), var(--red))}.kpi.red:before{background:linear-gradient(90deg, var(--red), #7b1fa2)}.kpi b{letter-spacing:-.02em;color:var(--navy);font-variant-numeric:tabular-nums;white-space:nowrap;font-size:24px;font-weight:800;line-height:1;display:block}.kpi.green b{color:var(--green)}.kpi.orange b{color:var(--orange)}.kpi.red b{color:var(--red)}.kpi.sky b{color:var(--sky)}.kpi span{color:var(--gray);text-transform:uppercase;letter-spacing:.06em;margin-top:7px;font-size:10.5px;font-weight:600;display:block}.kpi small{color:var(--gray);text-transform:none;letter-spacing:0;margin-top:2px;font-size:11px;display:block}.msg{border:1px solid;border-radius:10px;margin:8px 0;padding:9px 12px;font-size:12.5px}.msg.err{color:var(--red);background:#fdecec;border-color:#f6c7c9}.msg.ok{color:var(--green);background:#e8f8f0;border-color:#bfe6cf}.msg.warn{color:#c9760a;background:#fff4e5;border-color:#fad7a1}.muted{color:var(--muted)}.num{font-variant-numeric:tabular-nums;text-align:right}.neg{color:var(--red)}.flags{color:#c9760a;font-size:11.5px}input.txt,select.txt,textarea.txt{border:1px solid var(--border-strong);background:var(--white);border-radius:9px;width:100%;padding:7px 10px}label.f{color:var(--gray);text-transform:uppercase;letter-spacing:.06em;margin:8px 0 4px;font-size:11px;font-weight:600;display:block}.form-row{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:10px;display:grid}.xl{border:1px solid var(--border-strong);background:var(--white);max-width:100%;box-shadow:var(--shadow-card);border-radius:12px;overflow:auto}.xl table{border-collapse:separate;border-spacing:0;min-width:100%;font-size:12.5px}.xl th,.xl td{border-right:1px solid var(--grid-line);border-bottom:1px solid var(--grid-line);white-space:nowrap;background:#fff;height:24px;padding:4px 8px}.xl th{background:var(--grid-head);color:var(--muted);text-align:center;z-index:3;letter-spacing:.04em;text-transform:uppercase;font-size:10.5px;font-weight:600;position:sticky;top:0}.xl th.group{color:var(--navy);border-bottom:2px solid var(--blue);text-transform:none;letter-spacing:0;background:#e8eef5;font-size:12px}.xl td.num,.xl th.num{text-align:right;font-variant-numeric:tabular-nums}.xl tr.total td{background:var(--offwhite);font-weight:700}.xl tr.l1 td{color:var(--navy);background:#eef3fa;font-weight:700}.xl tr.l2 td{background:#f8fafc;font-weight:600}.xl tr.l3 td{color:#4a5b6c}.xl td.sticky,.xl th.sticky{z-index:2;background:#fff;position:sticky;left:0}.xl th.sticky{z-index:4;background:var(--grid-head)}.xl td.sticky2,.xl th.sticky2{z-index:2;background:#fff;position:sticky}.xl th.sticky2{z-index:4;background:var(--grid-head)}.xl tbody tr:hover td{background:#f3f9fe}.xl td.rownum,.xl th.rownum{background:var(--grid-head);color:#666;text-align:center;width:34px;min-width:34px;font-size:11px}.xl .caret{cursor:pointer;-webkit-user-select:none;user-select:none;width:14px;color:var(--gray);display:inline-block}.xl td.bad{color:var(--red)}.xl td.frozen-end{border-right:2px solid var(--blue)}.grid-wrap{border:1px solid var(--border-strong);box-shadow:var(--shadow-card);background:var(--white);border-radius:12px;overflow:hidden}.dsg-container{--dsg-border-color:var(--grid-line);--dsg-selection-border-color:#217346;--dsg-selection-background-color:#2173460f;--dsg-header-text-color:var(--dark);--dsg-header-active-text-color:var(--navy);--dsg-cell-background-color:#fff;--dsg-cell-disabled-background-color:#fafafa;font-family:Calibri, var(--ui);scrollbar-width:auto;font-size:12.5px;overflow:auto}.dsg-container::-webkit-scrollbar{width:14px;height:14px}.dsg-container::-webkit-scrollbar-track{background:var(--offwhite)}.dsg-container::-webkit-scrollbar-thumb{border:3px solid var(--offwhite);background:#b9c6d6;border-radius:8px}.dsg-container::-webkit-scrollbar-thumb:hover{background:#8fa3ba}.dsg-cell-header{font-weight:600;background:var(--grid-head)!important}.dsg-cell-gutter{color:#666;background:var(--grid-head)!important}.dsg-cell-header-container{text-align:center;white-space:normal;font-size:11px;line-height:1.15}.dsg-input{font-family:Calibri, var(--ui);font-size:12.5px}.dsg-cell.dsg-cell-disabled{color:#4a5b6c}.dsg-cell .calc{color:var(--navy);font-variant-numeric:tabular-nums;text-align:right;width:100%;padding:0 8px;font-weight:700}.dsg-cell .txt{text-overflow:ellipsis;white-space:nowrap;width:100%;padding:0 8px;overflow:hidden}.dsg-cell .txt.dim{color:var(--gray)}.tabs{border-bottom:2px solid var(--border-strong);flex-wrap:wrap;gap:2px;margin-bottom:12px;padding-bottom:0;display:flex}.tabs .tab{border:1px solid var(--border-strong);background:var(--offwhite);color:var(--muted);cursor:pointer;border-bottom:none;border-radius:8px 8px 0 0;align-items:center;gap:5px;margin-bottom:-2px;padding:6px 13px;font-size:12.5px;font-weight:600;display:inline-flex}.tabs .tab:hover{color:var(--navy);background:#eef3fa}.tabs .tab.active{background:var(--white);color:var(--navy);border-bottom:2px solid var(--white);box-shadow:0 -2px 0 var(--sky) inset}.tabs .tab.empty{color:var(--gray);font-weight:500}.tabs .tab.closed{color:var(--green)}.tabs .tab .dot{background:var(--orange);border-radius:50%;width:6px;height:6px}.tabs .tab.closed .lock{color:var(--green);font-size:15px;line-height:1}.pill.gone{color:var(--muted);border-color:var(--border-strong);background:#eef1f5}.pill.live-on{color:var(--green);background:#e8f8f0;border-color:#bfe6cf}.dsg-row.row-gone .dsg-cell{background:#fafbfc}.dsg-row.row-gone .dsg-cell .txt,.dsg-row.row-gone .dsg-cell .calc,.dsg-row.row-gone .dsg-cell input{color:var(--gray);font-weight:500}.dsg-row.row-gone:hover .dsg-cell{background:#f3f5f8}.dsg-row.row-gone:hover .dsg-cell .txt,.dsg-row.row-gone:hover .dsg-cell .calc{color:var(--dark)}tr.row-gone td{color:var(--gray);background:#fafbfc;font-weight:500}tr.row-gone:hover td{color:var(--dark)}.msg-inline{color:#8a5300;font:500 11.5px/1.35 var(--ui);background:#fff4e5;border:1px solid #fad7a1;border-radius:8px;align-items:center;gap:6px;padding:5px 11px;display:inline-flex}.msg-inline:before{content:"ⓘ";font-weight:700}.card.imp{border-color:var(--sky);box-shadow:0 0 0 3px var(--ring);margin:10px 0 12px}.imp-head{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.imp-head .muted{font-size:12px}.imp-head .warnish{color:#c9760a;font-weight:600}.imp-list{max-height:320px;margin-top:10px;overflow:auto}.chg{color:var(--navy);font:500 11px/1.5 var(--ui);white-space:nowrap;background:#eef4fb;border:1px solid #d5e4f5;border-radius:6px;margin:1px 5px 1px 0;padding:1px 7px;display:inline-block}.chg.cleared{color:#8a5300;background:#fff4e5;border-color:#fad7a1}.chk{align-items:center;gap:6px;font-size:12px;display:flex}.dsg-cell .calc.up{color:var(--green)}.dsg-cell .calc.down{color:var(--red)}.dsg-cell .calc.dim{color:var(--gray);font-weight:500}.dup{border-top:1px solid var(--border);align-items:center;gap:14px;padding:9px 0;display:flex}.dup:first-child{border-top:0}.dup-why{font:600 11.5px/1.35 var(--ui);color:var(--muted);text-transform:none;flex:0 0 190px}.dup-pair{font:400 12px/1.4 var(--ui);flex-direction:column;flex:1;gap:3px;min-width:0;display:flex}.dup-pair b{min-width:38px;color:var(--gray);text-transform:uppercase;font-size:10.5px;font-weight:600;display:inline-block}:root{--hr:#1a5ba6;--hr-bg:#e8f1fd;--hr-line:#b9d4f5;--ap:#7b3fb5;--ap-bg:#f3ecfb;--ap-line:#d9c4f0;--fi:#0e8a7e;--fi-bg:#e3f5f2;--fi-line:#a7ddd5;--ok:#1f9d55;--ok-bg:#e8f8f0;--ok-line:#bfe6cf;--warn:#c9760a;--warn-bg:#fff4e5;--warn-line:#fad7a1}.rail .rail-scroll{flex:1;padding-bottom:8px;overflow:hidden auto}.rail .nav-item .ni{width:18px;height:18px;color:var(--gray);flex:0 0 18px;place-items:center;display:grid}.rail .nav-item.active .ni,.rail .nav-item:hover .ni{color:var(--blue)}.rail .nav-item .badge{background:var(--red);color:#fff;min-width:20px;height:20px;font:700 11px/20px var(--ui);text-align:center;border-radius:10px;margin-left:auto;padding:0 6px}.rail .nav-item:first-child{margin-top:10px}.rail .steps-head{justify-content:space-between;align-items:center;gap:6px;display:flex}.rail .co-link{border:1px solid var(--border);background:var(--offwhite);color:var(--navy);font:600 10.5px/1 var(--ui);cursor:pointer;letter-spacing:0;text-transform:none;text-overflow:ellipsis;white-space:nowrap;border-radius:6px;max-width:120px;padding:3px 7px;overflow:hidden}.rail .co-link:hover{border-color:var(--sky)}.rail-steps{margin:4px 0 6px;padding:0 8px;list-style:none;position:relative}.rail-steps:before{content:"";background:var(--border);border-radius:2px;width:2px;position:absolute;top:14px;bottom:14px;left:24px}.step-item{color:var(--dark);border-radius:10px;align-items:center;gap:10px;padding:6px 8px 6px 6px;text-decoration:none;display:flex;position:relative}.step-item:hover{background:var(--offwhite)}.step-item.active{box-shadow:inset 3px 0 0 var(--sky);background:#eaf0f8}.step-item .sn{z-index:1;width:22px;height:22px;font:700 11px/1 var(--ui);background:var(--white);border:2px solid var(--border-strong);color:var(--gray);border-radius:50%;flex:0 0 22px;place-items:center;display:grid;position:relative}.step-item.done .sn{background:var(--ok);border-color:var(--ok);color:#fff}.step-item.current .sn.hr{border-color:var(--hr);color:var(--hr);box-shadow:0 0 0 3px var(--hr-bg)}.step-item.current .sn.approver{border-color:var(--ap);color:var(--ap);box-shadow:0 0 0 3px var(--ap-bg)}.step-item.current .sn.finance{border-color:var(--fi);color:var(--fi);box-shadow:0 0 0 3px var(--fi-bg)}.step-item .lbl{font:600 12.5px/1.2 var(--ui);white-space:nowrap;flex-direction:column;display:flex}.step-item .lbl small{font:500 10px/1.3 var(--ui);color:var(--gray);letter-spacing:.02em}.step-item.todo .lbl{color:var(--muted);font-weight:500}.step-item.current .lbl{color:var(--navy)}.rail.collapsed .steps-head,.rail.collapsed .step-item .lbl,.rail.collapsed .nav-item .badge{display:none}.rail.collapsed .rail-steps:before{left:21px}.rail .foot{position:relative}.rail .who-btn{cursor:pointer;text-align:left;background:0 0;border:0;border-radius:10px;align-items:center;gap:10px;min-width:0;padding:2px;display:flex}.rail .who-btn:hover{background:var(--offwhite)}.user-menu{background:var(--white);border:1px solid var(--border-strong);z-index:60;border-radius:12px;width:220px;padding:6px;position:absolute;bottom:54px;left:10px;box-shadow:0 18px 40px -12px #10182840}.user-menu .um-head{border-bottom:1px solid var(--border);flex-direction:column;margin-bottom:4px;padding:8px 10px;display:flex}.user-menu .um-head span{color:var(--gray);text-overflow:ellipsis;font-size:11px;overflow:hidden}.user-menu button{text-align:left;cursor:pointer;width:100%;color:var(--dark);background:0 0;border:0;border-radius:8px;padding:8px 10px;font-weight:500;display:block}.user-menu button:hover{background:var(--offwhite);color:var(--navy)}.monthnav{align-items:center;gap:4px;display:flex;position:relative}.monthnav .mn-arrow{border:1px solid var(--border-strong);background:var(--white);cursor:pointer;width:30px;height:32px;color:var(--navy);border-radius:8px;font-size:16px}.monthnav .mn-arrow:hover{border-color:var(--sky)}.monthnav .mn-cur{border:1px solid var(--border-strong);background:var(--white);cursor:pointer;height:32px;color:var(--navy);font:700 13px/1 var(--ui);border-radius:8px;justify-content:center;align-items:center;gap:7px;min-width:150px;padding:0 12px;display:inline-flex}.monthnav .mn-cur:hover{border-color:var(--sky)}.monthnav .mn-cur .car{color:var(--gray);font-size:10px}.mn-pop{background:var(--white);border:1px solid var(--border-strong);z-index:50;border-radius:14px;width:260px;padding:12px;position:absolute;top:40px;right:34px;box-shadow:0 22px 50px -16px #1018284d}.mn-year{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.mn-year button{border:1px solid var(--border);background:var(--white);cursor:pointer;width:28px;height:28px;color:var(--navy);border-radius:8px}.mn-year b{font:700 14px var(--display);color:var(--navy)}.mn-grid{grid-template-columns:repeat(4,1fr);gap:6px;display:grid}.mn-grid button{border:1px solid var(--border);background:var(--offwhite);cursor:pointer;color:var(--dark);border-radius:8px;padding:8px 0;font-weight:600;position:relative}.mn-grid button:hover{border-color:var(--sky);background:var(--white)}.mn-grid button.on{background:var(--navy);border-color:var(--navy);color:#fff}.mn-grid .dot,.mn-legend .dot{border-radius:50%;width:6px;height:6px;display:inline-block}.mn-grid .dot{position:absolute;top:4px;right:5px}.dot.closed{background:var(--ok)}.dot.open{background:var(--orange)}.mn-legend{color:var(--gray);align-items:center;gap:6px;margin-top:10px;font-size:11px;display:flex}.ph{flex-wrap:wrap;align-items:flex-end;gap:16px;margin-bottom:16px;display:flex}.ph-main{flex:1;min-width:0}.eyebrow{font:700 10.5px/1 var(--ui);letter-spacing:.14em;text-transform:uppercase;color:var(--sky);align-items:center;gap:8px;margin-bottom:7px;display:flex}.ph h1,.stepframe h1{letter-spacing:-.022em;font-size:24px}.ph-sub{color:var(--muted);flex-wrap:wrap;align-items:center;gap:10px;margin-top:6px;font-size:13px;display:flex}.ph-right{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.co-select{border:1px solid var(--border-strong);background:var(--white);color:var(--navy);border-radius:8px;max-width:360px;padding:6px 28px 6px 10px;font-weight:700}.owner{font:700 10px/16px var(--ui);letter-spacing:.04em;text-transform:uppercase;border:1px solid;border-radius:999px;align-items:center;padding:2px 8px;display:inline-flex}.owner.hr{color:var(--hr);background:var(--hr-bg);border-color:var(--hr-line)}.owner.approver{color:var(--ap);background:var(--ap-bg);border-color:var(--ap-line)}.owner.finance{color:var(--fi);background:var(--fi-bg);border-color:var(--fi-line)}.pill.st-not_opened{color:var(--muted);border-color:var(--border);background:#f1f4f8}.pill.st-draft{background:var(--hr-bg);color:var(--hr);border-color:var(--hr-line)}.pill.st-submitted{background:var(--ap-bg);color:var(--ap);border-color:var(--ap-line)}.pill.st-approved,.pill.st-locked,.pill.st-posted{background:var(--fi-bg);color:var(--fi);border-color:var(--fi-line)}.pill.st-reconciled{background:var(--ok-bg);color:var(--ok);border-color:var(--ok-line)}.stepframe{flex-direction:column;min-height:calc(100vh - 139px);display:flex}.sf-head{border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:flex-start;gap:16px;margin-bottom:16px;padding-bottom:14px;display:flex}.sf-title{flex:1;min-width:280px}.sf-sub{flex-wrap:wrap;align-items:center;gap:10px;margin-top:10px;display:flex}.sf-history{flex-wrap:wrap;gap:6px;margin-top:10px;display:flex}.sf-history span{color:var(--muted);background:var(--white);border:1px solid var(--border);border-radius:999px;padding:2px 10px;font-size:11.5px}.sf-actions{flex-wrap:wrap;align-items:center;gap:8px;padding-top:18px;display:flex}.sf-body{flex:1}.sf-foot{z-index:20;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-top:1px solid var(--border-strong);background:#ffffffeb;align-items:center;gap:12px;margin:22px -22px -28px;padding:12px 22px;display:flex;position:sticky;bottom:0}.sf-foot-mid{flex:1;justify-content:flex-end;align-items:center;gap:10px;display:flex}.btn.ghost{box-shadow:none;color:var(--muted);background:0 0;border-color:#0000}.btn.ghost:hover{background:var(--white);border-color:var(--border-strong);color:var(--navy);transform:none}.btn.danger.solid{background:var(--red);color:#fff;border-color:var(--red)}.btn.danger:hover{color:var(--red)}.btn.danger.solid:hover{color:#fff;filter:brightness(1.05)}.btn.primary{padding:8px 16px}.done-note{color:var(--ok);font-weight:700}.unsaved{color:var(--warn);font-size:12px;font-weight:600}.lead{color:var(--dark);background:var(--white);border:1px solid var(--border);border-radius:12px;margin-bottom:14px;padding:12px 14px;font-size:13.5px;line-height:1.5}.hint-line{color:var(--muted);margin:0 0 8px;font-size:12px}.banner{border:1px solid var(--hr-line);background:var(--hr-bg);color:var(--dark);border-radius:12px;align-items:center;gap:12px;margin-bottom:12px;padding:10px 14px;display:flex}.banner .b-ic{background:var(--white);width:26px;height:26px;color:var(--hr);border-radius:50%;flex:0 0 26px;place-items:center;font-size:12px;font-weight:700;display:grid}.banner.ok{border-color:var(--ok-line);background:var(--ok-bg)}.banner.ok .b-ic{color:var(--ok)}.banner .spacer{flex:1}.grid2{grid-template-columns:1fr 1fr;gap:14px;margin-bottom:14px;display:grid}.grid2.wide-left{grid-template-columns:1.4fr 1fr}.grid2.wide-right{grid-template-columns:1fr 1.6fr}@media (width<=1100px){.grid2,.grid2.wide-left,.grid2.wide-right{grid-template-columns:1fr}}.card .body h3.mb,h3.mb{margin-bottom:10px}.card-title{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:10px;display:flex}.card-title .count{text-align:center;min-width:24px;font:700 12px/22px var(--ui);background:var(--offwhite);border:1px solid var(--border);color:var(--navy);border-radius:999px;margin-left:auto;padding:0 8px}.small{font-size:11.5px}p.muted.small{margin:0 0 8px}.xl.compact th,.xl.compact td{height:30px;padding:5px 9px}.xl.compact th{position:sticky}.xl td.wrap{white-space:normal;min-width:160px}.xl td.up{color:var(--ok);font-weight:600}.xl td.down{color:var(--red);font-weight:600}.xl td.ell{text-overflow:ellipsis;max-width:260px;overflow:hidden}.xl.journal td b{color:var(--navy)}.kpis .kpi b{font-size:22px}ul.plain{margin:0;padding-left:18px}ul.plain li{margin:4px 0}.next-list{color:var(--dark);margin:0;padding-left:18px}.next-list li{margin:6px 0;line-height:1.45}.pipeline{gap:4px;height:46px;margin:0 0 6px;display:flex}.pipeline .seg{white-space:nowrap;border:1px solid;border-radius:10px;align-items:center;gap:8px;min-width:168px;padding:0 12px;display:flex;overflow:hidden}.pipeline .seg b{font:800 18px/1 var(--display)}.pipeline .seg span{font:600 11.5px/1.2 var(--ui);text-overflow:ellipsis;overflow:hidden}.seg.not_opened{border-color:var(--border);color:var(--muted);background:#f1f4f8}.seg.draft{background:var(--hr-bg);border-color:var(--hr-line);color:var(--hr)}.seg.submitted{background:var(--ap-bg);border-color:var(--ap-line);color:var(--ap)}.seg.approved,.seg.locked,.seg.posted{background:var(--fi-bg);border-color:var(--fi-line);color:var(--fi)}.seg.reconciled{background:var(--ok-bg);border-color:var(--ok-line);color:var(--ok)}.tasks{grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px;display:grid}.task{text-align:left;border:1px solid var(--border);background:var(--white);cursor:pointer;box-shadow:var(--shadow-card);font:inherit;color:inherit;border-radius:14px;flex-direction:column;gap:6px;padding:12px 14px;transition:transform .15s,box-shadow .15s;display:flex;position:relative;overflow:hidden}.task:before{content:"";width:4px;position:absolute;inset:0 auto 0 0}.task.hr:before{background:var(--hr)}.task.approver:before{background:var(--ap)}.task.finance:before{background:var(--fi)}.task:hover{box-shadow:var(--shadow-hover);transform:translateY(-2px)}.task-top{font:700 12.5px var(--ui);color:var(--navy);align-items:center;gap:8px;display:flex}.task-top .owner{margin-left:auto}.task-step{background:var(--navy);color:#fff;border-radius:50%;place-items:center;width:20px;height:20px;font-size:11px;display:grid}.task-co{color:var(--dark);font-size:14px}.task-meta{color:var(--muted);min-height:16px;font-size:12px}.task-go{font:700 12.5px var(--ui);color:var(--blue)}.calm{border:1px dashed var(--border-strong);color:var(--muted);background:#fff9;border-radius:12px;padding:14px 16px}.board{background:var(--white);border:1px solid var(--border);box-shadow:var(--shadow-card);border-radius:16px;overflow:auto}.board table{border-collapse:separate;border-spacing:0;width:100%;font-size:13px}.board th{color:var(--muted);font:700 10.5px/1.2 var(--ui);letter-spacing:.05em;text-transform:uppercase;border-bottom:1px solid var(--border);text-align:left;white-space:nowrap;background:#f7f9fc;padding:10px;position:sticky;top:0}.board th.st{text-align:center;width:92px}.board td{border-bottom:1px solid var(--border);white-space:nowrap;padding:10px}.board tbody tr{cursor:pointer}.board tbody tr:hover td{background:#f5f9fe}.board tbody tr.yours td:first-child{box-shadow:inset 3px 0 0 var(--sky)}.board td.co b{color:var(--navy);margin-right:8px}.board td.co span{color:var(--muted)}.board td.st{text-align:center;position:relative}.board td.st+td.st:before{content:"";background:var(--border);z-index:0;height:2px;position:absolute;top:50%;left:-50%;right:50%}.board .dot{z-index:1;background:var(--white);border:2px solid var(--border-strong);width:22px;height:22px;font:700 11px/1 var(--ui);color:#fff;border-radius:50%;place-items:center;display:inline-grid;position:relative}.board .dot.done{background:var(--ok);border-color:var(--ok)}.board .dot.current.hr{border-color:var(--hr);box-shadow:0 0 0 4px var(--hr-bg)}.board .dot.current.approver{border-color:var(--ap);box-shadow:0 0 0 4px var(--ap-bg)}.board .dot.current.finance{border-color:var(--fi);box-shadow:0 0 0 4px var(--fi-bg)}.board .dot.current:after{content:"";background:currentColor;border-radius:50%;width:8px;height:8px}.board .dot.current.hr{color:var(--hr)}.board .dot.current.approver{color:var(--ap)}.board .dot.current.finance{color:var(--fi)}.board td.num{text-align:right;font-variant-numeric:tabular-nums}.board .ccy{color:var(--gray);font-size:11px}.board .flagcount{background:var(--warn-bg);min-width:22px;color:var(--warn);border:1px solid var(--warn-line);font:700 11px/18px var(--ui);text-align:center;border-radius:999px;padding:0 6px;display:inline-block}.board td.next{flex-direction:column;gap:2px;display:flex}.board .nx{font-weight:700}.board .nx.hr{color:var(--hr)}.board .nx.approver{color:var(--ap)}.board .nx.finance{color:var(--fi)}.board .nx.done{color:var(--ok)}.board td.next small{color:var(--gray);font-size:11px}.infocards{grid-template-columns:1fr 1fr;gap:14px;margin-top:16px;display:grid}.infocards p{margin:4px 0 0;font-size:12.5px}@media (width<=1000px){.infocards{grid-template-columns:1fr}}.checks{flex-direction:column;gap:8px;display:flex}.check{border:1px solid var(--border);background:var(--offwhite);border-radius:10px;align-items:flex-start;gap:10px;padding:9px 11px;display:flex}.check .ci{width:22px;height:22px;font:800 12px/1 var(--ui);color:#fff;border-radius:50%;flex:0 0 22px;place-items:center;display:grid}.check.ok .ci{background:var(--ok)}.check.warn .ci{background:var(--orange)}.check.bad .ci{background:var(--red)}.check.warn{background:var(--warn-bg);border-color:var(--warn-line)}.check.bad{background:#fdecec;border-color:#f6c7c9}.check .cd{color:var(--muted);margin-top:3px;font-size:12px}.bridge{flex-direction:column;gap:6px;display:flex}.br-row{grid-template-columns:minmax(150px,1.3fr) 2fr 110px;align-items:center;gap:10px;font-size:12.5px;display:grid}.br-l{color:var(--dark)}.br-l em{color:var(--gray);font-size:11.5px;font-style:normal}.br-bar{background:var(--offwhite);border-radius:6px;height:12px;overflow:hidden}.br-bar i{background:var(--border-strong);border-radius:6px;height:100%;display:block}.br-row.total .br-l{color:var(--navy);font-weight:700}.br-row.total .br-bar i{background:linear-gradient(90deg, var(--navy), var(--blue))}.br-row.up .br-bar i{background:#f5a3a7}.br-row.down .br-bar i{background:#9ed8b4}.br-v{text-align:right;font-variant-numeric:tabular-nums;font-weight:600}.br-row.total .br-v{color:var(--navy);font-weight:800}.br-row.up .br-v{color:var(--red)}.br-row.down .br-v{color:var(--ok)}.br-row.flat .br-v{color:var(--gray)}.seg-tabs{border-bottom:1px solid var(--border);gap:2px;padding:6px 6px 0;display:flex;overflow-x:auto}.seg-tabs button{cursor:pointer;font:600 12.5px var(--ui);color:var(--muted);white-space:nowrap;background:0 0;border:0;border-bottom:2px solid #0000;align-items:center;gap:6px;padding:9px 12px;display:inline-flex}.seg-tabs button span{background:var(--offwhite);border:1px solid var(--border);border-radius:999px;min-width:20px;padding:0 6px;font-size:11px;line-height:17px}.seg-tabs button.on{color:var(--navy);border-bottom-color:var(--sky)}.seg-tabs button.on span{background:var(--navy);border-color:var(--navy);color:#fff}.seg-tabs button.zero{color:var(--gray);font-weight:500}.seg-toggle{border:1px solid var(--border-strong);background:var(--white);border-radius:9px;display:inline-flex;overflow:hidden}.seg-toggle button{cursor:pointer;color:var(--muted);background:0 0;border:0;padding:6px 12px;font-weight:600}.seg-toggle button.on{background:var(--navy);color:#fff}.menu-wrap{position:relative}.menu{background:var(--white);border:1px solid var(--border-strong);z-index:40;border-radius:12px;width:330px;padding:6px;position:absolute;top:38px;right:0;box-shadow:0 22px 50px -16px #1018284d}.menu button{text-align:left;cursor:pointer;background:0 0;border:0;border-radius:8px;flex-direction:column;gap:2px;width:100%;padding:9px 10px;display:flex}.menu button:hover{background:var(--offwhite)}.menu button b{color:var(--navy);font-size:13px}.menu button span{color:var(--muted);font-size:11.5px;line-height:1.35}.howto{flex-direction:column;gap:14px;margin:0;padding-left:20px;display:flex}.howto li{line-height:1.5}.howto li>div{margin-top:6px}.inline-form{align-items:center;gap:8px;max-width:420px;display:flex}.substeps{grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:14px;display:grid}@media (width<=1100px){.substeps{grid-template-columns:1fr 1fr}}.sub{background:var(--white);border:1px solid var(--border);border-radius:12px;flex-wrap:wrap;align-items:flex-start;gap:10px;padding:12px;display:flex}.sub>div{flex:1;min-width:120px}.sub p{margin:4px 0 0}.sub .sub-act{flex:0 0 100%;margin-top:2px;padding-left:32px}.sub-n{background:var(--fi-bg);width:22px;height:22px;color:var(--fi);border:1px solid var(--fi-line);font:700 11px/1 var(--ui);border-radius:50%;flex:0 0 22px;place-items:center;display:grid}.rgroup{margin-bottom:10px}.rcards{grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:12px;display:grid}.rcard{background:var(--white);border:1px solid var(--border);box-shadow:var(--shadow-card);border-radius:14px;flex-direction:column;gap:8px;padding:14px 16px;display:flex}.rcard h3{font-size:14px}.rcard p{color:var(--muted);flex:1;margin:0;font-size:12.5px;line-height:1.45}.rc-top{justify-content:space-between;align-items:flex-start;gap:8px;display:flex}.rc-who{flex-wrap:wrap;gap:4px;display:flex}.rc-act{flex-wrap:wrap;gap:6px;margin-top:2px;display:flex}.tag{font:700 10px/18px var(--ui);text-transform:uppercase;letter-spacing:.04em;border:1px solid;border-radius:6px;flex:none;padding:0 7px}.tag.names{color:var(--ap);background:var(--ap-bg);border-color:var(--ap-line)}.tag.nonames{color:var(--fi);background:var(--fi-bg);border-color:var(--fi-line)}.aud{font:600 10.5px/18px var(--ui);background:var(--offwhite);border:1px solid var(--border);color:var(--muted);border-radius:999px;padding:0 7px}.aud.hr{color:var(--hr);border-color:var(--hr-line);background:var(--hr-bg)}.aud.approver{color:var(--ap);border-color:var(--ap-line);background:var(--ap-bg)}.aud.finance{color:var(--fi);border-color:var(--fi-line);background:var(--fi-bg)}.aud.management{color:var(--navy);border-color:var(--border-strong)}.empty{text-align:center;background:var(--white);border:1px dashed var(--border-strong);color:var(--dark);border-radius:16px;padding:34px 20px}.empty .empty-ic{background:var(--offwhite);border:1px solid var(--border);width:46px;height:46px;color:var(--blue);border-radius:50%;place-items:center;margin:0 auto 10px;font-size:20px;display:grid}.empty h3{margin-bottom:6px;font-size:15px}.empty .muted{max-width:520px;margin:0 auto;font-size:12.5px;line-height:1.5}.card .empty{border:0;padding:16px 10px}.card .empty .empty-ic{width:34px;height:34px;color:var(--ok);font-size:15px}.card .empty h3{font-size:13px;font-weight:600;font-family:var(--ui);color:var(--muted)}.modal-back{z-index:80;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#0f1e3c61;place-items:center;padding:20px;animation:.12s ease-out fade;display:grid;position:fixed;inset:0}.modal{background:var(--white);border-radius:18px;flex-direction:column;max-width:96vw;max-height:92vh;animation:.14s ease-out pop;display:flex;overflow:hidden;box-shadow:0 30px 80px -20px #0f1e3c73}.modal-head{align-items:flex-start;gap:12px;padding:18px 20px 10px;display:flex}.modal-head>div{flex:1;min-width:0}.modal-head h2{font-size:17px}.modal-head p{margin:6px 0 0;font-size:12.5px;line-height:1.45}.modal-head .x{background:var(--offwhite);width:30px;height:30px;color:var(--muted);cursor:pointer;border:0;border-radius:50%;font-size:18px}.modal-body{padding:4px 20px 16px;overflow:auto}.modal-foot{border-top:1px solid var(--border);background:#fafbfd;justify-content:flex-end;gap:8px;padding:12px 20px;display:flex}.dialog-body{color:var(--dark);margin-bottom:6px;font-size:13px;line-height:1.5}label.f .req{color:var(--gray);text-transform:none;letter-spacing:0;font-weight:500}.hint{color:var(--warn);margin-top:4px;font-size:11.5px}textarea.txt{resize:vertical;font-family:inherit}.merge-row{border-radius:8px;align-items:center;gap:10px;margin-bottom:6px;padding:7px 10px;display:flex}.merge-row b{text-transform:uppercase;letter-spacing:.05em;width:44px;font-size:11px}.merge-row.keep{background:var(--ok-bg)}.merge-row.drop{background:#fdecec}@keyframes fade{0%{opacity:0}to{opacity:1}}@keyframes pop{0%{opacity:0;transform:translateY(6px)scale(.985)}to{opacity:1;transform:none}}.toasts{z-index:90;flex-direction:column;gap:8px;max-width:420px;display:flex;position:fixed;bottom:76px;right:20px}.toast{background:var(--navy);color:#fff;cursor:pointer;border-radius:12px;align-items:flex-start;gap:10px;padding:11px 14px;font-size:13px;line-height:1.45;animation:.16s ease-out pop;display:flex;box-shadow:0 18px 40px -12px #0f1e3c73}.toast .ic{width:20px;height:20px;font:800 11px/1 var(--ui);background:#ffffff2e;border-radius:50%;flex:0 0 20px;place-items:center;display:grid}.toast.ok .ic{background:var(--ok)}.toast.err{background:#8e1d24}.toast.err .ic{background:var(--red)}.toast.warn .ic{background:var(--orange)}.auth{min-height:100vh;color:var(--dark);flex-direction:column;display:flex;position:relative}.auth-top{z-index:1;justify-content:space-between;align-items:center;padding:26px clamp(20px,5vw,64px) 0;display:flex;position:relative}.auth-logo{background:#fff;border:1px solid #e6ebf1;border-radius:12px;padding:8px 14px;display:inline-flex;box-shadow:0 8px 24px -14px #1c3a6b59}.auth-logo img{height:28px;display:block}.auth-top-tag{letter-spacing:.18em;text-transform:uppercase;color:var(--gray);font-size:11px;font-weight:600}.auth-body{z-index:1;flex:1;grid-template-columns:minmax(0,1.05fr) minmax(380px,460px);align-items:center;gap:clamp(32px,6vw,96px);width:100%;max-width:1320px;margin:0 auto;padding:28px clamp(20px,5vw,64px);display:grid;position:relative}.auth-eyebrow{color:var(--blue);background:#fff;border:1px solid #dce8f5;border-radius:999px;align-items:center;gap:8px;padding:6px 12px 6px 10px;font-size:12px;font-weight:600;display:inline-flex;box-shadow:0 4px 14px -8px #1c3a6b4d}.auth-eyebrow i{background:#1fb57a;border-radius:50%;width:7px;height:7px;box-shadow:0 0 0 4px #1fb57a26}.auth-hero h1{color:var(--navy);letter-spacing:-.035em;margin:22px 0 16px;font-size:clamp(34px,3.6vw,52px);line-height:1.05}.auth-hero h1 span{background:linear-gradient(92deg, var(--blue) 0%, var(--sky) 55%, var(--teal) 100%);color:#0000;-webkit-background-clip:text;background-clip:text}.auth-hero>p{color:var(--muted);max-width:520px;margin:0 0 30px;font-size:16px;line-height:1.6}.auth-flow{-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#ffffffc7;border:1px solid #e3eaf3;border-radius:20px;max-width:520px;padding:18px 18px 14px;box-shadow:0 30px 70px -36px #1c3a6b73,0 1px 2px #1c3a6b0a}.auth-flow-head{color:var(--gray);justify-content:space-between;align-items:center;padding:0 4px 12px;font-size:12px;display:flex}.auth-flow-head b{color:var(--navy);font-size:13px;font-weight:600}.auth-flow ol{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:0;padding:0;list-style:none;display:grid}.auth-flow li{opacity:0;min-width:0;animation:.5s ease-out forwards flowIn;animation-delay:calc(.15s + var(--i) * .12s);background:#f7fafd;border:1px solid #eaf0f6;border-radius:12px;align-items:center;gap:10px;padding:9px 10px;display:flex}.auth-flow li:last-child{background:linear-gradient(90deg,#e6f6fd,#e8f6f6);border-color:#c9e8f6;grid-column:1/-1}.auth-flow .dot{width:30px;height:30px;color:var(--blue);background:#fff;border:1px solid #dce8f5;border-radius:9px;flex:0 0 30px;place-items:center;display:grid}.auth-flow .txt{flex-direction:column;flex:1;min-width:0;display:flex}.auth-flow .txt b{color:var(--navy);font-size:13px;font-weight:600}.auth-flow .txt small{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;font-size:11.5px;overflow:hidden}.auth-flow .tick{color:#fff;width:20px;height:20px;animation:.35s cubic-bezier(.3,1.6,.6,1) forwards tickIn;animation-delay:calc(.9s + var(--i) * .18s);background:#1fb57a;border-radius:50%;flex:0 0 20px;place-items:center;display:grid;transform:scale(0)}.auth-flow-foot{color:var(--muted);align-items:center;gap:8px;margin-top:12px;padding:0 4px;font-size:12px;display:flex}.ok-dot{background:#1fb57a;border-radius:50%;width:7px;height:7px;animation:2.4s ease-in-out infinite pulse}@keyframes flowIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@keyframes tickIn{to{transform:scale(1)}}.auth-panel{flex-direction:column;align-items:center;gap:16px;display:flex}.auth-card{width:100%;max-width:460px;color:var(--dark);background:#fff;border:1px solid #e3eaf3;border-radius:24px;padding:36px 36px 30px;animation:.45s cubic-bezier(.2,.8,.2,1) authIn;position:relative;overflow:hidden;box-shadow:0 40px 90px -40px #1c3a6b73,0 2px 6px #1c3a6b0d}.auth-card:before{content:"";background:linear-gradient(90deg, var(--navy), var(--sky), var(--teal));height:4px;position:absolute;top:0;left:0;right:0}@keyframes authIn{0%{opacity:0;transform:translateY(12px)scale(.985)}to{opacity:1;transform:none}}.auth-card-logo{height:32px;margin-bottom:18px;display:none}.auth-step{letter-spacing:.12em;text-transform:uppercase;color:var(--blue);background:#eaf3fc;border-radius:999px;margin-bottom:16px;padding:5px 11px;font-size:10.5px;font-weight:700;display:inline-flex}.auth-card h2{letter-spacing:-.03em;color:var(--navy);margin:0 0 6px;font-size:28px}.auth-sub{color:var(--muted);margin:0 0 22px;font-size:14px;line-height:1.55}.auth-label{color:var(--dark);margin:16px 0 7px;font-size:12.5px;font-weight:600;display:block}.auth-field{align-items:center;display:flex;position:relative}.auth-field>svg{color:var(--gray);pointer-events:none;transition:color .15s;position:absolute;left:14px}.auth-field:focus-within>svg{color:var(--sky)}.auth-input{width:100%;height:50px;font:inherit;color:var(--dark);background:#f8fafd;border:1.5px solid #dce3ec;border-radius:14px;padding:0 14px;font-size:15px;transition:border-color .15s,box-shadow .15s,background .15s}.auth-field .auth-input{padding-left:42px;padding-right:46px}.auth-input:hover{border-color:#c8d3e0}.auth-input:focus{border-color:var(--sky);background:#fff;outline:none;box-shadow:0 0 0 4px #00aeef26}.auth-input.mono{letter-spacing:.08em;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.auth-eye{width:36px;height:36px;color:var(--gray);cursor:pointer;background:0 0;border:0;border-radius:10px;place-items:center;display:grid;position:absolute;right:7px}.auth-eye:hover{color:var(--navy);background:#eef3f9}.auth-hint{color:#b26a00;margin-top:8px;font-size:12px}.auth-err{color:#b42318;background:#fdecec;border:1px solid #f6c9c9;border-radius:12px;margin-top:14px;padding:10px 12px;font-size:13px;line-height:1.4;animation:.35s shake}@keyframes shake{20%,60%{transform:translate(-4px)}40%,80%{transform:translate(4px)}}.auth .auth-btn{color:#fff;background:linear-gradient(135deg, var(--navy) 0%, var(--blue) 60%, #1f78c8 100%);border:0;border-radius:14px;justify-content:center;gap:8px;width:100%;height:50px;margin-top:22px;font-size:15px;font-weight:600;transition:transform .12s,box-shadow .15s,filter .15s;box-shadow:0 14px 30px -12px #1a5ba6b3}.auth .auth-btn:hover:not(:disabled){filter:brightness(1.08);transform:translateY(-1px);box-shadow:0 18px 36px -12px #1a5ba6bf}.auth .auth-btn:active:not(:disabled){transform:none}.auth .auth-btn:disabled{opacity:.5;box-shadow:none;cursor:not-allowed}.auth-secure{color:var(--muted);border-top:1px solid #eef2f7;align-items:flex-start;gap:8px;margin-top:20px;padding-top:16px;font-size:12.5px;line-height:1.45;display:flex}.auth-secure svg{color:var(--teal);flex:0 0 14px;margin-top:2px}.auth-help{color:var(--gray);text-align:center;align-items:center;gap:7px;font-size:12px;display:flex}.auth-help svg{color:var(--sky);flex:0 0 13px}.auth-foot{z-index:1;color:var(--gray);padding:0 clamp(20px,5vw,64px) 22px;font-size:11.5px;position:relative}.auth-icon{width:48px;height:48px;color:var(--blue);background:linear-gradient(135deg,#e3f4fd,#eaf0f8);border-radius:14px;place-items:center;margin-bottom:14px;display:grid}.auth-icon.ok{color:#0e8a5f;background:#e4f6ee}.auth-links{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-top:18px;display:flex}.auth .link{color:var(--blue);font:inherit;cursor:pointer;background:0 0;border:0;padding:0;font-size:12.5px;font-weight:600}.auth .link:hover{text-decoration:underline}.auth-row{gap:8px;margin-top:14px;display:flex}.auth-chk{margin-top:16px;font-size:13px}.code-in{grid-template-columns:repeat(6,1fr);gap:10px;display:grid}.code-in input{text-align:center;width:100%;height:58px;font-size:24px;font-weight:700;font-family:var(--display);color:var(--navy);caret-color:var(--sky);background:#f8fafd;border:1.5px solid #dce3ec;border-radius:14px;transition:border-color .15s,box-shadow .15s,transform .1s}.code-in input:focus{border-color:var(--sky);background:#fff;outline:none;transform:translateY(-1px);box-shadow:0 0 0 4px #00aeef26}.code-in input.filled{background:#fff;border-color:#9fc7ea}.code-in input:nth-child(3){margin-right:8px}.setup-steps{counter-reset:s;gap:18px;margin:0;padding:0;list-style:none;display:grid}.setup-steps>li{counter-increment:s;padding-left:40px;position:relative}.setup-steps>li:before{content:counter(s);background:linear-gradient(135deg, var(--navy), var(--blue));color:#fff;border-radius:50%;place-items:center;width:26px;height:26px;font-size:12px;font-weight:700;display:grid;position:absolute;top:0;left:0}.setup-steps>li>b{color:var(--navy);font-size:14px;display:block}.setup-steps>li>span{color:var(--muted);margin:2px 0 10px;font-size:12.5px;display:block}.qr-box{background:#fff;border:1px solid #e3e9f1;border-radius:18px;place-items:center;width:196px;height:196px;display:grid;box-shadow:0 14px 34px -18px #1c3a6b8c}.qr-box img{width:180px;height:180px}.manual-key{margin-top:10px;font-size:12.5px}.manual-key summary{cursor:pointer;color:var(--blue);font-weight:600}.key-row{align-items:center;gap:8px;margin:8px 0 4px;display:flex}.key-row code,.recovery-grid code{letter-spacing:.06em;color:var(--navy);background:#f2f6fb;border:1px solid #e3e9f1;border-radius:8px;padding:7px 10px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px}.recovery-grid{grid-template-columns:1fr 1fr;gap:8px;display:grid}.recovery-grid code{text-align:center}.spin{border:2px solid #fff6;border-top-color:#fff;border-radius:50%;width:15px;height:15px;animation:.7s linear infinite authSpin;display:inline-block}.spin.dark{border-color:#1c3a6b33;border-top-color:var(--navy);width:22px;height:22px}@keyframes authSpin{to{transform:rotate(360deg)}}@media (width<=980px){.auth-body{grid-template-columns:1fr;justify-items:center;padding-top:18px}.auth-hero,.auth-top-tag{display:none}}@media (width<=520px){.auth-top{justify-content:center;padding-top:20px}.auth-card{border-radius:20px;padding:28px 22px 24px}.auth-card h2{font-size:24px}.code-in{gap:6px}.code-in input{height:50px;font-size:20px}.auth-help{flex-wrap:wrap;justify-content:center}.auth-foot{text-align:center}}@media (prefers-reduced-motion:reduce){.auth-card,.auth-err,.ok-dot{animation:none}.auth-flow li{opacity:1;animation:none}.auth-flow .tick{animation:none;transform:none}}.prof-grid{grid-template-columns:minmax(260px,340px) 1fr;align-items:start;gap:14px;display:grid}.prof-dl{grid-template-columns:110px 1fr;gap:7px 10px;margin:0;font-size:12.5px;display:grid}.prof-dl dt{color:var(--muted)}.prof-dl dd{color:var(--dark);overflow-wrap:anywhere;margin:0;font-weight:500}.prof-chart svg{width:100%;height:auto;display:block}.prof-chart .grid{stroke:#edf1f6}.prof-chart .ax{fill:var(--gray);font-size:10px;font-family:var(--ui)}.prof-chart rect.b-cost{fill:var(--navy)}.prof-chart rect.b-net{fill:var(--sky)}.prof-chart rect:hover{opacity:.8}.prof-chart .l-bud{stroke:var(--orange);stroke-width:2px;stroke-dasharray:5 4}.prof-legend{color:var(--muted);gap:16px;margin-top:6px;font-size:11.5px;display:flex}.prof-legend i{vertical-align:-1px;border-radius:3px;width:10px;height:10px;margin-right:6px;display:inline-block}.prof-legend i.b-cost{background:var(--navy)}.prof-legend i.b-net{background:var(--sky)}.prof-legend i.l-bud{border-top:2px dashed var(--orange);vertical-align:3px;border-radius:0;height:0}.prof-tbl td{text-align:right;font-variant-numeric:tabular-nums}.prof-tbl tr.click{cursor:pointer}.prof-tbl tr.click:hover td,.prof-tbl tr.open td{background:#f3f8fd}.prof-tbl tr.detail td{text-align:left;white-space:normal;background:#fafcfe;padding:12px 14px}.up{color:#c0392b}.down{color:var(--green)}.kpi small .up,.kpi small .down{font-weight:600}.prof-break{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px 22px;display:grid}.prof-break h4{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:0 0 6px;font-size:11px}.prof-break table{border-collapse:collapse;width:100%;font-size:12.5px}.prof-break td{text-align:left;background:0 0!important;border:0!important;border-bottom:1px dashed #e6ebf1!important;height:auto!important;padding:4px 2px!important}.prof-break td.num{text-align:right;font-variant-numeric:tabular-nums}.prof-break td.new{color:var(--blue);font-weight:600}.prof-break-foot{color:var(--muted);flex-wrap:wrap;grid-column:1/-1;gap:16px;font-size:12px;display:flex}.warn-txt{color:#b26a00}.timeline{margin:0;padding:0 0 0 6px;list-style:none}.timeline li{gap:14px;padding-bottom:14px;display:flex;position:relative}.timeline li:before{content:"";background:var(--border);width:2px;position:absolute;top:14px;bottom:0;left:5px}.timeline li:last-child:before{display:none}.tl-dot{border:3px solid var(--sky);z-index:1;background:#fff;border-radius:50%;flex:0 0 12px;width:12px;height:12px;margin-top:4px;position:relative}.tl-body{background:var(--white);border:1px solid var(--border);box-shadow:var(--shadow-card);border-radius:12px;flex:1;padding:10px 14px}.tl-head{flex-wrap:wrap;justify-content:space-between;gap:10px;font-size:13px;display:flex}.tl-head b{color:var(--navy)}.tl-head .muted{font-size:11.5px}.tl-reason{color:var(--dark);margin-top:4px;font-size:12.5px;font-style:italic}.tl-diff{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:3px 16px;margin-top:6px;font-size:12px;display:grid}.tl-diff s{color:var(--gray)}@media (width<=1000px){.prof-grid{grid-template-columns:1fr}}.link-btn{font:inherit;cursor:pointer;background:0 0;border:0;padding:0;font-size:12px}.slips{flex-direction:column;align-items:center;gap:22px;padding:16px 0 40px;display:flex}.slip{color:#333;border:1px solid var(--border);background:#fff;flex-direction:column;width:210mm;min-height:297mm;padding:14mm 12mm 16mm;font-family:Lato,Segoe UI,Arial,sans-serif;font-size:10.5pt;display:flex;position:relative;box-shadow:0 10px 40px -18px #1c3a6b73}.slip-head{border-bottom:1px solid #e5e5e5;justify-content:space-between;align-items:flex-start;padding-bottom:10px;display:flex}.slip-logo{height:36px;margin-top:8px}.slip-addr{color:#444;min-width:47%;font-size:10pt;line-height:1.6}.slip-addr b{color:#444}.slip-title{text-align:center;color:#444;letter-spacing:0;margin:20px 0 10px;font-family:inherit;font-size:17pt;font-weight:400}.slip table{border-collapse:collapse;width:100%}.slip th{color:#fff;text-align:center;background:#1e3a5f;padding:7px;font-size:11pt;font-weight:400}.slip-info td{vertical-align:top;padding:5px 4px;font-size:10pt}.slip-info td:first-child,.slip-info td:nth-child(3){color:#555;width:13%}.slip-info td:nth-child(2),.slip-info td:nth-child(4){width:37%}.slip-info{margin-bottom:16px}.slip-pay td{border:1px solid #d0d0d0;padding:6px 5px;font-size:10pt}.slip-pay td:last-child{width:26%}.slip-pay tr.gross td{color:#fff;background:gray}.slip-pay tr.gap td{height:26px}.slip-pay tr.net td{color:#fff;background:#00a3e0}.slip-words{margin:12px 0 0;font-size:10pt;line-height:1.5}.slip-foot{text-align:center;color:#222;margin-top:auto;padding-top:30px;font-size:10pt}.slip-draft{color:#e8303a1a;letter-spacing:.1em;pointer-events:none;font-size:110px;font-weight:800;position:absolute;top:45%;left:50%;transform:translate(-50%,-50%)rotate(-28deg)}@page{size:A4;margin:0}@media print{body{background:#fff!important}.rail,.topbar,.footer,.no-print,#pra-toasts{display:none!important}.content{padding:0!important}.main{max-width:none!important;margin:0!important;padding:0!important}.slips{gap:0;padding:0;display:block}.slip{box-shadow:none;break-after:page;page-break-after:always;border:0;width:210mm;height:297mm;min-height:0;overflow:hidden}.slip:last-child{break-after:auto;page-break-after:auto}.slip-pay tr.gross td,.slip-pay tr.net td,.slip th{-webkit-print-color-adjust:exact;print-color-adjust:exact}}.prep-bar{border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:flex-end;gap:12px;margin:6px 0 10px;display:flex}.prep-tabs{border-bottom:0;padding:0}.prep-search{width:300px;margin:0 0 6px auto}.prep-bar .chk{margin-bottom:10px;font-size:12px}.prep-list{background:var(--white);border:1px solid var(--border);box-shadow:var(--shadow-card);border-radius:14px;overflow:hidden}.prep-list table{border-collapse:collapse;width:100%;font-size:13px}.prep-list th{text-align:left;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);border-bottom:1px solid var(--border);background:#f7f9fc;padding:9px 12px;font-size:10.5px;font-weight:600}.prep-list td{vertical-align:middle;border-bottom:1px solid #eef2f7;padding:9px 12px}.prep-list th.num,.prep-list td.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.prep-list tbody tr{cursor:pointer;transition:background .12s}.prep-list tbody tr:hover,.prep-list tbody tr.on{background:#f2f8fe}.prep-list tbody tr.gone td{color:var(--gray)}.prep-list td small{color:var(--muted);margin-top:1px;font-size:11.5px;display:block}.prep-list td b{color:var(--navy);font-weight:600}.prep-list td.go{color:var(--gray);width:24px;font-size:18px}.why{border:1px solid #0000;border-radius:999px;margin:1px 4px 1px 0;padding:1px 8px;font-size:10.5px;font-weight:700;display:inline-block}.why.changed{color:var(--blue);background:#e8f1fd;border-color:#b9d4f5}.why.new{color:var(--green);background:#e8f8f0;border-color:#bfe6cf}.why.left,.why.no-pay{color:var(--muted);border-color:var(--border);background:#f1f4f8}.why.flagged{color:#c9760a;background:#fff4e5;border-color:#fad7a1}.why.edited{color:#6b3fc4;background:#f3eefd;border-color:#dccef7}.prep-same{border:0;border-top:1px solid var(--border);width:100%;color:var(--green);font:600 12.5px var(--ui);cursor:pointer;text-align:left;background:#f7fbf9;padding:12px;display:block}.prep-same:hover{background:#edf8f2}.prep-clear{text-align:center;color:var(--green);padding:26px;font-weight:600}.drawer-scrim{z-index:60;background:#10203a2e;animation:.15s fade;position:fixed;inset:0}.drawer{background:var(--white);z-index:61;width:min(500px,100vw);padding:18px 20px 30px;animation:.2s cubic-bezier(.2,.8,.2,1) drawerIn;position:fixed;top:0;bottom:0;right:0;overflow-y:auto;box-shadow:-24px 0 60px -20px #10203a59}@keyframes drawerIn{0%{opacity:0;transform:translate(30px)}to{opacity:1;transform:none}}.drawer-head{justify-content:space-between;gap:12px;display:flex}.drawer-head h2{margin:2px 0;font-size:20px}.drawer-x{cursor:pointer;width:32px;height:32px;color:var(--muted);background:#f1f4f8;border:0;border-radius:10px;font-size:20px;line-height:1}.drawer-x:hover{color:var(--navy);background:#e4eaf2}.drawer-links{gap:16px;margin:8px 0 14px;font-size:12.5px;font-weight:600;display:flex}.drawer-tot{grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:12px;display:grid}.drawer-tot>div{border:1px solid var(--border);background:#f7f9fc;border-radius:12px;padding:9px 11px}.drawer-tot span{text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-size:10.5px;display:block}.drawer-tot b{color:var(--navy);font-variant-numeric:tabular-nums;margin:2px 0;font-size:17px;display:block}.drawer-tot small{font-size:11px}.drawer-raise{width:100%;color:var(--blue);border-style:dashed;justify-content:center;margin-bottom:6px}.drawer-sec{margin-top:14px}.drawer-sec h4{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:0 0 6px;font-size:10.5px}.pi{border-bottom:1px dashed #eef2f7;grid-template-columns:1fr 130px 92px;align-items:center;gap:8px;padding:4px 0;display:grid}.pi>span{color:var(--dark);font-size:13px;line-height:1.2}.pi>span small{color:var(--gray);font-size:10.5px;display:block}.pi>span em{color:var(--sky);font-style:normal;font-weight:700}.pi input{text-align:right;font-variant-numeric:tabular-nums;height:32px}.pi>i{text-align:right;font-variant-numeric:tabular-nums;font-size:11.5px;font-style:normal}.pi>i.new{color:var(--blue);font-weight:700}.pi-add{width:auto;color:var(--blue);margin-top:6px}.drawer textarea.txt{resize:vertical;width:100%}.raise{background:#f6faff;border:1.5px solid #b9d4f5;border-radius:14px;margin:4px 0 6px;padding:12px 14px}.raise-head{flex-wrap:wrap;justify-content:space-between;gap:8px;margin-bottom:8px;display:flex}.raise-head b{color:var(--navy)}.raise-row{gap:10px;margin-bottom:8px;display:flex}.raise-row label,.raise-reason{color:var(--muted);flex-direction:column;flex:1;gap:4px;font-size:11.5px;font-weight:600;display:flex}.raise-reason{margin-bottom:10px}.raise-tbl{border-collapse:collapse;width:100%;margin-bottom:8px;font-size:12.5px}.raise-tbl th{text-align:left;color:var(--muted);padding:3px 4px;font-size:10.5px;font-weight:600}.raise-tbl td{border-top:1px solid #e3ecf7;padding:3px 4px}.raise-tbl td.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.raise-tbl input{text-align:right;width:120px;height:30px}.raise-tbl tr.tot td{color:var(--navy);font-weight:700}.raise-act{justify-content:flex-end;gap:8px;display:flex}.msg.info{color:#1a5ba6;background:#eef6fd;border:1px solid #c9e2f7;border-radius:10px;margin-bottom:8px;padding:8px 10px}.st-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:10px;display:flex}.st-head h3{margin:0 0 2px}.st-head p{max-width:720px;margin:0}.st-grid{grid-template-columns:1fr 260px;align-items:start;gap:18px;display:grid}.st-tbl{border-collapse:collapse;width:100%;font-size:13px}.st-tbl th{text-align:left;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);border-bottom:1px solid var(--border);padding:6px;font-size:10.5px;font-weight:600}.st-tbl td{border-bottom:1px solid #eef2f7;padding:6px}.st-tbl .num{text-align:right;font-variant-numeric:tabular-nums}.st-tbl select{width:100%}.st-sample{text-align:right;text-transform:none;width:100px;height:26px}.pct-in{align-items:center;gap:4px;display:inline-flex}.pct-in input{text-align:right;width:90px}.st-total{border:1.5px solid var(--border);background:#f7f9fc;border-radius:14px;padding:14px}.st-total b{color:var(--navy);font-variant-numeric:tabular-nums;font-size:30px;font-weight:800;display:block}.st-total span{font-size:12.5px;font-weight:600}.st-total.ok{background:#f1fbf5;border-color:#bfe6cf}.st-total.ok span{color:var(--green)}.st-total.under span{color:#c9760a}.st-total.over{background:#fff5f5;border-color:#f6c7c9}.st-total.over span{color:var(--red)}.st-bar{background:#e3eaf3;border-radius:99px;height:6px;margin-top:10px;overflow:hidden}.st-bar i{background:linear-gradient(90deg, var(--sky), var(--teal));border-radius:99px;height:100%;transition:width .2s;display:block}.st-total.over .st-bar i{background:var(--red)}.st-act{flex-direction:column;gap:8px;margin-top:12px;display:flex}.st-act .btn{justify-content:center}.pi-new{background:#f6faff;border:1.5px dashed #b9d4f5;border-radius:12px;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:12px;padding:12px;display:flex}.pi-new input{flex:1;min-width:220px}.pi-groups{grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:14px;display:grid}.pi-group h4{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:0 0 6px;font-size:10.5px}.pi-row{border-bottom:1px solid #eef2f7;align-items:center;gap:10px;padding:7px 4px;display:flex}.pi-row.off{opacity:.5}.pi-name{flex:1;min-width:0}.pi-name b{color:var(--dark);font-size:13px;font-weight:600;display:block}.pi-name small{color:var(--gray);font-size:11px;display:block}.pi-tag{color:var(--blue);font:600 10.5px var(--ui);cursor:pointer;white-space:nowrap;background:#eef6fd;border:1px solid #b9d4f5;border-radius:99px;padding:3px 8px}.pi-tag.once{color:#c9760a;background:#fff4e5;border-color:#fad7a1}.pi-tag:disabled{cursor:default;opacity:.85}.switch{cursor:pointer;flex:0 0 34px;width:34px;height:20px;display:inline-block;position:relative}.switch input{opacity:0;width:0;height:0}.switch span{background:#cbd5e1;border-radius:99px;transition:background .15s;position:absolute;inset:0}.switch span:before{content:"";background:#fff;border-radius:50%;width:14px;height:14px;transition:transform .15s;position:absolute;top:3px;left:3px;box-shadow:0 1px 2px #0003}.switch input:checked+span{background:var(--sky)}.switch input:checked+span:before{transform:translate(14px)}.switch.ro{cursor:default;opacity:.7}.prep-bulk{margin:0 0 6px}.prep-list th.tick,.prep-list td.tick{cursor:default;width:34px;padding-right:0}.bulk-sec{margin-bottom:14px}.bulk-sec h4{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:0 0 6px;font-size:10.5px}.radio{cursor:pointer;align-items:center;gap:8px;padding:4px 0;font-size:13px;display:flex}.radio.off{opacity:.5;cursor:default}.bulk-what{flex-wrap:wrap;gap:6px;margin-bottom:8px;display:flex}.bulk-what button{border:1.5px solid var(--border);font:600 12.5px var(--ui);color:var(--muted);cursor:pointer;background:#fff;border-radius:10px;padding:7px 12px}.bulk-what button.on{border-color:var(--sky);color:var(--navy);background:#eef8fd}.bulk-what button:disabled{opacity:.45;cursor:not-allowed}.bulk-row{flex-wrap:wrap;gap:8px;display:flex}.bulk-row select{flex:1;min-width:180px}.bulk-row input{width:130px}.bulk-sum{border:1px solid var(--border);background:#f7f9fc;border-radius:12px;padding:10px 12px;font-size:13px}@media (width<=900px){.st-grid{grid-template-columns:1fr}}.pi-formula{color:#475569;word-break:break-word;margin-top:2px;font:11px/1.4 ui-monospace,SFMono-Regular,Menlo,monospace;display:block}.pi-tag.fx{color:#4338ca;background:#eef2ff;border-color:#c7d2fe}.fx-ed{background:#f8fafd;border:1px solid #dce6f2;border-radius:10px;flex-direction:column;gap:8px;margin:4px 0 10px;padding:10px;display:flex}.fx-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.fx-eq{color:var(--dark);font:600 12px ui-monospace,SFMono-Regular,Menlo,monospace}.fx-in{flex:1;min-width:180px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.fx-help{flex-wrap:wrap;align-items:center;gap:4px;display:flex}.fx-help code{font-size:11px}.fx-chip{cursor:pointer;color:var(--dark);background:#fff;border:1px solid #dce6f2;border-radius:6px;padding:1px 6px;font:11px ui-monospace,SFMono-Regular,Menlo,monospace}.fx-chip:hover{border-color:var(--blue);color:var(--blue)}.fx-chip.b{background:#eef6fd}.fx-impact{background:#fff;border:1px solid #eef2f7;border-radius:8px;padding:8px;overflow-x:auto}.pi-group.wide{grid-column:1/-1}.plan-path{grid-template-columns:repeat(4,1fr);gap:8px;margin:0 0 14px;display:grid}.plan-path .pp{background:#fff;border:1px solid #dce6f2;border-radius:10px;padding:8px 10px}.plan-path .pp b{color:var(--dark);font-size:12.5px;display:block}.plan-path .pp small{color:var(--gray);font-size:11px;display:block}.plan-path .pp.done{background:#eef8f1;border-color:#bfe3cb}.plan-path .pp.now{border-color:var(--blue);box-shadow:0 0 0 2px #e3eefb}.plan-build{flex-wrap:wrap;align-items:flex-end;gap:14px;display:flex}.plan-build>div:first-child{flex:320px}.plan-build label{color:var(--gray);flex-direction:column;gap:3px;font-size:11.5px;display:flex}.plan-build input{width:110px}.plan-act{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;margin-top:10px;display:flex}.plan-tbl td{vertical-align:middle}.plan-tbl input.txt{width:100%;min-width:70px}.plan-tbl input.num{text-align:right;max-width:110px}.plan-tbl select.txt{min-width:70px}@media (width<=720px){.plan-path{grid-template-columns:repeat(2,1fr)}}.plan-seg{border:1px solid #dce6f2;border-radius:8px;display:inline-flex;overflow:hidden}.plan-seg button{font:600 12px var(--ui);color:var(--gray);cursor:pointer;background:#fff;border:0;padding:5px 10px}.plan-seg button.on{background:var(--blue);color:#fff}
