@import url('https://fonts.googleapis.com/css2?family=Be+Vietnam+Pro:wght@400;450;500;550;600;650;700;750;800&display=swap');
:root{--blue:#1724ae;--navy:#101747;--red:#ed2447;--text:#182342;--muted:#7a8397;--border:#e9ecf3;--green:#159c79;--bg:#f6f8fc}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:13px 'Be Vietnam Pro',Arial,sans-serif}button,input,select,textarea{font:inherit}button,a,select{cursor:pointer}button{transition:background .15s,transform .15s}button:hover{filter:brightness(.96)}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #a7b5ff;outline-offset:2px}.sidebar{width:238px;background:white;border-right:1px solid var(--border);height:100vh;position:fixed;display:flex;flex-direction:column;padding:33px 19px 20px}.brand{height:48px;padding-left:14px}.brand img{width:100px;height:45px;object-fit:contain;object-position:left center}.brand strong{font-size:43px;letter-spacing:-3px;color:var(--blue);line-height:1}.brand strong span{color:var(--red);font-size:42px;margin-left:7px}.brand-caption{font-size:9px;letter-spacing:2px;margin:15px 14px 29px;color:#8c93a9}.workspace{display:flex;gap:11px;padding:14px 10px;border:1px solid var(--border);border-radius:9px;align-items:center;font-weight:600;font-size:12px}.workspace small{display:block;font-size:10px;color:var(--muted);font-weight:400;margin-top:5px}.workspace-icon{display:grid;place-items:center;background:#eef0ff;color:var(--blue);height:32px;width:32px;border-radius:7px;font-weight:700}.nav-label{font-size:9px;letter-spacing:1.5px;color:#9aa1b0;margin:30px 13px 12px}nav button{width:100%;border:0;background:transparent;color:#778096;text-align:left;padding:12px 13px;border-radius:7px;margin:3px 0;display:flex;align-items:center;gap:12px;font-size:12px}nav button.active{background:#eef0ff;color:var(--blue);font-weight:650}nav svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.7}nav .count{margin-left:auto;font-size:10px;background:white;padding:3px 6px;border-radius:4px}.sidebar-bottom{margin-top:auto;padding:20px 11px 0;font-size:10px;color:#68748b;border-top:1px solid var(--border)}.sidebar-bottom small{display:block;font-size:10px;line-height:1.7;margin:9px 0 13px;color:#99a1b1}.sidebar-backup{border:0;background:transparent;padding:0;color:var(--blue);font-size:11px}.main{margin-left:238px}header{height:76px;background:#fff;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;padding:0 34px}.breadcrumb{font-size:11px;color:var(--muted)}.breadcrumb span{margin:0 14px;color:#c9cdda}.breadcrumb b{font-weight:500;color:#404e68}.header-right{display:flex;align-items:center;gap:22px}.private-badge{font-size:10px;color:#7f8a9b}.avatar{height:33px;width:33px;background:#eff1fb;color:var(--blue);border:3px solid white;box-shadow:0 0 0 1px #e5e9f3;border-radius:50%;display:grid;place-items:center;font-size:10px;font-weight:700}main{max-width:1720px;margin:auto;padding:32px 34px 0}.page-heading{display:flex;justify-content:space-between;align-items:center;gap:16px}.eyebrow{font-size:9px;letter-spacing:1.6px;color:var(--blue);font-weight:600}h1{font-size:26px;letter-spacing:-.9px;line-height:1.4;margin:8px 0}p{color:var(--muted);line-height:1.8}h1+p{font-size:11px;margin:0}.heading-actions{display:flex;gap:9px}.btn{padding:11px 15px;border:1px solid #dce1ed;border-radius:6px;background:white;color:#4a5670;font-size:11px;font-weight:500}.primary{background:var(--blue);border-color:var(--blue);color:white}.source-line{display:flex;align-items:center;gap:8px;color:#858fa1;font-size:10px;margin:22px 0}.live-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:#2abb94;margin-right:2px}.source-tag{margin-left:7px;font-size:9px;padding:4px 7px;border-radius:4px;background:#edf1f8;color:#7b87a0}.filters{display:flex;gap:12px;padding:15px 18px;background:#fff;border:1px solid var(--border);border-radius:9px;margin-bottom:22px;flex-wrap:wrap;align-items:end}.filter{flex:1;min-width:115px}.filter label{font-size:9px;color:var(--muted);display:block;margin-bottom:8px}.filter select,.filter input{border:1px solid #e3e7ef;border-radius:5px;padding:9px 10px;background:#fff;color:#4d5972;font-size:11px;width:100%;min-height:36px}.filter.search{flex:1.4}.reset{background:#f7f8fc;border:0;border-radius:5px;height:36px;color:#8d96a9;padding:0 10px}.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:21px}.kpi{background:white;border:1px solid var(--border);border-radius:9px;padding:19px 20px;text-align:left;position:relative;color:inherit}.kpi .label{font-size:11px;color:#7d879c}.kpi .value{font-size:32px;letter-spacing:-1.5px;font-weight:650;margin:14px 0 10px}.kpi small{font-size:10px;color:#97a0b1}.kpi-icon{float:right;border-radius:7px;background:#eff1ff;color:var(--blue);width:29px;height:29px;display:grid;place-items:center}.green .kpi-icon{background:#eaf9f3;color:#179c79}.orange .kpi-icon{background:#fff6e8;color:#e7a02c}.kpi-line{height:3px;background:#f0f2f8;border-radius:8px;margin-top:17px;overflow:hidden}.kpi-line i{display:block;height:100%;background:var(--blue);border-radius:8px}.green .kpi-line i{background:#23b18d}.orange .kpi-line i{background:#eda83c}.grid-two{display:grid;grid-template-columns:1.55fr 1fr;gap:20px;margin-bottom:20px}.panel{background:white;border:1px solid var(--border);border-radius:9px;overflow:hidden;margin-bottom:20px}.grid-two .panel{margin-bottom:0}.panel-heading{padding:20px 22px;display:flex;justify-content:space-between;align-items:center;gap:10px}.panel-heading h2{font-size:13px;margin:0;font-weight:600}.panel-heading p{font-size:10px;margin:6px 0 0;color:#969fb0}.subtle{font-size:10px;color:#929bad}.legend{display:flex;gap:13px;font-size:9px;color:#8c95a6}.legend i{display:inline-block;width:7px;height:7px;border-radius:2px;background:var(--blue);margin-right:5px}.legend .pending{background:#dce3fb}.bar-chart{padding:9px 22px 22px}.bar-row{display:grid;grid-template-columns:120px 1fr 47px;gap:14px;align-items:center;margin:21px 0;color:#64718a;font-size:10px;border:0;background:transparent;width:100%;text-align:left;padding:0}.bar-track{height:17px;background:#f5f7fc;border-radius:4px;overflow:hidden;display:flex}.bar-track .done{background:var(--blue)}.bar-track .todo{background:#dce3fb}.bar-row b{text-align:right;font-size:10px;font-weight:500}.chart-axis{display:flex;justify-content:space-between;margin-left:134px;margin-right:61px;font-size:8px;color:#b0b8c7}.donut-layout{display:flex;align-items:center;gap:23px;padding:12px 24px 26px}.donut{width:144px;height:144px;border-radius:50%;display:grid;place-items:center;flex-shrink:0}.donut-hole{width:111px;height:111px;background:#fff;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center}.donut-hole b{font-size:26px;font-weight:650;letter-spacing:-1px}.donut-hole span{font-size:9px;color:#8a94a8;margin-top:6px}.donut-key{flex:1}.donut-key button{display:flex;justify-content:space-between;align-items:center;width:100%;background:none;border:0;padding:11px 0;font-size:10px;color:#7d879a}.donut-key i{display:inline-block;height:7px;width:7px;border-radius:2px;margin-right:7px}.donut-key b{color:#283551;font-weight:600}.insight{margin:0 22px 20px;padding:10px 12px;background:#f7f9fd;border-radius:5px;font-size:9px;line-height:1.7;color:#8c96aa}.table-wrap{overflow:auto}table{border-collapse:collapse;width:100%;font-size:11px;white-space:nowrap}th{background:#f9fafc;text-align:left;padding:13px 20px;color:#939caf;font-size:9px;font-weight:500;border-top:1px solid #f0f2f7;border-bottom:1px solid #edf0f5}td{padding:15px 20px;border-bottom:1px solid #f1f3f7;color:#69758b}tbody tr:hover{background:#fafbff}td.name{color:#35415d;font-weight:550;white-space:normal;min-width:185px;max-width:280px;line-height:1.6}.name small{display:block;color:#a0a8b8;font-size:9px;font-weight:400;margin-top:4px}.badge{font-size:9px;padding:5px 8px;border-radius:4px;display:inline-block;background:#edf2fc;color:#647cae;white-space:nowrap}.badge.done{background:#e9f8f2;color:#219677}.badge.warn{background:#fff5e5;color:#c28c29}.badge.danger{background:#fff0f2;color:#cd5367}.person{display:flex;align-items:center;gap:8px}.person i{font-style:normal;width:25px;height:25px;border-radius:50%;background:#f0f2fd;color:#7b88bc;display:grid;place-items:center;font-size:9px}.link{border:0;background:transparent;color:var(--blue);font-size:10px;padding:3px}.table-bottom{display:flex;align-items:center;justify-content:space-between;padding:13px 20px;color:#98a1b2;font-size:10px}.table-bottom button{padding:5px 9px;border:1px solid #e4e8f1;background:white;color:#79849a;border-radius:4px;margin-left:5px}.type-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:17px;margin-bottom:20px}.type-card{background:white;border:1px solid var(--border);border-radius:9px;padding:22px}.type-card h3{font-size:13px;margin:0 0 17px}.type-stats{display:flex;justify-content:space-between;margin-top:18px;color:#8b95a9;font-size:10px}.type-stats b{display:block;color:var(--text);font-size:21px;margin-bottom:8px}.empty{padding:42px;text-align:center;color:#8f99ac;line-height:1.8}.notice{padding:14px 18px;border-radius:7px;background:#eef2ff;color:#6574a3;font-size:11px;line-height:1.8;margin-bottom:20px}.notice.amber{background:#fff7e8;color:#b08b45}.upload-box{border:1.5px dashed #bcc5ed;border-radius:10px;text-align:center;padding:39px;background:#fafbff;margin:0 22px 22px}.upload-symbol{font-size:30px;color:var(--blue);margin-bottom:12px}.upload-box h3{font-size:14px}.upload-box p{font-size:11px}.upload-box input{max-width:100%;margin:14px 0}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;padding:0 22px 22px}.field label{display:block;font-size:11px;color:#78849a;margin-bottom:8px}.field input,.field select,.field textarea{width:100%;border:1px solid #dfe5f0;border-radius:5px;padding:10px;color:#46516a;background:white}.field textarea{min-height:95px;resize:vertical}.field.full{grid-column:1/-1}.import-actions{padding:16px 22px;border-top:1px solid var(--border);display:flex;align-items:center;gap:14px}.mapping{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;padding:0 22px 22px}.mapping .field label{font-size:10px}.mapping select{font-size:10px}.timeline{padding:8px 22px 22px}.timeline-row{display:grid;grid-template-columns:200px 1fr;gap:18px;padding:13px 0;border-bottom:1px solid var(--border);font-size:11px}.timeline-months{display:grid;grid-template-columns:repeat(12,1fr);gap:3px;align-items:center}.month{font-size:9px;text-align:center;border-radius:3px;padding:8px 2px;background:#f6f8fc;color:#a9b2c3}.month.planned{background:#e4e9ff;color:var(--blue);font-weight:600}.month.finished{background:#def5ec;color:#168d6f;font-weight:600}.text-green{color:var(--green)}.text-red{color:#d45b6c}footer{display:flex;justify-content:space-between;border-top:1px solid #e9edf5;padding:20px 0 23px;color:#a0a8b8;font-size:9px;margin-top:30px}.footer-dot{padding:0 10px;color:#c4cbda}dialog{border:0;padding:0;border-radius:12px;width:760px;max-width:95vw;max-height:92vh;box-shadow:0 30px 100px #10174735;color:var(--text)}dialog::backdrop{background:#10174766;backdrop-filter:blur(3px)}.detail-header{padding:25px;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;gap:15px}.detail-header h2{font-size:19px;margin:8px 0}.detail-header p{font-size:11px;margin:0}.close{border:0;background:#f3f5f9;border-radius:50%;height:30px;width:30px;color:#7e889e;flex-shrink:0}.detail-body{padding:22px 25px}.detail-meta{display:grid;grid-template-columns:repeat(3,1fr);gap:19px;margin-bottom:23px}.detail-meta span{display:block;font-size:10px;color:#929bb0;margin-bottom:8px}.detail-meta b{font-size:12px;font-weight:500}.detail-body .form-grid{padding:0}.detail-body h3{font-size:12px;margin:25px 0 14px}.history{font-size:10px;padding:11px 0;border-bottom:1px solid var(--border);line-height:1.8;color:#8892a7}.task{display:flex;gap:10px;align-items:center;padding:11px;background:#f8f9fd;margin:7px 0;border-radius:5px;font-size:11px}.task span{flex:1}.task small{font-size:9px;color:#8f98aa}#toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);background:#17234a;color:white;padding:13px 23px;border-radius:8px;z-index:99;display:none;font-size:12px;box-shadow:0 7px 30px #17234a22}.mobile-menu{display:none}.progress{height:5px;border-radius:5px;background:#eef1fa;overflow:hidden}.progress i{height:100%;display:block;background:var(--blue)}@media(min-width:1500px){.kpi .value{font-size:36px}.donut-layout{justify-content:center;padding-top:20px;padding-bottom:30px}.donut{width:165px;height:165px}.donut-hole{width:128px;height:128px}}@media(max-width:1150px){.sidebar{width:200px;padding-left:12px;padding-right:12px}.main{margin-left:200px}main{padding:25px 22px 0}header{padding:0 22px}.grid-two{grid-template-columns:1fr}.donut-layout{justify-content:center}.donut-key{max-width:240px}.kpis{gap:10px}.kpi{padding:15px}.kpi .label{font-size:10px}.heading-actions{align-self:end}.btn{padding:10px}.filter{min-width:110px}}@media(max-width:760px){.sidebar{width:65px;padding:22px 7px}.brand{padding:0;height:35px}.brand img{width:49px;height:29px}.brand strong{font-size:22px}.brand strong span{font-size:18px;margin-left:1px}.brand-caption,.workspace,.nav-label,.sidebar-bottom,nav .nav-text,nav .count{display:none}nav{margin-top:25px}nav button{padding:13px;justify-content:center}nav svg{flex-shrink:0}.main{margin-left:65px}header{height:58px;padding:0 16px}.private-badge{display:none}.breadcrumb{font-size:9px}.breadcrumb span{margin:0 6px}main{padding:22px 15px 0}.eyebrow{font-size:8px}h1{font-size:21px}.page-heading{align-items:start;flex-wrap:wrap}.heading-actions{margin-top:6px}.source-line{flex-wrap:wrap;line-height:1.7}.source-tag{display:none}.filters{padding:12px;gap:10px}.filter{min-width:calc(50% - 10px)}.filter.search{min-width:100%}.kpis{grid-template-columns:1fr 1fr}.kpi .value{font-size:27px}.kpi small{font-size:8px}.type-grid{grid-template-columns:1fr}.mapping{grid-template-columns:1fr 1fr}.detail-meta{grid-template-columns:1fr 1fr}.form-grid{grid-template-columns:1fr}.field.full{grid-column:auto}.panel-heading{padding:17px}.legend{gap:7px;font-size:8px}.bar-row{grid-template-columns:90px 1fr 37px;gap:9px;font-size:9px}.chart-axis{margin-left:100px;margin-right:46px}.donut-layout{gap:15px;padding-left:17px;padding-right:17px}.donut{width:120px;height:120px}.donut-hole{width:92px;height:92px}.donut-hole b{font-size:23px}footer{font-size:8px;gap:15px}.timeline-row{grid-template-columns:150px 1fr;min-width:650px}.timeline{overflow:auto}.import-actions{flex-wrap:wrap}th,td{padding:12px 15px}}
[hidden]{display:none!important}
