:root{font-family:Inter,'Segoe UI',Arial,sans-serif;color:#26354c;background:#f4f6fa;font-size:14px}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer}h1,h2,h3,p{margin-top:0}h1{font-size:24px;margin:5px 0 0}h2{font-size:20px;margin:0 0 6px}h3{font-size:15px}p{line-height:1.55}.shell{display:flex;min-height:100vh}.sidebar{width:250px;flex:0 0 250px;background:#fff;border-right:1px solid #e9eaf0;display:flex;flex-direction:column;position:sticky;height:100vh;top:0}.brand{background:linear-gradient(130deg,#8a1730,#c32e45);color:white;display:flex;gap:12px;align-items:center;padding:25px 18px;min-height:110px}.brand strong{letter-spacing:1px;font-size:17px}.brand small{display:block;opacity:.9;margin-top:6px;font-size:11px}.emblem{width:43px;height:43px;display:grid;place-items:center;border:2px solid #ffdc76;border-radius:50%;color:#ffdd7f;font-size:25px}.sidebar nav{padding:18px 10px;display:grid;gap:5px}.sidebar nav button{background:transparent;border:0;text-align:left;color:#516079;padding:13px 15px;border-radius:10px;font-weight:600}.sidebar nav button:hover,.sidebar nav button.active{color:#aa243b;background:#fff0f2}.sidefoot{margin-top:auto;padding:22px 18px;border-top:1px solid #eee;color:#788398;line-height:1.8;font-size:12px}.main{flex:1;min-width:0;padding:25px 32px;max-width:1800px}.top{display:flex;justify-content:space-between;align-items:center;gap:12px;padding-bottom:24px}.eyebrow{color:#a21e35;letter-spacing:1.5px;font-weight:800;font-size:11px}.topright{display:flex;gap:14px;align-items:center}.pill{background:#fff0e5;color:#a96920;border-radius:30px;padding:8px 12px;font-size:12px;font-weight:700}.btn{border:1px solid #dfe3ea;background:white;border-radius:9px;padding:10px 13px;font-weight:650;color:#45546e;white-space:nowrap}.btn:hover{filter:brightness(.97)}.btn.primary{background:#a21e38;border-color:#a21e38;color:white}.btn.outline{background:white}.btn.soft{background:#fff1f3;color:#a21e38;border:0}.notice{display:flex;align-items:center;background:#fff8e9;border:1px solid #f6e1ac;border-radius:10px;overflow:hidden;margin-bottom:26px;height:42px;color:#865d17}.notice>span{flex-shrink:0;background:#f9e4b6;font-weight:800;font-size:11px;padding:15px}.notice marquee{padding:0 15px}.page{display:none}.page.active{display:block}.sectiontitle{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:0 0 20px}.sectiontitle p,.panelhead span{color:#8893a6;font-size:12px;margin:0}select,input,textarea{border:1px solid #dfe3ea;background:white;border-radius:8px;color:#37445b;padding:11px 12px;min-width:0}input:focus,textarea:focus,select:focus{outline:2px solid #f6bdc7}.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:20px}.stat{background:white;border-radius:13px;padding:20px;box-shadow:0 2px 12px #1e30550a;border:1px solid #ecedf1}.stat .label{font-size:12px;color:#8490a3}.stat .value{font-size:30px;font-weight:850;margin:14px 0 3px;color:#22334b}.stat .hint{font-size:11px;color:#8190a0}.stat .icon{float:right;background:#fff0f3;border-radius:10px;padding:9px;color:#ae2944;font-size:22px}.charts,.two{display:grid;grid-template-columns:1.3fr 1fr;gap:18px;margin-bottom:20px}.three{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-bottom:20px}.panel{background:#fff;border:1px solid #eaedf2;border-radius:13px;box-shadow:0 3px 14px #253a6006;overflow:hidden;margin-bottom:18px}.panel.pad{padding:24px}.panelhead{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:19px 20px;border-bottom:1px solid #eef0f4}.panelhead h3{margin:0}.graph{height:270px;padding:18px;position:relative}.rankitem{display:flex;gap:10px;padding:12px 18px;border-bottom:1px solid #f0f2f5;align-items:center}.ranknum{width:27px;height:27px;display:grid;place-items:center;background:#f5f6fa;border-radius:50%;font-size:11px;font-weight:bold;flex-shrink:0}.ranktitle{min-width:0;flex:1}.ranktitle strong{font-size:12px;display:block;line-height:1.4}.ranktitle small{color:#8c97a6}.progress{height:7px;background:#eef0f4;border-radius:9px;overflow:hidden;margin-top:7px}.progress div{height:100%;background:#ac2943;border-radius:9px}.percent{font-weight:800;color:#a21e38;white-space:nowrap}.muted{color:#8b95a5}.empty{padding:26px;text-align:center;color:#8994a3}table{border-collapse:collapse;width:100%;font-size:12px}th{text-align:left;padding:13px 15px;color:#66758e;background:#f9fafc;font-size:11px;white-space:nowrap}td{padding:12px 15px;border-top:1px solid #f1f2f5;vertical-align:middle}td strong{font-weight:700}.tablewrap{overflow-x:auto}td:nth-child(1){white-space:nowrap}.status{font-size:11px;font-weight:750;padding:5px 9px;border-radius:20px;white-space:nowrap}.status.done{color:#168257;background:#e3f8ec}.status.doing{color:#ad771e;background:#fff3da}.status.none{color:#7a8799;background:#edf0f3}.filters{display:flex;gap:10px;flex-wrap:wrap;padding:17px}.filters input{flex:2 1 190px}.filters select{flex:1 1 140px}.pager{padding:15px;display:flex;justify-content:space-between;align-items:center;gap:10px;color:#8893a6}.pager .btn{margin-left:6px}.small{font-size:12px;color:#8b95a5;margin:12px 0}.buttons{display:flex;gap:9px;flex-wrap:wrap;margin:18px 0}.pad label,.dialogbody label{display:block;font-weight:650;font-size:12px;margin-top:14px;margin-bottom:7px}.pad input,.pad textarea,.dialogbody input,.dialogbody select,.dialogbody textarea{width:100%}.pad hr{border:0;border-top:1px solid #eee;margin:24px 0}.guide h3{margin:22px 0 8px}.report{padding:30px}.report h2{text-align:center}.report-meta{text-align:center;color:#8893a6}footer{margin-top:20px;padding:20px 0;color:#a0a8b4;font-size:11px;display:flex;justify-content:space-between}.mobile-menu{display:none}dialog{border:0;border-radius:14px;box-shadow:0 20px 90px #111a304d;min-width:min(95vw,500px);padding:0}dialog::backdrop{background:#121b3055}dialog header{padding:16px 22px;border-bottom:1px solid #eee;display:flex;align-items:center;justify-content:space-between}dialog header h3{margin:0}dialog .dialogbody{padding:10px 22px 20px;max-height:65vh;overflow:auto}dialog footer{padding:14px 22px;border-top:1px solid #eee;justify-content:flex-end;margin:0;gap:8px}.x{border:0;background:none;font-size:23px}#toast{position:fixed;bottom:25px;right:25px;padding:13px 20px;background:#26354c;color:white;border-radius:9px;box-shadow:0 8px 30px #0002;display:none;z-index:20}.microbar{width:105px}.taskcards{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin:12px 0}.taskcard{border:1px solid #eee;border-radius:8px;padding:12px;font-size:12px}.taskcard b{display:block;font-size:21px;color:#a21e38;margin:7px 0}@media(max-width:1100px){.stats{grid-template-columns:repeat(2,1fr)}.three{grid-template-columns:1fr 1fr}.charts{grid-template-columns:1fr}.main{padding:20px}}@media(max-width:740px){.sidebar{position:fixed;z-index:12;transform:translateX(-100%);transition:transform .2s}.sidebar.show{transform:translateX(0)}.mobile-menu{display:inline-flex;border:0;background:none;font-size:22px}.main{padding:14px}.top{align-items:flex-start}.topright{flex-wrap:wrap;justify-content:flex-end}.topright #clock{display:none}.stats,.two,.three{grid-template-columns:1fr}.sectiontitle{align-items:flex-start;flex-wrap:wrap}.report{padding:12px}}@media print{.sidebar,.topright,.notice,.filters,.pager,.btn,.mobile-menu,.sectiontitle{display:none!important}.main{padding:0}.page{display:none!important}#reports{display:block!important}body{background:white}.panel{box-shadow:none;border:0}.report{padding:0}footer{display:none}}
