:root { --ink:#172626; --muted:#627170; --paper:#f6f5f0; --white:#fff; --mint:#d9f36a; --green:#1f5b4b; --line:#dde2dd; --danger:#a63832; }
* { box-sizing:border-box; }
body { margin:0; color:var(--ink); background:var(--paper); font:15px/1.5 Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; }
.topbar { min-height:72px; padding:10px max(24px,5vw); display:flex; align-items:center; justify-content:space-between; border-bottom:1px solid var(--line); background:rgba(246,245,240,.92); }
.brand { text-decoration:none; color:var(--ink); font-weight:800; font-size:22px; letter-spacing:-.8px; }.brand span { color:var(--green); }
.local-pill { font-size:12px; border:1px solid #cfd7d1; border-radius:999px; padding:6px 11px; background:white; }.local-pill i,.panel-title small i { display:inline-block; width:7px; height:7px; background:#37a16b; border-radius:50%; margin-right:6px; }
main { min-height:calc(100vh - 126px); }
.hero { max-width:820px; padding:80px 24px 54px; text-align:center; margin:auto; }
.eyebrow { color:var(--green); font-size:12px; font-weight:800; text-transform:uppercase; letter-spacing:1.5px; }
h1 { font-size:clamp(42px,7vw,76px); line-height:1.02; letter-spacing:-4px; margin:16px 0 22px; } h1 em { color:var(--green); font-style:normal; }
.lead { max-width:690px; margin:0 auto 36px; font-size:18px; color:var(--muted); }
.upload-card { max-width:680px; margin:auto; padding:10px; background:white; border-radius:20px; box-shadow:0 18px 60px rgba(31,53,47,.10); }
.dropzone { min-height:220px; border:2px dashed #cbd3cd; border-radius:14px; display:flex; flex-direction:column; align-items:center; justify-content:center; cursor:pointer; transition:.2s; }
.dropzone:hover,.dropzone.dragging { border-color:var(--green); background:#f8faef; }.dropzone.selected { min-height:135px; }
.dropzone strong { font-size:18px; }.dropzone span { color:var(--muted); }.dropzone small { margin-top:12px; color:#92a09b; }.upload-icon { display:grid; place-items:center; width:44px; height:44px; border-radius:12px; background:var(--mint); color:var(--ink)!important; font-size:25px; margin-bottom:12px; }
.file-row { padding:14px 8px 4px 14px; align-items:center; justify-content:space-between; gap:12px; }.file-row:not([hidden]) { display:flex; }.pdf-badge { background:#fde7e4; color:#a63832; padding:5px 7px; border-radius:6px; font-size:11px; font-weight:800; }
button { border:0; font:inherit; font-weight:750; cursor:pointer; border-radius:10px; padding:12px 17px; }.primary { color:#13211d; background:var(--mint); }.primary:hover { background:#cce959; }.secondary { background:#eef1ed; color:var(--ink); }
.privacy { display:flex; text-align:left; gap:12px; justify-content:center; margin-top:26px; color:var(--muted); font-size:13px; }.privacy>span,.check>span { display:grid; place-items:center; width:28px; height:28px; flex:0 0 auto; border-radius:50%; background:#dcece4; color:var(--green); font-weight:900; }
.steps { max-width:1050px; margin:0 auto 80px; display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line); border:1px solid var(--line); border-radius:16px; overflow:hidden; }.steps article { padding:30px; background:#fafaf7; }.steps b { color:var(--green); font-size:12px; }.steps h3 { margin:14px 0 5px; }.steps p { color:var(--muted); margin:0; }
.alert { max-width:680px; margin:0 auto 18px; border:1px solid #e8b8b3; background:#fff2f0; color:var(--danger); border-radius:12px; padding:13px 16px; text-align:left; }.error-list { max-width:none; margin:0 5vw 18px; }.error-list ul { margin:6px 0 0; }
.ai-bar,.success-banner { margin:0 5vw 16px; padding:12px 16px; border-radius:12px; display:flex; align-items:center; justify-content:space-between; gap:18px; }.ai-bar { color:#443661; background:#f0ebfa; border:1px solid #ded3f1; }.ai-bar span { display:block; font-size:12px; opacity:.75; }.ai-button { color:white; background:#6750a4; white-space:nowrap; }.ai-disabled { border:1px solid #cfc3e5; border-radius:8px; padding:7px 10px; white-space:nowrap; }.success-banner { color:#266047; background:#e9f5ed; border:1px solid #cde5d5; }
.confidence { float:right; padding:1px 5px; border-radius:999px; font-size:9px; letter-spacing:0; }.confidence-high { color:#246344; background:#dff2e6; }.confidence-medium { color:#7c5b13; background:#fff0c5; }.confidence-low { color:#9a3732; background:#fde2df; }.overall-confidence { padding:5px 9px; border-radius:999px; font-size:11px; }.item-number-wrap { align-self:center; display:flex; flex-direction:column; align-items:center; gap:4px; }.item-confidence { padding:1px 3px; border-radius:5px; font-size:8px; font-weight:800; }
.review-head { padding:36px 5vw 24px; display:flex; gap:40px; align-items:start; }.review-head h1 { font-size:38px; letter-spacing:-2px; margin:5px 0; }.review-head p { margin:0; color:var(--muted); }.back { color:var(--muted); text-decoration:none; padding-top:8px; white-space:nowrap; }
.review-grid { margin:0 5vw 40px; height:calc(100vh - 230px); min-height:650px; display:grid; grid-template-columns:minmax(320px,.9fr) minmax(500px,1.1fr); gap:18px; }.preview-panel,.form-panel { min-height:0; border:1px solid var(--line); border-radius:16px; background:white; overflow:hidden; }.preview-panel { display:flex; flex-direction:column; background:#e9ebe8; }.panel-title { height:52px; padding:0 18px; background:white; border-bottom:1px solid var(--line); display:flex; justify-content:space-between; align-items:center; font-weight:750; }.panel-title a { color:var(--green); font-size:12px; }.panel-title small { color:var(--muted); font-weight:600; }.preview-panel iframe { width:100%; flex:1; border:0; }
.form-panel { display:flex; flex-direction:column; }.form-scroll { overflow:auto; padding:8px 25px 30px; }.form-scroll h2 { font-size:14px; margin:24px 0 12px; padding-bottom:8px; border-bottom:1px solid #edf0ed; }.fields { display:grid; gap:12px; }.fields.two { grid-template-columns:1fr 1fr; }.money-grid { grid-template-columns:repeat(4,1fr); }.fields label { font-size:11px; color:var(--muted); font-weight:750; text-transform:uppercase; letter-spacing:.5px; }.fields input { width:100%; margin-top:5px; padding:10px 11px; border:1px solid #ced6d0; border-radius:8px; color:var(--ink); background:#fcfcfa; font:14px/1.2 inherit; }.fields input:focus { outline:3px solid rgba(217,243,106,.5); border-color:#91a43e; }.actions { border-top:1px solid var(--line); padding:13px 17px; display:flex; gap:10px; align-items:center; justify-content:flex-end; }.check { display:flex; align-items:center; gap:8px; margin-right:auto; font-size:11px; }.check>span { width:25px; height:25px; }.check small { display:block; color:var(--muted); }
.section-title { display:flex; align-items:center; justify-content:space-between; margin-top:18px; border-bottom:1px solid #edf0ed; }.section-title h2 { border:0; margin:6px 0; }.add-item { padding:6px 9px; font-size:12px; color:var(--green); background:#edf5ef; }.items { display:grid; gap:9px; margin-top:12px; }.item-row { display:grid; grid-template-columns:25px minmax(140px,2fr) 65px 65px 84px 80px 62px 28px; gap:7px; align-items:end; padding:10px 8px; border:1px solid #e2e7e2; background:#fbfcfa; border-radius:9px; }.item-row label { min-width:0; font-size:9px; color:var(--muted); font-weight:750; text-transform:uppercase; }.item-row input { width:100%; min-width:0; margin-top:4px; padding:8px 7px; border:1px solid #ced6d0; border-radius:6px; }.item-number { align-self:center; display:grid; place-items:center; width:23px; height:23px; border-radius:50%; background:#edf1ec; font-size:11px; font-weight:800; }.remove-item { padding:5px; background:none; color:#9caaa5; font-size:20px; }.remove-item:hover { color:var(--danger); }
footer { border-top:1px solid var(--line); padding:18px 5vw; color:#889490; font-size:12px; text-align:center; }
.account-nav { display:flex; gap:13px; align-items:center; font-size:12px; }.account-nav a,footer a,.privacy a,.auth-card a { color:var(--green); }.account-nav form { margin:0; }.account-nav button { padding:5px 8px; background:#e8ece8; font-size:12px; }.account-nav .nav-highlight { padding:6px 9px; background:var(--mint); border-radius:7px; text-decoration:none; color:var(--ink); }.flash { max-width:680px; margin:16px auto; padding:12px 16px; border-radius:10px; background:#e9f5ed; color:#266047; }.ai-login { color:#55417f; white-space:nowrap; }.button-link { display:inline-block; border-radius:10px; padding:10px 14px; text-decoration:none; }.auth-card,.legal { max-width:680px; margin:55px auto; padding:34px; background:white; border:1px solid var(--line); border-radius:16px; }.auth-card h1,.legal h1 { font-size:38px; letter-spacing:-2px; margin:8px 0 14px; }.auth-card form { display:grid; gap:14px; margin-top:24px; }.auth-card label,.success-dialog label { display:grid; gap:5px; font-weight:700; font-size:12px; }.auth-card input,.success-dialog textarea { padding:11px; border:1px solid #ced6d0; border-radius:8px; font:inherit; }.auth-switch { font-size:13px; }.legal h2 { margin-top:28px; }.success-dialog { width:min(560px,calc(100% - 30px)); border:0; border-radius:18px; padding:30px; box-shadow:0 20px 80px #17262655; }.success-dialog::backdrop { background:#17262688; }.success-dialog h2 { margin:0 30px 5px 0; }.dialog-close { position:absolute; right:14px; top:12px; padding:3px 10px; font-size:22px; background:transparent; }.success-dialog details { margin:20px 0; border:1px solid var(--line); padding:13px; border-radius:10px; }.success-dialog summary { cursor:pointer; font-weight:750; }.success-dialog textarea { min-height:95px; resize:vertical; }.success-dialog form { display:grid; gap:10px; margin-top:14px; }.success-dialog .consent { grid-template-columns:auto 1fr; align-items:start; }.success-dialog small { color:var(--muted); }.feedback-status { color:var(--green); font-size:12px; }.coffee { padding:17px; border-radius:12px; background:#faf5e8; }.coffee p { margin:2px 0 12px; }
.admin-page { max-width:900px; margin:45px auto; padding:0 20px; }.admin-page h1 { font-size:42px; letter-spacing:-2px; }.feedback-list { display:grid; gap:12px; }.feedback-list section { padding:18px; background:white; border:1px solid var(--line); border-radius:12px; }.feedback-list a { color:var(--green); }
@media(max-width:850px){ .steps { margin:0 20px 50px; grid-template-columns:1fr; }.review-head { padding:25px 20px; }.review-grid { margin:0 20px 30px; height:auto; grid-template-columns:1fr; }.preview-panel { height:520px; }.form-panel { min-height:750px; }.money-grid { grid-template-columns:1fr 1fr; }.item-row { grid-template-columns:25px 2fr 70px 70px; }.item-row label:nth-of-type(4),.item-row label:nth-of-type(5) { grid-row:2; }.actions { flex-wrap:wrap; }.check { width:100%; }.hero { padding-top:55px; } }
@media(max-width:520px){ h1 { letter-spacing:-2.5px; }.fields.two,.money-grid { grid-template-columns:1fr; }.review-head { display:block; }.back { display:inline-block; margin-bottom:20px; }.actions button { width:100%; } }
