:root{--bg: #06121f;--bg-panel: rgba(9, 32, 46, .72);--border: rgba(18, 181, 176, .28);--primary: #12b5b0;--primary-deep: #0f4c5c;--text-main: #dff5f3;--text-sub: #9fd7d5;--text-dim: #6f9aa4;--font-family: "PingFang SC", "Microsoft YaHei", "Helvetica Neue", Arial, sans-serif}*{margin:0;padding:0;box-sizing:border-box}html,body,#root{width:100%;height:100%;overflow:hidden}body{font-family:var(--font-family);color:var(--text-main);background:radial-gradient(ellipse at 50% -20%,rgba(18,181,176,.16),transparent 60%),radial-gradient(ellipse at 8% 110%,rgba(15,76,92,.45),transparent 55%),radial-gradient(ellipse at 92% 110%,rgba(15,76,92,.4),transparent 55%),var(--bg)}.screen{position:relative;width:100vw;height:100vh;overflow:hidden}.stage{position:absolute;top:50%;left:50%;width:1920px;height:1080px;transform-origin:center center;display:flex;flex-direction:column;gap:8px;padding:10px 14px 8px;background:linear-gradient(rgba(18,181,176,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(18,181,176,.045) 1px,transparent 1px);background-size:48px 48px}.header{position:relative;flex-shrink:0;height:62px;display:flex;align-items:center;justify-content:center;background:linear-gradient(90deg,#0f4c5c80,#12b5b01f,#0f4c5c80);border:1px solid var(--border);clip-path:polygon(0 0,100% 0,96.5% 100%,3.5% 100%)}.header:before{content:"";position:absolute;top:-1px;left:12%;right:12%;height:2px;background:linear-gradient(90deg,transparent,var(--primary),transparent);box-shadow:0 0 12px #12b5b0e6}.header-title{font-size:30px;font-weight:700;letter-spacing:6px;background:linear-gradient(180deg,#eafffb 20%,#12b5b0 130%);-webkit-background-clip:text;background-clip:text;color:transparent;text-shadow:0 0 28px rgba(18,181,176,.35)}.header-side{position:absolute;top:0;bottom:0;display:flex;align-items:center;gap:14px}.header-left{left:24px}.header-tag{font-size:14px;letter-spacing:2px;color:var(--text-sub);border:1px solid rgba(18,181,176,.4);border-radius:20px;padding:4px 14px;background:#0f4c5c59}.header-right{right:28px;flex-direction:column;align-items:flex-end;gap:0;justify-content:center}.header-date{font-size:13px;letter-spacing:1px;color:var(--text-sub)}.header-time{font-family:DIN Alternate,Consolas,monospace;font-size:24px;font-weight:700;letter-spacing:2px;color:var(--primary);text-shadow:0 0 14px rgba(18,181,176,.6)}.content{flex:1;min-height:0;display:grid;grid-template-columns:1fr 2fr 1fr;gap:10px}.col{display:flex;flex-direction:column;gap:10px;min-height:0}.panel{position:relative;flex:1;min-height:0;display:flex;flex-direction:column;background:var(--bg-panel);border:1px solid var(--border);border-radius:6px;overflow:hidden}.panel:before{content:"";position:absolute;top:-1px;left:26px;width:130px;height:2px;background:linear-gradient(90deg,transparent,var(--primary),transparent);z-index:1}.panel-header{flex-shrink:0;height:34px;display:flex;align-items:center;gap:8px;padding:0 14px;border-bottom:1px solid rgba(18,181,176,.15)}.panel-title{font-size:16px;font-weight:600;letter-spacing:2px;color:#bff1ee}.panel-title:before{content:"";display:inline-block;width:4px;height:14px;margin-right:8px;border-radius:2px;vertical-align:-2px;background:var(--primary);box-shadow:0 0 8px #12b5b0cc}.panel-badge{font-size:11px;color:#f7b733;border:1px solid rgba(247,183,51,.6);border-radius:10px;padding:1px 7px;letter-spacing:1px}.panel-body{flex:1;min-height:0;position:relative;padding:8px 10px 10px}.kpi-row{flex-shrink:0;height:102px;display:grid;grid-template-columns:repeat(6,1fr);gap:10px}.kpi-card{position:relative;display:flex;align-items:center;gap:12px;padding:0 16px;background:linear-gradient(135deg,#12b5b029,#0f4c5c4d);border:1px solid var(--border);border-radius:6px;overflow:hidden}.kpi-card:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(90deg,transparent,rgba(18,181,176,.1),transparent);transform:translate(-100%);animation:kpi-sweep 4.5s ease-in-out infinite}@keyframes kpi-sweep{0%{transform:translate(-100%)}55%,to{transform:translate(100%)}}.kpi-icon{font-size:26px;filter:drop-shadow(0 0 6px rgba(18,181,176,.6))}.kpi-meta{display:flex;flex-direction:column;gap:4px;min-width:0}.kpi-label{font-size:13px;letter-spacing:1px;color:var(--text-sub);white-space:nowrap}.kpi-value{font-family:DIN Alternate,Consolas,monospace;font-size:27px;font-weight:700;color:#eafffb;text-shadow:0 0 12px rgba(18,181,176,.5);white-space:nowrap}.center-grid{flex:1;min-height:0;display:grid;grid-template-columns:1fr 1.35fr;gap:10px}.order-chart-wrap{display:flex;flex-direction:column;height:100%}.chart-area{flex:1;min-height:0}.type-chips{display:flex;flex-wrap:wrap;gap:6px;padding-top:6px}.type-chip{font-size:12px;color:var(--text-sub);border:1px solid rgba(18,181,176,.35);border-radius:10px;padding:2px 8px;letter-spacing:.5px}.chart-empty{height:100%;display:flex;align-items:center;justify-content:center;font-size:14px;letter-spacing:3px;color:var(--text-dim)}.blockchain{display:flex;flex-direction:column;gap:12px;height:100%}.chain-rows{display:flex;flex-direction:column;gap:8px}.chain-row{display:flex;align-items:center;justify-content:space-between;padding:6px 12px;background:#0f4c5c40;border-left:3px solid var(--primary);border-radius:4px}.chain-label{font-size:13px;letter-spacing:1px;color:var(--text-sub)}.chain-value{font-family:Consolas,monospace;font-size:14px;color:#eafffb}.records{margin-top:auto}.records-head{display:flex;justify-content:space-between;font-size:13px;color:var(--text-sub)}.progress{height:10px;margin:8px 0 4px;border-radius:5px;background:#0f4c5c99;overflow:hidden}.progress-bar{height:100%;border-radius:5px;background:linear-gradient(90deg,var(--primary-deep),var(--primary));box-shadow:0 0 10px #12b5b0cc;transition:width .6s ease}.records-percent{font-size:12px;color:var(--text-dim)}.market-list{display:flex;flex-direction:column;gap:10px;height:100%}.market-row{display:flex;align-items:center;gap:10px}.market-breed{width:66px;flex-shrink:0;font-size:13px;color:var(--text-sub)}.market-bar-track{flex:1;height:12px;border-radius:6px;background:#0f4c5c8c;overflow:hidden}.market-bar{height:100%;border-radius:6px;background:linear-gradient(90deg,#0f4c5c,#12b5b0);box-shadow:0 0 8px #12b5b0b3;transition:width .6s ease}.market-price{width:48px;flex-shrink:0;text-align:right;font-family:Consolas,monospace;font-size:14px;font-weight:700;color:#eafffb}.market-unit{width:40px;flex-shrink:0;font-size:11px;color:var(--text-dim)}.market-date{margin-top:auto;text-align:right;font-size:12px;color:var(--text-dim)}.footer{flex-shrink:0;height:36px;display:flex;align-items:center;gap:16px;border-top:1px solid rgba(18,181,176,.18);padding:0 6px}.marquee{flex:1;overflow:hidden}.marquee-inner{display:flex;white-space:nowrap;animation:marquee 30s linear infinite}@keyframes marquee{to{transform:translate(-50%)}}.marquee-inner span{font-size:13px;letter-spacing:2px;color:var(--text-sub);padding-right:80px}.footer-time{font-family:Consolas,monospace;font-size:12px;color:var(--text-dim);white-space:nowrap}.loading-mask,.error-mask{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:flex;align-items:center;justify-content:center;background:#040c14d9}.loading-mask{font-size:16px;letter-spacing:3px;color:var(--text-sub)}.error-card{max-width:560px;text-align:center;padding:36px 48px;background:#09202eeb;border:1px solid rgba(247,183,51,.5);border-radius:8px}.error-card h2{margin-bottom:10px;font-size:22px;color:#f7b733}.error-card p{margin-bottom:18px;font-size:14px;color:var(--text-sub);word-break:break-all}.error-card button,.error-toast button{padding:8px 28px;border:none;border-radius:4px;cursor:pointer;font-size:14px;color:#fff;background:linear-gradient(90deg,#0f4c5c,#12b5b0)}.error-toast{position:fixed;top:16px;left:50%;z-index:60;display:flex;align-items:center;gap:12px;transform:translate(-50%);padding:8px 16px;font-size:13px;color:#ffd9a0;background:#783228eb;border:1px solid rgba(247,183,51,.5);border-radius:4px}.refresh-btn{position:fixed;right:18px;top:18px;z-index:70;padding:6px 14px;font-size:13px;letter-spacing:1px;color:var(--primary);background:#09202ed9;border:1px solid var(--border);border-radius:4px;cursor:pointer;transition:all .2s ease}.refresh-btn:hover{color:#eafffb;border-color:var(--primary);box-shadow:0 0 12px #12b5b080}
