:root{font-family:Inter,"Microsoft JhengHei",sans-serif;color:#203147;background:#f5f7fa;font-size:14px}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button,.import{cursor:pointer;border:1px solid #dce3eb;background:white;padding:10px 15px;border-radius:7px;color:#425369}button:hover,.import:hover{background:#eef4fa}.primary{background:#087be7;color:white;border-color:#087be7}.primary:hover{background:#0769c5}aside{position:fixed;width:238px;background:#fff;height:100vh;border-right:1px solid #e5eaf0;padding:28px 18px;display:flex;flex-direction:column}.brand{display:flex;align-items:center;gap:10px;font-size:17px;font-weight:700}.brand img{width:44px;height:44px;object-fit:cover;border-radius:10px}.brand small{font-size:9px;letter-spacing:2px;color:#8c9bab;display:block;margin-top:5px}.workspace{border:1px solid #e3e8ee;border-radius:7px;padding:13px;margin:30px 0}.workspace span{float:right}.nav-label{color:#9ca8b7;margin:0 14px 12px;font-size:11px;letter-spacing:2px}nav button{display:block;border:0;width:100%;text-align:left;padding:14px;margin-bottom:5px;color:#69788b;background:transparent}nav button.active{background:#eaf3ff;color:#087be7;font-weight:bold}nav i{font-style:normal;display:inline-block;width:28px;font-size:18px}.side-bottom{margin-top:auto;color:#758397;font-size:12px}.online{font-size:11px;color:#29a383}.side-bottom p{border-bottom:1px solid #edf0f4;padding-bottom:20px}.side-bottom p small{float:right}.person{display:flex;gap:10px;align-items:center}.person b,.avatar{background:#e8f2ff;color:#147cdb;padding:10px;border-radius:50%}.person small{display:block;font-size:10px;margin-top:5px}main{margin-left:238px}header{height:77px;background:white;border-bottom:1px solid #e5eaf0;display:flex;align-items:center;justify-content:space-between;padding:0 36px;font-size:12px;color:#8290a1}header span{margin:0 13px}header b{color:#405168}.header-right{display:flex;align-items:center;gap:12px}.demo{color:#7f8da0;font-size:11px}.content{padding:34px 36px}.heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:30px}.eyebrow{font-size:10px;font-weight:bold;color:#1698ad;letter-spacing:2px}h1{font-size:28px;margin:9px 0 10px;letter-spacing:1px}.heading p{margin:0;color:#8390a0;font-size:13px}.actions{display:flex;gap:12px}select{background:white;border:1px solid #dce3eb;border-radius:7px;padding:10px;color:#4e6074}.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}.card,.panel{background:white;border:1px solid #e3e8ef;border-radius:10px}.card{padding:22px}.card-top{display:flex;justify-content:space-between;color:#77869a;font-size:12px}.card-top i{font-style:normal;color:#087be7;background:#eff6ff;padding:7px;border-radius:7px}.metric{font-size:28px;font-weight:650;margin:15px 0 12px;font-variant-numeric:tabular-nums;letter-spacing:-.8px}.metric small{font-size:13px;color:#92a0af;font-weight:normal}.note{font-size:11px;color:#92a0af}.green{color:#18a084}.orange{color:#db9140}.grid{display:grid;grid-template-columns:1.65fr 1fr;gap:20px;margin-top:22px}.panel{overflow:hidden}.panel-head{padding:22px 23px;display:flex;align-items:center;justify-content:space-between}.panel-head h2{font-size:15px;margin:0}.panel-head p{font-size:11px;color:#94a0af;margin:7px 0 0}.panel-head button{border:0;color:#1684df;font-size:12px;padding:0}.chart{height:220px;padding:5px 25px 20px;display:flex;align-items:end;justify-content:space-around;gap:16px;background:repeating-linear-gradient(to top,transparent 0,transparent 44px,#f0f3f7 45px)}.bar-group{height:100%;display:flex;align-items:end;gap:7px;position:relative;padding-bottom:25px;width:45px}.bar{width:18px;background:#1985e8;border-radius:4px 4px 0 0}.bar.cost{background:#9edbd9}.bar-group label{position:absolute;bottom:0;font-size:11px;color:#94a0af}.legend{font-size:11px;color:#8b99aa}.legend b{color:#1685e8}.legend em{color:#81cbc8;font-style:normal}.alert{padding:15px 22px;border-top:1px solid #f0f3f6;display:flex;gap:13px;align-items:center}.alert-icon{background:#fff4e4;color:#dd9b3d;padding:10px;border-radius:8px}.alert b{font-size:12px}.alert p{font-size:11px;color:#9aa6b4;margin:6px 0 0}.alert strong{margin-left:auto;font-size:12px;color:#536378}.toolbar{display:flex;gap:12px;padding:0 22px 20px}.toolbar input{width:300px}.toolbar select{margin-left:auto}input{padding:10px 12px;border:1px solid #dee5ec;border-radius:6px;outline-color:#087be7}table{border-collapse:collapse;width:100%;font-size:12px}th{text-align:left;color:#8a98a9;background:#fafbfd;font-weight:500;font-size:11px}td,th{padding:16px 22px;border-bottom:1px solid #eff2f6}td b{font-weight:600}td small{display:block;color:#99a5b4;margin-top:5px;font-size:10px}.badge{padding:5px 9px;border-radius:4px;background:#edf5ff;color:#3785ce;font-size:10px;white-space:nowrap}.badge.good{background:#eaf8f3;color:#27a084}.badge.warn{background:#fff6e7;color:#ce9338}.progress{display:flex;gap:9px;align-items:center;font-size:10px;color:#96a2b0}.track{width:65px;height:5px;background:#edf2f7;border-radius:4px}.track div{height:100%;background:#238ce6;border-radius:4px}.tablewrap{overflow-x:auto}.empty{padding:45px;text-align:center;color:#97a2b0}footer{display:flex;justify-content:space-between;font-size:10px;color:#a0adbb;margin-top:28px}dialog{border:0;border-radius:12px;padding:26px;width:490px;box-shadow:0 20px 80px #152d4e33}dialog::backdrop{background:#112b4960}.dialog-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.dialog-head h2{font-size:20px}.dialog-head button{border:0}.field{display:block;margin:14px 0;color:#768598;font-size:12px}.field input,.field select{display:block;width:100%;margin-top:7px}.dialog-foot{display:flex;justify-content:flex-end;gap:10px;margin-top:25px}#toast{position:fixed;bottom:25px;right:25px;background:#223c54;color:white;padding:14px 22px;border-radius:8px;display:none}.rowaction{padding:5px 9px;font-size:11px}.banner{margin-bottom:20px;background:#eef7ff;border:1px solid #d8eaff;padding:14px 18px;border-radius:8px;font-size:12px;color:#5180a7;line-height:1.8}@media(min-width:1500px){.content{max-width:1550px;margin:auto}.chart{height:260px}}@media(max-width:1100px){aside{width:200px}main{margin-left:200px}.content{padding:25px}.cards{grid-template-columns:repeat(2,1fr)}.grid{grid-template-columns:1fr}.demo{display:none}}@media(max-width:700px){aside{position:static;width:100%;height:auto;padding:16px}.workspace,.nav-label,.side-bottom{display:none}nav{display:flex;overflow:auto;margin-top:15px}nav button{white-space:nowrap;width:auto;padding:10px}nav i{display:none}main{margin:0}header{padding:12px;height:auto}.header-right{gap:5px}.avatar{display:none}.content{padding:20px 14px}.heading{align-items:start;gap:18px;flex-direction:column}.cards{gap:10px}.card{padding:15px}.metric{font-size:23px}.grid{gap:15px}td,th{padding:14px}.header-right button,.import{font-size:10px;padding:8px}footer span{display:none}}
nav{overflow-y:auto;min-height:120px}.side-bottom{padding-top:15px}dialog{max-height:90vh;overflow-y:auto;width:650px}.journal-line{display:grid;grid-template-columns:2fr 1fr 1fr 35px;gap:6px;margin-bottom:10px}.journal-line input{width:100%;min-width:0}.journal-line select{min-width:0}.journal-line button{padding:8px}#fields:has([name="base"]){display:grid;grid-template-columns:1fr 1fr;gap:0 18px}@media(max-width:700px){nav{min-height:0;overflow-x:auto;overflow-y:hidden}#fields:has([name="base"]){grid-template-columns:1fr}.journal-line{grid-template-columns:1fr 1fr}.journal-line select{grid-column:span 2}}

#auth-screen{position:fixed;inset:0;background:#eef4fa;z-index:9999;display:grid;place-items:center}#auth-screen[hidden]{display:none}.auth-card{width:min(420px,92vw);background:white;padding:35px;border-radius:18px;border:1px solid #dce7f0;box-shadow:0 20px 80px #17344d15}.auth-card>img{width:75px;border-radius:14px}.auth-card>small{display:block;margin-top:25px;color:#8393a3;font-size:11px}.auth-card button{width:100%}#login-error{font-size:12px;color:#c63c41}header{height:auto;min-height:77px;gap:10px;flex-wrap:wrap;padding-top:10px;padding-bottom:10px}.header-right{flex-wrap:wrap}button:disabled{opacity:.5;cursor:not-allowed}
