/* 教案工作台：左侧功能导航，顶部教案页签，单列宽幅编辑。 */
.app-shell{display:grid;grid-template-columns:244px minmax(0,1fr);min-height:100dvh;background:#f5f8fa}
.app-shell.is-home{display:block;background:#f3f7f8}
.app-shell.is-home>.app-sidebar,.app-shell.is-home>.app-main,.app-shell.is-home>.sidebar-backdrop{display:none!important}
.home-hub{min-height:100dvh;background:radial-gradient(circle at 85% 8%,#dcebed 0,transparent 33%),#f3f7f8}
.home-hub-head{display:flex;align-items:center;gap:13px;padding:21px max(24px,calc((100vw - 1060px)/2));background:#193347;color:#fff}
.home-hub-head .brand-logo-frame{width:54px;height:54px}
.home-hub-head strong{display:block;font-size:17px;line-height:1.4}
.home-hub-head span:last-child{display:block;color:#bed2dc;font-size:13px;margin-top:2px}
.home-hub-main{width:min(100%,1060px);margin:auto;padding:clamp(42px,9vh,100px) 24px 70px}
.home-hub-main h1{margin:5px 0 28px;font-size:clamp(28px,4vw,39px);line-height:1.25}
.home-choices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:19px}
.home-choice{display:flex;flex-direction:column;align-items:flex-start;min-height:230px;padding:25px;border:1px solid #d8e5e8;border-radius:16px;background:#fff;color:#193b4e;text-align:left;text-decoration:none;box-shadow:0 8px 26px #16344412;transition:transform .16s,border-color .16s}
.home-choice:hover,.home-choice:focus-visible{transform:translateY(-3px);border-color:#76abb9}
.home-choice-number{color:#33809a;font-size:13px;font-weight:800;letter-spacing:.08em}
.home-choice strong{margin-top:27px;font-size:24px;line-height:1.35}
.home-choice>span:nth-last-child(2){margin-top:9px;color:#637f8c;font-size:15px;line-height:1.6}
.home-choice b{margin-top:auto;padding-top:22px;color:#176b86;font-size:15px}
.app-sidebar{position:sticky;top:0;height:100dvh;min-width:0;overflow-y:auto;padding:22px 16px 30px;background:#193347;color:#fff;scrollbar-width:thin;scrollbar-color:#5a7180 transparent}
.app-sidebar .identity{align-items:center;gap:10px;padding:0 2px 17px;border-bottom:1px solid #ffffff28}
.app-sidebar .brand-logo-frame{width:51px;height:51px;border-radius:9px}
.app-sidebar .brand-name{font-size:14px;line-height:1.4;letter-spacing:0}
.app-sidebar .brand-sub{font-size:12px;letter-spacing:0;margin-top:3px}
.sidebar-status{display:grid;gap:8px;padding:14px 2px 18px;border-bottom:1px solid #ffffff28}
.sidebar-status .save-status{display:block;margin:0;min-width:0;text-align:left;font-size:13px;line-height:1.5}
.sidebar-status .quota-badge{width:100%;border-color:#516c77;background:#ffffff0a;color:#e9e1c7;font-size:12px}
.app-shell .topbar-actions{display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;flex-wrap:nowrap;gap:4px;width:100%;padding:13px 0 15px}
.sidebar-group-title{display:block;margin:14px 7px 6px;color:#9fb8c5;font-size:12px;font-weight:700;letter-spacing:.04em}
.app-shell .topbar-actions .button,.app-shell .topbar-actions a.button{display:flex;align-items:center;justify-content:flex-start;min-height:42px;width:100%;max-width:none;margin:0;padding:9px 12px;border-color:transparent;border-radius:8px;font-size:14px;font-weight:600;text-align:left;text-decoration:none;white-space:normal;line-height:1.3}
.app-shell .topbar-actions .button.ghost{background:transparent;color:#e3edf2}
.app-shell .topbar-actions .button.ghost:hover,.app-shell .topbar-actions .button.ghost:focus-visible{background:#ffffff18;color:#fff}
.app-shell .topbar-actions .button.primary{background:#f7cf54;color:#1b3448;font-weight:750;margin-bottom:4px}
.sidebar-library{border-top:1px solid #ffffff28;padding:17px 0 0}
.sidebar-library .library-heading{border:0;margin:0 0 10px;padding:0 3px;color:#f0f5f6;font-size:14px}
.sidebar-library .text-button{color:#b7d9e7;font-size:13px}
.sidebar-library .my-lessons{display:grid;gap:6px;max-height:32vh;overflow-y:auto;margin:0;padding:1px 2px 2px;scrollbar-width:thin}
.sidebar-library .my-lesson-row{background:#ffffff10;border-color:#ffffff19}
.sidebar-library .my-lesson-row.selected{background:#ffffff20;border-color:#8fc6cf}
.sidebar-library .lesson-open{color:#fff;padding:9px}
.sidebar-library .lesson-open strong{font-size:13px}
.sidebar-library .lesson-open small{color:#c2d5de;font-size:12px}
.sidebar-library .lesson-delete{color:#f5beb7}
.sidebar-library .empty-note{color:#bdd1d9;margin:0;padding:9px 3px}
.app-main{min-width:0}
.editor-topbar{display:flex;align-items:center;gap:15px;min-height:87px;padding:16px 27px;background:#fff;border-bottom:1px solid #e4eaef}
.editor-topbar .eyebrow{font-size:12px;color:#647d8d}
.editor-topbar h1{font-size:21px;font-weight:750;line-height:1.35;margin:2px 0 0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.editor-topbar>div{min-width:0}
.lesson-count{margin-left:auto;color:#597381;font-size:13px;white-space:nowrap}
.lesson-count strong{font-size:18px;color:#1b3c4b;margin-left:3px}
.menu-toggle{display:none}
.app-shell .mobile-tabs.lesson-tabs{display:flex;align-items:stretch;position:sticky;top:0;z-index:8;min-height:60px;padding:0 25px;background:#fff;border-bottom:1px solid #dce5e9;box-shadow:0 5px 14px #16334208}
.lesson-tab-list{display:flex;align-items:stretch;flex:1;min-width:0;overflow-x:auto;scrollbar-width:thin;scrollbar-color:#bfd0d9 transparent}
.app-shell .lesson-tabs .lesson-tab{flex:none;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;gap:2px;min-height:59px;max-width:166px;padding:9px 18px;border:0;border-bottom:3px solid transparent;background:transparent;color:#526c7a;font-size:14px;font-weight:650;white-space:nowrap}
.app-shell .lesson-tabs .lesson-tab small{display:block;max-width:130px;color:#7e929b;font-size:12px;font-weight:400;overflow:hidden;text-overflow:ellipsis}
.app-shell .lesson-tabs .lesson-tab:hover{color:#153f52;background:#f4f8f9}
.app-shell .lesson-tabs .lesson-tab.active{color:#163f52;border-bottom-color:#e4b837;background:#f7faf9}
.app-shell .lesson-tabs .lesson-tab.active small{color:#497084}
.app-shell .workspace{display:block;max-width:1400px;min-width:0;margin:0 auto;padding:22px 27px 68px}
.app-shell .workspace>.mobile-panel{display:none!important}
.app-shell .workspace>.mobile-panel.active{display:block!important}
.app-shell .lesson-rail{position:static;width:min(100%,1010px);max-height:none;min-height:0;margin:0 auto;padding:27px 30px;overflow:visible;border:1px solid #e2e9ec;box-shadow:0 4px 16px #1837470b}
.app-shell .lesson-rail .rail-heading{font-size:19px;margin:0 0 22px;padding:0 0 14px;border-bottom:1px solid #e8edf0}
.lesson-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:17px 22px}
.app-shell .lesson-fields>label{margin:0}
.lesson-fields>label:first-child,.lesson-fields>.lesson-taxonomy,.lesson-fields>.lesson-sharing,.lesson-fields>.logo-label,.lesson-fields>label:has([data-meta="goal"]){grid-column:1/-1}
.app-shell .lesson-fields label{font-size:14px}
.app-shell .lesson-fields input,.app-shell .lesson-fields select,.app-shell .lesson-fields textarea{min-height:43px;font-size:15px}
.app-shell .lesson-fields textarea[data-meta="goal"]{min-height:120px}
.app-shell .lesson-sharing{margin:0}
.app-shell .lesson-sharing .share-toggle{font-size:14px}
.app-shell .lesson-sharing p{font-size:12px}
.app-shell .storage-note{margin-top:25px}
.app-shell .main-editor,.app-shell .lesson-field-plan{width:100%;min-width:0}
.app-shell .editor-head{min-height:66px;margin-bottom:8px;padding:0 3px 10px;align-items:center}
.app-shell .editor-head h1{font-size:22px}
.app-shell .editor-card{border:1px solid #e0e8eb;box-shadow:0 4px 16px #1837470b;border-radius:12px;padding:24px;margin-bottom:18px}
.app-shell .field-card{display:grid;grid-template-columns:152px minmax(0,1fr);grid-template-areas:"heading heading" "settings settings" "custom custom" "palette palette" "tools canvas" "inspector inspector" "note note";column-gap:18px;row-gap:0}
.app-shell .field-card>.card-title-row{grid-area:heading}
.app-shell .field-card>.field-settings{grid-area:settings}
.app-shell .field-card>.custom-field-controls{grid-area:custom}
.app-shell .field-card>.palette-row{grid-area:palette}
.app-shell .field-card>.tool-row{grid-area:tools;display:flex;flex-direction:column;align-items:stretch;align-self:start;gap:7px;margin:0}
.app-shell .field-card>.tool-row .tool-button,.app-shell .field-card>.tool-row .text-button{width:100%;min-height:40px;margin:0;padding:8px 10px;text-align:left;font-size:14px}
.app-shell .exercise-actions{display:grid;gap:6px;padding-bottom:13px;margin-bottom:7px;border-bottom:1px solid #dde7ea}
.app-shell .exercise-actions .danger-tool{color:#a6443e;background:#fff8f7;border-color:#edcfcc}
.app-shell .field-card>.canvas-wrap{grid-area:canvas;min-width:0;align-self:start}
.app-shell .field-card>.selected-inspector{grid-area:inspector;margin-top:13px}
.app-shell .field-card>.full-label{grid-area:note;margin-top:5px}
.app-shell .field-settings label,.app-shell .form-grid label,.app-shell .full-label{font-size:14px}
.app-shell .field-settings input,.app-shell .field-settings select,.app-shell .form-grid input,.app-shell .form-grid textarea{min-height:42px}
.app-shell .plan-canvas{min-width:0}
.app-shell .lesson-field-plan .plan-layout{grid-template-columns:minmax(190px,240px) minmax(0,1fr)}
.sidebar-backdrop{display:none}
@media(max-width:1060px){
  .app-shell{grid-template-columns:211px minmax(0,1fr)}
  .app-sidebar{padding:17px 12px 24px}
  .app-shell .workspace{padding:18px 19px 60px}
  .app-shell .mobile-tabs.lesson-tabs{padding:0 17px}
  .app-shell .field-card{grid-template-columns:136px minmax(0,1fr);column-gap:12px}
}
@media(max-width:760px){
  .home-hub-head{padding:16px}
  .home-hub-main{padding:42px 16px 55px}
  .home-choices{grid-template-columns:1fr;gap:12px}
  .home-choice{min-height:175px;padding:20px}
  .home-choice strong{margin-top:15px;font-size:21px}
  .app-shell{display:block}
  .app-sidebar{position:fixed;left:0;top:0;bottom:0;z-index:45;width:min(85vw,290px);height:100dvh;padding:18px 16px 32px;transform:translateX(-105%);transition:transform .2s ease;box-shadow:12px 0 32px #0d263233}
  .app-shell.nav-open .app-sidebar{transform:translateX(0)}
  .app-shell.nav-open .sidebar-backdrop{display:block;position:fixed;inset:0;z-index:44;background:#102c3b90}
  .editor-topbar{min-height:71px;padding:11px 14px;gap:11px}
  .editor-topbar h1{font-size:17px}
  .lesson-count{font-size:12px}
  .lesson-count strong{font-size:15px}
  .menu-toggle{display:grid;place-items:center;flex:none;width:42px;height:42px;border:1px solid #cfdee2;border-radius:9px;background:#fff;color:#21485c;font-size:22px;line-height:1}
  .app-shell .mobile-tabs.lesson-tabs{min-height:54px;padding:0 10px}
  .app-shell .lesson-tabs .lesson-tab{min-height:53px;padding:7px 12px;font-size:14px}
  .app-shell .workspace{padding:14px 11px 55px}
  .app-shell .lesson-rail,.app-shell .editor-card{padding:18px 16px}
  .app-shell .lesson-rail .rail-heading{font-size:18px}
  .lesson-fields{gap:14px}
  .app-shell .field-card{display:block}
  .app-shell .field-card>.tool-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:13px 0}
  .app-shell .field-card>.tool-row .exercise-actions{grid-column:1/-1;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .app-shell .field-card>.tool-row .tool-button,.app-shell .field-card>.tool-row .text-button{text-align:center}
  .app-shell .field-card>.tool-row .clear-field{grid-column:1/-1}
  .app-shell .field-card>.canvas-wrap{width:100%}
  .app-shell .lesson-field-plan .plan-layout{display:flex;flex-direction:column}
}
@media(max-width:450px){
  .lesson-fields{grid-template-columns:1fr}
  .lesson-fields>*{grid-column:1/-1}
  .app-shell .field-settings{grid-template-columns:repeat(2,minmax(0,1fr))}
  .app-shell .editor-head h1{font-size:19px}
  .app-shell .editor-card{padding:15px 13px}
}
@media(prefers-reduced-motion:reduce){.app-sidebar{transition:none}}
@media print{.app-sidebar,.sidebar-backdrop,.editor-topbar,.lesson-tabs{display:none!important}}
.home-review-link{display:inline-block;margin-top:22px;border:1px solid #c4d9df;border-radius:9px;padding:13px 18px;color:#2e6174;background:#fff;font-weight:700;font-size:14px}
.home-review-link.has-issues{background:#fff3e7;color:#a4582b;border-color:#eac196}

.home-audit-links{display:flex;gap:22px;flex-wrap:wrap}.home-audit-links .home-review-link{margin-top:8px}
