:root{--ink:#0f1722;--navy:#15283d;--navy2:#1d3856;--gold:#c9a45c;--sand:#f6f2ea;--paper:#fbfbfa;--line:#dde3e8;--muted:#687581;--green:#1d7a52;--orange:#a96214;--red:#a13737;--blue:#285f8d;--shadow:0 12px 32px rgba(15,23,34,.08)}*{box-sizing:border-box}body{margin:0;background:#eef1f3;color:var(--ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-size:14px}.topbar{height:72px;background:var(--navy);color:white;display:flex;align-items:center;justify-content:space-between;padding:0 28px;box-shadow:0 2px 12px rgba(0,0,0,.16);position:sticky;top:0;z-index:20}.brand{display:flex;align-items:center;gap:12px}.brand-mark{width:38px;height:38px;border:1px solid rgba(201,164,92,.65);display:grid;place-items:center;color:var(--gold);font-weight:800;font-size:20px;transform:rotate(45deg)}.brand-mark::first-letter{transform:rotate(-45deg)}.brand-title{font-weight:750;letter-spacing:.01em}.brand-sub{font-size:11px;color:#b9c5d0;margin-top:2px}.top-actions{display:flex;align-items:center;gap:8px}.save-state{font-size:11px;color:#b9c5d0;margin-right:6px}.shell{display:grid;grid-template-columns:238px 1fr;min-height:calc(100vh - 72px)}.sidebar{background:#f7f8f8;border-right:1px solid #dfe4e8;padding:22px 14px;display:flex;flex-direction:column;gap:24px}.step{appearance:none;border:0;background:transparent;width:100%;display:grid;grid-template-columns:32px 1fr;text-align:left;padding:11px 10px;border-radius:10px;gap:0 10px;cursor:pointer;color:#4a5966}.step span{grid-row:1/3;width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:#e6eaed;font-weight:700;margin-top:2px}.step b{font-size:13px;color:#2b3741}.step small{font-size:10px;color:#82909b;margin-top:1px}.step.active{background:white;box-shadow:0 4px 16px rgba(15,23,34,.06)}.step.active span{background:var(--navy);color:var(--gold)}.step.active b{color:var(--navy)}.rule-card{margin-top:auto;background:var(--navy);color:white;border-radius:12px;padding:14px;box-shadow:var(--shadow)}.rule-card h4{margin:0 0 11px;color:var(--gold);font-size:12px;text-transform:uppercase;letter-spacing:.08em}.rule-card div{display:flex;justify-content:space-between;padding:6px 0;border-top:1px solid rgba(255,255,255,.09);font-size:11px}.rule-card span{color:#bdc7d0}.rule-card strong{font-weight:700}.main{padding:28px 30px 60px;max-width:1600px;width:100%;margin:0 auto}.panel{display:none}.panel.active{display:block}.page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:22px}.page-head h1{margin:3px 0 5px;font-size:28px;letter-spacing:-.025em}.page-head p{margin:0;color:var(--muted);max-width:760px}.eyebrow{font-size:10px!important;letter-spacing:.16em;color:var(--gold)!important;font-weight:800}.status-pill{background:#e7f4ed;color:var(--green);padding:7px 11px;border-radius:999px;font-weight:700;font-size:11px}.project-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;background:white;border:1px solid var(--line);padding:16px;border-radius:12px;box-shadow:0 5px 20px rgba(15,23,34,.035)}label{display:flex;flex-direction:column;gap:6px;font-size:11px;font-weight:650;color:#46525c}input,select,textarea{font:inherit;color:var(--ink);background:#fff;border:1px solid #ccd5dc;border-radius:8px;padding:10px 11px;outline:none;transition:.15s}input:focus,select:focus,textarea:focus{border-color:#728da5;box-shadow:0 0 0 3px rgba(40,95,141,.08)}textarea{resize:vertical;line-height:1.45}.source-tabs{display:flex;gap:6px;margin:22px 0 10px}.source-tab{border:1px solid var(--line);background:#f6f7f7;padding:9px 15px;border-radius:9px;cursor:pointer;font-weight:700;color:#5a6670}.source-tab.active{background:var(--navy);border-color:var(--navy);color:white}.source-panel{display:none;background:white;border:1px solid var(--line);border-radius:12px;padding:18px;box-shadow:0 5px 20px rgba(15,23,34,.035)}.source-panel.active{display:block}.split{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(280px,.7fr);gap:20px}.block-label{margin-bottom:7px}.help-card{background:var(--sand);border:1px solid #e8dfcf;border-radius:10px;padding:18px;align-self:start}.help-card h3{margin:0 0 7px;font-size:15px}.help-card p,.help-card li{color:#64707a;font-size:12px;line-height:1.55}.help-card ul{padding-left:18px}.warning{color:var(--orange)!important}.note{display:block;color:#7b7063;line-height:1.4;margin:8px 0 14px}.toggle{flex-direction:row;align-items:center;gap:9px;margin:14px 0 0;font-size:12px}.toggle input{display:none}.toggle span{width:32px;height:18px;border-radius:999px;background:#cbd3d9;position:relative}.toggle span:after{content:"";position:absolute;width:14px;height:14px;background:white;border-radius:50%;left:2px;top:2px;transition:.2s;box-shadow:0 1px 3px rgba(0,0,0,.2)}.toggle input:checked+span{background:var(--green)}.toggle input:checked+span:after{left:16px}.dropzone{position:relative;border:1px dashed #aebac4;border-radius:10px;background:#f9fafb;padding:22px;text-align:center;margin-bottom:14px}.dropzone input{position:absolute;inset:0;opacity:0;cursor:pointer}.dropzone strong,.dropzone small{display:block}.dropzone small{color:#8a969f;margin-top:4px}.btn{border:1px solid #cbd4db;background:white;color:#27343e;border-radius:8px;padding:9px 13px;font-weight:700;font-size:12px;cursor:pointer;transition:.15s}.btn:hover{transform:translateY(-1px);box-shadow:0 4px 10px rgba(15,23,34,.07)}.btn.primary{background:var(--navy);border-color:var(--navy);color:white}.btn.primary:hover{background:var(--navy2)}.btn.ghost{background:transparent;border-color:rgba(255,255,255,.18);color:#dbe2e8}.btn.small{padding:7px 10px;font-size:11px}.btn.wide{width:100%;margin-top:8px}.footer-actions{display:flex;justify-content:space-between;margin-top:18px}.toolbar{display:flex;align-items:center;gap:7px;margin-bottom:10px}.grow{flex:1}.muted{color:var(--muted);font-size:11px}.table-wrap{background:white;border:1px solid var(--line);border-radius:12px;overflow:auto;box-shadow:0 5px 20px rgba(15,23,34,.035)}table{width:100%;border-collapse:collapse;min-width:900px}th{background:#f4f6f7;color:#54616d;text-align:left;font-size:10px;text-transform:uppercase;letter-spacing:.055em;padding:10px;border-bottom:1px solid var(--line);position:sticky;top:0}td{padding:8px 10px;border-bottom:1px solid #edf0f2;vertical-align:middle;font-size:12px}td input,td select{padding:7px 8px;width:100%;font-size:11px}.row-status{display:inline-block;border-radius:999px;padding:5px 8px;font-size:9px;font-weight:800;white-space:nowrap}.status-confirmed{background:#e6f3ec;color:var(--green)}.status-review{background:#fff0df;color:var(--orange)}.status-blocked{background:#f8e5e5;color:var(--red)}.icon-btn{border:0;background:transparent;cursor:pointer;color:#88949d;font-size:16px}.grouped-wrap{margin-top:12px;background:white;border:1px solid var(--line);border-radius:12px;padding:14px}.hidden{display:none!important}.config-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.config-card{background:white;border:1px solid var(--line);border-radius:12px;padding:15px;box-shadow:0 5px 20px rgba(15,23,34,.035)}.config-card.review{border-left:4px solid #d08a32}.config-card.confirmed{border-left:4px solid #3c8c68}.config-card .card-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.config-card h3{font-size:14px;margin:0}.config-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}.config-grid .wide2{grid-column:span 2}.source-line{background:#f6f7f7;padding:8px;border-radius:7px;margin-bottom:10px;font-size:11px;color:#5e6b75}.pricing-bottom{display:grid;grid-template-columns:1fr 390px;gap:18px;margin-top:15px}.pricing-notes{background:#f8f5ef;border:1px solid #e8dfcf;border-radius:12px;padding:16px}.pricing-notes h3{margin:0 0 6px;font-size:14px}.pricing-notes p{color:#6c756f;font-size:12px;line-height:1.5;margin:0}.totals-card{background:var(--navy);color:white;border-radius:12px;padding:17px;box-shadow:var(--shadow)}.totals-card>div{display:flex;align-items:center;justify-content:space-between;padding:8px 0;border-top:1px solid rgba(255,255,255,.1)}.totals-card>div:first-child{border-top:0}.totals-card span{color:#c0cad3;font-size:11px}.totals-card b{font-size:14px}.totals-card .net{margin-top:4px}.totals-card .grand{margin-top:4px;padding-top:13px}.totals-card .grand span,.totals-card .grand b{color:var(--gold);font-size:16px}.inline-input{flex-direction:row;align-items:center;color:white}.inline-input input{width:68px;padding:6px;background:#203b57;border-color:#3e566d;color:white;text-align:right}.confidence{font-size:9px;font-weight:800;text-transform:uppercase}.confidence.high{color:var(--green)}.confidence.medium{color:var(--orange)}.confidence.low{color:var(--red)}.output-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.output-card{background:white;border:1px solid var(--line);border-radius:12px;padding:18px;box-shadow:0 5px 20px rgba(15,23,34,.035)}.output-card h3{margin:0 0 8px}.output-card p{color:var(--muted);font-size:12px;line-height:1.5;min-height:54px}.audit-card{margin-top:16px;background:var(--sand);border:1px solid #e7dfd1;border-radius:12px;padding:18px;text-align:center}.audit-card h3{margin:0 0 12px}.audit-flow{display:flex;justify-content:center;align-items:center;gap:9px}.audit-flow span{background:white;border:1px solid #ddd6c9;border-radius:999px;padding:7px 11px;font-size:11px;font-weight:700}.audit-flow i{font-style:normal;color:var(--gold);font-weight:800}.audit-card p{font-size:11px;color:#7a756e;margin-bottom:0}@media(max-width:1050px){.shell{grid-template-columns:1fr}.sidebar{display:none}.project-grid{grid-template-columns:1fr 1fr}.split{grid-template-columns:1fr}.config-cards,.output-grid{grid-template-columns:1fr}.pricing-bottom{grid-template-columns:1fr}.main{padding:20px}}@media print{.topbar,.sidebar,.footer-actions,.toolbar,.page-head .btn{display:none!important}.shell{display:block}.main{padding:0}.panel{display:none!important}.panel.print-target{display:block!important}.table-wrap{box-shadow:none;border:0}body{background:white}.config-card,.output-card{box-shadow:none}}

/* v0.2 upload states */
.dropzone.dragover{border-color:var(--gold);background:#fffaf0;box-shadow:0 0 0 3px rgba(201,164,92,.10)}
.file-meta{font-size:11px;color:#5d6973;margin:-6px 0 10px;padding:8px 10px;background:#f6f8f9;border:1px solid #e2e7eb;border-radius:8px}
.file-preview{margin:0 0 10px;border:1px solid var(--line);border-radius:10px;overflow:hidden;background:#f6f8f9;min-height:120px}
.file-preview img{display:block;width:100%;max-height:330px;object-fit:contain;background:white}
.file-preview iframe{display:block;width:100%;height:330px;border:0;background:white}
.upload-status{margin:8px 0 12px;padding:9px 10px;border-radius:8px;background:#f6f8f9;border:1px solid #e2e7eb;line-height:1.4}
.upload-status.loading{color:var(--blue);background:#eef5fb;border-color:#cfdfed}
.upload-status.success{color:var(--green);background:#edf7f2;border-color:#cfe7da}
.upload-status.error{color:var(--red);background:#fbefef;border-color:#ebcece}
.upload-separator{margin-top:18px}
.btn:disabled{opacity:.45;cursor:not-allowed;transform:none!important;box-shadow:none!important}
