:root{--navy:#102f3d;--navy2:#1f4e78;--teal:#1d766d;--mint:#dff2ed;--cream:#f5f3ee;--paper:#fff;--ink:#183038;--muted:#687c80;--line:#dce5e4;--blue-row:#e8f3f8;--warn:#b6642c;--danger:#aa4039;--shadow:0 12px 35px rgba(16,47,61,.08)}
*{box-sizing:border-box}body{margin:0;min-width:340px;color:var(--ink);background:linear-gradient(180deg,#edf4f2 0,#f8f7f3 280px);font-family:Inter,Arial,"Segoe UI",sans-serif}button,input,textarea{font:inherit}.topbar{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:20px max(28px,calc((100% - 1500px)/2));color:white;background:var(--navy);box-shadow:0 5px 18px rgba(16,47,61,.18)}.brand{display:flex;align-items:center;gap:14px}.brand-mark{display:grid;width:42px;height:42px;place-items:center;color:var(--navy);background:#bfe8dd;border-radius:12px;font-weight:900}.brand h1{margin:0;font-size:21px}.brand p{margin:3px 0 0;color:#bcd1d3;font-size:12px}.period-control{display:flex;align-items:center;gap:10px;color:#c8d8da;font-size:12px;font-weight:700}.period-control input{height:38px;padding:0 10px;color:white;background:#1a4555;border:1px solid #396170;border-radius:8px;color-scheme:dark}.shell{width:min(1500px,calc(100% - 48px));margin:0 auto;padding:22px 0 60px}.tabs{display:flex;gap:6px;margin-bottom:18px;padding:5px;background:rgba(255,255,255,.7);border:1px solid var(--line);border-radius:12px;width:max-content}.tab{padding:10px 18px;color:var(--muted);background:transparent;border:0;border-radius:8px;cursor:pointer;font-weight:800}.tab.is-active{color:white;background:var(--navy);box-shadow:0 5px 12px rgba(16,47,61,.16)}.tab-panel{display:none}.tab-panel.is-active{display:block}.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:16px}.metrics article{display:flex;align-items:end;justify-content:space-between;padding:18px 20px;background:rgba(255,255,255,.85);border:1px solid var(--line);border-radius:13px;box-shadow:0 5px 18px rgba(16,47,61,.04)}.metrics span{color:var(--muted);font-size:12px;font-weight:700}.metrics strong{color:var(--navy);font-size:27px}.metrics .has-alert{border-color:#edc9ad;background:#fff9f2}.metrics .has-alert strong{color:var(--warn)}.grid-main{display:grid;grid-template-columns:minmax(420px,.9fr) minmax(400px,1.1fr);gap:16px}.card{background:rgba(255,255,255,.94);border:1px solid var(--line);border-radius:15px;box-shadow:var(--shadow)}.upload-card,.missing-card{padding:22px}.card-title,.table-toolbar,.result-head{display:flex;align-items:center;justify-content:space-between;gap:16px}.eyebrow{display:block;margin-bottom:4px;color:var(--teal);font-size:10px;font-weight:900;letter-spacing:.12em;text-transform:uppercase}.card h2,.table-toolbar h2,.result-card h2{margin:0;color:var(--navy);font-size:19px}.format-chip{padding:6px 9px;color:var(--teal);background:var(--mint);border-radius:7px;font-size:11px;font-weight:900}.dropzone{display:grid;margin-top:17px;padding:26px 15px;place-items:center;text-align:center;border:1.5px dashed #8fb8b0;border-radius:12px;background:#f4fbf9;cursor:pointer;transition:.15s}.dropzone:hover,.dropzone.is-over{background:#e9f7f3;border-color:var(--teal)}.dropzone input{display:none}.upload-icon{display:grid;width:34px;height:34px;margin-bottom:9px;place-items:center;color:white;background:var(--teal);border-radius:50%;font-size:20px}.dropzone strong{font-size:13px}.dropzone small,.compare-input small{margin-top:5px;color:var(--muted);font-size:11px}.selected-file{min-height:28px;padding:9px 2px 3px;color:var(--muted);font-size:11px}.field{display:grid;gap:6px;margin-top:8px;color:var(--ink);font-size:12px;font-weight:800}.field textarea,.compare-input textarea,.search input{padding:10px 12px;color:var(--ink);background:white;border:1px solid #cfdcda;border-radius:9px;outline:none;resize:vertical}.field textarea:focus,.compare-input textarea:focus,.search input:focus{border-color:var(--teal);box-shadow:0 0 0 3px rgba(29,118,109,.1)}.primary{width:100%;height:42px;margin-top:13px;color:white;background:var(--teal);border:0;border-radius:9px;cursor:pointer;font-weight:900}.primary:hover{background:#155f58}.primary:disabled{cursor:not-allowed;opacity:.45}.missing-list{display:grid;gap:8px;margin-top:16px;max-height:295px;overflow:auto}.missing-item,.all-loaded{display:flex;align-items:center;gap:10px;padding:11px 12px;background:#fff7ef;border:1px solid #f0d3bc;border-radius:10px}.missing-item>span{display:grid;width:24px;height:24px;place-items:center;color:white;background:var(--warn);border-radius:50%;font-weight:900}.missing-item div,.all-loaded div{display:grid}.missing-item small,.all-loaded small{color:var(--muted);margin-top:2px}.all-loaded{background:#edf8f4;border-color:#c9e7dd}.all-loaded>span{color:var(--teal);font-size:23px}.empty-small,.empty-cell{padding:28px;color:var(--muted);text-align:center}.table-card{margin-top:16px;overflow:hidden}.table-toolbar{padding:18px 20px;border-bottom:1px solid var(--line)}.search{display:flex;gap:7px}.search input{width:300px;height:37px}.search button{padding:0 15px;color:white;background:var(--navy);border:0;border-radius:8px;cursor:pointer;font-weight:800}.table-scroll{overflow:auto}table{width:100%;border-collapse:collapse;font-size:12px}th{padding:10px 13px;color:#587076;background:#f0f5f4;text-align:left;font-size:10px;letter-spacing:.04em;text-transform:uppercase;white-space:nowrap}td{padding:11px 13px;border-top:1px solid #e8eeee;vertical-align:top}tbody tr:hover{background:#f8fbfa}td small{display:block;margin-top:3px;color:var(--muted)}.status{display:inline-block;padding:5px 7px;border-radius:99px;font-size:9px;font-weight:900;text-transform:uppercase}.status.active{color:#14675e;background:#daf1ea}.status.archive{color:#718085;background:#edf0f0}.is-archived{opacity:.66}.warning{color:var(--warn)}.download{display:grid;width:28px;height:28px;place-items:center;color:var(--teal);background:var(--mint);border-radius:7px;text-decoration:none;font-size:17px}.barcode{font-family:Consolas,monospace;white-space:nowrap}.product{min-width:250px}.price{min-width:120px;text-align:right}.price strong{display:block;white-space:nowrap}.price small{max-width:150px}.note{min-width:210px;color:#52686c;line-height:1.35}.dash{color:#aab7b8}.muted{color:var(--muted);font-size:11px}.compare-layout{display:grid;grid-template-columns:330px 1fr;gap:16px;align-items:start}.compare-input{position:sticky;top:16px;padding:22px}.compare-input p{color:var(--muted);font-size:12px;line-height:1.5}.compare-input textarea{width:100%;margin-top:8px;font-family:Consolas,monospace;line-height:1.6}.compare-results{display:grid;gap:14px}.empty-compare{display:grid;min-height:450px;place-items:center;align-content:center;text-align:center;color:var(--muted);background:rgba(255,255,255,.7);border:1px dashed #bfd0ce;border-radius:15px}.empty-compare>span{font-size:45px;color:#91aaa8}.empty-compare h2{margin:10px 0 0;color:var(--navy)}.empty-compare p{margin:7px 0}.result-card{overflow:hidden;background:white;border:1px solid var(--line);border-radius:15px;box-shadow:var(--shadow)}.result-head{padding:17px 20px;background:#f4f8f7;border-bottom:1px solid var(--line)}.barcode-label{color:var(--teal);font-family:Consolas,monospace;font-size:11px;font-weight:800}.result-head h2{margin-top:4px;font-size:16px}.result-count{color:var(--muted);font-size:11px;font-weight:800}.comparison-table{overflow:auto}.comparison-row{display:grid;grid-template-columns:minmax(190px,1.2fr) minmax(115px,.65fr) minmax(115px,.65fr) minmax(115px,.65fr) minmax(220px,1.3fr);min-width:880px;border-top:1px solid #edf1f0}.comparison-row:first-child{border-top:0}.comparison-row>span{padding:13px 15px}.comparison-row small{display:block;margin-top:4px;color:var(--muted);line-height:1.35}.comparison-header{color:#587076;background:#eef4f3;font-size:10px;font-weight:900;text-transform:uppercase}.not-found{padding-bottom:15px}.not-found>p{margin:15px 20px;color:var(--muted)}.upload-result{margin-top:10px}.success-box,.error-box{display:grid;gap:3px;padding:10px 12px;border-radius:9px;font-size:11px}.success-box{color:#155f58;background:#e9f7f2}.error-box{color:var(--danger);background:#fbebea}.toast{position:fixed;right:18px;bottom:18px;z-index:50;max-width:420px;padding:12px 15px;color:white;background:var(--teal);border-radius:10px;box-shadow:0 12px 30px rgba(0,0,0,.18);opacity:0;transform:translateY(8px);pointer-events:none;transition:.18s}.toast.is-visible{opacity:1;transform:none}.toast.is-error{background:var(--danger)}
@media(max-width:1000px){.grid-main,.compare-layout{grid-template-columns:1fr}.compare-input{position:static}.metrics{grid-template-columns:repeat(2,1fr)}}
@media(max-width:650px){.topbar{align-items:flex-start;flex-direction:column}.shell{width:calc(100% - 24px)}.metrics{grid-template-columns:1fr 1fr}.table-toolbar{align-items:flex-start;flex-direction:column}.search,.search input{width:100%}.tabs{width:100%}.tab{flex:1;padding:10px 8px;font-size:12px}}
.status.expired{color:#a33b22;background:#fff0e8}
.secondary{width:100%;height:42px;margin-top:9px;color:var(--teal);background:white;border:1px solid var(--teal);border-radius:9px;cursor:pointer;font-weight:900}.secondary:hover{background:#edf8f4}.secondary:disabled{cursor:not-allowed;opacity:.45}
.warning-button{display:block;margin:3px 0 0;padding:0;color:var(--warn);background:transparent;border:0;border-bottom:1px dashed currentColor;cursor:pointer;font-size:10px;text-align:left}.warning-button:hover{color:#8f461d}
.warning-details-row[hidden]{display:none}.warning-details-row td{padding:0 13px 12px;background:#fffaf5}.warning-details{padding:11px 14px;color:#78421f;background:#fff3e7;border:1px solid #efd0b5;border-radius:9px;line-height:1.45}.warning-details strong{font-size:11px}.warning-details ul{margin:6px 0 0;padding-left:19px}.warning-details li+li{margin-top:3px}
.name-input{width:100%;height:44px;margin-top:8px;padding:0 12px;color:var(--ink);background:white;border:1px solid #cfdcda;border-radius:9px;outline:none}.name-input:focus{border-color:var(--teal);box-shadow:0 0 0 3px rgba(29,118,109,.1)}.lowest-offer{background:#eaf8f1;border-left:4px solid #2d9b70}.lowest-offer:hover{background:#e3f5ec}.lowest-badge{display:block;width:max-content;margin-top:5px;padding:3px 7px;color:#176948;background:#ccebdc;border-radius:99px;font-size:9px;font-style:normal;font-weight:900;text-transform:uppercase}
.file-actions{display:flex;gap:6px}.delete-file{display:grid;width:28px;height:28px;padding:0;place-items:center;color:var(--danger);background:#fae9e7;border:0;border-radius:7px;cursor:pointer;font-size:20px;line-height:1}.delete-file:hover{color:white;background:var(--danger)}.delete-file:disabled{cursor:wait;opacity:.45}
.modal[hidden]{display:none}.modal{position:fixed;inset:0;z-index:90;display:grid;place-items:center;padding:20px;background:rgba(9,29,37,.58)}.modal-card{width:min(460px,100%);padding:25px;background:white;border-radius:16px;box-shadow:0 25px 70px rgba(0,0,0,.28)}.modal-card h2{margin:5px 0 10px;color:var(--navy)}.modal-card p{margin:0 0 8px;font-weight:800}.modal-card small{color:var(--muted);line-height:1.45}.modal-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:20px}.modal-actions .secondary{margin:0}.danger-button{height:42px;color:white;background:var(--danger);border:0;border-radius:9px;cursor:pointer;font-weight:900}.danger-button:hover{background:#8f302b}.danger-button:disabled{cursor:wait;opacity:.55}

.tabs-row{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:18px}.tabs-row .tabs{margin-bottom:0}.guide-button{height:44px;padding:0 17px;color:var(--navy);background:#fff;border:1px solid #b9cdca;border-radius:10px;cursor:pointer;font-weight:850;box-shadow:0 4px 12px rgba(16,47,61,.06)}.guide-button:hover{color:var(--teal);border-color:#78aaa3;background:#f5fbf9}.guide-modal{overflow-y:auto;place-items:start center}.guide-card{position:relative;width:min(900px,100%);margin:auto;padding:28px 30px}.guide-card h2{font-size:25px}.guide-card .guide-lead{margin-bottom:22px;color:var(--muted);font-weight:500}.modal-close{position:absolute;top:15px;right:17px;width:34px;height:34px;color:var(--muted);background:transparent;border:0;border-radius:50%;cursor:pointer;font-size:27px;line-height:1}.modal-close:hover{color:var(--navy);background:#edf4f2}.guide-section{display:grid;grid-template-columns:32px 1fr;gap:13px;padding:16px 0;border-top:1px solid var(--line)}.guide-number{display:grid;width:28px;height:28px;place-items:center;color:#fff;background:var(--teal);border-radius:50%;font-size:12px;font-weight:900}.guide-section h3{margin:3px 0 8px;color:var(--navy);font-size:15px}.guide-section p{margin:0 0 8px;font-size:13px;font-weight:500;line-height:1.5}.guide-section code{display:inline-block;margin-bottom:7px;padding:7px 9px;color:#174d59;background:#edf7f4;border-radius:7px;font-family:Consolas,monospace;font-size:13px}.guide-section small{display:block}.guide-section ul{margin:0;padding-left:18px;color:#425b60;font-size:13px;line-height:1.55}.guide-section li+li{margin-top:5px}.column-chips{display:flex;flex-wrap:wrap;gap:6px}.column-chips span{padding:5px 8px;color:#31545a;background:#eef4f3;border-radius:6px;font-size:11px;font-weight:800}.guide-checklist{display:flex;flex-wrap:wrap;gap:8px;margin-top:4px;padding:14px;color:#31545a;background:#f3f8f7;border-radius:10px;font-size:12px}.guide-checklist span:before{content:'✓';margin-right:5px;color:var(--teal);font-weight:900}.guide-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:20px}.guide-actions .secondary{width:auto;margin:0;padding:0 22px}.template-download{display:grid;height:42px;padding:0 20px;place-items:center;color:white;background:var(--teal);border-radius:9px;text-decoration:none;font-weight:900}.template-download:hover{background:#155f58}

@media(max-width:780px){.tabs-row{align-items:stretch;flex-direction:column}.tabs-row .tabs{width:100%;overflow-x:auto}.guide-button{width:100%}.guide-card{padding:24px 18px}.guide-actions{align-items:stretch;flex-direction:column}.guide-actions .secondary{width:100%}}
.modal-open{overflow:hidden}
.missing-item .remove-expectation{display:grid;width:28px;height:28px;margin-left:auto;flex:0 0 28px;padding:0;place-items:center;color:var(--danger);background:#fae9e7;border:0;border-radius:7px;cursor:pointer;font-size:19px}.missing-item .remove-expectation:hover{color:white;background:var(--danger)}
.compare-input #barcode-input{height:clamp(145px,22vh,190px);min-height:145px;max-height:190px;overflow-y:auto;resize:none}
.catalog-export-card{display:flex;align-items:center;justify-content:space-between;gap:28px;margin-top:16px;padding:22px 24px}.catalog-export-card h2{margin:0;color:var(--navy);font-size:19px}.catalog-export-card p{max-width:760px;margin:8px 0 0;color:var(--muted);font-size:12px;line-height:1.5}.compact-button{width:auto;min-width:180px;margin:0;padding:0 20px;flex:0 0 auto}@media(max-width:700px){.catalog-export-card{align-items:stretch;flex-direction:column}.compact-button{width:100%}}
.export-marker{display:grid;width:30px;height:30px;padding:0;place-items:center;color:#8a9699;background:white;border:1px solid #cbd8d7;border-radius:7px;cursor:pointer;font-weight:900}.export-marker:hover{color:#9a5c00;border-color:#e0a543}.export-marker.is-active{color:white;background:#d88400;border-color:#d88400;box-shadow:0 0 0 3px rgba(216,132,0,.15)}.export-marker:disabled{cursor:wait;opacity:.5}.scope-switch{display:grid;grid-template-columns:1fr 1fr;gap:4px;margin-top:12px;padding:4px;background:#edf3f2;border-radius:9px}.scope-switch button{height:34px;color:var(--muted);background:transparent;border:0;border-radius:7px;cursor:pointer;font-size:11px;font-weight:900}.scope-switch button.is-active{color:white;background:var(--navy)}.catalog-export-actions{display:flex;gap:9px;flex:0 0 auto}.export-download{color:#a25e00;border-color:#dca95e}.export-download:hover{background:#fff6e8}@media(max-width:700px){.catalog-export-actions{flex-direction:column}.catalog-export-actions .compact-button{width:100%}}
.top-actions{display:flex;align-items:center;gap:12px}.logout-button{padding:8px 12px;color:#d8e6e7;background:transparent;border:1px solid #54717b;border-radius:8px;cursor:pointer;font-weight:800}.logout-button:hover{color:white;border-color:#91adb2}.login-screen{display:none;position:fixed;inset:0;z-index:100;place-items:center;padding:20px;background:linear-gradient(145deg,#102f3d,#1d625f)}.login-screen.is-visible{display:grid}.auth-pending>.topbar,.auth-pending>.shell{visibility:hidden}.login-card{width:min(390px,100%);padding:34px;background:white;border:1px solid rgba(255,255,255,.5);border-radius:18px;box-shadow:0 25px 70px rgba(0,0,0,.3)}.login-card .brand-mark{margin-bottom:20px}.login-card h1{margin:5px 0 8px;color:var(--navy);font-size:24px}.login-card p{margin:0 0 20px;color:var(--muted);line-height:1.45}.login-card input{width:100%;height:48px;padding:0 14px;border:1px solid #cfdcda;border-radius:9px;font-size:18px;letter-spacing:.18em;outline:none}.login-card input:focus{border-color:var(--teal);box-shadow:0 0 0 3px rgba(29,118,109,.12)}.login-error{min-height:20px;margin-top:10px;color:var(--danger);font-size:12px}.login-card .primary{margin-top:12px}
.legal-footer{display:flex;align-items:center;justify-content:center;gap:8px;min-height:52px;padding:14px 24px;color:#7a8c8f;font-size:11px}.auth-pending>.legal-footer{visibility:hidden}@media(max-width:520px){.legal-footer{gap:4px;flex-wrap:wrap}}
