:root{--canvas:#f3f0e9;--surface:#fffefa;--fixed:#eef1ec;--ink:#17212b;--muted:#6b716f;--line:#d9d9d1;--primary:#163a4a;--accent:#c96f3b;--danger:#a34b42;--success:#2f7b5b;--font:"PingFang SC","Microsoft YaHei",sans-serif;--display:"Songti SC",serif;--number:"DIN Alternate",Inter,sans-serif}*{box-sizing:border-box}body{margin:0;min-width:320px;background:var(--canvas);color:var(--ink);font-family:var(--font)}button,input,textarea{font:inherit}button:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid rgba(30,113,136,.25);outline-offset:2px}[hidden]{display:none!important}.button{min-height:42px;padding:9px 15px;border:1px solid #b8bcb5;border-radius:6px;background:var(--surface);color:var(--ink);font-weight:700;cursor:pointer}.button:disabled{cursor:not-allowed;opacity:.55}.button--primary{background:var(--primary);border-color:var(--primary);color:white}.button--accent{background:var(--accent);border-color:var(--accent);color:white}.button--danger{color:var(--danger);border-color:#d9bab6}.button--quiet{min-height:36px;padding:7px 10px;background:transparent}.eyebrow{margin:0 0 7px;color:var(--accent);font-size:10px;font-weight:800;letter-spacing:.16em}.brand-mark{display:grid;place-items:center;width:42px;height:42px;border:1px solid currentColor;font-family:Georgia,serif}.login-body{min-height:100vh;display:grid;place-items:center;background:linear-gradient(120deg,#122f3c 0 48%,var(--canvas) 48%)}.login-shell{display:grid;grid-template-columns:1fr 430px;width:min(1060px,calc(100% - 40px));min-height:620px;box-shadow:0 25px 80px rgba(16,30,37,.25)}.login-brand{padding:64px;background:#163a4a;color:white}.login-brand>p:first-of-type{margin:22px 0 8px;color:#d9e4e3;letter-spacing:.13em}.login-brand h1{max-width:470px;margin:0;font:600 46px/1.25 var(--display)}.login-lead{max-width:520px;margin:24px 0;color:rgba(255,255,255,.72);line-height:1.8}.security-list{margin:44px 0 0;padding:0;list-style:none}.security-list li{padding:10px 0;border-bottom:1px solid rgba(255,255,255,.13)}.login-card{padding:64px 46px;background:var(--surface)}.login-card h2{margin:0 0 24px;font:600 30px var(--display)}.login-tabs{display:grid;grid-template-columns:1fr 1fr;margin-bottom:25px;padding:4px;background:#eeece5;border-radius:7px}.login-tab{height:40px;border:0;background:transparent;color:var(--muted);cursor:pointer}.login-tab.is-active{background:white;color:var(--ink);box-shadow:0 2px 8px rgba(0,0,0,.08)}.login-form{display:grid;gap:18px}.login-form label,.dialog-field{display:grid;gap:7px}.login-form label span,.dialog-field span{font-size:12px;font-weight:700}.login-form input,.dialog-field input{height:48px;border:1px solid #b8bcb5;border-radius:6px;padding:0 12px;background:white}.field-help{margin:-7px 0 0;color:var(--muted);font-size:11px;line-height:1.6}.form-error{min-height:22px;color:var(--danger);font-size:12px}.topbar{position:sticky;top:0;z-index:20;height:76px;display:flex;align-items:center;justify-content:space-between;padding:0 clamp(18px,4vw,64px);background:rgba(255,254,250,.96);border-bottom:1px solid var(--line);backdrop-filter:blur(10px)}.brand{display:flex;align-items:center;gap:12px}.brand>span:last-child{display:grid}.brand small{margin-top:3px;color:var(--muted)}.topbar-actions{display:flex;align-items:center;gap:15px}.session-clock{display:grid;text-align:right}.session-clock small{color:var(--muted);font-size:9px}.session-clock strong{font:700 15px var(--number)}.user-name{font-size:12px;font-weight:700}.page-shell{width:min(1450px,calc(100% - 40px));margin:auto;padding:42px 0 80px}.hero{display:flex;align-items:flex-end;justify-content:space-between;gap:30px;margin-bottom:24px}.hero h1{margin:0;font:600 clamp(28px,4vw,44px) var(--display)}.hero p:last-child{margin:12px 0 0;color:var(--muted);line-height:1.7}.state-badge{padding:9px 12px;border:1px solid #cdd7d0;border-radius:999px;background:#f2f8f4;color:var(--success);font-size:12px;font-weight:700}.alert-bar{margin-bottom:16px;padding:12px 15px;background:#fff2ed;border-left:4px solid var(--accent)}.summary-strip{display:grid;grid-template-columns:1.1fr 1fr 1fr;margin-bottom:16px;background:var(--surface);border:1px solid var(--line);border-radius:9px;overflow:hidden}.summary-strip>div,.tax-control{display:flex;flex-direction:column;justify-content:center;min-height:104px;padding:18px 22px;border-right:1px solid var(--line)}.summary-strip>div:last-child{border:0;background:var(--primary);color:white}.summary-strip span{color:var(--muted);font-size:11px}.summary-strip>div:last-child span{color:rgba(255,255,255,.65)}.summary-strip strong{margin-top:8px;font:750 26px var(--number)}.tax-control>span:last-child{display:flex;align-items:center;margin-top:8px;border-bottom:2px solid var(--accent)}.tax-control input{width:100%;border:0;background:transparent;font:750 26px var(--number)}.tax-control b{color:var(--accent)}.item-list{display:grid;gap:10px}.quote-item{display:grid;grid-template-columns:54px 120px minmax(260px,1fr) 150px 170px;align-items:stretch;background:var(--surface);border:1px solid var(--line);border-radius:8px;overflow:hidden}.quote-item__index{display:grid;place-items:center;background:#203039;color:white;font:700 14px var(--number)}.quote-item__reference{display:grid;place-items:center;padding:10px;background:var(--fixed);color:var(--muted);font-size:10px;text-align:center}.quote-item__reference img,.quote-item__photo img{width:100px;height:85px;object-fit:contain;background:white;border:1px solid var(--line);border-radius:5px}.quote-item__info{padding:17px}.quote-item__info h3{margin:7px 0;font-size:15px}.quote-item__info p{margin:0;color:var(--muted);font-size:11px}.quote-item__info small{display:block;margin-top:10px}.category-tag{color:var(--accent);font-size:10px;font-weight:800}.quote-item__photo{display:grid;align-content:center;justify-items:center;gap:7px;padding:12px;background:#f7f4ed;border-left:1px solid var(--line)}.quote-item__photo>span{font-size:10px;color:var(--muted)}.photo-empty{display:grid;place-items:center;width:100px;height:70px;border:1px dashed #b8bcb5;color:var(--muted);font-size:10px}.upload-button{position:relative;display:inline-grid;place-items:center;min-height:31px;padding:5px 9px;border:1px solid #d7b69e;border-radius:5px;background:white;color:var(--accent);font-size:10px;font-weight:700;cursor:pointer;overflow:hidden}.upload-button input{position:absolute;inset:0;opacity:.01;cursor:pointer}.quote-item__price{display:grid;align-content:center;gap:7px;padding:15px;background:#fff1e6;border-left:1px solid var(--line)}.quote-item__price span,.quote-item__price small{font-size:10px;color:var(--muted)}.quote-item__price input{width:100%;height:42px;border:1px solid #dfc0aa;border-radius:5px;padding:0 9px;text-align:right;font:750 16px var(--number)}.quote-item__price strong{text-align:right;font:750 15px var(--number)}.action-bar{position:sticky;bottom:12px;display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:16px;padding:17px 20px;background:#e9e6de;border:1px solid var(--line);border-radius:8px;box-shadow:0 12px 35px rgba(20,35,40,.14)}.action-bar>div:first-child{display:grid}.action-bar small{margin-top:4px;color:var(--muted)}.action-bar>div:last-child{display:flex;gap:8px}.admin-grid{display:grid;gap:18px}.panel{background:var(--surface);border:1px solid var(--line);border-radius:10px;overflow:hidden}.panel-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:22px;border-bottom:1px solid var(--line)}.panel-heading h2{margin:0;font:600 23px var(--display)}.supplier-admin-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(330px,1fr));gap:12px;padding:14px}.supplier-admin-card{padding:17px;border:1px solid var(--line);border-left:4px solid var(--primary);border-radius:7px}.supplier-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.supplier-card-head h3{margin:0;font-size:14px}.supplier-card-head small{color:var(--muted)}.status-tag{padding:5px 7px;background:#f1f3ef;color:var(--muted);font-size:9px;font-weight:800}.status-second_open,.status-first_open{background:#eaf4ee;color:var(--success)}.status-revoked,.status-expired{background:#f9ecea;color:var(--danger)}.supplier-card-metrics{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:16px}.supplier-card-metrics span{display:flex;justify-content:space-between;padding:8px;background:#f8f6ef;color:var(--muted);font-size:10px}.supplier-card-metrics b{color:var(--ink);font-family:var(--number)}.expiry-copy{color:var(--danger);font-size:10px}.supplier-admin-card details{margin-top:12px}.supplier-admin-card summary{cursor:pointer;font-size:11px;font-weight:700}.quote-detail-list{display:grid;margin-top:8px}.quote-detail-list span{display:flex;justify-content:space-between;gap:15px;padding:7px 0;border-bottom:1px solid var(--line);font-size:10px}.quote-detail-list b{white-space:nowrap}.card-actions{display:flex;flex-wrap:wrap;gap:7px;margin-top:14px}.admin-item-list{display:grid;gap:1px;background:var(--line)}.admin-item{display:grid;grid-template-columns:52px 130px 1fr 140px;align-items:center;background:var(--surface)}.admin-item__number{display:grid;place-items:center;height:100%;background:var(--fixed);font:700 13px var(--number)}.admin-item__image{display:grid;place-items:center;gap:6px;padding:12px}.admin-item__image img{width:96px;height:78px;object-fit:contain;border:1px solid var(--line)}.admin-item__image>span{display:grid;place-items:center;width:96px;height:70px;border:1px dashed #b8bcb5;color:var(--muted);font-size:10px}.text-danger{border:0;background:transparent;color:var(--danger);font-size:10px;cursor:pointer}.admin-item__fields{display:grid;grid-template-columns:150px 1fr 100px 1fr;gap:8px;padding:14px}.admin-item__fields label{display:grid;gap:5px;color:var(--muted);font-size:9px}.admin-item__fields input,.admin-item__fields textarea{width:100%;border:1px solid var(--line);border-radius:4px;background:white;padding:8px;color:var(--ink)}.admin-item__fields textarea{min-height:54px;resize:vertical}.admin-item>.button{margin-right:14px}.empty-state{padding:30px;text-align:center;color:var(--muted)}.modal{width:min(480px,calc(100% - 30px));border:0;border-radius:10px;padding:0;box-shadow:0 24px 80px rgba(0,0,0,.25)}.modal::backdrop{background:rgba(17,27,33,.6);backdrop-filter:blur(3px)}.modal form{padding:28px}.modal h2{margin:0;font:600 25px var(--display)}.modal p{color:var(--muted);line-height:1.65;font-size:12px}.dialog-field{margin-top:20px}.dialog-actions{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:22px}.dialog-actions--one{grid-template-columns:1fr}.modal code{display:block;margin:18px 0;padding:14px;background:#17212b;color:white;border-radius:5px;overflow-wrap:anywhere;font-size:13px}.toast{position:fixed;left:50%;bottom:24px;z-index:100;transform:translate(-50%,20px);opacity:0;background:#17212b;color:white;padding:11px 17px;border-radius:6px;pointer-events:none;transition:.2s}.toast.is-visible{transform:translate(-50%,0);opacity:1}@media(max-width:900px){.login-body{background:var(--canvas)}.login-shell{grid-template-columns:1fr;width:min(640px,calc(100% - 24px));box-shadow:none}.login-brand{padding:32px}.login-brand h1{font-size:34px}.login-card{padding:34px 26px}.quote-item{grid-template-columns:44px 100px 1fr}.quote-item__photo,.quote-item__price{border-top:1px solid var(--line);border-left:0}.quote-item__photo{grid-column:2/3}.quote-item__price{grid-column:3/4}.admin-item{grid-template-columns:44px 110px 1fr}.admin-item__fields{grid-template-columns:1fr 1fr}.admin-item>.button{grid-column:3;margin:0 14px 14px}.topbar{height:auto;min-height:68px;flex-wrap:wrap;padding:10px 14px}.user-name{display:none}}@media(max-width:620px){.login-brand{display:none}.login-card{min-height:100vh;padding-top:70px}.page-shell{width:calc(100% - 20px);padding-top:24px}.hero{align-items:flex-start;flex-direction:column}.summary-strip{grid-template-columns:1fr}.summary-strip>div,.tax-control{border-right:0;border-bottom:1px solid var(--line)}.quote-item{grid-template-columns:38px 84px 1fr}.quote-item__reference img{width:70px;height:70px}.quote-item__info{padding:12px}.quote-item__photo{grid-column:1/4}.quote-item__price{grid-column:1/4}.action-bar{align-items:stretch;flex-direction:column}.action-bar>div:last-child{display:grid;grid-template-columns:1fr 1fr}.panel-heading{align-items:flex-start;flex-direction:column}.supplier-admin-list{grid-template-columns:1fr;padding:10px}.admin-item{grid-template-columns:38px 90px 1fr}.admin-item__fields{grid-template-columns:1fr;grid-column:3}.admin-item>.button{grid-column:3}.session-clock{display:none}}
