:root{--ink:#18201d;--muted:#69736f;--paper:#f3f1ea;--card:#fff;--line:#dddcd4;--green:#183e32;--mint:#dcebe2;--lime:#d8ff5f;--orange:#ff7a45;--red:#c74a3d;--shadow:0 18px 48px rgba(24,32,29,.08)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);font-family:Inter,"PingFang SC","Microsoft YaHei",system-ui,sans-serif;background:var(--paper)}button,input{font:inherit}.eyebrow{margin:0 0 6px;font-size:11px;font-weight:800;letter-spacing:.15em;color:#60706a}
.login-body{min-height:100vh;display:grid;place-items:center;padding:32px;background:radial-gradient(circle at 8% 12%,#426d59 0,transparent 30%),#132a22}.login-shell{width:min(1080px,100%);min-height:650px;display:grid;grid-template-columns:1.2fr .8fr;background:#f5f3ec;border-radius:28px;overflow:hidden;box-shadow:0 36px 100px rgba(0,0,0,.3)}.login-brand{padding:72px;display:flex;flex-direction:column;justify-content:center;background:linear-gradient(145deg,rgba(255,255,255,.92),rgba(235,239,229,.88)),repeating-linear-gradient(45deg,transparent 0 28px,rgba(24,62,50,.04) 28px 29px)}.brand-mark{width:72px;height:72px;border-radius:22px;display:grid;place-items:center;margin-bottom:46px;background:var(--green);color:var(--lime);font-weight:900;letter-spacing:.05em}.login-brand h1{max-width:650px;margin:8px 0 22px;font:700 clamp(34px,5vw,62px)/1.08 Georgia,"Noto Serif SC",serif;letter-spacing:-.035em}.login-copy{max-width:570px;margin:0;color:#55625d;font-size:17px;line-height:1.8}.login-proof{display:flex;gap:22px;flex-wrap:wrap;margin-top:46px;font-size:13px;font-weight:700}.login-proof span{display:flex;align-items:center;gap:8px}.login-proof i,.readonly-badge i,.live-dot{width:8px;height:8px;border-radius:50%;background:#57aa74;box-shadow:0 0 0 5px rgba(87,170,116,.12)}.login-panel{padding:64px 52px;display:flex;flex-direction:column;justify-content:center;background:#fff}.panel-top{display:flex;align-items:center;gap:10px;margin-bottom:70px;color:#69736f;font-size:11px;font-weight:800;letter-spacing:.14em}.login-panel h2{margin:0 0 10px;font-size:30px}.login-panel>p{margin:0 0 34px;color:var(--muted)}.login-panel label{display:block;margin:0 0 20px;color:#3f4945;font-size:13px;font-weight:700}.login-panel input{width:100%;height:50px;margin-top:8px;padding:0 15px;border:1px solid #d5d9d4;border-radius:12px;background:#fbfbf8;outline:none;transition:.2s}.login-panel input:focus{border-color:#3b6e59;box-shadow:0 0 0 4px rgba(59,110,89,.1)}.login-panel button{width:100%;height:52px;display:flex;align-items:center;justify-content:space-between;margin-top:8px;padding:0 20px;border:0;border-radius:12px;background:var(--green);color:#fff;font-weight:800;cursor:pointer}.login-panel button:hover{background:#245443}.login-panel small{margin-top:24px;text-align:center;color:#8b938f}.login-error{display:none;margin:-6px 0 16px;padding:11px 13px;border-radius:10px;background:#fae6e2;color:#a43d32;font-size:13px}.login-error.visible{display:block}
.app-body{background:#efeee8}.app-shell{min-height:100vh;display:grid;grid-template-columns:240px 1fr}.sidebar{position:sticky;top:0;height:100vh;padding:30px 22px;display:flex;flex-direction:column;background:#17382e;color:#fff}.logo{display:flex;align-items:center;gap:12px;padding:0 10px 32px}.logo b{display:grid;place-items:center;width:45px;height:45px;border-radius:14px;background:var(--lime);color:#17382e;font-size:14px}.logo span{max-width:100px;color:#b9cbc3;font-size:10px;line-height:1.4;letter-spacing:.12em}.sidebar nav{display:grid;gap:6px}.sidebar nav a{padding:13px 14px;display:flex;align-items:center;gap:12px;border-radius:11px;color:#b8cbc3;text-decoration:none;font-size:14px}.sidebar nav a:hover,.sidebar nav a.active{background:rgba(255,255,255,.1);color:#fff}.sidebar nav a.active{box-shadow:inset 3px 0 var(--lime)}.sidebar-foot{margin-top:auto;padding:18px 12px;border-top:1px solid rgba(255,255,255,.12)}.readonly-badge{display:flex;align-items:center;gap:9px;font-size:12px;font-weight:800;color:#e4f4ec}.sidebar-foot p{margin:10px 0 0;color:#8eaaa0;font-size:11px;line-height:1.6}.dashboard{min-width:0;padding:34px clamp(24px,4vw,62px) 70px}.topbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:26px}.topbar h1{margin:0;font-size:29px;letter-spacing:-.03em}.top-actions,.connection{display:flex;align-items:center}.top-actions{gap:18px}.connection{gap:12px}.connection>span{width:10px;height:10px;border-radius:50%;background:#e0a43e;box-shadow:0 0 0 5px rgba(224,164,62,.14)}.connection>span.ok{background:#5aaf76;box-shadow:0 0 0 5px rgba(90,175,118,.14)}.connection>span.error{background:var(--red);box-shadow:0 0 0 5px rgba(199,74,61,.14)}.connection div{display:grid}.connection b{font-size:12px}.connection small{margin-top:3px;color:var(--muted);font-size:10px}.logout{padding:9px 14px;border:1px solid var(--line);border-radius:9px;background:transparent;color:#4e5955;cursor:pointer}.notice{display:flex;align-items:center;gap:14px;margin-bottom:22px;padding:14px 18px;border:1px solid #cbdccf;border-radius:12px;background:var(--mint);font-size:13px}.notice b{padding:5px 9px;border-radius:7px;background:var(--green);color:#fff;font-size:10px;letter-spacing:.08em}.kpi-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.kpi,.card{background:var(--card);border:1px solid rgba(213,214,207,.8);border-radius:17px;box-shadow:0 5px 20px rgba(36,48,43,.035)}.kpi{min-height:148px;padding:20px}.kpi.accent{background:#193c31;color:#fff}.kpi-head{display:flex;align-items:center;justify-content:space-between;color:#65706c;font-size:12px;font-weight:700}.accent .kpi-head{color:#bad0c7}.kpi-head em{font-style:normal}.kpi strong{display:block;margin:18px 0 9px;font:700 31px/1 Georgia,serif}.kpi small{color:#8a928f}.accent small{color:#b9cec5}.control-grid{display:grid;grid-template-columns:1fr 1fr 1.05fr;gap:14px;margin-top:14px}.card{padding:23px}.card-title{display:flex;align-items:flex-start;justify-content:space-between}.card-title h2{margin:0;font-size:18px}.status-chip{padding:5px 9px;border-radius:99px;background:#edf1ed;color:#52635d;font-size:10px;font-weight:800}.status-chip.change{background:#fff0d6;color:#9a5e0b}.hero-number{margin:28px 0 15px;display:flex;align-items:flex-end;justify-content:space-between;color:var(--muted);font-size:12px}.hero-number strong{color:var(--ink);font:700 30px/1 Georgia,serif}.progress-track{height:8px;overflow:hidden;border-radius:99px;background:#ebece8}.progress-track i{display:block;width:0;height:100%;border-radius:inherit;background:linear-gradient(90deg,#386d59,#79ac78);transition:width .35s}.control-meta{display:flex;justify-content:space-between;margin-top:10px;color:var(--muted);font-size:11px}.control-meta b{color:#2f3e38}.divider{height:1px;margin:20px 0;background:#ecece7}.mini-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.mini-grid div{display:grid;gap:6px}.mini-grid span{color:#8a918e;font-size:10px}.mini-grid b{font-size:12px}.bid-scale{position:relative;height:8px;margin:0 0 31px;border-radius:99px;background:linear-gradient(90deg,#e4e8e4,#bdd3bf,#f0d37e)}.bid-scale i{position:absolute;top:50%;left:4%;width:14px;height:14px;border:3px solid #fff;border-radius:50%;background:#193c31;box-shadow:0 1px 6px rgba(0,0,0,.25);transform:translate(-50%,-50%);transition:left .35s}.bid-scale span{position:absolute;top:15px;color:#8a918e;font-size:9px}.bid-scale span:nth-of-type(1){left:0}.bid-scale span:nth-of-type(2){left:50%;transform:translateX(-50%)}.bid-scale span:nth-of-type(3){right:0}.recommendation-card{background:#f8faef}.decision-icon{display:grid;place-items:center;width:36px;height:36px;border-radius:11px;background:var(--lime);color:#193c31;font-size:11px;font-weight:900}.decision-main{margin:25px 0 16px}.decision-main strong{font:700 25px/1.2 Georgia,"Noto Serif SC",serif}.decision-main p{min-height:38px;margin:8px 0;color:#66716d;font-size:12px;line-height:1.6}.recommendation-card ul{min-height:54px;margin:0;padding-left:18px;color:#44504c;font-size:11px;line-height:1.7}.safeguard{display:flex;gap:10px;margin-top:15px;padding:13px;border-radius:11px;background:#fff;border:1px solid #e5e8dc}.safeguard p{margin:0;color:#68726e;font-size:10px;line-height:1.5}.safeguard b{color:#33413b}.chart-card{margin-top:14px}.chart-legend{font-size:10px;color:#727c78}.chart-legend i{display:inline-block;width:18px;height:3px;margin-right:7px;background:#2c6953;vertical-align:middle}.chart-wrap{position:relative;height:230px;margin-top:24px}.chart-wrap svg{width:100%;height:100%;overflow:visible}.chart-empty{position:absolute;inset:0;display:grid;place-items:center;color:#9aa19e;font-size:12px}.safety-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:14px}.safety-grid article{display:flex;gap:14px;padding:18px;border-top:2px solid #bec8c1;background:rgba(255,255,255,.45)}.safety-grid article>span{font:700 18px/1 Georgia,serif;color:#88a094}.safety-grid b{font-size:12px}.safety-grid p{margin:5px 0 0;color:#717a76;font-size:10px;line-height:1.5}
@media(max-width:1100px){.control-grid{grid-template-columns:1fr 1fr}.recommendation-card{grid-column:1/-1}.kpi-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:760px){.login-body{padding:0}.login-shell{min-height:100vh;border-radius:0;grid-template-columns:1fr}.login-brand{padding:38px 28px}.brand-mark{margin-bottom:28px}.login-brand h1{font-size:38px}.login-copy{font-size:14px}.login-proof{margin-top:28px}.login-panel{padding:40px 28px}.panel-top{display:none}.app-shell{display:block}.sidebar{position:static;width:auto;height:auto;padding:16px 18px;display:block}.logo{padding:0}.logo span,.sidebar nav,.sidebar-foot p{display:none}.readonly-badge{position:absolute;right:18px;top:29px}.dashboard{padding:23px 15px 50px}.topbar{align-items:flex-start}.topbar h1{font-size:22px}.topbar .eyebrow{display:none}.top-actions{gap:10px}.connection div{display:none}.kpi-grid,.control-grid,.safety-grid{grid-template-columns:1fr}.recommendation-card{grid-column:auto}.kpi{min-height:126px}.card{padding:20px}.safety-grid{grid-template-columns:1fr 1fr}.notice{align-items:flex-start}.chart-wrap{height:180px}}
@media(max-width:430px){.login-proof{display:grid;gap:12px}.safety-grid{grid-template-columns:1fr}.top-actions .logout{padding:7px 10px}.kpi-grid{gap:10px}.dashboard{padding-left:12px;padding-right:12px}}
.store-picker{display:grid;gap:4px;color:#7b8581;font-size:9px;font-weight:800;letter-spacing:.06em}.store-picker select{max-width:260px;height:38px;padding:0 34px 0 12px;border:1px solid var(--line);border-radius:10px;background:#fff;color:#26342f;font-size:12px;font-weight:700;outline:none}.store-picker select:focus{border-color:#5e8d78;box-shadow:0 0 0 3px rgba(94,141,120,.1)}.portfolio-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;margin-bottom:14px}.portfolio-store{padding:15px 18px;display:grid;grid-template-columns:minmax(170px,1.8fr) repeat(4,minmax(70px,1fr));align-items:center;gap:14px;border:1px solid rgba(213,214,207,.8);border-radius:15px;background:rgba(255,255,255,.72);cursor:pointer;transition:.2s}.portfolio-store:hover,.portfolio-store.active{border-color:#8cac9e;background:#fff;box-shadow:0 8px 24px rgba(36,48,43,.06)}.portfolio-store.active{box-shadow:inset 4px 0 var(--green),0 8px 24px rgba(36,48,43,.06)}.portfolio-name{min-width:0}.portfolio-name b{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px}.portfolio-name small{display:block;margin-top:5px;color:#7b8581;font-size:10px}.portfolio-stat{display:grid;gap:4px}.portfolio-stat span{color:#8a928f;font-size:9px}.portfolio-stat b{font-size:12px}.portfolio-status{display:inline-flex;align-items:center;gap:5px}.portfolio-status i{width:6px;height:6px;border-radius:50%;background:#cc5445}.portfolio-status.online i{background:#55a772}.history-summary{display:flex;gap:30px;flex-wrap:wrap;margin-top:22px;padding:14px 0;border-top:1px solid #ecece7;border-bottom:1px solid #ecece7}.history-summary span{display:grid;gap:5px;color:#8a928f;font-size:9px}.history-summary b{color:#283630;font-size:13px}
@media(max-width:1200px){.portfolio-store{grid-template-columns:minmax(150px,1.5fr) repeat(2,1fr)}.portfolio-stat:nth-last-child(-n+2){display:none}}
@media(max-width:760px){.store-picker{position:absolute;left:18px;top:74px;width:calc(100% - 36px)}.store-picker span{display:none}.store-picker select{width:100%;max-width:none}.topbar{margin-bottom:70px}.portfolio-grid{grid-template-columns:1fr}.portfolio-store{grid-template-columns:minmax(140px,1.5fr) repeat(2,1fr)}.history-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.portfolio-stat:nth-last-child(-n+2){display:none}}
.schedule-card{margin-top:14px}.schedule-head,.schedule-row{display:grid;grid-template-columns:1.4fr repeat(4,1fr);align-items:center;gap:18px}.schedule-head{margin-top:24px;padding:0 14px 10px;color:#8a928f;font-size:9px;font-weight:800;letter-spacing:.05em}.schedule-row{min-height:48px;padding:8px 14px;border-top:1px solid #ecece7;font-size:11px}.schedule-row:hover{background:#fafbf7}.schedule-row span{display:flex;align-items:center;gap:12px;font-weight:700}.schedule-row i{display:grid;place-items:center;width:27px;height:27px;border-radius:8px;background:#edf3ee;color:#557063;font-style:normal;font-size:9px}.schedule-row b{font-size:11px}.schedule-note{margin:15px 0 0;color:#7a837f;font-size:10px}
@media(max-width:760px){.schedule-head{display:none}.schedule-row{grid-template-columns:1.5fr 1fr 1fr;gap:10px}.schedule-row b:nth-last-child(-n+2){display:none}.schedule-row span{font-size:10px}}
