:root{--paper:#f8f6f0;--white:#fffefa;--ink:#24241f;--muted:#73736b;--line:#e7e3d8;--green:#315a43;--soft:#e9efe8;--gold:#c79853;--red:#9b413a;--shadow:0 8px 26px #342f2010}
*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:15px/1.5 'DM Sans',sans-serif}.topbar{height:66px;padding:0 max(22px,calc((100vw - 1080px)/2));border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;background:#f8f6f0ee}.brand{font-size:15px;letter-spacing:.16em;font-weight:700}.brand span{font-weight:500;color:var(--muted);font-size:10px;letter-spacing:.12em;margin-left:10px}.mode{font-size:12px;color:var(--green);border:1px solid #cbd8ca;padding:5px 10px;border-radius:30px}main{width:min(1080px,calc(100% - 36px));margin:0 auto 80px}.hero{padding:42px 0 25px}.eyebrow{font-size:10px;letter-spacing:.16em;font-weight:700;color:#808076;margin:0 0 8px}.hero h1,h2,h3{margin:0;font-weight:500}.hero h1{font:500 clamp(32px,6vw,48px)/1.13 'Playfair Display',serif;letter-spacing:-.02em}.intro{color:var(--muted);max-width:580px;margin:12px 0 0}.panel{background:var(--white);border:1px solid var(--line);border-radius:15px;padding:22px;box-shadow:var(--shadow)}.upload-panel{margin-bottom:32px}.section-head{display:flex;justify-content:space-between;align-items:center;gap:14px}.section-head h2{font:500 24px/1.2 'Playfair Display',serif}.button{border:0;border-radius:8px;padding:11px 16px;font:600 13px 'DM Sans',sans-serif;cursor:pointer;min-height:42px}.button:disabled{opacity:.48;cursor:not-allowed}.secondary{background:#f1efe8;color:#36362f;border:1px solid var(--line)}.primary{background:var(--green);color:white}.batch-meta{display:flex;justify-content:space-between;align-items:end;margin:18px 0 14px;gap:12px}.batch-meta label{font-size:12px;color:var(--muted);display:flex;align-items:center;gap:10px}input[type=date],input[type=search],input[type=text],input[type=number]{font:14px 'DM Sans',sans-serif;color:var(--ink);background:#fff;border:1px solid var(--line);border-radius:7px;padding:10px 11px;min-height:41px}.quiet{font-size:12px;color:var(--muted)}#batch-picker{border:1px solid var(--line);border-radius:7px;padding:8px;background:white;color:var(--muted);font:11px 'DM Sans',sans-serif;max-width:180px}.dropzone{min-height:132px;border:1px dashed #b7b8aa;border-radius:11px;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:3px;text-align:center;padding:18px;background:#fbfaf6;cursor:pointer}.dropzone .upload-icon{color:var(--green);font-size:24px;line-height:1}.dropzone strong{font-size:14px}.dropzone span:last-of-type{font-size:11px;color:var(--muted)}.dropzone input{position:absolute;width:1px;height:1px;opacity:0}.review-section{margin:35px 0}.review-head{margin-bottom:15px}.count{font-size:12px;color:var(--muted)}.visual-notice{margin:0 0 12px}.photo-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.photo-card{background:var(--white);border:1px solid var(--line);border-radius:13px;padding:12px;display:grid;grid-template-columns:124px minmax(0,1fr);gap:12px;box-shadow:var(--shadow)}.photo-card img.preview{width:124px;height:124px;object-fit:cover;background:#eee;border-radius:8px}.photo-info{min-width:0}.photo-name{font-weight:600;font-size:12px;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;margin:1px 0 6px}.suggestions{display:flex;flex-wrap:wrap;gap:5px;margin:5px 0}.suggestion{font-size:11px;background:var(--soft);border:1px solid #d4ded3;color:#304d39;border-radius:10px;padding:5px 8px;cursor:pointer;max-width:100%;display:flex;align-items:center;gap:6px;text-align:left}.suggestion img{width:32px;height:32px;object-fit:cover;border-radius:5px}.suggestion span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.suggestion small{display:block;font-size:9px;opacity:.8}.close-rank{font-size:10px;color:#8c5b1e;background:#f7efdf;display:inline-block;border-radius:4px;padding:3px 6px}.suggestion:hover,.suggestion.selected{background:var(--green);color:#fff}.selected-product{font-size:11px;margin:6px 0;color:var(--green);font-weight:600;min-height:17px}.card-tools{display:grid;grid-template-columns:1fr 63px;gap:7px;align-items:center}.card-tools input[type=search]{width:100%;min-height:36px;padding:8px;font-size:12px}.card-tools input[type=number]{width:63px;min-height:36px;padding:8px}.search-results{position:relative;z-index:1;background:#fff;border:1px solid var(--line);border-radius:7px;max-height:130px;overflow:auto;margin-top:4px;box-shadow:var(--shadow)}.search-result{display:block;width:100%;padding:8px 9px;text-align:left;border:0;border-bottom:1px solid var(--line);background:white;font:12px 'DM Sans',sans-serif;cursor:pointer}.search-result:hover{background:var(--soft)}.card-actions{display:flex;gap:12px;align-items:center;margin-top:6px;flex-wrap:wrap}.text-button{border:0;background:none;color:var(--green);text-decoration:underline;text-underline-offset:2px;padding:0;font:500 11px 'DM Sans',sans-serif;cursor:pointer}.text-button.warn{color:var(--red)}.checkline{display:flex;align-items:center;gap:4px;font-size:10px;color:var(--muted)}.empty{text-align:center;margin:12px 0 30px;padding:35px 20px;box-shadow:none}.empty h3{font:500 20px 'Playfair Display',serif}.empty p{font-size:13px;color:var(--muted);margin:6px 0}.empty-mark{font-size:24px;color:var(--gold);margin-bottom:7px}.hidden{display:none}.notice{font-size:12px;color:var(--muted);margin:8px 0}.visual-notice{background:#f5f2e9;padding:10px 12px;border-radius:7px}.catalog-panel{margin:40px 0}.subcopy{font-size:12px;color:var(--muted);max-width:650px}.search-line{display:flex;gap:8px;max-width:620px}.search-line input{flex:1}.reference-results{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:12px}.reference-item{display:flex;justify-content:space-between;align-items:center;gap:10px;border:1px solid var(--line);border-radius:8px;padding:9px 11px;font-size:12px}.reference-item small{display:block;color:var(--muted)}.reference-item .button{padding:8px 10px;min-height:34px;font-size:11px}.summary{margin:30px 0}.summary-list{margin:14px 0 18px}.summary-row{display:flex;justify-content:space-between;gap:12px;padding:8px 0;border-bottom:1px solid var(--line);font-size:13px}.summary-row small{color:var(--muted)}footer{text-align:center;color:var(--muted);font-size:11px;padding:25px}.toast{position:fixed;bottom:16px;left:50%;transform:translateX(-50%);padding:10px 15px;background:#24241f;color:white;border-radius:8px;font-size:12px;opacity:0;pointer-events:none;transition:opacity .2s}.toast.show{opacity:1}
@media(max-width:720px){main{width:calc(100% - 24px)}.topbar{height:58px;padding:0 12px}.hero{padding:30px 2px 20px}.panel{padding:16px}.section-head h2{font-size:22px}.photo-grid{grid-template-columns:1fr}.photo-card{grid-template-columns:108px minmax(0,1fr);gap:10px;padding:10px}.photo-card img.preview{width:108px;height:108px}.card-actions{gap:9px}.reference-results{grid-template-columns:1fr}.dropzone{min-height:120px}.upload-panel .section-head{align-items:flex-start}.upload-panel .section-head .button{padding:9px 10px;font-size:11px;min-height:36px}.batch-meta{align-items:flex-start}.batch-meta label{flex-direction:column;align-items:flex-start;gap:4px}}
@media(max-width:380px){.photo-card{grid-template-columns:88px minmax(0,1fr)}.photo-card img.preview{width:88px;height:100px}.brand span{display:none}.card-tools{grid-template-columns:1fr 54px}.card-tools input[type=number]{width:54px}}
.sale-lines{display:grid;gap:6px;margin:8px 0}.sale-line{display:grid;grid-template-columns:auto 58px 82px auto;align-items:center;gap:6px;padding:7px;background:#f7f6f0;border-radius:7px;font-size:11px}.sale-line label{display:grid;gap:2px;color:var(--muted);font-size:9px}.sale-line input[type=number]{width:100%;min-height:33px;padding:5px;font-size:11px}.line-product{font-weight:600;color:var(--green);overflow-wrap:anywhere;grid-column:1/-1}.sale-line.editing{outline:1px solid #aab9a5}.add-line{margin:2px 0 8px}.card-tools{grid-template-columns:1fr}.card-tools input[type=search]{width:100%}
@media(max-width:450px){.sale-line{grid-template-columns:auto 46px 68px auto;gap:4px;padding:5px}.sale-line .text-button{font-size:10px}}
.search-result,.browse-product{display:flex;align-items:center;gap:10px;min-height:62px}.search-result:disabled{opacity:.65;cursor:default}.product-thumb,.product-placeholder{display:inline-flex;width:48px;height:48px;flex:0 0 48px;object-fit:cover;border-radius:6px;background:#f0eee7}.product-placeholder{align-items:center;justify-content:center;padding:3px;color:var(--muted);font-size:9px;text-align:center;border:1px dashed #c9c5b9}.search-result span,.browse-product span{min-width:0;overflow-wrap:anywhere}.search-result small,.browse-product small{display:block;color:var(--muted);font-size:10px}.product-browser{margin:8px 0;padding:9px;border:1px solid var(--line);border-radius:9px;background:#fbfaf6}.browser-heading{font-size:11px;font-weight:600;margin-bottom:6px}.product-browser>input{width:100%;min-height:36px;margin-bottom:7px;font-size:12px}.browse-grid{display:grid;grid-template-columns:1fr;max-height:300px;overflow:auto;overscroll-behavior:contain}.browse-product{width:100%;padding:5px;text-align:left;border:0;border-bottom:1px solid var(--line);background:transparent;font:11px 'DM Sans',sans-serif;cursor:pointer}.browse-product:hover{background:var(--soft)}.browse-more{display:block;margin:7px auto 0;padding:6px}
.draft-form{display:grid;gap:10px;margin-top:12px;padding:12px;border:1px solid #cbd8ca;border-radius:9px;background:#f7faf6}.draft-form label{display:grid;gap:4px;font-size:12px;font-weight:600}.draft-form label span{font-weight:400;color:var(--muted)}.draft-form input{width:100%}.draft-form .button{justify-self:start}.draft-origin-note{margin:0;color:var(--muted);font-size:11px}

/* Raavi dark workspace theme */
:root{color-scheme:dark;--paper:#111512;--white:#1b211d;--ink:#edf1eb;--muted:#a1aaa0;--line:#343d36;--green:#86b996;--soft:#28372e;--gold:#e3b76f;--red:#e28c82;--shadow:0 10px 28px #00000038}
body{background:var(--paper);color:var(--ink)}
.topbar{background:#151a17ed;border-color:var(--line)}
.mode{color:#a9d4b4;border-color:#45634e}
.eyebrow{color:#a1aaa0}
.panel,.photo-card{background:var(--white);border-color:var(--line)}
.button:focus-visible,.text-button:focus-visible,.suggestion:focus-visible,.browse-product:focus-visible,.search-result:focus-visible,input:focus-visible,select:focus-visible,.dropzone:focus-within{outline:2px solid #93cba3;outline-offset:2px}
.secondary{background:#252d28;color:var(--ink);border-color:#414b43}
.primary{background:#467653;color:#fff}
input[type=date],input[type=search],input[type=text],input[type=number],#batch-picker{background:#151a17;color:var(--ink);border-color:#414b43;color-scheme:dark}
input::placeholder{color:#8d978e;opacity:1}
.dropzone{background:#171d19;border-color:#59685c}
.dropzone .upload-icon{color:#9ac8a5}
.suggestion{background:#29382e;border-color:#405846;color:#d8ebdc}
.suggestion:hover,.suggestion.selected{background:#467653;color:#fff}
.close-rank{color:#f0cb8e;background:#403523}
.selected-product{color:#a9d4b4}
.search-results{background:#1b211d;border-color:var(--line)}
.search-result{background:#1b211d;color:var(--ink);border-color:var(--line)}
.search-result:hover,.browse-product:hover{background:#29382e}
.text-button{color:#a9d4b4}
.text-button.warn{color:#e28c82}
.visual-notice{background:#29271f;color:#e5ddc9}
.reference-item{background:#1b211d;border-color:var(--line)}
.sale-line{background:#252d28}
.line-product{color:#a9d4b4}
.sale-line.editing{outline-color:#7eaa87}
.product-thumb,.product-placeholder{background:#252d28}
.product-placeholder{border-color:#566158}
.product-browser{background:#171d19;border-color:var(--line)}
.browse-product{color:var(--ink);border-color:var(--line)}
.draft-form{background:#1d2821;border-color:#45634e}
.toast{background:#e7eee8;color:#172019;box-shadow:var(--shadow)}
.photo-card img.preview{background:#252d28}
.empty-mark{color:var(--gold)}
::selection{background:#477654;color:#fff}
@media(prefers-reduced-motion:reduce){.toast{transition:none}}
.access-overlay{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;padding:max(20px,env(safe-area-inset-top)) 18px max(20px,env(safe-area-inset-bottom));background:#050806c9;overscroll-behavior:contain}
.access-overlay.hidden{display:none}
.access-dialog{width:min(100%,420px);padding:24px;background:var(--white);color:var(--ink);border:1px solid var(--line);border-radius:16px;box-shadow:0 18px 60px #0009}
.access-dialog h2{font:500 26px/1.2 'Playfair Display',serif}
.access-dialog .subcopy{margin:10px 0 18px}
.access-dialog form{display:grid;gap:8px}
.access-dialog label{font-size:12px;font-weight:600}
.access-dialog input{width:100%;min-height:48px;padding:12px;border:1px solid #414b43;border-radius:8px;background:#151a17;color:var(--ink);font:16px 'DM Sans',sans-serif;color-scheme:dark}
.access-error{min-height:19px;margin:0;color:#f19b90;font-size:12px}
.access-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:4px}
.access-actions .button{min-width:104px;min-height:46px}
.access-dialog button:focus-visible,.access-dialog input:focus-visible{outline:2px solid #93cba3;outline-offset:2px}
