:root{--background:#f5f7fa;--surface:#fff;--surface-subtle:#f8fafc;--border:#dce2e9;--border-strong:#c5ced8;--text:#17202a;--muted:#687483;--blue:#2463eb;--blue-dark:#174bb8;--blue-soft:#edf4ff;--green:#237a4b;--green-soft:#eaf7ef;--amber:#9a6400;--amber-soft:#fff6df;--red:#ad343e;--red-soft:#fff0f1;--radius:8px;--shadow:0 1px 2px #141f2c0f}*{box-sizing:border-box}html,body{min-height:100%}body{background:var(--background);color:var(--text);margin:0;font-family:Arial,Helvetica,sans-serif;font-size:14px;line-height:1.45}button,input,select{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.48}main{min-height:100vh}.app-header{z-index:20;border-bottom:1px solid var(--border);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#fffffff5;justify-content:space-between;align-items:center;min-height:68px;padding:0 28px;display:flex;position:sticky;top:0}.brand,.header-actions,.brand>div,.progress-strip>div,.recalculate-bar>div{align-items:center;display:flex}.brand{gap:11px}.brand-mark{background:var(--text);color:#fff;border-radius:7px;place-items:center;width:32px;height:32px;font-size:16px;font-weight:700;display:grid}.brand>div,.progress-strip>div,.recalculate-bar>div{flex-direction:column;align-items:flex-start}.brand strong{letter-spacing:-.01em;font-size:15px}.brand span:last-child,.progress-strip span,.recalculate-bar span{color:var(--muted);font-size:11px}.header-actions{gap:16px}.scope-note{color:var(--muted);font-size:12px}.button{border:1px solid #0000;border-radius:6px;min-height:38px;padding:0 16px;font-weight:600;transition:background .14s,border-color .14s,transform .14s}.button:active:not(:disabled){transform:translateY(1px)}.button-primary{border-color:var(--blue);background:var(--blue);color:#fff}.button-primary:hover:not(:disabled){border-color:var(--blue-dark);background:var(--blue-dark)}.button-secondary{border-color:var(--border-strong);color:var(--text);background:#fff}.button-secondary:hover{background:var(--surface-subtle)}.welcome{grid-template-columns:minmax(280px,.85fr) minmax(420px,1.15fr);align-content:center;gap:72px;width:min(1040px,100% - 48px);min-height:calc(100vh - 68px);margin:auto;display:grid}.welcome-copy h1{letter-spacing:-.045em;max-width:620px;margin:12px 0 18px;font-size:clamp(38px,4.7vw,62px);font-weight:650;line-height:1.02}.welcome-copy>p:last-child{max-width:510px;color:var(--muted);margin:0;font-size:16px;line-height:1.65}.eyebrow{color:var(--muted);letter-spacing:.045em;text-transform:uppercase;margin:0 0 5px;font-size:11px;font-weight:700}.dropzone{border:1px solid var(--border-strong);background:var(--surface);min-height:390px;box-shadow:var(--shadow);text-align:center;border-radius:12px;flex-direction:column;justify-content:center;align-items:center;padding:44px;transition:border-color .14s,background .14s,transform .14s;display:flex}.dropzone-active{border-color:var(--blue);background:var(--blue-soft);transform:translateY(-2px)}.upload-symbol{border:1px solid var(--border-strong);background:var(--surface-subtle);width:48px;height:48px;color:var(--blue);border-radius:50%;place-items:center;margin-bottom:22px;font-size:25px;display:grid}.dropzone h2{letter-spacing:-.02em;margin:0 0 7px;font-size:20px}.dropzone p{color:var(--muted);margin:0 0 25px;font-size:12px}.file-strip{border-bottom:1px solid var(--border);background:var(--surface);justify-content:space-between;align-items:center;min-height:62px;padding:8px 28px;display:flex}.file-strip>div{flex-direction:column;gap:3px;min-width:0;display:flex}.file-strip strong{text-overflow:ellipsis;white-space:nowrap;max-width:340px;font-size:12px;overflow:hidden}.file-strip span{color:var(--muted);font-size:11px}.workspace{grid-template-columns:minmax(500px,1.08fr) minmax(480px,.92fr);height:calc(100vh - 131px);display:grid}.drawing-pane,.review-pane{min-width:0}.drawing-pane{border-right:1px solid var(--border);background:#e9edf2;flex-direction:column;padding:20px 22px 22px 28px;display:flex}.pane-heading,.review-header,.section-heading,.section-title,.field-heading,.drawing-stock,.recalculate-bar{justify-content:space-between;align-items:center;display:flex}.pane-heading{min-height:44px;padding-bottom:12px}.pane-heading h2{text-overflow:ellipsis;white-space:nowrap;max-width:600px;margin:0;font-size:13px;overflow:hidden}.text-button{color:var(--blue);background:0 0;border:0;padding:4px;font-size:12px;font-weight:600}.pdf-frame{border:1px solid var(--border-strong);width:100%;min-height:0;box-shadow:var(--shadow);background:#fff;border-radius:5px;flex:1}.review-pane{background:var(--surface);padding:26px 30px 56px;overflow-y:auto}.result-pane{justify-content:center;align-items:flex-start;padding:clamp(40px,8vh,88px) clamp(28px,5vw,72px);display:flex}.result-ticket{width:min(100%,760px)}.result-ticket dl{margin:0}.ticket-row{grid-template-columns:max-content minmax(30px,1fr) minmax(170px,auto);align-items:baseline;gap:12px;min-height:44px;display:grid}.ticket-row dt{color:var(--muted);letter-spacing:.09em;text-transform:uppercase;font-size:11px;font-weight:650}.ticket-row span{border-bottom:1px dotted var(--border-strong);transform:translateY(-3px)}.ticket-row dd{max-width:390px;color:var(--text);letter-spacing:-.015em;text-align:right;margin:0;font-size:clamp(15px,1.25vw,19px);font-weight:650;line-height:1.25}.stock-status{border-top:1px solid var(--border);color:var(--muted);margin:18px 0 0;padding-top:14px;font-size:13px;line-height:1.55}.analysis-loading{text-align:center;flex-direction:column;justify-content:center;align-items:center;height:100%;display:flex}.analysis-loading h2{margin:18px 0 5px;font-size:20px}.analysis-loading p{color:var(--muted);margin:0}.spinner{border:3px solid var(--border);border-top-color:var(--blue);border-radius:50%;width:32px;height:32px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.review-header{border-bottom:1px solid var(--border);padding-bottom:24px}.review-header h1{letter-spacing:-.03em;margin:0;font-size:24px;font-weight:650}.summary-status,.recommendation-state,.status{white-space:nowrap;border-radius:999px;align-items:center;font-size:10px;font-weight:700;display:inline-flex}.summary-status{text-transform:capitalize;padding:6px 9px}.summary-complete{background:var(--green-soft);color:var(--green)}.summary-partial_success{background:var(--amber-soft);color:var(--amber)}.summary-unsupported{background:var(--red-soft);color:var(--red)}.field-section{border-bottom:1px solid var(--border);padding:25px 0 8px}.section-title{margin-bottom:11px}.section-title h2{margin:0;font-size:14px}.section-title>span{color:var(--muted);font-size:11px}.field-row{border-radius:var(--radius);border:1px solid #0000;margin:0 -10px 3px;padding:10px}.field-review{background:var(--amber-soft);border-color:#efd79e}.field-heading{align-items:flex-start;gap:10px;margin-bottom:6px}.field-heading label{color:var(--muted);font-size:11px;font-weight:600}.field-heading p,.field-reason{color:var(--muted);margin:2px 0 0;font-size:10px}.field-reason{color:var(--amber);line-height:1.45}.status{min-height:20px;padding:2px 7px}.status-resolved{background:var(--green-soft);color:var(--green)}.status-needs_review{color:var(--amber);background:#ffedbd}.status-missing,.status-unsupported{background:var(--red-soft);color:var(--red)}.status-corrected{background:var(--blue-soft);color:var(--blue-dark)}.status-not_applicable{color:var(--muted);background:#eef1f5}.field-not-applicable input:disabled{border-color:var(--border);color:var(--muted);background:#f5f7f9}.field-row input,.field-row select,.unit-select{border:1px solid var(--border-strong);width:100%;height:36px;color:var(--text);background:#fff;border-radius:5px;outline:none;padding:0 10px}.field-row input:focus,.field-row select:focus,.unit-select:focus{border-color:var(--blue);box-shadow:0 0 0 2px #2463eb1f}.two-column-fields,.dimension-grid{grid-template-columns:1fr 1fr;gap:4px 12px;display:grid}.unit-select{width:auto;height:30px;color:var(--muted);font-size:11px}.dimension-input{align-items:center;display:flex;position:relative}.dimension-input input{padding-right:38px}.dimension-input span{color:var(--muted);pointer-events:none;font-size:10px;position:absolute;right:10px}.drawing-stock,.recommendation,.blocked-panel{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-subtle);margin-top:20px}.drawing-stock{align-items:flex-start;padding:16px}.drawing-stock strong{font-size:13px}.drawing-stock p:last-child{color:var(--muted);margin:3px 0 0;font-size:10px}.recommendation{background:#f6fcf8;border-color:#b7d8c5;padding:19px}.section-heading{align-items:flex-start;gap:16px}.section-heading h2{letter-spacing:-.015em;margin:0;font-size:16px}.recommendation-order{color:var(--green);margin:5px 0 0;font-size:13px;font-weight:700}.recommendation-state{background:var(--green-soft);color:var(--green);padding:5px 8px}.recommendation-unverified{background:var(--amber-soft);border-color:#efd79e}.recommendation-state-unverified{color:var(--amber);background:#ffedbd}.recommendation-unverified .recommendation-order{color:var(--amber)}.recommendation-grid{grid-template-columns:1fr 1fr;gap:15px 20px;margin:18px 0 0;display:grid}.recommendation-grid div{min-width:0}.recommendation-grid dt{color:var(--muted);margin-bottom:2px;font-size:10px}.recommendation-grid dd{margin:0;font-size:12px;font-weight:600}.blocked-panel{background:var(--amber-soft);border-color:#efd79e;padding:19px}.blocked-panel h2{margin:0 0 5px;font-size:16px}.blocked-panel p{color:#6f5830;margin:0;font-size:11px}.blocked-list{border-top:1px solid #efd79e;padding-top:12px;margin-top:12px!important}.blocked-reasons{color:#6f5830;margin:10px 0 0;padding-left:18px;font-size:11px}.confirm-stock-button{margin-top:14px}.recalculate-bar{z-index:5;border-radius:var(--radius);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#f4f8fff5;border:1px solid #aac4f7;margin:20px -8px 0;padding:12px 14px;position:sticky;bottom:12px;box-shadow:0 8px 24px #1e3f6e1f}.recalculate-bar .button{min-height:34px;font-size:12px}.evidence-drawer{border-top:1px solid var(--border);border-bottom:1px solid var(--border);margin-top:20px}.evidence-drawer summary{color:var(--muted);cursor:pointer;padding:13px 2px;font-size:11px;font-weight:600}.evidence-content{grid-template-columns:1fr 1fr;gap:14px;padding:4px 2px 15px;display:grid}.evidence-content>div{border-left:2px solid var(--border);padding-left:10px}.evidence-content strong,.evidence-content span{font-size:10px;display:block}.evidence-content span,.evidence-content p{color:var(--muted)}.evidence-content p{margin:4px 0 0;font-size:10px}.candidate-evidence{padding:0 2px 15px}.candidate-evidence h3{margin:0 0 8px;font-size:11px}.candidate-group{border-top:1px solid var(--border);padding:8px 0}.candidate-group strong,.candidate-group p{font-size:10px}.candidate-group p{color:var(--muted);margin:4px 0 0;line-height:1.45}.candidate-group b{color:var(--text);font-weight:600}.verification-note{color:var(--muted);margin:18px 0 0;font-size:10px;line-height:1.5}.error-banner{background:var(--red-soft);color:var(--red);border:1px solid #e4b4b8;border-radius:6px;grid-column:1/-1;padding:12px 14px;font-size:12px}.workspace-error{margin:12px 28px 0}.visually-hidden{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}@media (max-width:980px){.welcome{grid-template-columns:1fr;gap:32px;padding:54px 0}.dropzone{min-height:300px}.workspace{grid-template-columns:1fr;height:auto}.drawing-pane{border-right:0;border-bottom:1px solid var(--border);height:66vh}.review-pane{overflow:visible}}@media (max-width:620px){.app-header,.file-strip{padding-left:16px;padding-right:16px}.scope-note{display:none}.welcome{width:min(100% - 28px,520px)}.welcome-copy h1{font-size:38px}.dropzone{min-height:270px;padding:28px 18px}.drawing-pane{height:58vh;padding:16px}.review-pane{padding:22px 16px 48px}.result-pane{padding:38px 18px}.ticket-row{grid-template-columns:max-content minmax(18px,1fr) minmax(130px,auto);gap:8px}.two-column-fields,.dimension-grid,.recommendation-grid,.evidence-content{grid-template-columns:1fr}.recalculate-bar{flex-direction:column;align-items:stretch;gap:10px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
