        :root {
            --primary: #F59E0B; --bg: #FEFCE8; --text: #451A03; --border-dark: #78350F;
            --bg-wisdom: #E0F2FE; --c-wisdom: #2563EB;
            --bg-rule: #FEF3C7;   --c-rule: #7C3AED;
            --bg-labor: #DCFCE7;  --c-labor: #059669;
            --bg-love: #FFE4E6;   --c-love: #DB2777;
            --c-homework: #D97706;
        }

        .teacher-auth-gate { position: fixed; z-index: 10000; inset: 0; display: grid; place-items: center; padding: 24px; background: linear-gradient(145deg, #FFFBEB, #ECFDF5); }
        .teacher-auth-gate.is-hidden { display: none; }
        .teacher-auth-card { width: min(100%, 380px); padding: 32px; border: 1px solid #FDE68A; border-radius: 22px; background: rgba(255,255,255,.96); box-shadow: 0 20px 56px rgba(120,53,15,.15); text-align: center; }
        .teacher-auth-icon { font-size: 48px; line-height: 1; }
        .teacher-auth-card h1 { margin: 12px 0 8px; color: #78350F; font-size: 25px; }
        .teacher-auth-card p { margin: 0 0 20px; color: #78716C; font-size: 14px; line-height: 1.7; }
        .teacher-auth-card label { display: block; margin: 0 0 7px; color: #57534E; font-size: 13px; font-weight: 700; text-align: left; }
        .teacher-auth-card input { box-sizing: border-box; width: 100%; min-height: 44px; border: 1px solid #D6D3D1; border-radius: 10px; padding: 0 12px; color: #292524; font: inherit; }
        .teacher-auth-card input:focus { border-color: #D97706; outline: 3px solid rgba(245,158,11,.16); }
        .teacher-auth-card button { width: 100%; min-height: 44px; margin-top: 13px; border: 0; border-radius: 10px; background: #D97706; color: #FFF; font: inherit; font-weight: 800; cursor: pointer; }
        .teacher-auth-card button:hover { background: #B45309; }
        .teacher-auth-card .teacher-auth-secondary-btn { margin-top: 8px; background: #FFF7ED; color: #9A3412; border: 1px solid #FED7AA; }
        .teacher-auth-card .teacher-auth-secondary-btn:hover { background: #FFEDD5; }
        .teacher-auth-divider { display: flex; align-items: center; gap: 10px; margin: 20px 0 4px; color: #A8A29E; font-size: 12px; }
        .teacher-auth-divider::before, .teacher-auth-divider::after { content: ''; flex: 1; height: 1px; background: #E7E5E4; }
        .teacher-auth-gate.is-studio-unlock #teacherEmailDivider,
        .teacher-auth-gate.is-studio-unlock #teacherEmailLogin { display: none; }
        .classroom-pin-dots { min-height: 42px; display: grid; place-items: center; margin-top: 8px; border: 1px solid #FED7AA; border-radius: 10px; background: #FFFBEB; color: #9A3412; font-size: 24px; font-weight: 800; letter-spacing: 8px; }
        .classroom-keypad { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin-top: 10px; }
        .teacher-auth-card .classroom-pin-key { width: auto; min-height: 48px; margin: 0; background: #FFF7ED; border: 1px solid #FED7AA; color: #9A3412; font-size: 20px; }
        .teacher-auth-card .classroom-pin-key:hover { background: #FFEDD5; }
        .teacher-auth-card .classroom-pin-clear { color: #78716C; font-size: 13px; }
        .teacher-auth-card .classroom-pin-enter { background: #D97706; color: #FFF; font-size: 15px; }
        .teacher-auth-card .classroom-pin-enter:hover { background: #B45309; }
        .teacher-auth-status { min-height: 20px; margin-top: 13px; color: #78716C; font-size: 13px; line-height: 1.55; text-align: left; }
        .teacher-auth-status.error { color: #BE123C; }
        .teacher-auth-status.success { color: #15803D; }
        body.classroom-terminal-session .classroom-teacher-only { display: none !important; }

        .mobile-studio-nav, .mobile-studio-quick-actions { display: none; }

        /* 同一网页的手机工作台：仅替换导航与当前页布局，不另建数据或页面。 */
        @media (max-width: 720px) {
            body.teacher-studio-open { padding: 0; }
            body.teacher-studio-open .studio-topbar,
            body.teacher-studio-open .studio-sidebar { display: none; }
            body.teacher-studio-open .studio-body { display: block; min-height: 100vh; }
            body.teacher-studio-open .studio-panel { min-height: 100vh; padding: 16px 12px calc(82px + env(safe-area-inset-bottom)); }
            .mobile-studio-nav {
                position: fixed; right: 0; bottom: 0; left: 0; z-index: 2600;
                min-height: calc(64px + env(safe-area-inset-bottom)); display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); align-items: end;
                border-top: 1px solid #E2E8F0; padding: 0 5px env(safe-area-inset-bottom); background: rgba(255,255,255,.98); box-shadow: 0 -5px 18px rgba(15,23,42,.06);
            }
            .mobile-studio-tab,
            .mobile-studio-create-btn {
                min-width: 0; min-height: 58px; border: 0; padding: 8px 2px 7px; background: transparent; color: #64748B; font-family: inherit; font-size: 12px; font-weight: 700; cursor: pointer;
            }
            .mobile-studio-tab.active { color: #0F766E; }
            .mobile-studio-create-btn { display: grid; justify-items: center; align-content: end; gap: 1px; color: #0F766E; }
            .mobile-studio-create-btn span { width: 42px; height: 42px; display: grid; place-items: center; margin-top: -27px; border-radius: 50%; background: #0F766E; color: #FFFFFF; box-shadow: 0 4px 12px rgba(15,118,110,.28); font-size: 28px; font-weight: 400; line-height: 1; }
            .mobile-studio-create-btn em { font-size: 11px; font-style: normal; }
            .mobile-studio-tab:focus-visible,
            .mobile-studio-create-btn:focus-visible { outline: 2px solid #0F766E; outline-offset: -2px; }
            .mobile-studio-quick-actions { position: fixed; inset: 0; z-index: 2700; display: none; }
            .mobile-studio-quick-actions.is-open { display: block; }
            .mobile-studio-quick-actions-mask { position: absolute; inset: 0; width: 100%; border: 0; background: rgba(15,23,42,.28); }
            .mobile-studio-quick-actions-sheet { position: absolute; right: 0; bottom: 0; left: 0; border-radius: 18px 18px 0 0; padding: 9px 16px calc(76px + env(safe-area-inset-bottom)); background: #FFFFFF; box-shadow: 0 -12px 32px rgba(15,23,42,.16); }
            .mobile-studio-quick-actions-handle { width: 34px; height: 4px; margin: 0 auto 13px; border-radius: 999px; background: #CBD5E1; }
            .mobile-studio-quick-actions-sheet h3 { margin: 0 0 12px; color: #111827; font-size: 17px; }
            .mobile-studio-quick-actions-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
            .mobile-studio-quick-actions-grid button { min-height: 64px; border: 1px solid #CCFBF1; border-radius: 10px; background: #F0FDFA; color: #0F766E; font-family: inherit; font-size: 13px; font-weight: 750; cursor: pointer; }

            /* “周预览”保留日期选择，手机端隐藏新增快捷入口，并展示事务、学习安排与已完成。 */
            body.teacher-studio-open .today-dashboard-page { gap: 10px; }
            body.teacher-studio-open .today-dashboard-head,
            body.teacher-studio-open .today-dashboard-main { display: none; }
            body.teacher-studio-open .today-dashboard-body { display: block; }
            body.teacher-studio-open .today-dashboard-side { display: grid; gap: 10px; width: 100%; }
            body.teacher-studio-open .workbench-week-actions { display: none; }
            body.teacher-studio-open .workbench-week-preview { display: block; }
            body.teacher-studio-open .mobile-workbench-week-title { display: block; margin: 0 0 8px; color: #111827; font-size: 18px; line-height: 1.3; }
            body.teacher-studio-open .workbench-week-navigation { grid-template-columns: 22px minmax(0, 1fr) 22px; gap: 3px; }
            body.teacher-studio-open .workbench-week-switch { width: 22px; height: auto; font-size: 18px; }
            body.teacher-studio-open .workbench-week-grid { gap: 4px; }
            body.teacher-studio-open .workbench-week-day { min-height: 72px; padding: 6px 3px; gap: 3px; }
            body.teacher-studio-open .workbench-week-day-head { align-items: center; justify-content: center; flex-direction: column; gap: 2px; }
            body.teacher-studio-open .workbench-week-day-head b { font-size: 10px; }
            body.teacher-studio-open .workbench-week-day-head b em { display: none; }
            body.teacher-studio-open .workbench-week-day-head strong { font-size: 18px; }
            body.teacher-studio-open .workbench-week-schedules { display: none; }
            body.teacher-studio-open .workbench-week-task-count { overflow: hidden; font-size: 9px; text-align: center; text-overflow: ellipsis; white-space: nowrap; }
            .mobile-student-status-tools { display: flex; justify-content: flex-end; }
            .mobile-student-test-switch { min-height: 32px; border: 1px dashed #94A3B8; border-radius: 8px; padding: 5px 9px; background: #FFFFFF; color: #64748B; font-family: inherit; font-size: 12px; font-weight: 700; cursor: pointer; }
            .mobile-student-test-switch.is-test { border-color: #D97706; background: #FFFBEB; color: #B45309; }
            /* 姓名与分数同排时，至少保留三字姓名的显示宽度。 */
            .mobile-student-status-page .today-seat-grid,
            .mobile-student-status-page .today-seat-row,
            .mobile-student-status-page .today-seat-podium { min-width: 652px; }
        }

        * { box-sizing: border-box; }
        body {
            font-family: 'Yuanti SC', 'YouYuan', 'Rounded Mplus 1c', 'Microsoft YaHei', sans-serif;
            background-color: var(--bg);
            background-image: radial-gradient(#FDE047 2px, transparent 2px); background-size: 35px 35px;
            color: var(--text); margin: 0; padding: 10px 20px 80px 20px;
            display: flex; flex-direction: column; align-items: center; min-height: 100vh;
            touch-action: manipulation; transition: background-color 0.3s;
        }

        /* ========================================================= */
        /* ✨ 新增：Emoji 自动替换后的 SVG 容器统一样式 */
        /* ========================================================= */
        .emoji-wrapper { 
            display: inline-flex; align-items: center; justify-content: center; 
            height: 1.15em; width: 1.15em; vertical-align: -0.15em; 
            line-height: 1; flex: none; 
        }
        .emoji-wrapper svg { width: 100%; height: 100%; display: block; }
        
        /* 针对不同位置微调大小 */
        .badge-icon .emoji-wrapper { width: 1.3em; height: 1.3em; vertical-align: 0; }
        #noise-emoji .emoji-wrapper { width: 100%; height: 100%; }
        .plant-preview .emoji-wrapper { width: 100%; height: 100%; }
        .plant-art-png { width:100%; height:100%; display:block; object-fit:contain; }
        /* ========================================================= */

        #cloud-status {
            position: fixed; top: 15px; right: 20px; background: #FFFBEB; border: 3px solid #D97706;
            padding: 8px 20px; border-radius: 20px; font-weight: bold; color: #B45309;
            z-index: 9999; box-shadow: 3px 3px 0px #FCD34D; transition: 0.3s;
        }
        #mode-switcher {
            position: fixed; top: 15px; left: 20px; background: #FFFFFF; border: 3px solid #0284C7;
            padding: 8px 14px; border-radius: 20px; font-weight: bold; color: #0369A1;
            z-index: 9999; box-shadow: 3px 3px 0px #BAE6FD; display: flex; align-items: center; gap: 10px;
        }
        #mode-switcher.test-mode {
            border-color: #E11D48; color: #BE123C; box-shadow: 3px 3px 0px #FECDD3; background: #FFF1F2;
        }
        #modeBtn {
            border: 2px solid currentColor; border-radius: 12px; background: #FFFFFF; color: inherit;
            padding: 4px 10px; cursor: pointer; font-family: inherit; font-weight: bold;
        }
        #weather-event-float {
            position: fixed; top: 72px; left: 20px; z-index: 9998; max-width: 260px;
            background: rgba(255,255,255,.94); border: 3px solid #16A34A; border-radius: 18px;
            padding: 8px 14px; color: #166534; font-weight: 900; box-shadow: 3px 3px 0px #BBF7D0;
            line-height: 1.25; pointer-events: none;
        }
        .weather-event-title { font-size: 1.02em; display: flex; align-items: center; gap: 5px; }
        .weather-event-focus { margin-top: 3px; font-size: .82em; color: #047857; overflow-wrap: anywhere; }
        #undo-float {
            position: fixed; right: 20px; bottom: 20px; z-index: 9999;
            background: #F8FAFC; border: 3px solid #94A3B8; color: #475569;
            padding: 8px 14px; border-radius: 20px; font-weight: bold; font-family: inherit; cursor: pointer;
            box-shadow: 3px 3px 0px #CBD5E1; display: flex; align-items: center; gap: 8px;
        }
        #teacher-studio-entry {
            background: #ECFDF5; border-color: #16A34A; color: #047857; font-weight: 900;
        }
        #teacher-studio-entry:active { transform: translate(3px, 3px); box-shadow: none; }
        #undo-float:active { transform: translate(3px, 3px); box-shadow: none; }
        #undo-toast {
            position: fixed; right: 20px; bottom: 76px; z-index: 10000; display: none;
            background: rgba(255,255,255,.96); border: 3px solid #94A3B8; color: #334155;
            border-radius: 18px; padding: 8px 14px; font-size: 1.02em; font-weight: 900;
            box-shadow: 3px 3px 0px #CBD5E1; pointer-events: none;
        }
        #undo-toast.center {
            left: 50%; right: auto; top: 50%; bottom: auto; transform: translate(-50%, -50%);
            font-size: 1.45em; padding: 14px 22px; border-color: #D97706; color: #92400E; box-shadow: 5px 5px 0px #FCD34D;
        }

        .header { text-align: center; margin-bottom: 5px; margin-top: 15px; }
        h1 { font-size: 3em; margin: 0; color: #D97706; text-shadow: 3px 3px 0px #FDE047; letter-spacing: 2px; }
        .header-subline { display: flex; align-items: baseline; justify-content: center; gap: 16px; flex-wrap: wrap; }
        .slogan { font-size: 1.2em; color: #15803D; margin-top: 5px; font-weight: bold; }
        .academic-week-status {
            width: fit-content; max-width: min(92vw, 720px); margin: 5px 0 0; padding: 0;
            color: #047857; font-size: .92em; font-weight: 900; line-height: 1.35;
        }
        .academic-week-status.unconfigured { color: #64748B; }
        .academic-week-status.mismatch { color: #92400E; }

        .legend-board {
            background: #FFFFFF; border: 3px dashed #B45309; border-radius: 20px;
            padding: 10px 18px; margin: 10px 0; display: inline-flex; gap: 12px;
            align-items: center; box-shadow: 4px 4px 0px #FDE047; flex-wrap: wrap; justify-content: center;
        }
        .legend-item { font-size: 0.96em; font-weight: bold; display: flex; align-items: center; gap: 4px; color: #78350F; }
        .legend-icon { width: 30px; height: 30px; display: inline-block; }
        .garden-catalog-entry {
            display:inline-flex; align-items:center; padding:3px 0 3px 10px; border:0; border-left:2px dashed #FCD34D;
            background:transparent; color:#78350F; text-align:left; font:inherit; font-weight:900; cursor:pointer; white-space:nowrap;
        }
        .garden-catalog-entry:hover, .garden-catalog-entry:focus-visible { color:#15803D; }
        .garden-catalog-entry:focus-visible { outline:2px solid #22C55E; outline-offset:4px; border-radius:6px; }
        
        .badge-icon { display: inline-flex; align-items: center; justify-content: center; line-height: 1; margin-bottom: 2px; }

        #noise-panel {
            display: none; position: fixed; top: 20px; left: 50%; transform: translateX(-50%);
            background: #FFFFFF; padding: 14px 22px 16px; border-radius: 28px; border: 4px solid var(--border-dark);
            box-shadow: 10px 10px 0px #FCD34D; z-index: 2000; min-width: 420px; color: #78350F;
        }
        .noise-garden {
            height: 112px; margin-bottom: 8px; border-radius: 22px; overflow: hidden; position: relative;
            background: linear-gradient(180deg, #162235 0%, #20384A 60%, #65C06B 61%, #58B95F 100%);
            border: 2px solid #BBF7D0;
        }
        .noise-garden::before {
            content: ""; position: absolute; inset: 0;
            background:
                radial-gradient(circle at 18% 24%, rgba(255,255,255,.95) 0 2px, transparent 3px),
                radial-gradient(circle at 62% 18%, rgba(255,255,255,.9) 0 1.5px, transparent 3px),
                radial-gradient(circle at 84% 32%, rgba(255,255,255,.86) 0 2px, transparent 3px);
            opacity: .75; animation: quietStarTwinkle 2.8s ease-in-out infinite;
        }
        .noise-garden::after {
            content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 42px;
            background:
                repeating-linear-gradient(78deg, transparent 0 18px, rgba(34,139,61,.58) 19px 22px, transparent 23px 36px),
                linear-gradient(180deg, rgba(98,190,104,.15), #58B95F);
            animation: quietGrassWave 2.6s ease-in-out infinite;
        }
        .quiet-flower-bed { position: absolute; inset: 0; z-index: 1; }
        .quiet-flower {
            --grow: 0; --x: 50%; --h: 58px; --size: 20px; --leaf-y: 20px; --leaf-w: 14px; --leaf-h: 7px; --tilt: 0deg; --flower: #F472B6;
            position: absolute; left: var(--x); bottom: 24px; width: var(--size); height: var(--h);
            transform: translateX(-50%) rotate(var(--tilt));
            transform-origin: 50% 100%; opacity: max(.28, var(--grow));
            transition: opacity .28s ease, transform .28s ease;
        }
        .quiet-flower::after {
            content: ""; position: absolute; left: 50%; bottom: -2px; width: 8px; height: 6px;
            border-radius: 50%; background: #FDE68A; border: 1px solid rgba(146,64,14,.35);
            transform: translateX(-50%) scale(max(.65, calc(1 - var(--grow))));
            opacity: max(.08, calc(1 - var(--grow)));
            animation: quietSeedBreath 1.45s ease-in-out infinite;
        }
        .quiet-flower-stem {
            position: absolute; left: 50%; bottom: 0; width: 4px; height: var(--h); border-radius: 4px 4px 0 0;
            background: linear-gradient(180deg, #43A047, #1B7A2A); transform: translateX(-50%) scaleY(var(--grow));
            transform-origin: bottom; box-shadow: 0 0 5px rgba(34,197,94,.28);
        }
        .quiet-flower-leaf {
            position: absolute; bottom: var(--leaf-y); width: var(--leaf-w); height: var(--leaf-h);
            border-radius: 999px 0 999px 999px; background: #55C95F; opacity: var(--grow);
            transition: opacity .28s ease, transform .28s ease;
        }
        .quiet-flower-leaf.left { right: 50%; transform-origin: 100% 50%; transform: rotate(-28deg) scale(var(--grow)); }
        .quiet-flower-leaf.right { left: 50%; transform-origin: 0 50%; transform: rotate(28deg) scale(var(--grow)); }
        .quiet-flower-head {
            position: absolute; left: 50%; top: calc(100% - var(--h) - var(--size));
            width: var(--size); height: var(--size); transform: translateX(-50%) scale(max(.05, var(--grow)));
            opacity: var(--grow); transition: opacity .28s ease, transform .28s ease;
            filter: drop-shadow(0 3px 5px rgba(0,0,0,.18));
        }
        .quiet-flower.sprouting .quiet-flower-head { animation: quietBloomPulse 1.7s ease-in-out infinite; }
        .quiet-flower.sprouting .quiet-flower-stem { animation: quietStemGlow 1.9s ease-in-out infinite; }
        .quiet-flower.sprouting { animation: quietFlowerSway 2.4s ease-in-out infinite; }
        .quiet-flower.bloomed .quiet-flower-petal { animation: quietPetalShimmer 1.8s ease-in-out infinite; animation-delay: calc(var(--petal-index, 0) * .08s); }
        .quiet-flower-petal, .quiet-flower-heart { position: absolute; left: 50%; top: 50%; border-radius: 50%; }
        .quiet-flower-petal {
            width: 42%; height: 42%; background: var(--flower); transform-origin: 0 0;
            transform: rotate(var(--a)) translate(35%, -118%);
        }
        .quiet-flower-heart {
            width: 34%; height: 34%; background: #FDE047; transform: translate(-50%, -50%);
            box-shadow: inset 0 0 0 2px rgba(255,145,0,.38);
        }
        @keyframes quietStarTwinkle {
            0%, 100% { opacity: .62; filter: brightness(1); }
            50% { opacity: .95; filter: brightness(1.25); }
        }
        @keyframes quietSeedBreath {
            0%, 100% { box-shadow: 0 0 0 rgba(253,230,138,0); }
            50% { box-shadow: 0 0 10px rgba(253,230,138,.72); }
        }
        @keyframes quietGrassWave {
            0%, 100% { transform: translateX(0); filter: brightness(1); }
            50% { transform: translateX(-8px); filter: brightness(1.08); }
        }
        @keyframes quietFlowerSway {
            0%, 100% { transform: translateX(-50%) rotate(var(--tilt)); }
            50% { transform: translateX(-50%) rotate(calc(var(--tilt) + 4deg)); }
        }
        @keyframes quietBloomPulse {
            0%, 100% { transform: translateX(-50%) scale(max(.05, var(--grow))) rotate(-2deg); }
            50% { transform: translateX(-50%) scale(calc(max(.05, var(--grow)) * 1.08)) rotate(2deg); }
        }
        @keyframes quietStemGlow {
            0%, 100% { box-shadow: 0 0 5px rgba(34,197,94,.28); }
            50% { box-shadow: 0 0 12px rgba(134,239,172,.55); }
        }
        @keyframes quietPetalShimmer {
            0%, 100% { filter: brightness(1); }
            50% { filter: brightness(1.18) saturate(1.12); }
        }
        .noise-status-row { display: grid; grid-template-columns: 58px 1fr; gap: 10px; align-items: center; margin-bottom: 10px; }
        #noise-emoji { width:58px; height:58px; }
        .noise-title { font-size: 1.18em; font-weight: 900; color: #15803D; margin-bottom: 2px; }
        #noise-text { color: #15803D; font-weight: 900; line-height: 1.35; }
        .noise-meter { margin-top: 8px; }
        .noise-meter-label { display: flex; justify-content: space-between; align-items: center; font-size: .9em; font-weight: 900; color: #92400E; margin-bottom: 3px; }
        .noise-bar-bg, .quiet-bar-bg { width: 100%; height: 18px; background: #FEF3C7; border-radius: 10px; overflow: hidden; border: 2px solid #D97706; }
        #noise-bar-fill { width: 0%; height: 100%; background: #4ADE80; transition: width 0.1s; }
        #quiet-bar-fill { width: 0%; height: 100%; background: linear-gradient(90deg, #86EFAC, #22C55E, #FDE047); transition: width 0.18s ease; }
        .noise-reward-hint { margin-top: 8px; font-size: .88em; text-align: center; font-weight: 900; color: #B45309; }

        .control-panel {
            background: #FFFFFF; border: 4px solid var(--border-dark); border-radius: 25px;
            padding: 12px 20px; margin: 10px 0; width: 100%; max-width: 1500px;
            display: grid; gap: 8px;
            box-shadow: 6px 6px 0px #FCD34D; position: relative; z-index: 10;
        }
        body.garden-syncing .control-panel, body.garden-syncing #studentGrid { pointer-events:none; opacity:.72; }
        .panel-section { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
        .panel-label { font-size: 1.1em; font-weight: bold; color: #78350F; }
        .behavior-row { display:grid; grid-template-columns:132px minmax(0, 1fr); align-items:center; gap:9px; }
        .behavior-row-label {
            display:flex; align-items:center; justify-content:flex-start;
            font-size:1.05em; font-weight:900; white-space:nowrap;
        }
        .behavior-highlight-row .behavior-row-label { color:#9A4D08; }
        .behavior-reminder-row .behavior-row-label { color:#475569; }
        .behavior-button-grid { display:grid; grid-template-columns:repeat(5, minmax(0, 1fr)); gap:8px; }
        .behavior-btn {
            min-width:0; min-height:42px; display:flex; align-items:center; justify-content:center; gap:6px;
            border-radius:12px; padding:7px 10px; font-family:inherit; font-size:1.02em; font-weight:900;
            cursor:pointer; transition:.12s ease; box-shadow:0 2px 0 rgba(15,23,42,.14);
            --behavior-domain:#64748B; --behavior-domain-soft:#F1F5F9;
            --behavior-domain-ink:#475569; --behavior-domain-active:#475569;
        }
        .behavior-domain-learning { --behavior-domain:#2563EB; --behavior-domain-soft:#EFF6FF; --behavior-domain-ink:#1D4ED8; --behavior-domain-active:#1D4ED8; }
        .behavior-domain-selfDiscipline { --behavior-domain:#7C3AED; --behavior-domain-soft:#F5F3FF; --behavior-domain-ink:#5B21B6; --behavior-domain-active:#6D28D9; }
        .behavior-domain-homework { --behavior-domain:#D97706; --behavior-domain-soft:#FFFBEB; --behavior-domain-ink:#92400E; --behavior-domain-active:#B45309; }
        .behavior-domain-responsibility { --behavior-domain:#059669; --behavior-domain-soft:#ECFDF5; --behavior-domain-ink:#047857; --behavior-domain-active:#047857; }
        .behavior-domain-cooperation { --behavior-domain:#DB2777; --behavior-domain-soft:#FDF2F8; --behavior-domain-ink:#BE185D; --behavior-domain-active:#BE185D; }
        .behavior-domain-unclassified { --behavior-domain:#64748B; --behavior-domain-soft:#F1F5F9; --behavior-domain-ink:#475569; --behavior-domain-active:#475569; }
        .behavior-btn.highlight[data-behavior-id="specialHighlight"] { --behavior-domain:#F59E0B; --behavior-domain-soft:#FFFBEB; --behavior-domain-ink:#B45309; --behavior-domain-active:#D97706; }
        .behavior-btn.highlight { background:var(--behavior-domain-soft); border:2px solid var(--behavior-domain); color:var(--behavior-domain-ink); }
        .behavior-btn.reminder { background:#EDF2F7; border:2px solid #64748B; color:#334155; }
        .behavior-btn.highlight .behavior-icon-svg { color:var(--behavior-domain); }
        .behavior-btn:active { transform:translateY(2px); box-shadow:none; }
        .behavior-btn.highlight.wand-active { background:var(--behavior-domain-active); border-color:var(--behavior-domain-active); color:#FFFFFF; animation:none; box-shadow:0 0 0 3px var(--behavior-domain-soft); }
        .behavior-btn.reminder.wand-active { background:#64748B; border-color:#334155; color:#FFFFFF; animation:none; box-shadow:0 0 0 3px rgba(100,116,139,.22); }
        .behavior-icon { width:25px; height:25px; flex:0 0 25px; display:grid; place-items:center; line-height:1; }
        .behavior-icon-svg { width:100%; height:100%; display:block; overflow:visible; }
        .behavior-icon-drawing { fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }
        .behavior-icon-svg { --icon-fill:#E2E8F0; --icon-soft:#F8FAFC; --icon-accent:#F59E0B; --icon-accent-stroke:var(--icon-accent); }
        .behavior-icon-drawing .icon-fill-main { fill:var(--icon-fill); }
        .behavior-icon-drawing .icon-fill-soft { fill:var(--icon-soft); }
        .behavior-icon-drawing .icon-fill-accent { fill:var(--icon-accent); }
        .behavior-icon-drawing .icon-accent-stroke { stroke:var(--icon-accent-stroke); }
        .behavior-icon-preparation { color:#2563EB; --icon-fill:#BFDBFE; --icon-soft:#FEF3C7; --icon-accent:#F59E0B; }
        .behavior-icon-participation { color:#B45309; --icon-fill:#FCD9B6; --icon-soft:#FFF7ED; --icon-accent:#F59E0B; }
        .behavior-icon-initiative { color:#15803D; --icon-fill:#BBF7D0; --icon-soft:#F0FDF4; --icon-accent:#FACC15; }
        .behavior-icon-kindness { color:#BE185D; --icon-fill:#F9A8D4; --icon-soft:#FFE4E6; --icon-accent:#F59E0B; --icon-accent-stroke:#D97706; }
        .behavior-icon-specialHighlight { color:#C2410C; --icon-fill:#FED7AA; --icon-soft:#FDBA74; --icon-accent:#FDE047; }
        .behavior-icon-focus { color:#4338CA; --icon-fill:#C7D2FE; --icon-soft:#EEF2FF; --icon-accent:#FDE047; }
        .behavior-icon-recessSafety { color:#BE123C; --icon-fill:#FB7185; --icon-soft:#FCD9B6; --icon-accent:#FDE047; }
        .behavior-icon-collectiveNorm { color:#0F766E; --icon-fill:#99F6E4; --icon-soft:#FCD9B6; --icon-accent:#FBBF24; }
        .behavior-icon-hygiene { color:#92400E; --icon-fill:#D6A968; --icon-soft:#93C5FD; --icon-accent:#FDE047; }
        .behavior-icon-otherReminder { color:#475569; --icon-fill:#E2E8F0; --icon-soft:#F8FAFC; --icon-accent:#64748B; }
        .behavior-icon-svg.has-cloud-badge .behavior-icon-drawing { transform:translate(-1px, -1px) scale(.88); transform-origin:center; }
        .behavior-reminder-badge circle { fill:#FFFFFF; stroke:#64748B; stroke-width:1.1; }
        .behavior-reminder-badge path { fill:#64748B; stroke:none; }
        .behavior-btn.wand-active .behavior-icon-svg { color:#FFFFFF; }
        .behavior-btn.reminder.wand-active .behavior-reminder-badge circle { fill:#64748B; stroke:#FFFFFF; }
        .behavior-btn.reminder.wand-active .behavior-reminder-badge path { fill:#FFFFFF; }
        .compact-tools { justify-content:flex-end; flex-wrap:nowrap; padding-top:2px; border-top:1px solid #F1F5F9; }
        .compact-tools .aoe-btn { min-height:38px; display:inline-flex; align-items:center; justify-content:center; gap:6px; padding:4px 10px; border-width:2px; box-shadow:0 2px 0 #FCD34D; font-size:.9em; line-height:1; white-space:nowrap; }
        .compact-tool-actions, .compact-tool-global { flex:0 0 auto; display:flex; align-items:center; gap:7px; }
        .compact-tool-global { padding-left:10px; border-left:2px solid #E2E8F0; }
        .compact-tools .lucky-btn { font-size:.92em; }
        .compact-tool-icon { width:18px; height:18px; display:inline-flex; align-items:center; justify-content:center; flex:0 0 18px; font-size:16px; line-height:1; }
        .homework-register-entry { background:#F5F3FF !important; border-color:#8B5CF6 !important; color:#6D28D9 !important; box-shadow:0 2px 0 #DDD6FE !important; }
        .quiet-magic-entry { background:#FFF7ED !important; border-color:#EA580C !important; color:#EA580C !important; }
        .garden-duty-quick { flex:1 1 460px; min-width:300px; display:flex; align-items:center; justify-content:flex-start; gap:10px; min-height:38px; padding:3px 10px 3px 0; border-left:0; border-right:2px solid #E2E8F0; color:#475569; }
        .garden-duty-quick-title { flex:0 0 auto; color:#0F766E; font-size:.94em; font-weight:900; white-space:nowrap; }
        .garden-duty-quick-list { min-width:0; display:flex; justify-content:center; gap:4px 8px; flex-wrap:wrap; }
        .garden-duty-quick-role { display:inline-flex; align-items:baseline; gap:3px; color:#334155; font-size:.82em; font-weight:800; white-space:nowrap; }
        .garden-duty-quick-role b { color:#0F766E; font-size:.9em; }
        .garden-duty-quick-rate { flex:0 0 auto; display:inline-flex; align-items:center; gap:2px; }
        .garden-duty-quick-rate em { margin-right:2px; color:#64748B; font-size:.75em; font-style:normal; font-weight:900; white-space:nowrap; }
        .garden-duty-quick-star { border:0; padding:2px; background:transparent; color:#CBD5E1; font-family:inherit; font-size:18px; line-height:1; cursor:pointer; }
        .garden-duty-quick-star.active { color:#F59E0B; }
        .garden-duty-quick-star:hover, .garden-duty-quick-star:focus-visible { color:#F59E0B; outline:none; transform:scale(1.16); }
        .garden-duty-quick-star:focus-visible { outline:2px solid rgba(245,158,11,.35); outline-offset:1px; border-radius:3px; }
        .garden-duty-quick-empty { color:#94A3B8; font-size:.82em; font-weight:800; }

        .wand-btn {
            border: 3px solid var(--border-dark); padding: 6px 14px; border-radius: 12px;
            font-size: 1.1em; font-weight: bold; cursor: pointer; font-family: inherit;
            transition: 0.1s; box-shadow: 0px 4px 0px rgba(0,0,0,0.2); display: flex; align-items: center; gap: 6px;
        }
        .wand-btn:active { transform: translateY(4px); box-shadow: 0px 0px 0px rgba(0,0,0,0); }
        .wand-active { transform: scale(1.05) translateY(2px); border-color: var(--border-dark); box-shadow: 0 0 15px rgba(217,119,6,0.6); animation: pulse 1.5s infinite; }
        @keyframes pulse { 0% {box-shadow: 0 0 0 0 rgba(217,119,6,0.7);} 70% {box-shadow: 0 0 0 10px rgba(217,119,6,0);} 100% {box-shadow: 0 0 0 0 rgba(217,119,6,0);} }

        .w-wisdom { background: #BAE6FD; color: #0369A1; }
        .w-rule { background: #FEF08A; color: #B45309; }
        .w-labor { background: #BBF7D0; color: #15803D; }
        .w-love { background: #FECDD3; color: #BE123C; }

        .aoe-btn {
            background: #FFFBEB; border: 3px solid #B45309; padding: 8px 15px; border-radius: 12px; color: #92400E;
            font-size: 1em; font-weight: bold; cursor: pointer; box-shadow: 0px 3px 0px #FCD34D; display: flex; align-items: center; gap: 6px; font-family: inherit; transition: 0.1s;
        }
        .aoe-btn:active { transform: translateY(3px); box-shadow: none; }
        .lucky-btn { background: #FEF08A; border-color: #D97706; color: #92400E; font-size: 1.1em; }
        .garden-view-nav {
            width:100%; max-width:1500px; margin:8px 0 0; padding:0 10px;
            display:flex; align-items:center; justify-content:center; gap:9px;
            color:#78350F; font-weight:900;
        }
        .garden-view-nav-label { font-size:1.03em; }
        .view-switch { display:flex; justify-content:center; gap:8px; flex-wrap:wrap; }
        .view-btn {
            border:3px solid #D97706; background:#FFFFFF; color:#92400E; border-radius:999px; padding:8px 16px;
            font-family:inherit; font-weight:900; cursor:pointer; box-shadow:3px 3px 0 #FCD34D;
        }
        .view-btn.active { background:#FEF3C7; color:#78350F; transform:translateY(2px); box-shadow:1px 1px 0 #FCD34D; }

        #wand-banner {
            position: fixed; top: 0; left: 0; width: 100%; box-sizing: border-box; background: #D97706; color: white;
            text-align: center; padding: 10px; font-size: 1.4em; font-weight: bold; z-index: 1000;
            display: none; box-shadow: 0 4px 10px rgba(0,0,0,0.2); letter-spacing: 1px;
        }
        #wand-banner.wand-highlight {
            background: linear-gradient(90deg, #F59E0B 0%, #D97706 52%, #B45309 100%);
            box-shadow: 0 4px 10px rgba(146,64,14,.28), inset 0 -3px 0 rgba(254,240,138,.85);
        }
        #wand-banner.wand-reminder {
            background: linear-gradient(90deg, #64748B 0%, #475569 52%, #334155 100%);
            box-shadow: 0 4px 10px rgba(30,41,59,.28), inset 0 -3px 0 rgba(203,213,225,.8);
        }
        #wand-banner-type {
            display: inline-flex; align-items: center; margin-right: 12px; padding: 3px 10px; border-radius: 999px;
            background: rgba(255,255,255,.9); font-size: .72em; line-height: 1.2; letter-spacing: .5px; vertical-align: 2px;
        }
        #wand-banner.wand-highlight #wand-banner-type { color: #92400E; }
        #wand-banner.wand-reminder #wand-banner-type { color: #334155; }
        #wand-banner button { margin-left:18px; border:1px solid rgba(255,255,255,.65); border-radius:999px; background:rgba(255,255,255,.16); color:#FFFFFF; padding:4px 12px; font-family:inherit; font-weight:900; cursor:pointer; }

        .grid {
            display: grid; grid-template-columns: repeat(auto-fill, minmax(165px, 1fr));
            gap: 15px; width: 100%; max-width: 1500px; padding: 10px;
        }
        .grid.group-view { grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); align-items: stretch; }
        .grid.personal-seat-order {
            grid-template-columns: var(--personal-seat-template);
            column-gap: 0; row-gap: 10px; overflow-x: auto; align-items: stretch;
        }

        .card {
            --card-bg: #FFFBEB; --card-dot: #FDE68A; --card-bd: #9A3412; --card-sh: #FFEDD5;
            border: 3px solid var(--card-bd, #9A3412); border-radius: 20px; padding: 12px 10px 14px; text-align: center;
            cursor: pointer; position: relative; box-shadow: 4px 4px 0px var(--card-sh, #FFEDD5); transition: 0.2s;
            overflow: hidden; min-height: 168px; background-color: var(--card-bg, #FFFBEB);
        }
        .card.rainbow-card {
            border-color: transparent;
            background-image: linear-gradient(var(--card-bg, #FFFBEB), var(--card-bg, #FFFBEB)), linear-gradient(90deg, #F472B6, #FDE047, #38BDF8, #A78BFA, #F472B6);
            background-origin: border-box;
            background-clip: padding-box, border-box;
            background-size: 100% 100%, 320% 100%;
            animation: rainbowBorderFlow 2.4s linear infinite;
            box-shadow: 4px 4px 0px rgba(244,114,182,.35), 0 0 18px rgba(244,114,182,.18);
        }
        @keyframes rainbowBorderFlow {
            from { background-position: 0 0, 0% 50%; }
            to { background-position: 0 0, 320% 50%; }
        }
        .card:before {
            content: ''; position:absolute; inset:0; pointer-events:none; opacity:var(--stage-pattern-opacity, .78); z-index:0;
            background-image: var(--stage-pattern);
        }
        .card > * { position: relative; z-index: 1; }
        .stage-0 { background-color: var(--card-bg); --stage-pattern: radial-gradient(circle at 50% 18%, rgba(255,255,255,0.92) 0 12%, transparent 34%), radial-gradient(var(--card-dot) 1.5px, transparent 1.5px), linear-gradient(180deg, rgba(255,255,255,.72), rgba(120,53,15,.08)); background-size: 100% 100%, 18px 18px, 100% 100%; }
        .stage-1 { background-color: var(--card-bg); --stage-pattern: linear-gradient(90deg, rgba(255,255,255,.42) 0 8px, transparent 8px 16px), radial-gradient(circle at 50% 10%, rgba(255,255,255,.8), transparent 38%), radial-gradient(var(--card-dot) 1.8px, transparent 1.8px); background-size: 16px 100%, 100% 100%, 13px 13px; }
        .stage-2 { background-color: var(--card-bg); --stage-pattern-opacity:.54; --stage-pattern: repeating-linear-gradient(45deg, var(--card-dot), var(--card-dot) 7px, transparent 7px, transparent 21px), linear-gradient(135deg, rgba(255,255,255,.3), transparent 55%); }
        .stage-3 { background-color: var(--card-bg); --stage-pattern-opacity:.7; --stage-pattern: repeating-conic-gradient(from -12deg at 50% 27%, rgba(245,158,11,.18) 0deg 15deg, transparent 15deg 30deg), linear-gradient(180deg, rgba(255,255,255,.48), rgba(255,255,255,.06)); }
        /* 盛放期以整张卡片的暖色层级识别，不再叠加容易被误读为页面圆点的装饰。 */
        .stage-card.stage-3:not(.rainbow-card) {
            background:linear-gradient(145deg, color-mix(in srgb, var(--card-bg) 62%, #FFFFFF 38%), #FFF1B8);
            box-shadow:4px 4px 0 var(--card-sh, #FDE68A);
        }

        .choose-card { border: 3px dashed #D97706; background: linear-gradient(135deg, #FFFBEB, #FEF3C7); box-shadow: 4px 4px 0px #FDE68A; }
        .choose-card .svg-avatar { filter: drop-shadow(0 3px 2px rgba(0,0,0,0.08)); }
        .seed-hint { font-size: .9em; font-weight: bold; color: #B45309; margin-top: 6px; background:#FFFFFFAA; border: 2px dashed #FBBF24; border-radius: 12px; padding: 6px; }
        
        .card-highlight { transform: scale(1.1); border-color: #EA580C; box-shadow: 0 0 20px #FFB020; z-index: 100; }
        body.lottery-drawing .card { opacity:.32; filter:saturate(.62) brightness(.88); transform:scale(.97); transition:opacity .14s ease, transform .14s ease, filter .14s ease; }
        body.lottery-drawing .card.card-lottery-scanning { opacity:1; filter:none; transform:scale(1.075); border-color:#F59E0B; box-shadow:0 0 0 7px rgba(253,224,71,.42), 0 0 30px rgba(245,158,11,.9); z-index:120; }
        body.lottery-revealed .card:not(.card-lottery-winner) { opacity:.18; filter:grayscale(.35) brightness(.9); transition:opacity .22s ease, filter .22s ease; }
        .card.card-lottery-winner { opacity:1; filter:none; transform:scale(1.12); border-color:#F59E0B; box-shadow:0 0 0 8px rgba(253,224,71,.46), 0 0 36px rgba(245,158,11,.94); z-index:150; animation:lotteryWinnerBloom .76s cubic-bezier(.18,.9,.28,1.35) both; }
        @keyframes lotteryWinnerBloom { 0% { transform:scale(.86) rotate(-2deg); } 55% { transform:scale(1.16) rotate(1deg); } 100% { transform:scale(1.12); } }
        .card:active { transform: translate(3px, 3px); box-shadow: 0px 0px 0px var(--card-sh); filter: brightness(0.95); }

        .group-plot {
            min-height: 248px; padding: 16px; text-align: left;
            background-color: var(--group-bg, #FFFBEB);
            --stage-pattern: radial-gradient(circle at 18% 20%, rgba(255,255,255,.72), transparent 28%), linear-gradient(135deg, rgba(255,255,255,.45), transparent 60%);
        }
        .group-plot.stage-0 { --group-bg:#FFF7ED; --card-bg:#FFF7ED; --card-bd:#9A3412; --card-sh:#FFEDD5; --card-dot:#FED7AA; }
        .group-plot.stage-1 { --group-bg:#F0FDF4; --card-bg:#F0FDF4; --card-bd:#15803D; --card-sh:#DCFCE7; --card-dot:#BBF7D0; }
        .group-plot.stage-2 { --group-bg:#FFF1F7; --card-bg:#FFF1F7; --card-bd:#DB2777; --card-sh:#FBCFE8; --card-dot:rgba(244,114,182,.24); }
        .group-plot.stage-3 { --group-bg:#E0E7FF; --card-bg:#E0E7FF; --card-bd:#F59E0B; --card-sh:#FDE047; --card-dot:rgba(255,255,255,.5); }
        .group-plot.stage-3:not(.rainbow-card) {
            background: linear-gradient(120deg, #E0E7FF, #FAE8FF, #FEF08A, #D1FAE5, #E0E7FF);
            background-size: 300% 300%;
            animation: groupRainbowGardenBreath 5s ease infinite;
            box-shadow: 0 0 20px rgba(252,211,77,.42), 4px 4px 0px var(--card-sh, #FDE047), inset 0 0 15px rgba(254,240,138,.5);
        }
        @keyframes groupRainbowGardenBreath {
            0%, 100% { background-position: 0% 50%; }
            50% { background-position: 100% 50%; }
        }
        .group-plot.stage-1:after, .group-plot.stage-2:after, .group-plot.stage-3:after {
            content:""; position:absolute; left:0; right:0; bottom:0; height:78px; pointer-events:none; z-index:0;
            background-repeat:no-repeat; background-position:center bottom; background-size:100% 100%; opacity:.55;
        }
        .group-plot.stage-1:after {
            background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 420 86'%3E%3Cpath d='M0 58 C55 34 96 70 151 47 C204 25 246 66 296 44 C346 23 379 45 420 35 L420 86 L0 86 Z' fill='%2386EFAC' fill-opacity='.38'/%3E%3Cpath d='M0 70 C62 46 108 78 164 59 C221 40 266 74 321 53 C365 37 392 51 420 45 L420 86 L0 86 Z' fill='%2322C55E' fill-opacity='.16'/%3E%3C/svg%3E");
        }
        .group-plot.stage-2:after {
            background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 420 86'%3E%3Cg fill='%23F9A8D4' fill-opacity='.35'%3E%3Cellipse cx='46' cy='64' rx='16' ry='7' transform='rotate(-18 46 64)'/%3E%3Cellipse cx='106' cy='72' rx='13' ry='6' transform='rotate(19 106 72)'/%3E%3Cellipse cx='197' cy='61' rx='18' ry='7' transform='rotate(-11 197 61)'/%3E%3Cellipse cx='283' cy='70' rx='14' ry='6' transform='rotate(15 283 70)'/%3E%3Cellipse cx='356' cy='58' rx='17' ry='7' transform='rotate(-20 356 58)'/%3E%3C/g%3E%3Cpath d='M0 76 C78 57 139 82 208 68 C285 52 342 74 420 58 L420 86 L0 86 Z' fill='%23FBCFE8' fill-opacity='.28'/%3E%3C/svg%3E");
        }
        .group-plot.stage-3:before { animation: groupBloomBreath 3.8s ease-in-out infinite; }
        .group-plot.stage-3:after {
            height:100%; opacity:.72; animation: groupBloomBreath 3.8s ease-in-out infinite;
            background-size:100% 100%, 150px 82px;
            background-image:
                url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 420 260'%3E%3Cg fill='%23FFFFFF' fill-opacity='.55'%3E%3Cpath d='M63 46 l5 11 12 2 -9 8 2 12 -10-6 -11 6 2-12 -9-8 12-2z'/%3E%3Cpath d='M334 38 l4 9 10 1 -7 7 1 10 -8-5 -9 5 2-10 -8-7 10-1z'/%3E%3Cpath d='M365 156 l5 10 11 2 -8 7 2 11 -10-5 -10 5 2-11 -8-7 11-2z'/%3E%3C/g%3E%3Cg fill='%23F472B6' fill-opacity='.38'%3E%3Ccircle cx='95' cy='180' r='7'/%3E%3Ccircle cx='108' cy='180' r='7'/%3E%3Ccircle cx='101' cy='168' r='7'/%3E%3Ccircle cx='101' cy='179' r='4' fill='%23FDE047' fill-opacity='.65'/%3E%3Ccircle cx='276' cy='205' r='6'/%3E%3Ccircle cx='288' cy='205' r='6'/%3E%3Ccircle cx='282' cy='194' r='6'/%3E%3Ccircle cx='282' cy='204' r='3.5' fill='%23FDE047' fill-opacity='.7'/%3E%3C/g%3E%3C/svg%3E");
        }
        @keyframes groupBloomBreath {
            0%, 100% { opacity:.68; filter:saturate(1); }
            50% { opacity:.95; filter:saturate(1.18) brightness(1.04); }
        }
        .group-top { display:flex; justify-content:space-between; align-items:flex-start; gap:10px; margin-bottom:8px; }
        .group-name { font-size:1.45em; font-weight:900; color:#451A03; text-shadow: -1px -1px 0 #FFF, 1px -1px 0 #FFF, -1px 1px 0 #FFF, 1px 1px 0 #FFF; }
        .group-stage { font-size:.86em; font-weight:900; color:#92400E; background:rgba(255,255,255,.72); border:1px solid rgba(180,83,9,.25); border-radius:999px; padding:4px 9px; white-space:nowrap; }
        .group-plot.stage-1 .group-stage { color:#15803D; background:rgba(240,253,244,.86); border-color:rgba(22,163,74,.32); }
        .group-plot.stage-2 .group-stage { color:#BE185D; background:rgba(253,242,248,.88); border-color:rgba(244,114,182,.38); }
        .group-plot.stage-3 .group-stage { color:#92400E; background:rgba(254,243,199,.9); border-color:rgba(217,119,6,.35); box-shadow:0 0 0 2px rgba(255,255,255,.45) inset; }
        .group-score { font-size:1.18em; font-weight:900; color:#D97706; margin-bottom:10px; }
        .group-bed {
            display:grid; grid-template-columns: repeat(auto-fit, minmax(54px, 1fr)); gap:8px; align-items:end;
            background:rgba(255,255,255,.55); border:2px dashed rgba(180,83,9,.28); border-radius:16px; padding:10px;
        }
        .group-plot.stage-2 .group-bed { position:relative; border-color:rgba(219,39,119,.28); }
        .group-plot.stage-2 .group-bed:before {
            content:""; position:absolute; inset:-15px 16px auto 16px; height:30px; pointer-events:none; z-index:2;
            background-repeat:no-repeat; background-size:24px 24px, 22px 22px, 24px 24px;
            background-position:10% 4px, 55% 0, 92% 5px;
            background-image:
                url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Cg fill='%23F472B6' stroke='%23BE185D' stroke-width='1.5'%3E%3Ccircle cx='16' cy='8' r='5'/%3E%3Ccircle cx='9' cy='15' r='5'/%3E%3Ccircle cx='23' cy='15' r='5'/%3E%3Ccircle cx='16' cy='22' r='5'/%3E%3C/g%3E%3Ccircle cx='16' cy='16' r='4' fill='%23FDE68A'/%3E%3C/svg%3E"),
                url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Cg fill='%23FDA4AF' stroke='%23E11D48' stroke-width='1.5'%3E%3Ccircle cx='16' cy='8' r='5'/%3E%3Ccircle cx='9' cy='15' r='5'/%3E%3Ccircle cx='23' cy='15' r='5'/%3E%3Ccircle cx='16' cy='22' r='5'/%3E%3C/g%3E%3Ccircle cx='16' cy='16' r='4' fill='%23FEF3C7'/%3E%3C/svg%3E"),
                url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Cg fill='%23F9A8D4' stroke='%23DB2777' stroke-width='1.5'%3E%3Ccircle cx='16' cy='8' r='5'/%3E%3Ccircle cx='9' cy='15' r='5'/%3E%3Ccircle cx='23' cy='15' r='5'/%3E%3Ccircle cx='16' cy='22' r='5'/%3E%3C/g%3E%3Ccircle cx='16' cy='16' r='4' fill='%23FDE68A'/%3E%3C/svg%3E");
        }
        .group-member-plant { text-align:center; min-width:0; }
        .group-member-plant .plant-icon { width:50px; height:50px; margin:0 auto 2px; filter:drop-shadow(0 3px 3px rgba(0,0,0,.1)); }
        .group-member-name { font-size:.78em; font-weight:900; color:#78350F; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
        .group-meta { display:grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap:6px; margin-top:10px; }
        .group-chip { border-radius:999px; padding:3px 8px; background:rgba(255,255,255,.72); color:#64748B; border:1px solid rgba(100,116,139,.22); font-size:.8em; font-weight:900; text-align:center; }
        .group-chip.sync { color:#92400E; border-color:rgba(217,119,6,.25); background:rgba(254,243,199,.72); }
        .group-chip.teamwork { color:#15803D; border-color:rgba(22,163,74,.24); background:rgba(240,253,244,.78); }
        .group-chip.rainbow { color:#DB2777; border-color:rgba(244,114,182,.28); background:rgba(253,244,255,.78); }

        .svg-avatar { width: 68px; height: 68px; margin: 2px auto 4px auto; display: block; filter: drop-shadow(0 4px 4px rgba(0,0,0,0.1)); }
        /* 盛放期在学生花园卡片中略高一档，保留其他阶段与缩略图的既有密度。 */
        .stage-card.stage-3 .svg-avatar { width: 78px; height: 78px; margin-top: -3px; margin-bottom: -1px; }
        .student-primary { display:flex; align-items:baseline; justify-content:center; gap:9px; min-width:0; margin:2px 0 7px; }
        .student-name { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size: 1.25em; font-weight: bold; color: #451A03; text-shadow: -1px -1px 0 #FFF, 1px -1px 0 #FFF, -1px 1px 0 #FFF, 1px 1px 0 #FFF;}
        .total-score { flex:0 0 auto; font-size: 1.38em; line-height:1; font-weight: 900; color: #D97706; text-shadow: -1px -1px 0 #FFF, 1px -1px 0 #FFF, -1px 1px 0 #FFF, 1px 1px 0 #FFF;}

        .badges-container {
            display:grid; grid-template-columns:repeat(5, minmax(0, 1fr)); width:100%; overflow:hidden;
            margin-top:7px; border:1px solid rgba(100,116,139,.2); border-radius:11px; background:rgba(255,255,255,.66);
        }
        .badge {
            min-width:0; padding:5px 1px; border:0; border-right:1px solid rgba(100,116,139,.16); border-radius:0;
            background:transparent; box-shadow:none; font-size:.82em; font-weight:900; display:flex; flex-direction:column; align-items:center; gap:1px;
        }
        .badge:last-child { border-right:0; }
        .badge-icon { display:block; width:21px; height:21px; line-height:1; }
        .badge-icon svg { width:100%; height:100%; display:block; }
        .badge-score { line-height:1; }
        .b-wisdom { background:transparent; color:var(--c-wisdom); border-color:rgba(100,116,139,.16); }
        .b-rule { background:transparent; color:var(--c-rule); border-color:rgba(100,116,139,.16); }
        .b-homework { background:transparent; color:var(--c-homework); border-color:rgba(100,116,139,.16); }
        .b-labor { background:transparent; color:var(--c-labor); border-color:rgba(100,116,139,.16); }
        .b-love { background:transparent; color:var(--c-love); border-color:transparent; }
        .cloud-corner {
            position:absolute; left:7px; top:7px; z-index:3; min-height:24px; min-width:24px;
            display:inline-flex; align-items:center; justify-content:center; gap:3px; padding:2px 6px;
            border:1px solid rgba(100,116,139,.42); border-radius:999px; background:rgba(248,250,252,.94);
            color:#475569; box-shadow:0 1px 3px rgba(71,85,105,.12); font-family:inherit; font-size:.76em; font-weight:900; line-height:1; cursor:pointer;
        }
        .cloud-corner:hover { background:#FFFFFF; border-color:#64748B; }
        .cloud-corner .emoji-wrapper { width:15px; height:15px; }
        .cloud-corner-count { min-width:12px; color:#334155; font-size:.78em; line-height:1; }
        .student-homework-exception-corner { position:absolute; left:7px; top:7px; z-index:3; min-height:24px; min-width:24px; display:inline-flex; align-items:center; justify-content:center; gap:3px; padding:2px 6px; border:1px solid rgba(217,119,6,.42); border-radius:999px; background:rgba(255,251,235,.94); color:var(--c-homework); box-shadow:0 1px 3px rgba(180,83,9,.12); font-family:inherit; font-size:.76em; font-weight:900; line-height:1; cursor:pointer; white-space:nowrap; }
        .student-homework-exception-corner.is-under-cloud { top:35px; }
        .student-homework-exception-corner:hover { background:#FFFFFF; border-color:var(--c-homework); }
        .student-homework-exception-corner > span:last-child { min-width:12px; font-size:.78em; }
        .student-homework-exception-icon { width:15px; height:15px; display:grid; place-items:center; }
        .student-homework-exception-icon .growth-badge-icon { width:15px; height:15px; display:block; }

        .cloud-care-popover {
            position:fixed; z-index:4200; display:none; width:min(360px, calc(100vw - 24px));
            border:2px solid #86EFAC; border-radius:16px; background:rgba(255,255,255,.98); color:#334155;
            padding:12px; box-shadow:0 12px 32px rgba(15,23,42,.2); text-align:left;
        }
        .cloud-care-popover-head { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; padding-bottom:9px; border-bottom:1px solid #DCFCE7; }
        .cloud-care-popover-head > div { display:grid; gap:2px; }
        .cloud-care-popover-head strong { color:#166534; font-size:1.05em; }
        .cloud-care-popover-head span { color:#64748B; font-size:.78em; font-weight:900; }
        .cloud-care-popover-head button { border:0; background:transparent; color:#64748B; font-family:inherit; font-size:1.35em; font-weight:900; line-height:1; cursor:pointer; padding:0 2px; }
        .cloud-care-popover-list { display:grid; gap:0; margin-top:5px; }
        .cloud-care-popover-item { display:grid; grid-template-columns:minmax(0, 1fr) auto; gap:8px; align-items:center; padding:8px 0; border-bottom:1px solid #DCFCE7; }
        .cloud-care-popover-item:last-child { border-bottom:0; }
        .cloud-care-popover-copy { min-width:0; display:grid; gap:2px; }
        .cloud-care-popover-copy strong { color:#334155; font-size:.95em; }
        .cloud-care-popover-copy span { color:#64748B; font-size:.8em; font-weight:800; line-height:1.35; }
        .cloud-care-popover-actions { display:flex; align-items:center; gap:5px; }
        .cloud-care-popover-actions .cloud-clear-btn { border-radius:8px; padding:6px 8px; font-family:inherit; font-size:.82em; font-weight:900; cursor:pointer; }
        .cloud-clear-btn { border:1px solid #0F766E; background:#0F766E; color:#FFFFFF; }
        .cloud-undo-icon-btn { width:29px; height:29px; display:grid; place-items:center; padding:0 !important; border:1px solid #CBD5E1; border-radius:8px; background:#FFFFFF; color:#64748B; cursor:pointer; }
        .cloud-undo-icon-btn:hover { border-color:#94A3B8; color:#475569; background:#F8FAFC; }
        .cloud-undo-icon-btn svg { width:16px; height:16px; fill:none; stroke:currentColor; stroke-width:2.3; stroke-linecap:round; stroke-linejoin:round; }
        .cloud-care-popover.is-homework-exception { border-color:#FCD34D; }
        .cloud-care-popover.is-homework-exception .cloud-care-popover-head { border-color:#FDE68A; }
        .cloud-care-popover.is-homework-exception .cloud-care-popover-head strong { color:var(--c-homework); }
        .cloud-care-popover.is-homework-exception .cloud-care-popover-item { border-color:#FEF3C7; }
        .student-homework-exception-meta { display:flex; align-items:center; gap:7px; min-width:0; }
        .student-homework-exception-state { position:relative; z-index:1; display:inline-flex; align-items:center; justify-content:center; min-width:38px; border-radius:999px; padding:3px 7px; font-size:.78em; font-weight:900; line-height:1.2; white-space:nowrap; }
        .student-homework-exception-state.correction { background:#DBEAFE; color:#1D4ED8; }
        .student-homework-exception-state.missing { background:#FFF1F2; color:#E11D48; }
        .student-homework-exception-state.resolved { background:#ECFDF5; color:#047857; }
        .student-homework-exception-complete-btn { border:1px solid #D97706; border-radius:8px; padding:6px 9px; background:#D97706; color:#FFFFFF; font-family:inherit; font-size:.8em; font-weight:900; cursor:pointer; white-space:nowrap; }
        .student-homework-exception-complete-btn:hover { background:#B45309; border-color:#B45309; }
        .studio-gate-modal { max-width:420px; padding:24px; border-color:#0F766E; box-shadow:10px 10px 0 #99F6E4; }
        .studio-gate-modal h2 { margin:0 0 14px; color:#0F766E; }
        .studio-gate-modal input { width:100%; border:2px solid #99F6E4; border-radius:10px; padding:12px; color:#0F172A; font-family:inherit; font-size:1.1em; font-weight:900; text-align:center; outline:none; }
        .studio-gate-modal input:focus { border-color:#0F766E; box-shadow:0 0 0 3px rgba(15,118,110,.12); }
        #teacherStudioGateStatus { min-height:22px; margin-top:7px; color:#BE123C; font-size:.88em; font-weight:900; }
        .studio-gate-actions { display:grid; grid-template-columns:1fr 1fr; gap:9px; margin-top:8px; }
        .studio-gate-actions button { margin:0; }

        @media (max-width: 900px) {
            .behavior-button-grid { grid-template-columns:repeat(5, minmax(105px, 1fr)); overflow-x:auto; padding-bottom:3px; }
            .compact-tools { justify-content:flex-start; flex-wrap:wrap; }
            .garden-duty-quick { order:0; width:100%; flex-basis:100%; border-left:0; border-right:0; border-bottom:1px solid #E2E8F0; }
            .compact-tool-actions { order:1; }
            .compact-tool-global { order:2; padding-left:0; border-left:0; }
        }

        #glory-overlay {
            position: fixed; top: 0; left: 0; width: 100%; height: 100%;
            background: rgba(0,0,0,0.85); z-index: 5000; display: none;
            flex-direction: column; justify-content: center; align-items: center; backdrop-filter: blur(5px);
        }
        .glory-card { text-align: center; animation: gloryPop 0.8s cubic-bezier(0.175, 0.885, 0.32, 1.275); }
        @keyframes gloryPop { from { transform: scale(0); opacity: 0; } to { transform: scale(1); opacity: 1; } }

        .modal-overlay {
            position: fixed; top: 0; left: 0; width: 100%; height: 100%;
            background: rgba(255, 255, 255, 0.85); backdrop-filter: blur(8px);
            display: none; justify-content: center; align-items: center; z-index: 3000;
        }
        .lottery-overlay { position:fixed; inset:0; display:none; align-items:center; justify-content:center; padding:20px; background:rgba(69,26,3,.46); backdrop-filter:blur(5px); z-index:7000; }
        .lottery-result-card { position:relative; width:min(470px, 100%); overflow:hidden; padding:28px 28px 24px; border:5px solid #F59E0B; border-radius:32px; background:radial-gradient(circle at 50% 2%, rgba(255,255,255,.98) 0 12%, transparent 42%), linear-gradient(145deg, #FFF7ED, #FEF3C7 55%, #FDBA74); box-shadow:0 24px 0 rgba(120,53,15,.28), 0 30px 60px rgba(69,26,3,.34); text-align:center; color:#78350F; animation:lotteryResultPop .48s cubic-bezier(.18,.9,.28,1.22) both; }
        .lottery-result-card:before, .lottery-result-card:after { content:'✦'; position:absolute; color:#FBBF24; font-size:36px; line-height:1; text-shadow:0 2px 0 rgba(255,255,255,.65); animation:lotterySparkle 1.4s ease-in-out infinite alternate; }
        .lottery-result-card:before { left:28px; top:40px; }
        .lottery-result-card:after { right:30px; top:82px; animation-delay:.32s; }
        .lottery-result-kicker { position:relative; z-index:1; font-size:.98em; font-weight:900; letter-spacing:.16em; color:#B45309; }
        .lottery-result-plant { position:relative; z-index:1; width:138px; height:138px; margin:2px auto -4px; filter:drop-shadow(0 10px 8px rgba(120,53,15,.22)); }
        .lottery-result-plant svg { display:block; width:100%; height:100%; }
        .lottery-result-card h2 { position:relative; z-index:1; margin:0; color:#92400E; font-size:2.35em; line-height:1.12; }
        .lottery-result-card p { position:relative; z-index:1; margin:8px 0 20px; color:#78350F; font-size:1.02em; font-weight:800; }
        .lottery-result-actions { position:relative; z-index:1; display:grid; grid-template-columns:1fr 1fr; gap:9px; }
        .lottery-response-btn { grid-column:1 / -1; min-height:50px; border:2px solid #B45309; border-radius:14px; background:#D97706; color:#FFFFFF; box-shadow:0 3px 0 #92400E; font:900 1.05em inherit; cursor:pointer; }
        .lottery-response-btn:active, .lottery-secondary-btn:active { transform:translateY(2px); box-shadow:none; }
        .lottery-response-btn.recorded { border-color:#15803D; background:#DCFCE7; color:#166534; box-shadow:none; cursor:default; }
        .lottery-secondary-btn { min-height:41px; border:2px solid #D97706; border-radius:12px; background:#FFFFFFC8; color:#92400E; font:900 .94em inherit; cursor:pointer; }
        .lottery-secondary-btn.quiet { border-color:#D6D3D1; color:#78716C; }
        @keyframes lotteryResultPop { from { opacity:0; transform:translateY(20px) scale(.8); } to { opacity:1; transform:translateY(0) scale(1); } }
        @keyframes lotterySparkle { from { transform:scale(.72) rotate(-12deg); opacity:.56; } to { transform:scale(1.15) rotate(12deg); opacity:1; } }
        .modal {
            background: #FFFFFF; padding: 28px; border-radius: 35px; width: 90%; max-width: 650px;
            text-align: center; border: 4px solid var(--border-dark); box-shadow: 12px 12px 0px #FCD34D; max-height: 90vh; overflow-y: auto;
        }
        #chart-modal { max-width: 900px; }

        /* 周报样式 */
        #weeklyReportModal .modal { max-width: 700px; background: #FFFBEB; text-align: left; }
        .report-card-title { color: #D97706; font-size: 2.2em; margin-bottom: 15px; text-align: center; }
        .report-module { background: #FFFFFF; border: 2px dashed #FCD34D; border-radius: 15px; padding: 15px; margin-bottom: 15px; }
        .report-module h3 { margin: 0 0 10px 0; color: #B45309; display: flex; align-items: center; gap: 8px; font-size: 1.2em; }
        .report-list { display: flex; flex-wrap: wrap; gap: 10px; }
        .report-item { background: #FEF3C7; padding: 8px 12px; border-radius: 10px; font-weight: bold; color: #78350F; font-size: 0.95em; }
        .report-item span { color: #EA580C; font-weight: 900; }
        .report-highlight { font-size: 1.1em; color: #15803D; font-weight: bold; margin-bottom: 10px; text-align: center; }
        .report-period {
            display: flex; justify-content: center; align-items: center; gap: 8px; flex-wrap: wrap;
            margin: 0 0 12px; color: #166534; font-weight: 900; text-align: center;
        }
        .report-period strong { color: #92400E; }
        .report-period span { border-radius: 999px; background: #DCFCE7; padding: 4px 9px; }
        .report-background-line {
            display: block; min-width: 0; margin: 0 0 10px; padding: 7px 10px; border-radius: 8px;
            background: #F8FAFC; color: #64748B; font-size: .9em; font-weight: 800; line-height: 1.4;
            white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
        }
        .report-background-line strong { color: #475569; }
        .weekly-report-week-editor {
            align-items: center; justify-content: space-between; gap: 12px; margin: 0 0 14px;
            border: 1px solid #FDE68A; border-radius: 12px; background: #FFFBEB; padding: 10px 12px;
            color: #92400E; font-weight: 900;
        }
        .weekly-report-week-editor label { display: flex; align-items: center; gap: 8px; flex: 0 0 auto; }
        .weekly-report-week-editor select {
            min-height: 36px; border: 1px solid #F59E0B; border-radius: 8px; background: #FFFFFF;
            color: #78350F; padding: 6px 9px; font-family: inherit; font-weight: 900;
        }
        .weekly-report-week-editor small { color: #A16207; line-height: 1.4; text-align: right; }
        .report-echo { background: #F0FDF4; border-color: #86EFAC; }
        .echo-list { display: grid; gap: 10px; }
        .echo-item { background: #ECFDF5; border-radius: 12px; padding: 12px 16px; color: #14532D; font-size: 1.18em; font-weight: bold; line-height: 1.6; }
        .report-tabs { display: flex; gap: 8px; flex-wrap: wrap; justify-content: center; margin: 4px 0 14px; }
        .report-tab {
            border: 2px solid #FCD34D; background: #FFFFFF; color: #92400E; border-radius: 999px;
            padding: 7px 14px; font-family: inherit; font-weight: 900; cursor: pointer;
        }
        .report-tab.active { background: #FEF3C7; border-color: #D97706; color: #78350F; }
        .history-select {
            width: 100%; border: 3px solid #FCD34D; border-radius: 14px; padding: 10px 12px; margin-bottom: 14px;
            font-family: inherit; font-weight: bold; color: #78350F; background: #FFFFFF;
        }
        .history-empty { text-align: center; color: #92400E; font-weight: bold; background: #FFFFFF; border: 2px dashed #FCD34D; border-radius: 15px; padding: 18px; }

        .reward-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 15px; margin: 20px 0; }
        .reward-grid.group-reward-grid { grid-template-columns: repeat(3, 1fr); }
        .btn-reward {
            background: #FFFFFF; border: 3px solid var(--border-dark); padding: 15px; border-radius: 20px; cursor: pointer;
            font-family: inherit; font-size: 1.25em; font-weight: bold; box-shadow: 4px 4px 0px #FDE047; transition: 0.1s;
            display: flex; flex-direction: column; align-items: center; gap: 8px;
        }
        .btn-reward:active { transform: translate(3px, 3px); box-shadow: 0px 0px 0px #FDE047; }
        .group-reward-title { font-size: 1.03em; line-height: 1.2; }
        .group-reward-desc { font-size: .72em; line-height: 1.35; font-weight: 800; color: #78350F; opacity: .82; }

        .btn-action {
            width: 100%; background: #ECFDF5; border: 3px solid #10B981; color: #047857; padding: 15px;
            border-radius: 20px; font-size: 1.2em; font-weight: bold; cursor: pointer; font-family: inherit; margin-top: 15px;
        }
        .btn-action:active { transform: translateY(3px); }

        .btn-close {
            width: 100%; background: #FFFBEB; border: 3px solid #B45309; color: #92400E; padding: 15px;
            border-radius: 20px; font-size: 1.25em; font-weight: bold; cursor: pointer; font-family: inherit; margin-top: 15px;
        }
        .btn-close:active { transform: translateY(3px); }

        .garden-catalog-modal { max-width:680px; background:#FFFBEB; }
        .garden-catalog-modal h2 { margin:0; color:#B45309; font-size:2em; }
        .garden-catalog-summary { margin:7px 0 18px; color:#78350F; font-weight:900; }
        .garden-catalog-summary strong { color:#15803D; }
        .garden-catalog-section + .garden-catalog-section { margin-top:18px; padding-top:16px; border-top:1px dashed #FCD34D; }
        .garden-catalog-section h3 { display:flex; align-items:baseline; gap:8px; margin:0 0 9px; color:#92400E; font-size:1.03em; }
        .garden-catalog-section h3 span { color:#A16207; font-size:.78em; font-weight:800; }
        .garden-catalog-grid { display:grid; grid-template-columns:repeat(3, minmax(0, 1fr)); gap:10px; }
        .garden-catalog-section.is-limited .garden-catalog-grid { display:block; }
        .garden-catalog-card {
            display:grid; justify-items:center; gap:4px; min-height:130px; padding:12px 8px; border:2px dashed #FCD34D;
            border-radius:16px; background:#FFFFFF; color:#78350F;
        }
        .garden-catalog-card.is-unlit { border-color:#CBD5E1; background:#F8FAFC; color:#94A3B8; }
        .garden-catalog-plant { width:48px; height:48px; display:grid; place-items:center; font-size:2em; }
        .garden-catalog-plant svg { width:100%; height:100%; display:block; }
        .garden-catalog-card.is-unlit .garden-catalog-plant { filter:grayscale(1); opacity:.38; }
        .garden-catalog-card strong { font-size:1.02em; }
        .garden-catalog-card span { font-size:.82em; font-weight:900; }
        .garden-catalog-limited-list { display:grid; grid-template-columns:1fr; gap:10px; }
        .garden-catalog-limited-card {
            display:grid; grid-template-columns:84px minmax(0, 1fr); gap:14px; align-items:center;
            min-height:112px; padding:13px 16px; border:2px dashed #FCD34D; border-radius:18px; background:#FFFFFF; color:#78350F; text-align:left;
        }
        .garden-catalog-limited-card.is-unlit { border-color:#CBD5E1; background:#F8FAFC; }
        .garden-catalog-limited-plant { width:76px; height:76px; display:grid; place-items:center; }
        .garden-catalog-limited-plant svg { width:100%; height:100%; display:block; }
        .garden-catalog-limited-card.is-unlit .garden-catalog-limited-plant { filter:grayscale(1); opacity:.45; }
        .garden-catalog-limited-copy { min-width:0; display:flex; flex-direction:column; align-items:flex-start; }
        .garden-catalog-limited-title { display:flex; align-items:baseline; flex-wrap:wrap; gap:7px; }
        .garden-catalog-limited-title span { color:#A16207; font-size:.78em; font-weight:900; }
        .garden-catalog-limited-title strong { color:#92400E; font-size:1.2em; }
        .garden-catalog-limited-intro, .garden-catalog-limited-expectation { margin:4px 0 0; font-size:.84em; font-weight:700; line-height:1.48; }
        .garden-catalog-limited-intro b { color:#15803D; }
        .garden-catalog-limited-expectation b { color:#B45309; }
        .garden-catalog-limited-count { align-self:flex-end; margin-top:4px; color:#A16207; font-size:.78em; font-weight:900; }
        .garden-catalog-limited-card.is-unlit .garden-catalog-limited-count { color:#64748B; }
        @media (max-width: 560px) {
            .garden-catalog-limited-card { grid-template-columns:64px minmax(0, 1fr); gap:10px; padding:13px; }
            .garden-catalog-limited-plant { width:58px; height:58px; }
        }

        .deduct-section { margin-top: 15px; padding-top: 15px; border-top: 2px dashed #D97706; }
        .deduct-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; margin-top: 15px; }
        #modalContent.behavior-personal-mode { width: 92%; max-width: 960px; padding: 24px 28px 28px; }
        #modalContent.behavior-personal-mode .reward-grid,
        #modalContent.behavior-personal-mode .deduct-grid {
            grid-template-columns: repeat(5, minmax(0, 1fr));
            gap: 12px;
            margin: 14px 0;
        }
        #modalContent.behavior-personal-mode .behavior-btn {
            aspect-ratio: 1.25 / 1;
            min-height: 108px;
            padding: 13px 9px;
            border-radius: 20px;
            flex-direction: column;
            gap: 10px;
            font-size: 1.08em;
        }
        #modalContent.behavior-personal-mode .behavior-icon {
            width: 38px;
            height: 38px;
            flex-basis: 38px;
        }
        #modalContent.behavior-personal-mode .deduct-section { margin-top: 12px; padding-top: 12px; }

        @media (max-width: 900px) {
            #modalContent.behavior-personal-mode { width: 92%; padding: 22px; }
            #modalContent.behavior-personal-mode .reward-grid,
            #modalContent.behavior-personal-mode .deduct-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
            #modalContent.behavior-personal-mode .behavior-btn {
                aspect-ratio: auto;
                min-height: 76px;
                flex-direction: row;
            }
        }
        .btn-cloud, .btn-sunshine, .btn-rainbow {
            padding: 8px 5px; border-radius: 12px; cursor: pointer; font-family: inherit;
            font-weight: bold; transition: 0.1s; border: 2px solid;
        }
        .btn-cloud { background: #F1F5F9; border-color: #CBD5E1; color: #475569; }
        .btn-sunshine { background: #FFFBEB; border-color: #FDE047; color: #D97706; }
        .btn-rainbow { background: #FDF4FF; border-color: #F472B6; color: #DB2777; }
        .btn-cloud:active, .btn-sunshine:active, .btn-rainbow:active { transform: translateY(2px); }
        .weather-corner {
            position: absolute; right: 8px; top: 8px; z-index: 2; display: inline-flex; align-items: center; gap: 3px;
            border-radius: 999px; padding: 2px 6px; font-size: .72em; font-weight: 900; line-height: 1;
            border: 1px solid rgba(100,116,139,.28); background: rgba(255,255,255,.62); color: #64748B;
            box-shadow: 0 1px 3px rgba(15,23,42,.08);
        }
        .weather-corner.sunny { border-color: rgba(245,158,11,.28); color: #B45309; background: rgba(255,251,235,.68); }
        .weather-corner.sunny { padding: 3px 6px; }
        .rainbow-corner {
            position: absolute; left: 8px; top: 8px; z-index: 2; display: inline-flex; align-items: center; gap: 3px;
            border-radius: 999px; padding: 2px 6px; font-size: .72em; font-weight: 900; line-height: 1;
            border: 1px solid rgba(219,39,119,.28); background: rgba(253,244,255,.7); color: #DB2777;
            box-shadow: 0 1px 3px rgba(219,39,119,.1);
        }

        .plant-modal-hint { margin:2px 0 0; color:#92400E; font-size:.9em; font-weight:800; line-height:1.4; text-align:center; }
        .plant-grid { display:grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap:14px; margin:10px 0; }
        .plant-option {
            display:block; background:#FFFBEB; border:3px solid #D97706; border-radius:22px; padding:12px 10px; cursor:pointer;
            box-shadow:4px 4px 0 #FDE047; transition:.12s; font-family:inherit; color:#451A03;
        }
        .plant-option:active { transform:translate(3px,3px); box-shadow:none; }
        .plant-option.locked { opacity:.45; filter:grayscale(.3); cursor:not-allowed; }
        .harvest-corner {
            position:absolute; right:7px; top:7px; z-index:3; display:inline-flex; align-items:center; justify-content:center; gap:3px;
            min-height:24px; min-width:24px; padding:2px 6px; border:1px solid var(--card-bd, #86EFAC); border-radius:999px;
            background:var(--card-bg, #F0FDF4); color:var(--card-bd, #15803D); box-shadow:0 1px 3px var(--card-sh, rgba(21,128,61,.1));
            border-color:color-mix(in srgb, var(--card-bd, #15803D) 34%, transparent);
            background:color-mix(in srgb, var(--card-bg, #F0FDF4) 82%, #FFFFFF 18%); font-family:inherit; font-size:.76em; cursor:pointer;
        }
        .harvest-hidden-count { min-width:12px; font-size:.78em; line-height:1; font-weight:900; }
        .harvest-corner-plants { display:flex; align-items:center; }
        .harvest-corner-icon {
            width:15px; height:15px; margin-left:-4px; display:block; flex:0 0 15px;
            border-radius:50%; filter:drop-shadow(0 1px 1px rgba(0,0,0,.12));
        }
        .harvest-corner-icon:first-child { margin-left:0; }
        .harvest-corner-icon.latest { position:relative; z-index:2; transform:scale(1.05); }
        .harvest-corner-icon > svg, .harvest-corner-icon .emoji-wrapper, .harvest-corner-icon .emoji-wrapper svg { width:100%; height:100%; display:block; }
        .harvest-popover {
            position:fixed; z-index:4200; display:none; width:min(330px, calc(100vw - 24px));
            border:2px solid #86EFAC; border-radius:16px; background:rgba(255,255,255,.98); color:#334155;
            padding:12px; box-shadow:0 12px 32px rgba(15,23,42,.2); text-align:left;
        }
        .harvest-popover-head { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; padding-bottom:9px; border-bottom:1px solid #DCFCE7; }
        .harvest-popover-head > div { display:grid; gap:2px; }
        .harvest-popover-head strong { color:#166534; font-size:1.05em; }
        .harvest-popover-head span { color:#64748B; font-size:.78em; font-weight:900; }
        .harvest-popover-head button { border:0; background:transparent; color:#64748B; font-family:inherit; font-size:1.35em; font-weight:900; line-height:1; cursor:pointer; padding:0 2px; }
        .harvest-popover-list { display:flex; flex-wrap:wrap; gap:7px; margin-top:10px; }
        .harvest-popover-item {
            display:inline-flex; align-items:center; gap:5px; border:1px solid #D1FAE5; border-radius:999px;
            background:#F0FDF4; color:#166534; padding:4px 8px; font-size:.86em; font-weight:900;
        }
        .harvest-popover-item.latest { border-color:#4ADE80; background:#DCFCE7; }
        .harvest-popover-plant-name { white-space:nowrap; }
        .harvest-popover-count-icons { display:inline-flex; align-items:center; gap:1px; }
        .harvest-popover-item em { color:#64748B; padding:0; font-size:.78em; font-style:normal; line-height:1.25; white-space:nowrap; }
        .harvest-popover-item em::before { content:'·'; margin-right:5px; color:#94A3B8; }
        .harvest-popover-icon { width:22px; height:22px; display:block; flex:0 0 22px; }
        .harvest-popover-icon > svg, .harvest-popover-icon .emoji-wrapper, .harvest-popover-icon .emoji-wrapper svg { width:100%; height:100%; display:block; }
        .plant-option .plant-preview { width:82px; height:82px; margin:0 auto 6px; }
        .plant-option .plant-preview svg { width:100%; height:100%; display:block; }
        .plant-option-name { font-size:1.2em; font-weight:900; }
        .report-plant-marker { width:1.35em; height:1.35em; display:inline-block; vertical-align:-.32em; margin-right:2px; }
        .report-plant-marker svg { width:100%; height:100%; display:block; }
        .plant-option-desc { font-size:.85em; color:#92400E; font-weight:bold; margin-top:4px; line-height:1.35; }
        .plant-option-limited {
            grid-column:1 / -1; display:grid; grid-template-columns:100px minmax(0, 1fr); align-items:center; gap:14px; padding:14px 18px;
            border-color:#B45309; background:linear-gradient(110deg, #FFFBEB 0%, #FFF7D6 100%); text-align:left;
        }
        .plant-option-limited .plant-preview { width:88px; height:88px; margin:0; }
        .plant-option-season { display:inline-flex; margin-bottom:4px; border-radius:999px; padding:3px 8px; background:#FEF3C7; color:#A16207; font-size:.76em; font-weight:900; }
        .plant-option-limited .plant-option-name { color:#92400E; font-size:1.28em; }
        .plant-option-limited .plant-option-desc { max-width:31em; margin-top:3px; }
        @media (max-width:560px) {
            .plant-option-limited { grid-template-columns:72px minmax(0, 1fr); gap:10px; padding:12px; }
            .plant-option-limited .plant-preview { width:66px; height:66px; }
        }
        .report-extra { display:grid; grid-template-columns: 1fr 1fr; gap:12px; margin-top:18px; text-align:left; }
        .report-card { background:#FFFBEB; border:2px dashed #D97706; border-radius:18px; padding:12px; font-weight:bold; color:#78350F; line-height:1.7; }

        #particle-container { position: fixed; top: 0; left: 0; pointer-events: none; z-index: 9999; }
        .footer { width: 100%; max-width: 1200px; padding: 10px 0; text-align: center; }
        .progress-box { background: #FFFFFF; padding: 22px 28px 28px; border-radius: 25px; border: 3px solid var(--border-dark); box-shadow: 6px 6px 0px #FCD34D; margin-bottom: 20px;}
        .bar-outer { height: 30px; background: #FEF3C7; border-radius: 999px; border: 3px solid var(--border-dark); overflow: visible; margin: 54px 58px 48px; position: relative; }
        .bar-inner { height: 100%; width: 0%; background: linear-gradient(90deg, #FDE047, #F59E0B, #FB7185); transition: 1s; border-radius: 999px; box-shadow: inset 0 2px 0 rgba(255,255,255,.45); }
        .unlock-node {
            position: absolute; top: 0; transform: translateX(-50%); width: 82px; height: 74px;
            border: 0; background: transparent; border-radius: 0; cursor: pointer;
            display: flex; align-items: center; justify-content: center; padding: 0; z-index: 3;
        }
        .unlock-node svg { width: 100%; height: 100%; display: block; }
        .unlock-medallion {
            position: absolute; left: 50%; top: -42px; transform: translateX(-50%);
            width: 36px; height: 36px; padding: 0; display: flex; align-items: center; justify-content: center;
            background: transparent; border: 0; filter: grayscale(1) contrast(.78); box-shadow: none; opacity: .92;
            transition: transform .18s, filter .25s, opacity .25s;
        }
        .unlock-node:before { content: ""; position: absolute; left: 50%; top: -5px; width: 4px; height: 40px; transform: translateX(-50%); background: var(--border-dark); border-radius: 999px; opacity: .75; }
        .unlock-node.unlocked-unclaimed .unlock-medallion {
            filter: none; background: transparent; box-shadow: none; opacity: 1; animation: none;
        }
        .unlock-node.claimed .unlock-medallion {
            filter: none; background: transparent; box-shadow: none; opacity: 1;
        }
        .unlock-node:active .unlock-medallion { transform: translateX(-50%) translateY(3px); }
        .unlock-status-dot {
            position: absolute; right: 18px; top: -42px; min-width: 18px; height: 18px; border-radius: 999px; display: none;
            align-items: center; justify-content: center; border: 2px solid #FFFFFF; font-size: 11px; font-weight: 900; color: #FFFFFF;
        }
        .unlock-node.unlocked-unclaimed .unlock-status-dot { display: flex; background: #F59E0B; animation: statusBlink 1s infinite; }
        .unlock-node.claimed .unlock-status-dot { display: flex; background: #16A34A; animation: none; }
        .unlock-label { position: absolute; top: 35px; left: 50%; transform: translateX(-50%); white-space: nowrap; font-size: .92em; font-weight: 900; color: #64748B; line-height: 1.15; }
        .unlock-node.unlocked-unclaimed .unlock-label { color: #B45309; text-shadow: 0 1px 0 #FFF7ED; }
        .unlock-node.claimed .unlock-label { color: #15803D; text-shadow: 0 1px 0 #F0FDF4; }
        @keyframes statusBlink { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.16); } }
        .bottom-tools { display: flex; justify-content: center; gap: 15px; flex-wrap: wrap; }

        body.teacher-studio-open {
            padding: 0; background: #F8FAFC; background-image: none; align-items: stretch;
            overflow-y: auto; touch-action: pan-y;
        }
        body.teacher-studio-open > .header,
        body.teacher-studio-open > .control-panel,
        body.teacher-studio-open > .garden-view-nav,
        body.teacher-studio-open > .grid,
        body.teacher-studio-open > .footer,
        body.teacher-studio-open > #cloud-status,
        body.teacher-studio-open > #mode-switcher,
        body.teacher-studio-open > #weather-event-float,
        body.teacher-studio-open > #undo-float,
        body.teacher-studio-open > #teacher-studio-entry,
        body.teacher-studio-open > #wand-banner,
        body.teacher-studio-open > #noise-panel {
            display: none !important;
        }
        .teacher-studio {
            display: none; position: fixed; inset: 0; z-index: 2500; overflow: auto;
            background: #F8FAFC; color: #1F2937;
        }
        body.teacher-studio-open .teacher-studio {
            display: block; position: static; min-height: 100vh; width: 100%;
            overflow: visible; touch-action: pan-y;
        }
        .studio-shell { min-height: 100%; display: grid; grid-template-rows: auto 1fr; }
        .studio-topbar {
            display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 18px 24px;
            background: #FFFFFF; border-bottom: 1px solid #E2E8F0; position: sticky; top: 0; z-index: 3;
        }
        .studio-kicker { color: #047857; font-weight: 900; font-size: .92em; }
        .studio-topbar h2 { margin: 2px 0 0; color: #111827; font-size: 2em; letter-spacing: 0; }
        .studio-top-actions { display: flex; align-items: center; justify-content: flex-end; gap: 10px; flex-wrap: wrap; }
        .studio-save-status {
            background: #F0FDF4; border: 1px solid #BBF7D0; color: #047857; border-radius: 999px;
            padding: 7px 12px; font-weight: 900; font-size: .92em;
        }
        .studio-save-status.is-clickable { cursor: pointer; text-decoration: underline; text-decoration-style: dotted; text-underline-offset: 3px; }
        .studio-primary-btn, .studio-secondary-btn, .studio-danger-btn, .studio-small-btn {
            border-radius: 10px; padding: 9px 13px; font-family: inherit; font-weight: 900; cursor: pointer;
            border: 1px solid transparent; white-space: nowrap;
        }
        .studio-primary-btn { background: #047857; color: #FFFFFF; border-color: #047857; }
        .studio-secondary-btn { background: #FFFFFF; color: #334155; border-color: #CBD5E1; }
        .studio-danger-btn { background: #FFF1F2; color: #BE123C; border-color: #FDA4AF; }
        .studio-small-btn { background: #F8FAFC; color: #334155; border-color: #CBD5E1; padding: 6px 10px; }
        .studio-body { display: grid; grid-template-columns: 188px minmax(0, 1fr); min-width: 0; width: 100%; min-height: calc(100vh - 76px); }
        .studio-sidebar {
            position: sticky; top: 75px; align-self: start; height: calc(100vh - 75px); overflow-y: auto;
            background: #FFFFFF; border-right: 1px solid #E2E8F0; padding: 12px 10px;
        }
        .studio-nav-group { display: grid; gap: 3px; padding: 10px 0 12px; border-bottom: 1px solid #E2E8F0; }
        .studio-nav-group:last-child { border-bottom: 0; }
        .studio-nav-primary { padding-top: 2px; }
        .studio-nav-title {
            color: #64748B; font-weight: 900; font-size: .78em; line-height: 1.2;
            padding: 0 8px 5px; letter-spacing: 0; display: flex; align-items: center; gap: 6px;
        }
        .studio-tab {
            position: relative; width: 100%; border: 1px solid transparent; background: transparent; color: #334155; border-radius: 8px;
            padding: 8px 10px 8px 16px; font-family: inherit; font-size: .95em; line-height: 1.2; font-weight: 900; cursor: pointer; text-align: left;
            min-height: 36px;
        }
        .studio-tab:hover { background: #F8FAFC; border-color: #E2E8F0; }
        .studio-tab.active {
            background: #F0FDF4; border-color: #BBF7D0; color: #065F46; box-shadow: inset 3px 0 0 #22C55E;
        }
        .studio-panel { min-width: 0; max-width: 100%; padding: 22px 24px 36px; width: min(1500px, 100%); margin: 0 auto; }
        .studio-page-tabs {
            width: fit-content; max-width: 100%; display: flex; align-items: center; gap: 4px; flex-wrap: wrap;
            margin: 0 0 16px; padding: 4px; border: 1px solid #E2E8F0; border-radius: 10px; background: #F8FAFC;
        }
        .studio-page-tabs button {
            min-height: 34px; border: 0; border-radius: 7px; padding: 7px 14px; background: transparent; color: #64748B;
            font-family: inherit; font-size: .92em; font-weight: 900; cursor: pointer;
        }
        .studio-page-tabs button:hover { color: #334155; background: #F1F5F9; }
        .studio-page-tabs button.active { background: #FFFFFF; color: #047857; box-shadow: 0 1px 4px rgba(15,23,42,.1); }
        .studio-page-tabs button:focus-visible { outline: 2px solid #22C55E; outline-offset: 1px; }
        .studio-section {
            background: #FFFFFF; border: 1px solid #E2E8F0; border-radius: 8px; padding: 18px;
            box-shadow: 0 10px 28px rgba(15,23,42,.06); margin-bottom: 16px;
        }
        .studio-section-head { display: flex; justify-content: space-between; gap: 16px; align-items: flex-start; }
        .studio-head-actions { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; justify-content: flex-end; }
        .studio-inline-status {
            display: inline-flex; align-items: center; min-height: 34px; margin-top: 12px; padding: 6px 12px;
            border: 1px solid #BBF7D0; border-radius: 999px; background: #F0FDF4; color: #047857; font-weight: 900;
        }
        .studio-search-input {
            width: min(360px, 44vw); border: 1px solid #CBD5E1; border-radius: 8px; padding: 9px 11px;
            font-family: inherit; font-weight: 800; color: #1F2937; background: #FFFFFF;
        }
        .studio-add-student-inline {
            display: grid; grid-template-columns: minmax(150px, 1.25fr) minmax(96px, .7fr) minmax(120px, .9fr) minmax(120px, .9fr) auto;
            gap: 10px; align-items: end; margin: 14px 0 16px; padding: 12px;
            border: 1px solid #D1FAE5; border-radius: 8px; background: #F0FDF4;
        }
        .studio-add-student-inline .studio-field { gap: 4px; font-size: .9em; }
        .studio-add-student-inline .studio-field input,
        .studio-add-student-inline .studio-field select { min-height: 38px; padding: 8px 9px; }
        .studio-add-student-inline button { min-height: 38px; white-space: nowrap; }
        .studio-add-student-form { display: grid; gap: 14px; }
        .studio-section h3 { margin: 0 0 12px; color: #111827; font-size: 1.25em; letter-spacing: 0; }
        .studio-subpanel {
            background: #F8FAFC; border: 1px solid #E2E8F0; border-radius: 8px; padding: 14px;
        }
        .studio-subpanel h3 { margin: 0 0 10px; color: #111827; font-size: 1.05em; letter-spacing: 0; }
        .studio-muted { color: #64748B; font-weight: 800; line-height: 1.55; }
        .studio-grid-2 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
        .studio-grid-3 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
        .studio-field { display: grid; gap: 6px; font-weight: 900; color: #334155; }
        .studio-field input, .studio-field select, .studio-field textarea {
            width: 100%; border: 1px solid #CBD5E1; border-radius: 8px; padding: 9px 10px; color: #1F2937;
            background: #FFFFFF; font-family: inherit; font-weight: 800;
        }
        .studio-field textarea { min-height: 84px; resize: vertical; line-height: 1.5; }
        .studio-table-wrap { overflow-x: auto; border: 1px solid #E2E8F0; border-radius: 8px; }
        .studio-table { width: 100%; border-collapse: collapse; min-width: 860px; background: #FFFFFF; }
        .studio-table th, .studio-table td { border-bottom: 1px solid #E2E8F0; padding: 9px; text-align: left; vertical-align: middle; font-size: .96em; white-space: nowrap; }
        .studio-table th { background: #F8FAFC; color: #475569; font-size: .96em; }
        .studio-table input, .studio-table select {
            width: 100%; border: 1px solid #CBD5E1; border-radius: 7px; padding: 6px 7px; font-family: inherit; font-size: 1em; font-weight: 800;
        }
        .studio-table input:disabled, .studio-table select:disabled {
            border-color: transparent; background: transparent; color: #334155; opacity: 1; appearance: none;
        }
        .studio-student-table { min-width: 1030px; table-layout: fixed; }
        .studio-student-table .col-index { width: 42px; }
        .studio-student-table .col-name { width: 120px; }
        .studio-student-table .col-gender { width: 76px; }
        .studio-student-table .col-group { width: 112px; }
        .studio-student-table .col-plant { width: 104px; }
        .studio-student-table .col-score { width: 74px; }
        .studio-student-table .col-total { width: 70px; }
        .studio-student-table .col-reminder { width: 150px; }
        .studio-student-table .col-action { width: 108px; }
        .studio-compact-input { min-width: 0; }
        .studio-reminder-cell { color: #92400E; white-space: normal; line-height: 1.35; }
        .studio-table input[type="checkbox"] { width: 18px; height: 18px; accent-color: #047857; }
        .studio-status-dot {
            display: inline-flex; align-items: center; justify-content: center; min-height: 28px; padding: 4px 8px;
            border-radius: 999px; border: 1px solid #E2E8F0; background: #F8FAFC; color: #64748B;
            font-size: .82em; line-height: 1.1; font-weight: 900; white-space: nowrap;
        }
        .studio-status-dot.ok { border-color: #BBF7D0; background: #F0FDF4; color: #047857; }
        .studio-status-dot.off { border-color: #CBD5E1; background: #F1F5F9; color: #64748B; }
        .studio-check-field {
            display: flex; gap: 8px; align-items: center; min-height: 44px; padding: 10px 12px;
            border: 1px solid #D1FAE5; border-radius: 8px; background: #F0FDF4; color: #065F46; font-weight: 900;
        }
        .studio-check-field input { width: 18px; height: 18px; accent-color: #047857; flex: 0 0 auto; }
        .studio-segment-field { max-width: none; }
        .studio-segment-control {
            display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 4px; padding: 4px;
            border: 1px solid #D1FAE5; border-radius: 8px; background: #F0FDF4;
        }
        .studio-segment-option {
            display: flex; align-items: center; justify-content: center; min-height: 38px; padding: 7px 10px;
            border: 1px solid transparent; border-radius: 7px; color: #047857; font-weight: 900; cursor: pointer;
        }
        .studio-segment-option:hover { background: rgba(255,255,255,.7); }
        .studio-segment-option.active { background: #FFFFFF; border-color: #86EFAC; color: #065F46; box-shadow: 0 2px 8px rgba(15,23,42,.06); }
        .studio-segment-option input { position: absolute; opacity: 0; pointer-events: none; }
        .studio-stage-name-grid { display: grid; grid-template-columns: repeat(2, minmax(120px, 1fr)); gap: 6px; min-width: 260px; }
        .studio-growth-table { min-width: 660px; }
        .studio-plant-catalog-table { min-width: 920px; table-layout: fixed; }
        .studio-plant-catalog-table th:first-child, .studio-plant-catalog-table td:first-child { width: 64px; text-align: center; }
        .studio-plant-catalog-table th:nth-child(2), .studio-plant-catalog-table td:nth-child(2) { width: 220px; }
        .studio-plant-category-row td { width:auto !important; padding:10px 12px; text-align:left !important; background:#FFFBEB; border-top:2px solid #FDE68A; }
        .studio-plant-category-row strong { color:#92400E; font-size:1em; }
        .studio-plant-category-row span { margin-left:8px; color:#A16207; font-size:.84em; font-weight:800; }
        .studio-plant-atlas-name { display: flex; align-items: center; gap: 10px; min-width: 0; }
        .studio-plant-atlas-name > span { font-size: 1.8em; line-height: 1; flex: 0 0 auto; }
        .studio-plant-atlas-name > .studio-plant-atlas-bloom { width: 54px; height: 54px; display: block; filter: drop-shadow(0 3px 4px rgba(15,23,42,.12)); }
        .studio-plant-atlas-bloom svg { width: 100%; height: 100%; display: block; }
        .studio-plant-atlas-name strong { display: block; color: #111827; font-size: 1.05em; line-height: 1.25; }
        .studio-plant-atlas-name em { display: block; color: #64748B; font-size: .88em; font-style: normal; white-space: normal; line-height: 1.35; margin-top: 3px; }
        .studio-plant-stage-grid { display: grid; grid-template-columns: repeat(4, minmax(120px, 1fr)); gap: 10px; min-width: 0; }
        .studio-plant-stage-card {
            min-height: 116px; border: 1px solid #E2E8F0; border-radius: 8px; background: #F8FAFC;
            padding: 10px; text-align: center; display: grid; justify-items: center; align-content: start; gap: 4px;
        }
        .studio-stage-config-row { background: #F0FDF4; }
        .studio-stage-config-row td { border-bottom-color: #BBF7D0; }
        .studio-stage-config-row td:nth-child(2) strong { display: block; color: #065F46; }
        .studio-stage-config-row td:nth-child(2) em { display: block; color: #047857; font-style: normal; font-size: .86em; margin-top: 3px; }
        .studio-stage-config-grid { display: grid; grid-template-columns: repeat(4, minmax(120px, 1fr)); gap: 10px; min-width: 0; }
        .studio-stage-config-card {
            border: 1px solid #BBF7D0; border-radius: 8px; background: #FFFFFF; padding: 10px; display: grid; gap: 6px;
            align-content: start;
        }
        .studio-stage-config-card > strong { color: #065F46; line-height: 1.25; font-size: 1.05em; text-align: center; }
        .studio-stage-config-card label {
            width: 100%; display: grid; gap: 3px; color: #64748B; font-size: .78em; line-height: 1.2; font-weight: 900; text-align: left;
        }
        .studio-stage-config-card input {
            min-width: 0; width: 100%; border: 1px solid #CBD5E1; border-radius: 7px; padding: 5px 6px;
            background: #FFFFFF; color: #1F2937; font-family: inherit; font-size: 1.08em; font-weight: 900;
        }
        .studio-stage-config-card input:disabled { background: #F1F5F9; color: #64748B; }
        .studio-stage-config-card span { color: #047857; font-size: .82em; font-weight: 900; text-align: center; }
        .studio-plant-stage-svg { width: 70px; height: 70px; filter: drop-shadow(0 4px 5px rgba(15,23,42,.12)); }
        .studio-plant-stage-svg svg { width: 100%; height: 100%; display: block; }
        .studio-plant-stage-card strong { color: #111827; font-size: .96em; line-height: 1.25; white-space: normal; }
        .studio-plant-stage-card span { color: #64748B; font-size: .82em; font-weight: 900; }
        .studio-weather-table { min-width: 1080px; table-layout: fixed; }
        .studio-weather-table th:nth-child(1), .studio-weather-table td:nth-child(1) { width: 82px; }
        .studio-weather-table th:nth-child(2), .studio-weather-table td:nth-child(2) { width: 150px; }
        .studio-weather-table th:nth-child(5), .studio-weather-table td:nth-child(5) { width: 86px; }
        .studio-weather-config {
            margin-top: 12px; display: grid; grid-template-columns: minmax(180px, .8fr) 1fr 1fr; gap: 12px; align-items: stretch;
        }
        .studio-weather-status {
            border: 1px solid #E2E8F0; background: #F8FAFC; border-radius: 8px; padding: 10px 12px;
        }
        .studio-weather-current-card strong { display: block; color: #166534; font-size: 1.08em; }
        .studio-weather-current-card span { display: block; color: #047857; margin-top: 3px; font-size: .92em; }
        .studio-weather-empty { color: #64748B; font-weight: 900; margin-top: 4px; }
        .studio-playbook-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 16px; align-items: stretch; }
        .studio-playbook-editor textarea {
            min-height: 620px; line-height: 1.65; font-size: 1em; font-weight: 800;
            white-space: pre-wrap; overflow-wrap: break-word;
        }
        .studio-playbook-preview-wrap { min-width: 0; }
        .studio-playbook-preview {
            min-height: 620px; max-height: 72vh; overflow: auto; border: 1px solid #CBD5E1; border-radius: 8px;
            padding: 18px; background: #FFFFFF; color: #334155; line-height: 1.62; font-weight: 800;
        }
        .studio-playbook-preview-full { min-height: 0; max-height: none; padding: 22px 26px; }
        .studio-playbook-preview h1, .studio-playbook-preview h2, .studio-playbook-preview h3 {
            margin: 0 0 10px; color: #111827; line-height: 1.25;
        }
        .studio-playbook-preview h1 { font-size: 1.55em; }
        .studio-playbook-preview h2 { font-size: 1.25em; margin-top: 20px; }
        .studio-playbook-preview h3 { font-size: 1.08em; margin-top: 16px; }
        .studio-playbook-preview p { margin: 0 0 12px; }
        .studio-playbook-preview ul { margin: 0 0 14px; padding-left: 1.25em; display: grid; gap: 6px; }
        .studio-playbook-preview blockquote {
            margin: 0 0 12px; padding: 10px 12px; border-left: 4px solid #22C55E;
            background: #F0FDF4; color: #065F46; border-radius: 0 8px 8px 0;
        }
        .studio-playbook-preview strong { color: #111827; }
        .studio-observe-grid { display: grid; grid-template-columns: repeat(4, minmax(140px, 1fr)); gap: 12px; }
        .studio-observe-metric {
            border: 1px solid #D1FAE5; border-radius: 8px; padding: 14px; background: #F0FDF4;
        }
        .studio-observe-metric span { display: block; color: #047857; font-weight: 900; }
        .studio-observe-metric strong { display: block; margin-top: 4px; font-size: 2em; color: #064E3B; line-height: 1; }
        .studio-observe-tags { display: flex; flex-wrap: wrap; gap: 6px; }
        .studio-observe-tag {
            display: inline-flex; align-items: center; min-height: 24px; border-radius: 999px; padding: 3px 8px;
            font-size: .86em; font-weight: 900; border: 1px solid #E2E8F0; background: #F8FAFC; color: #334155;
        }
        .studio-observe-tag.ok { border-color: #BBF7D0; background: #F0FDF4; color: #047857; }
        .studio-observe-tag.warn { border-color: #FDE68A; background: #FFFBEB; color: #92400E; }
        .studio-observe-tag.danger { border-color: #FDA4AF; background: #FFF1F2; color: #BE123C; }
        .studio-observe-tag.quiet { border-color: #CBD5E1; background: #F8FAFC; color: #64748B; }
        .studio-observe-table { min-width: 1040px; }
        .studio-observe-card-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 12px; }
        .studio-observe-card { border: 1px solid #E2E8F0; border-radius: 8px; padding: 12px; background: #FFFFFF; }
        .studio-observe-card-head { display: flex; justify-content: space-between; gap: 10px; align-items: center; margin-bottom: 8px; color: #111827; }
        .studio-observe-card-head span { color: #D97706; font-weight: 900; }
        .studio-timeline-list { display: grid; gap: 8px; }
        .studio-timeline-item { color: #334155; font-weight: 800; line-height: 1.45; }
        .studio-timeline-item span { color: #64748B; font-size: .9em; margin-right: 8px; }
        .studio-score-log {
            display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 12px; align-items: center;
            border: 1px solid #E2E8F0; border-radius: 8px; padding: 11px 12px; background: #FFFFFF;
        }
        .studio-score-log.undone { background: #F8FAFC; border-color: #CBD5E1; opacity: .9; }
        .studio-score-log-main { min-width:0; color: #334155; font-weight: 800; line-height: 1.45; }
        .studio-score-summary { display:grid; grid-template-columns: 64px minmax(86px, max-content) minmax(0, 1fr) auto; gap: 12px; align-items:center; min-width:0; }
        .studio-score-log-time { color: #64748B; font-size: .9em; white-space: nowrap; }
        .studio-score-target { color:#111827; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
        .studio-score-action { font-style: normal; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
        .studio-score-meta { display:flex; align-items:center; justify-content:flex-end; gap:6px; min-width:max-content; }
        .studio-score-remark { margin-top: 5px; color: #D97706; font-size: .92em; overflow-wrap:anywhere; }
        .studio-score-status { display:inline-flex; align-items:center; border-radius:999px; padding:2px 7px; background:#E2E8F0; color:#475569; font-size:.82em; font-weight:900; white-space:nowrap; }
        .studio-score-impact { display:inline-flex; color:#64748B; font-size:.88em; white-space:nowrap; }
        .studio-score-detail-list { display:grid; gap:3px; margin-top:6px; color:#64748B; font-size:.86em; }
        .studio-score-detail-list div { padding:1px 0; }
        .studio-score-detail-list strong { color:#334155; margin-right:4px; }
        .studio-score-log-actions { display: flex; gap: 8px; flex-wrap: wrap; justify-content: flex-end; }
        .studio-score-toolbar { display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap; margin:16px 0 12px; }
        .studio-score-toolbar .studio-pill-list { margin:0; flex:1 1 520px; }
        .studio-score-toolbar .studio-search-input { width:min(420px, 100%); flex:0 1 420px; }
        .studio-growth-record-section { --growth-record-time-column:88px; --growth-record-target-column:58px; --growth-record-column-gap:9px; position:relative; min-width:0; }
        .studio-growth-record-head { display:flex; align-items:center; gap:12px; flex-wrap:wrap; }
        .studio-growth-record-head h3 { margin:0; color:#0F172A; }
        .studio-growth-record-range-tabs { margin-left:2px; }
        .studio-growth-record-head-actions { margin-left:auto; display:flex; align-items:center; justify-content:flex-end; gap:8px; min-width:min(440px, 100%); }
        .studio-growth-record-head-actions .studio-search-input { width:min(310px, 42vw); }
        .studio-growth-record-head-actions .studio-secondary-btn.active { border-color:#34D399; background:#ECFDF5; color:#047857; }
        .studio-growth-record-page-menu > summary, .studio-growth-record-action-menu > summary {
            min-width:34px; min-height:34px; border:1px solid #CBD5E1; border-radius:9px; background:#FFFFFF; color:#475569;
            padding:4px 8px; font-family:inherit; font-weight:900; letter-spacing:.12em; cursor:pointer;
        }
        .studio-growth-record-page-menu .studio-seat-menu-popover { min-width:124px; }
        .studio-growth-record-domain-strip {
            display:flex; align-items:stretch; gap:7px; overflow-x:auto; margin:14px 0 10px; padding:1px 1px 4px;
            scrollbar-width:thin;
        }
        .studio-growth-record-domain-all, .studio-growth-record-unclassified {
            flex:0 0 auto; min-height:52px; border:1px solid #CBD5E1; border-radius:10px; background:#FFFFFF; color:#64748B;
            padding:8px 11px; font-family:inherit; font-weight:900; white-space:nowrap; cursor:pointer;
        }
        .studio-growth-record-domain-all.active { border-color:#34D399; background:#ECFDF5; color:#047857; }
        .studio-growth-record-unclassified { border-style:dashed; }
        .studio-growth-record-unclassified.active { border-color:#F59E0B; background:#FFF7ED; color:#B45309; }
        .studio-growth-record-domain-card {
            --growth-domain-color:#64748B; --growth-domain-soft:#F8FAFC;
            flex:1 0 126px; min-width:126px; min-height:58px; display:grid; grid-template-columns:minmax(0,1fr) auto; align-content:center; gap:4px 8px;
            border:1px solid #D7E2EC; border-left:4px solid var(--growth-domain-color); border-radius:10px; background:#FFFFFF;
            padding:8px 9px; text-align:left; font-family:inherit; cursor:pointer;
        }
        .studio-growth-record-domain-card strong { min-width:0; color:#0F172A; font-size:1.06em; line-height:1.15; white-space:nowrap; }
        .studio-growth-record-domain-card span { color:var(--growth-domain-color); font-size:.76em; font-weight:900; white-space:nowrap; }
        .studio-growth-record-domain-card em { grid-column:1 / -1; color:var(--growth-domain-color); font-size:.7em; font-style:normal; font-weight:900; }
        .studio-growth-record-domain-card.active { border-color:var(--growth-domain-color); background:var(--growth-domain-soft); box-shadow:0 0 0 2px color-mix(in srgb, var(--growth-domain-color) 12%, transparent); }
        .studio-growth-record-domain-card.domain-learning, .studio-growth-record-event.domain-learning, .studio-growth-record-row.domain-learning { --growth-domain-color:#1D4ED8; --growth-domain-soft:#EFF6FF; }
        .studio-growth-record-domain-card.domain-selfDiscipline, .studio-growth-record-event.domain-selfDiscipline, .studio-growth-record-row.domain-selfDiscipline { --growth-domain-color:#6D28D9; --growth-domain-soft:#F5F3FF; }
        .studio-growth-record-domain-card.domain-homework, .studio-growth-record-event.domain-homework, .studio-growth-record-row.domain-homework { --growth-domain-color:#B45309; --growth-domain-soft:#FFFBEB; }
        .studio-growth-record-domain-card.domain-responsibility, .studio-growth-record-event.domain-responsibility, .studio-growth-record-row.domain-responsibility { --growth-domain-color:#047857; --growth-domain-soft:#ECFDF5; }
        .studio-growth-record-domain-card.domain-cooperation, .studio-growth-record-event.domain-cooperation, .studio-growth-record-row.domain-cooperation { --growth-domain-color:#BE185D; --growth-domain-soft:#FDF2F8; }
        .studio-growth-record-event.domain-unclassified, .studio-growth-record-row.domain-unclassified { --growth-domain-color:#64748B; --growth-domain-soft:#F8FAFC; }
        .studio-growth-record-filter-row { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:10px; }
        .studio-growth-record-filter-row > span { color:#94A3B8; font-size:.78em; font-weight:900; white-space:nowrap; }
        .studio-growth-record-signal-tabs { display:flex; align-items:center; gap:4px; flex-wrap:wrap; }
        .studio-growth-record-signal-tabs button {
            border:1px solid transparent; border-radius:999px; background:transparent; color:#64748B; padding:6px 10px;
            font-family:inherit; font-size:.82em; font-weight:900; cursor:pointer;
        }
        .studio-growth-record-signal-tabs button:hover, .studio-growth-record-signal-tabs button.active { border-color:#CBD5E1; background:#F8FAFC; color:#0F172A; }
        .studio-growth-record-history-label { display:inline-flex; border-radius:999px; background:#F1F5F9; color:#64748B; padding:6px 10px; font-size:.82em; font-weight:900; }
        .studio-growth-record-groups { display:grid; gap:16px; }
        .studio-growth-record-day { display:grid; gap:2px; }
        .studio-growth-record-day h4 { margin:0; padding:0 4px 3px; color:#64748B; font-size:.76em; font-weight:900; }
        .studio-growth-record-list { display:grid; gap:0; }
        .studio-growth-record-event {
            --growth-domain-color:#64748B; --growth-domain-soft:#F8FAFC;
            min-width:0; overflow:visible; border:0; border-bottom:1px solid #E2E8F0; border-radius:0; background:transparent;
        }
        .studio-growth-record-event-head {
            min-width:0; min-height:44px; box-sizing:border-box; display:grid;
            grid-template-columns:var(--growth-record-time-column) var(--growth-record-target-column) minmax(0,1fr) auto 24px;
            align-items:center; gap:var(--growth-record-column-gap);
            padding:5px 4px; cursor:pointer;
        }
        .studio-growth-record-event-head:hover { background:color-mix(in srgb, var(--growth-domain-soft) 48%, #FFFFFF); }
        .studio-growth-record-event-head:focus-visible { outline:2px solid color-mix(in srgb, var(--growth-domain-color) 45%, transparent); outline-offset:-2px; }
        .studio-growth-record-event-head > time { color:#94A3B8; font-size:.78em; font-weight:900; white-space:nowrap; }
        .studio-growth-record-event-participants { overflow:hidden; color:#64748B; font-size:.78em; font-weight:900; text-overflow:ellipsis; white-space:nowrap; }
        .studio-growth-record-event-main { min-width:0; display:flex; align-items:center; gap:10px; }
        .studio-growth-record-event-title { width:100%; max-width:100%; min-width:0; display:flex; align-items:center; gap:7px; }
        .studio-growth-record-event-title > strong { flex:1 1 auto; min-width:0; overflow:hidden; color:#334155; font-size:.86em; font-weight:900; text-overflow:ellipsis; white-space:nowrap; }
        .studio-growth-record-event-title > strong.is-support { color:#B45309; }
        .studio-growth-record-event-title > strong.is-repair { color:#047857; }
        .studio-growth-record-event-main > div { flex:0 0 auto; display:flex; align-items:center; gap:5px; }
        .studio-growth-record-behavior-icon { width:22px; height:22px; flex:0 0 22px; display:grid; place-items:center; }
        .studio-growth-record-behavior-icon .behavior-icon-svg { width:100%; height:100%; }
        .studio-growth-record-behavior-icon .growth-badge-icon { width:100%; height:100%; display:block; }
        .studio-growth-record-behavior-icon.is-homework { color:#B45309; }
        .studio-growth-record-event-signal { border-radius:999px; padding:2px 7px; font-size:.68em; font-weight:900; white-space:nowrap; }
        .studio-growth-record-event-signal.positive { background:#EFF6FF; color:#1D4ED8; }
        .studio-growth-record-event-signal.support { border-radius:0; background:transparent; color:#B45309; padding:0; }
        .studio-growth-record-event-signal.repair { border-radius:0; background:transparent; color:#047857; padding:0; }
        .studio-growth-record-event-signal.pending { border-radius:0; background:transparent; color:#64748B; padding:0; }
        .studio-growth-record-event-signal.unclassified, .studio-growth-record-event-signal.undone { background:#F1F5F9; color:#64748B; }
        .studio-growth-record-event-lifecycle { min-width:0; display:inline-flex; align-items:center; gap:4px; white-space:nowrap; }
        .studio-growth-record-event-repeat { color:#B45309; font-size:.66em; font-weight:900; white-space:nowrap; }
        .studio-growth-record-event-tools { display:flex; align-items:center; justify-content:flex-end; gap:8px; white-space:nowrap; }
        .studio-growth-record-event-remark-button {
            border:0; border-radius:999px; background:var(--growth-domain-soft); color:var(--growth-domain-color); padding:4px 8px;
            font-family:inherit; font-size:.72em; font-weight:900; cursor:pointer;
        }
        .studio-growth-record-event-remark-button:hover { box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--growth-domain-color) 24%, transparent); }
        .studio-growth-record-event-chevron { color:#94A3B8; font-size:1em; font-weight:900; transform:rotate(-90deg); transition:transform .14s ease; }
        .studio-growth-record-event.expanded .studio-growth-record-event-chevron { transform:rotate(0); }
        .studio-growth-record-event.expanded .studio-growth-record-event-head { background:color-mix(in srgb, var(--growth-domain-soft) 28%, transparent); }
        .studio-growth-record-event.single.selected { background:var(--growth-domain-soft); }
        .studio-growth-record-event.single.editing { background:color-mix(in srgb, var(--growth-domain-soft) 52%, #FFFFFF); box-shadow:inset 2px 0 var(--growth-domain-color); }
        .studio-growth-record-event-check { width:16px; height:16px; margin:0 0 0 2px; accent-color:var(--growth-domain-color); cursor:pointer; }
        .studio-growth-record-event-head:has(.studio-growth-record-event-check) {
            grid-template-columns:20px var(--growth-record-time-column) var(--growth-record-target-column) minmax(0,1fr) auto 24px;
        }
        .studio-growth-record-event-remark-row {
            min-width:0; display:grid; grid-template-columns:auto minmax(120px,1fr) auto; align-items:center; gap:9px;
            border-top:1px solid #EEF2F7; background:color-mix(in srgb, var(--growth-domain-soft) 54%, #FFFFFF); padding:7px 38px 7px 102px;
        }
        .studio-growth-record-event-remark-row > span:first-child { color:var(--growth-domain-color); font-size:.76em; font-weight:900; white-space:nowrap; }
        .studio-growth-record-event-remark-row button { border:0; background:transparent; color:#64748B; padding:4px 6px; font-family:inherit; font-size:.76em; font-weight:900; cursor:pointer; }
        .studio-growth-record-event-remark-editor {
            min-width:0; overflow-x:auto; border:0; border-bottom:1px solid color-mix(in srgb, var(--growth-domain-color) 30%, #CBD5E1); outline:0;
            background:transparent; color:#0F172A; caret-color:var(--growth-domain-color); font-size:.84em; font-weight:800; white-space:nowrap !important; scrollbar-width:none;
        }
        .studio-growth-record-event-remark-editor::-webkit-scrollbar { display:none; }
        .studio-growth-record-event-remark-editor:empty::before { content:attr(data-placeholder); color:#94A3B8; }
        .studio-growth-record-event-details {
            border-top:1px solid #EEF2F7;
            padding:0 4px 4px calc(var(--growth-record-time-column) + var(--growth-record-column-gap));
        }
        .studio-growth-record-single-row {
            min-width:0; min-height:42px; box-sizing:border-box; display:grid;
            grid-template-columns:var(--growth-record-time-column) var(--growth-record-target-column) minmax(0,1fr) 34px;
            align-items:center; gap:var(--growth-record-column-gap);
            padding:4px; cursor:text;
        }
        .studio-growth-record-single-row:hover { background:color-mix(in srgb, var(--growth-domain-soft) 48%, #FFFFFF); }
        .studio-growth-record-single-row.batch {
            grid-template-columns:20px var(--growth-record-time-column) var(--growth-record-target-column) minmax(0,1fr) 34px;
        }
        .studio-growth-record-single-row > time { color:#94A3B8; font-size:.78em; font-weight:900; white-space:nowrap; }
        .studio-growth-record-row {
            --growth-domain-color:#64748B; --growth-domain-soft:#F8FAFC;
            min-width:0; min-height:40px; box-sizing:border-box; display:grid;
            grid-template-columns:var(--growth-record-target-column) minmax(0,1fr) 34px;
            align-items:center; gap:var(--growth-record-column-gap);
            border-top:1px solid #F1F5F9; background:transparent; padding:5px 4px; color:#334155; cursor:text;
        }
        .studio-growth-record-event-details > .studio-growth-record-row:first-child { border-top:0; }
        .studio-growth-record-row:hover { background:color-mix(in srgb, var(--growth-domain-soft) 48%, #FFFFFF); }
        .studio-growth-record-row.batch { grid-template-columns:20px var(--growth-record-target-column) minmax(0,1fr) 34px; }
        .studio-growth-record-row.selected { background:var(--growth-domain-soft); }
        .studio-growth-record-row.editing { background:color-mix(in srgb, var(--growth-domain-soft) 64%, #FFFFFF); }
        .studio-growth-record-row.undone { opacity:.72; cursor:default; background:#F8FAFC; }
        .studio-growth-record-check { width:16px; height:16px; margin:0; accent-color:var(--growth-domain-color); cursor:pointer; }
        .studio-growth-record-target { max-width:160px; overflow:hidden; color:#0F172A; font-size:.88em; text-overflow:ellipsis; white-space:nowrap; }
        .studio-growth-record-line { min-width:0; display:flex; align-items:center; gap:6px; overflow:hidden; white-space:nowrap; }
        .studio-growth-record-line > .studio-growth-record-behavior-icon { width:20px; height:20px; flex-basis:20px; }
        .studio-growth-record-action { flex:0 1 auto; min-width:28px; overflow:hidden; color:#334155; font-size:.86em; font-weight:900; text-overflow:ellipsis; white-space:nowrap; }
        .studio-growth-record-action.is-support { color:#B45309; }
        .studio-growth-record-action.is-repair { color:#047857; }
        .studio-growth-record-homework-exception { flex:0 0 auto; color:#B45309; font-size:.68em; font-weight:900; white-space:nowrap; }
        .studio-growth-record-signal { flex:0 0 auto; border-radius:999px; padding:2px 6px; font-size:.68em; font-weight:900; white-space:nowrap; }
        .studio-growth-record-signal.positive { background:#EFF6FF; color:#1D4ED8; }
        .studio-growth-record-signal.support { border-radius:0; background:transparent; color:#B45309; padding:0; }
        .studio-growth-record-signal.repair { border-radius:0; background:transparent; color:#047857; padding:0; }
        .studio-growth-record-signal.pending { border-radius:0; background:transparent; color:#64748B; padding:0; }
        .studio-growth-record-signal.unclassified { background:#F1F5F9; color:#64748B; }
        .studio-growth-record-signal.undone { background:#E2E8F0; color:#64748B; }
        .studio-growth-record-lifecycle { flex:0 0 auto; min-width:0; display:inline-flex; align-items:center; gap:4px; }
        .studio-growth-record-lifecycle > time { color:#94A3B8; font-size:.68em; font-weight:900; white-space:nowrap; }
        .studio-growth-record-pair-arrow { flex:0 0 auto; color:#CBD5E1; font-size:.74em; font-weight:900; }
        .studio-growth-record-repeat { flex:0 0 auto; color:#B45309; font-size:.68em; font-weight:900; white-space:nowrap; }
        .studio-growth-record-remark-separator { flex:0 0 auto; color:var(--growth-domain-color); font-weight:900; }
        .studio-growth-record-remark {
            flex:1 1 auto; min-width:0; overflow:hidden; color:var(--growth-domain-color); font-size:.84em; font-weight:900;
            text-overflow:ellipsis; white-space:nowrap;
        }
        .studio-growth-record-row.editing .studio-growth-record-remark { flex:0 1 48%; max-width:48%; }
        .studio-growth-record-remark-editor {
            flex:1 1 50px; min-width:8px; max-width:100%; overflow-x:auto; border:0; outline:0; background:transparent;
            color:var(--growth-domain-color); caret-color:var(--growth-domain-color); font-size:.84em; font-weight:900; white-space:nowrap !important;
            scrollbar-width:none;
        }
        .studio-growth-record-remark-editor::-webkit-scrollbar { display:none; }
        .studio-growth-record-remark-editor:empty::before { content:'\00a0'; }
        .studio-growth-record-action-menu { justify-self:end; }
        .studio-growth-record-action-menu > summary { border-color:transparent; background:transparent; }
        .studio-growth-record-action-menu[open] > summary, .studio-growth-record-action-menu > summary:hover { border-color:#CBD5E1; background:#FFFFFF; }
        .studio-growth-record-menu-spacer { width:34px; }
        .studio-growth-record-detail { grid-column:2 / -1; min-width:0; }
        .studio-growth-record-row.batch .studio-growth-record-detail { grid-column:3 / -1; }
        .studio-growth-record-detail .studio-score-detail-list { margin:2px 0 0; border-top:1px solid #E2E8F0; padding-top:6px; }
        .studio-growth-record-positive-fold {
            width:100%; min-height:36px; display:flex; align-items:center; justify-content:space-between; border:0; border-top:1px solid #EEF2F7;
            background:transparent; color:#64748B; padding:6px 0; font-family:inherit; font-size:.78em; font-weight:900; cursor:pointer;
        }
        .studio-growth-record-positive-fold:hover { color:var(--growth-domain-color); }
        .studio-growth-record-positive-fold span { color:var(--growth-domain-color); }
        .studio-growth-record-positive-fold.compact { justify-content:flex-start; min-height:30px; color:#94A3B8; font-size:.72em; }
        .studio-growth-record-empty { border:1px dashed #CBD5E1; border-radius:9px; background:#F8FAFC; color:#64748B; padding:22px; text-align:center; font-size:.84em; font-weight:900; }
        .studio-growth-record-limit { color:#94A3B8; padding:4px 0; text-align:center; font-size:.74em; font-weight:900; }
        .studio-growth-record-batch-bar {
            position:sticky; bottom:12px; z-index:12; width:max-content; max-width:calc(100% - 24px); display:flex; align-items:center; gap:10px;
            margin:14px auto 0; border:1px solid #A7F3D0; border-radius:999px; background:rgba(255,255,255,.96); color:#334155;
            padding:7px 9px 7px 12px; box-shadow:0 12px 28px rgba(15,23,42,.14); backdrop-filter:blur(8px);
        }
        .studio-growth-record-batch-bar strong { color:#047857; font-size:.84em; }
        .studio-growth-record-batch-bar span { color:#64748B; font-size:.76em; font-weight:900; }
        .studio-growth-record-batch-bar button { border:0; border-radius:999px; background:#F1F5F9; color:#475569; padding:6px 9px; font-family:inherit; font-size:.78em; font-weight:900; cursor:pointer; }
        .studio-student-row.active-profile-row td { background: #ECFDF5; }
        .studio-student-row { cursor: pointer; }
        .studio-student-row input, .studio-student-row select, .studio-student-row button { cursor: auto; }
        .studio-student-card-grid {
            display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 10px; margin-top: 12px;
        }
        .studio-student-card {
            display: grid; gap: 8px; border: 1px solid #D8E1EE; border-radius: 8px;
            background: #FFFFFF; padding: 12px 14px; cursor: pointer; box-shadow: 0 6px 16px rgba(15,23,42,.04);
        }
        .studio-student-card.attention { background: #FFF8FB; border-color: #F5DCE7; }
        .studio-student-card.progress { background: #F6FFF9; border-color: #CDEFD9; }
        .studio-student-card.editing { background: #FFFFFF; }
        .studio-student-card.active-profile-card { border-color: #86EFAC; background: #F0FDF4; }
        .studio-student-card input, .studio-student-card select, .studio-student-card button { cursor: auto; }
        .studio-student-card-head { display: flex; justify-content: space-between; gap: 12px; align-items: flex-start; }
        .studio-student-card-head h4 {
            display: flex; align-items: center; gap: 6px; margin: 0; color: #111827; font-size: 1.22em; line-height: 1.15;
            letter-spacing: 0; word-break: break-word;
        }
        .studio-student-total { display: flex; align-items: baseline; gap: 5px; color: #D97706; white-space: nowrap; font-weight: 900; }
        .studio-student-total strong { font-size: 1.38em; line-height: 1; }
        .studio-student-total span { font-size: .96em; }
        .studio-student-reminder-icon {
            display: inline-grid; place-items: center; flex: 0 0 auto; width: 18px; height: 18px; border-radius: 999px;
            border: 1px solid #FDE68A; background: #FFFBEB; color: #B45309; font-size: .76em; font-weight: 900;
        }
        .studio-student-reminder-icon.low { border-color: #FDE68A; background: #FFFBEB; color: #B45309; }
        .studio-student-reminder-icon.cloud { border-color: #BFDBFE; background: #EFF6FF; color: #1D4ED8; }
        .studio-student-reminder-icon.down { border-color: #FECACA; background: #FFF1F2; color: #BE123C; }
        .studio-student-reminder-icon.up { border-color: #BBF7D0; background: #F0FDF4; color: #047857; }
        .studio-student-meta { display: flex; align-items: center; flex-wrap: wrap; gap: 6px; color: #64748B; font-size: .94em; font-weight: 900; }
        .studio-student-meta span { min-width: 0; overflow-wrap: anywhere; }
        .studio-student-score-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 6px; }
        .studio-student-score-item {
            min-height: 44px; border: 1px solid #E2E8F0; border-radius: 8px; background: #F8FAFC;
            padding: 6px 4px; text-align: center;
        }
        .studio-student-score-item span { display: block; color: #64748B; font-size: .74em; font-weight: 900; }
        .studio-student-score-item strong { display: block; margin-top: 1px; color: #047857; font-size: 1.08em; line-height: 1; }
        .studio-conversation-status-row {
            display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)) auto; gap: 6px; align-items: center;
            border-top: 1px solid #E2E8F0; padding-top: 8px; color: #475569; font-size: .86em; font-weight: 900;
        }
        .studio-conversation-status-row span {
            min-height: 28px; display: inline-flex; align-items: center; justify-content: center;
            border: 0; border-radius: 0; background: transparent; white-space: nowrap; cursor: help;
        }
        .studio-conversation-status-row button {
            width: 30px; height: 30px; border: 1px solid #86EFAC; border-radius: 8px; background: #ECFDF5;
            color: #047857; font-family: inherit; font-weight: 900; cursor: pointer;
        }
        .studio-student-card-actions { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; margin-top: auto; }
        .studio-student-edit-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
        .studio-student-edit-fields .studio-field { gap: 4px; font-size: .88em; }
        .studio-student-edit-fields .studio-field input, .studio-student-edit-fields .studio-field select { padding: 7px 8px; }
        .studio-student-score-edit { display: grid; gap: 4px; color: #64748B; font-size: .78em; font-weight: 900; }
        .studio-student-score-edit input {
            width: 100%; border: 1px solid #CBD5E1; border-radius: 8px; padding: 6px 6px;
            color: #1F2937; background: #FFFFFF; font-family: inherit; font-size: 1em; font-weight: 900;
        }
        .studio-group-card {
            display: grid; gap: 8px; align-content: start; min-height: 170px;
            border: 1px solid #D8E1EE; border-radius: 8px; background: #FFFFFF; padding: 18px 14px 12px;
            box-shadow: 0 6px 16px rgba(15,23,42,.04);
        }
        .studio-group-card.editing { border-color: #BBF7D0; }
        .studio-group-card h4 {
            margin: 0; color: #111827; font-size: 1.22em; line-height: 1.15; letter-spacing: 0; word-break: break-word;
        }
        .studio-group-name-edit { min-width: 0; flex: 1; gap: 4px; margin: 0; }
        .studio-group-name-edit input { padding: 7px 8px; }
        .studio-group-score-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
        .studio-actions { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; margin-top: 12px; }
        .studio-stat-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 12px; margin-bottom: 14px; }
        .studio-stat { border: 1px solid #E2E8F0; border-radius: 8px; padding: 12px; background: #F8FAFC; }
        .studio-stat strong { display: block; font-size: 1.6em; color: #047857; }
        .studio-stat-note { display: block; margin-top: 4px; color: #64748B; font-size: .86em; font-weight: 900; line-height: 1.35; }
        .today-dashboard-page {
            width: min(1400px, 100%); margin: 0 auto; display: grid; gap: 12px;
        }
        .today-dashboard-head {
            min-height: 64px; display: flex; align-items: flex-start; justify-content: space-between; gap: 20px;
            padding: 4px 2px 0;
        }
        .today-dashboard-head h3 { margin: 0; color: #111827; font-size: 28px; line-height: 1.2; font-weight: 700; }
        .today-dashboard-head h3 span { margin-left: 7px; color: #334155; font-size: 18px; font-weight: 600; }
        .today-dashboard-context { margin-top: 7px; color: #64748B; font-size: 14px; line-height: 1.45; font-weight: 500; }
        .today-dashboard-quick-actions { display: flex; align-items: center; justify-content: flex-end; gap: 7px; flex-wrap: wrap; }
        .today-dashboard-quick-actions .studio-secondary-btn { min-height: 38px; padding: 7px 12px; background: #FFFFFF; font-size: 14px; font-weight: 600; }
        .mobile-workbench-week-title { display: none; }
        .workbench-week-preview { min-width: 0; display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: start; gap: 12px; }
        .workbench-week-navigation { min-width: 0; display: grid; grid-template-columns: 24px minmax(0, 1fr) 24px; align-items: stretch; gap: 6px; }
        .workbench-week-switch { width: 24px; min-height: 0; align-self: stretch; display: grid; place-items: center; border: 1px solid #CBD5E1; border-radius: 8px; padding: 0; background: #FFFFFF; color: #64748B; font-family: inherit; font-size: 20px; font-weight: 500; line-height: 1; cursor: pointer; transition: border-color .14s, color .14s, background .14s, box-shadow .14s; }
        .workbench-week-switch:hover, .workbench-week-switch:focus-visible { border-color: #5EEAD4; background: #F0FDFA; color: #0F766E; outline: none; }
        .workbench-week-switch:focus-visible { box-shadow: 0 0 0 3px rgba(20,184,166,.16); }
        .workbench-week-actions { display: flex; align-items: flex-start; }
        .workbench-week-actions .today-dashboard-quick-actions { display: grid; grid-template-columns: repeat(2, max-content); justify-content: start; gap: 7px; }
        .workbench-week-actions .today-dashboard-quick-actions .studio-secondary-btn { width: auto; }
        .workbench-week-grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 8px; }
        .workbench-week-day { min-width: 0; min-height: 142px; display: grid; grid-template-rows: auto minmax(0, 1fr) auto; gap: 7px; border: 1px solid #E2E8F0; border-radius: 8px; padding: 9px; background: #FFFFFF; color: #334155; font-family: inherit; text-align: left; cursor: pointer; transition: border-color .14s, background .14s, box-shadow .14s; }
        .workbench-week-day:hover, .workbench-week-day:focus-visible { border-color: #5EEAD4; background: #F0FDFA; outline: none; }
        .workbench-week-day:focus-visible { box-shadow: 0 0 0 3px rgba(20,184,166,.16); }
        .workbench-week-day.is-today { border-color: #99F6E4; }
        .workbench-week-day.is-selected { border-color: #0F766E; background: #F0FDFA; box-shadow: inset 0 0 0 1px #0F766E; }
        .workbench-week-day-head { display: flex; align-items: baseline; justify-content: space-between; gap: 6px; }
        .workbench-week-day-head b { min-width: 0; overflow: hidden; color: #64748B; font-size: 12px; font-weight: 650; text-overflow: ellipsis; white-space: nowrap; }
        .workbench-week-day-head b em { margin-right: 4px; color: #0F766E; font-style: normal; font-weight: 750; }
        .workbench-week-day-head strong { color: #1E293B; font-size: 19px; line-height: 1; font-variant-numeric: tabular-nums; }
        .workbench-week-day.is-today .workbench-week-day-head b, .workbench-week-day.is-today .workbench-week-day-head strong { color: #0F766E; }
        .workbench-week-schedules { min-width: 0; display: grid; align-content: start; gap: 3px; }
        .workbench-week-schedules i { min-width: 0; overflow: hidden; color: #475569; font-size: 12px; font-style: normal; font-weight: 600; line-height: 1.35; text-overflow: ellipsis; white-space: nowrap; }
        .workbench-week-schedules i.quiet { color: #94A3B8; font-weight: 500; }
        .workbench-week-schedules i.more { color: #64748B; font-size: 11px; }
        .workbench-week-task-count { align-self: end; color: #94A3B8; font-size: 11px; font-weight: 650; }
        .workbench-week-task-count.has-tasks { color: #0F766E; }
        .today-dashboard-body {
            display: grid; grid-template-columns: minmax(0, 1fr) minmax(320px, 360px);
            align-items: start; gap: 16px;
        }
        .today-dashboard-main { min-width: 0; display: grid; gap: 14px; }
        .today-dashboard-side { min-width: 0; display: grid; align-content: start; gap: 9px; }
        .today-dashboard-card {
            min-width: 0; background: #FFFFFF; border: 1px solid #E2E8F0; border-radius: 10px;
            box-shadow: 0 1px 2px rgba(15,23,42,.035);
        }
        .today-dashboard-block { min-width: 0; padding: 18px 20px; }
        .today-dashboard-block-head { min-height: 28px; display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 12px; }
        .today-dashboard-block-head h3 { margin: 0; color: #111827; font-size: 18px; line-height: 1.3; font-weight: 700; }
        .today-dashboard-block-head > span { color: #94A3B8; font-size: 13px; font-weight: 600; }
        .today-dashboard-text-btn {
            border: 0; padding: 3px 0; background: transparent; color: #64748B;
            font-family: inherit; font-size: 13px; font-weight: 600; cursor: pointer;
        }
        .today-dashboard-text-btn:hover { color: #047857; }
        .today-plan-list { min-width: 0; display: grid; }
        .today-plan-row {
            width: 100%; min-width: 0; min-height: 46px; border: 0; border-radius: 7px; background: transparent;
            color: #334155; font-family: inherit; text-align: left;
        }
        .today-plan-row + .today-plan-row { border-top: 1px solid #F1F5F9; border-radius: 0; }
        button.today-plan-row { cursor: pointer; }
        button.today-plan-row:hover, button.today-plan-row:focus-visible { background: #F8FAFC; outline: none; }
        .today-plan-row.no-time { display: flex; align-items: center; gap: 10px; padding: 10px 8px; }
        .today-plan-row.no-time.event { color: #1F2937; font-size: 15px; font-weight: 600; }
        .today-plan-full-title, .today-task-title { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
        .today-plan-row.personal-task { padding-left: 8px; }
        .today-task-check {
            flex: 0 0 auto; width: 18px; height: 18px; border: 1.5px solid #94A3B8; border-radius: 999px;
            padding: 0; background: #FFFFFF; cursor: pointer;
        }
        .today-task-check:hover, .today-task-check:focus-visible { border-color: #10B981; box-shadow: inset 0 0 0 4px #D1FAE5; outline: none; }
        .today-task-check.completed {
            display: grid; place-items: center; border-color: #10B981; background: #10B981; color: #FFFFFF; box-shadow: none;
        }
        .today-task-check.completed::after { content: "✓"; font-size: 12px; line-height: 1; font-weight: 800; }
        .today-task-check.completed:hover, .today-task-check.completed:focus-visible { border-color: #059669; background: #059669; box-shadow: none; }
        .today-task-title {
            flex: 1 1 auto; border: 0; padding: 0; background: transparent; color: #475569;
            font-family: inherit; font-size: 15px; font-weight: 500; text-align: left; cursor: pointer;
        }
        .today-plan-row.personal-task.overdue .today-task-title { color: #BE123C; }
        .today-plan-row.timed {
            display: grid; grid-template-columns: 68px 64px minmax(78px, 108px) minmax(0, 1fr) 18px;
            align-items: center; gap: 10px; padding: 9px 8px;
        }
        .today-plan-time { color: #64748B; font-size: 14px; font-weight: 500; font-variant-numeric: tabular-nums; }
        .today-plan-period { color: #475569; font-size: 14px; font-weight: 600; white-space: nowrap; }
        .today-plan-course { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: #111827; font-size: 15px; font-weight: 650; }
        .today-plan-title { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: #334155; font-size: 15px; font-weight: 500; }
        .today-plan-add { opacity: 0; color: #059669; font-size: 17px; font-weight: 700; transition: opacity .14s; }
        .today-plan-row.missing-plan:hover .today-plan-add, .today-plan-row.missing-plan:focus-visible .today-plan-add { opacity: 1; }
        .today-plan-row.timed.event { grid-template-columns: 68px minmax(0, 1fr); }
        .today-plan-event-title { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: #334155; font-size: 15px; font-weight: 500; }
        .today-plan-more { border: 0; padding: 7px 8px 0; background: transparent; color: #64748B; font-family: inherit; font-size: 13px; font-weight: 600; cursor: pointer; }
        .today-plan-more:hover { color: #047857; }
        .today-duty-head { align-items: center; margin-bottom: 13px; }
        .today-duty-head > div:first-child { min-width: 0; display: flex; align-items: baseline; gap: 10px; }
        .today-duty-head > div:first-child span { color: #64748B; font-size: 13px; font-weight: 500; }
        .today-duty-actions { display: flex; align-items: center; gap: 9px; }
        .today-duty-actions .studio-secondary-btn { min-height: 34px; padding: 5px 10px; font-size: 13px; font-weight: 600; }
        .today-duty-actions .studio-secondary-btn.done { border-color: #BBF7D0; background: #F0FDF4; color: #047857; }
        .today-duty-roles { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 11px 24px; }
        .today-duty-role { min-width: 0; display: grid; grid-template-columns: 48px minmax(0, 1fr); align-items: baseline; gap: 7px; color: #334155; font-size: 14px; line-height: 1.45; font-weight: 500; }
        .today-duty-role strong { color: #64748B; font-size: 13px; font-weight: 600; }
        .today-dashboard-attention { min-width: 0; padding: 18px 20px; }
        .today-pending-list { display: grid; }
        .today-pending-row {
            min-width: 0; min-height: 50px; display: grid; grid-template-columns: 18px minmax(0, 1fr); align-items: center; gap: 10px;
            border: 0; border-bottom: 1px solid #E8EDF3; padding: 8px 2px; background: transparent; color: #334155;
        }
        .today-pending-row:last-child { border-bottom: 0; }
        button.today-pending-row.button {
            width: 100%; grid-template-columns: 40px minmax(0, 1fr) auto; gap: 10px;
            font-family: inherit; text-align: left; cursor: pointer;
        }
        button.today-pending-row.button:hover, .today-pending-main:hover { color: #047857; }
        .today-pending-main {
            min-width: 0; display: grid; grid-template-columns: 40px minmax(0, 1fr) auto; align-items: center; gap: 10px;
            border: 0; padding: 0; background: transparent; color: inherit; font-family: inherit; text-align: left; cursor: pointer;
        }
        .today-pending-kind { color: #64748B; font-size: 13px; font-weight: 600; white-space: nowrap; }
        .today-pending-row strong { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 14px; font-weight: 600; }
        .today-pending-row small { min-width: 0; overflow: hidden; text-overflow: ellipsis; color: #64748B; font-size: 12px; font-weight: 600; white-space: nowrap; }
        .today-pending-row.overdue small { color: #BE123C; }
        .today-pending-more { padding: 10px 2px 1px; color: #64748B; font-size: 13px; font-weight: 500; }
        .today-dashboard-records { padding: 18px 20px; }
        .today-record-list { display: grid; }
        .today-record-row {
            min-width: 0; min-height: 42px; display: grid; grid-template-columns: 60px minmax(0, 1fr); align-items: center; gap: 10px;
            border: 0; border-radius: 7px; padding: 7px 8px; background: transparent; color: #475569;
            font-family: inherit; text-align: left; cursor: pointer;
        }
        .today-record-row:hover { background: #F8FAFC; color: #047857; }
        .today-record-row time { color: #94A3B8; font-size: 13px; font-weight: 500; font-variant-numeric: tabular-nums; }
        .today-record-row span { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 14px; font-weight: 500; }
        .today-dashboard-empty { padding: 13px 8px; color: #94A3B8; font-size: 14px; font-weight: 400; }
        .today-dashboard-empty.compact { padding: 4px 0; }
        .today-dashboard-duty.is-empty, .today-dashboard-records.is-empty {
            min-height: 64px; display: flex; align-items: center; justify-content: space-between; gap: 20px;
        }
        .today-dashboard-duty.is-empty .today-dashboard-block-head,
        .today-dashboard-records.is-empty .today-dashboard-block-head { flex: 0 0 auto; min-height: 0; margin: 0; }
        .today-dashboard-duty.is-empty .today-dashboard-empty,
        .today-dashboard-records.is-empty .today-dashboard-empty { padding: 0; text-align: right; }
        .today-student-status-card {
            min-width: 0; display: grid; gap: 9px; padding: 12px;
            border: 1px solid #DCE5EE; border-radius: 11px; background: #FFFFFF;
            box-shadow: 0 1px 2px rgba(15,23,42,.035);
        }
        .today-student-status-head { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; gap: 12px; }
        .today-student-status-head > div:first-child { display: flex; align-items: baseline; gap: 10px; }
        .today-student-status-head h3 { margin: 0; color: #111827; font-size: 18px; line-height: 1.3; }
        .today-student-status-head > div:first-child span { color: #64748B; font-size: 12px; font-weight: 600; }
        .today-seat-filters { display: flex; align-items: center; justify-content: flex-end; gap: 5px; flex-wrap: wrap; }
        .today-seat-filter {
            min-height: 30px; display: inline-flex; align-items: center; gap: 6px; border: 1px solid #D7E2EC;
            border-radius: 999px; padding: 5px 10px; background: #FFFFFF; color: #475569;
            font-family: inherit; font-size: 12px; font-weight: 650; cursor: pointer;
        }
        .today-seat-filter strong { min-width: 17px; color: #64748B; font-size: 11px; font-variant-numeric: tabular-nums; }
        .today-seat-filter:hover { border-color: #94A3B8; background: #F8FAFC; }
        .today-seat-filter.active { border-color: #0F766E; background: #F0FDFA; color: #0F766E; }
        .today-seat-filter.active strong { color: #0F766E; }
        .today-seat-filter:disabled { border-color: #E2E8F0; background: #F8FAFC; color: #94A3B8; cursor: default; opacity: .72; }
        .today-seat-filter:disabled strong { color: #94A3B8; }
        .today-seat-board {
            min-width: 0; overflow-x: auto; display: grid; gap: 6px; border: 1px solid #E2E8F0;
            border-radius: 10px; padding: 8px; background: #F8FAFC; scrollbar-width: thin;
        }
        .today-seat-grid { min-width: 580px; display: grid; gap: 4px; }
        .today-seat-row { min-width: 580px; display: grid; align-items: stretch; gap: 4px; }
        .today-seat-cell { min-width: 0; }
        .today-seat-cell.empty {
            min-height: 54px; display: grid; place-items: center; border: 1px dashed #D8E1EA; border-radius: 8px;
            color: #A0AEC0; background: rgba(255,255,255,.5); font-size: 11px; font-weight: 600;
        }
        .today-seat-cell.empty.door { border-style: solid; background: #EEF2F6; color: #64748B; }
        .today-seat-cell.door-occupied .today-seat-card { border-color: #FB7185; box-shadow: inset 0 0 0 1px #FB7185; }
        .today-seat-aisle { min-width: 18px; }
        .today-seat-podium { min-width: 580px; display: flex; justify-content: center; }
        .today-seat-podium span {
            min-width: 86px; border: 1px solid #CBD5E1; border-radius: 6px; padding: 2px 16px; background: #FFFFFF;
            color: #64748B; font-size: 11px; font-weight: 700; text-align: center;
        }
        .today-seat-card {
            width: 100%; min-width: 0; min-height: 54px; display: grid; grid-template-rows: auto 12px 12px; gap: 1px;
            border: 1px solid #D7E2EC; border-radius: 8px; padding: 5px 7px 4px; background: #FFFFFF;
            color: #1F2937; font-family: inherit; text-align: left; cursor: pointer;
            box-shadow: 0 1px 1px rgba(15,23,42,.025); transition: opacity .14s, border-color .14s, box-shadow .14s, transform .14s;
        }
        .today-seat-card.gender-girl { background: linear-gradient(145deg, #FFFFFF 0 76%, #FFF1F2 100%); }
        .today-seat-card.gender-boy { background: linear-gradient(145deg, #FFFFFF 0 76%, #EFF6FF 100%); }
        .today-seat-card:hover, .today-seat-card:focus-visible { border-color: #0D9488; box-shadow: 0 4px 12px rgba(15,118,110,.12); outline: none; transform: translateY(-1px); }
        .today-seat-card.has-reminder { border-color: #FBBF24; }
        .today-seat-card.has-followup { box-shadow: inset 0 -3px 0 #A78BFA; }
        .today-seat-card.has-reminder.has-followup { box-shadow: inset 0 -3px 0 #A78BFA, 0 1px 1px rgba(15,23,42,.025); }
        .today-seat-card.is-duty-highlighted {
            border-color: #10B981; background: #ECFDF5;
            box-shadow: 0 0 0 2px rgba(16,185,129,.15), 0 4px 12px rgba(5,150,105,.1);
        }
        .today-seat-card.is-muted { opacity: .18; filter: grayscale(.8); }
        .today-seat-card.is-muted:hover, .today-seat-card.is-muted:focus-visible { opacity: .72; filter: none; }
        .today-seat-card-top { min-width: 0; display: flex; align-items: center; justify-content: space-between; gap: 3px; }
        .today-seat-card-top strong { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: #111827; font-size: 13px; line-height: 1.2; font-weight: 750; letter-spacing: -.15px; }
        .today-seat-score {
            flex: 0 0 auto; min-width: 18px; border-radius: 999px; padding: 1px 3px; font-size: 9px; line-height: 1.2;
            font-style: normal; font-weight: 800; text-align: center; font-variant-numeric: tabular-nums;
        }
        .today-seat-score.positive { background: #DCFCE7; color: #047857; }
        .today-seat-score.zero { background: #F1F5F9; color: #94A3B8; }
        .today-seat-card-signals { min-width: 0; display: flex; align-items: center; gap: 4px; overflow: hidden; }
        .today-seat-card-signals i {
            border-radius: 999px; padding: 1px 5px; font-size: 9px; line-height: 1.35; font-style: normal; font-weight: 750; white-space: nowrap;
        }
        .today-seat-card-signals i.reminder { background: #FEF3C7; color: #B45309; }
        .today-seat-card-signals i.followup { background: #EDE9FE; color: #6D28D9; }
        .today-seat-card-signals i.duty-role {
            min-width: 0; overflow: hidden; text-overflow: ellipsis; padding: 0; background: transparent;
            color: #047857; font-size: 10px; font-weight: 800;
        }
        .today-seat-card-note { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: #64748B; font-size: 9px; line-height: 1.35; font-weight: 550; }
        .today-seat-card-note b { margin-right: 3px; color: #475569; font-weight: 750; }
        .today-seat-card-note.empty { visibility: hidden; }
        .today-dashboard-rail { min-width: 0; overflow: hidden; }
        .today-dashboard-rail-head {
            min-height: 50px; display: flex; align-items: center; justify-content: space-between; gap: 10px;
            padding: 12px 15px; border-bottom: 1px solid #E2E8F0; background: #FCFDFE;
        }
        .today-dashboard-rail-head h3 { margin: 0; color: #111827; font-size: 18px; }
        .today-dashboard-rail-head span { color: #64748B; font-size: 12px; font-weight: 650; }
        .today-dashboard-quick-task {
            min-height: 45px; display: flex; align-items: center; gap: 7px; margin: 0; padding: 7px 14px;
            border-bottom: 1px solid #EDF1F5; background: #FFFFFF;
        }
        .today-dashboard-quick-task > span { color: #0F766E; font-size: 18px; font-weight: 500; line-height: 1; }
        .today-dashboard-quick-task input {
            min-width: 0; flex: 1; border: 0; outline: 0; padding: 4px 0; background: transparent;
            color: #334155; font-family: inherit; font-size: 13px; font-weight: 600;
        }
        .today-dashboard-quick-task input::placeholder { color: #94A3B8; font-weight: 550; }
        .today-dashboard-quick-task:focus-within { background: #F0FDFA; }
        .today-rail-list { display: grid; padding: 0 14px; }
        .today-rail-item {
            width: 100%; min-width: 0; min-height: 42px; align-items: center; gap: 8px;
            border: 0; border-bottom: 1px solid #EDF1F5; border-radius: 0; padding: 8px 2px;
            background: transparent; color: #334155; font-family: inherit; text-align: left;
        }
        button.today-rail-item { cursor: pointer; }
        button.today-rail-item:hover, button.today-rail-item:focus-visible { color: #047857; }
        button.today-rail-item:focus-visible { outline: 2px solid rgba(13,148,136,.2); outline-offset: -2px; }
        .today-rail-list > :last-child { border-bottom: 0; }
        .today-rail-item strong { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 16px; line-height: 1.35; font-weight: 650; }
        .today-rail-item.schedule.all-day { display: grid; grid-template-columns: 44px minmax(0, 1fr); }
        .today-rail-item.schedule.timed { display: grid; grid-template-columns: 44px minmax(0, 1fr); }
        .today-rail-item.schedule.course.missing-plan { grid-template-columns: 44px minmax(0, 1fr) 18px; }
        .today-rail-item.schedule time { color: #64748B; font-size: 12px; font-variant-numeric: tabular-nums; }
        .today-rail-course-line { min-width: 0; display: flex; align-items: baseline; gap: 8px; overflow: hidden; white-space: nowrap; }
        .today-rail-course-line strong { flex: 0 1 auto; }
        .today-rail-course-line small { flex: 1 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; color: #94A3B8; font-size: 11px; font-weight: 550; white-space: nowrap; }
        .today-rail-course-add { opacity: 0; color: #0F766E; font-size: 16px; line-height: 1; text-align: center; transition: opacity .14s; }
        .today-rail-item.schedule.course.missing-plan:hover .today-rail-course-add,
        .today-rail-item.schedule.course.missing-plan:focus-visible .today-rail-course-add { opacity: 1; }
        .today-rail-item.task { display: grid; grid-template-columns: 18px minmax(0, 1fr); }
        .today-rail-task-title {
            min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; outline: 0; padding: 0; color: #334155;
            font-family: inherit; font-size: 16px; line-height: 1.35; font-weight: 650;
        }
        .today-rail-task-title:hover, .today-rail-task-title:focus { color: #047857; }
        .today-rail-item.task.overdue .today-rail-task-title { color: #BE123C; }
        .today-rail-item-main { min-width: 0; border: 0; padding: 0; background: transparent; color: inherit; font-family: inherit; text-align: left; cursor: pointer; }
        .today-rail-item.homework, .today-rail-item.duty { display: grid; grid-template-columns: 18px minmax(0, 1fr) auto; }
        .today-rail-item.homework small { min-width: 0; overflow: hidden; text-overflow: ellipsis; color: #64748B; font-size: 14px; font-weight: 650; white-space: nowrap; }
        .today-rail-icon { width: 18px; height: 18px; display: grid; place-items: center; color: #64748B; }
        .today-rail-icon svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; }
        .today-rail-icon.homework { color: #64748B; }
        .today-rail-icon.duty { color: #64748B; font-size: 16px; line-height: 1; }
        .today-rail-duty-rating { width: 40px; display: inline-flex; justify-content: flex-end; gap: 1px; }
        .today-rail-duty-star { border: 0; padding: 4px 1px; background: transparent; color: #CBD5E1; font-family: inherit; font-size: 15px; line-height: 1; cursor: pointer; }
        .today-rail-duty-star.active { color: #F59E0B; }
        .today-rail-duty-star:hover, .today-rail-duty-star:focus-visible { color: #F59E0B; outline: none; transform: scale(1.18); }
        .today-rail-duty-star:focus-visible { outline: 2px solid rgba(245,158,11,.35); outline-offset: 1px; border-radius: 3px; }
        .today-rail-more {
            width: 100%; min-height: 31px; border: 0; border-bottom: 1px solid #EDF1F5; padding: 5px 2px;
            background: transparent; color: #94A3B8; font-family: inherit; font-size: 11px; font-weight: 600; text-align: left; cursor: pointer;
        }
        .today-rail-more:hover, .today-rail-more:focus-visible { color: #047857; outline: none; }
        .today-rail-empty { padding: 18px 2px; color: #94A3B8; font-size: 12px; }
        .today-study-plan { overflow: hidden; border-color: #E2E8F0; background: #FFFFFF; box-shadow: none; }
        .today-study-plan-head {
            min-height: 50px; display: flex; align-items: center; justify-content: space-between; gap: 10px;
            padding: 10px 14px; border-bottom: 1px solid #E2E8F0; background: #FCFDFE;
        }
        .today-study-plan-head h3 { margin: 0; color: #111827; font-size: 18px; }
        .today-study-plan-head .studio-secondary-btn { min-height: 30px; padding: 5px 9px; font-size: 12px; }
        .today-study-plan-body { display: grid; padding: 0 14px; }
        .today-study-plan-field { display: grid; grid-template-columns: 42px minmax(0, 1fr); align-items: start; gap: 8px; padding: 8px 2px; border-bottom: 1px solid #EDF1F5; }
        .today-study-plan-field.is-dictation { grid-template-columns: 42px minmax(0, 1fr) auto; }
        .today-study-plan-field:last-child { border-bottom: 0; }
        .today-study-plan-field > span { padding-top: 6px; color: #64748B; font-size: 12px; font-weight: 750; }
        .today-study-plan-field input, .today-study-plan-field textarea {
            width: 100%; min-height: 32px; display: block; border: 0; border-radius: 0; outline: 0; padding: 3px 0;
            background: transparent; color: #334155; font-family: inherit; font-size: 13px; line-height: 1.55;
        }
        .today-study-plan-field input::placeholder, .today-study-plan-field textarea::placeholder { color: #94A3B8; }
        .today-study-plan-field input:focus, .today-study-plan-field textarea:focus { background: #F8FAFC; }
        .today-study-plan-field.is-homework textarea { min-height: 42px; resize: none; overflow: hidden; }
        .today-study-plan-create-homework { align-self: center; min-height: 28px; border: 1px solid #A7F3D0; border-radius: 6px; padding: 4px 7px; background: #ECFDF5; color: #047857; font-family: inherit; font-size: 11px; font-weight: 800; white-space: nowrap; cursor: pointer; }
        .today-study-plan-create-homework:hover:not(:disabled) { border-color: #6EE7B7; background: #D1FAE5; }
        .today-study-plan-create-homework:disabled { opacity: .45; cursor: default; }
        .today-study-plan-field p { margin: 0; color: #334155; font-size: 13px; line-height: 1.55; white-space: pre-wrap; }
        .today-study-plan.is-read-only { border-color: #E2E8F0; background: #FCFDFE; }
        .today-study-plan.is-read-only .today-study-plan-head h3 { color: #475569; }
        .daily-study-reminder-modal { display: grid; gap: 12px; }
        .daily-study-reminder-modal > p { margin: 0; color: #64748B; font-size: 13px; line-height: 1.55; }
        .daily-study-reminder-modal textarea { width: 100%; min-height: 168px; resize: vertical; border: 1px solid #CBD5E1; border-radius: 8px; padding: 10px; background: #F8FAFC; color: #334155; font-family: inherit; font-size: 13px; line-height: 1.6; }
        .daily-study-reminder-modal .studio-actions { justify-content: flex-end; margin: 0; }
        .today-completed-card { overflow: hidden; border-color: #E8EDF3; border-radius: 9px; box-shadow: none; }
        .today-completed-summary {
            width: 100%; min-height: 40px; display: flex; align-items: center; justify-content: space-between; gap: 10px;
            border: 0; padding: 9px 13px; background: #FFFFFF; color: #64748B; font-family: inherit; text-align: left; cursor: pointer;
        }
        .today-completed-summary:hover, .today-completed-summary:focus-visible { background: #FAFCFD; color: #475569; outline: none; }
        .today-completed-summary > span { display: inline-flex; align-items: center; gap: 7px; }
        .today-completed-summary i {
            width: 16px; height: 16px; display: grid; place-items: center; border-radius: 999px; background: #DCFCE7;
            color: #059669; font-size: 10px; line-height: 1; font-style: normal; font-weight: 800;
        }
        .today-completed-summary strong { color: inherit; font-size: 12px; font-weight: 650; }
        .today-completed-summary em { color: #94A3B8; font-size: 13px; line-height: 1; font-style: normal; transition: transform .14s; }
        .today-completed-card.expanded .today-completed-summary em { transform: rotate(180deg); }
        .today-completed-card.empty .today-completed-summary { color: #94A3B8; cursor: default; }
        .today-completed-card.empty .today-completed-summary:hover { background: #FFFFFF; color: #94A3B8; }
        .today-completed-task-list { display: grid; padding: 0 13px 5px; border-top: 1px solid #F1F5F9; }
        .today-completed-task-row { min-width: 0; min-height: 38px; display: grid; grid-template-columns: 18px minmax(0, 1fr); align-items: center; gap: 8px; border-bottom: 1px solid #F1F5F9; padding: 7px 2px; color: #475569; }
        .today-completed-task-row:last-child { border-bottom: 0; }
        .today-completed-task-main { min-width: 0; border: 0; padding: 0; background: transparent; color: inherit; font-family: inherit; text-align: left; cursor: pointer; }
        .today-completed-task-main strong { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 12px; font-weight: 600; }
        .today-completed-task-main:hover { color: #047857; }
        .today-student-quick-modal .studio-modal { width: min(620px, calc(100vw - 48px)); }
        .today-student-quick-panel { display: grid; gap: 14px; }
        .today-student-quick-summary { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
        .today-student-quick-summary > span { display: flex; align-items: baseline; gap: 6px; border: 1px solid #E2E8F0; border-radius: 8px; padding: 9px 10px; background: #FFFFFF; color: #64748B; font-size: 12px; font-weight: 650; }
        .today-student-quick-summary strong { color: #334155; font-size: 18px; font-variant-numeric: tabular-nums; }
        .today-student-quick-summary .positive { border-color: #BBF7D0; background: #F0FDF4; }
        .today-student-quick-summary .positive strong { color: #047857; }
        .today-student-quick-summary .reminder { border-color: #FDE68A; background: #FFFBEB; }
        .today-student-quick-summary .reminder strong { color: #B45309; }
        .today-student-quick-summary .followup { border-color: #DDD6FE; background: #F5F3FF; }
        .today-student-quick-summary .followup strong { color: #6D28D9; }
        .today-student-context { display: flex; flex-wrap: wrap; gap: 6px; }
        .today-student-context span { display: inline-flex; align-items: center; gap: 5px; border-radius: 999px; padding: 5px 9px; background: #F1F5F9; color: #475569; font-size: 11px; font-weight: 600; }
        .today-student-context strong { color: #334155; }
        .today-student-observation-editor { display: grid; gap: 7px; }
        .today-student-observation-editor > label { color: #334155; font-size: 13px; font-weight: 750; }
        .today-student-observation-editor textarea { width: 100%; min-height: 78px; resize: vertical; border: 1px solid #CBD5E1; border-radius: 8px; padding: 9px 10px; background: #FFFFFF; color: #1F2937; font-family: inherit; line-height: 1.5; }
        .today-student-observation-editor textarea:focus { border-color: #0D9488; outline: 3px solid rgba(13,148,136,.12); }
        .today-student-observation-editor > div, .today-student-quick-links { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
        .today-student-observation-editor .studio-secondary-btn.danger { border-color: #FECDD3; color: #BE123C; }
        .today-student-quick-links { justify-content: flex-end; padding-top: 2px; }
        .personal-task-editor { display: grid; gap: 12px; }
        .personal-task-editor textarea { min-height: 88px; resize: vertical; }
        .personal-task-editor-actions { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
        .personal-task-editor-actions .studio-actions { margin: 0; }
        .personal-task-manager { display: grid; gap: 10px; }
        .personal-task-manager-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; color: #64748B; font-size: .84em; font-weight: 900; }
        .personal-task-manager-list { display: grid; }
        .personal-task-manager-row { min-width: 0; display: grid; grid-template-columns: 18px minmax(0, 1fr); align-items: center; gap: 9px; border-bottom: 1px solid #E2E8F0; padding: 8px 2px; }
        .personal-task-manager-row:last-child { border-bottom: 0; }
        .personal-task-manager-main { min-width: 0; display: flex; align-items: baseline; justify-content: space-between; gap: 12px; border: 0; padding: 0; background: transparent; color: #334155; font-family: inherit; text-align: left; cursor: pointer; }
        .personal-task-manager-main strong { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
        .personal-task-manager-main span { flex: 0 0 auto; color: #64748B; font-size: .76em; font-weight: 900; }
        .personal-task-manager-row.overdue .personal-task-manager-main span { color: #BE123C; }
        .calendar-cycle-warning {
            margin: 0 0 10px; border: 1px solid #FDE68A; border-radius: 8px; background: #FFFBEB;
            color: #92400E; padding: 10px 12px; font-weight: 900; line-height: 1.5;
        }
        .calendar-cycle-editor {
            display: grid; grid-template-columns: minmax(260px, 1fr) auto; gap: 10px; align-items: center;
        }
        .calendar-cycle-editor .studio-field { min-width: 0; gap: 0; }
        .calendar-cycle-editor select, .calendar-cycle-editor button { min-height: 42px; }
        .calendar-settings-section { padding: 0; overflow: hidden; box-shadow: none; }
        .calendar-settings-disclosure + .calendar-settings-disclosure { border-top: 1px solid #E2E8F0; }
        .calendar-settings-disclosure > summary {
            min-height: 68px; display: flex; align-items: center; justify-content: space-between; gap: 18px;
            padding: 14px 18px; cursor: pointer; list-style: none; background: #FFFFFF;
        }
        .calendar-settings-disclosure > summary::-webkit-details-marker { display: none; }
        .calendar-settings-disclosure > summary:hover { background: #F8FAFC; }
        .calendar-settings-disclosure > summary span { min-width: 0; display: grid; gap: 3px; }
        .calendar-settings-disclosure > summary strong { color: #111827; font-size: 1.05em; }
        .calendar-settings-disclosure > summary small {
            color: #64748B; font-size: .88em; font-weight: 800; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
        }
        .calendar-settings-disclosure > summary em {
            flex: 0 0 auto; border: 1px solid #E2E8F0; border-radius: 999px; padding: 5px 9px;
            color: #64748B; background: #F8FAFC; font-size: .82em; font-style: normal; font-weight: 900;
        }
        .calendar-settings-disclosure[open] > summary em { border-color: #BBF7D0; background: #F0FDF4; color: #047857; }
        .calendar-settings-content { padding: 14px 16px 16px; border-top: 1px solid #E2E8F0; background: #FFFFFF; }
        .calendar-settings-fields {
            display: grid; grid-template-columns: minmax(140px, .8fr) minmax(220px, 1.25fr) minmax(180px, .9fr) minmax(100px, .45fr) auto;
            gap: 12px; align-items: end;
        }
        .calendar-settings-fields .studio-field { min-width: 0; }
        .calendar-settings-fields .studio-primary-btn { min-height: 42px; white-space: nowrap; }
        .calendar-overview-section { padding: 16px 18px 18px; box-shadow: none; }
        .calendar-overview-head { margin-bottom: 12px; }
        .calendar-overview-layout {
            display: grid; grid-template-columns: minmax(0, 1.9fr) minmax(320px, .76fr); gap: 16px; align-items: start;
        }
        .calendar-month-pane { min-width: 0; }
        .calendar-month-toolbar {
            min-height: 34px; display: flex; align-items: center; justify-content: center; gap: 6px; margin-bottom: 6px;
        }
        .calendar-month-toolbar > strong { min-width: 112px; color: #111827; font-size: 1.16em; text-align: center; }
        .calendar-nav-btn {
            width: 30px; height: 30px; display: inline-grid; place-items: center; border: 0; border-radius: 7px;
            background: #F1F5F9; color: #334155; font-family: inherit; font-size: 1.3em; line-height: 1; font-weight: 700; cursor: pointer;
        }
        .calendar-nav-btn:hover:not(:disabled) { background: #E2E8F0; color: #047857; }
        .calendar-nav-btn:disabled { opacity: .36; cursor: default; }
        .calendar-today-btn { margin-left: 3px; padding: 5px 8px; }
        .calendar-weekday-row, .calendar-month-grid { display: grid; grid-template-columns: 54px repeat(7, minmax(0, 1fr)); }
        .calendar-weekday-row { gap: 4px; margin-bottom: 4px; }
        .calendar-weekday-row span { padding: 5px 2px; color: #64748B; font-size: .9em; font-weight: 900; text-align: center; }
        .calendar-month-grid { gap: 4px; }
        .calendar-week-index {
            min-height: 0; display: grid; place-items: center; align-self: stretch; border-radius: 8px; padding: 8px 3px;
            background: #F8FAFC; color: #64748B; font-size: 1em; font-weight: 900; text-align: center;
        }
        .calendar-week-index.active { background: #ECFDF5; color: #047857; }
        .calendar-week-index span { writing-mode: horizontal-tb; letter-spacing: 0; white-space: nowrap; }
        .calendar-month-cell {
            position: relative; min-width: 0; min-height: 0; display: flex; flex-direction: column; gap: 4px;
            border: 1px solid #E2E8F0; border-radius: 8px; padding: 7px; background: #FFFFFF; color: #334155;
            font-family: inherit; text-align: center; cursor: pointer; overflow: visible; transition: border-color .16s, background .16s;
        }
        .calendar-month-cell:hover:not(:disabled) { border-color: #86EFAC; background: #F8FFFB; }
        .calendar-month-cell.selected { border-color: #A5B4FC; padding: 7px; background: #F8F7FF; box-shadow: inset 0 0 0 1px #C7D2FE; }
        .calendar-month-cell.today .calendar-cell-head strong {
            width: 22px; height: 22px; display: inline-grid; place-items: center; border-radius: 999px; background: #10B981; color: #FFFFFF;
        }
        .calendar-month-cell.active-score-week { box-shadow: inset 0 2px 0 #86EFAC; }
        .calendar-month-cell.weekend-day { background: #FFFEFA; }
        .calendar-month-cell.holiday-day, .calendar-month-cell.rest-day { background: #FFF7F8; }
        .calendar-month-cell.academic-break-day { background: #FFFBEB; }
        .calendar-month-cell.makeup-day { background: #F0FDF4; }
        .calendar-month-cell.outside-month { background: #F8FAFC; color: #94A3B8; opacity: .62; }
        .calendar-month-cell.outside-term { border-color: #FDE68A; }
        .calendar-cell-head { min-height: 22px; display: flex; align-items: center; justify-content: center; gap: 5px; }
        .calendar-cell-date { width: 100%; min-width: 0; display: flex; align-items: center; justify-content: center; gap: 5px; }
        .calendar-cell-head strong { color: inherit; font-size: 1.16em; line-height: 1; }
        .calendar-cell-content { width: 100%; min-width: 0; display: grid; gap: 4px; align-content: start; }
        .calendar-day-state, .calendar-cell-event {
            width: fit-content; max-width: 100%; min-width: 0; border-radius: 5px; padding: 2px 5px;
            font-size: .66em; line-height: 1.25; font-weight: 900;
        }
        .calendar-day-state { flex: 0 1 auto; border: 1px solid #FDE68A; background: #FEF3C7; color: #B45309; padding: 2px 5px; font-size: .64em; }
        .holiday-day .calendar-day-state, .rest-day .calendar-day-state { border-color: #FECDD3; background: #FFE4E6; color: #BE123C; }
        .academic-break-day .calendar-day-state { border-color: #FDE68A; background: #FEF3C7; color: #B45309; }
        .makeup-day .calendar-day-state { border-color: #A7F3D0; background: #D1FAE5; color: #047857; }
        .calendar-cell-event {
            width: 100%; border: 0; background: transparent; color: #475569; padding: 2px 0; font-size: 1.12em;
            line-height: 1.4; font-weight: 800; white-space: normal; overflow: visible; overflow-wrap: anywhere; text-overflow: clip;
        }
        .calendar-cell-event.holiday { color: #BE123C; }
        .calendar-cell-event.exam { color: #92400E; }
        .calendar-cell-event.activity { color: #1D4ED8; }
        .calendar-cell-event.meeting { color: #6D28D9; }
        .calendar-cell-event.teaching { color: #047857; }
        .calendar-cell-event.personal { color: #0E7490; }
        .calendar-day-panel {
            position: sticky; top: 96px; display: grid; gap: 0; border: 1px solid #E2E8F0; border-radius: 9px;
            background: #FFFFFF; max-height: calc(100vh - 120px); overflow-y: auto;
        }
        .calendar-day-heading { padding: 16px 14px 13px; border-bottom: 1px solid #E2E8F0; }
        .calendar-day-heading h3 { margin: 0 0 7px; color: #111827; font-size: 1.3em; line-height: 1.25; }
        .calendar-day-badges { display: flex; flex-wrap: wrap; gap: 7px; }
        .calendar-day-status-badge, .calendar-week-badge {
            display: inline-flex; align-items: center; min-height: 0; padding: 0;
            border: 0; background: transparent; color: #475569; font-size: .78em; font-weight: 900;
        }
        .calendar-day-status-badge.weekend-day { color: #B45309; }
        .calendar-day-status-badge.holiday-day, .calendar-day-status-badge.rest-day { color: #BE123C; }
        .calendar-day-status-badge.academic-break-day { color: #B45309; }
        .calendar-day-status-badge.makeup-day, .calendar-day-status-badge.class-day { color: #047857; }
        .calendar-week-badge { color: #4F46E5; }
        .calendar-day-block { padding: 13px 14px; background: #FFFFFF; border-bottom: 1px solid #E2E8F0; }
        .calendar-day-block h4 { margin: 0 0 9px; color: #111827; font-size: .96em; }
        .calendar-day-status-row { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; gap: 12px; }
        .calendar-day-status-row h4 { margin: 0; white-space: nowrap; }
        .calendar-day-block-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
        .calendar-day-block-head span { color: #64748B; font-size: .78em; font-weight: 900; }
        .calendar-day-status-options { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 2px; padding: 2px; border-radius: 8px; background: #F1F5F9; }
        .calendar-day-status-options button {
            min-width: 0; min-height: 32px; border: 0; border-radius: 6px; padding: 5px;
            background: transparent; color: #64748B; font-family: inherit; font-size: .76em; font-weight: 900; cursor: pointer;
        }
        .calendar-day-status-options button:hover { color: #047857; }
        .calendar-day-status-options button.active { background: #FFFFFF; color: #047857; box-shadow: 0 1px 3px rgba(15,23,42,.10); }
        .calendar-day-source { margin: 8px 0 0; color: #64748B; font-size: .76em; font-weight: 800; line-height: 1.45; }
        .calendar-holiday-source-link { display: inline-flex; margin-left: 5px; color: #4F46E5; font-weight: 900; text-decoration: none; }
        .calendar-holiday-source-link:hover { text-decoration: underline; }
        .calendar-day-event-list { display: grid; }
        .calendar-day-event-card {
            min-width: 0; display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 10px;
            padding: 10px 0; border-bottom: 1px solid #E2E8F0; background: transparent;
        }
        .calendar-day-event-card:last-child { border-bottom: 0; }
        .calendar-day-event-main { min-width: 0; }
        .calendar-day-event-card h4 { margin: 0 0 4px; overflow: hidden; color: #111827; font-size: 1em; text-overflow: ellipsis; white-space: nowrap; }
        .calendar-day-event-meta { color: #64748B; font-size: .74em; font-weight: 900; }
        .calendar-day-event-meta .reflection { min-width: 0; color: #047857; font-weight: 800; line-height: 1.45; overflow-wrap: anywhere; }
        .calendar-day-event-actions { display: flex; align-items: center; gap: 2px; white-space: nowrap; }
        .calendar-day-event-actions button {
            border: 0; border-radius: 6px; padding: 5px 6px; background: transparent; color: #475569;
            font-family: inherit; font-size: .78em; font-weight: 900; cursor: pointer;
        }
        .calendar-day-event-actions button:hover { background: #F1F5F9; color: #047857; }
        .calendar-day-event-actions button.danger { color: #E11D48; }
        .calendar-day-event-actions button.danger:hover { background: #FFF1F2; color: #BE123C; }
        .calendar-day-empty { padding: 3px 0; color: #94A3B8; font-size: .86em; font-weight: 800; }
        .calendar-event-editor-card { --calendar-editor-control-height: 38px; padding: 12px 14px 13px; background: #F8FAFC; }
        .calendar-event-editor-head { display: flex; align-items: center; justify-content: space-between; }
        .calendar-event-editor-head h4 { margin: 0; color: #334155; font-size: .86em; white-space: nowrap; }
        .calendar-event-editor-main-fields { display: grid; grid-template-columns: minmax(0, 1fr) 104px; gap: 8px; margin-top: 8px; }
        .calendar-event-editor-main-fields .studio-field { min-width: 0; gap: 0; }
        .calendar-event-title-field { min-width: 0; }
        .calendar-event-editor-card .studio-field input {
            width: 100%; height: var(--calendar-editor-control-height); min-height: var(--calendar-editor-control-height);
            padding: 0 9px; border-radius: 8px; line-height: 1.2;
        }
        .calendar-event-type-field { min-width: 0; margin: 0; padding: 0; border: 0; }
        .calendar-event-type-options {
            display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 3px;
            width: 100%; height: var(--calendar-editor-control-height);
        }
        .calendar-event-type-options.legacy { grid-template-columns: repeat(4, minmax(0, 1fr)); }
        .calendar-event-type-input {
            position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden;
            clip: rect(0 0 0 0); clip-path: inset(50%); border: 0; white-space: nowrap;
        }
        .calendar-event-type-option {
            --calendar-event-type-color: #64748B;
            display: flex; align-items: center; justify-content: center; min-width: 0; min-height: var(--calendar-editor-control-height);
            border: 1px solid #CBD5E1; border-radius: 8px; background: #FFFFFF; color: #475569;
            font-size: .82em; font-weight: 900; line-height: 1; cursor: pointer;
            transition: border-color .15s ease, background .15s ease, color .15s ease, box-shadow .15s ease;
        }
        .calendar-event-type-option.personal { --calendar-event-type-color: #0E7490; }
        .calendar-event-type-option.activity { --calendar-event-type-color: #2563EB; }
        .calendar-event-type-option.teaching { --calendar-event-type-color: #059669; }
        .calendar-event-type-option.holiday { --calendar-event-type-color: #E11D48; }
        .calendar-event-type-option:hover { border-color: #94A3B8; background: #F8FAFC; color: #1E293B; }
        .calendar-event-type-input:checked + .calendar-event-type-option {
            border-color: var(--calendar-event-type-color);
            background: color-mix(in srgb, var(--calendar-event-type-color) 9%, white);
            color: var(--calendar-event-type-color);
            box-shadow: 0 0 0 1px color-mix(in srgb, var(--calendar-event-type-color) 15%, transparent);
        }
        .calendar-event-type-input:focus-visible + .calendar-event-type-option {
            outline: 3px solid rgba(16,185,129,.18); outline-offset: 2px;
        }
        .calendar-event-editor-card > .studio-actions { gap: 6px; margin-top: 8px; }
        .calendar-event-editor-card > .studio-actions button { min-height: 36px; padding: 7px 10px; font-size: .8em; }
        .calendar-event-editor-card > .studio-actions .studio-secondary-btn { border-color: transparent; background: transparent; }
        .calendar-empty-state { min-height: 220px; display: grid; place-content: center; justify-items: center; gap: 7px; text-align: center; }
        .calendar-empty-state strong { color: #111827; font-size: 1.18em; }
        .calendar-empty-state span { color: #64748B; font-weight: 800; }
        .academic-schedule-section { min-width: 0; }
        .academic-schedule-page-head { align-items: flex-start; }
        .academic-schedule-head-actions { display: flex; align-items: center; justify-content: flex-end; gap: 8px; flex-wrap: wrap; }
        .academic-schedule-view-switch {
            display: grid; grid-template-columns: repeat(2, 36px); gap: 2px; padding: 2px;
            border-radius: 7px; background: #F1F5F9;
        }
        .academic-schedule-view-switch button {
            min-height: 30px; border: 0; border-radius: 5px; background: transparent; color: #64748B;
            font-family: inherit; font-weight: 900; cursor: pointer;
        }
        .academic-schedule-view-switch button.active { background: #FFFFFF; color: #047857; box-shadow: 0 1px 2px rgba(15,23,42,.08); }
        .academic-schedule-toolbar { display: flex; align-items: center; justify-content: space-between; margin: 0 0 8px; }
        .academic-schedule-navigation { display: flex; align-items: center; gap: 6px; }
        .academic-schedule-navigation > strong { min-width: 220px; color: #334155; font-size: .96em; text-align: center; }
        .academic-schedule-navigation .studio-secondary-btn { padding: 5px 8px; }
        .academic-schedule-scroll { width: 100%; overflow-x: auto; border: 1px solid #DCE4ED; border-radius: 8px; background: #FFFFFF; }
        .academic-schedule-grid {
            min-width: 1080px; display: grid; grid-template-columns: 92px repeat(7, minmax(130px, 1fr));
            background: #FFFFFF;
        }
        .academic-schedule-corner, .academic-schedule-day-head, .academic-schedule-axis,
        .academic-schedule-cell, .academic-schedule-all-day-cell, .academic-schedule-gap-cell {
            min-width: 0; border-right: 1px solid #E2E8F0; border-bottom: 1px solid #E2E8F0;
        }
        .academic-schedule-grid > :nth-child(8n) { border-right: 0; }
        .academic-schedule-corner {
            min-height: 56px; display: grid; place-items: center; background: #F8FAFC;
            color: #94A3B8; font-size: .76em; font-weight: 900;
        }
        .academic-schedule-day-head {
            min-height: 56px; display: grid; place-content: center; justify-items: center; gap: 3px;
            padding: 6px; background: #FFFFFF; color: #475569;
        }
        .academic-schedule-day-head strong { display: flex; align-items: baseline; gap: 5px; font-size: .86em; }
        .academic-schedule-day-head strong span { color: #111827; font-size: 1.28em; }
        .academic-schedule-day-head small { color: #94A3B8; font-size: .68em; font-weight: 900; }
        .academic-schedule-day-head .academic-schedule-special-label { color: #B45309; }
        .academic-schedule-day-head.today { box-shadow: inset 0 3px 0 #10B981; }
        .academic-schedule-day-head.today strong, .academic-schedule-day-head.today strong span { color: #047857; }
        .academic-schedule-day-head.rest-day, .academic-schedule-day-head.holiday-day, .academic-schedule-day-head.weekend-day { background: #FCFCFD; }
        .academic-schedule-day-head.academic-break-day { background: #FFFBEB; }
        .academic-schedule-day-head button {
            border: 0; background: transparent; color: #B45309; padding: 0;
            font-family: inherit; font-size: .68em; font-weight: 900; cursor: pointer;
        }
        .academic-schedule-axis {
            min-height: 70px; display: grid; align-content: center; gap: 3px; padding: 8px 10px;
            background: #F8FAFC; color: #475569; text-align: left;
        }
        .academic-schedule-axis strong { font-size: .82em; }
        .academic-schedule-axis small { color: #94A3B8; font-size: .66em; font-weight: 800; font-variant-numeric: tabular-nums; }
        .academic-schedule-axis.all-day { min-height: 46px; }
        .academic-schedule-axis.gap { min-height: 42px; background: #FCFCFD; }
        .academic-schedule-cell {
            min-height: 70px; display: flex; flex-direction: column;
            padding: 6px; background: #FFFFFF; transition: background-color .16s ease;
        }
        .academic-schedule-cell:hover { background: #F8FAFC; }
        .academic-schedule-cell.rest { background: #FCFCFD; }
        .academic-schedule-cell.rest:hover { background: #F8FAFC; }
        .academic-schedule-course {
            min-height: 28px; width: 100%; flex: 1 1 28px; display: grid; place-content: center;
            border: 0; border-radius: 0; padding: 6px; background: transparent; color: #94A3B8;
            font-family: inherit; font-size: 1em; text-align: center; cursor: pointer;
        }
        .academic-schedule-course:hover { background: transparent; }
        .academic-schedule-course.has-course { background: transparent; color: #94A3B8; font-weight: 900; }
        .academic-schedule-course.has-course.is-my-course { color: #111827; }
        .academic-schedule-course.has-special-time { display: grid; align-content: center; gap: 1px; }
        .academic-schedule-course.has-special-time small { color: #B45309; font-size: .61em; font-weight: 800; font-variant-numeric: tabular-nums; }
        .academic-schedule-cell.rest .academic-schedule-course { opacity: .38; }
        .academic-schedule-events { position: relative; z-index: 1; min-width: 0; display: grid; gap: 3px; }
        .academic-schedule-events:empty { display: none; }
        .academic-schedule-cell > .academic-schedule-events:not(:empty) { margin-top: 4px; }
        .academic-schedule-event {
            min-width: 0; width: 100%; display: flex; align-items: center; justify-content: space-between; gap: 6px;
            border: 0; border-left: 3px solid #64748B; border-radius: 4px; padding: 4px 6px;
            background: #F8FAFC; color: #334155; font-family: inherit; text-align: left; cursor: pointer;
        }
        .academic-schedule-event span { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: .76em; font-weight: 900; }
        .academic-schedule-event small { flex: 0 0 auto; color: #64748B; font-size: .62em; font-weight: 800; }
        .academic-schedule-event:hover { background: #F1F5F9; }
        .academic-schedule-event.holiday { border-left-color: #E11D48; background: #FFF8FA; }
        .academic-schedule-event.exam { border-left-color: #D97706; background: #FFFCF5; }
        .academic-schedule-event.activity { border-left-color: #2563EB; background: #F8FAFF; }
        .academic-schedule-event.meeting { border-left-color: #7C3AED; background: #FBF9FF; }
        .academic-schedule-event.teaching { border-left-color: #059669; background: #F6FCF9; }
        .academic-schedule-event.personal { border-left-color: #0E7490; background: #F4FBFC; }
        .academic-schedule-more {
            justify-self: start; border: 0; background: transparent; color: #64748B; padding: 2px 3px;
            font-family: inherit; font-size: .68em; font-weight: 900; cursor: pointer;
        }
        .academic-schedule-all-day-cell { position: relative; min-height: 46px; padding: 5px 6px; background: #FFFFFF; }
        .academic-schedule-all-day-add { position: absolute; inset: 0; z-index: 0; border: 0; background: transparent; cursor: pointer; }
        .academic-schedule-all-day-cell:hover { background: #FAFCFB; }
        .academic-schedule-gap-cell { min-height: 42px; padding: 5px 6px; background: #FCFCFD; }

        .academic-course-schedule-modal .studio-modal { width: min(920px, calc(100vw - 32px)); border-radius: 10px; }
        .academic-course-schedule-modal .studio-modal-head { align-items: center; padding: 12px 16px 10px; }
        .academic-course-schedule-modal .studio-modal-kicker:empty { display: none; }
        .academic-course-schedule-modal .studio-modal-head h3 { font-size: 1.22em; }
        .academic-course-schedule-modal .studio-modal-close { width: 32px; height: 32px; border-radius: 8px; }
        .academic-course-schedule-modal .studio-modal-content { padding: 10px 12px 12px; }
        .academic-course-editor { display: grid; gap: 8px; }
        .academic-course-editor-tip { display: flex; align-items: center; gap: 5px; color: #64748B; font-size: .74em; font-weight: 700; }
        .academic-course-editor-tip span {
            width: 20px; height: 20px; display: inline-grid; place-items: center; flex: 0 0 auto;
            border: 1px solid #86EFAC; border-radius: 50%; background: #ECFDF5; color: #047857; font-size: .88em; font-weight: 900;
        }
        .academic-course-editor-scroll { overflow-x: auto; border: 1px solid #E2E8F0; border-radius: 6px; }
        .academic-course-editor table { width: 100%; min-width: 860px; border-collapse: collapse; table-layout: fixed; }
        .academic-course-editor th, .academic-course-editor td { border-right: 1px solid #E2E8F0; border-bottom: 1px solid #E2E8F0; padding: 2px 4px; }
        .academic-course-editor th:last-child, .academic-course-editor td:last-child { border-right: 0; }
        .academic-course-editor tbody tr:last-child td { border-bottom: 0; }
        .academic-course-editor th { height: 30px; background: #F8FAFC; color: #64748B; font-size: .76em; }
        .academic-course-editor th:first-child { width: 88px; }
        .academic-course-editor th:nth-child(2) { width: 154px; }
        .academic-course-editor th:last-child { width: 28px; }
        .academic-course-editor input {
            width: 100%; min-width: 0; height: 30px; border: 1px solid transparent; border-radius: 5px; padding: 4px 6px;
            background: transparent; color: #334155; font-family: inherit; font-weight: 800;
        }
        .academic-course-editor input:hover { border-color: #CBD5E1; background: #FFFFFF; }
        .academic-course-editor input:focus { border-color: #86EFAC; outline: 2px solid rgba(34,197,94,.1); background: #FFFFFF; }
        .academic-course-entry { display: grid; grid-template-columns: minmax(0, 1fr) 22px; align-items: center; gap: 2px; }
        .academic-course-editor .academic-course-entry input { color: #94A3B8; }
        .academic-course-editor .academic-course-entry.is-my-course input { color: #111827; }
        .academic-course-mine-toggle {
            width: 22px; height: 22px; display: grid; place-items: center; border: 1px solid #CBD5E1; border-radius: 50%;
            padding: 0; background: #FFFFFF; color: #94A3B8; font-family: inherit; font-size: .72em; font-weight: 900; cursor: pointer;
        }
        .academic-course-mine-toggle:hover { border-color: #86EFAC; color: #047857; }
        .academic-course-entry.is-my-course .academic-course-mine-toggle { border-color: #86EFAC; background: #ECFDF5; color: #047857; }
        .academic-course-mine-toggle:disabled { visibility: hidden; }
        .academic-course-time-cell { min-width: 154px; white-space: nowrap; }
        .academic-course-time-cell input { width: 68px; padding: 3px; font-size: .82em; }
        .academic-course-time-cell span { color: #94A3B8; }
        .academic-course-remove { border: 0; background: transparent; color: #94A3B8; font-size: 1.05em; cursor: pointer; }
        .academic-course-remove:hover { color: #E11D48; }
        .academic-course-editor-footer { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
        .academic-course-editor-footer .studio-actions { margin: 0; }
        .academic-course-editor-footer button { min-height: 36px; padding: 8px 12px; }
        .academic-special-schedule { border: 1px solid #E2E8F0; border-radius: 7px; background: #FFFFFF; }
        .academic-special-schedule > summary {
            min-height: 36px; display: flex; align-items: center; gap: 7px; padding: 6px 9px;
            color: #334155; font-size: .86em; font-weight: 900; cursor: pointer; list-style: none;
        }
        .academic-special-schedule > summary::-webkit-details-marker { display: none; }
        .academic-special-schedule > summary::after { content: '›'; margin-left: auto; color: #94A3B8; transform: rotate(90deg); }
        .academic-special-schedule[open] > summary::after { transform: rotate(-90deg); }
        .academic-special-schedule > summary small { color: #B45309; font-size: .82em; }
        .academic-special-schedule-body { display: grid; grid-template-columns: 82px minmax(0, 1fr); border-top: 1px solid #E2E8F0; }
        .academic-special-day-switch { display: grid; align-content: start; padding: 5px; border-right: 1px solid #E2E8F0; background: #F8FAFC; }
        .academic-special-day-switch button {
            position: relative; min-height: 30px; border: 0; border-radius: 5px; background: transparent;
            color: #64748B; font-family: inherit; font-size: .78em; font-weight: 900; cursor: pointer;
        }
        .academic-special-day-switch button.active { background: #FFFFFF; color: #047857; }
        .academic-special-day-switch button.configured::after {
            content: ''; position: absolute; top: 8px; right: 8px; width: 5px; height: 5px; border-radius: 50%; background: #F59E0B;
        }
        .academic-special-day-panel { min-width: 0; padding: 6px 8px 8px; }
        .academic-special-day-panel[hidden] { display: none; }
        .academic-special-day-head { min-height: 26px; display: flex; align-items: center; justify-content: space-between; gap: 8px; }
        .academic-special-day-head strong { color: #334155; font-size: .82em; }
        .academic-special-day-head button { border: 0; background: transparent; color: #64748B; font-family: inherit; font-size: .72em; font-weight: 800; cursor: pointer; }
        .academic-special-time-list { display: grid; }
        .academic-special-time-row {
            min-height: 36px; display: grid; grid-template-columns: 80px 140px minmax(210px, 1fr); align-items: center; gap: 8px;
            border-top: 1px solid #EEF2F7;
        }
        .academic-special-time-row > strong { color: #475569; font-size: .78em; }
        .academic-special-time-row > small { color: #94A3B8; font-size: .68em; font-weight: 800; font-variant-numeric: tabular-nums; }
        .academic-special-time-inputs { display: flex; align-items: center; justify-content: flex-start; gap: 5px; }
        .academic-special-time-inputs input { width: 100px; font-size: .82em; }
        .academic-special-time-inputs span { color: #94A3B8; }

        .academic-schedule-event-modal .studio-modal { width: min(540px, calc(100vw - 32px)); border-radius: 10px; }
        .academic-schedule-event-modal .studio-modal-head { align-items: center; padding: 12px 16px 11px; }
        .academic-schedule-event-modal .studio-modal-kicker:empty { display: none; }
        .academic-schedule-event-modal .studio-modal-head h3 { font-size: 1.18em; }
        .academic-schedule-event-modal .studio-modal-close { width: 32px; height: 32px; border-radius: 8px; }
        .academic-schedule-event-modal .studio-modal-content { padding: 13px 16px 15px; background: #F8FAFC; }
        .academic-schedule-event-editor { --schedule-event-control-height: 40px; display: grid; gap: 10px; }
        .academic-schedule-event-editor .studio-field { gap: 4px; font-size: .86em; }
        .academic-schedule-event-editor .studio-field input {
            height: var(--schedule-event-control-height); min-height: var(--schedule-event-control-height);
            padding: 0 10px; border-radius: 8px; line-height: 1.2;
        }
        .academic-schedule-event-editor .studio-field input:focus,
        .calendar-event-editor-card .studio-field input:focus {
            border-color: #34D399; outline: 3px solid rgba(16,185,129,.12);
        }
        .academic-schedule-event-main-fields { display: grid; gap: 10px; }
        .academic-schedule-event-type-field { min-width: 0; margin: 0; padding: 0; border: 0; }
        .academic-schedule-event-type-field legend { margin: 0 0 4px; padding: 0; color: #334155; font-size: .86em; font-weight: 900; }
        .academic-schedule-event-type-options { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; }
        .academic-schedule-event-type-input {
            position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden;
            clip: rect(0 0 0 0); clip-path: inset(50%); border: 0; white-space: nowrap;
        }
        .academic-schedule-event-type-option {
            --academic-event-type-color: #64748B;
            display: flex; align-items: center; justify-content: center; gap: 7px; min-width: 0; min-height: 38px;
            border: 1px solid #D8E1EE; border-radius: 8px; background: #FFFFFF; color: #475569;
            padding: 7px 8px; font-size: .82em; font-weight: 900; line-height: 1.2; text-align: center; cursor: pointer;
            transition: border-color .15s ease, background .15s ease, color .15s ease, box-shadow .15s ease;
        }
        .academic-schedule-event-type-option::before {
            content: ''; flex: 0 0 auto; width: 8px; height: 8px; border-radius: 999px; background: var(--academic-event-type-color);
        }
        .academic-schedule-event-type-option.teaching { --academic-event-type-color: #059669; }
        .academic-schedule-event-type-option.activity { --academic-event-type-color: #2563EB; }
        .academic-schedule-event-type-option.exam { --academic-event-type-color: #D97706; }
        .academic-schedule-event-type-option.meeting { --academic-event-type-color: #7C3AED; }
        .academic-schedule-event-type-option.personal { --academic-event-type-color: #0E7490; }
        .academic-schedule-event-type-option.holiday { --academic-event-type-color: #E11D48; }
        .academic-schedule-event-type-option:hover { border-color: #94A3B8; background: #F8FAFC; color: #1E293B; }
        .academic-schedule-event-type-input:checked + .academic-schedule-event-type-option {
            border-color: var(--academic-event-type-color); background: color-mix(in srgb, var(--academic-event-type-color) 8%, white); color: #111827;
            box-shadow: 0 0 0 1px color-mix(in srgb, var(--academic-event-type-color) 16%, transparent);
        }
        .academic-schedule-event-type-input:focus-visible + .academic-schedule-event-type-option {
            outline: 3px solid rgba(16,185,129,.18); outline-offset: 2px;
        }
        .academic-schedule-form-status { min-height: 0; color: #BE123C; font-size: .8em; font-weight: 800; }
        .academic-schedule-form-status:empty { display: none; }
        .academic-schedule-event-actions { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding-top: 1px; }
        .academic-schedule-event-actions .studio-actions { margin: 0; }
        .academic-schedule-event-actions button { min-height: 38px; padding: 8px 12px; }
        .academic-schedule-day-event-list { display: grid; }
        .academic-schedule-day-event-list button {
            display: flex; justify-content: space-between; gap: 12px; border: 0; border-bottom: 1px solid #E2E8F0;
            padding: 11px 4px; background: transparent; color: #334155; font-family: inherit; text-align: left; cursor: pointer;
        }
        .academic-schedule-day-event-list button:last-child { border-bottom: 0; }
        .academic-schedule-day-event-list span { font-weight: 900; }
        .academic-schedule-day-event-list small { color: #64748B; font-weight: 800; }
        .academic-schedule-source-editor { display: grid; gap: 12px; }
        .academic-schedule-source-editor .studio-actions { justify-content: flex-end; margin: 0; }
        .studio-echo-preview { margin-top: 12px; }
        .studio-pill-list { display: flex; gap: 8px; flex-wrap: wrap; }
        .studio-pill { border-radius: 999px; border: 1px solid #E2E8F0; background: #F8FAFC; padding: 6px 10px; font-weight: 900; color: #334155; }
        .studio-record-pill {
            font-family: inherit; font-size: 1em; cursor: pointer; display: inline-flex; align-items: center; gap: 6px;
        }
        .studio-record-pill:hover, .studio-record-pill.active { background: #ECFDF5; border-color: #86EFAC; color: #047857; }
        .studio-record-pill span {
            min-width: 18px; height: 18px; border-radius: 999px; display: inline-flex; align-items: center; justify-content: center;
            padding: 0 5px; background: #D97706; color: #FFFFFF; font-size: .72em;
        }
        .studio-record-panel { align-self: start; background: #FFFFFF; }
        .studio-record-panel .studio-record-tabs { margin-top:0; }
        .studio-profile-toolbar { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:12px; overflow-x:auto; }
        .studio-profile-toolbar .studio-record-tabs { flex:0 0 auto; flex-wrap:nowrap; margin:0; }
        .studio-profile-toolbar button { white-space:nowrap; }
        .studio-profile-tab-body { display: grid; gap: 12px; }
        .studio-profile-analytics { display: grid; grid-template-columns: 260px minmax(0, 1fr); gap: 16px; align-items: center; margin-top: 14px; }
        .studio-radar-wrap { border: 1px solid #E2E8F0; border-radius: 8px; background: #F8FAFC; padding: 10px; display: grid; place-items: center; gap: 6px; }
        .studio-radar-wrap.profile { position: relative; background: #FFFFFF; justify-self: end; width: 310px; }
        .studio-radar-score { justify-self: end; color: #64748B; font-weight: 900; font-size: .9em; }
        .studio-radar { width: 220px; height: 220px; overflow: visible; }
        .studio-radar-ring { fill: none; stroke: #CBD5E1; stroke-width: 1; }
        .studio-radar-axis { stroke: #CBD5E1; stroke-width: 1; }
        .studio-radar-area.current { fill: rgba(4,120,87,.26); stroke: #047857; stroke-width: 3; }
        .studio-radar-area.previous { fill: rgba(217,119,6,.16); stroke: #D97706; stroke-width: 2.5; stroke-dasharray: 5 4; }
        .studio-radar-dot { fill: #D97706; stroke: #FFFFFF; stroke-width: 2; }
        .studio-radar-label { fill: #334155; font-size: 12px; font-weight: 900; }
        .studio-radar-legend { display: flex; gap: 12px; justify-content: center; color: #475569; font-weight: 900; font-size: .92em; }
        .studio-radar-legend span { display: inline-flex; align-items: center; gap: 5px; }
        .studio-radar-legend i { width: 10px; height: 10px; border-radius: 999px; display: inline-block; }
        .studio-radar-legend i.current { background: #047857; }
        .studio-radar-legend i.previous { background: #D97706; }
        .studio-week-compare { display: grid; gap: 9px; align-content: start; }
        .studio-week-compare-item {
            display: grid; grid-template-columns: minmax(110px, 1fr) 78px minmax(120px, 1.1fr); gap: 10px; align-items: center;
            border: 1px solid #E2E8F0; border-radius: 8px; background: #FFFFFF; padding: 10px 12px; color: #334155; font-weight: 900;
        }
        .studio-week-compare-item strong { color: #047857; font-size: 1.3em; }
        .studio-week-compare-item em { color: #64748B; font-style: normal; font-size: .92em; }
        .studio-dimension-bars { display: grid; gap: 9px; margin-top: 12px; }
        .studio-dim-row { display: grid; grid-template-columns: 90px 1fr 54px; gap: 10px; align-items: center; font-weight: 900; color: #334155; }
        .studio-dim-track { height: 12px; border-radius: 999px; background: #E2E8F0; overflow: hidden; }
        .studio-dim-fill { height: 100%; width: 0%; border-radius: inherit; background: linear-gradient(90deg, #86EFAC, #FDE047, #FB7185); }
        .studio-history-list { display: grid; gap: 8px; margin-top: 10px; }
        .studio-history-item { border: 1px solid #E2E8F0; border-radius: 8px; padding: 9px 10px; background: #F8FAFC; color: #334155; font-weight: 800; line-height: 1.45; }
        .studio-record-tabs { display: flex; gap: 7px; flex-wrap: wrap; margin: 12px 0 10px; }
        .studio-record-tabs button {
            border: 1px solid #CBD5E1; background: #FFFFFF; color: #334155; border-radius: 999px;
            padding: 5px 9px; font-family: inherit; font-weight: 900; cursor: pointer;
        }
        .studio-record-tabs button.active { background: #ECFDF5; border-color: #86EFAC; color: #047857; }
        .studio-record-tabs.readonly button { cursor: pointer; }
        .studio-record-list { display: grid; gap: 7px; margin-top: 14px; }
        .studio-record-item { color: #334155; font-weight: 900; line-height: 1.45; }
        .studio-record-item.cloud { color: #B45309; }
        .studio-record-item.sunshine, .studio-record-item.rainbow { color: #047857; }
        .studio-conversation-list { display: grid; gap: 10px; }
        .studio-conversation-card {
            display: grid; grid-template-columns: minmax(0, 1fr) 164px; gap: 14px; align-items: start;
            border: 1px solid #E2E8F0; border-radius: 8px; background: #FFFFFF; padding: 13px 16px;
            color: #334155; font-weight: 800; line-height: 1.5; box-shadow: 0 5px 14px rgba(15,23,42,.035);
        }
        .studio-conversation-content { min-width: 0; }
        .studio-conversation-card.done { background: #F8FAFC; opacity: .86; }
        .studio-conversation-card.readonly { grid-template-columns: minmax(0, 1fr); }
        .studio-conversation-meta {
            margin-bottom: 6px; color: #111827; font-size: .98em; font-weight: 900; line-height: 1.45;
            overflow-wrap: anywhere;
        }
        .studio-conversation-meta span { color: #94A3B8; font-weight: 900; padding: 0 3px; }
        .studio-conversation-meta.open { color: #92400E; }
        .studio-conversation-meta.done { color: #047857; }
        .studio-conversation-summary {
            color: #334155; font-size: .96em; line-height: 1.55;
            display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
        }
        .studio-conversation-raw { margin-top: 8px; color: #64748B; font-size: .92em; }
        .studio-conversation-raw summary { cursor: pointer; color: #475569; font-weight: 900; width: max-content; }
        .studio-followup-box {
            margin-top: 8px; border: 1px solid #FDE68A; border-radius: 8px; background: #FFFBEB;
            color: #92400E; padding: 8px 10px; font-weight: 900;
        }
        .studio-followup-box.compact {
            display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 8px; align-items: start;
            padding: 7px 9px; font-size: .92em; line-height: 1.45;
        }
        .studio-followup-box.compact strong { color: #9A3412; }
        .studio-followup-box.compact span {
            min-width: 0; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
        }
        .studio-followup-line {
            margin-top: 5px; color: #92400E; font-size: .94em; line-height: 1.45; font-weight: 900;
            display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
        }
        .studio-followup-line strong { color: #9A3412; }
        .conversation-chip-row { display: flex; gap: 6px; flex-wrap: wrap; margin-top: 8px; }
        .conversation-chip {
            display: inline-flex; align-items: center; min-height: 24px; border: 1px solid #E2E8F0; border-radius: 999px;
            background: #F8FAFC; color: #64748B; padding: 2px 8px; font-size: .82em; font-weight: 900;
        }
        .conversation-chip.warn { border-color: #FDE68A; background: #FFFBEB; color: #92400E; }
        .studio-conversation-actions {
            display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; width: 164px; justify-self: end;
        }
        .studio-conversation-actions .studio-secondary-btn,
        .studio-conversation-actions .studio-small-btn {
            width: 100%; min-width: 0; height: 36px; padding: 0 6px; font-size: .9em; border-radius: 8px;
            display: inline-flex; align-items: center; justify-content: center;
        }
        .studio-conversation-actions button:disabled {
            opacity: .45; cursor: not-allowed; background: #F8FAFC; color: #94A3B8;
        }
        .conversation-form-top {
            display: grid; grid-template-columns: minmax(120px, .7fr) minmax(120px, .7fr) minmax(180px, 1.2fr) auto;
            gap: 10px; align-items: end;
        }
        .conversation-ai-btn {
            height: 42px; min-height: 42px; align-self: end; display: inline-flex; align-items: center; justify-content: center;
            padding: 0 14px; line-height: 1;
        }
        .conversation-form-body {
            display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin-top: 12px;
        }
        .conversation-form-follow {
            display: grid; grid-template-columns: minmax(0, 1fr) 220px; gap: 12px; margin-top: 12px; align-items: stretch;
        }
        .conversation-follow-side { display: grid; align-content: start; gap: 10px; }
        .studio-conversation-form .studio-field { gap: 5px; }
        .studio-conversation-form .studio-field input,
        .studio-conversation-form .studio-field select {
            height: 42px; min-height: 42px; padding: 0 10px; line-height: 42px; display: block;
            font-size: 1.08em;
        }
        .studio-conversation-form .studio-field select {
            appearance: auto; line-height: normal;
        }
        .studio-conversation-form textarea#conversationRawText,
        .studio-conversation-form textarea#conversationSummary {
            min-height: 150px; height: 150px; resize: vertical; font-size: 1.08em; line-height: 1.72;
        }
        .studio-conversation-form textarea#conversationFollowUpText {
            min-height: 82px; height: 82px; resize: vertical; font-size: 1.08em; line-height: 1.72;
        }
        .studio-conversation-form .studio-check-field {
            min-height: 40px; margin-top: 0 !important; padding: 8px 10px; border-color: #D1FAE5;
        }
        .studio-drag-list { display: flex; gap: 8px; flex-wrap: wrap; justify-content: center; align-content: center; margin: 2px 0; min-height: 42px; }
        .studio-drag-student {
            display: inline-flex; align-items: center; justify-content: center; border: 1px solid #BBF7D0; background: #F0FDF4; color: #065F46; border-radius: 999px;
            padding: 6px 10px; font-family: inherit; font-weight: 900; cursor: grab; min-width: 0;
        }
        .studio-drag-student span { min-width: 0; max-width: 7em; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
        .studio-drag-student[draggable="false"] { cursor: pointer; }
        .studio-drag-student.maturity-seed { background: #F8FAFC; border-color: #CBD5E1; color: #475569; }
        .studio-drag-student.maturity-growing { background: #FEF3C7; border-color: #FDE68A; color: #92400E; }
        .studio-drag-student.maturity-near { background: #DCFCE7; border-color: #86EFAC; color: #166534; }
        .studio-drag-student.maturity-mature { background: #047857; border-color: #047857; color: #FFFFFF; }
        .studio-group-card:hover { border-color: #86EFAC; }
        .studio-report-preview { margin-top: 14px; display: grid; gap: 12px; }
        .studio-modal-overlay {
            position: fixed; inset: 0; z-index: 3200; display: none; place-items: center; padding: 28px;
            background: rgba(15,23,42,.42); backdrop-filter: blur(3px);
        }
        .studio-modal-overlay.open { display: grid; }
        .garden-homework-register-overlay { position:fixed; inset:0; z-index:3300; display:none; place-items:center; padding:28px; background:rgba(15,23,42,.42); backdrop-filter:blur(3px); }
        .garden-homework-register-overlay.open { display:grid; }
        #gardenHomeworkRegisterContent { width:min(1500px, calc(100vw - 48px)); max-height:calc(100vh - 56px); overflow:auto; border-radius:12px; background:#FFFFFF; box-shadow:0 20px 55px rgba(15,23,42,.28); }
        #gardenHomeworkRegisterContent .homework-pool-page { margin:0; }
        #gardenHomeworkRegisterContent .homework-register-scroll { max-height:calc(100vh - 290px); }
        .studio-modal {
            width: min(980px, calc(100vw - 48px)); max-height: min(860px, calc(100vh - 56px)); overflow: hidden;
            background: #FFFFFF; border: 1px solid #CBD5E1; border-radius: 8px; box-shadow: 0 24px 60px rgba(15,23,42,.24);
            display: grid; grid-template-rows: auto minmax(0, 1fr);
        }
        .studio-modal-head {
            display: flex; justify-content: space-between; gap: 16px; align-items: flex-start;
            padding: 18px 20px 14px; border-bottom: 1px solid #E2E8F0; background: #FFFFFF;
        }
        .studio-modal-kicker { color: #047857; font-weight: 900; font-size: .9em; margin-bottom: 4px; }
        .studio-modal-head h3 { margin: 0; color: #111827; font-size: 1.45em; letter-spacing: 0; }
        .studio-modal-close {
            width: 36px; height: 36px; border: 1px solid #CBD5E1; border-radius: 8px; background: #FFFFFF;
            color: #334155; font-size: 1.35em; line-height: 1; font-family: inherit; font-weight: 900; cursor: pointer;
        }
        .studio-modal-content { overflow: auto; padding: 18px 20px 22px; background: #F8FAFC; }
        .calendar-review-modal .studio-modal { width: min(640px, calc(100vw - 48px)); }
        .calendar-review-modal .studio-modal-head { align-items: center; padding: 14px 16px; }
        .calendar-review-modal .studio-modal-kicker { display: none; }
        .calendar-review-modal .studio-modal-head h3 { font-size: 1.2em; }
        .calendar-review-modal .studio-modal-close { width: 32px; height: 32px; }
        .calendar-review-modal .studio-modal-content { padding: 16px; background: #FFFFFF; }
        .calendar-review-input {
            width: 100%; min-height: 140px; resize: vertical; border: 1px solid #CBD5E1; border-radius: 8px;
            padding: 11px 12px; background: #FFFFFF; color: #1F2937; font-family: inherit; font-weight: 800; line-height: 1.55;
        }
        .calendar-review-input:focus { border-color: #60A5FA; outline: 3px solid rgba(59,130,246,.18); }
        .calendar-review-actions { justify-content: flex-end; margin-top: 10px; }
        .studio-wish-item { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 10px; padding: 10px; border: 1px solid #E2E8F0; border-radius: 8px; margin-bottom: 8px; }
        .studio-wish-item input[type="checkbox"] { width: 20px; height: 20px; accent-color: #D97706; }
        .ai-section { border-color: #BAE6FD; background: #F8FAFC; }
        .ai-draft-card { border: 1px solid #CBD5E1; border-radius: 8px; padding: 12px; background: #FFFFFF; margin-top: 12px; }
        .ai-draft-card.approved { border-color: #86EFAC; background: #F0FDF4; }
        .ai-draft-card.rejected { border-color: #FCA5A5; background: #FFF1F2; opacity: .82; }
        .ai-draft-head { display: flex; justify-content: space-between; gap: 10px; align-items: center; color: #0F172A; font-weight: 900; margin-bottom: 8px; }
        .ai-draft-head span { color: #64748B; font-size: .9em; }
        .ai-draft-text {
            width: 100%; min-height: 190px; resize: vertical; border: 1px solid #CBD5E1; border-radius: 8px;
            padding: 14px 16px; font-family: inherit; font-size: 1.12em; font-weight: 800; color: #334155; line-height: 1.75; background: #FFFFFF;
            white-space: pre-wrap;
        }
        .ai-draft-task-weekly_echo .ai-draft-text { min-height: 96px; height: 96px; }
        .ai-warning { border: 1px solid #FDE68A; background: #FFFBEB; color: #92400E; border-radius: 8px; padding: 8px 10px; font-weight: 900; margin: 8px 0; }
        .ai-eval-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 12px; margin-top: 12px; }
        .ai-eval-provider { border: 1px solid #CBD5E1; border-radius: 8px; padding: 12px; background: #FFFFFF; }
        .ai-eval-item { border-top: 1px solid #E2E8F0; padding-top: 10px; margin-top: 10px; color: #334155; font-weight: 800; line-height: 1.55; }
        .studio-rule-header {
            display: grid; gap: 8px; margin-top: 12px; padding: 0 0 6px;
            color: #64748B; font-size: .9em; font-weight: 900; border-bottom: 1px solid #E2E8F0;
        }
        .studio-rule-header.has-short { grid-template-columns: 58px minmax(92px, .78fr) minmax(70px, .55fr) 78px; }
        .studio-rule-header.no-short { grid-template-columns: 58px minmax(110px, .85fr) 78px; }
        .studio-rule-row {
            display: grid; grid-template-columns: 58px minmax(92px, .78fr) minmax(70px, .55fr) 78px;
            gap: 8px; align-items: center; border-bottom: 1px solid #E2E8F0; padding: 10px 0;
        }
        .studio-rule-row.no-short { grid-template-columns: 58px minmax(110px, .85fr) 78px; }
        .studio-rule-row.has-desc.has-short { grid-template-columns: 58px minmax(92px, .78fr) minmax(70px, .55fr) 78px; }
        .studio-rule-row.has-desc.no-short { grid-template-columns: 58px minmax(110px, .85fr) 78px; }
        .studio-rule-row.has-desc .rule-desc-field {
            grid-column: 1 / -1; display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; gap: 10px;
        }
        .studio-rule-row .studio-field { min-width: 0; gap: 0; font-size: 0; }
        .studio-rule-row .studio-field input { min-width: 0; padding: 8px 9px; }
        .studio-rule-row .rule-desc-field { color: #64748B; font-size: .9em; }
        .studio-rule-row .rule-score-field input { text-align: center; padding-right: 4px; }

        .studio-growth-scope-controls { display:flex; flex:0 0 auto; align-items:center; gap:8px; margin-left:auto; }
        .studio-growth-range-tabs { display:inline-flex; gap:4px; border:1px solid #E2E8F0; border-radius:10px; background:#F8FAFC; padding:3px; }
        .studio-growth-range-tabs button { border:0; border-radius:7px; background:transparent; color:#64748B; padding:6px 10px; font-family:inherit; font-weight:900; cursor:pointer; }
        .studio-growth-range-tabs button.active { background:#FFFFFF; color:#047857; box-shadow:0 1px 4px rgba(15,23,42,.1); }
        .studio-growth-all-domain { border:1px solid #CBD5E1; border-radius:999px; background:#FFFFFF; color:#475569; padding:6px 10px; font-family:inherit; font-weight:900; cursor:pointer; }
        .studio-growth-all-domain.active { border-color:#86EFAC; background:#ECFDF5; color:#047857; }
        .studio-growth-domain-grid { display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:7px; width:100%; }
        .studio-growth-domain-card { min-width:0; display:grid; grid-template-columns:82px minmax(0,1fr) auto; align-items:center; gap:8px; border:1px solid #D7E2EC; border-left:4px solid #94A3B8; border-radius:9px; background:#FFFFFF; padding:9px 10px; text-align:left; font-family:inherit; }
        button.studio-growth-domain-card { cursor:pointer; transition:border-color .14s ease, box-shadow .14s ease, transform .14s ease; }
        button.studio-growth-domain-card:hover { transform:translateY(-1px); box-shadow:0 7px 16px rgba(15,23,42,.07); }
        .studio-growth-domain-card.selected { border-color:#34D399; box-shadow:0 0 0 2px rgba(52,211,153,.13); }
        .studio-growth-domain-card.domain-learning { border-left-color:#60A5FA; }
        .studio-growth-domain-card.domain-selfDiscipline { border-left-color:#A78BFA; }
        .studio-growth-domain-card.domain-homework { border-left-color:#FBBF24; }
        .studio-growth-domain-card.domain-responsibility { border-left-color:#34D399; }
        .studio-growth-domain-card.domain-cooperation { border-left-color:#F472B6; }
        .studio-growth-domain-card strong { color:#0F172A; font-size:.88em; }
        .studio-growth-domain-card span { min-width:0; color:#334155; font-size:.78em; font-weight:900; line-height:1.35; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
        .studio-growth-domain-card em { color:#B45309; font-size:.72em; font-style:normal; font-weight:900; white-space:nowrap; }
        .studio-growth-domain-card.pending { border-style:dashed; background:#F8FAFC; }
        .studio-growth-domain-card.pending span { color:#94A3B8; }
        .studio-growth-domain-grid.compact { grid-template-columns:repeat(5, minmax(0,1fr)); gap:5px; margin-top:8px; }
        .studio-growth-domain-grid.compact .studio-growth-domain-card { grid-template-columns:1fr; align-items:start; padding:7px; }
        .studio-growth-domain-grid.compact .studio-growth-domain-card strong { font-size:.76em; }
        .studio-growth-domain-grid.compact .studio-growth-domain-card span { font-size:.68em; }
        .studio-growth-domain-grid.compact .studio-growth-domain-card em { display:none; }
        .studio-growth-profile .studio-growth-domain-grid { margin-top:0; }
        .studio-growth-domain-detail { display:grid; gap:10px; border-top:1px solid #E2E8F0; padding-top:12px; }
        .studio-growth-domain-detail-head { display:flex; align-items:center; justify-content:space-between; gap:12px; }
        .studio-growth-domain-detail-head h4 { margin:0; color:#0F172A; font-size:1.05em; }
        .studio-growth-domain-detail-head span { border-radius:999px; background:#FFFBEB; color:#B45309; padding:4px 8px; font-size:.72em; font-weight:900; }
        .studio-growth-evidence-list { display:grid; gap:8px; }
        .studio-growth-evidence-item { display:grid; gap:5px; border:1px solid #E2E8F0; border-radius:9px; background:#FFFFFF; padding:9px 10px; color:#334155; }
        .studio-growth-evidence-item.signal-support, .studio-growth-evidence-item.signal-repeat { background:#FFFDF7; border-color:#FDE68A; }
        .studio-growth-evidence-item.signal-repair { background:#F5FCF8; border-color:#BBF7D0; }
        .studio-growth-evidence-head { display:grid; grid-template-columns:auto minmax(0,1fr) auto; align-items:center; gap:7px; }
        .studio-growth-evidence-head > span { border-radius:999px; background:#EFF6FF; color:#1D4ED8; padding:3px 7px; font-size:.68em; font-weight:900; white-space:nowrap; }
        .signal-support .studio-growth-evidence-head > span, .signal-repeat .studio-growth-evidence-head > span { background:#FEF3C7; color:#92400E; }
        .signal-repair .studio-growth-evidence-head > span { background:#DCFCE7; color:#047857; }
        .studio-growth-evidence-head strong { min-width:0; color:#0F172A; font-size:.86em; }
        .studio-growth-evidence-head time { color:#94A3B8; font-size:.7em; font-weight:800; }
        .studio-growth-evidence-item > div:not(.studio-growth-evidence-head) { color:#475569; font-size:.8em; font-weight:800; line-height:1.45; }
        .studio-growth-evidence-item > small { color:#94A3B8; font-size:.7em; font-weight:800; }
        .studio-growth-evidence-pair { display:grid; grid-template-columns:minmax(0,1fr) 24px minmax(0,1fr); align-items:stretch; border:1px solid #E2E8F0; border-radius:10px; overflow:hidden; background:#FFFFFF; }
        .studio-growth-evidence-pair.is-resolved { border-color:#BBF7D0; }
        .studio-growth-evidence-pair.is-open { border-color:#FDE68A; }
        .studio-growth-pair-side { min-width:0; display:grid; align-content:start; gap:5px; padding:10px 11px; }
        .studio-growth-pair-side.support-side { background:#FFFDF7; }
        .studio-growth-pair-side.repair-side { background:#F5FCF8; }
        .studio-growth-pair-side.repair-side.pending { background:#FAFAF9; }
        .studio-growth-pair-head { display:flex; align-items:center; justify-content:space-between; gap:8px; }
        .studio-growth-pair-head > span { border-radius:999px; background:#FEF3C7; color:#92400E; padding:3px 7px; font-size:.68em; font-weight:900; white-space:nowrap; }
        .studio-growth-pair-side.repair-side .studio-growth-pair-head > span { background:#DCFCE7; color:#047857; }
        .studio-growth-pair-side.repair-side.pending .studio-growth-pair-head > span { background:#F1F5F9; color:#64748B; }
        .studio-growth-pair-head time { color:#94A3B8; font-size:.7em; font-weight:800; }
        .studio-growth-pair-side > strong { color:#0F172A; font-size:.86em; }
        .studio-growth-pair-side > div:not(.studio-growth-pair-head) { color:#475569; font-size:.8em; font-weight:800; line-height:1.45; }
        .studio-growth-pair-side > small { color:#94A3B8; font-size:.7em; font-weight:800; }
        .studio-growth-pair-side.repair-side.pending > strong, .studio-growth-pair-side.repair-side.pending > div:not(.studio-growth-pair-head), .studio-growth-pair-side.repair-side.pending > small { color:#94A3B8; }
        .studio-growth-pair-arrow { display:grid; place-items:center; background:#FFFFFF; color:#94A3B8; font-size:1em; font-weight:900; }
        .studio-growth-empty { border:1px dashed #CBD5E1; border-radius:9px; background:#F8FAFC; color:#64748B; padding:14px; text-align:center; font-size:.82em; font-weight:800; }
        .studio-score-status.repeat { background:#F1F5F9; color:#475569; }
        .studio-score-status.resolved { background:#ECFDF5; color:#047857; }
        .studio-score-status.pending { background:#FFF7ED; color:#C2410C; }
        .studio-score-status.domain { background:#F1F5F9; color:#475569; }
        .studio-score-status.domain-learning { background:#EFF6FF; color:#1D4ED8; }
        .studio-score-status.domain-selfDiscipline { background:#F5F3FF; color:#6D28D9; }
        .studio-score-status.domain-homework { background:#FFFBEB; color:#B45309; }
        .studio-score-status.domain-responsibility { background:#ECFDF5; color:#047857; }
        .studio-score-status.domain-cooperation { background:#FDF2F8; color:#BE185D; }
        .studio-score-status.domain-unclassified { background:#F1F5F9; color:#475569; }
        .studio-behavior-rule-list { display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:7px; }
        .studio-behavior-rule-list span { display:flex; align-items:center; justify-content:space-between; gap:8px; border:1px solid #E2E8F0; border-radius:8px; background:#FFFFFF; padding:8px 9px; color:#334155; font-weight:900; }
        .studio-behavior-rule-list strong { min-width:0; display:flex; align-items:center; gap:6px; }
        .studio-behavior-rule-list i { width:22px; height:22px; flex:0 0 22px; display:block; color:#64748B; font-style:normal; }
        .studio-behavior-rule-list i .behavior-icon-svg { width:100%; height:100%; }
        .studio-behavior-rule-list em { color:#64748B; font-size:.74em; font-style:normal; white-space:nowrap; }
        .studio-seat-toolbar { display: flex; align-items: center; justify-content: flex-end; flex-wrap: wrap; gap: 7px; }
        .studio-seat-toolbar.editing { border-radius: 11px; background: #F0FDFA; padding: 6px; }
        .studio-tool-btn {
            min-height: 38px; border: 1px solid #CBD5E1; border-radius: 9px; background: #FFFFFF; color: #334155;
            padding: 8px 13px; font-family: inherit; font-weight: 900; cursor: pointer; transition: background .14s ease, border-color .14s ease, color .14s ease;
        }
        .studio-tool-btn:hover:not(:disabled) { border-color: #94A3B8; background: #F8FAFC; }
        .studio-tool-btn:disabled { cursor: not-allowed; opacity: .42; }
        .studio-toolbar-divider { width: 1px; height: 26px; margin: 0 3px; background: #E2E8F0; }
        .studio-split-wrap { position: relative; display: inline-flex; }
        .studio-split-wrap .studio-tool-main { border-radius: 9px 0 0 9px; }
        .studio-split-wrap .studio-tool-caret { min-width: 34px; padding: 8px; margin-left: -1px; border-radius: 0 9px 9px 0; }
        .studio-tool-btn.studio-tool-accent { border-color: #0F766E; background: #0F766E; color: #FFFFFF; }
        .studio-tool-btn.studio-tool-accent:hover { border-color: #115E59; background: #115E59; }
        .studio-seat-menu { position: relative; }
        .studio-seat-menu > summary { list-style: none; display: flex; align-items: center; justify-content: center; }
        .studio-seat-menu > summary::-webkit-details-marker { display: none; }
        .studio-seat-menu-popover {
            position: absolute; z-index: 90; top: calc(100% + 7px); right: 0; min-width: 138px;
            display: grid; gap: 3px; padding: 6px; border: 1px solid #CBD5E1; border-radius: 10px;
            background: #FFFFFF; box-shadow: 0 16px 34px rgba(15,23,42,.16);
        }
        .studio-seat-menu-popover button {
            width: 100%; border: 0; border-radius: 7px; background: transparent; color: #334155;
            padding: 8px 10px; text-align: left; white-space: nowrap; font-family: inherit; font-weight: 900; cursor: pointer;
        }
        .studio-seat-menu-popover button:hover { background: #F1F5F9; }
        .studio-seat-menu-popover button.danger { color: #BE123C; }
        .studio-seat-more-menu > summary { min-width: 42px; padding-left: 10px; padding-right: 10px; letter-spacing: .12em; }
        .studio-tool-popover {
            position: absolute; z-index: 80; top: calc(100% + 8px); right: 0; display: none; width: min(430px, calc(100vw - 48px));
            padding: 12px; border: 1px solid #CBD5E1; border-radius: 12px; background: #FFFFFF; box-shadow: 0 18px 45px rgba(15,23,42,.18); text-align: left;
        }
        .studio-tool-popover.open { display: grid; gap: 10px; }
        .studio-tool-popover-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding-bottom: 9px; border-bottom: 1px solid #E2E8F0; }
        .studio-tool-popover-head strong { color: #0F172A; }
        .studio-tool-popover-head span { color: #64748B; font-size: .82em; font-weight: 800; }
        .studio-plan-history-list { display: grid; gap: 8px; max-height: 360px; overflow: auto; }
        .studio-plan-item { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 10px; align-items: center; padding: 10px; border: 1px solid #E2E8F0; border-radius: 9px; }
        .studio-plan-item.current { border-color: #5EEAD4; background: #F0FDFA; }
        .studio-plan-item > div:first-child { min-width: 0; display: grid; gap: 3px; }
        .studio-plan-item > div:first-child strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: #0F172A; }
        .studio-plan-item > div:first-child span { color: #64748B; font-size: .78em; font-weight: 800; }
        .studio-plan-actions { display: flex; gap: 5px; }
        .studio-plan-actions button, .studio-rotation-adds button, .studio-rotation-chip {
            border: 1px solid #CBD5E1; border-radius: 7px; background: #FFFFFF; color: #475569; padding: 5px 7px; font-family: inherit; font-size: .78em; font-weight: 900; cursor: pointer;
        }
        .studio-plan-actions button:disabled { opacity: .4; cursor: default; }
        .studio-plan-actions button.danger { border-color: #FECDD3; color: #BE123C; }
        .studio-tool-empty { padding: 20px 8px; text-align: center; color: #94A3B8; font-weight: 800; }
        .studio-rotation-direction-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
        .studio-custom-rotation { display: grid; gap: 8px; padding-top: 4px; }
        .studio-custom-rotation > strong { color: #334155; font-size: .88em; }
        .studio-rotation-chips, .studio-rotation-adds { display: flex; flex-wrap: wrap; gap: 6px; }
        .studio-rotation-chip.next { border-color: #0D9488; background: #CCFBF1; color: #0F766E; }
        .studio-rotation-adds button { background: #F8FAFC; }
        .studio-rotation-note { border-radius: 8px; background: #F0FDFA; color: #0F766E; padding: 8px 10px; font-size: .84em; font-weight: 900; line-height: 1.45; }
        .studio-group-rotation-route {
            display: flex; align-items: center; flex-wrap: wrap; gap: 5px; border: 1px solid #99F6E4; border-radius: 9px;
            background: #F0FDFA; padding: 9px 10px; color: #0F766E; font-size: .8em; font-weight: 900; line-height: 1.45;
        }
        .studio-group-rotation-route span { border-radius: 6px; background: #FFFFFF; padding: 3px 6px; white-space: nowrap; }
        .studio-group-rotation-route span.start { background: #0F766E; color: #FFFFFF; }
        .studio-group-rotation-route i { color: #14B8A6; font-style: normal; }

        .studio-seat-feature-search {
            position: relative; display: flex; align-items: center; min-width: 230px; min-height: 38px;
            border: 1px solid #CBD5E1; border-radius: 8px; background: #FFFFFF;
        }
        .studio-seat-feature-search > span { position: absolute; left: 9px; color: #64748B; font-size: 1em; font-weight: 900; line-height: 1; pointer-events: none; }
        .studio-seat-feature-search input {
            width: 230px; min-height: 36px; border: 0; border-radius: 8px; background: transparent;
            padding: 5px 40px 5px 28px; color: #0F172A; font-family: inherit; font-weight: 800; outline: none;
        }
        .studio-seat-feature-search:focus-within { border-color: #0D9488; box-shadow: 0 0 0 3px rgba(13,148,136,.12); }
        .studio-seat-feature-search b { position: absolute; right: 7px; color: #0F766E; font-size: .74em; white-space: nowrap; }
        .studio-seat-conflict-banner {
            display: flex; align-items: center; justify-content: space-between; gap: 12px; margin: 0 0 10px;
            border: 1px solid #FDA4AF; border-radius: 10px; background: #FFF1F2; color: #9F1239; padding: 9px 11px; font-size: .88em; font-weight: 900;
        }
        .studio-seat-conflict-banner span { display: flex; align-items: center; gap: 8px; }
        .studio-seat-conflict-banner span > strong { width: 22px; height: 22px; display: grid; place-items: center; border-radius: 50%; background: #E11D48; color: #FFFFFF; }
        .studio-seat-conflict-banner button { border: 0; background: transparent; color: #BE123C; font-family: inherit; font-weight: 900; cursor: pointer; text-decoration: underline; white-space: nowrap; }

        .studio-seat-config { display: grid; gap: 8px; margin: 14px 0; }
        .studio-seat-summary {
            min-height: 64px; display: flex; align-items: center; flex-wrap: wrap; gap: 12px;
            border: 1px solid #D7E2EC; border-radius: 12px; background: #FFFFFF; padding: 10px 12px; color: #0F766E;
        }
        .studio-seat-summary > strong { flex: 0 0 auto; font-size: .96em; color: #334155; }
        .studio-seat-size-controls { display: flex; align-items: center; gap: 10px; }
        .studio-seat-size-control { display: grid; grid-template-columns: auto 30px 30px 30px; align-items: center; gap: 4px; }
        .studio-seat-size-control > span { color: #334155; font-size: .88em; }
        .studio-seat-size-control button {
            width: 30px; height: 30px; border: 1px solid #99F6E4; border-radius: 7px; background: #FFFFFF; color: #0F766E;
            padding: 0; font-family: inherit; font-size: 1.05em; font-weight: 900; cursor: pointer;
        }
        .studio-seat-size-control button:disabled { opacity: .35; cursor: not-allowed; }
        .studio-seat-size-control b { text-align: center; color: #0F172A; }
        .studio-seat-layout-aisles { display: flex; align-items: center; gap: 8px; padding-left: 12px; border-left: 1px solid #E2E8F0; }
        .studio-seat-layout-aisles > strong { color: #334155; font-size: .88em; }
        .studio-seat-assignment-status { margin-left: auto; border-radius: 999px; padding: 6px 10px; font-size: .84em; font-weight: 900; white-space: nowrap; }
        .studio-seat-assignment-status.complete { border: 1px solid #A7F3D0; background: #ECFDF5; color: #047857; }
        .studio-seat-assignment-status.pending { border: 1px solid #FDE68A; background: #FFFBEB; color: #B45309; }
        .studio-seat-unassigned-inline { margin-left: auto; min-width: 0; display: flex; align-items: center; justify-content: flex-end; gap: 8px; color: #92400E; }
        .studio-seat-unassigned-inline > strong { flex: 0 0 auto; font-size: .84em; white-space: nowrap; }
        .studio-seat-unassigned-strip {
            display: flex; align-items: center; gap: 10px; margin: 10px 0; border: 1px solid #FDE68A;
            border-radius: 10px; background: #FFFBEB; padding: 8px 10px; color: #92400E;
        }
        .studio-seat-unassigned-strip > strong { flex: 0 0 auto; font-size: .86em; }
        .studio-seat-unassigned-strip.editing { border-style: dashed; }
        .studio-seat-unassigned-list { display: flex; flex-wrap: wrap; gap: 6px; min-width: 0; }
        .studio-unassigned-chip {
            border: 1px solid #FDE68A; border-radius: 999px; background: #FFFBEB; color: #92400E; padding: 5px 9px;
            font-family: inherit; font-weight: 900; cursor: pointer; user-select: none;
        }
        .studio-seat-unassigned-strip.editing .studio-unassigned-chip { cursor: grab; }
        .studio-seat-unassigned-strip.editing .studio-unassigned-chip:active { cursor: grabbing; }
        .studio-unassigned-chip.dragging { opacity: .4; }
        .studio-seat-aisle-buttons { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 7px; }
        .studio-seat-aisle-btn {
            border: 1px solid #CBD5E1; border-radius: 10px; background: #F8FAFC; color: #64748B;
            padding: 7px 10px; font-family: inherit; font-weight: 900; cursor: pointer;
        }
        .studio-seat-aisle-btn.active { border-color: #0D9488; background: #CCFBF1; color: #0F766E; box-shadow: 0 0 0 2px rgba(13,148,136,.1); }
        .studio-seat-board {
            display: grid; gap: 12px; overflow-x: auto; padding: 20px; border: 1px solid #D7E2EC;
            border-radius: 18px; background: #F8FAFC; box-shadow: inset 0 1px 0 #FFFFFF;
        }
        .studio-seat-podium {
            width: min(360px, 62%); min-height: 50px; margin: 0 auto 8px; display: flex; align-items: center; justify-content: center;
            border-radius: 14px; background: #0F766E; color: #FFFFFF; font-size: 1.08em; font-weight: 900; letter-spacing: .35em;
            box-shadow: 0 8px 18px rgba(15,118,110,.16);
        }
        .studio-seat-row {
            display: grid; justify-content: center; gap: 6px; min-width: max-content;
        }
        .studio-seat-cell {
            position: relative; min-height: 68px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 5px; border: 1px solid #CBD5E1;
            border-radius: 12px; padding: 10px; background: #FFFFFF; color: #0F172A; font-weight: 900;
            box-shadow: 0 3px 8px rgba(15,23,42,.04); transition: transform .14s ease, border-color .14s ease, background .14s ease, opacity .14s ease;
        }
        .studio-seat-cell.occupied { cursor: pointer; user-select: none; }
        .studio-seat-cell.occupied:hover { border-color: #0D9488; transform: translateY(-1px); box-shadow: 0 6px 14px rgba(15,23,42,.08); }
        .studio-seat-board.editing .studio-seat-cell.occupied { cursor: grab; }
        .studio-seat-cell.gender-boy { border-color: #BFDBFE; background: #EFF6FF; }
        .studio-seat-cell.gender-girl { border-color: #FECDD3; background: #FFF1F2; }
        .studio-seat-cell.gender-neutral { border-color: #CBD5E1; background: #FFFFFF; }
        .studio-seat-board.editing .studio-seat-cell.occupied:active { cursor: grabbing; }
        .studio-seat-cell.empty { border-style: dashed; background: repeating-linear-gradient(135deg, #FFFFFF, #FFFFFF 8px, #F8FAFC 8px, #F8FAFC 16px); color: #94A3B8; }
        .studio-seat-cell.door {
            border-style: dashed; border-color: #94A3B8; background: repeating-linear-gradient(135deg, #F8FAFC, #F8FAFC 8px, #E2E8F0 8px, #E2E8F0 16px);
            color: #475569; cursor: not-allowed; box-shadow: none;
        }
        .studio-seat-cell.door-occupied { border-color: #E11D48; background: #FFF1F2; color: #9F1239; cursor: pointer; }
        .studio-seat-board.editing .studio-seat-cell.door-occupied { cursor: grab; }
        .studio-seat-door-note { color: #64748B; font-size: .7em; font-weight: 900; }
        .studio-seat-cell.door-occupied .studio-seat-door-note { color: #BE123C; }
        .studio-seat-cell.dragging { opacity: .38; transform: scale(.97); }
        .studio-seat-cell.drag-over { border-color: #0D9488; background: #ECFDF5; box-shadow: 0 0 0 3px rgba(13,148,136,.16); transform: translateY(-2px); }
        .studio-seat-name { max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; text-align: center; color: #0F172A; }
        .studio-seat-features { width: 100%; min-width: 0; display: flex; align-items: center; justify-content: center; gap: 7px; }
        .studio-seat-feature {
            min-width: 0; overflow: hidden; font-size: .74em; font-weight: 900; line-height: 1.3;
            text-align: center; white-space: nowrap; text-overflow: ellipsis;
        }
        .studio-seat-feature.positive { color: #047857; }
        .studio-seat-feature.attention { color: #C2410C; }
        .studio-seat-cell.feature-match { border-color: #0D9488; box-shadow: 0 0 0 3px rgba(13,148,136,.2), 0 5px 12px rgba(15,23,42,.08); transform: translateY(-1px); }
        .studio-seat-cell.feature-muted { opacity: .28; filter: saturate(.45); }
        .studio-seat-cell.avoid-conflict { border-color: #E11D48; box-shadow: 0 0 0 2px rgba(225,29,72,.13); }
        .studio-seat-conflict-dot {
            position: absolute; top: -7px; right: -7px; width: 21px; height: 21px; display: grid; place-items: center;
            border: 2px solid #FFFFFF; border-radius: 50%; background: #E11D48; color: #FFFFFF; font-size: .72em; line-height: 1;
            box-shadow: 0 3px 8px rgba(159,18,57,.25);
        }
        .studio-seat-cell.conflict-focus { animation: seat-conflict-pulse .55s ease-in-out 3 alternate; }
        @keyframes seat-conflict-pulse { from { transform: scale(1); } to { transform: scale(1.07); box-shadow: 0 0 0 5px rgba(225,29,72,.22); } }
        .studio-seat-aisle-track {
            min-height: 68px; border-left: 1px dashed #CBD5E1; border-right: 1px dashed #CBD5E1;
            background: repeating-linear-gradient(135deg, transparent, transparent 7px, rgba(148,163,184,.1) 7px, rgba(148,163,184,.1) 14px);
        }
        .studio-seat-aisle-track.labeled { display: flex; align-items: center; justify-content: center; }
        .studio-seat-aisle-track.labeled span {
            color: #94A3B8; font-size: .74em; font-weight: 900; writing-mode: vertical-rl; letter-spacing: .12em;
        }
        .studio-seat-dialog-backdrop {
            position: fixed; inset: 0; z-index: 4200; display: none; place-items: center; padding: 20px; background: rgba(15,23,42,.42); backdrop-filter: blur(2px);
        }
        .studio-seat-dialog-backdrop.open { display: grid; }
        .studio-seat-dialog {
            position: relative; width: min(460px, calc(100vw - 32px)); display: grid; gap: 16px; padding: 22px;
            border: 1px solid #CBD5E1; border-radius: 14px; background: #FFFFFF; box-shadow: 0 24px 60px rgba(15,23,42,.26);
        }
        .studio-seat-dialog h4 { margin: 0; color: #0F172A; font-size: 1.25em; }
        .studio-seat-dialog-close { position: absolute; top: 10px; right: 10px; width: 32px; height: 32px; border: 0; border-radius: 8px; background: #F1F5F9; color: #475569; font-size: 1.3em; cursor: pointer; }
        .studio-seat-dialog-warning { display: none; border: 1px solid #FDE68A; border-radius: 8px; background: #FFFBEB; color: #92400E; padding: 9px 10px; font-size: .88em; font-weight: 900; line-height: 1.5; }
        .studio-seat-dialog-warning.show { display: block; }
        .studio-seat-dialog-actions { display: flex; justify-content: flex-end; gap: 8px; }

        .studio-seat-detail-backdrop {
            position: fixed; inset: 0; z-index: 4100; display: none; justify-content: flex-end; background: rgba(15,23,42,.28); backdrop-filter: blur(1px);
        }
        .studio-seat-detail-backdrop.open { display: flex; }
        .studio-seat-detail {
            width: min(390px, calc(100vw - 24px)); height: 100%; display: flex; flex-direction: column; background: #FFFFFF;
            box-shadow: -20px 0 50px rgba(15,23,42,.18); animation: studio-seat-detail-in .18s ease-out;
        }
        @keyframes studio-seat-detail-in { from { transform: translateX(24px); opacity: .5; } to { transform: translateX(0); opacity: 1; } }
        .studio-seat-detail-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; padding: 20px; border-bottom: 1px solid #E2E8F0; }
        .studio-seat-detail-head > div { display: grid; gap: 3px; }
        .studio-seat-detail-head span { color: #0F766E; font-size: .82em; font-weight: 900; }
        .studio-seat-detail-head h4 { margin: 0; color: #0F172A; font-size: 1.38em; }
        .studio-seat-student-identity { display: flex; align-items: center; gap: 5px; min-width: 0; }
        .studio-seat-student-identity input {
            min-width: 0; max-width: min(260px, 60vw); border: 0; border-radius: 6px; background: transparent;
            padding: 2px 0; color: #0F172A; font-family: inherit; font-size: 1.38em; font-weight: 900; outline: none;
        }
        .studio-seat-student-identity input:hover { background: #F8FAFC; }
        .studio-seat-student-identity input:focus { background: #F1F5F9; box-shadow: 0 0 0 2px rgba(13,148,136,.12); }
        .studio-seat-student-identity select {
            width: 36px; flex: 0 0 36px; appearance: none; -webkit-appearance: none; border: 0; background: transparent; padding: 3px 4px;
            text-align: center; text-align-last: center; font-family: inherit; font-size: .88em; font-weight: 900; outline: none; cursor: pointer;
        }
        .studio-seat-student-identity select.girl { color: #BE185D; }
        .studio-seat-student-identity select.boy { color: #1D4ED8; }
        .studio-seat-detail-head > button { width: 34px; height: 34px; border: 0; border-radius: 8px; background: #F1F5F9; color: #475569; font-size: 1.35em; cursor: pointer; }
        .studio-seat-detail-head > .studio-seat-detail-head-actions { display: flex; grid-auto-flow: column; align-items: center; gap: 6px; }
        .studio-seat-detail-head-actions > button, .studio-seat-detail-menu > summary {
            width: 34px; height: 34px; display: grid; place-items: center; border: 0; border-radius: 8px;
            background: #F1F5F9; color: #475569; padding: 0; font-family: inherit; font-size: 1.24em; font-weight: 900; cursor: pointer;
        }
        .studio-seat-detail-menu .studio-seat-menu-popover { top: calc(100% + 5px); }
        .studio-seat-detail-body { display: grid; align-content: start; gap: 12px; overflow: auto; padding: 18px 20px 28px; }
        .studio-seat-detail-body textarea { min-height: 94px; resize: vertical; line-height: 1.55; }
        .studio-seat-detail-body .studio-field small { color: #64748B; font-size: .78em; line-height: 1.45; }
        .studio-seat-compact-field {
            min-height: 42px; display: grid; grid-template-columns: 82px minmax(0, 1fr); align-items: center;
            border: 1px solid #E2E8F0; border-radius: 9px; background: #FFFFFF; overflow: hidden;
        }
        .studio-seat-compact-field > span { padding-left: 12px; color: #334155; font-size: .86em; font-weight: 900; white-space: nowrap; }
        .studio-seat-compact-field select, .studio-seat-compact-field input {
            min-width: 0; height: 40px; border: 0; border-left: 1px solid #E2E8F0; padding: 8px 10px;
            background: #FFFFFF; color: #0F172A; font-family: inherit; font-weight: 800; outline: none;
        }
        .studio-seat-compact-field:focus-within { border-color: #0D9488; box-shadow: 0 0 0 3px rgba(13,148,136,.1); }
        .studio-seat-feature-editor { display: grid; gap: 8px; }
        .studio-seat-feature-editor-head { margin-bottom: 2px; }
        .studio-seat-feature-editor-head strong { color: #0F172A; }
        .studio-seat-feature-input {
            min-height: 42px; display: grid; grid-template-columns: 92px minmax(0, 1fr); align-items: center;
            border: 1px solid #E2E8F0; border-radius: 9px; background: #FFFFFF; overflow: hidden;
        }
        .studio-seat-feature-input > span { display: flex; align-items: center; gap: 7px; padding-left: 10px; color: #334155; font-size: .82em; font-weight: 900; white-space: nowrap; }
        .studio-seat-feature-input > span i { width: 8px; height: 8px; border-radius: 50%; }
        .studio-seat-feature-input input { min-width: 0; height: 40px; border: 0; border-left: 1px solid #E2E8F0; padding: 8px 10px; color: #0F172A; background: transparent; font-family: inherit; font-weight: 800; outline: none; }
        .studio-seat-feature-input:focus-within { box-shadow: 0 0 0 3px rgba(13,148,136,.1); }
        .studio-seat-feature-input.positive:focus-within { border-color: #34D399; }
        .studio-seat-feature-input.attention:focus-within { border-color: #F59E0B; box-shadow: 0 0 0 3px rgba(245,158,11,.1); }
        .studio-seat-feature-input.positive > span i { background: #10B981; }
        .studio-seat-feature-input.attention > span i { background: #F59E0B; }
        .studio-seat-relation-section { display: grid; gap: 7px; }
        .studio-seat-relation-list { display: flex; flex-wrap: wrap; gap: 6px; }
        .studio-seat-relation-item {
            display: inline-flex; align-items: center; gap: 3px; border: 1px solid #FECDD3; border-radius: 999px;
            background: #FFF1F2; color: #9F1239; padding: 3px 4px 3px 9px; font-size: .82em; font-weight: 900;
        }
        .studio-seat-relation-item button {
            width: 19px; height: 19px; display: grid; place-items: center; border: 0; border-radius: 50%;
            background: transparent; color: #BE123C; font-size: 1em; line-height: 1; cursor: pointer;
        }
        .studio-seat-relation-item button:hover { background: #FFE4E6; }
        .studio-seat-growth-details { border: 1px solid #E2E8F0; border-radius: 9px; background: #FFFFFF; overflow: hidden; }
        .studio-seat-growth-details > summary {
            min-height: 42px; display: flex; align-items: center; justify-content: space-between; gap: 10px;
            padding: 8px 12px; color: #334155; font-size: .86em; font-weight: 900; cursor: pointer; list-style: none;
        }
        .studio-seat-growth-details > summary::-webkit-details-marker { display: none; }
        .studio-seat-growth-details > summary strong { color: #0F766E; }
        .studio-seat-growth-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; padding: 0 10px 10px; }
        .studio-seat-growth-grid label { display: grid; grid-template-columns: 40px minmax(0, 1fr); align-items: center; gap: 6px; color: #64748B; font-size: .78em; font-weight: 900; }
        .studio-seat-growth-grid input {
            min-width: 0; width: 100%; height: 34px; border: 1px solid #CBD5E1; border-radius: 7px;
            padding: 5px 7px; color: #0F172A; font-family: inherit; font-weight: 900;
        }
        .studio-seat-profile-link {
            min-height: 38px; border: 1px solid #CBD5E1; border-radius: 9px; background: #F8FAFC; color: #334155;
            padding: 8px 12px; font-family: inherit; font-weight: 900; cursor: pointer;
        }
        .studio-seat-profile-link:hover { border-color: #0D9488; color: #0F766E; background: #F0FDFA; }
        .seat-group-settings-modal .studio-modal { width: min(700px, calc(100vw - 48px)); }
        .studio-seat-group-settings { display: grid; gap: 12px; }
        .studio-seat-group-list { display: grid; gap: 8px; }
        .studio-seat-group-row {
            display: grid; grid-template-columns: minmax(150px, .9fr) minmax(270px, 1.5fr) auto; align-items: center; gap: 10px;
            border: 1px solid #E2E8F0; border-radius: 10px; background: #FFFFFF; padding: 10px;
        }
        .studio-seat-group-main { min-width: 0; display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 7px; }
        .studio-seat-group-main input, .studio-seat-group-scores input {
            min-width: 0; width: 100%; height: 34px; border: 1px solid #CBD5E1; border-radius: 7px;
            padding: 5px 8px; color: #0F172A; font-family: inherit; font-weight: 900;
        }
        .studio-seat-group-main span { color: #64748B; font-size: .78em; font-weight: 900; white-space: nowrap; }
        .studio-seat-group-scores { display: grid; grid-template-columns: repeat(3, minmax(74px, 1fr)); gap: 7px; }
        .studio-seat-group-scores label { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; gap: 5px; color: #64748B; font-size: .76em; font-weight: 900; }
        .studio-seat-group-delete {
            border: 0; background: transparent; color: #BE123C; padding: 7px; font-family: inherit; font-weight: 900; cursor: pointer;
        }
        .studio-seat-group-delete:disabled { color: #CBD5E1; cursor: not-allowed; }
        .studio-seat-group-actions { display: flex; justify-content: flex-end; gap: 8px; }

        /* 值日管理 */
        .duty-studio-section { padding: 16px; }
        .duty-page-head { align-items: center; }
        .duty-page-head h3 { margin: 0; }
        .duty-current-rule { display: block; margin-top: 3px; color: #64748B; font-size: .86em; font-weight: 800; }
        .duty-compact-btn { min-height: 34px; padding: 7px 11px; border-radius: 7px; }
        .duty-settings-section { padding: 0; overflow: hidden; }
        .duty-settings-row {
            min-height: 86px; display: flex; align-items: center; justify-content: space-between; gap: 18px;
            padding: 15px 18px; border-bottom: 1px solid #E2E8F0;
        }
        .duty-settings-row.is-open { border-bottom: 0; }
        .duty-settings-row-last { border-bottom: 0; }
        .duty-settings-copy { min-width: 0; }
        .duty-settings-copy h3 { margin: 0 0 4px; color: #1F2937; font-size: 1.04em; }
        .duty-settings-copy span { display: block; color: #64748B; font-size: .86em; font-weight: 800; }
        .duty-settings-toggle { flex: 0 0 auto; padding: 7px 11px; border-radius: 7px; }
        .duty-settings-editor {
            padding: 0 18px 18px; border-bottom: 1px solid #E2E8F0; background: #FFFFFF;
        }
        .duty-settings-editor:last-child { border-bottom: 0; }
        .duty-editor-actions { display: flex; justify-content: flex-end; gap: 7px; padding: 4px 0 10px; }
        .duty-settings-editor .duty-matrix-wrap { border: 1px solid #E2E8F0; border-radius: 7px; }
        .duty-rotation-editor { padding-top: 4px; }
        .duty-matrix-wrap, .duty-table-wrap { overflow-x: auto; }
        .duty-matrix, .duty-schedule-table {
            width: 100%; border-collapse: collapse; table-layout: fixed; background: #FFFFFF;
        }
        .duty-matrix { min-width: 1060px; }
        .duty-matrix th, .duty-matrix td {
            height: 52px; padding: 5px 7px; border-right: 1px solid #E2E8F0; border-bottom: 1px solid #E2E8F0;
            text-align: center; vertical-align: middle;
        }
        .duty-matrix tr:last-child th, .duty-matrix tr:last-child td { border-bottom: 0; }
        .duty-matrix th:last-child, .duty-matrix td:last-child { border-right: 0; }
        .duty-matrix thead th { height: 48px; background: #F8FAFC; color: #334155; font-size: .88em; }
        .duty-matrix thead th:first-child { width: 174px; text-align: left; }
        .duty-matrix tbody th:first-child { width: 174px; background: #FFFFFF; }
        .duty-matrix thead th strong { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
        .duty-matrix thead th small { display: block; margin-top: 2px; color: #047857; font-size: .78em; font-weight: 900; }
        .duty-matrix thead th small.warn { color: #B45309; }
        .duty-role-edit {
            display: grid; grid-template-columns: minmax(72px, 1fr) 49px 24px; gap: 4px; align-items: center; background: #FFFFFF;
        }
        .duty-role-edit input {
            width: 100%; min-width: 0; height: 32px; border: 1px solid #CBD5E1; border-radius: 5px;
            padding: 5px 6px; color: #1F2937; background: #FFFFFF; font-family: inherit; font-weight: 800;
        }
        .duty-role-edit > span {
            display: grid; grid-template-columns: 31px auto; align-items: center; gap: 2px; color: #64748B; font-size: .8em;
        }
        .duty-role-edit > span input { padding: 3px; text-align: center; }
        .duty-role-edit > button {
            border: 0; background: transparent; color: #94A3B8; font-size: 1.15em; cursor: pointer; padding: 2px;
        }
        .duty-role-edit > button:hover { color: #BE123C; }
        .duty-assignment-cell {
            width: 100%; min-height: 34px; border: 0; border-radius: 5px; padding: 5px 4px;
            background: transparent; color: #1F2937; font-family: inherit; font-weight: 800; line-height: 1.3; cursor: pointer;
        }
        .duty-assignment-cell:hover { background: #F0FDF4; color: #065F46; }
        .duty-empty { color: #94A3B8; font-weight: 700; }
        .duty-rule-grid {
            display: grid; grid-template-columns: 150px minmax(160px, .9fr) minmax(150px, 1fr) auto;
            gap: 8px; align-items: end; padding: 0;
        }
        .duty-rule-grid label {
            display: grid; gap: 4px; color: #64748B; font-size: .8em; font-weight: 900;
        }
        .duty-rule-grid input, .duty-rule-grid select {
            width: 100%; min-width: 0; height: 35px; border: 1px solid #CBD5E1; border-radius: 6px;
            padding: 5px 7px; background: #FFFFFF; color: #1F2937; font-family: inherit; font-weight: 800;
        }
        .duty-rule-preview {
            display: flex; gap: 12px; flex-wrap: wrap; padding: 10px 0 0; color: #64748B; font-size: .82em; font-weight: 800;
        }
        .duty-rule-preview span { white-space: nowrap; }
        .duty-week-toolbar {
            display: flex; align-items: center; justify-content: center; gap: 6px; min-height: 48px; padding: 12px 0 9px;
        }
        .duty-week-toolbar button {
            min-width: 31px; height: 31px; border: 1px solid #CBD5E1; border-radius: 6px; background: #FFFFFF;
            color: #334155; font-family: inherit; font-size: 1.1em; font-weight: 900; cursor: pointer;
        }
        .duty-week-toolbar strong { min-width: 170px; color: #1F2937; text-align: center; }
        .duty-week-toolbar .duty-today-btn { width: auto; padding: 0 9px; font-size: .84em; }
        .duty-table-wrap { border: 1px solid #E2E8F0; border-radius: 7px; }
        .duty-schedule-table { min-width: 820px; }
        .duty-schedule-table th, .duty-schedule-table td {
            height: 52px; padding: 8px 10px; border-right: 1px solid #E2E8F0; border-bottom: 1px solid #E2E8F0;
            text-align: center; vertical-align: middle;
        }
        .duty-schedule-table th:last-child, .duty-schedule-table td:last-child { border-right: 0; }
        .duty-schedule-table tbody tr:last-child th, .duty-schedule-table tbody tr:last-child td { border-bottom: 0; }
        .duty-schedule-table thead th { height: 72px; background: #F8FAFC; color: #1F2937; }
        .duty-schedule-table thead th:first-child, .duty-schedule-table tbody th {
            width: 128px; text-align: left; padding-left: 14px; background: #FFFFFF; color: #334155;
        }
        .duty-schedule-table thead th:first-child { background: #F8FAFC; }
        .duty-schedule-table thead th strong, .duty-schedule-table thead th span { display: block; }
        .duty-schedule-table thead th span { margin-top: 2px; color: #64748B; font-size: .78em; }
        .duty-schedule-table thead th button {
            margin-top: 5px; border: 0; border-bottom: 1px solid #94A3B8; background: transparent;
            color: #047857; padding: 1px 0; font-family: inherit; font-size: .78em; font-weight: 900; cursor: pointer;
        }
        .duty-schedule-table .today { background: #ECFDF5; }
        .duty-schedule-table thead .today { background: #D1FAE5; }
        .duty-student-link {
            border: 0; background: transparent; color: #1F2937;
            padding: 1px 0; font-family: inherit; font-size: inherit; font-weight: 400; cursor: pointer;
        }
        .duty-student-link:hover { color: #047857; }
        .duty-name-separator { color: #94A3B8; }
        .duty-completion-row th, .duty-completion-row td { height: 48px; padding-top: 6px; padding-bottom: 6px; }
        .duty-rating-cell { position: relative; }
        .duty-rating-line { display: flex; align-items: center; justify-content: center; gap: 7px; white-space: nowrap; }
        .duty-rating-options { display: inline-flex; align-items: center; gap: 3px; }
        .duty-rating-option {
            min-width: 42px; height: 28px; display: inline-flex; align-items: center; justify-content: center; gap: 2px;
            border: 1px solid #CBD5E1; border-radius: 6px; padding: 0 6px;
            background: #FFFFFF; color: #CBD5E1; font-family: inherit; cursor: pointer;
        }
        .duty-rating-option span { font-size: .92em; line-height: 1; }
        .duty-rating-option small { color: #94A3B8; font-size: .62em; font-weight: 900; line-height: 1; }
        .duty-rating-option:hover, .duty-rating-option:focus-visible { border-color: #FBBF24; color: #F59E0B; outline: none; }
        .duty-rating-option.filled { color: #F59E0B; }
        .duty-rating-option.selected { border-color: #FBBF24; background: #FFFBEB; color: #F59E0B; box-shadow: inset 0 0 0 1px #FDE68A; }
        .duty-rating-option.selected small { color: #B45309; }
        .duty-rating-recipients { color: #64748B; font-size: .68em; font-weight: 700; cursor: help; }
        .duty-rating-recipients.empty { color: #B45309; }
        .duty-rating-clear {
            display: inline; margin: 0; border: 0; padding: 0; background: transparent;
            color: #94A3B8; font-family: inherit; font-size: .68em; cursor: pointer;
        }
        .duty-rating-clear:hover, .duty-rating-clear:focus-visible { color: #BE123C; outline: none; }
        .duty-rating-legacy { display: block; margin-top: 2px; color: #94A3B8; font-size: .66em; font-weight: 700; }
        @media (max-width: 900px) {
            .duty-completion-row th, .duty-completion-row td { height: 58px; }
            .duty-rating-line { flex-wrap: wrap; gap: 2px 6px; }
            .duty-rating-options { flex: 0 0 100%; justify-content: center; }
        }
        .duty-no-days { margin-top: 10px; padding: 24px; border: 1px dashed #CBD5E1; color: #64748B; text-align: center; font-weight: 800; }
        .duty-picker-modal .studio-modal { width: min(520px, calc(100vw - 48px)); }
        .duty-picker-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 7px; }
        .duty-picker-option {
            min-height: 40px; display: flex; align-items: center; gap: 8px; padding: 7px 9px;
            border: 1px solid #E2E8F0; border-radius: 6px; background: #FFFFFF; color: #334155; font-weight: 800; cursor: pointer;
        }
        .duty-picker-option input { width: 17px; height: 17px; accent-color: #047857; }
        .duty-modal-field { font-size: .86em; }
        .duty-modal-actions { display: flex; justify-content: flex-end; gap: 8px; margin-top: 14px; }

        .homework-pool-page { width: 100%; padding: 16px; }
        .homework-pool-head {
            display: flex; align-items: center; justify-content: space-between; gap: 18px;
            padding: 0;
        }
        .homework-pool-head h3 { margin: 0; }
        .homework-pool-title { display: flex; align-items: baseline; gap: 12px; }
        .homework-inline-summary { color: #64748B; font-size: .86em; font-weight: 800; }
        .homework-pool-head-actions { display: flex; align-items: center; gap: 10px; }
        .homework-archive-modal .studio-modal { width: min(1240px, calc(100vw - 24px)); max-height: calc(100vh - 24px); }
        .homework-archive-empty { padding: 44px 18px; color: #94A3B8; text-align: center; font-weight: 800; }
        .homework-pool-filters { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; padding: 14px 0 8px; }
        .homework-pool-filters select,
        .homework-grading-utility select {
            height: 34px; border: 1px solid #CBD5E1; border-radius: 7px; padding: 4px 28px 4px 9px;
            background: #FFFFFF; color: #334155; font-family: inherit; font-weight: 800;
        }
        .homework-register-search {
            width: 152px; height: 34px; border: 1px solid #CBD5E1; border-radius: 7px; padding: 5px 10px;
            background: #FFFFFF; color: #334155; font-family: inherit; font-weight: 800;
        }
        .homework-register-search:focus, .homework-pool-filters select:focus { border-color: #86EFAC; outline: 3px solid rgba(34,197,94,.1); }
        .homework-register-undo {
            height: 34px; border: 0; padding: 4px 6px; background: transparent;
            color: #047857; font-family: inherit; font-weight: 900; cursor: pointer;
        }
        .homework-register-undo:disabled { color: #CBD5E1; cursor: default; }
        .homework-register-refresh {
            position: relative; display: inline-flex; align-items: center; gap: 4px; height: 34px;
            border: 1px solid #CBD5E1; border-radius: 7px; padding: 4px 9px; background: #FFFFFF;
            color: #64748B; font-family: inherit; font-size: .8em; font-weight: 900; cursor: pointer;
        }
        .homework-register-refresh span { font-size: 1.16em; line-height: 1; transition: transform .2s ease; }
        .homework-register-refresh:hover { border-color: #86EFAC; color: #047857; background: #F0FDF4; }
        .homework-register-refresh:hover span { transform: rotate(35deg); }
        .homework-register-refresh.has-updates { border-color: #86EFAC; color: #047857; }
        .homework-register-refresh.has-updates::after {
            content: ""; position: absolute; top: 4px; right: 4px; width: 5px; height: 5px;
            border-radius: 50%; background: #22C55E; box-shadow: 0 0 0 2px #FFFFFF;
        }
        .homework-register-refresh:disabled { border-color: #E2E8F0; background: #F8FAFC; color: #CBD5E1; cursor: default; }
        .homework-register-refresh:disabled span { transform: none; }
        .homework-register-shell { width: fit-content; max-width: 100%; overflow: hidden; border: 1px solid #E2E8F0; border-radius: 10px; background: #FFFFFF; }
        .homework-register-scroll { max-width: 100%; overflow-x: auto; }
        .homework-register-table { min-width: 0; border-collapse: separate; border-spacing: 0; table-layout: fixed; }
        .homework-register-student-col { width: 124px; }
        .homework-register-task-col { width: 112px; }
        .homework-register-table th, .homework-register-table td {
            height: 50px; padding: 4px 10px; border-right: 1px solid #EEF2F7; border-bottom: 1px solid #EEF2F7;
            background: #FFFFFF; text-align: center; vertical-align: middle;
        }
        .homework-register-table .homework-register-task-head,
        .homework-register-table tbody td { min-width: 112px; width: 112px; max-width: 112px; }
        .homework-register-table tr:last-child th, .homework-register-table tr:last-child td { border-bottom: 0; }
        .homework-register-table th:last-child, .homework-register-table td:last-child { border-right: 0; }
        .homework-register-table thead th {
            position: sticky; top: 0; z-index: 3; padding: 8px 12px; background: #F8FAFC;
        }
        .homework-register-table thead .homework-register-date-head {
            height: 34px; padding: 5px 10px; background: #F1F5F9; color: #64748B;
            font-size: .76em; font-weight: 900; font-variant-numeric: tabular-nums;
        }
        .homework-register-table .homework-register-student-head,
        .homework-register-table .homework-register-student {
            position: sticky; left: 0; z-index: 2; min-width: 124px; width: 124px; background: #FFFFFF; text-align: left;
        }
        .homework-register-table .homework-register-student-head { z-index: 4; height: 108px; background: #F8FAFC; color: #64748B; font-size: .82em; text-align: center; }
        .homework-register-student { white-space: nowrap; }
        .homework-register-student-number { display: inline-block; width: 28px; color: #CBD5E1; font-size: .72em; font-weight: 900; text-align: right; }
        .homework-register-student-info { display: inline-grid; gap: 1px; margin-left: 9px; vertical-align: middle; }
        .homework-register-student strong { color: #1F2937; font-size: .92em; }
        .homework-register-student small { color: var(--homework-group-label-color, #0F766E); font-size: .68em; font-weight: 900; }
        .homework-register-table tbody tr.homework-register-group-row {
            --homework-group-rail-color: #6EE7B7;
            --homework-group-label-color: #047857;
        }
        .homework-register-table tbody tr.homework-register-group-color-1 { --homework-group-rail-color: #93C5FD; --homework-group-label-color: #2563EB; }
        .homework-register-table tbody tr.homework-register-group-color-2 { --homework-group-rail-color: #C4B5FD; --homework-group-label-color: #7C3AED; }
        .homework-register-table tbody tr.homework-register-group-color-3 { --homework-group-rail-color: #F9A8D4; --homework-group-label-color: #DB2777; }
        .homework-register-table tbody tr.homework-register-group-color-4 { --homework-group-rail-color: #FCD34D; --homework-group-label-color: #B45309; }
        .homework-register-table tbody tr.homework-register-group-color-5 { --homework-group-rail-color: #67E8F9; --homework-group-label-color: #0E7490; }
        .homework-register-table tbody tr.homework-register-group-color-6 { --homework-group-rail-color: #FDBA74; --homework-group-label-color: #C2410C; }
        .homework-register-table tbody tr.homework-register-group-row > .homework-register-student::before {
            content: ""; position: absolute; top: 0; bottom: 0; left: 4px; width: 3px;
            background: var(--homework-group-rail-color);
        }
        .homework-register-table tbody tr.homework-register-group-first > .homework-register-student::before {
            top: 6px; border-radius: 999px 999px 0 0;
        }
        .homework-register-table tbody tr.homework-register-group-end > .homework-register-student::before {
            bottom: 6px; border-radius: 0 0 999px 999px;
        }
        .homework-register-table tbody tr.homework-register-group-first.homework-register-group-end > .homework-register-student::before {
            border-radius: 999px;
        }
        .homework-register-table tbody tr.homework-register-group-start > th,
        .homework-register-table tbody tr.homework-register-group-start > td { border-top: 2px solid #CBD5E1; }
        .homework-register-task-head { position: sticky; top: 34px !important; height: 74px; padding: 7px 10px !important; }
        .homework-register-table thead .homework-register-task-head.has-ungraded {
            background: #FFF7ED; box-shadow: inset 0 3px 0 #F59E0B;
        }
        .homework-register-task-link {
            display: grid; align-content: center; justify-items: center; gap: 5px; width: 100%; min-height: 58px;
            border: 0; padding: 0 12px; background: transparent; color: inherit;
            font-family: inherit; font-size: inherit; text-align: center; cursor: pointer;
        }
        .homework-register-task-category {
            display: inline-flex; align-items: center; justify-content: center;
            max-width: 100%; color: var(--homework-category-color, #64748B); font-size: .72em; font-weight: 900;
        }
        .homework-register-task-link strong {
            display: -webkit-box; overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 2;
            color: #334155; font-size: .82em; line-height: 1.35;
        }
        .homework-register-task-head.has-ungraded .homework-register-task-link strong { color: #C2410C; }
        .homework-register-task-link:hover strong { color: #047857; }
        .homework-register-task-more { position: absolute; top: 7px; right: 7px; z-index: 6; }
        .homework-register-task-more summary {
            display: grid; place-items: center; width: 24px; height: 24px; border-radius: 6px;
            color: #94A3B8; font-size: 1em; line-height: 1; cursor: pointer; list-style: none;
        }
        .homework-register-task-more summary::-webkit-details-marker { display: none; }
        .homework-register-task-more summary:hover { background: #E2E8F0; color: #475569; }
        .homework-register-task-more div {
            position: absolute; top: 27px; right: 0; width: max-content; padding: 4px;
            border: 1px solid #E2E8F0; border-radius: 8px; background: #FFFFFF; box-shadow: 0 8px 22px rgba(15,23,42,.14);
        }
        .homework-register-task-more button {
            border: 0; border-radius: 6px; padding: 7px 10px; background: transparent;
            color: #334155; font-family: inherit; font-size: .78em; font-weight: 900; cursor: pointer;
        }
        .homework-register-task-more button.delete { color: #BE123C; }
        .homework-register-task-more button.archive { color: #047857; }
        .homework-register-task-more button.delete:hover { background: #FFF1F2; color: #BE123C; }
        .homework-register-task-more button.archive:hover { background: #ECFDF5; color: #047857; }
        .homework-register-status {
            display: inline-flex; align-items: center; justify-content: center; min-width: 54px; min-height: 28px;
            border: 0; padding: 4px 10px; background: transparent; font-family: inherit; font-size: .82em; font-weight: 900;
        }
        button.homework-register-status { cursor: pointer; }
        button.homework-register-status:hover { text-decoration: underline; text-underline-offset: 3px; }
        .homework-register-status.correction { border-radius: 14px; background: #DBEAFE; color: #1D4ED8; }
        .homework-register-status.missing { color: #E11D48; }
        .homework-register-status.passed { color: #CBD5E1; }
        .homework-register-status.resolved { color: #16A34A; }
        .homework-register-status.excellent { color: #B45309; }
        .homework-register-status.exempt { color: #64748B; }
        .homework-register-status.ungraded, .homework-register-status.empty { min-width: 32px; padding: 4px; }
        .homework-register-status.is-celebrating,
        .student-homework-exception-state.is-celebrating {
            position: relative; z-index: 1; border-radius: 14px; background: #F0FDF4;
            animation: homework-register-reward-pop .72s cubic-bezier(.2,.85,.25,1.25) both;
        }
        .homework-register-status.reward-correction, .student-homework-exception-state.reward-correction { --homework-reward-accent: #3B82F6; }
        .homework-register-status.reward-missing, .student-homework-exception-state.reward-missing { --homework-reward-accent: #F59E0B; }
        .homework-register-reward {
            position: absolute; top: 50%; left: 50%; width: 0; height: 0; z-index: 2;
            color: #F59E0B; pointer-events: none;
        }
        .homework-register-reward::before {
            content: "★"; position: absolute; left: -5px; top: -7px; font-size: 11px; line-height: 1;
            text-shadow: 0 1px 2px rgba(180,83,9,.18); animation: homework-register-reward-star .9s ease-out both;
        }
        .homework-register-reward i {
            position: absolute; left: -3px; top: -3px; width: 6px; height: 6px; border-radius: 50%;
            background: var(--homework-reward-accent, #22C55E); opacity: 0;
            animation: homework-register-reward-spark .82s ease-out both;
        }
        .homework-register-reward i:nth-child(1) { --reward-x: -27px; --reward-y: -20px; animation-delay: .02s; }
        .homework-register-reward i:nth-child(2) { --reward-x: 0px; --reward-y: -28px; animation-delay: .04s; background: #FBBF24; }
        .homework-register-reward i:nth-child(3) { --reward-x: 27px; --reward-y: -18px; animation-delay: .01s; }
        .homework-register-reward i:nth-child(4) { --reward-x: 29px; --reward-y: 13px; animation-delay: .06s; background: #34D399; }
        .homework-register-reward i:nth-child(5) { --reward-x: -1px; --reward-y: 27px; animation-delay: .03s; background: #FBBF24; }
        .homework-register-reward i:nth-child(6) { --reward-x: -28px; --reward-y: 13px; animation-delay: .05s; background: #34D399; }
        @keyframes homework-register-reward-pop {
            0% { transform: scale(1); }
            30% { transform: scale(1.16); }
            58% { transform: scale(.97); }
            100% { transform: scale(1); }
        }
        @keyframes homework-register-reward-star {
            0% { opacity: 0; transform: translateY(2px) scale(.25) rotate(-18deg); }
            26% { opacity: 1; transform: translateY(-6px) scale(1.15) rotate(8deg); }
            100% { opacity: 0; transform: translateY(-24px) scale(.72) rotate(24deg); }
        }
        @keyframes homework-register-reward-spark {
            0% { opacity: 0; transform: translate(0, 0) scale(.3); }
            24% { opacity: 1; }
            100% { opacity: 0; transform: translate(var(--reward-x), var(--reward-y)) scale(.1); }
        }
        @media (prefers-reduced-motion: reduce) {
            .homework-register-status.is-celebrating,
            .student-homework-exception-state.is-celebrating,
            .homework-register-reward::before,
            .homework-register-reward i { animation-duration: 1ms !important; animation-delay: 0s !important; }
        }
        .homework-register-empty { display: grid; justify-items: center; gap: 5px; padding: 92px 20px; color: #94A3B8; }
        .homework-register-empty strong { color: #64748B; }
        .homework-register-empty span { font-size: .82em; font-weight: 800; }
        .homework-register-empty-row td { height: 150px; color: #94A3B8; font-size: .86em; font-weight: 800; }
        .homework-editor-modal .studio-modal { width: min(820px, calc(100vw - 48px)); }
        .homework-editor-modal .studio-modal-content { background: #FFFFFF; }
        .homework-editor-form { display: grid; gap: 14px; }
        .homework-editor-topline { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: start; gap: 16px; }
        .homework-editor-date { display: flex; align-items: center; gap: 9px; color: #64748B; font-size: .86em; font-weight: 900; }
        .homework-editor-date input,
        .homework-editor-row input,
        .homework-category-creator input {
            height: 40px; border: 1px solid #CBD5E1; border-radius: 7px; padding: 7px 10px;
            background: #FFFFFF; color: #1F2937; font-family: inherit; font-weight: 800;
        }
        .homework-editor-date input { width: 166px; }
        .homework-category-quick { display: flex; align-items: center; gap: 10px; min-width: 0; }
        .homework-category-quick > span { flex: 0 0 auto; color: #64748B; font-size: .82em; font-weight: 900; }
        .homework-category-quick > div { display: flex; align-items: center; flex-wrap: wrap; gap: 6px; min-width: 0; }
        .homework-category-quick button {
            display: inline-flex; align-items: center; gap: 5px; min-height: 28px; border: 1px solid color-mix(in srgb, var(--homework-category-color, #64748B) 28%, #FFFFFF);
            border-radius: 999px; padding: 4px 9px; background: color-mix(in srgb, var(--homework-category-color, #64748B) 7%, #FFFFFF);
            color: var(--homework-category-color, #64748B); font-family: inherit; font-size: .78em; font-weight: 900; cursor: pointer;
        }
        .homework-category-quick button i { width: 7px; height: 7px; border-radius: 50%; background: currentColor; }
        .homework-category-quick button:hover { background: color-mix(in srgb, var(--homework-category-color, #64748B) 13%, #FFFFFF); }
        .homework-category-quick button.create { border-color: #D1FAE5; background: #F0FDF4; color: #047857; }
        .homework-category-quick button.manage { border-color: transparent; background: transparent; color: #64748B; }
        .homework-category-quick button.manage:hover { background: #F1F5F9; color: #334155; }
        .homework-category-quick small { color: #94A3B8; font-size: .76em; font-weight: 800; }
        .homework-category-creator { padding: 11px 12px; border: 1px solid #D1FAE5; border-radius: 9px; background: #F8FFFB; }
        .homework-category-creator-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 9px; }
        .homework-category-creator-head strong { color: #334155; font-size: .84em; }
        .homework-category-creator-head button {
            width: 26px; height: 26px; border: 0; background: transparent; color: #94A3B8; font-size: 1.08em; cursor: pointer;
        }
        .homework-category-creator-body { display: grid; grid-template-columns: minmax(150px, 1fr) auto auto; align-items: center; gap: 10px; }
        .homework-category-color-options { display: flex; align-items: center; gap: 5px; }
        .homework-category-color-option {
            width: 20px; height: 20px; border: 2px solid #FFFFFF; border-radius: 50%; padding: 0;
            background: var(--homework-category-color); box-shadow: 0 0 0 1px #CBD5E1; cursor: pointer;
        }
        .homework-category-color-option.selected { box-shadow: 0 0 0 2px #FFFFFF, 0 0 0 4px var(--homework-category-color); }
        .homework-category-create-save {
            height: 36px; border: 0; border-radius: 7px; padding: 0 12px; background: #047857;
            color: #FFFFFF; font-family: inherit; font-size: .8em; font-weight: 900; white-space: nowrap; cursor: pointer;
        }
        .homework-category-manager { padding: 11px 12px; border: 1px solid #E2E8F0; border-radius: 9px; background: #F8FAFC; }
        .homework-category-manager-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; margin-bottom: 8px; }
        .homework-category-manager-head > div { display: grid; gap: 2px; }
        .homework-category-manager-head strong { color: #334155; font-size: .84em; }
        .homework-category-manager-head span { color: #94A3B8; font-size: .7em; font-weight: 800; }
        .homework-category-manager-head > button {
            width: 26px; height: 26px; border: 0; background: transparent; color: #94A3B8; font-size: 1.08em; cursor: pointer;
        }
        .homework-category-manager-list { display: grid; gap: 2px; max-height: 220px; overflow: auto; }
        .homework-category-manager-row {
            display: grid; grid-template-columns: minmax(0, 1fr) auto 72px; align-items: center; gap: 10px;
            min-height: 38px; padding: 5px 7px; border-radius: 7px; background: #FFFFFF;
        }
        .homework-category-manager-row.disabled { background: transparent; }
        .homework-category-manager-name { display: flex; align-items: center; gap: 7px; min-width: 0; color: var(--homework-category-color, #64748B); }
        .homework-category-manager-name i { flex: 0 0 auto; width: 8px; height: 8px; border-radius: 50%; background: currentColor; }
        .homework-category-manager-name b { overflow: hidden; color: inherit; font-size: .8em; text-overflow: ellipsis; white-space: nowrap; }
        .homework-category-manager-name em { color: #94A3B8; font-size: .66em; font-style: normal; font-weight: 800; white-space: nowrap; }
        .homework-category-manager-row > small { color: #94A3B8; font-size: .68em; font-weight: 800; }
        .homework-category-manager-row > button {
            min-height: 28px; border: 0; border-radius: 6px; padding: 4px 8px; background: transparent;
            font-family: inherit; font-size: .72em; font-weight: 900; cursor: pointer;
        }
        .homework-category-manager-row > button.disable { color: #BE123C; }
        .homework-category-manager-row > button.disable:hover { background: #FFF1F2; }
        .homework-category-manager-row > button.enable { background: #ECFDF5; color: #047857; }
        .homework-category-manager-row > button.delete { color: #BE123C; }
        .homework-category-manager-row > button.delete:hover { background: #FFF1F2; }
        .homework-category-manager-empty { padding: 16px; color: #94A3B8; font-size: .78em; font-weight: 800; text-align: center; }
        .homework-editor-items { display: grid; gap: 8px; }
        .homework-editor-row { display: grid; grid-template-columns: 112px minmax(0, 1fr) 30px; gap: 8px; align-items: start; }
        .homework-editor-item-fields { min-width: 0; display: grid; gap: 6px; }
        .homework-editor-title-row { min-width: 0; display: flex; align-items: center; gap: 6px; }
        .homework-editor-title-row .homework-title-input { min-width: 0; flex: 1; }
        .homework-editor-row input:focus, .homework-editor-row textarea:focus, .homework-editor-date input:focus, .homework-category-creator input:focus { border-color: #22C55E; outline: 3px solid rgba(34,197,94,.12); }
        .homework-note-toggle { flex: 0 0 auto; width: 40px; height: 40px; display: grid; place-items: center; border: 1px solid #CBD5E1; border-radius: 7px; padding: 0; background: #FFFFFF; color: #64748B; cursor: pointer; }
        .homework-note-toggle:hover, .homework-note-toggle:focus-visible { border-color: #6EE7B7; background: #ECFDF5; color: #047857; outline: none; }
        .homework-note-toggle.has-note { border-color: #A7F3D0; background: #F0FDFA; color: #047857; }
        .homework-note-toggle svg { width: 17px; height: 17px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
        .homework-note-field { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; gap: 7px; min-width: 0; }
        .homework-note-field > span { color: #64748B; font-size: .76em; font-weight: 800; white-space: nowrap; }
        .homework-note-field em { margin-left: 3px; color: #94A3B8; font-size: .86em; font-style: normal; font-weight: 700; }
        .homework-note-field textarea { width: 100%; height: 40px; min-height: 40px; resize: vertical; border: 1px solid #CBD5E1; border-radius: 7px; padding: 6px 8px; background: #FFFFFF; color: #1F2937; font-family: inherit; font-size: .84em; line-height: 1.4; }
        .homework-category-select {
            display: flex; align-items: center; justify-content: space-between; gap: 6px; height: 40px;
            min-width: 0; border: 1px solid #CBD5E1; border-radius: 7px; padding: 7px 9px; background: #FFFFFF;
            font-family: inherit; text-align: left; cursor: pointer;
        }
        .homework-category-select:focus-visible { border-color: #22C55E; outline: 3px solid rgba(34,197,94,.12); }
        .homework-category-select-label { display: flex; align-items: center; gap: 6px; min-width: 0; color: var(--homework-category-color, #64748B); font-size: .82em; font-weight: 900; white-space: nowrap; }
        .homework-category-select-label i,
        .homework-category-select-menu button span i { flex: 0 0 auto; width: 7px; height: 7px; border-radius: 50%; background: currentColor; }
        .homework-category-select-label.empty { color: #94A3B8; }
        .homework-category-select-label.empty i { display: none; }
        .homework-category-select-chevron { color: #94A3B8; font-size: .84em; }
        .homework-category-menu-layer { position: fixed; inset: 0; z-index: 3500; }
        .homework-category-select-menu {
            position: fixed; z-index: 1; min-width: 190px;
            overflow: auto; border: 1px solid #E2E8F0; border-radius: 9px; padding: 5px; background: #FFFFFF; box-shadow: 0 12px 28px rgba(15,23,42,.16);
        }
        .homework-category-select-menu button {
            display: flex; align-items: center; justify-content: space-between; gap: 14px; width: 100%; min-height: 34px;
            border: 0; border-radius: 6px; padding: 6px 9px; background: transparent; color: var(--homework-category-color, #475569);
            font-family: inherit; font-size: .8em; font-weight: 900; text-align: left; cursor: pointer;
        }
        .homework-category-select-menu button span { display: flex; align-items: center; gap: 7px; min-width: 0; }
        .homework-category-select-menu button span small { margin-left: 2px; color: #94A3B8; font-size: .78em; }
        .homework-category-select-menu button:hover, .homework-category-select-menu button.selected { background: #F8FAFC; }
        .homework-category-select-menu button b { color: #16A34A; }
        .homework-category-select-menu button.create { color: #047857; }
        .homework-category-select-menu button.manage { color: #64748B; }
        .homework-category-select-divider { height: 1px; margin: 4px 3px; background: #E2E8F0; }
        .homework-row-remove, .homework-add-row {
            border: 0; background: transparent; color: #64748B; font-family: inherit; font-weight: 800; cursor: pointer;
        }
        .homework-row-remove { height: 30px; font-size: 1.2em; }
        .homework-row-remove:disabled { opacity: .3; cursor: default; }
        .homework-add-row { justify-self: start; padding: 2px 0; color: #047857; }
        .homework-editor-actions { display: flex; justify-content: flex-end; gap: 8px; padding-top: 8px; }

        .homework-grading-modal .studio-modal { width: min(1240px, calc(100vw - 24px)); max-height: calc(100vh - 24px); }
        .homework-grading-modal .studio-modal-head { align-items: center; padding: 9px 12px; }
        .homework-grading-modal .studio-modal-head > div { flex: 1; min-width: 0; }
        .homework-grading-modal .studio-modal-kicker { display: none; }
        .homework-grading-modal .studio-modal-head h3 { max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 1.08em; }
        .homework-grading-modal .studio-modal-close { width: 32px; height: 32px; }
        .homework-grading-modal .studio-modal-content { padding: 0; background: #F8FAFC; }
        .homework-grading-note { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: start; gap: 8px; margin: 10px 12px 0; padding: 8px 10px; border: 1px solid #D1FAE5; border-radius: 8px; background: #F0FDFA; }
        .homework-grading-note > span { color: #047857; font-size: .78em; font-weight: 900; white-space: nowrap; }
        .homework-grading-note p { margin: 0; color: #334155; font-size: .86em; line-height: 1.5; white-space: pre-wrap; }
        .homework-grading-summary { display: flex; align-items: center; gap: 10px; color: #64748B; font-size: .8em; font-weight: 800; white-space: nowrap; }
        .homework-grading-summary strong { color: #334155; }
        .homework-grading-summary .excellent strong { color: #B45309; }
        .homework-grading-summary .passed strong { color: #047857; }
        .homework-grading-summary .correction strong { color: #1D4ED8; }
        .homework-grading-summary .missing strong { color: #BE123C; }
        .homework-grading-summary .homework-grading-debt-summary {
            margin-left: 2px; padding-left: 10px; border-left: 1px solid #FCD34D; color: #92400E;
        }
        .homework-grading-summary .homework-grading-debt-summary strong { color: #B45309; }
        .homework-grading-toolbar {
            position: sticky; top: 0; z-index: 3; display: flex; align-items: center; justify-content: space-between; gap: 12px;
            min-height: 48px; padding: 7px 12px; border-bottom: 1px solid #E2E8F0; background: rgba(255,255,255,.97);
        }
        .homework-tool-list, .homework-grading-utility { display: flex; align-items: center; gap: 5px; flex-wrap: nowrap; }
        .homework-tool-list button, .homework-grading-utility button {
            min-height: 32px; border: 1px solid #CBD5E1; border-radius: 7px; padding: 4px 8px;
            background: #FFFFFF; color: #475569; font-family: inherit; font-weight: 900; cursor: pointer;
        }
        .homework-tool-list button b { margin-right: 4px; font-size: 1.02em; }
        .homework-tool-list button.active.passed { border-color: #86EFAC; background: #F0FDF4; color: #047857; }
        .homework-tool-list button.active.excellent { border-color: #FCD34D; background: #FFFBEB; color: #B45309; }
        .homework-tool-list button.active.correction { border-color: #93C5FD; background: #EFF6FF; color: #1D4ED8; }
        .homework-tool-list button.active.missing { border-color: #FDA4AF; background: #FFF1F2; color: #BE123C; }
        .homework-tool-list button.active.exempt { border-color: #CBD5E1; background: #F1F5F9; color: #475569; }
        .homework-grading-utility .homework-remaining-select { border-color: #86EFAC; color: #047857; }
        .homework-grading-utility button:disabled { opacity: .42; cursor: default; }
        .homework-grading-utility select:disabled { opacity: .42; cursor: default; }
        .homework-grading-debt-popover-layer {
            position: fixed; inset: 0; z-index: 10020; display: grid; place-items: center; padding: 24px;
            background: rgba(15,23,42,.05); backdrop-filter: blur(.6px);
        }
        .homework-grading-debt-panel {
            width: min(620px, calc(100vw - 32px)); max-height: min(620px, calc(100vh - 48px)); overflow: hidden;
            border: 3px solid #86EFAC; border-radius: 24px; padding: 24px 24px 22px; background: rgba(255,255,255,.98);
            box-shadow: 0 22px 60px rgba(15,23,42,.2); animation: homework-grading-debt-pop .18s ease-out both;
        }
        .homework-grading-debt-head {
            display: flex; align-items: flex-start; justify-content: space-between; gap: 16px;
            margin-bottom: 18px; padding-bottom: 16px; border-bottom: 1px solid #BBF7D0;
        }
        .homework-grading-debt-head > div { min-width: 0; display: grid; gap: 5px; }
        .homework-grading-debt-head strong { color: #166534; font-size: 1.45em; line-height: 1.2; }
        .homework-grading-debt-head span { color: #64748B; font-size: .92em; font-weight: 900; }
        .homework-grading-debt-head > button {
            flex: 0 0 auto; width: 38px; height: 38px; border: 0; border-radius: 50%; background: transparent;
            color: #64748B; font-family: inherit; font-size: 1.8em; line-height: 1; font-weight: 900; cursor: pointer;
        }
        .homework-grading-debt-head > button:hover { background: #F1F5F9; color: #334155; }
        .homework-grading-debt-list { max-height: min(420px, calc(100vh - 190px)); overflow-y: auto; display: grid; gap: 10px; padding-right: 2px; }
        .homework-grading-debt-item {
            min-width: 0; display: grid; grid-template-columns: 48px minmax(0, 1fr) auto; align-items: center; gap: 12px;
            padding: 11px 12px; border: 2px solid #BBF7D0; border-radius: 18px; background: #F0FDF4;
        }
        .homework-grading-debt-status {
            border-radius: 12px; padding: 5px 6px; background: #FFFFFF; font-size: .78em; font-weight: 900; text-align: center;
        }
        .homework-grading-debt-item.correction .homework-grading-debt-status { color: #1D4ED8; }
        .homework-grading-debt-item.missing .homework-grading-debt-status { color: #BE123C; }
        .homework-grading-debt-info { min-width: 0; display: grid; gap: 3px; }
        .homework-grading-debt-info strong { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: #166534; font-size: .98em; }
        .homework-grading-debt-info small { color: #94A3B8; font-size: .75em; font-weight: 800; }
        .homework-grading-debt-item > button {
            min-height: 34px; border: 0; border-radius: 17px; padding: 5px 12px;
            background: #22C55E; color: #FFFFFF; font-family: inherit; font-size: .78em; font-weight: 900; cursor: pointer;
            box-shadow: 0 3px 8px rgba(34,197,94,.2);
        }
        .homework-grading-debt-item > button:hover { background: #16A34A; }
        @keyframes homework-grading-debt-pop {
            from { opacity: 0; transform: translateY(8px) scale(.98); }
            to { opacity: 1; transform: translateY(0) scale(1); }
        }
        .homework-grading-sections { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 11px 20px; padding: 10px 12px 8px; }
        .homework-grading-group { min-width: 0; margin: 0; }
        .homework-grading-group.seat-section { grid-column: 1 / -1; }
        .homework-grading-group h4 { margin: 0 0 5px; color: #64748B; font-size: .78em; }
        .homework-grading-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(78px, 1fr)); gap: 3px; }
        .homework-grading-grid.seat-order { grid-template-columns: repeat(var(--homework-seat-cols), minmax(78px, 1fr)); }
        .homework-grade-card-wrap { position: relative; min-width: 0; min-height: 56px; }
        .homework-grade-card {
            position: relative; width: 100%; height: 100%; min-width: 0; min-height: 56px; display: flex; align-items: center; justify-content: center; gap: 2px;
            border: 1px solid #CBD5E1; border-radius: 7px; padding: 6px 2px 4px; background: #FFFFFF;
            color: #334155; font-family: inherit; cursor: pointer;
        }
        .homework-grade-card-wrap.has-debt .homework-grade-card { padding-top: 12px; padding-bottom: 2px; }
        .homework-grade-card:hover { border-color: #64748B; }
        .homework-grade-card .homework-grade-number { position: absolute; top: 4px; left: 5px; color: #94A3B8; font-size: .62em; font-weight: 900; }
        .homework-grade-card .homework-grade-mark { flex: 0 0 auto; color: #94A3B8; font-size: .88em; line-height: 1; font-weight: 900; }
        .homework-grade-card strong { min-width: 0; max-width: calc(100% - 16px); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 1.12em; }
        .homework-grade-card.passed { border-color: #BBF7D0; background: #F0FDF4; color: #166534; }
        .homework-grade-card.excellent { border-color: #FDE68A; background: #FFFBEB; color: #92400E; }
        .homework-grade-card.correction { border-color: #BFDBFE; background: #EFF6FF; color: #1E40AF; }
        .homework-grade-card.missing { border-color: #FECDD3; background: #FFF1F2; color: #9F1239; }
        .homework-grade-card.exempt { border-color: #E2E8F0; background: #F1F5F9; color: #64748B; }
        .homework-grade-card.passed .homework-grade-mark { color: #16A34A; }
        .homework-grade-card.excellent .homework-grade-mark { color: #D97706; }
        .homework-grade-card.correction .homework-grade-mark { color: #2563EB; }
        .homework-grade-card.missing .homework-grade-mark { color: #E11D48; }
        .homework-grade-debt-badge {
            position: absolute; top: 4px; right: 4px; z-index: 2; min-width: 29px; height: 19px;
            border: 1px solid #FCD34D; border-radius: 10px; padding: 1px 5px; background: #FEF3C7;
            color: #92400E; font-family: inherit; font-size: .66em; line-height: 1; font-weight: 900; cursor: pointer;
        }
        .homework-grade-debt-badge:hover, .homework-grade-card-wrap.debt-open .homework-grade-debt-badge { border-color: #F59E0B; background: #FDE68A; color: #78350F; }
        .homework-grade-card-wrap.debt-open .homework-grade-card { box-shadow: 0 0 0 2px rgba(245,158,11,.24); }
        .homework-grading-footer {
            position: sticky; bottom: 0; z-index: 3; display: flex; align-items: center; justify-content: flex-end; gap: 12px;
            padding: 7px 12px; border-top: 1px solid #E2E8F0; background: rgba(255,255,255,.97); color: #64748B; font-size: .82em; font-weight: 900;
        }

        .reward-card-modal { max-width: 560px; padding: 0; overflow: hidden; border-radius: 28px; }
        .wish-reward-card { position: relative; padding: 34px 28px 28px; text-align: center; color: #451A03; overflow: hidden; }
        .wish-reward-card:before { content: ""; position: absolute; inset: -40px; background: radial-gradient(circle at 20% 20%, rgba(255,255,255,.75), transparent 23%), radial-gradient(circle at 80% 10%, rgba(255,255,255,.55), transparent 20%); pointer-events: none; }
        .wish-reward-card > * { position: relative; z-index: 1; }
        .wish-reward-card.sun { background: linear-gradient(145deg, #FFF7ED, #FEF3C7 52%, #FDBA74); border: 5px solid #F59E0B; }
        .wish-reward-card.bloom { background: linear-gradient(145deg, #FDF2F8, #ECFDF5 46%, #BAE6FD); border: 5px solid #DB2777; }
        .reward-card-icon { width: 126px; height: 126px; margin: 0 auto 10px; filter: drop-shadow(0 8px 10px rgba(120,53,15,.22)); }
        .reward-card-kicker { font-size: 1.05em; font-weight: 900; color: #92400E; }
        .reward-card-title { font-size: 2.15em; font-weight: 900; color: #78350F; margin: 6px 0 14px; }
        .reward-card-prize { background: rgba(255,255,255,.78); border: 3px dashed rgba(180,83,9,.55); border-radius: 18px; padding: 18px; font-size: 1.45em; line-height: 1.5; font-weight: 900; color: #9A3412; }

        @media (max-width: 1280px) {
            .studio-grid-3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
        }

        @media (max-width: 1180px) {
            .calendar-overview-layout { grid-template-columns: 1fr; }
            .calendar-day-panel { position: static; max-height: none; grid-template-columns: 1fr; }
            .today-duty-roles { grid-template-columns: repeat(2, minmax(0, 1fr)); }
        }

        @media (max-width: 1100px) {
            .today-dashboard-body { grid-template-columns: 1fr; }
            .today-dashboard-side, .today-dashboard-rail { width: 100%; }
        }

        @media (max-width: 980px) {
            .studio-grid-2, .studio-grid-3 { grid-template-columns: 1fr; }
            .today-dashboard-body { grid-template-columns: 1fr; }
            .duty-rule-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
            .studio-seat-config { grid-template-columns: 1fr; }
            .studio-segment-field { max-width: none; }
            .studio-playbook-layout { grid-template-columns: 1fr; }
            .studio-playbook-editor textarea, .studio-playbook-preview { min-height: 420px; }
            .calendar-settings-fields { grid-template-columns: repeat(2, minmax(0, 1fr)); }
            .calendar-settings-fields .studio-primary-btn { width: fit-content; }
            .calendar-month-cell { padding: 6px; }
            .calendar-month-cell.selected { padding: 6px; }
            .homework-grading-toolbar { flex-wrap: wrap; justify-content: flex-start; }
            .homework-grading-summary { width: 100%; flex-wrap: wrap; white-space: normal; }
        }

        @media (max-width: 720px) {
            body { padding: 8px 10px 60px; }
            h1 { font-size: 2.1em; }
            .grid { grid-template-columns: repeat(auto-fill, minmax(145px, 1fr)); gap: 10px; padding: 5px; }
            .lottery-overlay { padding:14px; }
            .lottery-result-card { padding:24px 20px 20px; border-radius:27px; }
            .lottery-result-plant { width:122px; height:122px; }
            .lottery-result-card h2 { font-size:2.05em; }
            .grid.group-view { grid-template-columns: 1fr; }
            .group-plot { min-height: 0; }
            .control-panel { padding: 10px; }
            .reward-grid, .report-extra { grid-template-columns: 1fr; }
            .calendar-cycle-editor { grid-template-columns: 1fr; }
            .calendar-settings-disclosure > summary { align-items: flex-start; }
            .calendar-settings-disclosure > summary small { white-space: normal; }
            .calendar-settings-fields { grid-template-columns: 1fr; }
            .calendar-overview-section { padding: 14px; }
            .calendar-overview-layout { gap: 14px; }
            .calendar-month-grid, .calendar-weekday-row { gap: 4px; }
            .calendar-weekday-row, .calendar-month-grid { grid-template-columns: 42px repeat(7, minmax(0, 1fr)); }
            .calendar-week-index { min-height: 0; border-radius: 7px; padding: 6px 2px; font-size: .82em; }
            .calendar-month-cell { min-height: 0; border-radius: 7px; padding: 6px; gap: 4px; }
            .calendar-month-cell.selected { padding: 6px; }
            .calendar-day-state { font-size: .62em; padding: 2px 4px; }
            .calendar-month-toolbar { justify-content: center; }
            .calendar-day-panel { grid-template-columns: 1fr; padding: 0; }
            .calendar-day-heading, .calendar-event-editor-card { grid-column: auto; }
            .academic-schedule-page-head { flex-direction: column; }
            .academic-schedule-head-actions { width: 100%; justify-content: flex-start; }
            .academic-schedule-navigation { width: 100%; flex-wrap: wrap; }
            .academic-schedule-navigation > strong { min-width: 170px; }
            .academic-schedule-grid { min-width: 1040px; }
            .academic-course-editor-footer, .academic-schedule-event-actions { align-items: stretch; flex-direction: column; }
            .academic-course-editor-footer .studio-actions, .academic-schedule-event-actions .studio-actions { justify-content: flex-end; }
            .academic-special-schedule-body { grid-template-columns: 74px minmax(0, 1fr); }
            .academic-special-time-row { grid-template-columns: 72px minmax(0, 1fr); gap: 5px 8px; padding: 7px 0; }
            .academic-special-time-row > small { text-align: right; }
            .academic-special-time-inputs { grid-column: 1 / -1; }
            .academic-schedule-event-type-options { grid-template-columns: repeat(2, minmax(0, 1fr)); }
            .weekly-report-week-editor { align-items: stretch; flex-direction: column; }
            .weekly-report-week-editor label { align-items: stretch; flex-direction: column; }
            .weekly-report-week-editor small { text-align: left; }
            .bar-outer { margin: 50px 38px 48px; }
            .unlock-node { width: 70px; height: 64px; }
            .unlock-medallion { width: 30px; height: 30px; top: -36px; }
            .unlock-status-dot { right: 14px; top: -36px; }
            .unlock-label { top: 32px; font-size: .76em; }
            #cloud-status { position: static; margin: 5px auto; }
            #mode-switcher, #weather-event-float { position: static; margin: 5px auto; }
            #weather-event-float { max-width: min(320px, calc(100vw - 20px)); pointer-events: none; }
            #noise-panel { min-width: 300px; width: 88%; }
            .studio-topbar { align-items: flex-start; flex-direction: column; padding: 14px; }
            .studio-body { grid-template-columns: minmax(0, 1fr); }
            .studio-sidebar {
                position: static; height: auto; max-height: none; border-right: 0; border-bottom: 1px solid #E2E8F0;
                min-width: 0; width: 100%; display: grid; grid-template-columns: minmax(0, 1fr); gap: 8px; padding: 10px 14px; background: #FFFFFF;
            }
            .studio-nav-group { border-bottom: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px; }
            .studio-nav-title { grid-column: 1 / -1; padding: 2px 4px; }
            .studio-tab { min-height: 34px; padding: 7px 9px 7px 14px; font-size: .9em; }
            .studio-panel { padding: 14px; }
            .today-dashboard-page { gap: 12px; }
            .today-dashboard-head { min-height: 0; align-items: flex-start; flex-direction: column; padding: 0; }
            .today-dashboard-quick-actions { width: 100%; justify-content: flex-start; }
            .today-student-status-head { grid-template-columns: 1fr; }
            .today-student-status-head > div:first-child { align-items: flex-start; flex-direction: column; gap: 2px; }
            .today-seat-filters { justify-content: flex-start; }
            .today-student-quick-summary { grid-template-columns: 1fr; }
            .today-student-observation-editor > div, .today-student-quick-links { align-items: stretch; flex-direction: column; }
            .today-student-observation-editor > div > button, .today-student-quick-links > button { width: 100%; }
            .today-dashboard-block, .today-dashboard-attention, .today-dashboard-records { padding: 14px; }
            .today-plan-row.timed { grid-template-columns: 54px 52px minmax(58px, 80px) minmax(0, 1fr) 15px; gap: 6px; padding: 8px 5px; }
            .today-plan-row.timed.event { grid-template-columns: 54px minmax(0, 1fr); }
            .today-duty-head { align-items: flex-start; }
            .today-duty-head > div:first-child { align-items: flex-start; flex-direction: column; gap: 2px; }
            .today-duty-roles { grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 9px 16px; }
            .today-pending-main, button.today-pending-row.button { grid-template-columns: 36px minmax(0, 1fr) auto; gap: 6px; }
            .today-pending-row small { grid-column: auto; justify-self: end; font-size: 11px; }
            .personal-task-editor-actions { align-items: stretch; flex-direction: column; }
            .personal-task-editor-actions .studio-actions { justify-content: flex-end; }
            .studio-grid-2, .studio-grid-3 { grid-template-columns: 1fr; }
            .studio-weather-config { grid-template-columns: 1fr; }
            .studio-seat-config { grid-template-columns: 1fr; }
            .studio-seat-toolbar { justify-content: flex-start; width: 100%; }
            .studio-seat-toolbar > * { flex: 0 0 auto; }
            .studio-plan-item { grid-template-columns: 1fr; }
            .studio-plan-actions { justify-content: flex-start; }
            .studio-seat-layout-aisles { align-items: flex-start; flex-direction: column; padding: 8px 0 0; border-left: 0; border-top: 1px solid #E2E8F0; }
            .studio-seat-assignment-status, .studio-seat-unassigned-inline { margin-left: 0; }
            .studio-seat-aisle-buttons { justify-content: flex-start; }
            .studio-seat-toolbar .studio-seat-feature-search { flex: 1 1 160px; }
            .studio-seat-feature-search input { width: 100%; min-width: 0; }
            .studio-seat-unassigned-strip { align-items: flex-start; flex-direction: column; }
            .studio-seat-group-row { grid-template-columns: 1fr; }
            .studio-seat-group-delete { justify-self: start; padding-left: 0; }
            .studio-observe-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
            .studio-rule-header { display: none; }
            .studio-rule-row, .studio-rule-row.has-desc { grid-template-columns: 1fr; }
            .studio-rule-row.has-desc .rule-desc-field { grid-column: 1; }
            .studio-plant-stage-grid, .studio-stage-config-grid { grid-template-columns: repeat(2, minmax(120px, 1fr)); }
            .studio-section-head { flex-direction: column; }
            .studio-score-log { grid-template-columns: 1fr; }
            .studio-score-summary { grid-template-columns: 54px minmax(72px, max-content) minmax(0, 1fr); gap:8px; }
            .studio-score-meta { grid-column: 2 / -1; justify-content:flex-start; }
            .studio-score-toolbar .studio-search-input { flex-basis:100%; width:100%; }
            .studio-growth-record-head { align-items:flex-start; }
            .studio-growth-record-head-actions { width:100%; min-width:0; margin-left:0; justify-content:flex-start; }
            .studio-growth-record-head-actions .studio-search-input { flex:1 1 160px; width:auto; min-width:0; }
            .studio-growth-record-domain-strip { margin-top:11px; }
            .studio-growth-record-section { --growth-record-time-column:72px; --growth-record-target-column:minmax(62px,82px); --growth-record-column-gap:6px; }
            .studio-growth-record-event-head {
                grid-template-columns:var(--growth-record-time-column) var(--growth-record-target-column) minmax(0,1fr) auto 20px;
                padding:6px 4px;
            }
            .studio-growth-record-event-head:has(.studio-growth-record-event-check) {
                grid-template-columns:18px var(--growth-record-time-column) var(--growth-record-target-column) minmax(0,1fr) auto 20px;
            }
            .studio-growth-record-event-main { align-items:flex-start; flex-direction:column; gap:4px; }
            .studio-growth-record-event-main > div { max-width:100%; overflow:hidden; }
            .studio-growth-record-event-tools { gap:5px; }
            .studio-growth-record-event-remark-button { padding:3px 6px; font-size:.66em; }
            .studio-growth-record-event-remark-row { grid-template-columns:minmax(0,1fr) auto; gap:6px; padding:7px 4px; }
            .studio-growth-record-event-remark-row > span:first-child { grid-column:1 / -1; }
            .studio-growth-record-event-details { padding-right:0; }
            .studio-growth-record-single-row {
                grid-template-columns:var(--growth-record-time-column) var(--growth-record-target-column) minmax(0,1fr) 30px;
                padding:4px;
            }
            .studio-growth-record-single-row.batch {
                grid-template-columns:18px var(--growth-record-time-column) var(--growth-record-target-column) minmax(0,1fr) 30px;
            }
            .studio-growth-record-row { grid-template-columns:var(--growth-record-target-column) minmax(0,1fr) 30px; }
            .studio-growth-record-row.batch { grid-template-columns:18px var(--growth-record-target-column) minmax(0,1fr) 30px; }
            .studio-growth-record-lifecycle { gap:2px; }
            .studio-growth-record-lifecycle > time, .studio-growth-record-repeat, .studio-growth-record-event-repeat { display:none; }
            .studio-growth-record-line:has(.studio-growth-record-lifecycle) { gap:2px; }
            .studio-growth-record-lifecycle .studio-growth-record-signal { padding:1px 3px; font-size:.62em; }
            .studio-growth-record-lifecycle .studio-growth-record-signal.support,
            .studio-growth-record-lifecycle .studio-growth-record-signal.repair,
            .studio-growth-record-lifecycle .studio-growth-record-signal.pending { padding:0; }
            .studio-growth-record-lifecycle .studio-growth-record-pair-arrow { font-size:.68em; }
            .studio-growth-record-line:has(.studio-growth-record-lifecycle) .studio-growth-record-action { min-width:0; }
            .studio-growth-record-target { max-width:88px; }
            .studio-growth-record-action-menu > summary { min-width:30px; min-height:30px; padding:3px 6px; }
            .studio-growth-record-detail { grid-column:2 / -1; }
            .studio-growth-record-row.batch .studio-growth-record-detail { grid-column:3 / -1; }
            .studio-growth-record-batch-bar { max-width:100%; gap:7px; }
            .studio-growth-record-batch-bar span { display:none; }
            .studio-head-actions { justify-content: flex-start; width: 100%; }
            .studio-search-input { width: 100%; }
            .studio-add-student-inline { grid-template-columns: 1fr; }
            .studio-student-card-grid { grid-template-columns: 1fr; }
            .studio-student-card { padding: 12px; }
            .studio-student-card-head h4 { font-size: 1.18em; }
            .studio-student-total strong { font-size: 1.3em; }
            .studio-student-edit-fields { grid-template-columns: 1fr; }
            .studio-profile-analytics, .studio-week-compare-item { grid-template-columns: 1fr; }
            .studio-radar-wrap.profile { width: 100%; justify-self: stretch; }
            .studio-growth-domain-grid, .studio-growth-domain-grid.compact { grid-template-columns: 1fr; }
            .studio-growth-domain-card { grid-template-columns:82px minmax(0,1fr) auto; }
            .studio-growth-evidence-head { grid-template-columns:auto minmax(0,1fr); }
            .studio-growth-evidence-head time { grid-column:2; }
            .studio-growth-evidence-pair { grid-template-columns:1fr; }
            .studio-growth-pair-arrow { min-height:22px; transform:rotate(90deg); }
            .studio-dim-row { grid-template-columns: 78px 1fr 44px; }
            .studio-conversation-card { grid-template-columns: 1fr; }
            .studio-conversation-actions { width: 100%; justify-self: stretch; }
            .conversation-form-top, .conversation-form-body, .conversation-form-follow { grid-template-columns: 1fr; }
            .studio-modal-overlay { padding: 12px; }
            .studio-modal { width: calc(100vw - 24px); max-height: calc(100vh - 24px); }
            .studio-modal-content { padding: 14px; }
            .duty-rule-grid { grid-template-columns: 1fr; }
            .duty-picker-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
            .duty-page-head { align-items: flex-start; }
            .duty-week-toolbar { justify-content: flex-start; }
            .duty-settings-row { min-height: 0; align-items: flex-start; padding: 14px; }
            .duty-settings-editor { padding: 0 14px 14px; }
            .homework-pool-head { align-items: flex-start; flex-direction: column; }
            .homework-pool-head-actions { width: 100%; justify-content: flex-end; }
            .homework-register-filters .homework-register-search { flex: 1 1 130px; min-width: 0; }
            .homework-editor-row { grid-template-columns: 92px minmax(0, 1fr) 26px; }
            .homework-note-field { grid-template-columns: 1fr; gap: 3px; }
            .homework-category-quick { align-items: flex-start; }
            .homework-category-creator-body { grid-template-columns: 1fr; }
            .homework-category-color-options { flex-wrap: wrap; }
            .homework-category-create-save { justify-self: start; }
            .homework-grading-toolbar { position: static; align-items: flex-start; flex-direction: column; }
            .homework-grading-debt-popover-layer { padding: 12px; }
            .homework-grading-debt-panel { width: calc(100vw - 24px); max-height: calc(100vh - 24px); border-radius: 18px; padding: 18px 16px 16px; }
            .homework-grading-debt-head { margin-bottom: 12px; padding-bottom: 12px; }
            .homework-grading-debt-head strong { font-size: 1.2em; }
            .homework-grading-debt-item { grid-template-columns: 42px minmax(0, 1fr); gap: 8px 10px; padding: 9px 10px; }
            .homework-grading-debt-item > button { grid-column: 2; justify-self: start; }
            .homework-grading-sections { grid-template-columns: 1fr; }
            .homework-grading-grid { grid-template-columns: repeat(auto-fill, minmax(84px, 1fr)); }
            .homework-grading-grid.seat-order { min-width: 660px; }
            .homework-grading-group { overflow-x: auto; }
        }
