:root{color-scheme:light;--ink:#17232d;--muted:#667681;--line:#dce4e8;--surface:#fff;--canvas:#f3f6f7;--primary:#176b5b;--primary-soft:#e6f3ef;--danger:#ad3b35;--warn:#a56100;--shadow:0 8px 24px rgba(20,42,53,.07)}
*{box-sizing:border-box}body{margin:0;background:var(--canvas);color:var(--ink);font:14px/1.55 "Microsoft YaHei",system-ui,sans-serif}.hidden{display:none!important}button,input,select,textarea{font:inherit}button{cursor:pointer}.topbar{min-height:108px;padding:22px 28px;background:#17343b;color:#fff;display:flex;align-items:center;justify-content:space-between;gap:24px}.topbar h1{font-size:25px;margin:2px 0}.eyebrow{margin:0;color:#91c9bc;font-size:11px;font-weight:800;letter-spacing:.16em}.subtitle{margin:4px 0 0;color:#bed0d4}.top-actions{display:flex;align-items:center;gap:12px}.identity{padding:7px 11px;border:1px solid rgba(255,255,255,.2);border-radius:999px;color:#dbe7e9}.secondary,.primary,.danger,.link-button{border:0;border-radius:7px;padding:8px 13px;font-weight:700}.secondary{background:#fff;color:#24424a}.primary{background:var(--primary);color:#fff}.danger{background:#fff0ef;color:var(--danger);border:1px solid #f1cbc8}.link-button{padding:4px;background:transparent;color:var(--primary)}.notice{margin:14px 22px 0;padding:11px 14px;border:1px solid #efc98d;border-radius:8px;background:#fff8e8;color:#754600}.notice.error{border-color:#efb7b3;background:#fff1f0;color:#8c2f2a}.layout{display:grid;grid-template-columns:270px minmax(0,1fr);gap:16px;padding:16px 22px 28px;min-height:calc(100vh - 108px)}.sidebar,.workspace{background:var(--surface);border:1px solid var(--line);border-radius:10px;box-shadow:var(--shadow)}.sidebar{overflow:hidden;align-self:start;position:sticky;top:16px}.sidebar-head{padding:15px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center}.sidebar-head div{display:flex;gap:8px;align-items:center}.sidebar-head strong{min-width:24px;text-align:center;padding:1px 7px;border-radius:999px;background:var(--primary-soft);color:var(--primary)}.case-list{max-height:calc(100vh - 205px);overflow:auto}.case-button{width:100%;border:0;border-bottom:1px solid #edf1f2;background:#fff;padding:14px;text-align:left;display:grid;gap:4px}.case-button:hover,.case-button.active{background:var(--primary-soft)}.case-button strong{font-size:15px}.case-button span{color:var(--muted);font-size:12px}.case-button em{justify-self:start;font-style:normal;padding:2px 7px;border-radius:999px;background:#eef2f4;color:#52636c;font-size:11px}.case-button em.phase2{background:#dff1e9;color:#11604f}.workspace{min-width:0;padding:20px}.empty-state{min-height:420px;display:grid;place-content:center;text-align:center;color:var(--muted);gap:6px}.empty-state strong{font-size:18px;color:var(--ink)}.case-header{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;padding-bottom:16px;border-bottom:1px solid var(--line)}.case-header h2{margin:3px 0;font-size:23px}.case-meta{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}.pill{padding:4px 9px;border-radius:999px;background:#eef2f4;color:#53636c;font-size:12px}.pill.good{background:#ddf2e9;color:#075b49}.pill.warn{background:#fff2da;color:#8a5200}.section{margin-top:22px}.section-head{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:10px}.section-head h3{margin:0;font-size:17px}.section-head p{margin:2px 0 0;color:var(--muted)}.grid{display:grid;gap:12px}.training-grid{grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}.card{border:1px solid var(--line);border-radius:9px;padding:14px;background:#fff}.card h4{margin:0 0 7px;font-size:15px}.card p{margin:5px 0;color:#52616a;white-space:pre-wrap}.card-footer,.actions{display:flex;flex-wrap:wrap;gap:7px;align-items:center;margin-top:10px}.mini{padding:5px 9px;font-size:12px}.progress{display:flex;gap:7px;flex-wrap:wrap}.status{font-size:12px;padding:2px 7px;border-radius:999px;background:#edf1f3;color:#5b6870}.status.done{background:#dcf2e8;color:#0a604c}.status.overdue{background:#ffe6e2;color:#9b342c}.file-list,.link-list{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}.file-list a,.link-list a{color:var(--primary);text-decoration:none;background:#edf6f3;border-radius:5px;padding:3px 7px;font-size:12px}.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:9px}table{width:100%;border-collapse:collapse;min-width:640px}th,td{padding:10px 12px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}th{background:#f6f8f9;color:#5d6b73;font-size:12px}tr:last-child td{border-bottom:0}.score-hero{display:grid;grid-template-columns:repeat(3,minmax(120px,1fr));gap:10px;margin:12px 0}.metric{padding:15px;border-radius:9px;background:#f4f7f7}.metric span{display:block;color:var(--muted);font-size:12px}.metric strong{display:block;margin-top:3px;font-size:24px}.metric.primary-metric{background:var(--primary-soft);color:var(--primary)}.task-list{display:grid;gap:12px}.task{border:1px solid var(--line);border-left:4px solid #aebbc0;border-radius:9px;padding:15px}.task.overdue{border-left-color:#d15b4f}.task.cancelled{opacity:.62}.task-top{display:flex;justify-content:space-between;gap:12px}.task h4{margin:0}.task-meta{display:flex;flex-wrap:wrap;gap:7px;margin:7px 0}.task-block{margin-top:10px;padding:10px;background:#f6f8f9;border-radius:7px}.task-block strong{display:block;font-size:12px;color:#52616a;margin-bottom:3px}.score-list{display:flex;gap:7px;flex-wrap:wrap;margin-top:8px}.score-chip{padding:4px 8px;background:#edf3f5;border-radius:6px}.reviewer-row{display:flex;gap:7px;flex-wrap:wrap;margin-top:9px}.reviewer-row select{min-width:170px}.form-card{border:1px dashed #b8c7cc;background:#f8fafb;border-radius:9px;padding:14px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(180px,1fr));gap:10px}.form-grid label{display:grid;gap:4px;color:#52616a}.form-grid .wide{grid-column:1/-1}.form-grid input,.form-grid select,.form-grid textarea{width:100%;border:1px solid #cbd6da;border-radius:6px;padding:8px;background:#fff}.form-actions{grid-column:1/-1;display:flex;justify-content:flex-end;gap:8px}.template-toolbar{display:flex;justify-content:space-between;align-items:flex-start;border-bottom:1px solid var(--line);padding-bottom:14px}.template-list{margin-top:14px}.template-scope{font-size:11px;color:var(--primary);font-weight:800}.week-board{padding:12px;border-radius:9px;background:#eef5f4;border:1px solid #d8e9e5}.week-board ul{margin:8px 0 0;padding-left:20px}.muted{color:var(--muted)}@media(max-width:850px){.layout{grid-template-columns:1fr}.sidebar{position:static}.case-list{max-height:240px}.topbar{align-items:flex-start}.score-hero{grid-template-columns:1fr}.form-grid{grid-template-columns:1fr}.form-grid .wide{grid-column:auto}}
.module-nav{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;padding:0 22px;background:#dce4e8;border-bottom:1px solid var(--line)}
.module-nav a{min-height:76px;padding:12px 18px;background:#fff;color:var(--ink);text-decoration:none;display:grid;grid-template-columns:34px 1fr;grid-template-rows:auto auto;column-gap:10px;align-content:center;position:relative}
.module-nav a::after{content:"";position:absolute;left:0;right:0;bottom:0;height:3px;background:transparent}
.module-nav a:hover{background:#f7faf9}.module-nav a.active{background:var(--primary-soft)}.module-nav a.active::after{background:var(--primary)}
.module-nav a>span{grid-row:1/3;align-self:center;color:#8a9aa1;font-size:12px;font-weight:800}.module-nav a.active>span{color:var(--primary)}
.module-nav strong{font-size:15px}.module-nav small{color:var(--muted);font-size:12px}
.layout{min-height:calc(100vh - 184px)}.layout.settings-page{grid-template-columns:minmax(0,1fr)}.layout.settings-page .workspace{max-width:1240px;width:100%;margin:0 auto}
.config-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:16px}.config-summary article{padding:14px;border:1px solid var(--line);border-radius:9px;background:#f7faf9}.config-summary strong,.config-summary span{display:block}.config-summary span{margin-top:3px;color:var(--muted);font-size:12px}.gate-card{max-width:620px;border-left:4px solid #d6a14b;background:#fffaf1}
@media(max-width:850px){.module-nav{padding:0}.module-nav a{padding:10px;grid-template-columns:1fr}.module-nav a>span{display:none}.config-summary{grid-template-columns:1fr}.module-nav small{display:none}.module-nav a{min-height:54px;text-align:center}.layout{min-height:auto}}
.page-shell{display:grid;grid-template-columns:224px minmax(0,1fr);min-height:calc(100vh - 108px)}
.page-content{min-width:0}
.page-shell>.module-nav{display:flex;flex-direction:column;align-items:stretch;gap:8px;padding:18px 12px;background:#fff;border-right:1px solid var(--line);border-bottom:0;position:sticky;top:0;align-self:start;min-height:calc(100vh - 108px)}
.page-shell>.module-nav a{min-height:78px;width:100%;padding:13px 12px;background:#fff;border:1px solid transparent;border-radius:9px;grid-template-columns:32px 1fr;grid-template-rows:auto auto;column-gap:8px;text-align:left}
.page-shell>.module-nav a:hover{background:#f7faf9;border-color:var(--line)}
.page-shell>.module-nav a.active{background:var(--primary-soft);border-color:#cce4dc}
.page-shell>.module-nav a::after{left:0;right:auto;top:9px;bottom:9px;width:4px;height:auto;border-radius:0 4px 4px 0}
.page-shell .layout{min-height:calc(100vh - 108px)}
@media(max-width:760px){.page-shell{grid-template-columns:1fr}.page-shell>.module-nav{position:static;min-height:auto;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));padding:8px;border-right:0;border-bottom:1px solid var(--line)}.page-shell>.module-nav a{min-height:58px;padding:9px;display:block;text-align:center}.page-shell>.module-nav a>span,.page-shell>.module-nav small{display:none}.page-shell>.module-nav a::after{left:8px;right:8px;top:auto;bottom:0;width:auto;height:3px}}
body>.layout{min-height:calc(100vh - 108px)}

/* The OA host supplies the module title and identity; embedded pages stay content-only. */
body>.topbar{display:none}
body>.layout{min-height:100vh}

.layout.employee-page{grid-template-columns:minmax(0,1fr)}.layout.employee-page .workspace{max-width:1240px;width:100%;margin:0 auto}

/* Employee phase-one learning path */
.layout.employee-page .workspace:has(.phase1-page){max-width:1440px;padding:18px;background:#f4f7fb;border-color:#e3e9f2}
.phase1-page{display:grid;grid-template-columns:minmax(0,1fr);gap:18px;align-items:start}
.phase1-main{min-width:0}
.phase1-hero{display:grid;grid-template-columns:150px minmax(260px,1fr) minmax(235px,310px);gap:22px;align-items:center;min-height:238px;padding:24px 26px;border:1px solid #dce7f8;border-radius:16px;background:linear-gradient(118deg,#eef5ff 0,#fff 48%,#f7faff 100%);box-shadow:0 10px 30px rgba(40,86,155,.08);overflow:hidden;position:relative}
.phase1-hero::before{content:"";position:absolute;width:260px;height:260px;border-radius:50%;left:-86px;top:-105px;background:rgba(89,148,244,.09)}
.phase1-illustration{width:132px;height:146px;border-radius:24px;background:linear-gradient(145deg,#4e91ff,#1767ed);box-shadow:0 18px 35px rgba(27,105,232,.24);display:grid;place-items:center;position:relative}
.phase1-illustration::before{content:"";position:absolute;inset:17px 20px;background:#fff;border-radius:10px;box-shadow:inset 0 0 0 1px #dfe9fa}
.phase1-illustration>span{position:absolute;right:-9px;bottom:8px;width:42px;height:42px;border:5px solid #fff;border-radius:50%;display:grid;place-items:center;background:#19b77a;color:#fff;font-size:23px;font-weight:900}
.checklist-icon{position:relative;z-index:1;width:70px;display:grid;gap:15px}
.checklist-icon i{display:block;height:8px;margin-left:22px;border-radius:8px;background:#cbdcf7;position:relative}
.checklist-icon i::before{content:"✓";position:absolute;left:-24px;top:-7px;color:#16af75;font-style:normal;font-size:18px;font-weight:900}
.phase1-title-row{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}
.phase1-kicker{margin:0 0 3px;color:#1767ed;font-size:11px;font-weight:800;letter-spacing:.12em}
.phase1-hero h2{margin:0;font-size:28px;line-height:1.3;color:#15233a}
.phase1-stage-status{flex:0 0 auto;padding:5px 12px;border-radius:999px;background:#e3efff;color:#1767ed;font-size:12px;font-weight:800}
.phase1-lead{margin:8px 0 19px;color:#68768a;font-size:14px}
.phase1-info-row{display:grid;grid-template-columns:92px 1fr;gap:9px;align-items:center;margin-top:10px;color:#6b788b}.phase1-info-row>span{white-space:nowrap}
.phase1-info-row span{position:relative;padding-left:19px}
.phase1-info-row span::before{content:"";position:absolute;left:1px;top:5px;width:9px;height:9px;border:2px solid #2877ef;border-radius:2px}
.phase1-info-row:last-child span::before{border-radius:50%}
.phase1-info-row strong{color:#3f4c60;font-weight:600}
.phase1-hero-progress{padding-left:4px}
.phase1-progress-label{display:flex;justify-content:space-between;align-items:center;color:#556377}
.phase1-progress-label strong{color:#14233b;font-size:16px}
.phase1-progress-label b{color:#1767ed;font-size:15px}
.phase1-progress-track{height:10px;margin:10px 0 20px;border-radius:999px;background:#e7edf6;overflow:hidden}
.phase1-progress-track i{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#1b68ee,#438df9);transition:width .25s ease}
.phase1-next{padding:13px 15px;border:1px solid #d4e1f5;border-radius:10px;background:rgba(255,255,255,.8);box-shadow:0 5px 13px rgba(48,91,151,.06)}
.phase1-next span{display:block;color:#718096;font-size:12px}
.phase1-next strong{display:block;margin-top:2px;color:#1e3e71;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.training-timeline{position:relative;margin-top:18px;padding-left:50px}
.training-timeline::before{content:"";position:absolute;left:23px;top:-18px;bottom:42px;border-left:2px dashed #b7c9e7}
.training-step{position:relative;margin-bottom:14px}
.training-node{position:absolute;z-index:2;left:-50px;top:28px;width:48px;display:flex;align-items:center}
.training-node::after{content:"";height:1px;flex:1;background:#aebdd2}
.training-node span{flex:0 0 auto;width:36px;height:36px;border:5px solid #f4f7fb;border-radius:50%;display:grid;place-items:center;background:#a9b6c9;color:#fff;font-weight:800;box-shadow:0 0 0 1px #a9b6c9}
.training-step.done .training-node span{background:#18ae75;box-shadow:0 0 0 1px #18ae75}
.training-step.active .training-node span{background:#fff;color:#1767ed;box-shadow:0 0 0 5px #1767ed}
.training-step-card{min-height:148px;padding:18px 20px;border:1px solid #dfe5ee;border-radius:12px;background:#fff;box-shadow:0 4px 15px rgba(25,55,100,.04)}
.training-step.done .training-step-card{border-color:#8bd8ba}
.training-step.active .training-step-card{border-color:#4b8df6;box-shadow:0 8px 22px rgba(30,105,225,.10)}
.training-step-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.training-step-title{display:flex;align-items:center;gap:10px;flex-wrap:wrap;min-width:0}
.training-step-number{width:27px;height:27px;border-radius:7px;display:grid;place-items:center;background:#93a2b7;color:#fff;font-weight:800}
.training-step.done .training-step-number{background:#18ae75}
.training-step.active .training-step-number{background:#1767ed}
.training-step-title h3{margin:0;font-size:18px;color:#16243a}
.training-scope{padding:3px 8px;border-radius:999px;background:#eff3f8;color:#68778a;font-size:11px}
.training-state{padding:4px 12px;border-radius:999px;font-size:12px;font-weight:800;background:#ffe9e9;color:#df3434}
.training-state.done{background:#e0f6ec;color:#0d9b65}
.training-state.active{background:#e7f0ff;color:#1767ed}
.training-description{margin:8px 0 13px;color:#687588}
.training-resource-row{display:flex;align-items:flex-start;gap:10px;min-height:30px}
.training-resource-row>strong{flex:0 0 auto;color:#58677a;font-size:12px;line-height:28px}
.training-resources{display:flex;align-items:center;gap:7px;flex-wrap:wrap;min-width:0}
.training-resources .file-list,.training-resources .link-list{display:contents}
.training-resources a{display:inline-flex;align-items:center;min-height:28px;padding:4px 10px;border:1px solid #dfe6f0;border-radius:6px;background:#fafcff;color:#246fe3;text-decoration:none;font-size:12px}
.training-resources a::before{content:"▤";margin-right:6px;color:#7e91ab}
.training-step-actions{display:flex;justify-content:flex-end;margin-top:10px}
.training-step-actions button{min-width:120px;padding:8px 14px}
.training-step.active .training-step-actions .primary{background:#1767ed}
.phase1-empty{min-height:240px;border:1px dashed #b9c7d9;border-radius:12px;background:#fff;display:grid;place-content:center;text-align:center;color:#758399}
.phase1-empty strong{font-size:17px;color:#33435a}
.exam-milestone{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:18px;align-items:center;min-height:98px;padding:18px 20px;border:1px solid #8eb8fa;border-radius:12px;background:linear-gradient(90deg,#f4f8ff,#fff);box-shadow:0 6px 18px rgba(30,105,225,.07)}
.exam-node{position:absolute;z-index:2;left:-58px;top:20px;width:54px;display:flex;align-items:center}
.exam-node::after{content:"";height:1px;flex:1;background:#7aa8f3}
.exam-node span{flex:0 0 auto;width:48px;height:48px;border:6px solid #f4f7fb;border-radius:50%;display:grid;place-items:center;background:#1767ed;color:#fff;font-size:20px;box-shadow:0 0 0 1px #1767ed}
.exam-milestone h3{margin:0;color:#17325d;font-size:18px}
.exam-milestone p{margin:4px 0 0;color:#718096}
.exam-time span{display:block;color:#7a8798;font-size:11px}
.exam-time strong{display:block;margin-top:3px;color:#34455e}
.exam-status{padding:6px 13px;border-radius:999px;background:#e7eef8;color:#617087;font-weight:800}
.exam-milestone.ready .exam-status{background:#e0f6ec;color:#0d9b65}
.phase1-aside{display:grid;gap:14px;position:sticky;top:16px}
.phase1-side-card{padding:19px;border:1px solid #e0e6ef;border-radius:13px;background:#fff;box-shadow:0 7px 22px rgba(25,55,100,.05)}
.side-card-title{display:flex;align-items:center;gap:10px;margin-bottom:15px}
.side-card-title>span{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;background:#e8f1ff;color:#1767ed;font-weight:900}
.side-card-title.progress-title>span{background:#e4f7ef;color:#0ca66d}
.side-card-title h3{margin:0;font-size:16px}
.phase1-side-card ul{display:grid;gap:12px;margin:0;padding:0;list-style:none;color:#677589;font-size:13px}
.phase1-side-card li{position:relative;padding-left:15px}
.phase1-side-card li::before{content:"";position:absolute;left:0;top:8px;width:5px;height:5px;border-radius:50%;background:#3b82ee}
.progress-stat{display:flex;align-items:center;justify-content:space-between;margin-top:9px;padding:10px 12px;border:1px solid #e4e9f0;border-radius:8px;color:#667589}
.progress-stat strong{font-size:18px;color:#34445b}
.progress-stat strong.pending{color:#e69020}
.progress-stat strong.finished{color:#10a36b}
.employee-card{display:flex;align-items:center;gap:12px}
.employee-avatar{width:43px;height:43px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(135deg,#2a79ee,#54a0ff);color:#fff;font-weight:800;font-size:17px}
.employee-card div{min-width:0}.employee-card small,.employee-card strong{display:block}.employee-card small{color:#8692a3}.employee-card p{margin:2px 0 0;color:#6e7c90;font-size:12px}
@media(max-width:1180px){.phase1-page{grid-template-columns:1fr}.phase1-aside{position:static;grid-template-columns:repeat(3,minmax(0,1fr))}.phase1-hero{grid-template-columns:120px minmax(240px,1fr) minmax(210px,270px)}.phase1-illustration{width:108px;height:126px}}
@media(max-width:820px){.phase1-hero{grid-template-columns:90px 1fr}.phase1-hero-progress{grid-column:1/-1}.phase1-illustration{width:82px;height:105px}.phase1-hero h2{font-size:23px}.phase1-aside{grid-template-columns:1fr}.training-timeline{padding-left:39px}.training-timeline::before{left:17px}.training-node{left:-39px}.exam-node{left:-48px}.exam-milestone{grid-template-columns:1fr}.exam-time{margin-top:4px}.training-resource-row{display:block}.training-step-actions{justify-content:stretch}.training-step-actions button{width:100%}}
@media(max-width:560px){.phase1-hero{grid-template-columns:1fr;padding:18px}.phase1-illustration{display:none}.phase1-title-row{display:block}.phase1-stage-status{display:inline-block;margin-top:10px}.training-step-head{display:block}.training-state{display:inline-block;margin-top:9px}.training-step-card{padding:15px}.exam-milestone{padding:15px}.training-timeline{padding-left:34px}}

/* Clean phase-one shell */
body.phase1-clean{background:#f4f7fb}
body.phase1-clean>.topbar{display:none}
body.phase1-clean>.layout{display:block;min-height:100vh;padding:0;background:#f4f7fb}
body.phase1-clean .layout.employee-page .workspace{max-width:none;width:100%;min-height:100vh;margin:0;padding:24px 28px 44px;border:0;border-radius:0;background:#f4f7fb;box-shadow:none}
body.phase1-clean .phase1-page{max-width:1480px;margin:0 auto}
body.phase1-clean>.notice:not(.hidden){position:relative;z-index:3;margin:0;padding:12px 28px;border-width:0 0 1px;border-radius:0}
@media(max-width:820px){body.phase1-clean .layout.employee-page .workspace{padding:14px 12px 28px}}
/* Floating notification */
.notice{position:fixed!important;z-index:3000!important;top:24px!important;right:24px!important;left:auto!important;width:min(420px,calc(100vw - 32px));margin:0!important;padding:15px 48px 15px 52px!important;border:1px solid #b8e3d3!important;border-radius:12px!important;background:#fff!important;color:#173f34!important;box-shadow:0 16px 42px rgba(24,48,64,.22)!important;animation:notice-pop .2s ease-out;display:block}
.notice.error{border-color:#f1c1bd!important;background:#fff!important;color:#7d2925!important}
.notice-icon{position:absolute;left:16px;top:16px;width:24px;height:24px;border-radius:50%;display:grid;place-items:center;background:#16a36f;color:#fff;font-size:14px;font-weight:900}
.notice.error .notice-icon{background:#df5148}
.notice-content{display:grid;gap:2px}
.notice-content strong{font-size:14px;line-height:1.35}
.notice-content span{font-size:13px;line-height:1.55;color:#50646d;white-space:pre-wrap;overflow-wrap:break-word}
.notice.error .notice-content span{color:#79423e}
.notice-close{position:absolute;top:9px;right:10px;width:30px;height:30px;border:0;border-radius:8px;background:transparent;color:#718089;font-size:21px;line-height:1;cursor:pointer}
.notice-close:hover{background:#f0f4f5;color:#263b44}
#notice[popover]{inset:24px 24px auto auto;border:0;overflow:visible}
#notice[popover]::backdrop{background:transparent}
@keyframes notice-pop{from{opacity:0;transform:translateY(-10px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}
@media(max-width:560px){.notice{top:12px!important;right:12px!important;width:calc(100vw - 24px);padding:14px 44px 14px 48px!important}}
/* Employee phase-two task table */
.employee-task-table-wrap{overflow:auto;border:1px solid #dfe6eb;border-radius:12px;background:#fff;box-shadow:0 5px 18px rgba(33,61,78,.06)}
.employee-task-table{width:100%;min-width:1280px;border-collapse:separate;border-spacing:0;table-layout:fixed}
.employee-task-table th,.employee-task-table td{border-right:1px solid #e2e8ec;border-bottom:1px solid #e2e8ec;padding:12px 11px;vertical-align:middle;text-align:left;background:#fff}
.employee-task-table th:last-child,.employee-task-table td:last-child{border-right:0}
.employee-task-table tbody tr:last-child td{border-bottom:0}
.employee-task-table thead th{background:#f7f9fb;color:#43545e;font-size:12px;font-weight:800;white-space:nowrap}
.employee-task-table thead .group-head th{padding:9px 12px;background:#edf3f8;color:#263e4c;text-align:center;font-size:13px;letter-spacing:.03em}
.employee-task-table thead .group-head th[rowspan]{vertical-align:middle}
.employee-task-table col.col-plan{width:148px}
.employee-task-table col.col-progress{width:108px}
.employee-task-table col.col-actual{width:148px}
.employee-task-table col.col-work-parent{width:180px}
.employee-task-table col.col-work-child{width:240px}
.employee-task-table col.col-work{width:280px}
.employee-task-table col.col-work-files{width:160px}
.employee-task-table col.col-score{width:90px}
.employee-task-table col.col-completion{width:230px}

.employee-task-table col.col-submit{width:105px}
.employee-task-table col.col-acceptance{width:110px}
.employee-task-table col.col-task-score{width:210px}
.employee-task-table col.col-trainer{width:110px}
.review-page{display:grid;gap:18px;max-width:1500px;margin:0 auto}.review-hero{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:24px 26px;border:1px solid #dce6ef;border-radius:16px;background:linear-gradient(120deg,#fff 0%,#eef6ff 100%);box-shadow:0 8px 24px rgba(33,74,110,.07)}.review-hero h2{margin:3px 0;font-size:26px}.review-hero>div>p:last-child{margin:4px 0 0;color:var(--muted)}.review-stats{display:flex;gap:10px}.review-stats span{min-width:105px;padding:12px 14px;border-radius:10px;background:#fff;color:#566771;box-shadow:0 3px 12px rgba(39,68,92,.08)}.review-stats b{display:block;color:var(--primary);font-size:24px}.review-panel{padding:20px;border:1px solid var(--line);border-radius:14px;background:#fff;box-shadow:var(--shadow)}.review-table-wrap{overflow:auto;border:1px solid var(--line);border-radius:10px}.review-table{min-width:1040px}.review-table td>strong,.review-table td>small{display:block}.review-table td>small{margin-top:3px;color:var(--muted)}.review-pending{display:inline-flex;padding:3px 8px;border-radius:999px;background:#fff2d7;color:#9a6200}.review-score{color:var(--primary);font-size:20px}.review-empty{min-height:260px;display:grid;place-content:center;gap:5px;text-align:center;color:var(--muted)}.review-empty strong{color:var(--ink);font-size:18px}.review-dialog{width:min(520px,calc(100vw - 32px));padding:0;border:0;border-radius:14px;box-shadow:0 24px 70px rgba(17,40,54,.28)}.review-dialog::backdrop{background:rgba(21,38,49,.42)}.review-dialog-card{padding:20px}.review-dialog-card header{display:flex;justify-content:space-between;gap:18px;padding-bottom:14px;border-bottom:1px solid var(--line)}.review-dialog-card header span{color:var(--primary);font-size:10px;font-weight:800;letter-spacing:.14em}.review-dialog-card h3{margin:3px 0}.review-dialog-card header p{margin:2px 0;color:var(--muted)}.review-dialog-card>label{display:grid;gap:7px;margin-top:18px;font-weight:700}.review-dialog-card label em{font-style:normal;color:var(--muted);font-size:12px}.review-dialog-card input{width:100%;padding:11px;border:1px solid #cbd6da;border-radius:8px;font-size:20px}.review-standard{margin-top:14px;padding:12px;border-radius:8px;background:#f5f8fa}.review-standard p{margin:4px 0 0;white-space:pre-wrap}.review-dialog-card footer{display:flex;justify-content:flex-end;gap:8px;margin-top:18px}
.employee-task-table tbody tr:hover td{background:#f9fbfd}
.employee-task-table tbody tr.cancelled td{background:#fafafa;color:#8a969d}
.employee-task-table .time-cell{font-variant-numeric:tabular-nums;white-space:nowrap;color:#40525c}
.employee-task-table .work-content-cell small{display:block;margin-bottom:4px;color:#2c70d6;font-size:11px;font-weight:800}
.employee-task-table .work-content-cell strong{display:block;color:#182f3b;font-size:14px}
.employee-task-table .work-content-cell p{margin:5px 0 0;color:#566771;white-space:pre-wrap;overflow-wrap:break-word}
.employee-task-table .work-level-cell strong,.employee-task-table .work-child-cell strong{display:block;color:#182f3b;overflow-wrap:break-word}
.employee-task-table .work-level-cell strong{color:#175fca}
.employee-task-table .completion-cell{white-space:pre-wrap;overflow-wrap:break-word;color:#4f616b}
.employee-task-table .target-score{font-size:17px;font-weight:800;color:#175fca;font-variant-numeric:tabular-nums}
.employee-task-table .file-list,.employee-task-table .link-list{margin:0;display:grid;justify-items:start;gap:5px}
.employee-task-table .file-list a,.employee-task-table .link-list a{max-width:145px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.employee-task-table .task-submit-state{display:inline-flex;padding:5px 9px;border-radius:6px;background:#e8f2ff;color:#1764c2;font-size:12px;font-weight:800}
.employee-task-table .acceptance-state{display:inline-flex;padding:4px 8px;border-radius:999px;background:#eef2f4;color:#61717a;font-size:12px;font-weight:800;white-space:nowrap}
.employee-task-table .acceptance-state.accepted{background:#dcf2e8;color:#0a604c}
.employee-task-table .acceptance-state.submitted{background:#fff2da;color:#8a5200}
.employee-task-table .acceptance-state.returned{background:#ffe8e5;color:#9b342c}
.employee-task-score{display:inline-block;padding:5px 9px;border-radius:6px;background:#e7f1ff;color:#175fca;font-size:14px;white-space:nowrap}
.employee-task-table .table-empty{color:#a0abb1}
.employee-training-cell{display:grid;justify-items:start;gap:7px}.employee-training-cell strong{color:#263e4c}.training-confirmed{display:inline-flex;padding:4px 8px;border-radius:999px;background:#dcf2e8;color:#0a604c;font-size:11px;font-weight:800;white-space:nowrap}button:disabled{cursor:not-allowed;opacity:.55}
.employee-task-empty{min-height:150px;display:grid;place-content:center;gap:5px;text-align:center;border:1px dashed #cdd8de;border-radius:12px;background:#fafcfd;color:#829097}
.employee-task-empty strong{color:#40515b;font-size:15px}
@media(max-width:820px){.employee-task-table-wrap{border-radius:9px}.employee-task-table th,.employee-task-table td{padding:10px 9px}}
/* Flat phase-two employee workspace */
body.phase2-clean{background:#f4f7fb}
body.phase2-clean>.topbar{display:none}
body.phase2-clean>.layout{display:block;min-height:100vh;padding:0;background:#f4f7fb}
body.phase2-clean .layout.employee-page .workspace{max-width:none;width:100%;min-height:100vh;margin:0;padding:24px 28px 44px;border:0;border-radius:0;background:transparent;box-shadow:none}
body.phase2-clean .case-header{padding:0 0 18px}
body.phase2-clean .employee-task-table-wrap{box-shadow:none}
.phase2-week-tabs{display:flex;gap:9px;overflow-x:auto;padding:2px 1px 12px;margin-bottom:2px;scrollbar-width:thin}.phase2-week-tab{position:relative;flex:0 0 auto;min-width:154px;padding:11px 13px;border:1px solid #d9e2e9;border-radius:10px;background:#fff;color:#42535e;text-align:left;box-shadow:0 2px 8px rgba(34,64,82,.04)}.phase2-week-tab:hover{border-color:#8eb5ed;background:#f8fbff}.phase2-week-tab.active{border-color:#246fd3;background:#edf5ff;box-shadow:0 0 0 1px #246fd3 inset}.phase2-week-tab strong,.phase2-week-tab span,.phase2-week-tab b{display:block}.phase2-week-tab strong{font-size:14px;color:#183847}.phase2-week-tab span{margin-top:2px;color:#72818b;font-size:10px}.phase2-week-tab b{margin-top:7px;color:#b05a18;font-size:11px}.phase2-week-tab b.complete{color:#17805f}.phase2-week-tab em{position:absolute;right:8px;top:8px;padding:2px 6px;border-radius:999px;background:#ffe4e1;color:#a73b32;font-size:10px;font-style:normal;font-weight:800}.phase2-week-tab.overdue{border-color:#efb6b0}.phase2-week-tab.overdue.active{border-color:#d7594e;box-shadow:0 0 0 1px #d7594e inset}.phase2-week-tabs+.employee-task-table-wrap,.phase2-week-tabs+.employee-task-empty,.phase2-week-tabs+.mgmt-work-table-wrap{margin-top:0}
.phase2-week-summary{display:flex;align-items:center;gap:22px;flex-wrap:wrap;margin:0 0 12px;padding:11px 14px;border:1px solid #d4e3f7;border-radius:10px;background:#f4f8ff;color:#53657c;font-size:12px}.phase2-week-summary b{margin-left:5px;color:#185fbe;font-size:15px}
.phase2-week-summary.total{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));align-items:stretch}.phase2-week-summary.total>span{padding:8px 10px;border-radius:8px;background:#fff}
.score-hero.employee-score-only{grid-template-columns:minmax(220px,360px)}
@media(max-width:820px){body.phase2-clean .layout.employee-page .workspace{padding:16px 12px 28px}}
/* Employee parent-child task hierarchy */
.employee-task-table .employee-parent-row td{background:#edf5ff;border-bottom-color:#cfdeed}.employee-task-table .employee-parent-row td:first-child>div{display:flex;align-items:center;gap:10px}.employee-task-table .employee-parent-row strong{color:#175fca;font-size:14px}.employee-task-table .employee-parent-row small{color:#6f8093}.employee-parent-hint{color:#718196;font-size:11px}.employee-task-table .employee-child-row td{background:#fff}.employee-task-table .work-tree-cell{text-align:right;color:#8fa8c7;font-size:18px}.employee-task-table .work-child-cell strong,.employee-task-table .work-child-cell small{display:block}.employee-task-table .work-child-cell small{margin-top:4px;color:#8996a3;font-size:10px}.employee-task-table .child-weight-cell{text-align:center}
.employee-task-table .work-child-cell{position:relative;padding-left:12px}.employee-task-table .work-child-cell .work-tree-branch{position:absolute;left:11px;top:10px;color:#8fa8c7;font-size:18px}
.phase2-week-tab.total{min-width:142px;background:#f7faff}.phase2-week-tab.total.active{background:#e8f2ff}
.phase2-manager-strip{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:18px;padding:13px 16px;border:1px solid #cddff8;border-radius:10px;background:#f4f8ff}.phase2-manager-strip>div{display:grid;gap:2px}.phase2-manager-strip strong{color:#174c92}.phase2-manager-strip span{font-size:12px;color:#66758a}.phase2-manager-strip label{display:flex;align-items:center;gap:9px;color:#54657a;font-size:12px}.phase2-manager-strip select{min-width:260px;padding:8px 34px 8px 10px;border:1px solid #b8cbe6;border-radius:7px;background:#fff;color:#243348}.phase2-work-heading{margin-top:20px}.phase2-operation-buttons{display:flex;align-items:center;gap:6px;flex-wrap:wrap;min-width:170px}.employee-task-table.manager{min-width:1320px}.employee-task-table.manager td:last-child{position:sticky;right:0;background:#fff;box-shadow:-6px 0 12px rgba(31,56,86,.06)}.employee-task-table.manager .employee-parent-row td:last-child{position:static;box-shadow:none}@media(max-width:850px){.phase2-manager-strip{align-items:stretch;flex-direction:column}.phase2-manager-strip label{display:grid}.phase2-manager-strip select{width:100%;min-width:0}}

.training-confirm-cell{text-align:center;min-width:116px}.training-confirm-action{box-shadow:0 6px 16px rgba(25,103,210,.22);font-weight:800;white-space:nowrap}
