:root{--brand:#dd8a16;--brand-strong:#c4740a;--brand-soft:#fbeacb;--ink:#2e2a24;--muted:#5e584d;--subtle:#8c8578;--line:#eee8dc;--line-strong:#e3d8c8;--page:#f7f3ec;--surface:#fff;--amber:#d97706;--amber-soft:#fff4e2;--blue:#4482c9;--blue-soft:#eef5ff;--green:#219e88;--green-soft:#eaf7f2;--purple:#8b6fb8;--purple-soft:#f3eef9;--radius:12px;--sidebar:224px;--shadow:0 10px 32px rgba(82,60,29,.07)}
*{box-sizing:border-box}html{font-size:15px}body{margin:0;background:var(--page);color:var(--ink);font-family:Inter,-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif;line-height:1.5}button,input{font:inherit}button{color:inherit}.app-shell{min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;z-index:50;width:var(--sidebar);display:flex;flex-direction:column;border-right:1px solid var(--line);background:var(--surface);transition:width .22s ease,transform .22s ease}.brand{height:76px;display:flex;align-items:center;gap:12px;padding:0 22px;color:inherit;text-decoration:none;border-bottom:1px solid #eef2f6}.brand img{width:42px;height:42px;object-fit:contain}.brand span{display:grid;min-width:0}.brand strong{color:var(--brand);font-size:18px;letter-spacing:.04em}.brand small{color:var(--muted);font-size:11px;white-space:nowrap}.side-nav{flex:1;overflow-y:auto;overflow-x:hidden;display:flex;flex-direction:column;padding:12px 10px}.side-nav::-webkit-scrollbar{width:4px}.side-nav::-webkit-scrollbar-thumb{background:var(--line-strong);border-radius:4px}.nav-item,.collapse-button{width:100%;height:44px;display:flex;align-items:center;gap:12px;padding:0 13px;border:0;border-radius:9px;background:transparent;color:#526176;cursor:pointer;text-align:left;transition:.16s ease}.nav-item:hover,.collapse-button:hover{background:#f2f6f8;color:var(--ink)}.nav-item.active{background:var(--brand-soft);color:var(--brand-strong);font-weight:700}.nav-item svg,.collapse-button svg{width:19px;height:19px;stroke-width:1.8;flex:0 0 auto}.nav-item span,.collapse-button span{flex:1;white-space:nowrap}.nav-item b{min-width:20px;height:20px;display:grid;place-items:center;padding:0 5px;border-radius:999px;background:#edf2f7;color:var(--muted);font-size:10px}.nav-item.active b{background:#cfecef;color:var(--brand-strong)}.side-footer{margin-top:auto;padding:10px;border-top:1px solid #eef2f6}.app-main{min-width:0;margin-left:var(--sidebar);transition:margin-left .22s ease}.topbar{position:sticky;top:0;z-index:40;height:76px;display:flex;align-items:center;gap:12px;padding:0 24px;border-bottom:1px solid var(--line);background:rgba(255,255,255,.96);backdrop-filter:blur(12px)}.greeting{min-width:185px;display:grid}.greeting strong{font-size:15px}.greeting span{color:var(--muted);font-size:11px}.global-search{height:42px;max-width:420px;min-width:220px;flex:1;display:flex;align-items:center;gap:9px;padding:0 11px;border:1px solid var(--line-strong);border-radius:10px;background:#fbfdff;transition:.16s}.global-search:focus-within{border-color:#7dbbc1;box-shadow:0 0 0 3px rgba(8,127,140,.1)}.global-search svg{width:17px;color:var(--muted)}.global-search input{min-width:0;flex:1;border:0;outline:0;background:transparent;color:var(--ink);font-size:13px}.global-search kbd{padding:2px 6px;border:1px solid var(--line);border-radius:5px;background:#fff;color:var(--subtle);font-size:10px}.primary-button,.quiet-button,.text-button,.row-action,.icon-button,.organization,.profile{border:0;background:none;cursor:pointer}.primary-button{height:42px;display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:0 16px;border-radius:9px;background:var(--brand);color:#fff;font-size:13px;font-weight:700;box-shadow:0 5px 14px rgba(8,127,140,.18);transition:.16s}.primary-button:hover{background:var(--brand-strong);transform:translateY(-1px)}.primary-button svg{width:17px}.icon-button{width:40px;height:40px;display:grid;place-items:center;border-radius:9px;color:#526176}.icon-button:hover{background:#f1f5f9}.icon-button svg{width:19px}.has-dot{position:relative}.has-dot::after{content:"";position:absolute;top:8px;right:8px;width:7px;height:7px;border:2px solid #fff;border-radius:50%;background:#e5484d}.organization{height:42px;display:flex;align-items:center;gap:7px;padding:0 11px;border:1px solid var(--line);border-radius:9px;background:#fff;color:#526176;font-size:12px}.organization svg{width:16px}.profile{display:flex;align-items:center;gap:5px}.profile span{width:34px;height:34px;display:grid;place-items:center;border-radius:50%;background:#dcedef;color:var(--brand-strong);font-weight:800}.profile svg{width:14px;color:var(--muted)}.mobile-menu{display:none}.workspace{max-width:1540px;margin:auto;padding:26px 28px 40px}.page-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:20px}.page-heading h1{margin:0;font-size:25px;letter-spacing:-.02em}.page-heading p{margin:5px 0 0;color:var(--muted);font-size:13px}.quiet-button{height:38px;display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:0 12px;border:1px solid var(--line-strong);border-radius:9px;background:#fff;color:#526176;font-size:12px;font-weight:650}.quiet-button:hover{border-color:#a7bac7;background:#f8fbfc}.quiet-button svg{width:16px}.metrics{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;margin-bottom:14px}.metric{min-width:0;min-height:86px;display:flex;align-items:center;gap:12px;padding:14px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);cursor:pointer;text-align:left;transition:.16s}.metric:hover,.metric.active{border-color:#9bc8cd;box-shadow:0 6px 20px rgba(15,23,42,.05);transform:translateY(-1px)}.metric.active{box-shadow:inset 0 0 0 1px #b9dde0}.metric-icon{width:38px;height:38px;display:grid;place-items:center;flex:0 0 auto;border-radius:10px}.metric-icon svg{width:19px}.metric-icon.teal{background:var(--brand-soft);color:var(--brand)}.metric-icon.amber{background:var(--amber-soft);color:var(--amber)}.metric-icon.blue{background:var(--blue-soft);color:var(--blue)}.metric-icon.green{background:var(--green-soft);color:var(--green)}.metric-icon.purple{background:var(--purple-soft);color:var(--purple)}.metric-icon.cyan{background:#ecf8ff;color:#0284c7}.metric>span:last-child{display:grid}.metric small{overflow:hidden;color:var(--muted);font-size:11px;white-space:nowrap;text-overflow:ellipsis}.metric strong{margin-top:1px;font-size:24px;line-height:1.15}.dashboard-grid{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(340px,.9fr);gap:14px}.panel{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);overflow:hidden}.panel-head{min-height:64px;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:13px 16px;border-bottom:1px solid var(--line)}.panel-head h2{margin:0;font-size:15px}.panel-head p{margin:3px 0 0;color:var(--muted);font-size:10px}.text-button{display:inline-flex;align-items:center;gap:3px;color:var(--brand);font-size:11px;font-weight:700;white-space:nowrap}.text-button svg{width:14px}.schedule-table{overflow-x:auto}.schedule-row{min-width:820px;display:grid;grid-template-columns:74px 130px 94px minmax(170px,1.35fr) minmax(116px,.9fr) 68px 104px;align-items:center;gap:8px;padding:12px 15px;border-top:1px solid #edf1f5;font-size:11px}.schedule-row:first-child{border-top:0}.schedule-row:not(.table-header):hover{background:#fafcfd}.schedule-row.is-hidden{display:none}.table-header{padding-block:9px;background:#f8fafc;color:var(--muted);font-size:10px;font-weight:700}.schedule-row>span{min-width:0}.time{font-variant-numeric:tabular-nums;color:#334155;font-weight:700}.time small{display:block;color:var(--subtle);font-size:9px;font-weight:500}.student{display:flex;align-items:center;gap:8px}.student>span{display:grid;min-width:0}.student strong{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.student small,.schedule-row>span>small{display:block;color:var(--muted);font-size:9px}.avatar{width:34px;height:34px;display:grid;place-items:center;flex:0 0 auto;border-radius:10px;font-size:12px;font-style:normal}.avatar-blue{background:#e8f2ff;color:#2162ac}.avatar-pink{background:#fbeaf0;color:#a84268}.avatar-green{background:#e7f5ed;color:#247552}.avatar-purple{background:#f0ebfa;color:#6c4aa1}.status{display:inline-flex;padding:4px 7px;border-radius:6px;font-size:9px;font-style:normal;font-weight:800;white-space:nowrap}.status.doing{background:var(--brand-soft);color:var(--brand-strong)}.status.waiting{background:var(--blue-soft);color:var(--blue)}.row-action{height:30px;display:inline-flex;align-items:center;gap:3px;padding:0 8px;border:1px solid #8ec6cc;border-radius:7px;color:var(--brand-strong);font-size:9px;font-weight:750;white-space:nowrap}.row-action:hover{background:var(--brand);border-color:var(--brand);color:#fff}.row-action svg{width:12px}.activity-list{list-style:none;margin:0;padding:7px 16px 12px}.activity-list li{display:grid;grid-template-columns:22px minmax(0,1fr) auto;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid #edf1f5}.activity-list li:last-child{border:0}.activity-list p{margin:0;color:#526176;font-size:11px}.activity-list p strong{color:var(--ink)}.activity-list time{color:var(--subtle);font-size:10px}.activity-icon{width:17px}.activity-icon.success{color:#16a05d}.activity-icon.amber{color:var(--amber)}.activity-icon.blue{color:var(--blue)}.activity-icon.purple{color:var(--purple)}.reminder-list{display:flex;flex-wrap:wrap;gap:12px;padding:14px 16px 18px}.reminder{position:relative;display:flex;flex-direction:column;gap:9px;flex:1 1 0;min-width:200px;max-width:280px;margin:0;padding:14px;border:1px solid #edf1f5;border-radius:10px;background:#fff}.reminder::before{content:"";position:absolute;inset:9px auto 9px 0;width:3px;border-radius:0 3px 3px 0;background:currentColor}.reminder>svg{width:17px;margin-top:1px}.reminder.warning{color:var(--amber)}.reminder.attention{color:#ea580c}.reminder.info{color:var(--blue)}.reminder>div{min-width:0;flex:1;display:flex;flex-direction:column}.reminder-title{display:flex;justify-content:space-between;gap:8px}.reminder-title strong{color:var(--ink);font-size:11px}.reminder-title time{color:var(--subtle);font-size:9px}.reminder p{margin:5px 0 auto;color:var(--muted);font-size:10px;line-height:1.55}.task-action{padding:0;border:0;background:transparent;color:var(--brand-strong);cursor:pointer;font-size:9px;font-weight:750}.task-action+.task-action{margin-left:10px}.reminder.done{opacity:.54}.reminder.done::after{content:"已处理";position:absolute;right:10px;bottom:10px;padding:2px 6px;border-radius:5px;background:var(--green-soft);color:var(--green);font-size:9px;font-weight:700}.shortcuts-panel{margin-bottom:14px;border-color:#e8c894;background:linear-gradient(135deg,#fff8ea,#fffcf4)}.shortcuts-panel .panel-head{border-bottom:1px solid #f0dcb8}.shortcuts-panel .panel-head h2{color:var(--brand-strong)}.shortcut-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:10px;padding:14px 16px 18px}.shortcut-grid button{min-height:84px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:14px 8px;border:1px solid #ead2ae;border-radius:12px;background:#fff;color:#526176;cursor:pointer;font-size:11px;font-weight:650;transition:.18s}.shortcut-grid button:hover{border-color:var(--brand);background:var(--brand);color:#fff;transform:translateY(-2px);box-shadow:0 8px 20px rgba(221,138,22,.22)}.shortcut-grid button:hover svg{color:#fff}.shortcut-grid svg{width:24px;height:24px;color:var(--brand);transition:.18s}.training-dialog,.create-dialog{padding:0;border:0;border-radius:14px;background:#fff;color:var(--ink);box-shadow:0 28px 80px rgba(15,23,42,.25)}dialog::backdrop{background:rgba(15,23,42,.52);backdrop-filter:blur(3px)}.training-dialog{width:min(1120px,calc(100vw - 40px));height:min(760px,calc(100vh - 40px));overflow:hidden}.training-dialog[open]{display:grid;grid-template-rows:auto 1fr auto}.training-header,.training-footer{display:flex;align-items:center;gap:14px;padding:14px 18px;border-bottom:1px solid var(--line)}.training-footer{justify-content:flex-end;border-top:1px solid var(--line);border-bottom:0}.training-student{display:flex;align-items:center;gap:9px}.training-student>span{display:grid}.training-student small{color:var(--muted);font-size:9px}.training-student strong{font-size:14px}.autosave{margin-left:auto;display:flex;align-items:center;gap:5px;color:var(--green);font-size:10px}.autosave svg{width:15px}.training-body{min-height:0;display:grid;grid-template-columns:270px 1fr}.training-context{padding:22px;border-right:1px solid var(--line);background:#f8fafc}.training-context h3{margin:0 0 7px;font-size:12px}.training-context>p{margin:0 0 24px;color:var(--brand-strong);font-size:15px;font-weight:750;line-height:1.6}.training-context dl{display:grid;gap:16px;margin:0}.training-context dl div{padding-top:14px;border-top:1px solid var(--line)}.training-context dt{color:var(--subtle);font-size:9px}.training-context dd{margin:4px 0 0;color:#475569;font-size:11px;line-height:1.65}.training-stage{min-width:0;display:flex;flex-direction:column;padding:20px 28px}.training-progress{display:flex;justify-content:space-between;color:var(--muted);font-size:11px}.stimulus-card{width:min(680px,100%);margin:auto;padding:42px;border:1px solid var(--line);border-radius:14px;background:#fff;text-align:center;box-shadow:var(--shadow)}.stimulus-card small{color:var(--muted);font-size:11px}.stimulus-card p{margin:18px 0 24px;font-size:26px;font-weight:700;line-height:1.6}.listen-button{height:38px;display:inline-flex;align-items:center;gap:7px;padding:0 14px;border:1px solid #9bc8cd;border-radius:9px;background:var(--brand-soft);color:var(--brand-strong);cursor:pointer;font-size:11px;font-weight:700}.listen-button svg{width:16px}.response-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:22px}.response-actions button{min-height:66px;display:flex;align-items:center;justify-content:center;gap:9px;border:1px solid var(--line);border-radius:10px;background:#fff;cursor:pointer}.response-actions button:hover{border-color:#9bc8cd;box-shadow:0 5px 16px rgba(15,23,42,.06)}.response-actions svg{width:20px}.response-actions span{display:grid;text-align:left;font-size:11px;font-weight:750}.response-actions small{color:var(--muted);font-size:8px;font-weight:500}.score-summary{display:flex;justify-content:center;gap:24px;margin-top:13px;color:var(--muted);font-size:9px}.score-summary strong{color:var(--ink)}.create-dialog{width:min(620px,calc(100vw - 32px))}.dialog-title{display:flex;gap:16px;padding:20px 20px 12px}.dialog-title>div{flex:1}.dialog-title h2{margin:0;font-size:19px}.dialog-title p{margin:5px 0 0;color:var(--muted);font-size:11px}.create-options{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:10px 20px 22px}.create-options button{display:flex;align-items:center;gap:12px;padding:15px;border:1px solid var(--line);border-radius:10px;background:#fff;cursor:pointer;text-align:left}.create-options button:hover{border-color:#9bc8cd;background:#f8fcfc}.create-options button>svg{width:21px;color:var(--brand)}.create-options span{display:grid}.create-options strong{font-size:12px}.create-options small{margin-top:2px;color:var(--muted);font-size:9px}.toast{position:fixed;z-index:100;right:24px;bottom:24px;display:flex;align-items:center;gap:8px;padding:11px 15px;border-radius:9px;background:#12263a;color:#fff;box-shadow:0 16px 40px rgba(15,23,42,.24);font-size:11px;opacity:0;transform:translateY(12px);pointer-events:none;transition:.2s}.toast.show{opacity:1;transform:translateY(0)}.toast svg{width:16px;color:#52d69a}.sidebar-scrim{display:none}.sidebar-collapsed .sidebar{width:72px}.sidebar-collapsed .app-main{margin-left:72px}.sidebar-collapsed .brand{padding:0 15px}.sidebar-collapsed .brand img{width:40px}.sidebar-collapsed .brand span,.sidebar-collapsed .nav-item span,.sidebar-collapsed .nav-item b,.sidebar-collapsed .collapse-button span{display:none}.sidebar-collapsed .nav-item,.sidebar-collapsed .collapse-button{justify-content:center;padding:0}
.brand-logo{position:relative;width:48px;height:48px;display:block;flex:0 0 48px;overflow:hidden;border-radius:14px;background:#fff;box-shadow:0 4px 12px rgba(82,60,29,.08)}
.brand-logo img{position:absolute;width:102px;height:102px;max-width:none;left:-27px;top:-20px;object-fit:contain}
.brand>span:last-child strong{color:var(--brand-strong)}
.primary-button{flex-shrink:0;white-space:nowrap}
.global-search:focus-within{border-color:#deb675;box-shadow:0 0 0 3px rgba(221,138,22,.12)}
.metric:hover,.metric.active{border-color:#dfba83;box-shadow:0 6px 20px rgba(82,60,29,.06);transform:translateY(-1px)}
.metric.active{box-shadow:inset 0 0 0 1px #efd2a6}
.row-action{border-color:#deb675;color:var(--brand-strong)}
.row-action:hover{background:var(--brand);border-color:var(--brand);color:#fff}
.shortcut-grid button:hover,.create-options button:hover{border-color:#deb675;background:#fffaf2;color:var(--brand-strong)}
.topbar{box-shadow:0 1px 0 rgba(82,60,29,.025)}
.panel{box-shadow:0 2px 10px rgba(82,60,29,.025)}
.status.doing{background:var(--brand-soft);color:var(--brand-strong)}
.focus-strip{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(280px,.75fr);gap:0;margin-bottom:14px;border:1px solid #e8c894;border-radius:var(--radius);background:#fff;overflow:hidden;box-shadow:0 6px 20px rgba(82,60,29,.045)}
.focus-now,.focus-next{min-width:0;display:flex;align-items:center;gap:13px;padding:15px 17px}.focus-now{background:linear-gradient(90deg,#fff8ea,#fff)}.focus-next{border-left:1px solid var(--line)}
.focus-mark{width:38px;height:38px;display:grid;place-items:center;flex:0 0 auto;border-radius:11px;background:var(--brand);color:#fff}.focus-mark svg{width:17px;fill:currentColor}
.focus-now>div,.focus-next>div{min-width:0;display:grid}.focus-strip small{color:var(--brand-strong);font-size:9px;font-weight:800}.focus-strip strong{margin-top:1px;overflow:hidden;font-size:13px;white-space:nowrap;text-overflow:ellipsis}.focus-strip p{margin:2px 0 0;overflow:hidden;color:var(--muted);font-size:10px;white-space:nowrap;text-overflow:ellipsis}
.focus-action{height:36px;display:inline-flex;align-items:center;gap:5px;margin-left:auto;padding:0 12px;border:0;border-radius:8px;background:var(--brand);color:#fff;cursor:pointer;font-size:10px;font-weight:800;white-space:nowrap}.focus-action:hover{background:var(--brand-strong)}.focus-action svg{width:13px}.focus-next .quiet-button{margin-left:auto;flex:0 0 auto}
.reminder.is-filtered-out{display:none}.schedule-row.row-focus{background:#fff8e9;box-shadow:inset 4px 0 0 var(--brand)}
.task-action{padding:4px 8px;border:1px solid #ead2ae;border-radius:6px;background:#fffaf2}.task-action:hover{border-color:var(--brand);background:var(--brand);color:#fff}.task-action:disabled{cursor:default}
.summary-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}.summary-metrics .metric{min-height:94px}.summary-metrics .metric>span:last-child{grid-template-columns:auto 1fr;column-gap:8px;align-items:end}.summary-metrics .metric small{grid-column:1/-1}.summary-metrics .metric strong{grid-column:1;font-size:27px}.summary-metrics .metric strong small{display:inline;margin-left:3px;color:var(--muted);font-size:10px;font-weight:600}.metric-detail{grid-column:2;align-self:center;color:var(--muted);font-size:10px;font-style:normal;white-space:nowrap}.metric-detail.positive{color:var(--green);font-weight:700}
@media(max-width:1220px){.topbar{padding-inline:18px}.organization span{display:none}.metrics{grid-template-columns:repeat(3,1fr)}.reminder{min-width:180px}}
@media(max-width:900px){:root{--sidebar:220px}.sidebar{transform:translateX(-100%)}.app-main{margin-left:0}.mobile-menu{width:40px;height:40px;display:grid;place-items:center;border:0;border-radius:9px;background:#f1f5f9}.greeting{min-width:160px}.global-search kbd,.profile,.organization{display:none}.sidebar-open .sidebar{transform:translateX(0)}.sidebar-scrim{position:fixed;inset:0;z-index:45;display:block;background:rgba(15,23,42,.38);opacity:0;pointer-events:none;transition:.2s}.sidebar-open .sidebar-scrim{opacity:1;pointer-events:auto}.focus-strip{grid-template-columns:1fr}.focus-next{border-top:1px solid var(--line);border-left:0}.training-body{grid-template-columns:220px 1fr}}
@media(max-width:680px){.topbar{height:auto;min-height:68px;flex-wrap:wrap;padding:10px 12px}.greeting{flex:1}.global-search{order:5;max-width:none;min-width:100%;height:38px}.topbar>.primary-button{width:40px;padding:0;font-size:0}.workspace{padding:18px 12px 30px}.page-heading{align-items:flex-start}.page-heading p{max-width:260px}.focus-now{flex-wrap:wrap}.focus-now>div{flex:1}.focus-action{width:100%;margin:0}.metrics{grid-template-columns:repeat(2,1fr)}.summary-metrics .metric:last-child{grid-column:1/-1}.metric{min-height:74px}.metric-icon{width:34px;height:34px}.activity-list time{display:none}.training-dialog{width:100vw;height:100vh;max-width:none;max-height:none;border-radius:0}.training-body{display:block;overflow:auto}.training-context{border-right:0;border-bottom:1px solid var(--line)}.training-stage{padding:18px}.stimulus-card{padding:28px 18px}.stimulus-card p{font-size:20px}.response-actions{grid-template-columns:1fr}.score-summary{gap:10px}.shortcut-grid{grid-template-columns:repeat(3,1fr)}.create-options{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
.nav-item{text-decoration:none}
.nav-group{display:grid;gap:2px}.nav-group+.nav-group{margin-top:14px}
.nav-group-label{display:block;padding:0 13px 6px;font-size:9px;font-weight:800;letter-spacing:.06em;color:var(--subtle);user-select:none;white-space:nowrap;overflow:hidden}
.sidebar-collapsed .nav-group-label{display:none}.sidebar-collapsed .nav-group+.nav-group{margin-top:8px}

/* Page View */
.page-view{display:none}.page-view:not([hidden]){display:block}

/* Data Table */
.data-table{overflow-x:auto}
.data-row{min-width:760px;display:grid;grid-template-columns:2fr .8fr 1fr 1fr 1fr 1fr .8fr;align-items:center;gap:8px;padding:12px 16px;border-top:1px solid #edf1f5;font-size:12px}
.data-row:first-child{border-top:0}
.data-row:not(.data-header):hover{background:#fafcfd;cursor:pointer}
.data-header{padding-block:9px;background:#f8fafc;color:var(--muted);font-size:10px;font-weight:700}
.data-empty{padding:40px 16px;text-align:center;color:var(--subtle);font-size:12px}

/* Filter Bar */
.filter-bar{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:14px 16px}
.filter-search{flex:1;min-width:180px;height:38px;display:flex;align-items:center;gap:8px;padding:0 11px;border:1px solid var(--line-strong);border-radius:9px;background:#fbfdff}
.filter-search svg{width:16px;color:var(--muted)}
.filter-search input{flex:1;border:0;outline:0;background:transparent;font-size:13px}
.filter-select{height:38px;padding:0 10px;border:1px solid var(--line-strong);border-radius:9px;background:#fff;font-size:12px;cursor:pointer}
.filter-check{display:flex;align-items:center;gap:5px;font-size:12px;color:var(--muted);cursor:pointer}
.filter-check input{cursor:pointer}

/* Badges */
.badge{display:inline-flex;align-items:center;padding:2px 8px;border-radius:6px;font-size:9px;font-weight:700;white-space:nowrap}
.badge-warn{background:#fff4e2;color:var(--amber)}
.badge-info{background:var(--blue-soft);color:var(--blue)}
.badge-soft{background:var(--brand-soft);color:var(--brand-strong)}

/* Status variants */
.status.warn{background:#fff4e2;color:var(--amber)}

/* Profile Tabs */
.profile-tabs{display:flex;gap:2px;margin-bottom:14px;border-bottom:2px solid var(--line);overflow-x:auto}
.profile-tabs .tab{flex:0 0 auto;padding:10px 18px;border:0;background:none;color:var(--muted);font-size:13px;font-weight:600;cursor:pointer;white-space:nowrap;border-bottom:2px solid transparent;margin-bottom:-2px;transition:.16s}
.profile-tabs .tab:hover{color:var(--ink)}
.profile-tabs .tab.active{color:var(--brand-strong);border-bottom-color:var(--brand)}

/* Info Grid */
.info-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.info-grid-2{grid-template-columns:repeat(2,1fr)}
.info-card{border:1px solid var(--line);border-radius:10px;padding:16px;background:#fff}
.info-card-head{display:flex;align-items:center;gap:6px;margin-bottom:8px;font-size:12px;font-weight:700;color:var(--brand-strong)}
.info-card-head svg{width:16px}
.info-card p{margin:0;color:var(--muted);font-size:12px;line-height:1.6}

/* Goal List */
.goal-list{padding:8px 16px 14px}
.goal-item{display:flex;align-items:center;gap:14px;padding:14px;border:1px solid #edf1f5;border-radius:10px;margin-top:8px;cursor:pointer;transition:.16s}
.goal-item:hover{border-color:var(--brand);box-shadow:0 4px 14px rgba(82,60,29,.06)}
.goal-level{flex:0 0 auto;min-width:80px;padding:4px 10px;border-radius:7px;background:var(--brand-soft);color:var(--brand-strong);font-size:10px;font-weight:700;text-align:center}
.goal-body{flex:1;min-width:0}
.goal-field{font-size:11px;color:var(--subtle);font-weight:600}
.goal-target{font-size:13px;color:var(--ink);margin:3px 0}
.goal-baseline{font-size:10px;color:var(--muted)}

/* Plan Items */
.plan-item{padding:16px;border-top:1px solid #edf1f5}
.plan-item:first-child{border-top:0}
.plan-head{display:flex;flex-direction:column;gap:3px;margin-bottom:10px}
.plan-head strong{font-size:14px}
.plan-head span{font-size:11px;color:var(--muted)}
.plan-modules{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px}
.plan-materials,.plan-goals{font-size:11px;color:var(--muted);margin-bottom:4px}
.plan-materials small,.plan-goals small{color:var(--subtle);font-weight:700}
.plan-detail{padding:16px}
.plan-row{display:flex;gap:12px;padding:8px 0;border-top:1px solid #f5f5f5}
.plan-row:first-child{border-top:0}
.plan-row small{flex:0 0 80px;color:var(--subtle);font-weight:700;font-size:11px}
.plan-row div{flex:1;font-size:12px;color:var(--ink)}

/* Material Grid */
.material-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;padding:16px}
.material-card{border:1px solid var(--line);border-radius:12px;padding:18px;background:#fff;transition:.16s;cursor:pointer}
.material-card:hover{border-color:var(--brand);box-shadow:0 6px 18px rgba(82,60,29,.06);transform:translateY(-2px)}
.material-icon{width:44px;height:44px;display:grid;place-items:center;border-radius:11px;background:var(--brand-soft);color:var(--brand);margin-bottom:12px}
.material-icon svg{width:22px}
.material-info strong{display:block;font-size:14px;margin-bottom:3px}
.material-info small{color:var(--muted);font-size:11px}
.material-tags{display:flex;flex-wrap:wrap;gap:4px;margin-top:10px}

/* Homework List */
.hw-list{padding:8px 16px 14px}
.hw-item{display:flex;align-items:center;gap:14px;padding:14px;border:1px solid #edf1f5;border-radius:10px;margin-top:8px}
.hw-info{flex:1;min-width:0}
.hw-info strong{display:block;font-size:13px}
.hw-info small{color:var(--muted);font-size:11px}
.hw-status{flex:0 0 auto}
.hw-actions{flex:0 0 auto}

/* Message Panel */
.msg-panel{display:grid;grid-template-columns:280px 1fr;height:calc(100vh - 220px);min-height:420px;overflow:hidden}
.msg-sidebar{border-right:1px solid var(--line);overflow-y:auto;padding:8px}
.msg-thread{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:9px;cursor:pointer;transition:.16s}
.msg-thread:hover{background:#f8fafc}
.msg-thread.active{background:var(--brand-soft)}
.msg-thread>div{flex:1;min-width:0}
.msg-thread strong{display:block;font-size:13px}
.msg-thread small{display:block;overflow:hidden;color:var(--muted);font-size:10px;white-space:nowrap;text-overflow:ellipsis}
.msg-main{display:flex;flex-direction:column;min-height:0}
.msg-history{flex:1;overflow-y:auto;padding:18px;display:flex;flex-direction:column;gap:12px}
.msg-bubble{max-width:70%;padding:10px 14px;border-radius:12px;font-size:13px}
.msg-bubble.me{align-self:flex-end;background:var(--brand);color:#fff;border-bottom-right-radius:4px}
.msg-bubble.them{align-self:flex-start;background:#f1f5f9;color:var(--ink);border-bottom-left-radius:4px}
.msg-bubble p{margin:0 0 4px}
.msg-bubble time{font-size:9px;opacity:.7}
.msg-input{display:flex;gap:10px;padding:12px 16px;border-top:1px solid var(--line);background:#fafafa}
.msg-input input{flex:1;height:40px;padding:0 12px;border:1px solid var(--line-strong);border-radius:9px;font-size:13px;outline:none}
.msg-input input:focus{border-color:var(--brand)}

/* Bar Chart */
.bar-chart{padding:18px 16px}
.bar-row{display:flex;align-items:center;gap:12px;margin-bottom:12px}
.bar-label{flex:0 0 80px;font-size:12px;text-align:right;color:var(--muted)}
.bar-track{flex:1;height:28px;border-radius:7px;background:#f5f0e6;overflow:hidden}
.bar-fill{height:100%;border-radius:7px;background:linear-gradient(90deg,var(--brand),var(--brand-strong));transition:width .6s ease}
.bar-val{flex:0 0 30px;font-size:14px;font-weight:700;text-align:center}

/* Trend Chart */
.trend-chart{display:flex;align-items:flex-end;gap:24px;padding:24px 28px;height:200px}
.trend-bar{flex:1;display:flex;flex-direction:column;align-items:center;gap:6px;height:100%;justify-content:flex-end}
.trend-fill{width:40px;border-radius:8px 8px 0 0;background:linear-gradient(180deg,var(--brand),var(--brand-soft));min-height:4px;transition:height .6s ease}
.trend-bar small{font-size:10px;color:var(--muted)}
.trend-bar span{font-size:11px;font-weight:700;color:var(--brand-strong)}

/* Settings Form */
.settings-form{padding:16px}
.form-row{display:flex;align-items:center;gap:12px;padding:10px 0;border-top:1px solid #f5f5f5}
.form-row:first-child{border-top:0}
.form-row label{flex:0 0 200px;font-size:13px;font-weight:600;color:var(--ink)}
.form-input{flex:1;max-width:360px;height:38px;padding:0 12px;border:1px solid var(--line-strong);border-radius:9px;font-size:13px;outline:none}
.form-input:focus{border-color:var(--brand)}
.form-input:disabled{background:#f8fafc;color:var(--muted)}
.form-row-check label{flex:0 0 auto}
.form-row-check span{font-size:12px;color:var(--muted)}
.form-hint{flex:1;font-size:12px;color:var(--muted);line-height:1.6}

/* Back Button */
.back-btn{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border:0;border-radius:8px;background:var(--brand-soft);color:var(--brand-strong);cursor:pointer;vertical-align:middle;margin-right:8px}
.back-btn svg{width:18px}
.back-btn:hover{background:var(--brand);color:#fff}

/* Form / Detail Dialog */
.form-dialog,.detail-dialog{padding:0;border:0;border-radius:14px;background:#fff;color:var(--ink);box-shadow:0 28px 80px rgba(15,23,42,.25);width:min(680px,calc(100vw - 32px));max-height:calc(100vh - 60px);overflow:hidden}
.form-dialog[open],.detail-dialog[open]{display:grid;grid-template-rows:auto 1fr auto}
.form-dialog-title{display:flex;align-items:flex-start;gap:16px;padding:20px 22px 14px;border-bottom:1px solid var(--line)}
.form-dialog-title>div{flex:1}
.form-dialog-title h2{margin:0;font-size:18px}
.form-dialog-title p{margin:4px 0 0;color:var(--muted);font-size:11px}
.form-dialog-body{overflow-y:auto;padding:20px 22px}
.form-dialog-footer{display:flex;justify-content:flex-end;gap:10px;padding:14px 22px;border-top:1px solid var(--line)}
.form-dialog-footer .quiet-button{min-width:80px}
.form-dialog-footer .primary-button{min-width:100px}
.form-group{margin-bottom:16px}
.form-group:last-child{margin-bottom:0}
.form-group>label{display:block;margin-bottom:5px;font-size:12px;font-weight:700;color:var(--ink)}
.form-group .form-hint-inline{margin-top:4px;font-size:10px;color:var(--subtle)}
.form-control{width:100%;height:40px;padding:0 12px;border:1px solid var(--line-strong);border-radius:9px;font-size:13px;outline:none;transition:.16s}
.form-control:focus{border-color:var(--brand);box-shadow:0 0 0 3px rgba(221,138,22,.1)}
textarea.form-control{height:auto;min-height:80px;padding:10px 12px;resize:vertical;line-height:1.6}
select.form-control{cursor:pointer}
.form-row-2{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.form-row-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:14px}
.form-chips{display:flex;flex-wrap:wrap;gap:8px}
.form-chip{display:inline-flex;align-items:center;gap:4px;padding:6px 12px;border:1px solid var(--line-strong);border-radius:8px;background:#fff;color:var(--muted);font-size:12px;cursor:pointer;transition:.16s}
.form-chip:hover{border-color:var(--brand)}
.form-chip.selected{border-color:var(--brand);background:var(--brand-soft);color:var(--brand-strong);font-weight:700}
.detail-section{margin-bottom:18px}
.detail-section:last-child{margin-bottom:0}
.detail-section h3{margin:0 0 8px;font-size:13px;color:var(--brand-strong)}
.detail-section p{margin:0;color:var(--muted);font-size:13px;line-height:1.7}
.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.detail-item{padding:10px 14px;border:1px solid var(--line);border-radius:9px;background:#fbfcfd}
.detail-item label{display:block;font-size:10px;color:var(--subtle);font-weight:700;margin-bottom:3px}
.detail-item span{font-size:13px;color:var(--ink)}

/* Responsive for new components */
@media(max-width:1220px){
  .info-grid{grid-template-columns:repeat(2,1fr)}
  .material-grid{grid-template-columns:repeat(3,1fr)}
  .msg-panel{grid-template-columns:220px 1fr}
  .data-row{min-width:680px}
}
@media(max-width:680px){
  .info-grid{grid-template-columns:1fr}
  .info-grid-2{grid-template-columns:1fr}
  .material-grid{grid-template-columns:repeat(2,1fr)}
  .msg-panel{grid-template-columns:1fr;height:auto}
  .msg-sidebar{display:none}
  .filter-bar{flex-direction:column;align-items:stretch}
  .filter-search{max-width:none}
  .trend-chart{gap:10px;padding:16px}
  .form-row{flex-direction:column;align-items:flex-start}
  .form-row label{flex:none}
  .form-input{max-width:none;width:100%}
  .data-row{min-width:600px}
}
