:root{color:#172938;font-synthesis:none;text-rendering:optimizelegibility;--navy-950:#071521;--navy-900:#0b1d2b;--navy-800:#122b3d;--navy-700:#24475d;--ink:#162b3b;--muted:#6f7f8b;--subtle:#94a0a9;--line:#dde3e7;--line-soft:#edf0f2;--surface:#fff;--canvas:#f3f5f7;--gold:#c88927;--gold-dark:#a9690f;--gold-soft:#fff4df;--green:#1d8a63;--green-soft:#e8f7f1;--red:#c64545;--red-soft:#fff0ef;--blue:#3877a9;--blue-soft:#eaf3fb;--shadow:0 12px 35px #081b2912;background:#f3f5f7;font-family:Inter,PingFang SC,Microsoft YaHei,Noto Sans CJK SC,system-ui,-apple-system,BlinkMacSystemFont,sans-serif}*{box-sizing:border-box}html,body,#root{min-width:320px;min-height:100%;margin:0}body{background:var(--canvas);min-height:100vh;color:var(--ink);font-size:14px}button,input,select,textarea{font:inherit}button{-webkit-tap-highlight-color:transparent}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline-offset:1px;outline:3px solid #c889272e}.selfhost-login{background:radial-gradient(circle at 16% 18%,#d69d3a33,#0000 24%),linear-gradient(130deg,#071521 0 48%,#f2f4f6 48% 100%);grid-template-columns:minmax(360px,.95fr) minmax(480px,1.05fr);place-items:center;min-height:100vh;padding:44px;display:grid}.login-brand{color:#fff;justify-self:center}.login-brand-mark,.brand-symbol{color:#fff;background:linear-gradient(145deg,#e4ae50,#b87716);border:1px solid #fff3;place-items:center;font-family:STSong,Songti SC,serif;font-weight:700;display:grid;box-shadow:0 14px 35px #0003}.login-brand-mark{width:58px;height:58px;font-size:30px}.login-brand p{color:#d7a955;letter-spacing:.22em;margin:20px 0 8px;font-size:11px;font-weight:700}.login-brand h1{letter-spacing:-.04em;margin:0;font-size:clamp(30px,4vw,48px)}.login-brand>span{color:#91a5b5;letter-spacing:.12em;margin-top:13px;font-size:13px;display:block}.login-card{background:#fff;border:1px solid #e1e6e9;border-radius:14px;width:min(430px,100%);padding:40px;box-shadow:0 30px 80px #081a2724}.login-card>p{color:#b97917;letter-spacing:.12em;margin:0 0 7px;font-size:10px;font-weight:800}.login-card h2{color:#142737;margin:0;font-size:25px}.login-card>span{color:#7c8993;margin-top:8px;font-size:12px;display:block}.login-card form{flex-direction:column;gap:17px;margin-top:28px;display:flex}.login-card label{flex-direction:column;gap:7px;display:flex}.login-card label b{color:#435462;font-size:12px}.login-card input{border:1px solid #d9e0e5;border-radius:7px;outline:none;height:45px;padding:0 13px;font-size:14px}.login-card input:focus{border-color:#cf9231;box-shadow:0 0 0 3px #cf92311c}.login-card form>button{color:#fff;cursor:pointer;background:linear-gradient(145deg,#dca03a,#bd7616);border:0;border-radius:7px;height:46px;font-size:14px;font-weight:800;box-shadow:0 8px 20px #be771533}.login-card form>button:disabled{cursor:wait;opacity:.65}.login-card>small{color:#9aa4ab;text-align:center;margin-top:18px;font-size:10px;display:block}.selfhost-loading{background:var(--navy-950);color:#9fb1be;justify-content:center;align-items:center;gap:14px;min-height:100vh;font-size:13px;display:flex}.ledger-shell{background:var(--canvas);grid-template-columns:238px minmax(0,1fr);min-height:100vh;transition:grid-template-columns .18s;display:grid}.ledger-shell.collapsed{grid-template-columns:78px minmax(0,1fr)}.ledger-sidebar{z-index:40;background:radial-gradient(circle at 25% -5%, #ce93332e, transparent 22%), var(--navy-950);color:#d8e0e5;flex-direction:column;min-width:0;height:100vh;display:flex;position:sticky;top:0;overflow:hidden}.ledger-brand{white-space:nowrap;border-bottom:1px solid #ffffff14;align-items:center;gap:12px;min-height:82px;padding:16px 23px;display:flex;position:relative}.brand-symbol{border-radius:4px;flex:none;width:38px;height:38px;font-size:20px}.ledger-brand>div:nth-child(2){flex-direction:column;gap:4px;min-width:0;transition:opacity .12s;display:flex}.ledger-brand b{color:#fff;letter-spacing:.08em;font-size:15px}.ledger-brand span{color:#8ca0ae;letter-spacing:.12em;font-size:9px}.collapse-control{z-index:2;color:#526675;cursor:pointer;background:#fff;border:1px solid #d6dde2;border-radius:50%;width:27px;height:27px;font-size:19px;line-height:1;transition:transform .18s;position:absolute;bottom:-13px;right:-13px;box-shadow:0 3px 10px #04111b21}.ledger-sidebar nav{flex:1;padding:22px 12px;overflow:hidden auto}.ledger-sidebar nav section+section{margin-top:24px}.ledger-sidebar nav section>p{color:#627988;letter-spacing:.16em;white-space:nowrap;margin:0 11px 8px;font-size:9px;font-weight:700}.ledger-sidebar nav button{color:#aebdc7;cursor:pointer;text-align:left;white-space:nowrap;background:0 0;border:0;border-radius:6px;align-items:center;gap:12px;width:100%;height:43px;padding:0 12px;transition:background .12s,color .12s;display:flex}.ledger-sidebar nav button:hover{color:#fff;background:#ffffff0e}.ledger-sidebar nav button.active{color:#f3c97e;background:linear-gradient(90deg,#d2963338,#d2963314)}.ledger-sidebar nav button i{border:1px solid #ffffff17;border-radius:5px;flex:none;place-items:center;width:26px;height:26px;font-size:11px;font-style:normal;display:grid}.ledger-sidebar nav button.active i{background:#d59a3624;border-color:#e2ac4f59}.ledger-sidebar nav button span{text-overflow:ellipsis;font-size:13px;overflow:hidden}.ledger-sidebar footer{white-space:nowrap;border-top:1px solid #ffffff14;padding:16px 23px 20px}.ledger-sidebar footer>div{align-items:center;gap:8px;display:flex}.ledger-sidebar footer b{color:#a9b8c2;font-size:10px;font-weight:600}.ledger-sidebar footer small{color:#5e7382;margin:7px 0 0 17px;font-size:9px;display:block}.live-dot{background:#2caf7d;border-radius:50%;flex:none;width:8px;height:8px;display:inline-block;box-shadow:0 0 0 4px #2caf7d1f}.ledger-shell.collapsed .ledger-brand>div:nth-child(2),.ledger-shell.collapsed .ledger-sidebar nav section>p,.ledger-shell.collapsed .ledger-sidebar nav button span,.ledger-shell.collapsed .ledger-sidebar footer{pointer-events:none;opacity:0}.ledger-shell.collapsed .ledger-brand{padding-inline:20px}.ledger-shell.collapsed .ledger-sidebar nav{padding-inline:12px}.ledger-shell.collapsed .ledger-sidebar nav button{justify-content:center;padding:0}.ledger-shell.collapsed .collapse-control{transform:rotate(180deg)}.ledger-workspace{min-width:0}.ledger-topbar{z-index:30;border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fffffff5;justify-content:space-between;align-items:center;gap:20px;min-height:72px;padding:0 30px;display:flex;position:sticky;top:0}.topbar-title{align-items:center;gap:13px;min-width:0;display:flex}.topbar-title>div{flex-direction:column;gap:3px;min-width:0;display:flex}.topbar-title span{color:#8a98a2;letter-spacing:.09em;text-overflow:ellipsis;white-space:nowrap;font-size:9px;overflow:hidden}.topbar-title b{color:var(--ink);font-size:15px}.mobile-menu{border:1px solid var(--line);width:36px;height:36px;color:var(--ink);cursor:pointer;background:#fff;border-radius:6px;display:none}.account-area{align-items:center;gap:10px;display:flex}.real-data-badge{color:#3f7561;background:#f3fbf8;border:1px solid #d5e9e1;border-radius:99px;align-items:center;gap:8px;margin-right:8px;padding:6px 11px;font-size:10px;font-weight:700;display:flex}.account-copy{flex-direction:column;align-items:flex-end;gap:2px;display:flex}.account-copy strong{color:#324858;font-size:11px}.account-copy small{color:#8a98a2;font-size:9px}.account-avatar{color:#3d5668;background:#edf1f4;border-radius:50%;place-items:center;width:34px;height:34px;font-size:12px;font-weight:800;display:grid}.account-area>button{color:#71818d;cursor:pointer;background:0 0;border:0;padding:8px 3px;font-size:10px}.account-area>button:hover{color:var(--gold-dark)}.ledger-content{width:min(1540px,100%);margin:0 auto;padding:30px}.mobile-overlay{display:none}.page-stack{flex-direction:column;gap:20px;min-width:0;display:flex}.page-header{justify-content:space-between;align-items:flex-end;gap:24px;min-height:82px;display:flex}.page-header>div:first-child{min-width:0}.page-header span{color:var(--gold-dark);letter-spacing:.14em;font-size:9px;font-weight:800}.page-header h1{color:#112838;letter-spacing:-.04em;margin:6px 0 0;font-family:STSong,Songti SC,serif;font-size:clamp(25px,2.4vw,35px);font-weight:700}.page-header p{max-width:760px;color:var(--muted);margin:7px 0 0;font-size:12px;line-height:1.7}.page-actions{flex-wrap:wrap;flex:none;align-items:center;gap:8px;display:flex}.button{cursor:pointer;border-radius:6px;justify-content:center;align-items:center;min-height:38px;padding:0 15px;font-size:11px;font-weight:700;transition:transform .1s,box-shadow .1s,background .1s;display:inline-flex}.button:hover:not(:disabled){transform:translateY(-1px)}.button:disabled{cursor:not-allowed;opacity:.5}.button.primary{color:#fff;background:linear-gradient(145deg,#d99c34,#bd7615);border:1px solid #bc7615;box-shadow:0 7px 16px #b36c0c26}.button.secondary{color:#526674;background:#fff;border:1px solid #d8e0e5}.button.secondary:hover:not(:disabled){border-color:#c4ced5;box-shadow:0 5px 14px #0a1d2a12}.panel{border:1px solid var(--line);background:var(--surface);border-radius:10px;min-width:0;overflow:hidden;box-shadow:0 4px 18px #081b2909}.panel-header{border-bottom:1px solid var(--line-soft);justify-content:space-between;align-items:center;gap:18px;min-height:76px;padding:15px 19px;display:flex}.panel-header h2{color:#1a3344;margin:0;font-size:14px}.panel-header p{color:#8a97a0;margin:5px 0 0;font-size:10px}.text-button{color:var(--gold-dark);cursor:pointer;background:0 0;border:0;padding:8px 2px;font-size:10px;font-weight:700}.source-banner{background:linear-gradient(90deg,#f1faf7,#fbfefd);border:1px solid #d5e8e1;border-radius:8px;align-items:center;gap:13px;padding:13px 16px;display:flex}.source-banner>div{flex-direction:column;gap:3px;display:flex}.source-banner b{color:#376c58;font-size:11px}.source-banner small{color:#7a968b;font-size:9px}.metric-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;display:grid}.metric-grid article{border:1px solid var(--line);background:#fff;border-radius:9px;min-height:124px;padding:22px;position:relative;overflow:hidden}.metric-grid article:after{content:"";background:#cf92310e;border-radius:50%;width:100px;height:100px;position:absolute;bottom:-35px;right:-22px}.metric-grid article>span{color:#778791;font-size:10px;display:block}.metric-grid article>b{z-index:1;color:#112b3d;letter-spacing:-.03em;text-overflow:ellipsis;white-space:nowrap;margin-top:12px;font-family:DIN Alternate,Arial Narrow,sans-serif;font-size:clamp(22px,2.2vw,31px);display:block;position:relative;overflow:hidden}.metric-grid article>small{z-index:1;color:#87959e;margin-top:8px;font-size:9px;display:block;position:relative}.metric-grid article.danger{background:snow;border-color:#efcdca}.metric-grid article.danger>b,.negative{color:var(--red)!important}.content-grid{grid-template-columns:minmax(0,1.65fr) minmax(280px,.65fr);gap:16px;min-width:0;display:grid}.quick-panel{align-self:stretch}.quick-panel>button{border:0;border-bottom:1px solid var(--line-soft);color:#395363;cursor:pointer;text-align:left;background:#fff;justify-content:space-between;align-items:center;width:calc(100% - 36px);min-height:46px;margin:0 18px;font-size:11px;display:flex}.quick-panel>button:hover{color:var(--gold-dark)}.quick-panel>button:after{color:#a2adb4;content:"›";font-size:18px}.honest-note{color:#806a43;background:#fff9ef;border-left:3px solid #d29a3f;margin:18px;padding:11px 13px;font-size:10px;line-height:1.7}.table-scroll{width:100%;overflow-x:auto}table{border-collapse:collapse;color:#415462;width:100%;font-size:11px}thead{background:#f8f9fa}th{color:#7d8a93;letter-spacing:.03em;text-align:left;white-space:nowrap;font-size:9px;font-weight:700}th,td{border-bottom:1px solid var(--line-soft);vertical-align:middle;min-width:90px;padding:13px 15px}td:first-child,th:first-child{padding-left:19px}td:last-child,th:last-child{padding-right:19px}tbody tr:last-child td{border-bottom:0}tbody tr:hover{background:#fbfcfc}td b{color:#253f50;font-size:11px;display:block}td small{color:#8a98a1;margin-top:4px;font-size:9px;display:block}.mono{font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:10px}.detail-cell{color:#6c7b86;text-overflow:ellipsis;white-space:nowrap;max-width:360px;font-family:SFMono-Regular,Consolas,monospace;font-size:9px;overflow:hidden}.muted-row{opacity:.66;background:#fafafa}.row-actions{white-space:nowrap;flex-wrap:wrap;gap:6px;display:flex}.row-actions button{color:#4b6575;cursor:pointer;background:#fff;border:1px solid #dbe2e6;border-radius:5px;padding:5px 8px;font-size:9px}.row-actions button:hover{color:#1f4459;border-color:#bdc9d0}.row-actions .danger-link{color:var(--red);background:snow;border-color:#f0d4d2}.status-pill{color:#71808a;white-space:nowrap;background:#f5f7f8;border:1px solid #e1e6e9;border-radius:99px;align-items:center;min-height:23px;padding:0 9px;font-size:9px;font-weight:700;display:inline-flex}.status-pill.success{background:var(--green-soft);color:#187b58;border-color:#cceadd}.status-pill.warning{background:var(--gold-soft);color:#9a6716;border-color:#f2dfb9}.status-pill.danger{background:var(--red-soft);color:#b83c3c;border-color:#f0d0cd}.status-pill.info{background:var(--blue-soft);color:#326f9c;border-color:#cfe2f0}.search-toolbar{border-bottom:1px solid var(--line-soft);align-items:center;gap:9px;min-height:66px;padding:13px 18px;display:flex}.search-toolbar>input{color:#304b5c;background:#fff;border:1px solid #d8e0e5;border-radius:6px;outline:none;width:min(440px,100%);height:38px;padding:0 12px;font-size:11px}.search-toolbar>input:focus{border-color:#c99037}.search-toolbar>.button{min-height:38px}.search-toolbar>:last-child:not(.toggle-label){margin-left:auto}.toggle-label{color:#687985;cursor:pointer;white-space:nowrap;align-items:center;gap:7px;margin-left:4px;font-size:10px;display:inline-flex}.toggle-label input{width:14px;height:14px;accent-color:var(--gold)}.pager{border-top:1px solid var(--line-soft);justify-content:space-between;align-items:center;gap:14px;min-height:58px;padding:10px 18px;display:flex}.pager>span{color:#87949d;font-size:10px}.pager>div{gap:7px;display:flex}.pager button{color:#5c6f7c;cursor:pointer;background:#fff;border:1px solid #dbe2e6;border-radius:5px;min-height:31px;padding:0 11px;font-size:9px}.pager button:disabled{cursor:not-allowed;opacity:.4}.empty-state,.loading-block,.error-block{justify-content:center;align-items:center;min-height:250px;padding:32px;display:flex}.empty-state{color:#7c8c96;text-align:center;flex-direction:column}.empty-state>div{color:#b1bdc4;border:1px dashed #cbd4d9;border-radius:50%;place-items:center;width:46px;height:46px;font-size:22px;display:grid}.empty-state h3{color:#3c5565;margin:14px 0 0;font-size:13px}.empty-state p{color:#8b98a1;max-width:520px;margin:7px 0 16px;font-size:10px;line-height:1.7}.loading-block{color:#7e8d96;gap:11px;font-size:11px}.loading-block i{border:2px solid #e2e6e8;border-top-color:var(--gold);border-radius:50%;width:18px;height:18px;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.error-block{color:var(--red);text-align:center;flex-direction:column;gap:7px}.error-block b{font-size:13px}.error-block span{color:#8f6868;font-size:10px}.error-block button{color:var(--red);cursor:pointer;background:#fff;border:1px solid #edc9c6;border-radius:5px;margin-top:8px;padding:7px 12px;font-size:9px}.project-selector{border:1px solid var(--line);background:#fff;border-radius:9px;justify-content:space-between;align-items:center;gap:18px;padding:15px 18px;display:flex}.project-selector label{align-items:center;gap:12px;min-width:min(520px,60%);display:flex}.project-selector label>span{color:#6f7f89;white-space:nowrap;font-size:10px}.project-selector select{color:#314a5a;background:#fff;border:1px solid #d8e0e5;border-radius:6px;outline:none;width:100%;height:39px;padding:0 11px;font-size:11px}.project-selector>div{justify-content:flex-end;align-items:center;gap:10px;display:flex}.project-selector>div small{color:#87949d;font-size:9px}.budget-metrics article{min-height:105px;padding:17px 19px}.budget-metrics article>b{font-size:clamp(19px,1.8vw,25px)}.calculation-note{color:#856f4a;background:#fffaf1;border:1px solid #f0dfbf;border-radius:6px;justify-content:space-between;align-items:center;gap:12px;padding:11px 13px;font-size:10px;display:flex}.calculation-note b{color:#a86c13;font-size:14px}.reservation-occupy{color:#a36a15;font-weight:800}.reservation-release{color:#228261;font-weight:800}.purchase-metrics article{min-height:102px;padding:16px 18px}.purchase-metrics article>b{font-size:clamp(21px,2vw,28px)}.purchase-panel{overflow:hidden}.business-tabs{border-bottom:1px solid var(--line-soft);align-items:end;gap:6px;min-height:54px;padding:0 18px;display:flex}.business-tabs button{color:#73838d;cursor:pointer;background:0 0;border:0;border-bottom:2px solid #0000;min-width:106px;height:43px;font-size:11px;font-weight:700}.business-tabs button:hover{color:#2c4b5e}.business-tabs button.active{color:#9b6513;border-bottom-color:#cf9132}.purchase-toolbar{border-bottom:1px solid var(--line-soft);background:#fcfdfd;align-items:center;gap:9px;min-height:66px;padding:13px 18px;display:flex}.purchase-toolbar>input,.purchase-toolbar>select{color:#344f60;background:#fff;border:1px solid #d8e0e5;border-radius:6px;outline:none;height:38px;padding:0 11px;font-size:10px}.purchase-toolbar>input{width:min(420px,45%)}.purchase-toolbar>select{min-width:132px}.purchase-toolbar>input:focus,.purchase-toolbar>select:focus{border-color:#c99139;box-shadow:0 0 0 3px #c9913917}.purchase-toolbar .selection-action{margin-left:auto}.line-editor{background:#fbfcfc;border:1px solid #dde4e8;border-radius:8px;margin-top:18px}.line-editor>header{border-bottom:1px solid #e2e7ea;justify-content:space-between;align-items:center;gap:16px;min-height:58px;padding:10px 13px;display:flex}.line-editor>header>div{flex-direction:column;gap:4px;display:flex}.line-editor>header b{color:#304b5b;font-size:11px}.line-editor>header small{color:#89969e;font-size:9px}.line-editor-row{border-bottom:1px solid #e5e9ec;align-items:end;gap:10px;padding:13px;display:grid}.line-editor-row:last-child{border-bottom:0}.line-editor-row.request-line{grid-template-columns:25px minmax(190px,1.6fr) minmax(110px,.7fr) minmax(120px,.8fr) minmax(120px,.8fr) auto}.line-editor-row.order-line{grid-template-columns:25px minmax(165px,1.35fr) minmax(120px,.75fr) minmax(120px,.75fr) minmax(90px,.55fr) minmax(120px,.8fr)}.line-index{color:#71818b;background:#edf1f3;border-radius:50%;place-items:center;width:24px;height:24px;font-size:9px;font-weight:800;display:grid}.line-material{align-self:center;min-width:0}.line-material b{color:#304b5b;text-overflow:ellipsis;white-space:nowrap;font-size:11px;display:block;overflow:hidden}.line-material small{color:#8b979f;text-overflow:ellipsis;white-space:nowrap;margin-top:5px;font-size:8px;display:block;overflow:hidden}.line-total{flex-direction:column;justify-content:center;align-items:flex-start;gap:4px;min-height:40px;display:flex}.line-total span{color:#7f8d95;font-size:8px}.line-total b{color:#966313;font-size:11px}.remove-line{color:#b84a43;cursor:pointer;background:snow;border:1px solid #efd2cf;border-radius:6px;height:40px;padding:0 10px;font-size:9px}.remove-line:disabled{cursor:not-allowed;opacity:.35}.document-total{background:#fffaf1;border:1px solid #efdfc1;border-radius:7px;justify-content:flex-end;align-items:center;gap:16px;margin-top:13px;padding:12px 15px;display:flex}.document-total span{color:#7f704f;font-size:10px}.document-total b{color:#9d6817;font-size:17px}.document-detail-row,.document-detail-row:hover{background:#f7f9fa}.document-detail-row>td{padding:0!important}.document-detail{background:#fff;border:1px solid #dfe5e8;border-radius:7px;margin:10px 14px 14px;overflow:hidden}.document-detail>header{border-bottom:1px solid var(--line-soft);background:#fbfcfc;justify-content:space-between;align-items:center;gap:16px;min-height:48px;padding:9px 14px;display:flex}.document-detail>header b{color:#3b5565;font-size:10px}.document-detail>header span{color:#819099;font-size:9px}.document-detail table{font-size:10px}.document-detail th,.document-detail td{padding-block:10px}.receiving-metrics{grid-template-columns:repeat(5,minmax(0,1fr))}.receiving-metrics article{min-height:103px;padding:16px 17px}.receiving-metrics article>b{font-size:clamp(19px,1.7vw,25px)}.line-editor-row.receiving-line{grid-template-columns:25px minmax(165px,1.25fr) repeat(3,minmax(105px,.68fr)) minmax(120px,.72fr)}.line-editor-row.return-line{grid-template-columns:25px minmax(190px,1.45fr) minmax(135px,.8fr) minmax(120px,.7fr) minmax(130px,.8fr)}.existing-files{flex-wrap:wrap;gap:7px;margin-top:10px;display:flex}.existing-files a,.attachment-strip a{color:#3d6479;background:#f8fbfc;border:1px solid #d9e3e7;border-radius:5px;padding:6px 9px;font-size:9px;text-decoration:none}.existing-files a:hover,.attachment-strip a:hover{color:#1f536d;border-color:#b8cbd5}.inline-empty{color:#84929b;text-align:center;padding:24px;font-size:10px}.return-rule-note{justify-content:flex-start;margin-top:16px}.return-rule-note span{line-height:1.6}.attachment-strip{border-top:1px solid var(--line-soft);background:#fbfcfc;flex-wrap:wrap;align-items:center;gap:7px;padding:10px 14px;display:flex}.attachment-strip b{color:#526a78;margin-right:4px;font-size:9px}.inventory-definition{color:#776744;background:#fffaf1;border-bottom:1px solid #ead9ba;align-items:center;gap:12px;padding:11px 18px;font-size:10px;line-height:1.65;display:flex}.inventory-definition b{color:#9c6818;flex:none}a.button{text-decoration:none}.import-type-tabs{border:1px solid var(--line);background:#fff;border-radius:9px;overflow:hidden;box-shadow:0 4px 18px #081b2909}.import-type-tabs button{min-width:150px}.import-upload-form{grid-template-columns:minmax(220px,.7fr) minmax(300px,1.3fr) auto;align-items:end;gap:14px;padding:20px;display:grid}.import-upload-form>label{flex-direction:column;gap:7px;min-width:0;display:flex}.import-upload-form label>span,.import-decision-controls label>span{color:#687a86;font-size:9px;font-weight:700}.import-upload-form select,.import-upload-form input[type=file],.import-decision-controls select,.compact-select{color:#344f60;background:#fff;border:1px solid #d8e0e5;border-radius:6px;outline:none;min-height:40px;padding:0 11px;font-size:10px}.import-upload-form input[type=file]{padding:8px 10px}.file-picker small{color:#8a979f;text-overflow:ellipsis;white-space:nowrap;font-size:9px;overflow:hidden}.import-rule-note{color:#806a43;background:#fff9ef;border-left:3px solid #d29a3f;align-items:flex-start;gap:12px;margin:0 20px 20px;padding:12px 14px;font-size:10px;line-height:1.7;display:flex}.import-rule-note b{color:#9b6818;flex:none}.import-detail-head{border:1px solid var(--line);background:#fff;border-radius:9px;justify-content:space-between;align-items:flex-end;gap:20px;padding:17px 19px;display:flex}.import-detail-head h2{color:#1a3445;margin:4px 0 0;font-size:17px}.import-detail-head p{color:#84919a;margin:6px 0 0;font-size:10px}.import-detail-head .text-button{padding:0}.import-metrics article{min-height:102px;padding:17px 19px}.import-metrics article>b{font-size:clamp(20px,1.8vw,25px)}.import-warning-list{color:#866f48;background:#fffaf1;border:1px solid #f0d7aa;border-radius:7px;flex-direction:column;gap:6px;padding:13px 16px;font-size:10px;display:flex}.import-warning-list b{color:#a46b13}.import-warning-list span:before{color:#c98a29;content:"!";margin-right:7px;font-weight:800}.import-decision-controls{align-items:center;gap:15px;min-height:74px;padding:15px 19px;display:flex}.import-decision-controls>label:not(.toggle-label){flex-direction:column;gap:6px;min-width:min(420px,45%);display:flex}.import-decision-controls .toggle-label{margin-left:0}.import-decision-controls>.button:last-child{margin-left:auto}.decision-copy{flex-direction:column;flex:1;gap:5px;min-width:0;display:flex}.decision-copy b{color:#314d5e;font-size:11px}.decision-copy span{color:#829099;font-size:9px;line-height:1.6}.import-document-links{border-top:1px solid var(--line-soft);background:#fbfcfc;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;padding:14px 19px 18px;display:grid}.import-document-links article{background:#fff;border:1px solid #e0e6e9;border-radius:7px;min-width:0;padding:11px 12px}.import-document-links span,.import-document-links small{color:#84919a;text-overflow:ellipsis;white-space:nowrap;font-size:8px;display:block;overflow:hidden}.import-document-links b{color:#3c5666;text-overflow:ellipsis;white-space:nowrap;margin:5px 0;font-size:11px;display:block;overflow:hidden}.compact-select{min-width:130px}.validation-message{color:#b04a43;white-space:normal;max-width:230px;line-height:1.5}.quote-preview-list{background:#f7f9fa;flex-direction:column;gap:14px;padding:16px;display:flex}.quote-preview-card{background:#fff;border:1px solid #dce3e7;border-radius:8px;overflow:hidden}.quote-preview-card>header{border-bottom:1px solid var(--line-soft);background:#fbfcfc;justify-content:space-between;align-items:center;gap:18px;min-height:82px;padding:14px 17px;display:flex}.quote-preview-card>header>div{min-width:0}.quote-preview-card>header span{color:#8a969e;font-size:8px;display:block}.quote-preview-card>header b{color:#294657;margin-top:6px;font-size:12px;display:block}.quote-preview-card>header small{color:#839099;margin-top:5px;font-size:9px;display:block}.award-summary{text-align:right;background:#f0faf6;border-left:3px solid #34a177;flex:none;padding:10px 13px}.award-summary span{color:#4f8a72!important}.award-summary b{color:#207a59!important}.quote-preview-card th,.quote-preview-card td{padding-block:10px}.roadmap-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;display:grid}.roadmap-card{padding:20px}.roadmap-card>header{justify-content:space-between;align-items:center;gap:12px;display:flex}.roadmap-card h2{color:#263f50;margin:0;font-size:13px}.roadmap-card p{color:#75858f;min-height:54px;margin:13px 0 0;font-size:10px;line-height:1.75}.roadmap-card small{border-top:1px solid var(--line-soft);color:#9a7a44;margin-top:13px;padding-top:11px;font-size:9px;line-height:1.6;display:block}.architecture-explain{padding:22px}.architecture-explain h2{color:#263f50;margin:0;font-size:14px}.architecture-explain p{color:#71828d;margin:9px 0 0;font-size:11px;line-height:1.8}.dialog-backdrop{z-index:150;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#05121da3;place-items:center;padding:24px;display:grid;position:fixed;inset:0;overflow-y:auto}.dialog-card{background:#fff;border:1px solid #dce3e7;border-radius:11px;width:min(620px,100%);max-height:calc(100vh - 48px);overflow-y:auto;box-shadow:0 28px 90px #03101a57}.dialog-card.wide{width:min(880px,100%)}.dialog-card>header{z-index:2;border-bottom:1px solid var(--line-soft);background:#fffffffa;justify-content:space-between;align-items:center;gap:18px;min-height:76px;padding:17px 22px;display:flex;position:sticky;top:0}.dialog-card>header h2{color:#1e394b;margin:0;font-size:17px}.dialog-card>header p{color:#84929b;margin:5px 0 0;font-size:10px;line-height:1.5}.dialog-card>header>button{color:#788892;cursor:pointer;background:#fff;border:1px solid #e0e5e8;border-radius:50%;flex:none;width:32px;height:32px;font-size:20px;line-height:1}.data-form{padding:22px}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:15px;display:grid}.form-grid.one-column{grid-template-columns:1fr}.form-grid .span-2{grid-column:span 2}.data-form label{flex-direction:column;gap:7px;min-width:0;display:flex}.data-form label>span{color:#516571;font-size:10px;font-weight:700}.data-form input,.data-form select,.data-form textarea{color:#2c4657;background:#fff;border:1px solid #d8e0e5;border-radius:6px;outline:none;width:100%;font-size:11px}.data-form input,.data-form select{height:40px;padding:0 11px}.data-form textarea{resize:vertical;min-height:88px;padding:10px 11px;line-height:1.6}.data-form input:focus,.data-form select:focus,.data-form textarea:focus{border-color:#cb9134;box-shadow:0 0 0 3px #cb91341a}.data-form input:disabled,.data-form select:disabled{color:#8b989f;background:#f4f6f7}.form-error{background:var(--red-soft);color:#b43c3c;border:1px solid #f1d1ce;border-radius:6px;margin-top:14px;padding:10px 12px;font-size:10px;line-height:1.55}.form-actions{border-top:1px solid var(--line-soft);justify-content:flex-end;gap:8px;margin-top:22px;padding-top:17px;display:flex}.app-toast{z-index:220;color:#2b7659;background:#f6fcf9;border:1px solid #cfdfd8;border-radius:7px;min-width:240px;max-width:min(420px,100vw - 48px);padding:12px 15px;font-size:11px;font-weight:700;animation:.18s ease-out toast-in;position:fixed;bottom:24px;right:24px;box-shadow:0 16px 42px #0616212e}.app-toast.error{color:var(--red);background:#fff7f6;border-color:#efcfcc}.app-toast.info{color:var(--blue);background:#f5faff;border-color:#cbdfed}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}}@media (width<=1180px){.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.content-grid{grid-template-columns:1fr}.roadmap-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.line-editor-row.request-line,.line-editor-row.order-line,.line-editor-row.receiving-line,.line-editor-row.return-line{grid-template-columns:25px repeat(2,minmax(0,1fr))}.receiving-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}.line-material{grid-column:span 2}.real-data-badge{display:none}.import-upload-form{grid-template-columns:repeat(2,minmax(0,1fr))}.import-upload-form>.button{grid-column:span 2}}@media (width<=920px){.ledger-shell,.ledger-shell.collapsed{display:block}.ledger-sidebar{z-index:100;width:min(280px,100vw - 55px);transition:transform .18s;position:fixed;top:0;left:0;transform:translate(-105%);box-shadow:14px 0 45px #010a114d}.ledger-sidebar.mobile-open{transform:translate(0)}.ledger-shell.collapsed .ledger-brand>div:nth-child(2),.ledger-shell.collapsed .ledger-sidebar nav section>p,.ledger-shell.collapsed .ledger-sidebar nav button span,.ledger-shell.collapsed .ledger-sidebar footer{pointer-events:auto;opacity:1}.ledger-shell.collapsed .ledger-brand{padding-inline:23px}.ledger-shell.collapsed .ledger-sidebar nav{padding-inline:12px}.ledger-shell.collapsed .ledger-sidebar nav button{justify-content:flex-start;padding:0 12px}.collapse-control{display:none}.mobile-menu{display:block}.mobile-overlay{z-index:90;background:#030e178c;border:0;display:block;position:fixed;inset:0}.ledger-content{padding:24px}.account-copy{display:none}}@media (width<=760px){.selfhost-login{background:linear-gradient(#071523 0 34%,#f2f4f6 34% 100%);grid-template-columns:1fr;padding:30px 18px}.login-brand{justify-self:start}.login-brand h1{font-size:28px}.login-card{padding:28px 24px}.ledger-topbar{min-height:62px;padding:0 16px}.topbar-title span,.account-avatar{display:none}.account-area{gap:5px}.account-area>button{font-size:9px}.ledger-content{padding:18px 14px 30px}.page-stack{gap:14px}.page-header{flex-direction:column;align-items:stretch;gap:14px;min-height:0}.page-actions{align-self:flex-start}.metric-grid,.roadmap-grid{grid-template-columns:1fr}.metric-grid article{min-height:106px}.search-toolbar{flex-wrap:wrap;align-items:stretch}.search-toolbar>input{width:100%}.toggle-label{width:100%;margin:3px 0 0}.purchase-toolbar{flex-wrap:wrap;align-items:stretch}.purchase-toolbar>input,.purchase-toolbar>select{width:100%}.purchase-toolbar .selection-action{margin-left:0}.business-tabs button{flex:1}.line-editor>header{flex-direction:column;align-items:stretch}.line-editor-row.request-line,.line-editor-row.order-line,.line-editor-row.receiving-line,.line-editor-row.return-line{grid-template-columns:24px 1fr}.line-editor-row label,.line-editor-row .line-material,.line-editor-row .line-total,.line-editor-row .remove-line{grid-column:2}.document-total{flex-direction:column;align-items:flex-end}.document-detail>header{flex-direction:column;align-items:flex-start}.import-upload-form{grid-template-columns:1fr}.import-upload-form>.button{grid-column:span 1}.import-detail-head,.import-decision-controls,.quote-preview-card>header{flex-direction:column;align-items:stretch}.import-decision-controls>label:not(.toggle-label){min-width:0}.import-decision-controls>.button:last-child{margin-left:0}.import-document-links{grid-template-columns:1fr}.award-summary{text-align:left}.project-selector{flex-direction:column;align-items:stretch}.project-selector label{flex-direction:column;align-items:stretch;min-width:0}.project-selector>div{flex-direction:column;align-items:flex-start}.form-grid{grid-template-columns:1fr}.form-grid .span-2{grid-column:span 1}.dialog-backdrop{align-items:end;padding:0}.dialog-card,.dialog-card.wide{border-radius:14px 14px 0 0;width:100%;max-height:92vh}.data-form{padding:18px}.pager{flex-direction:column;align-items:flex-start}.app-toast{max-width:calc(100vw - 28px);bottom:14px;right:14px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
