:root{--paper: #f6f1e6;--paper-2: #efe8d8;--paper-3: #e8dfc9;--card: #fffdf7;--ink: #26221a;--ink-soft: #6b6353;--ink-faint: #998f7a;--line: #ddd2ba;--line-strong: #c4b694;--seal: #b8432c;--seal-soft: #f3ddd4;--pine: #4d6b5c;--gold: #a8842c;--l1: #5b7c6d;--l2: #3d5a80;--l3: #8d5a97;--l4: #b3541e;--font-display: "Noto Serif SC", "Songti SC", serif;--font-body: "Noto Sans SC", "PingFang SC", sans-serif;--sidebar-w: 232px;--radius: 4px;--shadow: 0 1px 0 rgba(38, 34, 26, .05), 0 8px 24px -18px rgba(38, 34, 26, .4)}*{box-sizing:border-box}html,body{margin:0;padding:0}body{font-family:var(--font-body);color:var(--ink);background:var(--paper);background-image:radial-gradient(var(--paper-3) .8px,transparent .8px);background-size:22px 22px;font-size:15px;line-height:1.7}#root{min-height:100vh}.app-shell{display:flex;min-height:100vh}.sidebar{width:var(--sidebar-w);flex-shrink:0;background:#211d15;color:#e9e2d0;padding:26px 0 30px;position:sticky;top:0;height:100vh;display:flex;flex-direction:column;border-right:3px solid var(--seal)}.brand{padding:0 22px 20px;border-bottom:1px solid rgba(233,226,208,.14)}.brand-mark{font-family:var(--font-display);font-weight:900;font-size:30px;letter-spacing:2px;color:#f4ecdb;line-height:1.2}.brand-mark em{font-style:normal;color:var(--seal)}.brand-sub{font-size:11px;letter-spacing:3.5px;color:#9a9078;margin-top:5px;text-transform:uppercase}.nav{flex:1;padding:14px 12px;overflow-y:auto}.nav-item{display:flex;align-items:baseline;gap:10px;width:100%;padding:9px 12px;border:none;background:none;color:#b9b099;font-family:var(--font-body);font-size:14px;text-align:left;cursor:pointer;border-radius:var(--radius);transition:background .15s,color .15s}.nav-item:hover{background:#e9e2d014;color:#f4ecdb}.nav-item.active{background:var(--seal);color:#fff}.nav-num{font-family:var(--font-display);font-size:11px;opacity:.65;letter-spacing:1px;min-width:18px}.sidebar-foot{padding:16px 22px 0;border-top:1px solid rgba(233,226,208,.14);font-size:12px;color:#8d8571;line-height:1.9}.sidebar-foot b{color:#d8cfb8;font-weight:500}.main{flex:1;min-width:0;padding:34px 44px 70px;max-width:1080px}.page-head{margin-bottom:26px}.page-kicker{font-size:12px;letter-spacing:4px;color:var(--seal);font-weight:700;margin-bottom:4px}.page-title{font-family:var(--font-display);font-weight:900;font-size:30px;margin:0 0 6px;letter-spacing:1px}.page-desc{color:var(--ink-soft);max-width:640px;margin:0}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:22px 24px}.card+.card{margin-top:16px}.card-title{font-family:var(--font-display);font-weight:700;font-size:18px;margin:0 0 8px;display:flex;align-items:center;gap:10px;flex-wrap:wrap}.tag{display:inline-block;font-size:11px;padding:1px 8px;border-radius:99px;border:1px solid var(--line-strong);color:var(--ink-soft);white-space:nowrap}.tag.recommend{border-color:var(--seal);color:var(--seal);background:var(--seal-soft);font-weight:700}.tag.solid{border:none;color:#fff;background:var(--ink-soft)}.btn{font-family:var(--font-body);font-size:14px;padding:8px 20px;border-radius:var(--radius);border:1px solid var(--ink);background:var(--ink);color:var(--paper);cursor:pointer;transition:transform .12s,opacity .12s}.btn:hover{opacity:.88}.btn:active{transform:translateY(1px)}.btn.ghost{background:transparent;color:var(--ink)}.btn.seal{background:var(--seal);border-color:var(--seal);color:#fff}.btn.small{padding:4px 12px;font-size:13px}.btn:disabled{opacity:.4;cursor:not-allowed}.link-btn{border:none;background:none;color:var(--seal);cursor:pointer;font-size:13px;padding:0;font-family:var(--font-body);text-decoration:underline;text-underline-offset:3px}.progress-track{height:6px;background:var(--paper-3);border-radius:99px;overflow:hidden}.progress-fill{height:100%;background:var(--seal);border-radius:99px;transition:width .4s ease}.progress-fill.green{background:var(--pine)}.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:14px}.stat{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:16px 18px 14px}.stat-num{font-family:var(--font-display);font-size:30px;font-weight:900;line-height:1.1}.stat-num small{font-size:14px;color:var(--ink-faint);font-weight:500}.stat-label{font-size:12.5px;color:var(--ink-soft);margin-top:3px}.onboarding-wrap{max-width:760px;margin:40px auto;padding:0 20px}.onboarding-hero{text-align:center;margin-bottom:34px}.onboarding-hero h1{font-family:var(--font-display);font-weight:900;font-size:44px;margin:10px 0 12px;letter-spacing:2px}.onboarding-hero h1 em{font-style:normal;color:var(--seal)}.onboarding-hero p{color:var(--ink-soft);max-width:540px;margin:0 auto}.seal-stamp{width:64px;height:64px;border:3px solid var(--seal);border-radius:8px;color:var(--seal);font-family:var(--font-display);font-weight:900;font-size:22px;display:inline-flex;align-items:center;justify-content:center;transform:rotate(-6deg);letter-spacing:0;line-height:1.1;padding:4px}.option-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px}.option-card{border:1.5px solid var(--line-strong);border-radius:var(--radius);background:var(--card);padding:14px 16px;cursor:pointer;text-align:left;font-family:var(--font-body);transition:border-color .15s,box-shadow .15s}.option-card:hover{border-color:var(--ink-soft)}.option-card.selected{border-color:var(--seal);box-shadow:0 0 0 1px var(--seal);background:#fffaf5}.option-card b{display:block;font-size:15px;margin-bottom:2px}.option-card span{font-size:12.5px;color:var(--ink-soft)}.step-label{font-family:var(--font-display);font-weight:700;font-size:17px;margin:30px 0 12px;display:flex;align-items:center;gap:10px}.step-label:before{content:"";display:inline-block;width:10px;height:10px;background:var(--seal)}.level-tabs{display:flex;gap:10px;margin-bottom:22px;flex-wrap:wrap}.level-tab{border:1.5px solid var(--line-strong);background:var(--card);border-radius:var(--radius);padding:10px 18px;cursor:pointer;font-family:var(--font-body);text-align:left;transition:box-shadow .15s}.level-tab.active{box-shadow:0 0 0 2px var(--ink)}.level-tab .lt-name{font-family:var(--font-display);font-weight:900;font-size:17px}.level-tab .lt-sub{font-size:12px;color:var(--ink-soft)}.level-banner{border-left:5px solid var(--level-color, var(--seal));background:var(--card);border-top:1px solid var(--line);border-right:1px solid var(--line);border-bottom:1px solid var(--line);padding:18px 22px;border-radius:var(--radius);margin-bottom:18px}.module-block{margin-bottom:16px}.module-head{display:flex;align-items:center;gap:12px;width:100%;background:var(--paper-2);border:1px solid var(--line);border-radius:var(--radius);padding:12px 16px;cursor:pointer;font-family:var(--font-body);text-align:left}.module-head:hover{border-color:var(--line-strong)}.module-head .mh-title{font-family:var(--font-display);font-weight:700;font-size:16px}.module-head .mh-desc{font-size:12.5px;color:var(--ink-soft)}.module-head .mh-count{margin-left:auto;font-size:12px;color:var(--ink-soft);white-space:nowrap}.lesson-list{border:1px solid var(--line);border-top:none;border-radius:0 0 var(--radius) var(--radius);background:var(--card)}.lesson-row{display:flex;align-items:center;gap:12px;padding:11px 16px;border-bottom:1px solid var(--paper-2);cursor:pointer}.lesson-row:last-child{border-bottom:none}.lesson-row:hover{background:#fdf9ee}.lesson-row.done .lr-title{color:var(--ink-faint)}.lesson-row .lr-check{width:18px;height:18px;border:1.5px solid var(--line-strong);border-radius:3px;flex-shrink:0;display:flex;align-items:center;justify-content:center;color:#fff;font-size:12px}.lesson-row.done .lr-check{background:var(--pine);border-color:var(--pine)}.lesson-row .lr-title{font-weight:500;font-size:14.5px}.lesson-row .lr-arrow{margin-left:auto;color:var(--ink-faint)}.lesson-detail{border:1.5px solid var(--ink);border-radius:var(--radius);background:var(--card);padding:26px 30px;position:relative}.lesson-detail:after{content:"课";position:absolute;top:18px;right:20px;width:40px;height:40px;border:2.5px solid var(--seal);border-radius:6px;color:var(--seal);font-family:var(--font-display);font-weight:900;font-size:18px;display:flex;align-items:center;justify-content:center;transform:rotate(8deg);opacity:.75}.ld-title{font-family:var(--font-display);font-weight:900;font-size:23px;margin:0 60px 10px 0}.ld-summary{color:var(--ink-soft);border-bottom:1px dashed var(--line-strong);padding-bottom:14px;margin-bottom:16px}.ld-section-title{font-family:var(--font-display);font-weight:700;font-size:15px;margin:18px 0 8px;color:var(--seal)}.content-list{margin:0;padding-left:0;list-style:none}.content-list li{padding-left:18px;position:relative;margin-bottom:7px}.content-list li:before{content:"";position:absolute;left:2px;top:.62em;width:7px;height:7px;background:var(--paper-3);border:1.5px solid var(--ink-soft);border-radius:50%}.task-list li:before{border-radius:2px}.task-row{display:flex;gap:12px;padding:12px 4px;border-bottom:1px dashed var(--line);align-items:flex-start}.task-row:last-child{border-bottom:none}.task-check{margin-top:4px}.task-title{font-weight:700;font-size:14.5px}.task-desc{font-size:13px;color:var(--ink-soft)}.filter-bar{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:20px}.filter-chip{border:1px solid var(--line-strong);background:var(--card);color:var(--ink-soft);border-radius:99px;padding:4px 14px;font-size:13px;cursor:pointer;font-family:var(--font-body)}.filter-chip.active{background:var(--ink);border-color:var(--ink);color:var(--paper)}.tool-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:14px}.tool-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:18px 20px;cursor:pointer;text-align:left;font-family:var(--font-body);transition:box-shadow .15s,border-color .15s;display:flex;flex-direction:column;gap:8px}.tool-card:hover{border-color:var(--ink);box-shadow:var(--shadow)}.tool-card h4{font-family:var(--font-display);font-size:16.5px;margin:0;font-weight:700}.tool-card p{margin:0;font-size:13px;color:var(--ink-soft);flex:1}.tool-card .tc-foot{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.script-box{background:var(--paper-2);border-left:3px solid var(--seal);padding:12px 16px;border-radius:0 var(--radius) var(--radius) 0;margin:10px 0}.script-box h5{margin:0 0 6px;font-size:13.5px;color:var(--seal);font-weight:700}.script-box p{margin:4px 0;font-size:14px}.case-bg{background:var(--card);border:1.5px solid var(--ink);border-radius:var(--radius);padding:22px 26px;font-size:15px;position:relative}.case-bg:before{content:"案情";position:absolute;top:-11px;left:18px;background:var(--ink);color:var(--paper);font-size:12px;padding:1px 10px;letter-spacing:4px;border-radius:2px}.case-option{display:block;width:100%;text-align:left;background:var(--card);border:1.5px solid var(--line-strong);border-radius:var(--radius);padding:13px 16px;margin-bottom:10px;cursor:pointer;font-family:var(--font-body);font-size:14.5px;transition:border-color .15s}.case-option:hover:not(:disabled){border-color:var(--ink)}.case-option.chosen{border-width:2px}.case-option.chosen.good{border-color:var(--pine);background:#eef4ef}.case-option.chosen.ok{border-color:var(--gold);background:#f8f2e2}.case-option.chosen.bad{border-color:var(--seal);background:#f9ece7}.case-option .opt-mark{font-weight:900;margin-right:8px;font-family:var(--font-display)}.case-feedback{border-radius:var(--radius);padding:14px 18px;margin:6px 0 14px;font-size:14px}.case-feedback.good{background:#eef4ef;border:1px solid var(--pine)}.case-feedback.ok{background:#f8f2e2;border:1px solid var(--gold)}.case-feedback.bad{background:#f9ece7;border:1px solid var(--seal)}.senior-note{background:#26221a;color:#e9e2d0;border-radius:var(--radius);padding:16px 20px;font-size:14px;margin-bottom:14px}.senior-note b{color:#f0c9a0}.case-progress-dots{display:flex;gap:6px;margin:14px 0}.cpd{width:26px;height:5px;border-radius:99px;background:var(--paper-3)}.cpd.done{background:var(--seal)}.sop-phase{margin-bottom:18px}.sop-phase-title{font-family:var(--font-display);font-weight:700;font-size:15.5px;padding:8px 0;border-bottom:2px solid var(--ink);display:flex;justify-content:space-between;align-items:baseline}.check-row{display:flex;align-items:flex-start;gap:10px;padding:8px 4px;border-bottom:1px dashed var(--line);cursor:pointer}.check-row:last-child{border-bottom:none}.check-row:hover{background:#fdf9ee}.check-box{width:17px;height:17px;border:1.5px solid var(--line-strong);border-radius:3px;margin-top:4px;flex-shrink:0;display:flex;align-items:center;justify-content:center;color:#fff;font-size:11px}.check-row.done .check-box{background:var(--pine);border-color:var(--pine)}.check-row.done .check-text{color:var(--ink-faint)}.check-text b{font-weight:500;font-size:14.5px}.check-note{display:block;font-size:12.5px;color:var(--ink-faint)}.dl-row{display:flex;align-items:center;gap:16px;padding:15px 4px;border-bottom:1px dashed var(--line)}.dl-row:last-child{border-bottom:none}.dl-icon{width:44px;height:44px;border-radius:var(--radius);display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;color:#fff;letter-spacing:1px;flex-shrink:0;font-family:var(--font-display)}.dl-icon.docx{background:var(--l2)}.dl-icon.xlsx{background:var(--pine)}.dl-info{flex:1;min-width:0}.dl-info b{font-size:15px}.dl-info p{margin:2px 0 0;font-size:13px;color:var(--ink-soft)}.note-editor{display:flex;flex-direction:column;gap:10px;margin-bottom:20px}.note-editor input,.note-editor textarea{font-family:var(--font-body);font-size:14.5px;padding:10px 14px;border:1px solid var(--line-strong);border-radius:var(--radius);background:var(--card);color:var(--ink)}.note-editor input:focus,.note-editor textarea:focus{outline:2px solid var(--ink);outline-offset:-1px}.note-editor textarea{min-height:120px;resize:vertical;line-height:1.7}.note-item{padding:15px 4px;border-bottom:1px dashed var(--line)}.note-item h4{margin:0 0 4px;font-size:15.5px;font-family:var(--font-display)}.note-item .note-time{font-size:12px;color:var(--ink-faint)}.note-item p{margin:6px 0 8px;white-space:pre-wrap;font-size:14px}.next-list{display:flex;flex-direction:column;gap:10px}.next-item{display:flex;align-items:center;gap:14px;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:13px 18px;cursor:pointer;font-family:var(--font-body);text-align:left;width:100%;transition:border-color .15s}.next-item:hover{border-color:var(--ink)}.next-item .ni-kind{font-size:11px;letter-spacing:2px;color:var(--seal);font-weight:700;white-space:nowrap}.next-item .ni-title{font-size:14.5px;font-weight:500}.next-item .ni-go{margin-left:auto;color:var(--ink-faint);font-size:18px}.profile-chip{display:inline-flex;gap:8px;align-items:center;background:var(--paper-2);border:1px solid var(--line);padding:6px 14px;border-radius:99px;font-size:12.5px;color:var(--ink-soft);flex-wrap:wrap}.empty-state{text-align:center;padding:50px 20px;color:var(--ink-soft)}@keyframes riseIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.rise{animation:riseIn .45s ease both}.rise-1{animation-delay:.05s}.rise-2{animation-delay:.12s}.rise-3{animation-delay:.2s}@media(max-width:860px){.app-shell{flex-direction:column}.sidebar{width:100%;height:auto;position:static;border-right:none;border-bottom:3px solid var(--seal)}.nav{display:flex;overflow-x:auto;padding:8px}.nav-item{white-space:nowrap}.sidebar-foot{display:none}.main{padding:24px 18px 60px}}
