:root{--ink:#102822;--muted:#687a75;--paper:#f4f5ef;--card:#fff;--line:#dde4df;--green:#176b58;--deep:#0d2d29;--amber:#d98a24;--red:#c94738;--blue:#3674a9;--shadow:0 18px 50px rgba(17,49,41,.08)}
*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif}.hidden{display:none!important}.eyebrow{margin:0 0 7px;color:var(--amber);font-size:12px;font-weight:800;letter-spacing:.14em}.muted{color:var(--muted)}button,input,select{font:inherit}.login-shell{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at 12% 15%,#235d51 0,transparent 27%),linear-gradient(145deg,#0a2724,#17382f)}.login-card{width:min(430px,100%);background:#fff;border-radius:26px;padding:38px;box-shadow:0 30px 80px #001b166b}.brand-mark{width:62px;height:62px;border-radius:19px;background:var(--amber);display:grid;place-items:center;color:white;font-size:25px;font-weight:900;margin-bottom:24px}.login-card h1{font-size:32px;margin:0 0 8px}.login-card form{margin-top:30px}.login-card label{display:block;font-weight:700;margin:17px 0}.login-card input:not([type=checkbox]){display:block;width:100%;margin-top:8px;padding:14px 15px;border:1px solid var(--line);border-radius:12px;outline:none}.login-card input:focus{border-color:var(--green);box-shadow:0 0 0 3px #176b5819}.login-card .remember{font-weight:500;color:var(--muted)}.primary{width:100%;border:0;border-radius:13px;padding:15px;background:var(--green);color:white;font-weight:800;cursor:pointer}.error{min-height:20px;color:var(--red);font-size:14px}.topbar{position:sticky;top:0;z-index:20;display:flex;justify-content:space-between;align-items:center;padding:18px max(24px,calc((100vw - 1240px)/2));background:#0d2d29ed;color:white;backdrop-filter:blur(12px)}.topbar h1{font-size:21px;margin:0}.top-actions{display:flex;align-items:center;gap:9px}.sync-state{font-size:13px;color:#bcd2cb;margin-right:8px}.ghost{border:1px solid #ffffff38;background:#ffffff0d;color:#fff;padding:9px 13px;border-radius:10px;cursor:pointer}main{max-width:1240px;margin:auto;padding:28px 24px 60px}.hero{display:flex;justify-content:space-between;gap:30px;align-items:end;background:linear-gradient(120deg,#123c34,#1d5e4e);color:white;border-radius:22px;padding:31px 34px;box-shadow:var(--shadow)}.hero p{margin:0}.hero h2{font-size:clamp(25px,4vw,42px);margin:7px 0 12px;letter-spacing:-.04em}.hero .muted{color:#c7d7d1}.hero-badge{border-left:1px solid #ffffff36;padding-left:28px;text-align:right}.hero-badge span{display:block;color:#c4d6cf;font-size:13px}.hero-badge strong{font-size:26px}.summary-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:18px 0}.summary-card{background:var(--card);padding:20px;border-radius:16px;border:1px solid #e5e9e5;box-shadow:0 8px 24px #18392f0a}.summary-card span{color:var(--muted);font-size:13px}.summary-card strong{display:block;margin-top:7px;font-size:28px}.summary-card.alert strong{color:var(--red)}.summary-card.warn strong{color:var(--amber)}.tabs{display:flex;gap:5px;margin:27px 0 11px;overflow:auto}.tab{border:0;background:transparent;color:var(--muted);font-weight:700;padding:11px 16px;border-radius:10px;white-space:nowrap;cursor:pointer}.tab.active{background:var(--deep);color:white}.panel{display:none;background:var(--card);border:1px solid #e1e7e2;border-radius:20px;padding:25px;box-shadow:var(--shadow)}.tab-panel.active{display:block}.panel-heading{display:flex;justify-content:space-between;gap:18px;align-items:center;margin-bottom:20px}.panel-heading h3{font-size:23px;margin:0}.hint{color:var(--muted);font-size:13px}.risk-list,.shortage-list{display:grid;gap:12px}.risk-card{display:grid;grid-template-columns:auto 1fr auto;gap:15px;align-items:center;border:1px solid var(--line);border-radius:14px;padding:17px}.risk-dot{width:10px;height:10px;border-radius:50%;background:var(--green);box-shadow:0 0 0 6px #176b5813}.risk-card.critical .risk-dot{background:var(--red);box-shadow:0 0 0 6px #c9473813}.risk-card.reorder .risk-dot,.risk-card.watch .risk-dot{background:var(--amber);box-shadow:0 0 0 6px #d98a2414}.risk-card h4{margin:0 0 5px;font-size:17px}.risk-card p{margin:0;color:var(--muted);font-size:14px}.risk-stock{text-align:right}.risk-stock strong{display:block;font-size:20px}.risk-stock span{font-size:12px;color:var(--muted)}.filters{display:flex;gap:9px}.filters input,.filters select{padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:white}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;min-width:650px}th,td{text-align:left;padding:14px 10px;border-bottom:1px solid #edf0ed}th{color:var(--muted);font-size:12px;letter-spacing:.05em}td{font-size:14px}.qty{font-weight:800;font-size:16px}.tag{display:inline-block;padding:5px 8px;border-radius:999px;background:#e8f2ed;color:var(--green);font-size:12px;font-weight:700}.tag.red{background:#fbe8e5;color:var(--red)}.tag.amber{background:#fff2df;color:#a8630d}.tag.blue{background:#e8f1f8;color:var(--blue)}.shortage-card{border:1px solid var(--line);border-radius:16px;padding:19px}.shortage-top{display:flex;justify-content:space-between;gap:15px}.shortage-card h4{font-size:18px;margin:0 0 7px}.shortage-card p{margin:5px 0;color:var(--muted);font-size:14px}.shortage-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:15px}.info-box{background:#f7f8f4;border-radius:10px;padding:11px}.info-box span{display:block;color:var(--muted);font-size:12px}.info-box strong{display:block;margin-top:5px;font-size:14px}.empty{text-align:center;color:var(--muted);padding:50px 20px;border:1px dashed var(--line);border-radius:14px}footer{text-align:center;color:var(--muted);font-size:13px;padding:25px}.toast{position:fixed;right:24px;bottom:24px;background:#102822;color:white;padding:12px 16px;border-radius:10px;opacity:0;transform:translateY(15px);pointer-events:none;transition:.2s}.toast.show{opacity:1;transform:none}
.notification-button{position:relative;width:43px;height:43px;border-radius:50%;border:1px solid #ffffff38;background:#ffffff12;color:white;cursor:pointer;font-size:20px}.notification-badge{position:absolute;right:-5px;top:-6px;min-width:20px;height:20px;padding:0 5px;border-radius:11px;background:#e43e35;color:#fff;border:2px solid var(--deep);font-size:11px;line-height:16px}.ship-button{border:0;background:var(--deep);color:#fff;border-radius:9px;padding:9px 12px;font-weight:700;cursor:pointer;margin-left:8px}.shipment-dialog{width:min(520px,calc(100% - 28px));border:0;border-radius:20px;padding:0;box-shadow:0 30px 90px #071c1866}.shipment-dialog::backdrop{background:#071c18a8;backdrop-filter:blur(3px)}.shipment-dialog form{padding:25px}.dialog-heading{display:flex;align-items:flex-start;justify-content:space-between}.dialog-heading h3{font-size:24px;margin:0}.dialog-heading p{margin:6px 0}.close-button{border:0;background:#edf1ee;border-radius:50%;width:34px;height:34px;font-size:22px;cursor:pointer}.shipment-dialog label{display:block;font-weight:700;font-size:14px;margin:17px 0}.shipment-dialog input,.shipment-dialog textarea{width:100%;display:block;margin-top:7px;border:1px solid var(--line);border-radius:10px;padding:12px;outline:none}.shipment-dialog textarea{min-height:100px;resize:vertical}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.form-help{font-size:13px;color:var(--muted);background:#f4f6f3;padding:10px;border-radius:9px}.notification-dialog{width:min(650px,calc(100% - 28px));max-height:82vh}.notification-dialog-inner{padding:25px}.web-notification-list{display:grid;gap:10px;margin-top:20px;max-height:60vh;overflow:auto}.web-notice{display:grid;grid-template-columns:auto 1fr;gap:12px;border:1px solid var(--line);border-radius:13px;padding:14px}.web-notice.unread{border-left:5px solid var(--red)}.web-notice-symbol{width:42px;height:42px;border-radius:13px;display:grid;place-items:center;background:#fbe8e5;color:var(--red);font-weight:900}.web-notice.shipment .web-notice-symbol{background:#e8f2ed;color:var(--green)}.web-notice h4{margin:0 0 5px}.web-notice p{margin:3px 0;color:var(--muted);font-size:13px}.web-notice time{font-size:11px;color:#94a19d}
@media(max-width:800px){.summary-grid{grid-template-columns:repeat(2,1fr)}.topbar{padding:15px}.sync-state{display:none}main{padding:18px 13px 40px}.hero{padding:24px;align-items:start}.hero-badge{display:none}.panel{padding:17px}.inventory-heading{align-items:flex-start;flex-direction:column}.filters{width:100%}.filters input{min-width:0;flex:1}.risk-card{grid-template-columns:auto 1fr}.risk-stock{grid-column:2;text-align:left}.shortage-grid{grid-template-columns:1fr}.hint{display:none}}
@media(max-width:460px){.summary-grid{gap:9px}.summary-card{padding:15px}.summary-card strong{font-size:23px}.topbar .eyebrow{display:none}.topbar h1{font-size:18px}.ghost{padding:8px 10px}.login-card{padding:28px 22px}}
@media(max-width:520px){.form-row{grid-template-columns:1fr}.ship-button{display:block;margin:10px 0 0}}
.ai-suggestions{display:flex;flex-wrap:wrap;gap:9px;margin-bottom:17px}.ai-suggestions button{border:1px solid #cddbd5;background:#f4faf7;color:var(--green);border-radius:999px;padding:9px 13px;cursor:pointer}.ai-messages{display:grid;gap:14px;max-height:560px;overflow:auto;padding:4px 3px 15px}.ai-exchange{display:grid;gap:9px}.ai-question,.ai-answer{max-width:84%;padding:13px 15px;border-radius:15px}.ai-question{justify-self:end;background:var(--deep);color:#fff;border-bottom-right-radius:4px}.ai-answer{justify-self:start;background:#f1f5f2;border:1px solid var(--line);border-bottom-left-radius:4px}.ai-question span,.ai-answer span{display:block;font-size:11px;font-weight:800;opacity:.65;margin-bottom:5px}.ai-question p,.ai-answer p{margin:0;white-space:pre-wrap;line-height:1.65}.ai-answer time{display:block;color:#87958f;font-size:11px;margin-top:8px}.ai-thinking{color:var(--muted);padding:13px}.ai-thinking span{display:inline-block;width:9px;height:9px;margin-right:8px;border-radius:50%;background:var(--amber);animation:aiPulse 1s infinite alternate}.ai-composer{display:grid;grid-template-columns:1fr 150px;gap:10px;border-top:1px solid var(--line);padding-top:17px}.ai-composer textarea{min-height:82px;resize:vertical;border:1px solid var(--line);border-radius:12px;padding:13px;font:inherit;outline:none}.ai-composer textarea:focus{border-color:var(--green);box-shadow:0 0 0 3px #176b5819}.ai-composer .primary{height:52px;align-self:end}.ai-composer .primary:disabled{opacity:.6;cursor:wait}@keyframes aiPulse{to{opacity:.25;transform:scale(.7)}}
@media(max-width:620px){.ai-composer{grid-template-columns:1fr}.ai-composer .primary{width:100%}.ai-question,.ai-answer{max-width:94%}}
