:root{font-family:Inter,Microsoft YaHei UI,Microsoft YaHei,system-ui,sans-serif;color:#172b3a;background:#f4f7f8;font-synthesis:none}*{box-sizing:border-box}body{margin:0;min-width:320px;background:#f4f7f8}button,input,select{font:inherit}button{cursor:pointer}.app-shell{min-height:100vh;display:flex}.sidebar{width:248px;flex:0 0 248px;background:#112b3a;color:#dbe8ec;padding:22px 14px 16px;display:flex;flex-direction:column}.logo{display:flex;align-items:center;gap:11px;padding:0 10px 28px;border-bottom:1px solid rgba(255,255,255,.1)}.logo b{display:block;font-size:16px;letter-spacing:0;color:#fff}.logo small,.sidebar small{display:block;color:#8eabb5;margin-top:3px;font-size:12px}.brand-mark{width:38px;height:38px;border-radius:8px;display:inline-flex;justify-content:center;align-items:center;background:#13a894;color:#fff;box-shadow:inset 0 0 0 1px #ffffff26}nav{padding-top:22px;display:grid;gap:4px}nav button{border:0;background:transparent;color:#b3c7cd;min-height:46px;padding:0 12px;display:grid;grid-template-columns:24px 1fr 16px;gap:9px;align-items:center;text-align:left;border-radius:6px}nav button svg:last-child{opacity:0}nav button:hover{background:#173b4c;color:#fff}nav button.active{background:#164b57;color:#42d6c2;font-weight:700}nav button.active svg:last-child{opacity:1}.sidebar-bottom{margin-top:auto;padding:18px 8px 4px;border-top:1px solid rgba(255,255,255,.1);display:flex;align-items:center;gap:9px}.sidebar-bottom .avatar{background:#e49c33;color:#fff;font-weight:700;width:31px;height:31px;display:grid;place-items:center;border-radius:50%}.sidebar-bottom b{color:#fff;font-size:13px}.sidebar-bottom>div{flex:1}.sidebar-bottom button{color:#a9bec5;border:0;background:transparent;padding:5px}.content{min-width:0;flex:1}.content>header{min-height:78px;background:#fff;border-bottom:1px solid #dfe8ea;padding:15px 34px;display:flex;align-items:center}.page-content{max-width:1600px;margin:0 auto;padding:28px 34px 48px}.page-heading{display:flex;justify-content:space-between;gap:24px;align-items:flex-end;margin-bottom:22px}.page-heading h2{margin:2px 0 5px;font-size:25px;color:#173444;line-height:1.2}.eyebrow{margin:0;color:#168675;text-transform:uppercase;font-size:12px;font-weight:800;letter-spacing:0}.muted{color:#71838e;margin:0;font-size:13px}.split{align-items:center}.range-control{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.period-buttons{display:flex;border:1px solid #d4e0e4;background:#f9fbfb;border-radius:6px;overflow:hidden}.period-buttons button{border:0;background:transparent;color:#526a76;padding:9px 13px;font-size:13px}.period-buttons button+button{border-left:1px solid #dce6e8}.period-buttons button.selected{background:#174a59;color:#fff}.date-inputs{display:flex;align-items:center;gap:7px;color:#71838e;font-size:13px}.date-inputs input,.filter-bar select,.inline-form input,.inline-form select{border:1px solid #cbdadd;background:#fff;border-radius:5px;padding:8px 9px;color:#284251}.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:18px}.metric{min-height:115px;display:flex;align-items:center;gap:13px;padding:18px;background:#fff;border:1px solid #dce7e9;border-radius:7px;box-shadow:0 1px 2px #19354108}.metric-icon{width:42px;height:42px;border-radius:7px;display:grid;place-items:center}.metric-icon.green{color:#07927e;background:#dff5ef}.metric-icon.blue{color:#2469d9;background:#e4efff}.metric-icon.orange{color:#be7718;background:#fff0d5}.metric-icon.violet{color:#8750c7;background:#f1e8ff}.metric p{margin:0 0 7px;color:#71838e;font-size:13px}.metric strong{display:block;color:#183a4a;font-size:24px;letter-spacing:0;overflow-wrap:anywhere}.panel{background:#fff;border:1px solid #dce7e9;border-radius:7px;padding:19px 20px;margin-bottom:18px;box-shadow:0 1px 2px #19354108}.panel-title{display:flex;justify-content:space-between;align-items:center;margin-bottom:13px}.panel-title h3{font-size:16px;margin:0 0 4px;color:#183a4a}.panel-title p{margin:0;color:#71838e;font-size:12px}.trend-panel .chart{height:290px}.chart{height:260px;width:100%}.two-columns,.admin-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.two-columns .panel{min-width:0}table{border-collapse:collapse;width:100%;font-size:13px}th{text-align:left;font-size:12px;color:#70818a;font-weight:700;background:#f6f9f9;white-space:nowrap}th,td{padding:11px 10px;border-bottom:1px solid #e4ecee;vertical-align:middle}tr:last-child td{border-bottom:0}td{color:#284251}td small{display:block;color:#82929a;max-width:140px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;margin-top:2px}.amount{font-variant-numeric:tabular-nums;color:#087b6d;font-weight:700;white-space:nowrap}.table-scroll,.compact-table{overflow-x:auto}.compact-table table{min-width:530px}.table-panel{padding:0;overflow:hidden}.table-panel table{min-width:860px}.table-panel th{padding-top:13px;padding-bottom:13px}.empty{text-align:center;color:#809099;padding:34px}.filter-bar{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:18px}.filter-bar label{color:#667b86;display:flex;align-items:center;gap:8px;font-size:13px}.filter-bar select{min-width:150px}.primary,.secondary{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:37px;border-radius:5px;font-weight:700;font-size:13px;padding:8px 12px}.primary{border:1px solid #087f70;background:#0d9e8c;color:#fff}.primary:hover{background:#078777}.primary:disabled{opacity:.6;cursor:wait}.secondary{border:1px solid #bed0d5;background:#fff;color:#31505c}.secondary:hover{background:#f4f8f8}.action-row{display:flex;gap:9px;flex-wrap:wrap}.upload-button{position:relative}.upload-button input{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;cursor:pointer}.notice{margin:0 0 16px;padding:10px 13px;background:#e7f6f1;border:1px solid #b6e6da;color:#087562;border-radius:5px;font-size:13px}.form-error{color:#bf3550;margin:9px 0;font-size:13px}.inline-form{display:flex;flex-wrap:wrap;gap:8px}.inline-form input{flex:1 1 120px;min-width:0}.inline-form select{flex:0 1 110px}.inline-form .primary{flex:0 0 auto}.status{display:inline-block;background:#e7eef0;color:#50636c;padding:3px 6px;border-radius:4px;font-size:11px;font-weight:700}.status.completed{color:#087b6d;background:#dcf4ed}.status.completed_with_errors,.status.not_configured{color:#9a641a;background:#fff0d9}.status.failed{color:#b5344e;background:#ffeaee}.status.login_required,.status.ui_changed{color:#9a641a;background:#fff0d9}.status.never_run{color:#50636c;background:#e7eef0}.sync-status{border-left:4px solid #12a594}.sync-status.warn{border-left-color:#ed9a28}.sync-status .compact-table table{min-width:0}.sync-status .compact-table th{width:132px;background:transparent;padding:6px 12px 6px 0;vertical-align:top}.sync-status .compact-table td{padding:6px 0;vertical-align:top;word-break:break-word}.sync-status .compact-table tr:last-child td{border-bottom:0}.sync-status .muted{margin:12px 0 0;font-size:12px;line-height:1.6}.stale-banner{display:flex;gap:12px;align-items:flex-start;margin:0 0 18px;padding:13px 15px;border:1px solid #f0cf94;border-left:4px solid #ed9a28;background:#fff8ec;border-radius:6px;color:#8a5a12}.stale-banner svg{flex:0 0 auto;margin-top:2px}.stale-banner b{display:block;font-size:14px;margin-bottom:3px}.stale-banner span{display:block;font-size:13px;line-height:1.6}.stale-banner .muted{color:#a07a44;font-size:12px;margin-top:4px}.mono{font-family:ui-monospace,Cascadia Mono,Consolas,monospace;font-size:11px;color:#667b86;word-break:break-all;max-width:260px}.tag-warn{display:inline-block;background:#fff0d9;color:#9a641a;border-radius:4px;padding:2px 7px;font-size:11px;font-weight:700}.total-row td{background:#f6f9f9;border-top:2px solid #dce7e9}.share{display:flex;align-items:center;gap:8px;min-width:120px}.share-track{flex:1;height:6px;background:#e7eef0;border-radius:3px;overflow:hidden}.share-fill{display:block;height:100%;background:linear-gradient(90deg,#12a594,#3c78e8);border-radius:3px}.share small{color:#667b86;font-size:11px;font-variant-numeric:tabular-nums;white-space:nowrap}.narrow-panel{max-width:560px}.stack-form{display:grid;gap:13px;margin-top:18px}.stack-form label{display:grid;gap:6px;color:#46606b;font-size:13px;font-weight:700}.stack-form input{min-height:40px;border:1px solid #c8d7da;border-radius:5px;padding:8px 10px}.stack-form .primary{justify-self:start;min-width:140px}.row-actions{display:flex;gap:7px;flex-wrap:wrap}.secondary.small{min-height:30px;padding:4px 10px;font-size:12px;font-weight:600}.row-disabled td{opacity:.55}select{min-height:34px;border:1px solid #c8d7da;border-radius:5px;padding:5px 8px;background:#fff}.login-page{min-height:100vh;display:grid;place-items:center;padding:24px;background:#e7eff0}.login-panel{width:min(430px,100%);background:#fff;border:1px solid #d9e5e6;border-radius:8px;padding:39px;box-shadow:0 16px 45px #1c404b21}.login-panel .brand-mark{margin-bottom:21px}.login-panel h1{color:#173444;font-size:27px;margin:4px 0 10px}.login-panel .muted{line-height:1.65}.login-panel form{display:grid;gap:15px;margin-top:28px}.login-panel label{display:grid;gap:6px;color:#46606b;font-size:13px;font-weight:700}.login-panel input{min-height:42px;border-radius:5px;border:1px solid #c8d7da;padding:9px 10px}.wide{width:100%;min-height:42px}@media (max-width: 1050px){.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.two-columns,.admin-grid{grid-template-columns:1fr}.sidebar{width:210px;flex-basis:210px}.page-content{padding:24px}.content>header{padding:14px 24px}}@media (max-width: 720px){.app-shell{display:block}.sidebar{width:100%;min-height:auto;padding:13px}.logo{border:0;padding:0 7px 12px}.sidebar nav{display:flex;overflow-x:auto;padding:0}.sidebar nav button{min-width:max-content;grid-template-columns:20px 1fr}.sidebar nav button svg:last-child{display:none}.sidebar-bottom{display:none}.content>header{padding:12px 15px}.page-content{padding:20px 15px 35px}.metric-grid{grid-template-columns:1fr 1fr;gap:10px}.metric{padding:13px;min-height:95px}.metric strong{font-size:18px}.metric-icon{width:34px;height:34px}.page-heading{align-items:flex-start;flex-direction:column;gap:12px}.range-control{width:100%}.period-buttons{max-width:100%;overflow-x:auto}.period-buttons button{white-space:nowrap;padding:8px 10px}.action-row{width:100%}.action-row>*{flex:1}.panel{padding:15px}.trend-panel .chart{height:250px}}
