:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--paper:#e7e2d9;--card:#f3f0e9;--sunken:#ded8cc;--hover:#f8f6f1;--stripe:#dcd5c8;--field:#eae5db;--ink:#1c1815;--ink-soft:#3a332c;--muted:#645b4f;--faint:#9a9083;--line:#d3cbbb;--line-soft:#e2dcd0;--line-strong:#b5ab98;--accent:#a8861f;--accent-hover:#8f7118;--accent-ink:#1a1508;--accent-text:#7a5e14;--accent-soft:#efe6ce;--accent-line:#dccb9c;--red:#a33327;--red-soft:#f7e3de;--red-line:#e8c4bb;--orange:#a9521a;--orange-soft:#f7e8d9;--orange-line:#e7cbae;--amber:#8a6a12;--amber-soft:#f4ebd4;--amber-line:#e0d0a4;--green:#12603f;--green-soft:#e1efe6;--green-line:#b8d9c6;--slate:#5e5a52;--slate-soft:#e5e0d6;--slate-line:#cfc7b8;--pri-ink:#fff;--sidebar:#14110d;--sidebar-ink:#f0ece3;--sidebar-ink-soft:#f0ece399;--sidebar-line:#ffffff1f;--sidebar-hover:#ffffff12;--sidebar-raised:#ffffff21;--sidebar-raised-hover:#ffffff3d;--sidebar-accent:#d9b845;--sidebar-accent-tint:#c9a22729;--grid-line:#1c181505;--grid-line-major:#1c181509;--shadow:0 1px 2px #3a2e140f, 0 10px 26px -16px #3a2e1447;--shadow-lift:0 2px 5px #3a2e1412, 0 20px 44px -20px #3a2e1461;--shadow-drag:0 12px 28px -8px #3a2e1473;--edge:inset 0 1px 0 #ffffffbf;--field-inset:inset 0 1px 2px #3a2e140f;--glass:#f3f0e9d1;--accent-tint-weak:#a8861f1a;--accent-tint:#a8861f33;--accent-tint-line:#a8861f66;--font-sans:"Noto Sans SC", "HarmonyOS Sans SC", "Source Han Sans SC", "PingFang SC", "Microsoft YaHei UI", "Microsoft YaHei", system-ui, -apple-system, "Segoe UI", sans-serif;--font-serif:"Noto Serif SC", "Source Han Serif SC", "Songti SC", SimSun, Georgia, serif;--font-mono:"Cascadia Mono", "Cascadia Code", Consolas, ui-monospace, "SF Mono", Menlo, monospace;--fs-tick:11px;--fs-xs:12px;--fs-sm:13px;--fs-base:15px;--fs-md:17px;--fs-lg:21px;--fs-xl:29px;--fs-display:42px;--space-1:4px;--space-2:6px;--space-3:8px;--space-4:10px;--space-5:12px;--space-6:16px;--space-7:20px;--space-8:24px;--radius-xs:6px;--radius-sm:10px;--radius-md:12px;--radius:16px;--radius-pill:999px;--dur-fast:.12s;--dur-base:.2s;--ease-out:cubic-bezier(.32, .72, 0, 1);--z-under:0;--z-raised:1;--z-handle:3;--z-drag:4;--z-sticky-left:6;--z-dock:15;--z-sticky:20;--z-sticky-head:25;--z-popover:40;--z-tooltip:60}[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--paper:#0a0a0a;--card:#141414;--sunken:#0f0f0f;--hover:#1c1c1c;--stripe:#0d0d0d;--field:#101010;--ink:#f2f0ec;--ink-soft:#cfcac2;--muted:#9a948a;--faint:#6e6a63;--line:#262523;--line-soft:#1d1d1c;--line-strong:#3d3b37;--accent:#c9a227;--accent-hover:#ddb63a;--accent-ink:#17130a;--accent-text:#dcbb4c;--accent-soft:#2a2312;--accent-line:#4e4020;--red:#e8695c;--red-soft:#2e1c1a;--red-line:#4d2b26;--orange:#e08a4a;--orange-soft:#2f2317;--orange-line:#4e3722;--amber:#d8b24e;--amber-soft:#2c2617;--amber-line:#4a3f22;--green:#4fbf8b;--green-soft:#14291f;--green-line:#244534;--slate:#8f8a81;--slate-soft:#1e1e1d;--slate-line:#343330;--pri-ink:#0d1113;--sidebar:#0f0f0f;--sidebar-ink:#f0ede7;--sidebar-ink-soft:#f0ede78f;--sidebar-line:#ffffff1a;--sidebar-hover:#ffffff0f;--sidebar-raised:#ffffff1a;--sidebar-raised-hover:#fff3;--sidebar-accent:#dcbb4c;--sidebar-accent-tint:#c9a2272e;--grid-line:#f0ede704;--grid-line-major:#f0ede708;--shadow:0 1px 2px #0009, 0 12px 30px -18px #000000e6;--shadow-lift:0 2px 6px #0009, 0 26px 56px -22px #000000f2;--shadow-drag:0 16px 36px -8px #000000d9;--edge:inset 0 1px 0 #ffffff0b;--field-inset:inset 0 1px 2px #00000073;--glass:#141414d9;--accent-tint-weak:#c9a2271a;--accent-tint:#c9a22738;--accent-tint-line:#c9a22773}*{box-sizing:border-box}*,:before,:after{transition:background-color var(--dur-base) var(--ease-out), border-color var(--dur-base) var(--ease-out), color var(--dur-base) var(--ease-out), box-shadow var(--dur-base) var(--ease-out)}html{-webkit-text-size-adjust:100%}small{font-size:var(--fs-xs)}body{font-family:var(--font-sans);font-size:var(--fs-base);letter-spacing:.01em;color:var(--ink);background-color:var(--paper);background-image:linear-gradient(var(--grid-line) 1px, transparent 1px), linear-gradient(90deg, var(--grid-line) 1px, transparent 1px), linear-gradient(var(--grid-line-major) 1px, transparent 1px), linear-gradient(90deg, var(--grid-line-major) 1px, transparent 1px);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-size:32px 32px,32px 32px,160px 160px,160px 160px;margin:0;line-height:1.65}button,input,select,textarea{font:inherit;letter-spacing:inherit}button{cursor:pointer}::selection{background:var(--accent-soft);color:var(--ink)}:focus-visible{outline:2px solid var(--accent-text);outline-offset:2px}.sidebar :focus-visible,.punch-dock :focus-visible{outline-color:var(--sidebar-accent)}.timer-value,.punch-elapsed,.inv-num,.gantt-day-num,.gantt-hours span,.print-summary b,.rail-summary strong{font-family:var(--font-mono);font-variant-numeric:tabular-nums;letter-spacing:0}.stat-card strong,.table td,.annual-total-cell,.rail-flow strong,.print-summary b{font-variant-numeric:tabular-nums}.boot{height:100dvh;color:var(--muted);place-items:center;display:grid}.auth-page{background:radial-gradient(120% 70% at 50% 0%, var(--accent-soft) 0%, transparent 55%);place-items:center;min-height:100dvh;padding:24px;display:grid}.auth-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);width:min(420px,100%);box-shadow:var(--shadow-lift), var(--edge);padding:32px}.auth-card h1{font-size:var(--fs-xl);font-family:var(--font-serif);letter-spacing:.02em;margin:14px 0 6px;font-weight:600}.brand-mark{background:var(--sidebar);width:48px;height:48px;color:var(--sidebar-ink);border-radius:var(--radius-md);letter-spacing:.04em;box-shadow:var(--edge);place-items:center;font-weight:800;display:grid}.brand-mark+h1{margin-top:18px}.muted{color:var(--muted)}.small{font-size:var(--fs-xs)}.stack>*+*{margin-top:18px}.stack{flex-direction:column;display:flex}html{overflow-x:clip}.app-shell{min-height:100dvh;display:flex}.sidebar{background:var(--sidebar);width:238px;color:var(--sidebar-ink);box-shadow:inset -1px 0 0 var(--sidebar-line);flex-direction:column;flex:0 0 238px;padding:20px 12px;display:flex}.brand{letter-spacing:.06em;font-weight:700;font-family:var(--font-serif);font-size:var(--fs-md);align-items:center;gap:10px;padding:8px 10px 24px;display:flex}.brand-dot{background:var(--orange);border-radius:50%;width:10px;height:10px;box-shadow:0 0 0 3px #a94f162e}.sidebar nav{flex-direction:column;flex:1;gap:4px;display:flex}.sidebar nav button{border-radius:var(--radius-sm);width:100%;color:var(--sidebar-ink);text-align:left;background:0 0;border:0;align-items:center;gap:12px;padding:10px;display:flex;position:relative}.sidebar nav button:hover{background:var(--sidebar-hover)}.sidebar nav button.active{background:var(--sidebar-accent-tint);color:var(--sidebar-accent);box-shadow:inset 3px 0 0 var(--sidebar-accent), inset 0 1px 0 #ffffff14;font-weight:600}.sidebar nav button[draggable=true]{cursor:grab}.sidebar nav button.drop-before:before,.sidebar nav button.drop-after:after{content:"";border-radius:var(--radius-xs);background:var(--accent);height:3px;box-shadow:0 0 0 1px #ffffff8c, 0 0 8px var(--accent);pointer-events:none;z-index:var(--z-handle);position:absolute;left:6px;right:6px}.sidebar nav button.drop-before:before{top:-3px}.sidebar nav button.drop-after:after{bottom:-3px}.nav-icon{text-align:center;width:18px;display:inline-block}.drag-handle{opacity:0;font-size:var(--fs-xs);transition:opacity var(--dur-fast) var(--ease-out);margin-left:auto}.sidebar nav button:hover .drag-handle,.sidebar nav button:focus-visible .drag-handle{opacity:.35}@media (hover:none){.drag-handle{display:none}}.sidebar-user{border-top:1px solid var(--sidebar-line);justify-content:space-between;align-items:center;gap:8px;padding:12px 8px 4px;display:flex}.sidebar-user strong{display:block}.sidebar-user span{color:var(--sidebar-ink-soft);font-size:var(--fs-xs)}.sidebar-user-actions{flex:none;gap:6px;display:flex}.pwd-overlay{z-index:70;background:#14110d73;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.pwd-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);width:min(400px,100%);box-shadow:var(--shadow-lift);padding:18px 18px 16px}.pwd-card .panel-title{margin-bottom:12px}.pwd-card label{font-size:var(--fs-sm)}.pwd-actions{justify-content:flex-end;gap:8px;display:flex}.theme-toggle{border:1px solid var(--sidebar-line);border-radius:var(--radius-sm);width:100%;color:var(--sidebar-ink);font-size:var(--fs-sm);text-align:left;background:0 0;align-items:center;gap:10px;margin:0 2px 10px;padding:10px;display:flex}.theme-toggle:hover{background:var(--sidebar-raised)}.theme-toggle:active{background:var(--sidebar-raised-hover)}.theme-toggle-icon{text-align:center;width:18px;font-size:var(--fs-base);line-height:1}.theme-toggle-label{flex:1}.main{flex-direction:column;flex:1;min-width:0;display:flex}.topbar{border-bottom:1px solid var(--line);background:var(--glass);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);justify-content:space-between;align-items:center;height:70px;padding:0 32px;display:flex}.topbar h1{font-size:var(--fs-lg);font-family:var(--font-serif);letter-spacing:.02em;margin:0;font-weight:600}.topbar .muted{margin-left:10px}.online-pill{color:var(--ink-soft);background:var(--sunken);border:1px solid var(--line);border-radius:var(--radius-pill);font-size:var(--fs-xs);align-items:center;gap:6px;padding:6px 10px;display:inline-flex}.online-pill:before{content:"";background:var(--muted);border-radius:50%;width:6px;height:6px}.content{width:100%;max-width:1450px;padding:24px 32px 48px;overflow-x:clip}.panel{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow), var(--edge);padding:18px}.panel-title{justify-content:space-between;align-items:center;margin-bottom:14px;display:flex}.panel-title h2{font-size:var(--fs-md);margin:0}.panel-grid{grid-template-columns:1fr 1fr;align-items:start;gap:16px;display:grid}.quote-detail-layout{grid-template-columns:minmax(0,1fr) minmax(330px,420px);align-items:start;gap:16px;display:grid}.quote-calc{border-top:1px solid var(--line);flex-direction:column;gap:12px;min-height:400px;margin-top:16px;padding-top:14px;display:flex}.quote-calc-grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;display:grid}.quote-calc-mode{grid-column:1/-1}.quote-calc-mode select{min-height:40px}.quote-calc-results{font-size:var(--fs-sm);color:var(--ink-soft);flex-wrap:wrap;gap:8px 18px;display:flex}.quote-calc-results b{margin-left:4px}.calc-hint{border-radius:var(--radius-sm);background:var(--red-soft);color:var(--red);font-size:var(--fs-sm);border:1px solid var(--red-line);margin:0;padding:8px 12px}.quote-detail-main{min-height:220px}.quote-list-rail{min-width:0}.quote-summary-bar{align-items:center;min-height:50px}.quote-item-form{min-height:200px}.quote-import-button{min-width:200px;height:35px;min-height:35px;padding-top:8px;padding-bottom:8px}button:disabled{opacity:.55;cursor:not-allowed}button{white-space:nowrap}.stat-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;display:grid}.content.finance-content .stat-grid{grid-template-columns:repeat(auto-fit,minmax(168px,1fr))}.stat-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);text-align:left;min-height:104px;color:var(--ink);flex-direction:column;gap:10px;padding:18px;display:flex}.stat-card:hover{box-shadow:var(--shadow-lift);border-color:var(--accent-line);transform:translateY(-2px)}.stat-card strong{font-size:var(--fs-xl);letter-spacing:-.01em;font-weight:700;line-height:1.15}.stat-card span{color:var(--muted);font-size:var(--fs-sm)}.stat-card .stat-icon{border-radius:var(--radius-md);background:var(--accent-soft);width:38px;height:38px;color:var(--accent-text);font-size:var(--fs-md);flex:none;place-items:center;line-height:1;display:grid}.stat-card:hover .stat-icon{background:var(--accent);color:var(--accent-ink)}.stat-card.pos strong{color:var(--green)}.stat-card.neg strong{color:var(--red)}.finance-strip{background:linear-gradient(115deg, var(--accent) 0%, var(--accent-hover) 100%);border:1px solid var(--accent-line);border-radius:var(--radius);box-shadow:var(--shadow-lift);flex-wrap:wrap;gap:20px;padding:16px 20px;display:flex}.finance-strip span{font-size:var(--fs-sm);color:var(--accent-ink);opacity:.82}.finance-strip b{color:var(--accent-ink);opacity:1;font-size:var(--fs-base);margin-left:6px;font-weight:700}.finance-strip .pos{color:#1d4a2c;opacity:1}.finance-strip .neg{color:#6b1d12;opacity:1}.content.finance-content{width:100%;max-width:none}.finance-layout{grid-template-columns:minmax(0,1fr) minmax(340px,480px);align-items:start;gap:20px;display:grid}.finance-main{min-width:0}.finance-rail{flex-direction:column;gap:16px;min-width:0;max-height:calc(100dvh - 110px);display:flex;position:sticky;top:90px;overflow-y:auto}.rail-summary{background:var(--accent-soft);border-radius:var(--radius-sm);font-size:var(--fs-sm);justify-content:space-between;align-items:center;gap:8px;margin-bottom:10px;padding:10px 12px;display:flex}.rail-summary strong{color:var(--accent-text);font-size:var(--fs-md)}.rail-list{flex-direction:column;display:flex}.rail-row{border-bottom:1px solid var(--line);font-size:var(--fs-sm);justify-content:space-between;align-items:center;gap:8px;padding:10px 4px;display:flex}.rail-row>span:first-child{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.rail-flow{grid-template-columns:auto auto 1fr auto;align-items:center;gap:8px;display:grid}.rail-flow strong{text-align:right}.rail-project{grid-template-columns:minmax(0,1fr) auto;gap:4px 8px;display:grid}.rail-project>span:first-child{font-weight:700}.rail-total{text-align:right;color:var(--ink-soft);padding:10px 4px 2px;font-weight:700}.rail-kpis{border-bottom:1px solid var(--line);font-size:var(--fs-sm);color:var(--ink-soft);flex-wrap:wrap;gap:8px 16px;padding:10px 4px;display:flex}.content.project-content{width:100%;max-width:none}.project-layout{grid-template-columns:minmax(0,1fr) minmax(320px,420px);align-items:start;gap:20px;display:grid}.project-main{min-width:0}.project-rail{flex-direction:column;gap:16px;min-width:0;max-height:calc(100vh - 110px);display:flex;position:sticky;top:90px;overflow-y:auto}.rail-item{text-align:left;width:100%;color:var(--ink);border:0;border-bottom:1px solid var(--line);cursor:pointer;background:0 0;border-radius:0;flex-direction:column;align-items:stretch;gap:6px;padding:10px 6px;font-family:inherit;display:flex}.rail-item:hover{background:var(--hover)}.rail-item.active{background:var(--accent-soft)}.rail-item:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.rail-item-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-weight:700;font-size:var(--fs-sm);overflow:hidden}.rail-item-meta{font-size:var(--fs-xs);flex-wrap:wrap;align-items:center;gap:6px;display:flex}.rail-item-client{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.table-scroll{max-width:100%;overflow-x:auto}.table-scroll .table{min-width:720px}.project-table-scroll .table{min-width:900px}.project-table-scroll .row-actions{flex-wrap:nowrap}.project-table-scroll th:last-child,.project-table-scroll td:last-child{white-space:nowrap}.finance-main .table{min-width:720px}.finance-main .table th:first-child,.finance-main .table td:first-child{white-space:nowrap}.pos{color:var(--green)}.neg{color:var(--red)}.table{border-collapse:collapse;width:100%;font-size:var(--fs-sm)}.table th,.table td{text-align:left;border-bottom:1px solid var(--line);padding:10px 8px}.table th{color:var(--muted);background:var(--sunken);font-weight:600}.table tr:hover td{background:var(--hover)}.tag{border-radius:var(--radius-pill);min-height:26px;font-size:var(--fs-xs);background:var(--slate-soft);color:var(--ink-soft);align-items:center;padding:4px 9px;display:inline-flex}.tag.on{background:var(--green-soft);color:var(--green)}.tag-input{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--field);box-shadow:var(--field-inset);flex-wrap:wrap;align-items:center;gap:4px;padding:4px 6px;display:flex}.tag-input input{width:auto;min-width:80px;box-shadow:none;font-size:var(--fs-xs);background:0 0;border:none;flex:90px;padding:2px 4px}.tag-input input:focus{outline:none}.tag-input .tag-x{color:inherit;cursor:pointer;font-size:var(--fs-sm);background:0 0;border:none;flex:none;padding:0 0 0 4px;line-height:1}.tag-presets{flex-wrap:wrap;gap:4px;margin-top:4px;display:flex}.tag-preset{cursor:pointer;border:1px dashed var(--line);background:0 0}.tag-preset:hover{background:var(--hover)}.row-tags{flex-wrap:wrap;gap:4px;display:flex}.status-badge{border-radius:var(--radius-pill);background:var(--slate-soft);font-size:var(--fs-xs);color:var(--ink-soft);padding:4px 8px;display:inline-block}.row-form{flex-wrap:wrap;align-items:flex-end;gap:10px;display:flex}.row-form>label{flex:0 auto;min-width:150px}.row-form>label.grow{flex:240px}.grid-form{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:10px;display:grid}.row-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.table tr.row-editing>td{background:var(--accent-soft)}.inline-edit-row>td{background:var(--sunken);padding:0 8px 14px}.inline-edit-card{border:1px solid var(--accent-line);border-radius:var(--radius-md);background:var(--card);margin-top:10px;padding:14px}.inline-edit-head{align-items:center;gap:10px;margin-bottom:12px;display:flex}.inline-edit-head strong{font-size:var(--fs-base)}.inline-edit-head>.muted{flex:auto}.inline-edit-card .history-list{margin-top:6px}input,select,textarea{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--field);width:100%;color:var(--ink);box-shadow:var(--field-inset);padding:10px 12px}input:focus,select:focus,textarea:focus{outline:2px solid var(--accent-text);border-color:var(--accent)}textarea{resize:vertical}label{font-size:var(--fs-sm);color:var(--ink-soft);flex-direction:column;gap:6px;display:flex}.check{flex-direction:row;align-items:center;gap:8px}.check input{width:auto}.password-wrap{display:block;position:relative}.password-wrap input{width:100%;padding-right:62px}.eye{border-radius:var(--radius-xs);color:var(--accent-text);font-size:var(--fs-xs);background:0 0;border:0;min-height:28px;padding:6px 8px;line-height:1;position:absolute;top:50%;right:5px;transform:translateY(-50%)}.eye:hover{background:var(--hover);color:var(--ink-soft)}.form-error{border-radius:var(--radius-sm);background:var(--red-soft);color:var(--red);font-size:var(--fs-sm);border:1px solid var(--red-line);margin:0;padding:10px 12px}.field-hint{color:var(--muted);font-size:var(--fs-xs);margin:8px 0 0}.wide{grid-column:1/-1}.mini-heading{font-size:var(--fs-base);margin:18px 0 8px}.history-list{flex-direction:column;display:flex}.history-item{border-bottom:1px solid var(--line);font-size:var(--fs-xs);align-items:center;gap:10px;padding:10px 4px;display:flex}.history-item strong{min-width:70px}.history-item span{color:var(--ink-soft);flex:1}.history-item small{color:var(--muted)}.salary-list{flex-direction:column;gap:14px;display:flex}.salary-member{border:1px solid var(--line);border-radius:var(--radius-md);padding:12px}.salary-head{align-items:center;gap:12px;margin-bottom:10px;display:flex}.salary-head span{color:var(--muted);font-size:var(--fs-xs);margin-left:auto}.salary-grid{grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;display:grid}@media (width<=900px){.salary-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}.annual-table-wrap{margin-top:14px;overflow-x:auto}.annual-total-cell{text-align:right;color:var(--ink-soft);background:var(--sunken);font-variant-numeric:tabular-nums;font-weight:700}input:disabled{background:var(--sunken);color:var(--muted);cursor:not-allowed;box-shadow:none}.primary,.outline,.ghost{border-radius:var(--radius-sm);border:1px solid #0000;padding:10px 14px}.primary{background:var(--accent);color:var(--accent-ink);box-shadow:var(--edge);font-weight:700}.primary:hover{background:var(--accent-hover)}.primary:active{transform:translateY(1px)}.outline{border-color:var(--accent-line);color:var(--accent-text);background:var(--card)}.outline:hover{background:var(--accent-soft);border-color:var(--accent)}.ghost{background:var(--sunken);color:var(--ink-soft);border-color:var(--line-soft)}.ghost:hover{background:var(--hover);border-color:var(--line-strong)}.danger-link{border-radius:var(--radius-sm);background:var(--red-soft);color:var(--red);border:1px solid #0000;padding:10px 14px}.danger-link:hover{border-color:var(--red-line)}.tax-field{min-width:150px}.quick-tax{flex-wrap:wrap;gap:4px;display:inline-flex}.quick-tax-toggle{border:1px dashed var(--line-strong);border-radius:var(--radius-pill);color:var(--muted);font-size:var(--fs-xs);background:0 0;padding:6px 10px;line-height:1.5}.quick-tax-btn{min-height:28px}.quick-tax-toggle:hover{background:var(--hover);color:var(--ink-soft)}.quick-tax-btn{border:1px solid var(--line);border-radius:var(--radius-pill);background:var(--sunken);color:var(--ink-soft);font-size:var(--fs-xs);padding:2px 8px;line-height:1.5}.quick-tax-btn:hover{background:var(--hover);border-color:var(--line-strong)}.quick-tax-btn.on{background:var(--accent-soft);border-color:var(--accent-line);color:var(--accent-text)}.empty{color:var(--muted);border:1px dashed var(--line);border-radius:var(--radius-md);text-align:center;font-size:var(--fs-sm);flex-direction:column;align-items:center;gap:6px;padding:22px 20px;display:flex}.empty-title{color:var(--ink-soft);font-weight:700;font-size:var(--fs-base)}.empty-hint{max-width:44ch;line-height:1.6}.empty-actions{flex-wrap:wrap;justify-content:center;gap:8px;margin-top:4px;display:flex}.project-group{position:relative}.project-group .group-hint{align-items:center;gap:6px;margin:0 0 10px;display:flex}.kind-dot{border-radius:50%;flex:0 0 9px;width:9px;height:9px;display:inline-block}.kind-dot.internal{background:var(--orange)}.kind-dot.external{background:var(--accent)}.worktype-tag{border-radius:var(--radius-pill);background:var(--accent-soft);color:var(--accent-text);font-size:var(--fs-xs);white-space:nowrap;padding:3px 9px;display:inline-block}.task-row{border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:flex-start;gap:10px;padding:10px 8px;display:flex}.task-row-main{overflow-wrap:anywhere;flex:auto;min-width:0}.task-row-tools{flex:100%;align-items:center;gap:6px;margin-top:2px;display:flex}.task-row-status{min-width:0;min-height:30px;font-size:var(--fs-xs);border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--sunken);color:var(--ink-soft);flex:auto;padding:6px 8px}.task-row-status:hover{border-color:var(--line-strong);background:var(--hover)}.task-row-btn{min-height:30px;font-size:var(--fs-xs);flex:none;padding:6px 10px}.task-row-btn.danger{color:var(--red);border-color:var(--red-line)}.task-row-btn.danger:hover{background:var(--red-soft)}.task-inline-edit{border:1px solid var(--accent-line);border-radius:var(--radius-md);background:var(--card);grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:8px;margin-top:4px;padding:12px;display:grid}.task-inline-edit label{font-size:var(--fs-sm)}.task-inline-edit .wide{grid-column:1/-1}.task-row:hover{background:var(--hover)}.task-row strong{font-size:var(--fs-base);display:block}.task-row.danger strong{color:var(--red)}.priority-dot{background:var(--muted);border-radius:50%;flex:0 0 8px;width:8px;height:8px;margin-top:6px}.priority-dot.urgent{background:var(--red)}.priority-dot.high{background:var(--orange)}.priority-dot.medium{background:var(--amber)}.priority-dot.low{background:var(--green)}.board{grid-template-columns:repeat(5,minmax(180px,1fr));gap:12px;padding-bottom:10px;display:grid;overflow-x:auto}.board-column{background:var(--sunken);border:1px solid var(--line-soft);border-radius:var(--radius-md);min-width:180px;padding:10px}.board-empty{color:var(--muted);font-size:var(--fs-xs);text-align:center;border:1px dashed var(--line);border-radius:var(--radius-sm);padding:14px 4px}.board-head{color:var(--muted);justify-content:space-between;padding:0 4px 10px;display:flex}.board-list{flex-direction:column;gap:8px;display:flex}.week-grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;display:grid}.day-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius-md);min-height:140px;box-shadow:var(--edge);padding:10px}.day-card>strong{color:var(--accent-text)}.todo-list{flex-direction:column;display:flex}.todo-item{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:10px;padding:12px 6px;display:flex}.todo-item strong{font-size:var(--fs-base);display:block}.pool-actions{margin-bottom:8px}.cloud-model-settings{border-top:1px dashed var(--line);margin-top:14px;padding-top:10px}.cloud-model-settings summary{cursor:pointer;color:var(--muted);font-size:var(--fs-sm);-webkit-user-select:none;user-select:none}.cloud-model-settings summary:hover{color:var(--ink)}.cloud-model-settings[open] summary{margin-bottom:10px}.pool-select-all{flex-direction:row;align-items:center;gap:8px}.pool-select-all input{width:auto}.pool-item{border-bottom:1px solid var(--line);flex-direction:row;align-items:flex-start;gap:10px;padding:12px 6px;display:flex}.pool-item:hover{background:var(--hover)}.pool-item input[type=checkbox]{flex:none;width:auto;margin-top:4px}.pool-item-main{flex:auto;min-width:0}.pool-item-main strong{font-size:var(--fs-base);text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.pool-item-desc{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.pool-item-meta{min-width:0;color:var(--muted);font-size:var(--fs-xs);flex-wrap:wrap;flex:0 auto;justify-content:flex-end;align-items:center;gap:4px 10px;display:flex}.pool-item-project,.pool-item-order{text-overflow:ellipsis;white-space:nowrap;max-width:180px;overflow:hidden}.timer-card{text-align:center;padding:16px 12px 6px}.timer-value{font-size:var(--fs-display);letter-spacing:.02em;color:var(--accent-text);font-variant-numeric:tabular-nums;display:block}.ratio-grid{grid-template-columns:1fr 1fr;gap:10px;display:grid}.ratio-item{border:1px solid var(--line);border-radius:var(--radius-sm);grid-template-rows:auto auto;grid-template-columns:10px 1fr auto;align-items:center;gap:2px 8px;padding:10px;display:grid}.ratio-item b{font-size:var(--fs-md)}.ratio-item small{color:var(--muted);grid-column:2/4}.ratio-dot{border-radius:50%;width:8px;height:8px}.ratio-dot.sleep{background:var(--slate)}.ratio-dot.commute{background:var(--orange)}.ratio-dot.work{background:var(--accent)}.ratio-dot.other{background:var(--slate-line)}.day-gantt{border:1px solid var(--line);border-radius:var(--radius-sm);margin-top:18px;padding:18px 12px 12px;position:relative}.gantt-hours{height:20px;margin-bottom:8px;position:relative}.gantt-hours span{color:var(--muted);font-size:var(--fs-tick);position:absolute;transform:translate(-50%)}.gantt-hours span:last-child{transform:translate(-100%)}.gantt-track{background:var(--sunken);border-radius:var(--radius-sm);height:32px;position:relative;overflow:hidden}.gantt-segment{color:var(--pri-ink);font-size:var(--fs-tick);white-space:nowrap;justify-content:center;align-items:center;display:flex;position:absolute;top:0;bottom:0;overflow:hidden}.gantt-segment.sleep{background:var(--slate)}.gantt-segment.commute{background:var(--orange)}.gantt-segment.work{background:var(--accent);color:var(--accent-ink)}.gantt-segment.other{background:var(--slate-soft);color:var(--ink-soft)}.meeting-mini{flex-direction:column;gap:8px;display:flex}.agenda-item{border-bottom:1px solid var(--line);align-items:center;gap:8px;padding:8px 0;display:flex}.category{border-radius:var(--radius-pill);background:var(--accent-soft);color:var(--accent-text);font-size:var(--fs-xs);padding:4px 8px}.category.逾期{background:var(--red-soft);color:var(--red)}.category.阻塞{background:var(--orange-soft);color:var(--orange)}.toast{z-index:var(--z-dock);background:var(--sidebar);color:var(--sidebar-ink);border:1px solid var(--sidebar-line);border-radius:var(--radius-md);box-shadow:var(--shadow-lift);max-width:min(420px,100vw - 48px);padding:12px 16px;position:fixed;bottom:28px;right:28px}@media (width<=1600px){.finance-layout{grid-template-columns:1fr}.finance-rail{max-height:none;position:static;overflow:visible}.content.finance-content{max-width:1450px}.project-layout{grid-template-columns:1fr}.content.project-content{max-width:1450px}.project-rail{max-height:none;position:static;overflow:visible}.quote-detail-layout{grid-template-columns:1fr}}@media (width<=1200px){.finance-layout{grid-template-columns:1fr}.content.finance-content{max-width:1450px}.finance-rail{max-height:none;position:static}.project-layout{grid-template-columns:1fr}.content.project-content{max-width:1450px}.project-rail{max-height:none;position:static;overflow:visible}.quote-detail-layout{grid-template-columns:1fr}}@media (width<=900px){.app-shell{flex-direction:column}.sidebar{width:100%;z-index:var(--z-sticky);flex:none;padding:8px 10px 10px;position:sticky;top:0}.brand{font-size:var(--fs-base);padding:4px 6px 8px}.sidebar .sidebar-more-btn{display:inline-flex;position:absolute;top:8px;right:10px}.sidebar .sidebar-more{display:none}.sidebar .sidebar-more.open{flex-direction:column;gap:8px;margin-top:4px;display:flex}.sidebar nav{flex-direction:row;padding-bottom:6px;overflow-x:auto}.sidebar nav button{white-space:nowrap;width:auto}.sidebar-user{border-top:0;padding-left:4px}.content{padding:16px}.stat-grid{grid-template-columns:repeat(2,1fr)}.panel-grid,.quote-detail-layout{grid-template-columns:1fr}.quote-calc-grid{grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}.quote-detail-main,.quote-summary-bar,.quote-item-form,.quote-calc{min-height:auto}.quote-import-button{min-width:auto;height:auto;min-height:auto;padding:10px 14px}.board{grid-template-columns:repeat(5,220px)}.topbar{padding:0 16px}.pool-item{flex-wrap:wrap}.pool-item-meta{justify-content:flex-start;width:100%}.pool-item-project,.pool-item-order{flex:auto;max-width:none}}.gantt-wrap{--gantt-left-w:220px}.gantt-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px;display:flex}.gantt-legend{color:var(--muted);font-size:var(--fs-xs);align-items:center;gap:12px;display:flex}.gantt-legend span{align-items:center;gap:6px;display:inline-flex}.gantt-legend-dot{border-radius:var(--radius-xs);width:10px;height:10px;display:inline-block}.gantt-legend-dot.pri-urgent{background:var(--red)}.gantt-legend-dot.pri-high{background:var(--orange)}.gantt-legend-dot.pri-medium{background:var(--accent)}.gantt-legend-dot.pri-low{background:var(--slate)}.gantt-legend-dot.pri-none{background:var(--muted)}.gantt-toolbar-actions{align-items:center;gap:8px;display:flex}.gantt-range-hint{color:var(--muted);font-size:var(--fs-xs);border-radius:var(--radius-pill);background:var(--sunken);border:1px solid var(--line-soft);cursor:help;padding:2px 8px}.gantt-month-band{background:0 0;position:absolute;top:0;bottom:0}.gantt-month-band.alt{background:#786e5a0d}.gantt-col-month{background:var(--line-strong);opacity:.7;width:1px;position:absolute;top:0;bottom:0}.gantt-editor-backdrop{z-index:40;background:0 0;position:fixed;inset:0}.gantt-editor{z-index:41;border:1px solid var(--line-strong);border-radius:var(--radius-md);background:var(--card);width:300px;box-shadow:var(--shadow-lift);flex-direction:column;gap:10px;padding:14px;display:flex;position:fixed}.gantt-editor-head{justify-content:space-between;align-items:center;gap:10px;display:flex}.gantt-editor-head strong{font-size:var(--fs-base);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.gantt-editor label{font-size:var(--fs-sm)}.gantt-editor .row-actions{justify-content:flex-start}.gantt-zoom{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--card);display:inline-flex;overflow:hidden}.gantt-zoom button{min-height:36px;color:var(--muted);background:0 0;border:0;padding:8px 14px}.gantt-zoom button+button{border-left:1px solid var(--line)}.gantt-zoom button.on{background:var(--accent);color:var(--accent-ink)}.gantt-arrow{text-align:center;width:36px;min-height:36px;font-size:var(--fs-md);flex:none;padding-left:0;padding-right:0;line-height:1.2}.gantt-scroll{border:1px solid var(--line);border-radius:var(--radius-md);background:var(--card);overscroll-behavior-x:contain;scrollbar-width:none;max-height:min(620px,70vh);overflow:auto}.gantt-scroll::-webkit-scrollbar{height:0;display:none}.gantt-inner{min-width:100%;position:relative}.gantt-head{z-index:var(--z-sticky-head);background:var(--card);border-bottom:1px solid var(--line);box-shadow:var(--edge);display:flex;position:sticky;top:0}.gantt-head-left{z-index:var(--z-sticky-left);flex:0 0 var(--gantt-left-w);width:var(--gantt-left-w);background:var(--card);border-right:1px solid var(--line);font-size:var(--fs-xs);color:var(--muted);align-items:center;padding:6px 10px;display:flex;position:sticky;left:0}.gantt-head-right{flex:none}.gantt-head-months{border-bottom:1px solid var(--line);display:flex}.gantt-month{font-size:var(--fs-xs);color:var(--ink-soft);white-space:nowrap;border-right:1px solid var(--line);flex:none;padding:6px 8px 4px;font-weight:700;overflow:hidden}.gantt-head-days{display:flex}.gantt-day{font-size:var(--fs-tick);color:var(--muted);flex-direction:column;flex:none;align-items:center;gap:2px;padding:4px 0;display:flex}.gantt-day.gantt-weekend{background:var(--stripe)}.gantt-day.gantt-today{background:var(--accent-soft);color:var(--accent-text);font-weight:700}.gantt-day-num{line-height:1.1}.gantt-day-wd{font-size:var(--fs-tick);opacity:.75;line-height:1.1}.gantt-rows{position:relative}.gantt-cols{top:0;bottom:0;left:var(--gantt-left-w);z-index:var(--z-under);pointer-events:none;position:absolute}.gantt-col-weekend{background:var(--stripe);position:absolute;top:0;bottom:0}.gantt-col-today{background:var(--accent-tint-weak);border-left:1px solid var(--accent-tint-line);border-right:1px solid var(--accent-tint-line);position:absolute;top:0;bottom:0}.gantt-col-today:before{content:"";background:var(--accent);height:3px;position:absolute;top:0;left:0;right:0}.gantt-drop-hint{background:var(--accent-tint);outline:1px dashed var(--accent);position:absolute;top:0;bottom:0}.gantt-row{height:36px;display:flex;position:relative}.gantt-row-left{z-index:var(--z-sticky);flex:0 0 var(--gantt-left-w);width:var(--gantt-left-w);background:var(--card);border-right:1px solid var(--line);border-bottom:1px solid var(--line-soft);flex-direction:column;justify-content:center;padding:4px 10px;display:flex;position:sticky;left:0;overflow:hidden}.gantt-task-title{font-size:var(--fs-xs);text-overflow:ellipsis;white-space:nowrap;font-weight:600;line-height:1.25;overflow:hidden}.gantt-task-meta{font-size:var(--fs-tick);color:var(--muted);text-overflow:ellipsis;white-space:nowrap;line-height:1.2;overflow:hidden}.gantt-row-track{border-bottom:1px solid var(--line-soft);flex:none;height:36px;position:relative;overflow:hidden}.gantt-bar{border-radius:var(--radius-xs);height:26px;color:var(--pri-ink);cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;z-index:var(--z-raised);box-shadow:var(--edge);align-items:center;padding:0 10px;display:flex;position:absolute;top:5px}.gantt-bar:active{cursor:grabbing}.gantt-bar.pri-urgent{background:var(--red)}.gantt-bar.pri-high{background:var(--orange)}.gantt-bar.pri-medium{background:var(--accent);color:var(--accent-ink)}.gantt-bar.pri-low{background:var(--slate)}.gantt-bar.pri-none{background:var(--muted)}.gantt-bar-done{opacity:.45}.gantt-bar-dragging{box-shadow:var(--shadow-drag);z-index:var(--z-drag);opacity:1}.gantt-bar-label{min-width:0;font-size:var(--fs-tick);align-items:center;gap:6px;font-weight:600;display:flex}.gantt-bar-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.gantt-bar-label em{opacity:.85;flex:none;font-style:normal;font-weight:500}.gantt-bar-handle{cursor:ew-resize;touch-action:none;width:10px;position:absolute;top:0;bottom:0}.gantt-bar-handle-l{border-radius:var(--radius-xs) 0 0 var(--radius-xs);left:0}.gantt-bar-handle-r{border-radius:0 var(--radius-xs) var(--radius-xs) 0;right:0}.gantt-bar-handle:after{content:"";opacity:.6;background:currentColor;border-radius:2px;width:2px;height:10px;position:absolute;top:50%;transform:translateY(-50%)}.gantt-bar-handle-l:after{left:4px}.gantt-bar-handle-r:after{right:4px}.gantt-empty-hint{font-size:var(--fs-tick);color:var(--faint);line-height:1.3}.gantt-backlog{border:1px dashed var(--line);border-radius:var(--radius-md);background:var(--sunken);margin-top:12px;padding:10px 12px}.gantt-backlog-title{font-size:var(--fs-xs);color:var(--muted);margin-bottom:6px}.gantt-backlog-item{border-bottom:1px solid var(--line-soft);cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;align-items:center;gap:10px;padding:8px 4px;display:flex}.gantt-backlog-item:last-child{border-bottom:0}.gantt-backlog-item.gantt-backlog-dragging{opacity:.45}.gantt-backlog-tag{font-size:var(--fs-tick);color:var(--orange);background:var(--orange-soft);border:1px solid var(--orange-line);border-radius:var(--radius-pill);flex:none;padding:2px 8px}.gantt-backlog-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:var(--fs-sm);flex:auto;font-weight:600;overflow:hidden}.gantt-backlog-meta{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:var(--fs-xs);color:var(--muted);flex:0 auto;overflow:hidden}.gantt-backlog-today{flex:none}.gantt-tip{z-index:var(--z-tooltip);background:var(--sidebar);color:var(--sidebar-ink);border:1px solid var(--sidebar-line);font-size:var(--fs-xs);border-radius:var(--radius-sm);box-shadow:var(--shadow-lift);pointer-events:none;white-space:nowrap;padding:6px 10px;position:fixed}body.gantt-drag-active{-webkit-user-select:none;user-select:none}body.gantt-drag-active *{cursor:grabbing!important}@media (width<=900px){.gantt-wrap{--gantt-left-w:0px}.gantt-head-left,.gantt-row-left{display:none}}.quote-type-tag{border-radius:var(--radius-pill);background:var(--accent-soft);color:var(--accent-text);font-size:var(--fs-xs);white-space:nowrap;vertical-align:2px;margin-left:8px;padding:2px 8px;font-weight:400;line-height:1.6;display:inline-block}.quote-type-tag.fdm{background:var(--green-soft);color:var(--green)}.print-calc-grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;display:grid}.print-calc-section{border-bottom:1px dashed var(--line);font-size:var(--fs-sm);color:var(--ink-soft);grid-column:1/-1;margin-top:6px;padding-bottom:4px;font-weight:700}.print-summary{border-top:1px dashed var(--line);font-size:var(--fs-xs);color:var(--muted);grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:8px 14px;padding-top:12px;display:grid}.print-summary>span{flex-direction:column;gap:4px;display:flex}.print-summary b{font-size:var(--fs-base);color:var(--ink);font-variant-numeric:tabular-nums}.print-summary .print-gross{background:var(--accent-soft);border-radius:var(--radius-sm);padding:8px 10px}.print-summary .print-gross b{color:var(--accent-text);font-size:var(--fs-md)}.print-summary .print-rush b{color:var(--orange)}.fdm-hint{font-size:var(--fs-xs);color:var(--muted);flex-wrap:wrap;grid-column:1/-1;align-items:center;gap:4px 16px;margin:0;display:flex}.fdm-link{color:var(--accent-text);font-size:var(--fs-xs);background:0 0;border:0;padding:0;text-decoration:underline}.fdm-link:hover{color:var(--accent-hover)}.fdm-stock-ok{color:var(--green)}.fdm-stock-lack{color:var(--orange);font-weight:600}.calc-head-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 16px;display:flex}.calc-head-row .mini-heading{margin:0}.calc-override{font-size:var(--fs-xs);color:var(--muted);cursor:pointer;white-space:nowrap;margin:0}.print-calc-collapse{border:1px dashed var(--line);border-radius:var(--radius-sm);grid-column:1/-1;padding:8px 12px}.print-calc-collapse summary{cursor:pointer;font-size:var(--fs-sm);color:var(--ink-soft);-webkit-user-select:none;user-select:none;font-weight:700}.print-calc-collapse summary:hover{color:var(--accent-text)}.print-calc-collapse[open] summary{margin-bottom:10px}.print-summary .print-gross-with-rush{flex-flow:wrap;align-items:center;gap:8px 10px}.print-rush-toggle{font-size:var(--fs-xs);color:var(--accent-text);cursor:pointer;white-space:nowrap;margin:0}.print-rush-rate{font-size:var(--fs-xs);color:var(--muted);align-items:center;gap:6px;margin:0;display:inline-flex}.print-rush-rate input{width:72px}@media (width<=900px){.print-calc-grid{grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}.print-summary{grid-template-columns:repeat(2,minmax(0,1fr))}}.quote-tabs{background:var(--card);border:1px solid var(--line);border-radius:var(--radius-md);box-shadow:var(--shadow);gap:6px;padding:6px;display:flex;overflow-x:auto}.quote-tabs button{color:var(--muted);border-radius:var(--radius-sm);font-size:var(--fs-base);white-space:nowrap;background:0 0;border:0;flex:none;padding:10px 16px;font-weight:600}.quote-tabs button:hover{background:var(--hover);color:var(--ink-soft)}.quote-tabs button.on{background:var(--accent);color:var(--accent-ink);box-shadow:var(--edge)}.quote-tab-hidden{display:none}.inv-toolbar{margin-bottom:12px}.inv-table input,.inv-table select{min-width:92px;padding:6px 8px}.inv-edit-stack{flex-direction:column;gap:4px;display:flex}.inv-num{font-variant-numeric:tabular-nums;white-space:nowrap}.inv-low{color:var(--red);font-weight:700}.inv-note{text-overflow:ellipsis;white-space:nowrap;max-width:200px;overflow:hidden}.inv-kind-filter{border-radius:var(--radius-sm);margin:0 0 12px;padding:4px}.inv-kind-filter button{font-size:var(--fs-sm);border-radius:var(--radius-xs);padding:6px 14px}.brand-field{align-items:flex-end;gap:6px;display:flex}.brand-field label{flex:auto;min-width:0}.brand-manage-btn{white-space:nowrap;flex:none}.brand-manager{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--card);margin:10px 0 0;padding:10px 12px}.brand-manager-head{font-size:var(--fs-xs);color:var(--muted);margin-bottom:8px;font-weight:700}.brand-manager-list{flex-wrap:wrap;gap:4px 14px;margin-bottom:8px;display:flex}.stocktake-input{width:76px;min-width:76px;padding:6px 8px}.purchase-empty-guide{border:1px dashed var(--line);border-radius:var(--radius-sm);color:var(--muted);font-size:var(--fs-sm);flex-wrap:wrap;align-items:center;gap:10px;margin-top:10px;padding:10px 12px;display:flex}.nav-settings-wrap{margin:0 2px 10px;position:relative}.sidebar-more{display:contents}.sidebar-more-btn{border:1px solid var(--sidebar-line);border-radius:var(--radius-sm);min-height:38px;color:var(--sidebar-ink);line-height:1.2;font-size:var(--fs-sm);background:0 0;align-items:center;gap:6px;padding:8px 14px;display:none}.sidebar-more-btn:hover{background:var(--sidebar-hover)}.nav-settings-btn{border:1px solid var(--sidebar-line);border-radius:var(--radius-sm);width:100%;color:var(--sidebar-ink);font-size:var(--fs-sm);text-align:left;background:0 0;align-items:center;gap:10px;padding:10px;display:flex}.nav-settings-btn:hover{background:var(--sidebar-raised)}.nav-settings-pop{background:var(--card);width:228px;max-width:min(260px,100vw - 24px);max-height:min(430px,100dvh - 140px);color:var(--ink);border:1px solid var(--line);border-radius:var(--radius-md);box-shadow:var(--shadow-lift);z-index:var(--z-popover);padding:12px;position:absolute;bottom:calc(100% + 10px);left:0;overflow-y:auto}.nav-settings-title{font-size:var(--fs-xs);color:var(--muted);margin-bottom:8px;font-weight:700}.nav-settings-item{border-radius:var(--radius-sm);font-size:var(--fs-sm);cursor:pointer;align-items:center;gap:8px;padding:6px;display:flex}.nav-settings-item:hover{background:var(--hover)}.nav-settings-item input{accent-color:var(--accent);margin:0}.nav-settings-hint{font-size:var(--fs-xs);color:var(--muted);margin:8px 0 0}.punch-dock{background:var(--card);border:1px solid var(--line);border-radius:var(--radius-md);width:232px;box-shadow:var(--shadow-lift);z-index:var(--z-dock);position:fixed;bottom:24px;right:24px}.punch-head{background:var(--sidebar);color:var(--sidebar-ink);border-radius:var(--radius-md) var(--radius-md) 0 0;cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;align-items:center;gap:8px;padding:10px;display:flex}.punch-head:active{cursor:grabbing}.punch-icon{font-size:var(--fs-base);flex:none;line-height:1}.punch-title{min-width:0;font-size:var(--fs-xs);text-overflow:ellipsis;white-space:nowrap;flex:auto;font-weight:700;overflow:hidden}.punch-dot{background:var(--slate);border-radius:50%;flex:none;width:8px;height:8px}.punch-dot-working{background:var(--green);box-shadow:0 0 0 3px var(--green-soft);animation:punch-pulse 1.6s var(--ease-out) infinite}.punch-dot-out{background:var(--amber)}@keyframes punch-pulse{0%,to{opacity:1}50%{opacity:.4}}.punch-min{border-radius:var(--radius-xs);background:var(--sidebar-raised);width:28px;height:28px;color:var(--sidebar-ink);font-size:var(--fs-sm);border:0;flex:none;place-items:center;padding:0;line-height:1;display:grid}.punch-min:hover{background:var(--sidebar-raised-hover)}.punch-body{flex-direction:column;gap:8px;padding:10px 12px 12px;display:flex}.punch-status{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.punch-state{font-size:var(--fs-sm);font-weight:700}.punch-elapsed{font-size:var(--fs-xs);color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap}.punch-actions{gap:8px;display:flex}.punch-btn{border-radius:var(--radius-sm);font-size:var(--fs-sm);border:1px solid #0000;flex:1 1 0;padding:8px 6px;font-weight:600}.punch-btn-in{background:var(--accent);color:var(--accent-ink)}.punch-btn-in:not(:disabled):hover{background:var(--accent-hover)}.punch-btn-out{background:var(--sunken);color:var(--ink-soft);border-color:var(--line)}.punch-btn-out:not(:disabled):hover{background:var(--hover);border-color:var(--line-strong)}.punch-dock.punch-collapsed{width:auto;box-shadow:none;background:0 0;border:0}.punch-pill{border:1px solid var(--sidebar-line);border-radius:var(--radius-pill);background:var(--sidebar);color:var(--sidebar-ink);box-shadow:var(--shadow-lift);align-items:center;gap:8px;padding:10px 12px;display:inline-flex}@media (width<=900px){.nav-settings-pop{max-height:56vh;top:calc(100% + 8px);bottom:auto}.punch-dock{width:176px;bottom:12px;right:12px}.punch-title,.punch-state,.punch-elapsed{display:none}.punch-head{gap:6px;padding:8px}.punch-body{gap:6px;padding:8px 10px 10px}.punch-btn{font-size:var(--fs-xs);padding:8px 4px}}*{scrollbar-width:thin;scrollbar-color:var(--line-strong) transparent}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--line-strong);border-radius:var(--radius-pill);background-clip:content-box;border:2px solid #0000}::-webkit-scrollbar-thumb:hover{background:var(--muted);background-clip:content-box}::-webkit-scrollbar-corner{background:0 0}.table th,.table td{line-height:1.55}.finance-bar{z-index:var(--z-dock);background:linear-gradient(to right, var(--accent), var(--accent-hover));border-top:1px solid var(--accent-line);color:var(--accent-ink);flex-wrap:wrap;align-items:center;gap:20px;padding:10px 32px;display:flex;position:fixed;bottom:0;left:238px;right:0}.finance-bar span{font-size:var(--fs-sm)}.finance-bar b{font-size:var(--fs-base);font-weight:700}.main{padding-bottom:calc(var(--finance-bar-h,46px) + 14px)}body:has(.finance-bar) .punch-dock{bottom:calc(var(--finance-bar-h,46px) + 22px)}@media (width<=900px){.finance-bar{padding:8px 14px;left:0}}.gantt-fullscreen{z-index:90;background:var(--paper);--gantt-left-w:300px;flex-direction:column;padding:18px;display:flex;position:fixed;inset:0;overflow:auto}.gantt-fullscreen .gantt-scroll{flex:auto;max-height:none}.gantt-fullscreen .gantt-row,.gantt-fullscreen .gantt-row-track{height:44px}.gantt-fullscreen .gantt-bar{height:28px;top:8px}.gantt-fullscreen .gantt-task-title{font-size:var(--fs-base)}.gantt-fullscreen .gantt-task-meta,.gantt-fullscreen .gantt-day-num{font-size:var(--fs-sm)}.gantt-fullscreen .gantt-day-wd{font-size:var(--fs-tick)}.gantt-fullscreen .gantt-bar-label,.gantt-fullscreen .gantt-month,.gantt-fullscreen .gantt-head-left{font-size:var(--fs-sm)}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.punch-dot-working{animation:none}.stat-card:hover,.primary:active{transform:none}}.hint{color:var(--muted);font-size:var(--fs-xs);margin-top:2px;font-weight:400;display:block}.ledger{flex-direction:column;gap:18px;display:flex}.ledger-brand{border:1px solid var(--line);border-radius:var(--radius);background:var(--card);box-shadow:var(--shadow), var(--edge);flex-wrap:wrap;align-items:center;gap:18px;padding:14px 18px;display:flex}.ledger-brand-id{flex-direction:column;gap:2px;display:flex}.ledger-mark{font-family:var(--font-serif);font-size:var(--fs-md);letter-spacing:.06em;font-weight:700}.ledger-sub{color:var(--muted);font-size:var(--fs-xs);letter-spacing:.04em}.ledger-tabs{flex-wrap:wrap;flex:auto;gap:6px;display:flex}.ledger-tabs button{border:1px solid var(--line);border-radius:var(--radius-pill);background:var(--sunken);color:var(--ink-soft);font-size:var(--fs-sm);cursor:grab;padding:8px 12px}.ledger-tabs button:hover{background:var(--hover);border-color:var(--line-strong)}.ledger-tabs button.on{background:var(--accent);border-color:var(--accent);color:var(--accent-ink);font-weight:700}.ledger-pill{border-radius:var(--radius-pill);font-size:var(--fs-xs);background:var(--green-soft);color:var(--green);border:1px solid var(--green-line);padding:6px 12px}.ledger-hero{border-radius:var(--radius);border:1px solid var(--line);background:var(--card);box-shadow:var(--shadow), var(--edge);padding:20px}.ledger-hero-head h1{font-family:var(--font-serif);font-size:var(--fs-lg);margin:0}.ledger-hero-head p{color:var(--muted);font-size:var(--fs-xs);margin:4px 0 0}.ledger-hero-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:16px;display:grid}.ledger-stat{border-radius:var(--radius-sm);border:1px solid var(--line);background:var(--sunken);padding:16px 18px}.ledger-stat .n{font-family:var(--font-mono);font-size:var(--fs-xl);letter-spacing:-.01em;font-weight:700}.ledger-stat .t{color:var(--muted);font-size:var(--fs-xs);margin-top:4px}.ledger-stat .n.income{color:var(--accent-text)}.ledger-stat .n.profit{color:var(--green)}.ledger-stat .n.neg{color:var(--red)}.ledger-margins{border-top:1px dashed var(--line);grid-template-columns:repeat(auto-fit,minmax(172px,1fr));gap:10px;margin-top:16px;padding-top:16px;display:grid}.ledger-margin{border-radius:var(--radius-sm);border:1px solid var(--line-soft);background:var(--hover);cursor:help;padding:10px 12px;position:relative}.ledger-margin:hover{border-color:var(--accent-line)}.ledger-margin-label{color:var(--muted);font-size:var(--fs-xs);align-items:center;display:flex}.ledger-margin-value{font-family:var(--font-mono);font-size:var(--fs-md);margin-top:4px;font-weight:700}.ledger-margin-value.pos{color:var(--green)}.ledger-margin-value.neg{color:var(--red)}.ledger-tip{z-index:var(--z-tooltip);border:1px solid var(--sidebar-line);border-radius:var(--radius-md);background:var(--sidebar);width:max-content;min-width:260px;max-width:min(360px,86vw);color:var(--sidebar-ink);box-shadow:var(--shadow-lift);font-size:var(--fs-xs);white-space:pre-line;opacity:0;visibility:hidden;pointer-events:none;transition:opacity var(--dur-fast) var(--ease-out), transform var(--dur-fast) var(--ease-out);padding:10px 12px;line-height:1.7;position:absolute;top:calc(100% + 8px);left:8px;right:auto;transform:translateY(-4px)}.ledger-margin:hover .ledger-tip,.ledger-margin:focus-within .ledger-tip{opacity:1;visibility:visible;transform:translateY(0)}.ledger-card{border-radius:var(--radius);border:1px solid var(--line);background:var(--card);box-shadow:var(--shadow), var(--edge);padding:18px}.ledger-card-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;display:flex}.ledger-card-head h2{font-size:var(--fs-md);margin:0}.ledger-sub-head{font-size:var(--fs-sm);color:var(--ink-soft);margin:20px 0 10px}.ledger-card-head+.ledger-sub-head{margin-top:0}.ledger-table .num{text-align:right;font-variant-numeric:tabular-nums}.ledger-table td{vertical-align:top}.ledger-table td.muted,.ledger-table td .muted{white-space:nowrap}.ledger-total-row td{border-top:2px solid var(--line-strong);background:var(--sunken);font-weight:700}.ledger-wide .table{min-width:1420px}.ledger-link{color:var(--accent-text);font:inherit;cursor:pointer;text-align:left;background:0 0;border:0;margin:-6px 0;padding:6px 0;font-weight:700}.ledger-link:hover{text-decoration:underline}.ledger-note{-webkit-line-clamp:2;white-space:normal;-webkit-box-orient:vertical;max-width:280px;margin-top:4px;line-height:1.5;display:-webkit-box;overflow:hidden}.ledger-tag{margin-left:6px}.ledger-settled{letter-spacing:.02em;font-weight:700}.ledger-op-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;display:grid}.ledger-op-stat{border-radius:var(--radius-sm);border:1px solid var(--line);background:var(--sunken);padding:16px 18px}.ledger-op-stat .n{font-family:var(--font-mono);font-size:var(--fs-xl);font-weight:700}.ledger-op-stat .t{color:var(--muted);font-size:var(--fs-xs);margin-top:4px}.ledger-2col{grid-template-columns:repeat(auto-fit,minmax(340px,1fr));gap:20px;margin-top:18px;display:grid}.ledger-dist-list{flex-direction:column;gap:8px;margin:12px 0 0;padding:0;list-style:none;display:flex}.ledger-dist-list li{border:1px solid var(--line-soft);border-radius:var(--radius-sm);background:var(--hover);justify-content:space-between;align-items:center;gap:10px;padding:10px 12px;display:flex}.ledger-dist-list li.ledger-dist-empty{color:var(--muted);font-size:var(--fs-xs);border-style:dashed;justify-content:center}.ledger-dist-who{font-size:var(--fs-sm);font-weight:600}.ledger-dist-sub{color:var(--muted);font-size:var(--fs-xs);margin-top:2px}.ledger-amt{font-family:var(--font-mono);margin-left:6px}.ledger-amt.in{color:var(--green)}.ledger-amt.out{color:var(--red)}.ledger-plain-list{flex-direction:column;gap:8px;margin:14px 0 0;padding:0;list-style:none;display:flex}.ledger-plain-list li{border:1px solid var(--line-soft);border-radius:var(--radius-sm);background:var(--hover);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;display:flex}.ledger-plain-list li.ledger-dist-empty{color:var(--muted);border-style:dashed;justify-content:center}.ledger-year{flex:none}.ledger-inline-form{border-bottom:1px dashed var(--line);margin-bottom:16px;padding-bottom:16px}.ledger-chart-grid{grid-template-columns:repeat(auto-fit,minmax(340px,1fr));gap:16px;display:grid}.ledger-chart-card{border:1px solid var(--line-soft);border-radius:var(--radius-sm);background:var(--hover);padding:14px 16px}.ledger-chart-card h3{font-size:var(--fs-sm);color:var(--ink-soft);margin:0 0 10px}.ledger-chart{color:var(--ink);flex-direction:column;gap:10px;display:flex}.ledger-chart svg{width:100%;height:auto;overflow:visible}.ledger-chart-empty{text-align:center;color:var(--muted);font-size:var(--fs-xs);border:1px dashed var(--line);border-radius:var(--radius-sm);padding:18px}.ledger-chart-group+.ledger-chart-group{margin-top:12px}.ledger-chart-title{font-size:var(--fs-xs);color:var(--muted);margin-bottom:4px}.ledger-legend{font-size:var(--fs-xs);color:var(--muted);flex-wrap:wrap;gap:6px 14px;display:flex}.ledger-legend-item{align-items:center;gap:6px;display:inline-flex}.ledger-swatch{border-radius:var(--radius-xs);width:10px;height:10px;display:inline-block}.ledger-modal{z-index:90;background:#0c0a0894;justify-content:center;align-items:flex-start;padding:4vh 16px;display:flex;position:fixed;inset:0;overflow-y:auto}.ledger-modal-box{border:1px solid var(--line);border-radius:var(--radius);background:var(--card);width:min(940px,100%);box-shadow:var(--shadow-lift);padding:20px 20px 24px}.ledger-modal-head{justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}.ledger-modal-head h2{font-size:var(--fs-md);margin:0}.ledger-modal-form{flex-direction:column;gap:12px;display:flex}.ledger-grid-2{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;display:grid}.ledger-calc{border:1px dashed var(--line);border-radius:var(--radius-sm);background:var(--sunken);font-size:var(--fs-sm);color:var(--ink-soft);grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:8px 16px;padding:12px 14px;display:grid}.ledger-calc b{font-family:var(--font-mono);margin-left:6px}.ledger-modal-actions{justify-content:flex-end;align-items:center;gap:10px;display:flex}.ledger-block{border-top:1px dashed var(--line);margin-top:20px;padding-top:16px}.ledger-block .ledger-sub-head{margin-top:0}.ledger-block .grid-form>button,.ledger-card .grid-form>button{place-self:end start}.ledger-kind-toggle{align-self:end;gap:6px;display:inline-flex}.ledger-kind-toggle button{border:1px solid var(--line);border-radius:var(--radius-pill);background:var(--sunken);color:var(--ink-soft);font-size:var(--fs-xs);padding:8px 12px}.ledger-kind-toggle button.on{background:var(--accent);border-color:var(--accent);color:var(--accent-ink);font-weight:700}.ledger-order-edit{flex-direction:column;gap:12px;display:flex}.ledger-order-row{border:1px solid var(--line-soft);border-radius:var(--radius-sm);background:var(--hover);padding:12px}.ledger-order-row-head{flex-wrap:wrap;align-items:baseline;gap:10px;margin-bottom:8px;display:flex}.ledger-order-no{font-family:var(--font-mono);font-weight:700}.ledger-order-row-grid{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));align-items:end;gap:10px;display:grid}.ledger-order-row-grid .primary{justify-self:start}.ledger-order-row-error{color:var(--red);font-size:var(--fs-xs);margin:8px 0 0}.ledger-shell{grid-template-columns:minmax(0,1fr);align-items:start;gap:18px;display:grid}.ledger-main{flex-direction:column;gap:18px;min-width:0;display:flex}.ledger-rail{min-width:0;display:none}.ledger-rail-card .ledger-card-head{margin-bottom:10px}.ledger-rail-card h2{font-size:var(--fs-sm)}.ledger-rail-switch{color:var(--muted);font-size:var(--fs-xs);align-items:center;gap:8px;margin-bottom:10px;display:flex}.ledger-rail-switch select{flex:auto}.ledger-rail-group{font-size:var(--fs-xs);letter-spacing:.04em;margin:10px 0 2px;font-weight:700}.ledger-rail-empty{color:var(--muted);font-size:var(--fs-xs);padding:8px 4px}.ledger-rail-more{color:var(--muted);font-size:var(--fs-xs);padding:8px 4px 2px}.ledger-rail-flow-note{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.ledger-rail .rail-project{grid-template-rows:auto auto}.ledger-rail .rail-project>span:first-child{font-weight:700}.ledger-rail-meta{grid-column:1/-1}.ledger-rail-operating{flex-direction:column;display:flex}@media (width>=1400px){.ledger-shell{grid-template-columns:minmax(0,1fr) 300px}.ledger-rail{flex-direction:column;gap:16px;max-height:calc(100dvh - 104px);display:flex;position:sticky;top:84px;overflow-y:auto}}@media (width<=900px){.ledger-hero-grid,.ledger-op-grid{grid-template-columns:1fr}}.stat-card.has-hint{cursor:help;position:relative}.hint-mark{border:1px solid var(--line-strong);cursor:help;min-width:24px;min-height:24px;color:var(--muted);font-size:var(--fs-xs);vertical-align:1px;background:0 0;border-radius:50%;place-items:center;margin-left:6px;padding:0;font-style:normal;line-height:1;display:inline-grid}.hint-mark:hover,.stat-card.has-hint:hover .hint-mark,.stat-card.has-hint:focus-within .hint-mark{border-color:var(--accent);color:var(--accent-text)}.stat-hint{z-index:var(--z-tooltip);border:1px solid var(--sidebar-line);border-radius:var(--radius-md);background:var(--sidebar);width:max-content;min-width:240px;max-width:min(320px,82vw);color:var(--sidebar-ink);box-shadow:var(--shadow-lift);font-size:var(--fs-xs);text-align:left;white-space:pre-line;opacity:0;visibility:hidden;pointer-events:none;transition:opacity var(--dur-fast) var(--ease-out), transform var(--dur-fast) var(--ease-out), visibility var(--dur-fast);padding:10px 12px;line-height:1.65;position:absolute;top:calc(100% + 8px);left:10px;transform:translateY(-4px)}.stat-card.has-hint:hover .stat-hint,.stat-card.has-hint:focus-within .stat-hint{opacity:1;visibility:visible;transform:translateY(0)}.parts-editor{background:var(--sunken);border-radius:var(--radius-sm);border-bottom:1px solid var(--line);padding:14px 16px}.parts-editor-header{justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px;display:flex}.parts-editor-header h4{font-size:var(--fs-sm);color:var(--ink-soft);margin:0;font-weight:700}.parts-table{border-collapse:collapse;width:100%}.parts-table th{text-align:left;font-size:var(--fs-xs);color:var(--muted);padding:4px 6px;font-weight:600}.parts-table td{vertical-align:middle;border:0;padding:4px 6px}.parts-table td:nth-child(2) input,.parts-table td:nth-child(3) input,.parts-table td:nth-child(4) input{min-width:92px}.parts-table input{font-size:var(--fs-sm);padding:6px 8px}.parts-table tbody tr:hover td{background:0 0}.parts-editor-actions{gap:8px;margin-top:10px;display:flex}.received-correction-row>td{padding:0}.received-correction{border-bottom:0}.received-correction-steps{flex-wrap:wrap;gap:8px;margin-bottom:10px;display:flex}.received-correction-steps span{border-radius:var(--radius-pill);border:1px solid var(--line);background:var(--card);color:var(--muted);font-size:var(--fs-xs);padding:2px 10px}.received-correction-steps span.on{background:var(--accent-soft);border-color:var(--accent-line);color:var(--accent-text);font-weight:700}.received-correction-header h4{font-size:var(--fs-sm);color:var(--ink-soft);margin:0 0 8px;font-weight:700}.received-correction-facts{font-size:var(--fs-sm);color:var(--ink-soft);font-variant-numeric:tabular-nums;flex-wrap:wrap;gap:6px 18px;margin-bottom:8px;display:flex}.received-correction-warning{border-radius:var(--radius-sm);border:1px solid var(--red-line);background:var(--red-soft);color:var(--red);font-size:var(--fs-sm);margin:0 0 10px;padding:8px 12px}.received-correction-form{flex-wrap:wrap;gap:10px 16px;margin-bottom:4px;display:flex}.received-correction-form label{min-width:220px;font-size:var(--fs-xs);color:var(--muted);flex-direction:column;flex:240px;gap:4px;display:flex}.received-correction-form input{max-width:320px}.received-correction-compare{border-collapse:collapse;width:100%;font-size:var(--fs-sm);margin:4px 0 10px}.received-correction-compare th{text-align:left;width:90px;color:var(--muted);padding:4px 10px 4px 0;font-weight:600}.received-correction-compare td{color:var(--ink-soft);font-variant-numeric:tabular-nums;padding:4px 0}.received-correction-actions{gap:8px;margin-top:10px;display:flex}.danger{border-radius:var(--radius-sm);border:1px solid var(--red-line);background:var(--red-soft);color:var(--red);padding:10px 14px;font-weight:700}.danger:hover{border-color:var(--red)}.quote-head-buttons{flex-wrap:wrap;align-items:flex-end;gap:8px;margin-left:auto;display:flex}.quote-head-button{white-space:nowrap}.quote-head-panel{padding:0;overflow:hidden}.quote-head-toggle{width:100%;color:var(--ink);font-size:var(--fs-base);text-align:left;cursor:pointer;background:0 0;border:0;justify-content:space-between;align-items:center;gap:10px;padding:14px 18px;font-weight:700;display:flex}.quote-head-toggle:hover{background:var(--hover)}.quote-head-toggle-mark{font-size:var(--fs-xs);color:var(--muted);white-space:nowrap;flex:none;font-weight:400}.quote-head-body{border-top:1px solid var(--line);padding:14px 18px 16px}.quote-head-readonly-hint{font-size:var(--fs-xs);color:var(--orange);margin:0 0 10px}.quote-head-form .quote-head-terms-field{grid-column:1/-1}.quote-head-terms-field textarea{resize:vertical;min-height:58px}.quote-head-actions-bar{grid-column:1/-1}.quote-head-form input:read-only,.quote-head-form textarea:read-only{opacity:.55;cursor:not-allowed}.quote-print-portal{display:none}@media print{body.print-quote #root{display:none!important}body.print-quote .quote-print-portal{display:block!important}@page{size:A4;margin:14mm}}.quote-print-sheet{color:#000;font-size:var(--fs-xs);background:#fff;line-height:1.6}.quote-print-head{border-bottom:2px solid #000;justify-content:space-between;align-items:flex-start;gap:18px;margin-bottom:12px;padding-bottom:10px;display:flex}.quote-print-seller{min-width:0}.quote-print-seller-name{font-size:var(--fs-lg);font-weight:700;line-height:1.35}.quote-print-seller-meta{font-size:var(--fs-xs);color:#333;margin-top:4px}.quote-print-title{text-align:right;flex:none}.quote-print-title h1{font-size:var(--fs-md);margin:0;line-height:1.35}.quote-print-title p{font-size:var(--fs-xs);color:#333;margin:4px 0 0}.quote-print-customer{margin:0 0 10px}.quote-print-table{border-collapse:collapse;width:100%}.quote-print-table th,.quote-print-table td{text-align:left;vertical-align:top;border:1px solid #000;padding:6px 8px}.quote-print-table th{background:#efefef;font-weight:700}.quote-print-table .quote-print-num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.quote-print-item-note{font-size:var(--fs-tick);color:#444;margin-top:2px;display:block}.quote-print-empty{color:#555;margin:8px 0 0}.quote-print-totals{flex-direction:column;align-items:flex-end;gap:4px;margin-top:14px;display:flex}.quote-print-totals>div{font-variant-numeric:tabular-nums;justify-content:space-between;gap:18px;min-width:240px;display:flex}.quote-print-totals b{font-weight:600}.quote-print-grand{font-size:var(--fs-sm);border-top:1px solid #000;padding-top:6px}.quote-print-grand b{font-size:var(--fs-md);font-weight:700}.quote-print-notes{font-size:var(--fs-xs);color:#222;margin:14px 0 0}.quote-print-footer{font-size:var(--fs-xs);color:#333;text-align:center;border-top:1px solid #999;margin-top:20px;padding-top:8px}.ledger-quote-editor-row>td{padding:0 10px 14px}.quote-editor{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--sunken);padding:12px 14px}.quote-editor-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px;display:flex}.quote-editor-title{font-size:var(--fs-sm);color:var(--ink-soft)}.quote-editor-totals{font-size:var(--fs-xs);color:var(--muted);flex-wrap:wrap;align-items:baseline;gap:6px 18px;display:flex}.quote-editor-totals b{font-family:var(--font-mono);font-size:var(--fs-sm);color:var(--ink);font-variant-numeric:tabular-nums;margin-left:6px}.quote-editor-scroll{overflow-x:visible}.quote-editor .quote-editor-table{min-width:0}.quote-editor-table th,.quote-editor-table td{padding:6px 8px}.quote-editor-table input{width:100%;min-width:0;font-size:var(--fs-sm);padding:6px 8px}.quote-editor-add td{background:var(--card)}.quote-editor-table tr:hover td{background:0 0}.quote-editor-add:hover td,.quote-editor-item:hover td{background:var(--hover)}.quote-editor-subtotal{white-space:nowrap;font-variant-numeric:tabular-nums}.quote-editor-empty{text-align:center;color:var(--muted);font-size:var(--fs-sm);padding:16px 8px}.quote-editor .row-actions{flex-wrap:nowrap}@media (width<=900px){.quote-editor-head{flex-direction:column;align-items:flex-start}.quote-editor-table input{padding:5px 6px}}
