/* Modern workspace: visual treatment only; feature layouts retain their sizing. */
html:root:not([data-theme]) {
  --ink:#172b3a; --muted:#718291; --paper:#f3f6fa; --panel:#ffffff;
  --line:#e5ebf1; --sage:#168579; --sage-dark:#09675f; --sage-soft:#e5f5f1;
  --peach:#db946f; --peach-soft:#fff0e7; --gold:#e6b850;
  --shadow:0 8px 32px rgba(28,48,70,.055); --radius:20px;
}
body { font-family:Inter,"Segoe UI","Microsoft YaHei","PingFang SC",sans-serif; background:var(--paper); -webkit-font-smoothing:antialiased; }
body h1,body h2,body h3,body h4,.class-card h3,.panel h3,.welcome-banner h2,.modal-head h3 { font-family:inherit; letter-spacing:-.035em; }
.sidebar { background:linear-gradient(165deg,var(--theme-sidebar),color-mix(in srgb,var(--theme-sidebar) 86%,#000) 85%); border-right:0; box-shadow:8px 0 36px #142d3b08; }
.sidebar .brand { padding-bottom:28px; }
.sidebar .brand strong { color:#f1f7fa; letter-spacing:.01em; }
.sidebar .brand span,.sidebar .local-note { color:#8fa7b5; }
.sidebar .brand-mark { background:#ffffff12; box-shadow:none; border:1px solid #ffffff16; }
.sidebar .nav-label { color:#7993a3; font-size:10px; font-weight:700; letter-spacing:.12em; margin-top:25px; }
.sidebar .nav-item,.sidebar .admin-nav-item { color:#b8cbd6!important; background:transparent!important; border:1px solid transparent!important; box-shadow:none!important; border-radius:12px; }
.sidebar .nav-item>span,.sidebar .admin-nav-item>.admin-nav-icon { color:#acc4d2!important; background:#ffffff08!important; border-color:#ffffff08!important; box-shadow:none!important; }
.sidebar .nav-item:hover { background:#ffffff09!important; color:#fff!important; }
.sidebar .nav-item.active,.sidebar .admin-nav-item.active { color:#fff!important; background:linear-gradient(105deg,var(--sage),var(--sage-dark))!important; border-color:#ffffff14!important; box-shadow:0 6px 16px #00000015!important; }
.sidebar .nav-item.active>span { color:#fff!important; background:#ffffff12!important; }
.sidebar-bottom { border-color:#ffffff12; }
.sidebar .nav-tree button { color:#b8cbd6; }

/* 青禾书院使用浅色侧栏，不能沿用深色主题的浅蓝导航文字。 */
html[data-theme="sage"] .sidebar {
  background:linear-gradient(180deg,#f8faf5 0%,#eef3ec 100%);
  border-right:1px solid #dce5db;
  box-shadow:8px 0 30px rgba(45,72,58,.055)
}
html[data-theme="sage"] .sidebar .brand strong { color:#273b32; }
html[data-theme="sage"] .sidebar .brand span,
html[data-theme="sage"] .sidebar .local-note { color:#61766b; }
html[data-theme="sage"] .sidebar .nav-label { color:#5f7468; }
html[data-theme="sage"] .sidebar .nav-item,
html[data-theme="sage"] .sidebar .nav-tree button { color:#52665b!important; }
html[data-theme="sage"] .sidebar .nav-item>span { color:#6a8275!important; }
html[data-theme="sage"] .sidebar .nav-item:hover {
  color:#29483a!important;
  background:#e4ede5!important
}
html[data-theme="sage"] .sidebar .nav-item.active {
  color:#fff!important;
  background:linear-gradient(105deg,#5e826f,#3f6855)!important;
  border-color:rgba(49,89,70,.16)!important;
  box-shadow:0 7px 18px rgba(49,89,70,.18)!important
}
html[data-theme="sage"] .sidebar .nav-item.active>span {
  color:#fff!important;
  background:rgba(255,255,255,.1)!important
}
html .sidebar .nav-item>#todoNavDot {
  display:inline-grid!important;
  place-items:center;
  flex:0 0 auto;
  min-width:22px;
  width:auto;
  height:22px;
  margin-left:auto;
  padding:0 6px;
  border:1px solid #bd3939!important;
  border-radius:999px;
  background:#d94b4b!important;
  color:#fff!important;
  box-shadow:0 2px 5px rgba(164,45,45,.2)!important;
  font-size:11px;
  font-weight:800!important;
  line-height:1;
}
html .sidebar .nav-item>#todoNavDot.hidden { display:none!important; }
.topbar { background:var(--theme-topbar); backdrop-filter:blur(18px); border-bottom:1px solid var(--line); box-shadow:none; }
.topbar h1 { font-weight:750; font-size:23px; color:var(--ink); }
.eyebrow,.section-kicker { color:var(--sage); font-size:10px; letter-spacing:.16em; }
.content { padding-top:26px; }
.panel,.metric,.class-card,.admin-card,.lottery-ticket-card { background:var(--panel); border-color:var(--line); box-shadow:var(--shadow); }
.panel { border-radius:20px; }
.panel-head { padding-bottom:12px; border-bottom:1px solid #eef2f6; }
.panel-head h3 { font-size:18px; font-weight:750; }
.welcome-banner { background:radial-gradient(ellipse at 80% 10%,color-mix(in srgb,var(--sage) 42%,transparent),transparent 55%),linear-gradient(115deg,var(--theme-hero-a),var(--theme-hero-b)); border:1px solid #ffffff10; border-radius:24px; box-shadow:0 14px 32px var(--theme-glow); }
.welcome-banner h2 { font-size:30px; font-weight:750; }
.welcome-banner p { color:#d1e5e8; line-height:1.8; }
.date-orbit { border-radius:22px; background:#ffffff0c; border-color:#ffffff24; }
.metric { border-radius:18px; padding:20px; transition:transform .2s,box-shadow .2s; }
.metric:hover { transform:translateY(-2px); box-shadow:0 12px 28px #1835460d; }
.metric b,.class-card-stats b { font-variant-numeric:tabular-nums; letter-spacing:-.04em; font-weight:750; }
.metric b { font-size:27px; }
.metric-icon { border-radius:14px; }
.primary-btn { background:var(--sage); color:#fff; border:1px solid transparent; box-shadow:0 4px 10px color-mix(in srgb,var(--sage) 16%,transparent); border-radius:11px; }
.primary-btn:hover { background:var(--sage-dark); color:#fff; box-shadow:0 6px 14px color-mix(in srgb,var(--sage) 24%,transparent); }
.ghost-btn { background:#fff; border-color:#dfe7ee; color:#415667; border-radius:11px; box-shadow:0 2px 3px #162d3e03; }
.ghost-btn:hover { background:var(--sage-soft); border-color:color-mix(in srgb,var(--sage) 36%,var(--line)); color:var(--sage-dark); }
.danger-btn { background:#fff1ef; color:#b44d49; border:1px solid #f5d9d5; border-radius:11px; box-shadow:none; }
button:focus-visible,a:focus-visible { outline:3px solid var(--sage); outline-offset:3px; }
input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=color]),select,textarea { border-color:#dfe7ee; border-radius:10px; background:#fbfcfe; }
input:focus,textarea:focus,select:focus { outline-color:var(--sage); border-color:var(--sage); }
.search-box { border-color:#e1e8ef; background:#fff; box-shadow:0 2px 8px #152b3703; border-radius:12px; }
.todo-item { border-color:#edf1f5; border-radius:12px; background:#fff; }
.todo-item:hover { border-color:#ccdedf; background:#fbfdfd; }
.todo-meta { color:#738594; line-height:1.6; }
.quick-grid button { border-color:#e7edf2; background:#f9fbfc; color:#405a6b; border-radius:12px; }
.quick-grid button:hover { background:var(--sage-soft); border-color:#c6e4dd; }
.daily-resource { background:linear-gradient(140deg,var(--panel),var(--theme-tint)); }
.class-management-head,.teaching-hero { background:linear-gradient(115deg,var(--panel),var(--theme-tint)); border-color:var(--line); box-shadow:none; border-radius:20px; }
.class-management-head h2 { font-family:inherit; font-size:27px; }
.class-card { border-radius:20px; }
.class-card.active { border-color:#e6be4c; box-shadow:0 6px 22px #bf972012; }
.class-card-stats { border-block:1px solid #eef2f5; }
.class-card-icon { background:var(--sage-soft); color:var(--sage-dark); border-radius:14px; }
.student-table,.score-table { border-collapse:separate; border-spacing:0; }
.student-table th,.score-table th { background:#f3f7fa; color:#617687; font-weight:700; border-color:#e8eef3; }
.student-table td,.score-table td { border-color:#edf1f5; }
.student-table tbody tr:nth-child(even),.score-table tbody tr:nth-child(even) { background:#fafcfd; }
.student-table tbody tr:hover,.score-table tbody tr:hover { background:#eef8f6; }
.student-name-cell strong { font-weight:650; }
.student-table-team,.student-table-tag { border-radius:7px; }
.filter-chips button,.segmented button { border-color:#e3eaf0; background:#fff; }
.filter-chips button.active,.segmented button.active { background:var(--sage-soft); border-color:#b9ded6; color:var(--sage-dark); box-shadow:none; }
.score-subject-tab { border-radius:10px; }
.lottery-center-tabs { background:#fff; border-color:var(--line); box-shadow:0 4px 16px #142b3705; }
.lottery-ticket-card { border-radius:18px; }
.modal-backdrop { background:#0e223a66; backdrop-filter:blur(7px); }
.modal { background:#fff; border:1px solid #ffffffb3; border-radius:24px; box-shadow:0 30px 90px #10243833; }
.modal-head { border-color:#e9eff4; }
.login-screen { background:#f5f8fb; }
.login-visual { background:radial-gradient(ellipse at 15% 20%,#347e7c88,transparent 60%),linear-gradient(145deg,#102a3b,#164b53); }
.login-quote h2 { font-family:inherit; font-weight:750; letter-spacing:-.04em; line-height:1.5; }
.login-feature-list span { background:#ffffff0c; border:1px solid #ffffff20; border-radius:9px; }
.login-panel { background:#f8fafc; }
.login-card { background:#fff; border:1px solid #e8eef4; border-radius:26px; padding:40px; box-shadow:0 20px 70px #172e4809; }
.login-card h1,.login-card h2 { font-family:inherit; }
.ai-pet-panel { background:#fff; border-color:#dce9eb; box-shadow:0 20px 65px #17384d29; border-radius:24px; }
.ai-pet-head { background:linear-gradient(120deg,#edf8f5,#f1f6fc); }
.ai-pet-message.pet span { background:#f0f6f8; color:#304e60; }
.ai-pet-message.user span { background:var(--sage); }
@media(max-width:820px) { .sidebar { background:#122835; } .login-card { padding:26px 22px; border-radius:20px; } .topbar h1 { font-size:19px; } }
@media(prefers-reduced-motion:reduce) { .metric { transition:none; } .metric:hover { transform:none; } }
