@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Noto+Sans+SC:wght@400;500;600;700&display=swap');
:root{--blue:#2868d7;--ink:#243149;--muted:#8a94a6;--line:#e8ebf0;--bg:#f4f6f9;--green:#15936b;--amber:#c78420;--red:#d65c50;--violet:#715cc7;--shadow:0 12px 34px rgba(35,52,80,.08)}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:'DM Sans','Noto Sans SC',sans-serif;font-size:13px}button,input,select,textarea{font:inherit}button{cursor:pointer}.sidebar{position:fixed;inset:0 auto 0 0;width:226px;background:#172238;color:#fff;padding:0 14px;z-index:10;display:flex;flex-direction:column}.brand{height:76px;display:flex;align-items:center;gap:11px;padding:0 8px;border-bottom:1px solid rgba(255,255,255,.08)}.brand-mark{width:37px;height:37px;border-radius:10px;background:linear-gradient(145deg,#4385ef,#2059bf);display:grid;place-items:center;font-size:18px;font-weight:700}.brand strong,.brand small,.sidebar-foot strong,.sidebar-foot small{display:block}.brand strong{font-size:14px}.brand small{font-size:8px;color:#8190aa;letter-spacing:1.5px;margin-top:3px}.sidebar nav{flex:1;padding-top:12px;overflow:auto}.sidebar nav p{font-size:9px;color:#65738d;letter-spacing:1.2px;margin:15px 10px 6px}.sidebar nav button{position:relative;width:100%;height:38px;border:0;border-radius:7px;background:transparent;color:#aeb8ca;display:flex;align-items:center;gap:10px;padding:0 11px;font-size:11px;text-align:left}.sidebar nav button>span{width:20px;text-align:center;font-size:15px}.sidebar nav button:hover,.sidebar nav button.active{background:#263754;color:#fff}.sidebar nav button.active:before{content:"";position:absolute;left:-14px;width:3px;height:23px;background:#4a89ef;border-radius:0 3px 3px 0}.sidebar nav b{margin-left:auto;background:#e25c55;color:#fff;border-radius:9px;min-width:18px;padding:2px 5px;font-size:8px;text-align:center}.sidebar-foot{height:68px;border-top:1px solid rgba(255,255,255,.08);display:flex;align-items:center;gap:9px;padding:0 7px}.avatar{width:31px;height:31px;border-radius:50%;display:grid;place-items:center;background:#dce9fb;color:#3c6fae;font-size:10px}.sidebar-foot strong{font-size:10px}.sidebar-foot small{font-size:8px;color:#7f8ca3;margin-top:3px}main{margin-left:226px;min-height:100vh}.topbar{height:66px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 30px;position:sticky;top:0;z-index:5}.crumb{font-size:10px;color:#98a0ae}.crumb i{font-style:normal;margin:0 8px;color:#c6cbd3}.crumb strong{color:#435067}.top-actions{display:flex;align-items:center;gap:8px}.top-actions button{width:34px;height:34px;border:1px solid #e7eaf0;border-radius:50%;background:#fff;color:#69758a;font-size:17px}.notice{position:relative}.notice i{position:absolute;right:5px;top:4px;width:6px;height:6px;border-radius:50%;background:#ec5d59;border:1px solid #fff}.today{font-size:10px;color:#7c8799;margin-left:8px}.content{padding:27px 30px 45px;max-width:1600px;margin:auto}.page-head{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:22px}.page-head .eyebrow{font-size:8px;letter-spacing:1.5px;color:#8c96a7;margin:0 0 7px}.page-head h1{font-size:24px;margin:0 0 6px}.page-head p{margin:0;color:#8791a2;font-size:11px}.primary,.secondary{height:36px;border-radius:6px;padding:0 14px;font-size:10px;font-weight:600}.primary{border:1px solid var(--blue);background:var(--blue);color:#fff;box-shadow:0 5px 13px rgba(40,104,215,.18)}.primary:hover{background:#1f5fc7}.secondary{border:1px solid #dfe3e9;background:#fff;color:#617087}.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:17px}.metrics article{background:#fff;border:1px solid var(--line);border-radius:10px;padding:16px 18px;min-height:126px}.metric-top{display:flex;align-items:center;justify-content:space-between}.metric-top small{font-size:8px;color:#9ca4b2}.metric-icon{width:34px;height:34px;border-radius:8px;display:grid;place-items:center;font-weight:700}.metric-icon.blue{background:#eaf2ff;color:var(--blue)}.metric-icon.green{background:#eaf8f2;color:var(--green)}.metric-icon.amber{background:#fff4e4;color:var(--amber)}.metric-icon.violet{background:#f0edff;color:var(--violet)}.metrics article>p{font-size:10px;color:#7e899b;margin:12px 0 3px}.metrics article>strong{font-size:24px}.metrics article>em{font-size:9px;font-style:normal;color:#9ca4b2;margin-left:4px}.panel{background:#fff;border:1px solid var(--line);border-radius:10px;margin-bottom:17px;overflow:hidden}.panel-head{min-height:65px;padding:0 18px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.panel-head h2{font-size:14px;margin:0 0 3px}.panel-head p{font-size:9px;color:#99a2b0;margin:0}.dashboard-grid{display:grid;grid-template-columns:1.3fr .7fr;gap:17px}.task-list button{width:100%;height:68px;border:0;border-bottom:1px solid #eef0f3;background:#fff;display:flex;align-items:center;text-align:left;padding:0 18px;gap:12px}.task-list button:hover{background:#f8fbff}.task-icon{width:31px;height:31px;border-radius:8px;display:grid;place-items:center;font-size:10px;font-weight:700}.task-icon.red{background:#fff0ed;color:var(--red)}.task-icon.amber{background:#fff4e5;color:var(--amber)}.task-icon.blue{background:#eaf2ff;color:var(--blue)}.task-icon.purple{background:#f0edff;color:var(--violet)}.task-list div{flex:1}.task-list strong,.task-list small{display:block}.task-list strong{font-size:10px;margin-bottom:4px}.task-list small{font-size:8px;color:#98a0ad}.task-list b{font-size:8px;color:#8a94a5}.donut-area{padding:28px 24px;display:flex;align-items:center;justify-content:center;gap:28px}.donut{width:126px;height:126px;border-radius:50%;background:conic-gradient(var(--blue) 0 41%,#d9a344 41% 66%,var(--green) 66% 95%,var(--red) 95%);display:grid;place-items:center;position:relative}.donut:before{content:"";position:absolute;inset:17px;border-radius:50%;background:#fff}.donut div{position:relative;text-align:center}.donut strong,.donut span{display:block}.donut strong{font-size:22px}.donut span{font-size:8px;color:#9aa2af}.legend p{display:flex;align-items:center;gap:7px;color:#778397;font-size:9px}.legend p b{margin-left:auto;color:#354158}.legend i{width:7px;height:7px;border-radius:50%}.blue-dot{background:var(--blue)}.amber-dot{background:#d9a344}.green-dot{background:var(--green)}.red-dot{background:var(--red)}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;white-space:nowrap}th{height:41px;text-align:left;padding:0 17px;background:#fafbfc;color:#949dab;font-size:9px;font-weight:500;border-bottom:1px solid var(--line)}td{height:60px;padding:0 17px;border-bottom:1px solid #eef0f3;color:#657186;font-size:10px}tbody tr{transition:.15s}tbody tr[data-detail]{cursor:pointer}tbody tr:hover{background:#f9fbff}td strong,td small{display:block}td strong{color:#354157;font-size:10px}td small{font-size:8px;color:#9ba3b0;margin-top:4px}.link{color:var(--blue)!important;font-weight:600}.pill{display:inline-flex;align-items:center;gap:5px;padding:4px 8px;border-radius:12px;font-size:8px}.pill i{width:5px;height:5px;border-radius:50%;background:currentColor}.pill.success{background:#eaf8f2;color:#18845f}.pill.warning{background:#fff4e5;color:#b4751c}.pill.danger{background:#fff0ed;color:#c85e4c}.pill.info{background:#edf4ff;color:#3473d3}.priority{padding:3px 7px;background:#eef2f7;border-radius:4px;font-size:8px}.priority.high{background:#fff0ed;color:var(--red)}.text-button{border:0;background:transparent;color:var(--blue);font-size:9px}.toolbar{display:flex;gap:8px}.toolbar input{width:220px;height:33px;border:1px solid #dfe3e9;border-radius:6px;padding:0 10px;font-size:9px;outline:0}.toolbar input:focus{border-color:#8cb4f2}.kanban{display:grid;grid-template-columns:repeat(4,1fr);gap:13px}.kanban-col{background:#e9edf2;border-radius:10px;padding:12px;min-height:510px}.kanban-head{height:38px;display:flex;justify-content:space-between;font-size:10px}.kanban-head span{background:#fff;border-radius:9px;padding:2px 7px;height:18px;font-size:8px}.kanban-col article{background:#fff;border:1px solid #e0e4ea;border-radius:8px;padding:14px;margin-bottom:10px;cursor:pointer}.kanban-col article:hover{border-color:#a8c4f0;box-shadow:0 5px 15px rgba(45,62,88,.06)}.kanban-col article h3{font-size:12px;margin:10px 0 5px}.kanban-col article p{font-size:9px;color:#778397;margin:0 0 13px}.kanban-col article>div{display:flex;justify-content:space-between;align-items:center}.kanban-col article footer{display:flex;justify-content:space-between;border-top:1px solid #eef0f3;margin-top:11px;padding-top:10px;color:#929ba9;font-size:8px}.kanban-empty{padding:60px 0;text-align:center;color:#a3aab5;font-size:9px}.action{font-size:8px;padding:4px 7px;border-radius:4px}.action.in{background:#eaf8f2;color:var(--green)}.action.out{background:#edf4ff;color:var(--blue)}.positive{color:var(--green);font-weight:700}.negative{color:var(--red);font-weight:700}.pps-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.pps-card{background:#fff;border:1px solid var(--line);border-radius:10px;padding:17px;cursor:pointer;transition:.2s}.pps-card:hover{transform:translateY(-2px);box-shadow:var(--shadow)}.pps-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}.pps-mark{width:40px;height:40px;border-radius:9px;background:#eaf2ff;color:var(--blue);font-size:10px;font-weight:700;display:grid;place-items:center}.pps-card h3{font-size:13px;margin:9px 0 4px}.pps-card>p{font-size:9px;color:#8993a3;margin:0 0 15px}.package-parts{display:grid;grid-template-columns:1fr 1fr;gap:7px;background:#f7f9fb;border-radius:7px;padding:11px}.package-parts span{font-size:8px;color:#a0a7b2}.package-parts span.done{color:var(--green)}.pps-card footer{display:flex;justify-content:space-between;border-top:1px solid #edf0f3;margin-top:14px;padding-top:11px;font-size:8px;color:#8e98a7}.trace-search{background:#fff;border:1px solid var(--line);border-radius:10px;padding:28px;margin-bottom:17px}.trace-search>div{max-width:850px;margin:auto;height:47px;border:1px solid #dce2ea;border-radius:8px;display:flex;align-items:center;padding-left:15px;box-shadow:0 5px 18px rgba(39,57,86,.05)}.trace-search span{font-size:20px;color:#8893a5}.trace-search input{flex:1;border:0;outline:0;padding:0 12px;font-size:11px}.trace-search button{height:37px;margin-right:5px}.trace-search p{text-align:center;color:#a0a7b2;font-size:8px}.trace-summary{display:grid;grid-template-columns:repeat(3,1fr);padding:20px;gap:14px}.trace-summary>div{padding:15px;border:1px solid #edf0f3;border-radius:8px}.trace-summary small,.trace-summary strong,.trace-summary>div>span{display:block}.trace-summary small{color:#9ca4b1;font-size:8px;margin-bottom:8px}.trace-summary strong{font-size:11px;margin-bottom:7px}.trace-summary>div>span:not(.pill){font-size:8px;color:#8d96a5}.timeline{padding:5px 26px 22px 48px}.timeline>div{position:relative;border-left:1px solid #dfe4eb;padding:0 0 22px 25px}.timeline i{position:absolute;left:-5px;top:1px;width:9px;height:9px;border-radius:50%;background:#fff;border:2px solid var(--blue)}.timeline strong,.timeline span{display:block}.timeline strong{font-size:10px}.timeline span{font-size:8px;color:#9aa2af;margin-top:4px}.settings-layout{display:grid;grid-template-columns:210px 1fr;gap:16px}.settings-layout>aside{background:#fff;border:1px solid var(--line);border-radius:10px;padding:10px;height:max-content}.settings-layout>aside button{width:100%;height:40px;border:0;background:#fff;border-radius:6px;text-align:left;padding:0 12px;color:#667286;font-size:10px}.settings-layout>aside button.active{background:#edf4ff;color:var(--blue)}.setting-row{min-height:72px;margin:0 20px;border-bottom:1px solid #edf0f3;display:grid;grid-template-columns:1fr 250px 40px;align-items:center;gap:16px}.setting-row strong,.setting-row small{display:block}.setting-row strong{font-size:10px}.setting-row small{font-size:8px;color:#9da5b2;margin-top:5px}.setting-row>input{height:34px;border:1px solid #dfe4eb;border-radius:6px;padding:0 9px;font-size:9px}.switch{width:34px;height:19px;border-radius:12px;background:#d8dde5;position:relative}.switch i{position:absolute;width:15px;height:15px;border-radius:50%;background:#fff;left:2px;top:2px}.switch.on{background:var(--blue)}.switch.on i{left:17px}.overlay{position:fixed;inset:0;background:rgba(17,27,43,.38);z-index:20;opacity:0;pointer-events:none;transition:.25s}.overlay.show{opacity:1;pointer-events:auto}.drawer{position:fixed;right:0;top:0;bottom:0;width:460px;background:#fff;z-index:21;transform:translateX(100%);transition:.28s;display:flex;flex-direction:column;box-shadow:-15px 0 50px rgba(20,30,47,.15)}.drawer.show{transform:none}.drawer-head,.modal-head{height:82px;border-bottom:1px solid var(--line);padding:0 24px;display:flex;align-items:center;justify-content:space-between}.drawer-head small,.modal-head small{font-size:8px;letter-spacing:1.2px;color:#99a2b0}.drawer-head h2,.modal-head h2{font-size:18px;margin:4px 0 0}.drawer-head button,.modal-head button{border:0;background:#f1f3f6;width:30px;height:30px;border-radius:50%;font-size:18px;color:#7d8797}.drawer-body{padding:22px 24px;overflow:auto;flex:1}.drawer-actions{height:69px;border-top:1px solid var(--line);padding:0 24px;display:flex;justify-content:flex-end;align-items:center;gap:8px}.detail-hero{display:flex;align-items:center;gap:13px;margin-bottom:20px}.detail-mark{width:52px;height:57px;background:linear-gradient(145deg,#eef3f9,#cfd9e6);border-radius:7px;display:grid;place-items:center;color:#49627f;font-weight:700}.detail-hero h3{font-size:14px;margin:0 0 5px}.detail-hero p{font-size:9px;color:#919aaa;margin:0}.detail-card{border:1px solid var(--line);border-radius:9px;padding:16px;margin-bottom:14px}.detail-card h4{font-size:10px;margin:0 0 14px}.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px}.detail-grid span,.detail-grid strong{display:block}.detail-grid span{font-size:8px;color:#9da5b2;margin-bottom:4px}.detail-grid strong{font-size:10px;color:#536075}.timeline.compact{padding:0 0 0 18px}.modal-wrap{position:fixed;inset:0;background:rgba(17,27,43,.4);z-index:30;display:grid;place-items:center;opacity:0;pointer-events:none;transition:.2s}.modal-wrap.show{opacity:1;pointer-events:auto}.modal{width:570px;background:#fff;border-radius:12px;box-shadow:0 25px 70px rgba(17,28,46,.22)}.modal form{padding:22px 24px}.modal label{display:block;font-size:10px;color:#4e5b70;font-weight:600;margin-bottom:14px}.modal input,.modal select,.modal textarea{display:block;width:100%;height:37px;margin-top:7px;border:1px solid #dfe4ea;border-radius:6px;padding:0 10px;font-size:10px;outline:0;background:#fff}.modal textarea{height:68px;padding-top:9px;resize:none}.modal input:focus,.modal select:focus,.modal textarea:focus{border-color:#8bb3f0;box-shadow:0 0 0 3px #eef5ff}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:13px}.check-row{display:flex;gap:17px;background:#f7f9fb;padding:12px;border-radius:7px}.check-row label{margin:0;font-weight:400}.check-row input{display:inline;width:auto;height:auto;margin:0 5px 0 0}.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:20px}.toast{position:fixed;right:26px;top:81px;z-index:50;background:#fff;border:1px solid var(--line);box-shadow:var(--shadow);border-radius:9px;padding:12px 17px;display:flex;align-items:center;gap:10px;transform:translateX(130%);transition:.3s}.toast.show{transform:none}.toast>span{width:25px;height:25px;border-radius:50%;background:#e8f7f1;color:var(--green);display:grid;place-items:center}.toast strong,.toast small{display:block}.toast strong{font-size:10px}.toast small{font-size:8px;color:#8d96a5;margin-top:3px}.empty{text-align:center;padding:50px;color:#9ba3b0}
@media(max-width:1100px){.metrics{grid-template-columns:repeat(2,1fr)}.dashboard-grid{grid-template-columns:1fr}.kanban{grid-template-columns:repeat(2,1fr)}.pps-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:760px){.sidebar{width:66px;padding:0 8px}.brand{padding:0;justify-content:center}.brand div,.sidebar nav p,.sidebar nav button:not(.active){font-size:0}.sidebar nav button{justify-content:center;padding:0}.sidebar nav button>span{font-size:15px}.sidebar nav b,.sidebar-foot div{display:none}.sidebar-foot{justify-content:center}.sidebar nav button.active:before{left:-8px}main{margin-left:66px}.content{padding:20px 14px}.topbar{padding:0 14px}.today,.crumb span,.crumb i{display:none}.metrics,.kanban,.pps-grid,.settings-layout{grid-template-columns:1fr}.page-head{align-items:flex-start;gap:15px}.page-head h1{font-size:21px}.drawer{width:100vw}.modal{width:calc(100vw - 24px)}.form-row{grid-template-columns:1fr}.trace-summary{grid-template-columns:1fr}.setting-row{grid-template-columns:1fr;padding:14px 0}.settings-layout>aside{display:none}}

/* Readability pass: keep secondary text legible on high-resolution displays. */
body{font-size:15px;line-height:1.5}
.brand strong{font-size:16px}.brand small{font-size:10px}.sidebar nav p{font-size:11px}.sidebar nav button{height:42px;font-size:13px}.sidebar nav b{font-size:10px}.sidebar-foot strong{font-size:12px}.sidebar-foot small{font-size:10px}.avatar{font-size:12px}
.crumb,.today{font-size:12px}.page-head .eyebrow{font-size:10px}.page-head h1{font-size:27px}.page-head p{font-size:14px}.primary,.secondary{height:40px;font-size:12px}
.metric-top small{font-size:11px}.metrics article>p{font-size:13px}.metrics article>strong{font-size:28px}.metrics article>em{font-size:11px}.metrics article{min-height:140px;padding:18px 20px}
.panel-head h2{font-size:17px}.panel-head p{font-size:12px}.panel-head{min-height:72px}.task-list button{height:78px}.task-icon{width:36px;height:36px;font-size:12px}.task-list strong{font-size:13px}.task-list small,.task-list b{font-size:11px}.donut strong{font-size:25px}.donut span{font-size:11px}.legend p{font-size:12px}
th{height:48px;font-size:12px;font-weight:600}td{height:68px;font-size:13px}td strong{font-size:13px}td small{font-size:11px}.pill,.priority,.action{font-size:11px}.text-button{font-size:12px}.toolbar input{height:38px;font-size:12px}
.kanban-head{font-size:13px}.kanban-head span{height:21px;font-size:11px}.kanban-col article h3{font-size:14px}.kanban-col article p,.kanban-col article footer,.kanban-empty{font-size:12px}
.pps-mark{font-size:12px}.pps-card h3{font-size:15px}.pps-card>p,.package-parts span,.pps-card footer{font-size:11px}.trace-search input{font-size:13px}.trace-search p{font-size:11px}.trace-summary small,.trace-summary>div>span:not(.pill){font-size:11px}.trace-summary strong{font-size:14px}.timeline strong{font-size:13px}.timeline span{font-size:11px}
.settings-layout>aside button{font-size:13px}.setting-row strong{font-size:13px}.setting-row small{font-size:11px}.setting-row>input{height:38px;font-size:12px}.drawer-head small,.modal-head small{font-size:10px}.detail-hero h3{font-size:17px}.detail-hero p{font-size:12px}.detail-card h4{font-size:13px}.detail-grid span{font-size:11px}.detail-grid strong{font-size:13px}.modal label{font-size:13px}.modal input,.modal select,.modal textarea{font-size:13px}.toast strong{font-size:13px}.toast small{font-size:11px}

/* ERP compact mode */
:root{--bg:#eef1f5;--line:#dce2ea;--ink:#1f2937}
body{font-size:13px;line-height:1.35;background:var(--bg)}
.sidebar{width:216px;padding:0 10px;background:#111827;transition:width .18s ease,padding .18s ease}.brand{height:64px;position:relative}.brand-mark{width:34px;height:34px;border-radius:7px}.brand strong{font-size:15px}.brand small{font-size:9px}.sidebar-toggle{margin-left:auto;width:30px;height:30px;border:1px solid rgba(255,255,255,.18);border-radius:999px;background:linear-gradient(180deg,rgba(255,255,255,.13),rgba(255,255,255,.06));color:#dbe4f2;font-size:19px;line-height:1;box-shadow:0 6px 18px rgba(0,0,0,.16);transition:.16s}.sidebar-toggle:hover{background:rgba(59,130,246,.25);border-color:rgba(147,197,253,.55);color:#fff;transform:translateY(-1px)}.sidebar nav{padding-top:8px}.sidebar nav p{font-size:10px;margin:12px 8px 5px}.sidebar nav button{height:34px;border-radius:4px;font-size:12px;padding:0 9px}.sidebar nav button>span{font-size:13px}.sidebar-foot{height:58px}.sidebar-foot strong{font-size:11px}.sidebar-foot small{font-size:9px}.avatar{width:28px;height:28px;font-size:11px}
main{margin-left:216px;transition:margin-left .18s ease}.topbar{height:52px;padding:0 22px}.top-actions button{width:30px;height:30px}.crumb,.today{font-size:11px}.content{padding:14px 18px 28px;max-width:none}.page-head{min-height:52px;margin-bottom:10px;align-items:center;background:#fff;border:1px solid var(--line);padding:10px 12px;border-radius:4px}.page-head .eyebrow{font-size:9px;margin-bottom:2px}.page-head h1{font-size:20px;margin:0 0 2px}.page-head p{font-size:12px}.primary,.secondary{height:30px;border-radius:3px;padding:0 10px;font-size:12px;box-shadow:none}
.metrics,.erp-summary{display:grid;grid-template-columns:repeat(6,minmax(120px,1fr));gap:1px;margin:0 0 10px;background:var(--line);border:1px solid var(--line);border-radius:4px;overflow:hidden}.metrics article,.erp-summary>div{min-height:58px;border:0;border-radius:0;background:#fff;padding:9px 11px}.metrics article[data-metric-page],.erp-summary>div[data-metric-page]{cursor:pointer;transition:.12s}.metrics article[data-metric-page]:hover,.erp-summary>div[data-metric-page]:hover{background:#eaf2ff;box-shadow:inset 0 -2px 0 #3b82f6}.metric-icon{display:none}.metric-top small,.metrics article>em,.erp-summary small{font-size:10px;color:#7b8794}.metrics article>p,.erp-summary span{display:block;font-size:11px;color:#6b7280;margin:0 0 4px}.metrics article>strong,.erp-summary strong{font-size:19px;color:#111827}.dashboard-grid{display:block}
.panel{border-radius:4px;margin-bottom:10px;box-shadow:none}.panel-head{min-height:46px;padding:7px 10px;background:#f8fafc}.panel-head h2{font-size:15px;margin:0 0 2px}.panel-head p{font-size:11px}.panel-filter{padding:8px 10px;background:#f8fafc;border-top:1px solid #edf1f5}.erp-actions{display:flex;gap:6px;align-items:center}.erp-filter{display:flex;flex-wrap:wrap;align-items:end;gap:6px;width:100%;margin-left:0}.erp-filter label{display:flex;flex-direction:column;gap:3px;font-size:10px;color:#64748b;font-weight:600}.erp-filter small{min-width:70px;color:#64748b;font-size:11px;align-self:center}.erp-filter input,.erp-filter select{height:28px;border:1px solid #cfd7e2;border-radius:3px;padding:0 7px;font-size:12px;background:#fff;color:#1f2937}.erp-filter .filter-keyword{flex:0 0 176px;width:176px}.erp-filter .filter-keyword input{width:100%}.erp-filter select{width:104px;min-width:104px}.erp-filter input[type=date]{width:116px}.erp-filter button{align-self:end;height:28px;min-width:48px;padding:0 7px}.erp-filter [data-filter-run],.erp-filter [data-filter-clear]{width:48px;padding:0}.erp-filter [data-save-view]{min-width:66px}.erp-filter [data-share-view],.erp-filter [data-view]{min-width:48px}
.table-wrap{border-top:1px solid var(--line);max-width:100%;max-height:560px;overflow:auto;position:relative}table{width:max-content;min-width:100%;table-layout:auto;font-size:12px}th{position:sticky;top:0;z-index:3;height:32px;padding:0 8px;background:#e6edf5;color:#263445;font-size:12px;font-weight:600;border-right:1px solid #cfd8e3;border-bottom:1px solid #c7d0dc}th:after{content:" ▾";font-size:10px;color:#64748b}td{height:32px;padding:0 8px;font-size:12px;border-right:1px solid #dfe5ec;border-bottom:1px solid #dfe5ec;color:#374151}td strong{font-size:12px}td small{font-size:10px;margin-top:1px}tbody tr:nth-child(odd){background:#f3f6fa}tbody tr:nth-child(even){background:#fff}tbody tr:hover{background:#dcecff}.table-pager{min-height:38px;border-top:1px solid var(--line);background:#f8fafc;display:flex;align-items:center;justify-content:flex-end;gap:8px;padding:6px 10px;font-size:12px;color:#526174}.table-pager span{margin-right:auto}.table-pager button:disabled{opacity:.45;cursor:not-allowed}.table-pager select{height:28px;border:1px solid #cfd7e2;border-radius:3px;background:#fff;font-size:12px}.pill,.priority,.action{border-radius:3px;padding:2px 6px;font-size:11px}.pill i{display:none}.text-button{font-size:12px}.positive,.negative{font-weight:600}
.task-list button{height:46px;padding:0 10px}.task-icon{display:none}.task-list strong{font-size:12px}.task-list small,.task-list b{font-size:10px}.donut-area,.pps-grid,.kanban{display:none}.trace-search{border-radius:4px;padding:14px}.trace-search>div{height:36px;max-width:none;border-radius:3px}.trace-search input{font-size:12px}.trace-search p{font-size:11px}.trace-summary{padding:10px;gap:8px}.trace-summary>div{border-radius:3px;padding:10px}.timeline strong{font-size:12px}.timeline span{font-size:10px}
.drawer{width:520px}.drawer-head,.modal-head{height:62px;padding:0 18px}.drawer-head h2,.modal-head h2{font-size:16px}.drawer-body{padding:14px 18px}.detail-card{border-radius:4px;padding:12px}.detail-grid{gap:10px}.modal{width:760px;border-radius:6px;max-height:86vh;display:flex;flex-direction:column}.modal form{padding:14px 18px;overflow:auto}.modal label{font-size:12px;margin-bottom:10px}.modal input,.modal select,.modal textarea{height:32px;border-radius:3px;font-size:12px}.modal textarea{height:64px}.bulk-help{display:flex;justify-content:space-between;gap:12px;background:#f8fafc;border:1px solid var(--line);padding:8px 10px;margin-bottom:10px;font-size:12px}.bulk-help span,.bulk-preview span{color:#6b7280}.bulk-paste{width:100%;height:240px!important;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;line-height:1.5;white-space:pre;overflow:auto}.bulk-preview{margin-top:8px;font-size:12px}.field-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin:10px 0}.field-grid label{height:30px;border:1px solid var(--line);background:#fff;padding:5px 8px;margin:0;display:flex;align-items:center;gap:6px}.field-grid input{width:auto;height:auto;margin:0}.view-options{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.view-options select{margin-top:6px}
.masked{display:inline-block;color:#64748b;background:#f1f5f9;border:1px dashed #cbd5e1;border-radius:3px;padding:2px 6px}.flow-strip{display:grid;grid-template-columns:repeat(6,1fr);gap:1px;background:var(--line);border:1px solid var(--line);border-radius:4px;margin:0 0 10px;overflow:hidden}.flow-strip span{background:#fff;padding:8px 10px;font-size:12px;color:#374151}.flow-strip span:nth-child(odd){background:#f8fafc}.panel table td:nth-child(2).link{font-weight:700}
.type-guide{display:flex;align-items:center;gap:10px;background:#fff;border:1px solid var(--line);border-radius:4px;padding:8px 10px;margin-bottom:10px}.type-guide strong{font-size:13px}.type-guide span{flex:1;color:#6b7280;font-size:12px}.type-list{display:grid;gap:8px}.type-list div{border:1px solid var(--line);background:#f8fafc;padding:10px;border-radius:4px}.type-list strong,.type-list span{display:block}.type-list strong{font-size:13px;margin-bottom:4px}.type-list span{font-size:12px;color:#4b5563;line-height:1.5}
.auth-locked{overflow:hidden}.auth-gate{position:fixed;inset:0;z-index:100;background:linear-gradient(135deg,#0f172a,#111827 48%,#1e293b);display:grid;place-items:center;padding:24px}.auth-gate.hide{display:none}.auth-card{width:min(420px,calc(100vw - 36px));background:#fff;border:1px solid rgba(148,163,184,.28);box-shadow:0 28px 80px rgba(0,0,0,.28);border-radius:12px;padding:26px}.auth-mark{width:44px;height:44px;border-radius:10px;background:linear-gradient(145deg,#4385ef,#2059bf);display:grid;place-items:center;color:#fff;font-weight:700;font-size:21px;margin-bottom:16px}.auth-card h2{margin:0 0 8px;font-size:21px;color:#111827}.auth-card p{margin:0 0 18px;color:#64748b;font-size:13px;line-height:1.55}.auth-card input{width:100%;height:40px;border:1px solid #cfd7e2;border-radius:5px;padding:0 11px;font-size:14px;outline:0}.auth-card input:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #dbeafe}.auth-card small{display:block;min-height:21px;margin:7px 0;color:#dc2626;font-size:12px}.auth-card button{width:100%;height:38px}
body.sidebar-collapsed .sidebar{width:72px;padding:0 8px}body.sidebar-collapsed .brand{height:88px;justify-content:center;align-items:flex-start;padding:16px 0 0;border-bottom:1px solid rgba(255,255,255,.08)}body.sidebar-collapsed .brand>div{display:none}body.sidebar-collapsed .brand-mark{width:36px;height:36px}body.sidebar-collapsed .sidebar-toggle{position:absolute;left:50%;right:auto;top:58px;transform:translateX(-50%);width:32px;height:22px;padding:0;font-size:15px;background:rgba(37,99,235,.22);border-color:rgba(147,197,253,.38);box-shadow:0 8px 18px rgba(0,0,0,.2)}body.sidebar-collapsed .sidebar-toggle:hover{transform:translateX(-50%) translateY(-1px);background:rgba(59,130,246,.34)}body.sidebar-collapsed .sidebar nav p{height:1px;margin:10px 0 6px;overflow:hidden;color:transparent;background:rgba(255,255,255,.08)}body.sidebar-collapsed .sidebar nav button{justify-content:center;width:100%;padding:0;font-size:0;gap:0}body.sidebar-collapsed .sidebar nav button>span{width:auto;font-size:15px}body.sidebar-collapsed .sidebar nav button:after{content:attr(data-label);position:absolute;left:58px;top:50%;transform:translateY(-50%) translateX(-4px);opacity:0;pointer-events:none;z-index:20;background:#111827;color:#fff;border:1px solid rgba(255,255,255,.14);box-shadow:0 8px 24px rgba(15,23,42,.22);border-radius:5px;padding:6px 9px;font-size:12px;line-height:1;white-space:nowrap;transition:.12s}body.sidebar-collapsed .sidebar nav button:hover:after{opacity:1;transform:translateY(-50%)}body.sidebar-collapsed .sidebar nav button.active:before{left:-8px}body.sidebar-collapsed .sidebar nav b{position:absolute;right:6px;top:5px;min-width:14px;height:14px;padding:1px 4px;font-size:8px}body.sidebar-collapsed .sidebar-foot{justify-content:center;padding:0}body.sidebar-collapsed .sidebar-foot>div{display:none}body.sidebar-collapsed main{margin-left:72px}
@media(max-width:1280px){.content{padding-left:14px;padding-right:14px}.topbar{padding:0 16px}.page-head{gap:10px}.page-head>div{min-width:0}.page-head h1{font-size:19px}.page-head p{white-space:normal}.page-head .erp-actions{flex-wrap:wrap;justify-content:flex-end}.metrics,.erp-summary{grid-template-columns:repeat(3,minmax(120px,1fr))}}
@media(max-width:1100px){.metrics,.erp-summary{grid-template-columns:repeat(3,1fr)}}
@media(max-width:760px){.sidebar,body.sidebar-collapsed .sidebar{width:64px;padding:0 7px}.brand,body.sidebar-collapsed .brand{height:84px;justify-content:center;align-items:flex-start;padding:14px 0 0}.brand>div{display:none}.brand-mark,body.sidebar-collapsed .brand-mark{width:32px;height:32px}.sidebar-toggle,body.sidebar-collapsed .sidebar-toggle{left:50%;right:auto;top:54px;transform:translateX(-50%);width:30px;height:21px;font-size:14px}.sidebar-toggle:hover,body.sidebar-collapsed .sidebar-toggle:hover{transform:translateX(-50%) translateY(-1px)}.sidebar nav p{height:1px;margin:10px 0 6px;overflow:hidden;color:transparent;background:rgba(255,255,255,.08)}.sidebar nav button{justify-content:center;width:100%;height:34px;padding:0;font-size:0;gap:0}.sidebar nav button>span{width:auto;font-size:15px}.sidebar-foot{height:52px;justify-content:center;padding:0}.sidebar-foot>div{display:none}main,body.sidebar-collapsed main{margin-left:64px}.metrics,.erp-summary,.flow-strip{grid-template-columns:repeat(2,1fr)}.page-head{align-items:flex-start;display:block}.page-head .erp-actions{justify-content:flex-start;margin-top:8px}.erp-actions{flex-wrap:wrap}.erp-filter label,.erp-filter .filter-keyword,.erp-filter input,.erp-filter select,.erp-filter input[type=date]{width:100%;min-width:0;flex:1 1 100%}.erp-filter button{flex:1 1 calc(33.333% - 6px)}.drawer{width:100vw}}
