/* Screen-safe v12 inline UI styles. Four unscoped standalone print templates are intentionally excluded; see docs/visual-fidelity-plan.md. */

    *{margin:0;padding:0;box-sizing:border-box}
    :root{
        --cream:#fbf8f0;--paper:#f4ede0;--ink:#14172a;--ink-light:#262a42;
        --gold:#b8860b;--gold-light:#e4c468;--gold-dark:#7a5a08;
        --amber:#c8762a;--amber-light:#f0c080;
        --sage:#4a7a58;--sage-light:#bfd8c4;--sage-dark:#355a40;
        --rose:#a04848;--rose-light:#ecc8c4;
        --slate:#364050;--slate-light:#8898a8;
        --card:#fffefb;--card-border:#e4dcc8;
        --shadow-sm:0 1px 3px rgba(20,14,6,.06);
        --shadow-md:0 4px 16px rgba(20,14,6,.08),0 1px 4px rgba(20,14,6,.04),0 0 0 1px rgba(180,150,100,.06);
        --shadow-lg:0 12px 36px rgba(20,14,6,.10),0 3px 8px rgba(20,14,6,.05),0 0 0 1px rgba(180,150,100,.08);
        --shadow-xl:0 20px 50px rgba(20,14,6,.14),0 4px 12px rgba(20,14,6,.06);
        --radius-sm:8px;--radius-md:14px;--radius-lg:20px;
        --transition:0.28s cubic-bezier(0.4, 0, 0.2, 1);
    }
    body{
        font-family:'Microsoft YaHei','PingFang SC','Noto Sans SC',sans-serif;
        background:
            linear-gradient(175deg,#f9f5ec 0%,#f6f0e2 30%,#faf6ee 60%,#f4ede0 100%);
        color:var(--ink);
        min-height:100vh;
        position:relative;
    }
    body::before{
        content:'';
        position:fixed;top:0;left:0;width:100%;height:100%;
        background:
            radial-gradient(ellipse at 12% 18%,rgba(200,160,80,.12) 0%,transparent 55%),
            radial-gradient(ellipse at 88% 60%,rgba(180,140,70,.08) 0%,transparent 50%),
            radial-gradient(ellipse at 45% 85%,rgba(160,120,60,.06) 0%,transparent 45%),
            radial-gradient(ellipse at 60% 10%,rgba(220,200,140,.05) 0%,transparent 40%);
        pointer-events:none;z-index:0;
    }
    /* Subtle paper fiber texture */
    body::after{
        content:'';
        position:fixed;top:0;left:0;width:100%;height:100%;
        opacity:.025;pointer-events:none;z-index:0;
        background-image:
            repeating-linear-gradient(0deg,transparent,transparent 2px,rgba(139,120,80,.03) 2px,rgba(139,120,80,.03) 2.5px),
            repeating-conic-gradient(var(--ink) 0% 25%,transparent 0% 50%) 50%/3px 3px;
    }

    /* ===== HEADER (compact toolbar) ===== */
    .header{
        background:linear-gradient(168deg,#13162a 0%,#1c1f38 30%,#1a2435 60%,#15202e 100%);
        color:#e6dcc0;
        padding:10px 0;
        text-align:center;
        box-shadow:0 3px 24px rgba(12,10,6,.55),inset 0 1px 0 rgba(255,255,255,.04);
        position:sticky;top:0;z-index:9000;
        overflow:hidden;
    }
    .header::before{
        content:'';
        position:absolute;top:0;left:0;width:100%;height:100%;
        background:
            radial-gradient(ellipse at 25% 5%,rgba(220,170,60,.10) 0%,transparent 50%),
            radial-gradient(ellipse at 75% 75%,rgba(200,150,50,.05) 0%,transparent 40%),
            radial-gradient(1px 1px at 15% 30%,rgba(255,255,255,.15) 0%,transparent 100%),
            radial-gradient(1.5px 1.5px at 60% 20%,rgba(255,255,255,.10) 0%,transparent 100%),
            radial-gradient(1px 1px at 85% 55%,rgba(255,255,255,.12) 0%,transparent 100%);
        pointer-events:none;
    }
    .header::after{
        content:'';
        position:absolute;bottom:0;left:0;width:100%;height:3px;
        background:linear-gradient(90deg,transparent 0%,var(--gold-light) 30%,var(--gold) 50%,var(--gold-light) 70%,transparent 100%);
        opacity:.75;filter:blur(0.5px);
    }
    @keyframes headerGlow{0%,100%{opacity:.55}50%{opacity:.9}}
    .header-inner{
        display:flex;align-items:center;justify-content:center;
        gap:14px;max-width:1020px;margin:0 auto;padding:0 20px;
        position:relative;z-index:1;
    }
    .header-logo{
        width:44px;height:44px;border-radius:50%;
        border:2px solid rgba(220,190,100,.5);
        object-fit:cover;flex-shrink:0;
        box-shadow:0 2px 16px rgba(0,0,0,.5),0 0 12px rgba(200,150,60,.08);
        transition:var(--transition);
    }
    .header-logo:hover{box-shadow:0 2px 20px rgba(0,0,0,.5),0 0 20px rgba(220,170,70,.15)}
    .header-text{text-align:left;flex:1;min-width:0}
    .header-text h1{font-size:18px;margin-bottom:2px;letter-spacing:1.5px;font-weight:700;color:#efe4c8;white-space:nowrap;text-shadow:0 1px 2px rgba(0,0,0,.3)}
    .header-text .header-sub{font-size:10.5px!important;opacity:.55!important;letter-spacing:.5px;margin:0!important}
    .header-meta{display:flex;align-items:center;gap:10px;flex-shrink:0;flex-wrap:wrap;justify-content:flex-end}
    .version-badge{
        display:inline-block;padding:2px 10px;border-radius:10px;
        font-size:10px;font-weight:600;
        background:rgba(220,180,100,.18);color:rgba(240,228,200,.9);
        vertical-align:middle;letter-spacing:1px;
        border:1px solid rgba(220,180,100,.25);
    }
    .license-badge{
        display:inline-block;padding:3px 12px;border-radius:12px;
        font-size:11px;font-weight:600;margin-left:6px;vertical-align:middle;
    }
    .license-trial{background:linear-gradient(135deg,#b8860b,#c8963e);color:#fff;box-shadow:0 2px 8px rgba(184,134,11,.3)}
    .license-active{background:linear-gradient(135deg,#3d5e45,#4a7a58);color:#fff;box-shadow:0 2px 8px rgba(74,122,88,.25)}
    .license-expired{background:linear-gradient(135deg,#8b3838,#a04848);color:#fff;box-shadow:0 2px 8px rgba(160,72,72,.25)}

    /* ===== MODAL ===== */
    .modal-overlay{
        position:fixed;top:0;left:0;width:100%;height:100%;
        background:rgba(16,12,8,.78);z-index:9999;
        display:flex;align-items:center;justify-content:center;
        backdrop-filter:blur(6px);
    }
    .modal-box{
        background:var(--card);
        border-radius:var(--radius-lg);padding:36px;
        max-width:480px;width:90%;
        box-shadow:var(--shadow-xl);
        text-align:center;
        animation:modalIn .4s cubic-bezier(0.34,1.56,.64,1);
        border:1px solid rgba(200,170,110,.15);
        position:relative;
    }
    .modal-box::before{
        content:'';
        position:absolute;top:0;left:0;right:0;height:100%;
        border-radius:var(--radius-lg);
        background:linear-gradient(180deg,rgba(220,190,130,.06) 0%,transparent 35%);
        pointer-events:none;
    }
    @keyframes modalIn{from{opacity:0;transform:scale(.92) translateY(-16px)}to{opacity:1;transform:scale(1) translateY(0)}}
    .modal-box h2{color:var(--ink);margin-bottom:8px;font-size:22px;letter-spacing:1px}
    .modal-box p{color:var(--slate-light);font-size:13.5px;margin-bottom:20px;line-height:1.7}
    .modal-box .mc-display{
        background:var(--paper);
        padding:16px;border-radius:var(--radius-sm);
        font-family:Consolas,'Courier New',monospace;font-size:17px;
        letter-spacing:2px;color:var(--ink);
        user-select:all;margin:12px 0;word-break:break-all;
        border:1px dashed var(--card-border);
    }
    .modal-box input{
        width:100%;padding:14px;border:2px solid var(--card-border);
        border-radius:var(--radius-sm);font-size:17px;text-align:center;
        letter-spacing:3px;font-family:Consolas,monospace;text-transform:uppercase;
        transition:var(--transition);background:var(--cream);
    }
    .modal-box input:focus{
        outline:none;border-color:var(--gold);
        box-shadow:0 0 0 4px rgba(184,134,11,.08);
    }
    .modal-box .btn-activate{
        margin-top:14px;width:100%;padding:14px;
        background:linear-gradient(135deg,var(--gold-dark),var(--gold));
        color:#fff;border:none;border-radius:var(--radius-sm);
        font-size:16px;font-weight:600;cursor:pointer;
        transition:var(--transition);
        box-shadow:0 4px 16px rgba(184,134,11,.35);
    }
    .modal-box .btn-activate:hover{
        background:linear-gradient(135deg,#6b4a06,var(--gold-dark));
        box-shadow:0 6px 24px rgba(184,134,11,.5);
        transform:translateY(-1px);
    }
    .modal-box .btn-activate:disabled{background:var(--slate-light);cursor:not-allowed;box-shadow:none;transform:none}
    .modal-box .msg{font-size:13px;margin-top:10px;min-height:22px;font-weight:600}
    .modal-box .msg-err{color:var(--rose)}
    .modal-box .msg-ok{color:var(--sage-dark)}

    .btn-act{
        background:var(--gold);
        color:#fff;
        border:none;padding:6px 14px;border-radius:12px;
        font-size:12px;font-weight:600;cursor:pointer;margin-left:6px;
        transition:var(--transition);
        box-shadow:0 2px 8px rgba(184,134,11,.2);
    }
    .btn-act:hover{background:var(--gold-dark);transform:translateY(-1px);box-shadow:0 4px 14px rgba(184,134,11,.35)}
    .trial-countdown{font-size:12px;color:var(--gold-light);margin-top:2px}

    @media(max-width:640px){
        .header-inner{flex-wrap:wrap;justify-content:center;gap:8px}
        .header-text{text-align:center}
        .header-text h1{font-size:15px}
        .header-meta{justify-content:center}
    }

    /* ===== CONTAINER ===== */
    .container{max-width:1020px;margin:0 auto;padding:20px 20px 80px;position:relative;z-index:1}
    .input-card{
        background:var(--card);
        border-radius:var(--radius-lg);
        padding:28px;
        box-shadow:var(--shadow-md);
        margin-bottom:20px;
        transition:var(--transition);
        position:relative;
        border:1px solid rgba(200,170,110,.10);
    }
    .input-card::before{
        content:'';
        position:absolute;top:0;left:0;width:100%;height:100%;
        border-radius:var(--radius-lg);
        background:linear-gradient(175deg,rgba(220,190,130,.06) 0%,transparent 35%,transparent 70%,rgba(200,160,100,.03) 100%);
        pointer-events:none;
    }
    .input-card:focus-within{
        box-shadow:var(--shadow-lg),0 0 0 2px rgba(184,134,11,.25);
    }
    .input-card textarea{
        width:100%;height:110px;border:2px solid var(--card-border);
        border-radius:var(--radius-sm);padding:16px;
        font-size:16px;resize:vertical;
        font-family:Georgia,'Times New Roman','Noto Serif',serif;
        transition:var(--transition);
        background:var(--cream);
        color:var(--ink);
        position:relative;z-index:1;
    }
    .input-card textarea:focus{
        outline:none;border-color:var(--gold);
        background:var(--card);
        box-shadow:0 0 0 4px rgba(184,134,11,.05);
    }
    .input-card textarea::placeholder{
        color:var(--slate-light);
        font-family:'Microsoft YaHei';
        font-size:14px;
    }

    /* ===== BUTTONS ===== */

    .btn-row{display:flex;gap:10px;margin-top:16px;flex-wrap:wrap;position:relative;z-index:1;align-items:center}
    .btn-group-main{display:flex;gap:10px}
    .btn-group-sub{display:flex;gap:6px}
    .btn-group-util{display:flex;gap:4px}
    .btn-group-sep{width:1px;height:28px;background:var(--card-border);margin:0 4px;align-self:center}
    .btn{
        padding:10px 26px;border:none;border-radius:var(--radius-sm);
        font-size:14.5px;cursor:pointer;font-weight:600;
        transition:var(--transition);letter-spacing:.4px;
        position:relative;overflow:hidden;
    }
    .btn:active{transform:scale(.97)}
    .btn-a{
        background:linear-gradient(135deg,#7a5a08,#b8860b 50%,#c8963e);
        color:#fff;
        box-shadow:0 3px 16px rgba(184,134,11,.35),0 1px 3px rgba(0,0,0,.08);
        padding:11px 28px;font-size:15px;font-weight:700;
        letter-spacing:.6px;
    }
    .btn-a::after{
        content:'';
        position:absolute;top:0;left:-100%;width:100%;height:100%;
        background:linear-gradient(90deg,transparent,rgba(255,255,255,.12) 50%,transparent);
        transition:left .6s;
    }
    .btn-a:hover::after{left:100%}
    .btn-a:hover{
        background:linear-gradient(135deg,#6b4a06,#a07508 50%,var(--gold-dark));
        box-shadow:0 5px 24px rgba(184,134,11,.5),0 2px 6px rgba(0,0,0,.10);
        transform:translateY(-1px);
    }
    .btn-c{
        background:transparent;
        color:var(--slate);
        border:1.5px solid var(--card-border);
        padding:9px 18px;
    }
    .btn-c:hover{background:var(--paper);border-color:var(--gold);color:var(--ink);box-shadow:0 2px 10px rgba(184,134,11,.06)}
    .btn-e{
        background:transparent;
        color:var(--ink-light);
        font-size:12.5px;
        padding:7px 14px;
        border-radius:20px;
        border:1px solid var(--card-border);
    }
    .btn-e:hover{
        background:var(--paper);
        border-color:var(--gold);
        transform:translateY(-1px);
        box-shadow:0 3px 12px rgba(184,134,11,.1);
    }
    .btn-zh2en{
        background:linear-gradient(135deg,#235a48,#2e8a70);
        color:#fff;
        box-shadow:0 3px 12px rgba(46,138,112,.35);
    }
    .btn-zh2en:hover{
        background:linear-gradient(135deg,#1a4335,#235a48);
        box-shadow:0 5px 20px rgba(46,138,112,.45);
        transform:translateY(-1px);
    }
    .btn-zh2en:disabled{background:var(--slate-light);cursor:not-allowed;box-shadow:none;transform:none}
    .btn-ai{
        background:linear-gradient(135deg,#2d3047,#3d4a5c);
        color:#e0d6c0;
        box-shadow:0 3px 12px rgba(30,35,50,.35);
        position:relative;
    }
    .btn-ai:hover{
        background:linear-gradient(135deg,#1e2035,#2d3047);
        box-shadow:0 5px 20px rgba(30,35,50,.45);
        transform:translateY(-1px);
    }
    .btn-ai:disabled{background:var(--slate-light);cursor:not-allowed;box-shadow:none;transform:none}
    .btn-clear{
        background:var(--cream);
        color:var(--slate);
        border:1.5px solid var(--card-border);
        box-shadow:var(--shadow-sm);
    }
    .btn-clear:hover{
        background:#fee2e2;
        color:#991b1b;
        border-color:#fca5a5;
        transform:translateY(-1px);
    }
    .btn-tts{
        background:linear-gradient(135deg,#eef2ff,#e0e7ff);
        color:#4338ca;
        border:1.5px solid #c7d2fe;
        font-weight:600;
        box-shadow:var(--shadow-sm);
    }
    .btn-tts:hover{
        background:linear-gradient(135deg,#e0e7ff,#c7d2fe);
        color:#3730a3;
        border-color:#a5b4fc;
        transform:translateY(-1px);
    }
    .btn-tts.speaking{
        animation:ttsPulse 0.6s infinite;
    }
    @keyframes ttsPulse{
        0%,100%{box-shadow:0 0 0 0 rgba(99,102,241,.4);}
        50%{box-shadow:0 0 0 6px rgba(99,102,241,0);}
    }
    .btn-ai .ai-dot{
        display:inline-block;width:6px;height:6px;
        background:var(--gold-light);border-radius:50%;
        margin-right:4px;animation:glowPulse 1.5s ease-in-out infinite;
        vertical-align:middle;
    }
    .ai-card{border-left:4px solid var(--ink-light)!important;background:var(--card)!important;box-shadow:var(--shadow-md)}
    .ai-card h3{color:var(--ink)}
    .ai-error-item{
        background:var(--cream);border:1px solid var(--card-border);
        border-radius:var(--radius-sm);padding:12px 14px;margin-bottom:8px;
    }
    .ai-error-type{
        display:inline-block;padding:2px 10px;border-radius:10px;
        font-size:11px;font-weight:600;background:var(--paper);
        color:var(--ink-light);margin-right:8px;margin-bottom:6px;
    }
    .ai-error-badge{
        display:inline-block;padding:1px 6px;border-radius:6px;
        font-size:10px;font-weight:600;margin-left:4px;vertical-align:middle;
    }
    .ai-badge-high{background:var(--rose-light);color:#7a2828}
    .ai-badge-medium{background:#faf0db;color:#7a5518}
    .ai-badge-low{background:var(--sage-light);color:#2d4a32}
    .ai-loading{display:flex;align-items:center;justify-content:center;gap:10px;padding:24px;color:var(--slate-light);font-size:14px}

    /* ===== RESULT CARDS ===== */
    .result-card{
        background:var(--card);
        border-radius:var(--radius-md);
        padding:28px;
        box-shadow:var(--shadow-md);
        margin-bottom:16px;
        display:none;
        animation:fadeInUp .45s cubic-bezier(0.4,0,0.2,1);
        border:1px solid rgba(200,170,110,.08);
        position:relative;
    }
    .result-card::before{
        content:'';
        position:absolute;top:0;left:0;right:0;height:100%;
        border-radius:var(--radius-md);
        background:linear-gradient(180deg,rgba(220,190,130,.04) 0%,transparent 30%);
        pointer-events:none;
    }
    @keyframes fadeInUp{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}
    .result-card h3{
        font-size:17px;color:var(--ink);
        border-bottom:2px solid var(--paper);
        padding-bottom:12px;margin-bottom:16px;letter-spacing:.5px;
        font-weight:700;position:relative;z-index:0;
    }
    .result-card h3 .badge{
        font-size:10px;
        background:linear-gradient(135deg,var(--ink-light),var(--slate));
        color:#e8dcc8;
        padding:3px 10px;border-radius:12px;
        margin-left:8px;font-weight:500;letter-spacing:1px;
    }
    .grammar-header{
        font-size:13.5px;margin-bottom:12px;color:#7a2828;
        padding:10px 14px;background:#fdf5f4;
        border-radius:var(--radius-sm);border:1px solid var(--rose-light);
    }
    .grammar-item{
        padding:10px 14px;margin:8px 0;background:var(--card);
        border:1px solid var(--rose-light);border-radius:var(--radius-sm);
        transition:box-shadow .2s;
    }
    .grammar-item:hover{box-shadow:0 3px 12px rgba(180,80,70,.1)}
    .grammar-type{
        display:inline-block;padding:2px 8px;background:var(--rose);
        color:#fff;border-radius:4px;font-size:11px;font-weight:600;margin-right:8px;
    }
    .grammar-wrong{color:var(--rose);text-decoration:line-through;font-family:Consolas,monospace;margin:0 2px}
    .grammar-correct{color:var(--sage-dark);font-weight:700;font-family:Consolas,monospace;margin:0 2px}
    .grammar-detail{font-size:12px;color:var(--slate-light);margin-top:4px}

    /* ===== SENTENCE DISPLAY (Dark board) ===== */
    .sentence-display{
        background:
            linear-gradient(175deg,#1c1e32 0%,#191b2c 40%,#161828 100%);
        border-radius:var(--radius-sm);
        padding:18px 12px;overflow-x:auto;margin-bottom:20px;
        box-shadow:inset 0 2px 10px rgba(0,0,0,.5),0 3px 16px rgba(16,12,8,.25);
        border:1px solid rgba(255,255,255,.05);
        position:relative;
    }
    .sentence-display::before{
        content:'';
        position:absolute;top:0;left:0;width:100%;height:100%;
        background-image:
            linear-gradient(rgba(255,255,255,.008) 1px,transparent 1px),
            linear-gradient(90deg,rgba(255,255,255,.006) 1px,transparent 1px);
        background-size:20px 20px;
        pointer-events:none;border-radius:var(--radius-sm);
    }
    .sentence-table{border-collapse:separate;border-spacing:3px 3px;margin:0 auto;white-space:nowrap}
    .sentence-table td{vertical-align:middle;text-align:center}

    /* Component row */
    .comp-row td{padding:2px 2px 8px;min-width:38px}
    .comp-cell span{
        display:inline-block;padding:2px 8px;border-radius:3px;
        font-size:10.5px;font-weight:700;letter-spacing:.4px;white-space:nowrap;
    }
    .comp-cell .tense-inline{
        font-size:9px;padding:1px 5px;border-radius:8px;
        margin-left:2px;vertical-align:middle;font-weight:500;display:inline-block;
    }

    /* Word row */
    .word-row td{padding:0;min-width:38px}
    .word-cell{
        font-size:17.5px;font-family:Georgia,'Times New Roman','Noto Serif',serif;
        font-weight:bold;padding:4px 6px;color:#e8dcc8;
        border-radius:3px;min-width:36px;cursor:pointer;transition:background .2s;
    }
    .word-cell:hover{background:rgba(255,255,255,.08);box-shadow:0 0 8px rgba(200,160,60,.08)}
    .word-cell.punct{color:#6a7090;font-size:15px;cursor:default}
    .word-cell.punct:hover{background:transparent;box-shadow:none}
    .word-cell a{color:inherit;text-decoration:none;display:block}
    .word-cell a:hover{color:var(--gold-light)}
    .word-cell.clause-start{border-left:3px solid var(--gold)}
    .word-cell.clause-end{border-right:3px solid var(--gold)}

    /* Chinese translation row */
    .zh-row td{padding:1px 2px 4px;min-width:38px}
    .zh-cell{font-size:12px;color:var(--gold-light);letter-spacing:.5px;opacity:.85}
    .zh-cell:empty::before{content:'—';color:rgba(255,255,255,.15)}
    .grammar-error{background:rgba(220,80,70,.15)!important;text-decoration:line-through wavy var(--rose);position:relative}
    .grammar-error a{color:var(--rose)!important}
    .grammar-error::after{content:'\26A0';position:absolute;top:-8px;right:-2px;font-size:10px}
    .error-row td{padding:2px 4px;font-size:10px;color:var(--rose);text-align:center;background:rgba(200,80,70,.06)}
    .error-row td span{background:rgba(240,200,200,.2);border:1px solid rgba(200,80,70,.2);border-radius:4px;padding:1px 6px;white-space:nowrap}

    /* POS row */
    .pos-row td{padding:4px 1px 2px;min-width:38px}
    .pos-cell span{display:inline-block;padding:2px 6px;border-radius:3px;font-size:10.5px;font-weight:600;white-space:nowrap}

    /* Clause type row */
    .clause-row td{padding:6px 1px 2px;min-width:38px;border-top:1px solid rgba(255,255,255,.08)}
    .clause-cell span{
        display:inline-block;padding:2px 8px;border-radius:3px;
        font-size:10px;font-weight:600;white-space:nowrap;
        background:rgba(200,150,62,.12);color:var(--gold-light);
        border:1px solid rgba(200,150,62,.2);
    }

    /* Component colors - top row */
    .comp-subj{background:#5c8a67;color:#fff}
    .comp-pred{background:#c8963e;color:#fff}
    .comp-obj{background:#4a7a9c;color:#fff}
    .comp-adv{background:#6b5b8a;color:#fff}
    .comp-attr{background:#3d7a7a;color:#fff}
    .comp-prep{background:#a08040;color:#1a1c2e}
    .comp-conj{background:#b06a7a;color:#fff}
    .comp-other{background:var(--slate-light);color:#fff}
    .comp-nonfin{background:#2d5a5a;color:#fff}

    /* POS colors - bottom row */
    .pos-n{background:var(--sage-light);color:#2d4a32}
    .pos-v{background:var(--rose-light);color:#7a2828}
    .pos-adj{background:#e0d0f0;color:#4a3070}
    .pos-adv{background:#faf0db;color:#7a5518}
    .pos-prep{background:#c8d8e8;color:#2a3d50}
    .pos-pron{background:#d0e8d0;color:#2d4a32}
    .pos-conj{background:#f0c8d4;color:#602840}
    .pos-det{background:#d8dcd8;color:var(--slate)}
    .pos-other{background:var(--paper);color:var(--slate-light)}

    /* Tense tags */
    .tense-tag{display:inline-block;padding:3px 10px;border-radius:12px;font-size:11px;font-weight:600;margin:2px}
    .tense-main{background:#faf0db;color:#7a5518}
    .tense-sub{background:#c8d8e8;color:#2a3d50}

    /* Overview */
    .overview{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:16px}
    .ov-item{
        background:var(--paper);
        padding:14px 18px;border-radius:var(--radius-sm);
        border-left:4px solid var(--gold);flex:1;min-width:150px;
        box-shadow:var(--shadow-sm);transition:var(--transition);
    }
    .ov-item:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}
    .ov-item .ov-label{font-size:10.5px;color:var(--slate-light);text-transform:uppercase;letter-spacing:1.5px}
    .ov-item .ov-value{font-size:16px;font-weight:700;color:var(--ink)}

    .passive-badge{
        background:#fdf5f4;color:#7a2828;
        border:1px solid var(--rose-light);
        padding:5px 14px;border-radius:20px;font-weight:700;font-size:14px;display:inline-block;
    }
    .active-badge{
        background:#f2f7f2;color:#2d4a32;
        border:1px solid var(--sage-light);
        padding:5px 14px;border-radius:20px;font-weight:700;font-size:14px;display:inline-block;
    }

    .tag-table{width:100%;border-collapse:collapse;font-size:13px;border-radius:var(--radius-sm);overflow:hidden}
    .tag-table th{
        background:var(--paper);
        color:var(--ink);
        padding:10px 8px;text-align:left;
        border-bottom:2px solid var(--card-border);
        font-weight:700;letter-spacing:.5px;
    }
    .tag-table td{
        padding:9px 8px;border-bottom:1px solid var(--card-border);
        transition:background .15s;
    }
    .tag-table tr:hover td{background:var(--cream)}

    .hist-item{
        background:var(--cream);padding:10px 16px;border-radius:var(--radius-sm);
        cursor:pointer;margin:5px 0;font-size:13.5px;
        border-left:3px solid var(--card-border);
        transition:var(--transition);line-height:1.5;
    }
    .hist-item:hover{
        background:var(--paper);
        border-left-color:var(--gold);
        transform:translateX(3px);
        box-shadow:var(--shadow-sm);
    }

    .loading{text-align:center;padding:40px;color:var(--slate-light);display:none}
    .loading .spinner{
        width:36px;height:36px;border:4px solid var(--card-border);
        border-top-color:var(--gold);
        border-radius:50%;animation:spin .7s linear infinite;margin:0 auto 12px;
    }
    .panel-spinner{
        width:36px;height:36px;border:4px solid #d0c8b0;
        border-top-color:#2d4480;
        border-radius:50%;animation:spin .7s linear infinite;
    }
    @keyframes spin{to{transform:rotate(360deg)}}

    /* Verb glow effect */
    .word-cell.verb-glow{animation:verbShine 1.8s ease-in-out infinite;position:relative;z-index:1}
    .word-cell.verb-glow::before{
        content:'';position:absolute;top:0;left:-2px;right:-2px;bottom:-2px;
        border-radius:5px;
        background:radial-gradient(circle,rgba(200,150,60,.45) 0%,rgba(180,120,40,.2) 50%,transparent 70%);
        z-index:-1;animation:verbGlowPulse 1.8s ease-in-out infinite;pointer-events:none;
    }
    .word-cell.verb-glow::after{
        content:'';position:absolute;inset:0;border-radius:3px;
        background:linear-gradient(135deg,transparent 30%,rgba(255,255,255,.1) 50%,transparent 70%);
        background-size:200% 200%;animation:verbShimmer 2.5s linear infinite;z-index:2;pointer-events:none;
    }
    @keyframes verbShine{
        0%,100%{text-shadow:0 0 4px #e8c97a,0 0 8px rgba(200,150,60,.4),0 0 16px rgba(180,120,40,.25)}
        50%{text-shadow:0 0 10px #fff8d0,0 0 22px #e8c97a,0 0 38px #c8963e,0 0 50px rgba(200,150,60,.6)}
    }
    @keyframes verbGlowPulse{0%,100%{opacity:.3;transform:scale(1)}50%{opacity:.85;transform:scale(1.08)}}
    @keyframes verbShimmer{0%{background-position:200% 0}100%{background-position:-200% 0}}
    .error{background:#fdf5f4;color:#7a2828;padding:14px;border-radius:var(--radius-sm);border:1px solid var(--rose-light);display:none;margin-bottom:16px;box-shadow:0 2px 8px rgba(160,72,72,.06)}

    /* Legend */
    .legend{display:flex;flex-wrap:wrap;gap:10px;margin-top:10px;font-size:11px}
    .legend-item{display:flex;align-items:center;gap:4px}
    .legend-dot{width:12px;height:12px;border-radius:3px}

    /* Click feedback */
    @keyframes clickPop{0%{transform:scale(1)}50%{transform:scale(1.15);filter:brightness(1.4)}100%{transform:scale(1)}}
    .click-pop{animation:clickPop .35s ease-out}

    /* Stats button */
    .btn-stats{
        background:linear-gradient(135deg,#3d2858,#5a4a72);
        color:#e0d6f0;
        box-shadow:0 3px 12px rgba(60,40,90,.35);
    }
    .btn-stats:hover{box-shadow:0 5px 20px rgba(60,40,90,.5);transform:translateY(-1px)}

    /* Stats panel */
    .stats-overlay{
        position:fixed;top:0;right:0;width:420px;height:100%;
        background:var(--card);z-index:9998;
        box-shadow:-6px 0 36px rgba(16,12,8,.18),-1px 0 0 var(--card-border);
        overflow-y:auto;display:none;
    }
    .stats-overlay.open{display:block}
    .stats-overlay-bg{
        position:fixed;top:0;left:0;width:100%;height:100%;
        background:rgba(16,12,8,.55);z-index:9997;display:none;
        backdrop-filter:blur(3px);
    }
    .stats-overlay-bg.open{display:block}
    .stats-header{
        background:linear-gradient(135deg,#2d2640,#463a58);
        color:#e8dcc8;padding:20px;position:sticky;top:0;z-index:1;
        box-shadow:0 2px 12px rgba(0,0,0,.08);
    }
    .stats-header h2{font-size:20px;margin:0;letter-spacing:1px}
    .stats-header p{font-size:12px;opacity:.7;margin:4px 0 0}
    .stats-close{
        position:absolute;top:14px;right:14px;
        background:#fff;border:none;color:#333;
        width:34px;height:34px;border-radius:50%;font-size:16px;
        cursor:pointer;line-height:34px;text-align:center;
        font-weight:700;box-shadow:0 2px 10px rgba(0,0,0,.15);
        transition:all .2s;
    }
    .stats-close:hover{background:#e53e3e;color:#fff;transform:scale(1.08);box-shadow:0 4px 16px rgba(229,62,62,.4)}
    .stats-body{padding:16px 20px}
    .stats-section{margin-bottom:20px}
    .stats-section h3{
        font-size:14px;color:var(--ink);margin-bottom:10px;
        padding-bottom:6px;border-bottom:2px solid var(--paper);letter-spacing:.5px;
    }
    .stats-empty{text-align:center;color:var(--slate-light);padding:40px 20px;font-size:13.5px}

    /* Bar chart */
    .bar-item{display:flex;align-items:center;margin:6px 0;gap:8px}
    .bar-label{width:70px;text-align:right;font-size:11.5px;color:var(--slate);font-weight:600;flex-shrink:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
    .bar-track{flex:1;height:20px;background:var(--paper);border-radius:10px;overflow:hidden;position:relative}
    .bar-fill{height:100%;border-radius:10px;transition:width .6s ease-out;position:relative;min-width:2px}
    .bar-fill.c1{background:linear-gradient(90deg,#5c8a67,#7aac82)}
    .bar-fill.c2{background:linear-gradient(90deg,#c8963e,#d4a858)}
    .bar-fill.c3{background:linear-gradient(90deg,#4a7a9c,#6a9abc)}
    .bar-fill.c4{background:linear-gradient(90deg,#6b5b8a,#8a7aaa)}
    .bar-fill.c5{background:linear-gradient(90deg,#3d7a7a,#5a9a9a)}
    .bar-count{width:32px;text-align:left;font-size:11px;color:var(--slate-light);font-weight:600;flex-shrink:0}

    /* Clickable tags */
    .comp-cell,.pos-cell,.clause-cell{cursor:pointer}
    .comp-cell span,.pos-cell span,.clause-cell span{
        display:block;text-align:center;
        transition:transform .15s,box-shadow .15s;
        position:relative;z-index:10;pointer-events:auto;
    }
    .comp-cell span:hover,.pos-cell span:hover,.clause-cell span:hover{
        transform:scale(1.08);box-shadow:0 2px 8px rgba(0,0,0,.15);
    }
    .word-cell a{cursor:pointer}

    /* Click badge */
    .click-badge{position:fixed;pointer-events:none;z-index:9999;display:flex;align-items:center;justify-content:center;animation:badgeFade 1.5s ease-out forwards}
    .click-badge-inner{
        font-size:clamp(24px,5vw,60px);font-weight:900;
        background:linear-gradient(135deg,var(--rose),#e87870,var(--gold));
        -webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;
        animation:badgeScale 1.5s ease-out forwards;
        text-shadow:none;filter:drop-shadow(0 0 20px rgba(200,80,70,.5));
    }
    @keyframes badgeFade{0%{background:rgba(0,0,0,.1);opacity:1}60%{opacity:1}100%{opacity:0;background:rgba(0,0,0,0)}}
    @keyframes badgeScale{0%{transform:scale(.3);opacity:1}30%{transform:scale(1.15);opacity:1}100%{transform:scale(1.5);opacity:0}}
    @keyframes plusOneFloat{0%{opacity:1;transform:translate(-50%,-110%) scale(.5)}30%{opacity:1;transform:translate(-50%,-200%) scale(1.3)}100%{opacity:0;transform:translate(-50%,-300%) scale(1)}}

    /* ===== POTATO AVATAR (preserved) ===== */
@keyframes avatarBob{0%,100%{transform:translateY(0)}30%{transform:translateY(-5px)}60%{transform:translateY(-2px)}}
@keyframes eyeBlink{0%,90%,96%,100%{transform:scaleY(1)}94%{transform:scaleY(.05)}98%{transform:scaleY(1.05)}}
@keyframes mouthTalk{0%,20%,100%{height:5px;border-radius:0 0 8px 8px}30%,70%{height:14px;border-radius:50%}45%,55%{height:9px;border-radius:40%}}
@keyframes bubbleIn{from{opacity:0;transform:scale(.8) translateY(10px)}to{opacity:1;transform:scale(1) translateY(0)}}
.ewl{color:inherit;text-decoration:none;transition:color .2s}
    .ewl:hover{color:var(--gold-dark);text-decoration:underline}

    /* Changelog box in update modal */
    .changelog-box{background:var(--paper)!important;border-radius:var(--radius-sm)!important;padding:12px!important;margin:12px 0!important;max-height:200px!important;overflow-y:auto!important;text-align:left!important;font-size:13.5px!important;white-space:pre-wrap!important;color:var(--ink)!important;border:1px solid var(--card-border)!important}

    @media(max-width:640px){
        .container{padding:10px}
        .word-cell{font-size:14px}
        .comp-cell span,.pos-cell span{font-size:9px}
        .stats-overlay{width:100%}
    }


/* ===== 会说话的浮动土豆头像 ===== */
.avatar-float{position:absolute;top:80px;left:-190px;z-index:9998;cursor:pointer;user-select:none}
.avatar-float.dragging{cursor:grabbing}
.potato-body{width:110px;height:125px;background:radial-gradient(ellipse at 50% 40%,#e8c87a 0%,#d4a358 30%,#bf8c3c 70%,#a07030 100%);border-radius:55% 50% 50% 48%;position:relative;animation:avatarBob 3.2s ease-in-out infinite;box-shadow:0 8px 32px rgba(0,0,0,.3),0 0 0 3px rgba(255,255,255,.2);filter:drop-shadow(0 0 20px rgba(200,150,50,.5))}
.potato-sprout{position:absolute;top:-31px;left:50%;transform:translateX(-50%);width:48px;height:34px;background:linear-gradient(110deg,#27344d 0%,#111a2c 62%,#0b1221 100%);border-radius:50% 50% 12% 12%;z-index:3;box-shadow:inset 7px 4px 0 rgba(255,255,255,.12),0 4px 8px rgba(20,16,8,.28)}
.potato-sprout::before{content:'';position:absolute;left:-12px;bottom:-8px;width:72px;height:12px;background:linear-gradient(180deg,#18243a,#0b1221);border-radius:50%;box-shadow:0 3px 4px rgba(20,16,8,.22)}
.potato-sprout::after{content:'';position:absolute;left:3px;right:3px;bottom:2px;height:5px;background:linear-gradient(90deg,#d44b3d,#f08b42,#d44b3d);border-radius:4px;box-shadow:0 1px 0 rgba(255,255,255,.2)}
.potato-body::before{content:'★';position:absolute;top:-17px;left:50%;transform:translateX(-50%);z-index:4;color:#f5c451;font-size:13px;line-height:1;text-shadow:0 1px 2px rgba(0,0,0,.35)}
.potato-dots{position:absolute;top:0;left:0;right:0;bottom:0;pointer-events:none}
.potato-dot{position:absolute;width:5px;height:5px;background:rgba(139,100,60,.5);border-radius:50%}
.p-d1{top:22px;left:18px}.p-d2{top:38px;right:16px}.p-d3{bottom:30px;left:22px}
.avatar-float .avatar-eyes{position:absolute;top:26px;left:0;right:0;display:flex;justify-content:center;gap:14px;z-index:1}
.avatar-float .eye{width:14px;height:16px;background:#fff;border-radius:50%;position:relative;box-shadow:inset 0 1px 2px rgba(0,0,0,.05);overflow:hidden}
.avatar-float .eye::after{content:'';position:absolute;width:7px;height:8px;background:#1a1a2e;border-radius:50%;top:50%;left:50%;transform:translate(-50%,-50%);transition:transform .25s}
.avatar-float .eye::before{content:'';position:absolute;width:2.5px;height:2.5px;background:#fff;border-radius:50%;top:2px;right:3px;z-index:2}
.avatar-float .eye{animation:eyeBlink 4.5s ease-in-out infinite}
.avatar-float .avatar-brows{position:absolute;top:17px;left:0;right:0;display:flex;justify-content:center;gap:18px;z-index:1}
.avatar-float .brow{width:14px;height:3.5px;background:#6b4420;border-radius:6px;transition:transform .3s}
.avatar-float .avatar-mouth-wrap{position:absolute;bottom:24px;left:50%;transform:translateX(-50%);z-index:1}
.avatar-float .mouth{width:16px;height:7px;background:#a06030;border-radius:0 0 9px 9px;transition:all .15s}
.avatar-float .mouth{animation:mouthTalk 1s ease-in-out infinite}
.avatar-float .avatar-blush{position:absolute;bottom:30px;width:11px;height:6px;background:rgba(255,140,140,.45);border-radius:50%}
.avatar-float .avatar-blush.l{left:11px}.avatar-float .avatar-blush.r{right:11px}
.avatar-float .avatar-glow{position:absolute;top:-5px;left:-5px;right:-5px;bottom:-5px;border-radius:50%;background:radial-gradient(circle,rgba(255,200,120,.3) 0%,transparent 70%);animation:glowPulse 2s ease-in-out infinite;pointer-events:none}
@keyframes glowPulse{0%,100%{opacity:.5;transform:scale(1)}50%{opacity:1;transform:scale(1.08)}}
.avatar-bubble{position:absolute;left:50%;transform:translateX(-50%);top:135px;z-index:9997;min-width:180px;max-width:280px;background:rgba(255,255,255,.97);border-radius:18px;padding:14px 18px;box-shadow:0 8px 32px rgba(0,0,0,.22);pointer-events:none;animation:bubbleIn .5s ease-out;font-size:14px;line-height:1.7;color:#2d3748;display:none;white-space:normal;word-break:break-word}
.avatar-bubble.show{display:block}
.avatar-bubble .bubble-main{font-weight:600;color:#1a365d;font-size:15px}
.avatar-bubble .bubble-footer{color:#c8963e;font-weight:700;margin-top:6px;font-size:13px;letter-spacing:.5px}
.avatar-bubble::after{content:'';position:absolute;top:-10px;left:50%;margin-left:-10px;border:10px solid transparent;border-bottom-color:rgba(255,255,255,.97)}
.avatar-bubble.reply-glow{animation:replyGlow 1.5s ease-in-out infinite;border-color:#f59e0b!important;background:linear-gradient(135deg,#fffdf5,#fff7e0)!important;pointer-events:auto;cursor:pointer}
@keyframes replyGlow{0%,100%{box-shadow:0 0 8px rgba(255,180,50,.4),0 0 20px rgba(255,180,50,.2)}50%{box-shadow:0 0 20px rgba(255,180,50,.8),0 0 40px rgba(255,180,50,.45),0 0 60px rgba(255,160,30,.25)}}
@keyframes orangeShimmer{0%,100%{box-shadow:0 0 8px rgba(255,140,0,.4),0 0 16px rgba(255,100,0,.2);border-color:#e07b30}50%{box-shadow:0 0 24px rgba(255,140,0,.8),0 0 48px rgba(255,100,0,.5),0 0 72px rgba(255,80,0,.3);border-color:#ff9f43}}
@keyframes marqueeScroll{0%{transform:translateX(100%)}100%{transform:translateX(-100%)}}
.avatar-close{position:absolute;top:-8px;right:-8px;width:26px;height:26px;background:#fff;color:#333;border-radius:50%;font-size:14px;line-height:26px;text-align:center;cursor:pointer;z-index:2;display:none;border:none;font-weight:700;box-shadow:0 2px 8px rgba(0,0,0,.2);transition:all .2s}
.avatar-close:hover{background:#e53e3e;color:#fff;transform:scale(1.1)}
.avatar-float:hover .avatar-close{display:block}

/* ===== 单词本面板 ===== */
.wb-overlay-bg{position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(16,12,8,.55);z-index:9997;display:none;backdrop-filter:blur(3px)}
.wb-overlay-bg.open{display:block}
.wb-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:var(--card);z-index:9998;overflow-y:auto;display:none}
.wb-overlay.open{display:block}
.wb-header{background:linear-gradient(135deg,#1e2636,#2d3748 50%,#3a4a5c);color:#e8dcc8;padding:20px;position:sticky;top:0;z-index:1;box-shadow:0 2px 12px rgba(0,0,0,.1)}
.wb-header h2{font-size:20px;margin:0 0 2px;letter-spacing:1px}
.wb-header p{font-size:12px;opacity:.7;margin:0 0 8px}
.wb-close{position:absolute;top:14px;right:14px;background:#fff;border:none;color:#333;width:34px;height:34px;border-radius:50%;font-size:16px;cursor:pointer;line-height:34px;text-align:center;font-weight:700;box-shadow:0 2px 10px rgba(0,0,0,.15);transition:all .2s}
.wb-close:hover{background:#e53e3e;color:#fff;transform:scale(1.08);box-shadow:0 4px 16px rgba(229,62,62,.4)}
.wb-tabs{display:flex;gap:6px;margin-top:8px;flex-wrap:wrap}
.wb-tab{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.12);color:rgba(255,255,255,.7);padding:6px 14px;border-radius:20px;font-size:12px;cursor:pointer;transition:all .2s;font-weight:600}
.wb-tab.active{background:var(--gold);color:#fff;border-color:var(--gold);box-shadow:0 2px 8px rgba(184,134,11,.3)}
.wb-tab:hover{background:rgba(255,255,255,.15)}
.wb-body{padding:16px 20px;min-height:300px}
.wb-item{display:flex;align-items:center;padding:12px 14px;background:var(--cream);border-radius:var(--radius-sm);margin-bottom:6px;border-left:3px solid var(--gold);transition:var(--transition);gap:8px;flex-wrap:wrap;box-shadow:var(--shadow-sm)}
.wb-item:hover{transform:translateX(3px);box-shadow:var(--shadow-md)}
.wb-item .wb-word{font-size:16px;font-weight:700;font-family:Georgia,serif;color:var(--ink);min-width:80px}
.wb-item .wb-zh{font-size:13px;color:var(--slate-light);flex:1}
.wb-item .wb-pos-tag{font-size:10px;padding:1px 6px;border-radius:4px;background:var(--paper);color:var(--slate);font-weight:600;white-space:nowrap}
.wb-item .wb-badge{font-size:10px;padding:2px 6px;border-radius:6px;white-space:nowrap}
.wb-badge-new{background:#fef3c7;color:#92400e}
.wb-badge-learning{background:#d1fae5;color:#065f46}
.wb-badge-mastered{background:#dbeafe;color:#1e40af}
.wb-item .wb-actions{display:flex;gap:4px}
.wb-item button{background:var(--paper);border:1px solid var(--card-border);border-radius:6px;padding:4px 8px;font-size:11px;cursor:pointer;transition:all .15s;color:var(--slate);white-space:nowrap}
.wb-item button:hover{background:var(--gold);color:#fff;border-color:var(--gold);box-shadow:0 2px 6px rgba(184,134,11,.2)}
.wb-item-main{display:flex;align-items:center;gap:8px;flex-wrap:wrap;width:100%}
.wb-forms{margin-top:6px;padding-top:6px;border-top:1px dashed var(--card-border);display:flex;flex-wrap:wrap;gap:8px;font-size:11px;color:var(--slate);width:100%}
.wb-form-row{display:inline-flex;align-items:center;gap:4px;background:var(--paper);padding:2px 8px;border-radius:6px;white-space:nowrap}
.wb-form-label{font-weight:700;font-size:10px;padding:0 4px;border-radius:3px;background:var(--gold);color:#fff;text-transform:uppercase}
.wb-empty{text-align:center;color:var(--slate-light);padding:50px 20px;font-size:14px;line-height:2}
.toast-enter{animation:toastIn .4s ease-out}
.toast-exit{animation:toastOut .4s ease-in forwards}
@keyframes toastIn{from{opacity:0;transform:translateY(20px) scale(.9)}to{opacity:1;transform:translateY(0) scale(1)}}
@keyframes toastOut{from{opacity:1}to{opacity:0;transform:translateY(-10px)}}

/* ===== 闪卡 ===== */
.flashcard-wrap{max-width:400px;margin:0 auto}
.flashcard{background:var(--card);border-radius:var(--radius-md);padding:40px 24px;text-align:center;margin:16px 0;box-shadow:var(--shadow-md),0 0 0 1px var(--card-border);min-height:180px;cursor:pointer;position:relative;transition:transform .3s}
.flashcard:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg)}
.flashcard .fc-en{font-size:28px;font-weight:700;font-family:Georgia,serif;color:var(--ink);margin-bottom:12px}
.flashcard .fc-zh{font-size:20px;color:var(--gold-dark);font-weight:600;min-height:30px;transition:opacity .3s}
.flashcard .fc-zh.hidden{opacity:0}
.flashcard .fc-pos{font-size:12px;color:var(--slate-light);margin-bottom:8px}
.flashcard .fc-hint{font-size:12px;color:var(--slate-light);opacity:.6}
.fc-forms{margin-top:12px;padding-top:10px;border-top:1px dashed var(--card-border);display:flex;flex-wrap:wrap;gap:6px;justify-content:center;font-size:12px;color:var(--slate);transition:opacity .3s}
.fc-forms.hidden{opacity:0}
.fc-form-row{display:inline-flex;align-items:center;gap:4px;background:var(--cream);padding:2px 8px;border-radius:6px;white-space:nowrap}
.fc-form-tag{font-weight:700;font-size:10px;padding:0 4px;border-radius:3px;background:var(--gold);color:#fff}
.flashcard-buttons{display:flex;gap:12px;justify-content:center;margin-top:20px}
.fc-btn{padding:10px 28px;border:none;border-radius:var(--radius-sm);font-size:14px;font-weight:600;cursor:pointer;transition:all .2s}
.fc-btn-know{background:linear-gradient(135deg,var(--sage-dark),var(--sage));color:#fff}
.fc-btn-know:hover{transform:translateY(-1px);box-shadow:0 4px 12px rgba(92,138,103,.3)}
.fc-btn-again{background:var(--paper);color:var(--slate);border:1px solid var(--card-border)}
.fc-btn-again:hover{background:var(--card-border);transform:translateY(-1px)}

/* ===== 测验 ===== */
.quiz-box{max-width:480px;margin:0 auto}
.quiz-word{font-size:26px;font-weight:700;font-family:Georgia,serif;text-align:center;padding:24px 0 16px;color:var(--ink)}
.quiz-options{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.quiz-opt{padding:14px 16px;background:var(--cream);border:2px solid var(--card-border);border-radius:var(--radius-sm);font-size:15px;cursor:pointer;transition:all .2s;text-align:center}
.quiz-opt:hover{background:var(--paper);border-color:var(--gold)}
.quiz-opt.correct{background:#c6f6d5!important;border-color:#48bb78!important;color:#276749!important}
.quiz-opt.wrong{background:#fed7d7!important;border-color:#fc8181!important;color:#9b2c2c!important}
.quiz-opt.disabled{pointer-events:none;opacity:.7}
.quiz-progress{height:6px;background:var(--paper);border-radius:3px;margin-bottom:16px;overflow:hidden}
.quiz-progress-fill{height:100%;background:linear-gradient(90deg,var(--gold-dark),var(--gold-light));border-radius:3px;transition:width .3s}
.quiz-reward{position:fixed;pointer-events:none;z-index:99999;font-size:36px;animation:qrFloat .8s ease-out forwards}
@keyframes qrFloat{0%{opacity:1;transform:translateY(0) scale(1)}100%{opacity:0;transform:translateY(-60px) scale(1.5)}}
.quiz-score{text-align:center;font-size:18px;font-weight:700;color:var(--ink);margin:16px 0}

/* ===== 升级动画 ===== */
.levelup-overlay{position:fixed;top:0;left:0;width:100%;height:100%;z-index:99999;display:flex;align-items:center;justify-content:center;background:rgba(20,16,12,.6);backdrop-filter:blur(4px);animation:fadeIn .5s}
.levelup-box{background:var(--card);border-radius:var(--radius-lg);padding:48px;text-align:center;max-width:400px;width:90%;box-shadow:0 20px 60px rgba(0,0,0,.3);animation:modalIn .5s cubic-bezier(.34,1.56,.64,1)}
.levelup-box h2{font-size:28px;color:var(--gold);margin:0 0 8px}
.levelup-box .levelup-title{font-size:20px;color:var(--ink);font-weight:700;margin:0 0 4px}
.levelup-box .levelup-lv{font-size:48px;font-weight:900;background:linear-gradient(135deg,var(--gold-dark),var(--gold-light));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin:8px 0}
.levelup-box .levelup-sub{font-size:13px;color:var(--slate-light);margin-top:8px}
/* ===== 徽章通知 ===== */
.badge-popup{position:fixed;top:20px;left:50%;transform:translateX(-50%);z-index:100000;background:var(--card);border-radius:16px;padding:16px 28px;box-shadow:0 12px 40px rgba(0,0,0,.25);animation:badgeIn .6s cubic-bezier(.34,1.56,.64,1);text-align:center;overflow:hidden}
.badge-popup .badge-icon{font-size:40px;position:relative;z-index:1}
.badge-popup .badge-name{font-size:15px;font-weight:700;color:var(--ink);margin-top:4px;position:relative;z-index:1}
.badge-popup .badge-desc{font-size:11px;color:var(--slate-light);position:relative;z-index:1}
/* Tier: bronze (default) */
.badge-tier-bronze{border:2px solid #cd7f32;box-shadow:0 12px 40px rgba(205,127,50,.3)}
/* Tier: silver */
.badge-tier-silver{border:2px solid #a8b8c8;box-shadow:0 12px 40px rgba(168,184,200,.35),0 0 30px rgba(168,184,200,.15)}
/* Tier: gold */
.badge-tier-gold{border:2px solid #f59e0b;box-shadow:0 12px 40px rgba(245,158,11,.35),0 0 40px rgba(245,158,11,.15);background:linear-gradient(135deg,#fffdf5,#fffef9,#fffdf5)}
/* Tier: diamond */
.badge-tier-diamond{border:3px solid transparent;border-image:linear-gradient(135deg,#a78bfa,#6366f1,#06b6d4,#a78bfa) 1;box-shadow:0 12px 40px rgba(99,102,241,.35),0 0 50px rgba(6,182,212,.2),0 0 80px rgba(167,139,250,.1);background:linear-gradient(135deg,#faf9ff,#f0f0ff,#faf9ff);animation:badgeInDiamond .6s cubic-bezier(.34,1.56,.64,1),badgeGlow 2s ease-in-out infinite}
/* Tier: legendary */
.badge-tier-legendary{border:3px solid transparent;border-image:linear-gradient(135deg,#f59e0b,#ef4444,#ec4899,#f59e0b) 1;box-shadow:0 12px 40px rgba(239,68,68,.3),0 0 50px rgba(236,72,153,.2),0 0 80px rgba(245,158,11,.15);background:linear-gradient(135deg,#fffdf0,#fff5f5,#fdf0ff,#fffdf0);animation:badgeInLegendary .7s cubic-bezier(.34,1.56,.64,1),badgeGlowLegendary 1.5s ease-in-out infinite}
/* Badge sparkles */
.badge-sparkles{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:0}
.badge-sparkles .sparkle{position:absolute;width:4px;height:4px;background:#f59e0b;border-radius:50%;animation:sparkleFloat 2s ease-in-out infinite}
.badge-sparkles .sparkle:nth-child(1){top:10%;left:10%;animation-delay:0s;background:#f59e0b}
.badge-sparkles .sparkle:nth-child(2){top:15%;left:85%;animation-delay:.2s;background:#ef4444}
.badge-sparkles .sparkle:nth-child(3){top:50%;left:5%;animation-delay:.4s;background:#ec4899}
.badge-sparkles .sparkle:nth-child(4){top:55%;left:92%;animation-delay:.6s;background:#a78bfa}
.badge-sparkles .sparkle:nth-child(5){top:85%;left:15%;animation-delay:.8s;background:#6366f1}
.badge-sparkles .sparkle:nth-child(6){top:80%;left:80%;animation-delay:1s;background:#06b6d4}
.badge-sparkles .sparkle:nth-child(7){top:30%;left:3%;animation-delay:.3s;background:#f59e0b}
.badge-sparkles .sparkle:nth-child(8){top:35%;left:95%;animation-delay:.5s;background:#ef4444}
.badge-sparkles .sparkle:nth-child(9){top:70%;left:8%;animation-delay:.7s;background:#ec4899}
.badge-sparkles .sparkle:nth-child(10){top:65%;left:90%;animation-delay:.9s;background:#a78bfa}
.badge-sparkles .sparkle:nth-child(11){top:10%;left:50%;animation-delay:1.1s;background:#f59e0b}
.badge-sparkles .sparkle:nth-child(12){top:90%;left:50%;animation-delay:1.3s;background:#6366f1}
@keyframes badgeIn{0%{opacity:0;transform:translateX(-50%) scale(.5)}60%{transform:translateX(-50%) scale(1.08)}100%{opacity:1;transform:translateX(-50%) scale(1)}}
@keyframes badgeInDiamond{0%{opacity:0;transform:translateX(-50%) scale(.3) rotate(-5deg)}50%{transform:translateX(-50%) scale(1.1) rotate(2deg)}100%{opacity:1;transform:translateX(-50%) scale(1) rotate(0)}}
@keyframes badgeInLegendary{0%{opacity:0;transform:translateX(-50%) scale(.1) rotate(-15deg)}40%{transform:translateX(-50%) scale(1.15) rotate(5deg)}70%{transform:translateX(-50%) scale(.95) rotate(-2deg)}100%{opacity:1;transform:translateX(-50%) scale(1) rotate(0)}}
@keyframes badgeGlow{0%,100%{box-shadow:0 12px 40px rgba(99,102,241,.35),0 0 50px rgba(6,182,212,.2),0 0 80px rgba(167,139,250,.1)}50%{box-shadow:0 12px 40px rgba(99,102,241,.5),0 0 70px rgba(6,182,212,.35),0 0 100px rgba(167,139,250,.25)}}
@keyframes badgeGlowLegendary{0%,100%{box-shadow:0 12px 40px rgba(239,68,68,.3),0 0 50px rgba(236,72,153,.2),0 0 80px rgba(245,158,11,.15)}50%{box-shadow:0 12px 40px rgba(239,68,68,.5),0 0 70px rgba(236,72,153,.4),0 0 100px rgba(245,158,11,.3)}}
@keyframes sparkleFloat{0%,100%{opacity:0;transform:scale(0) translateY(0)}50%{opacity:1;transform:scale(1) translateY(-10px)}}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
@keyframes modalIn{from{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}
@keyframes updPulse{0%,100%{opacity:1}50%{opacity:.3}}
@keyframes bannerSlide{from{transform:translateY(-100%)}to{transform:translateY(0)}}

/* ===== 上传单词表 ===== */
.wb-upload-btn{background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.2);color:#e8dcc8;padding:6px 14px;border-radius:20px;font-size:12px;cursor:pointer;transition:all .2s;font-weight:600;margin-top:6px}
.wb-upload-btn:hover{background:rgba(255,255,255,.22);border-color:rgba(255,255,255,.35)}
#uploadDropZone.dragover{border-color:var(--gold)!important;background:#fef9f0!important}
/* ===== 右侧导航药丸按钮（缩小，紧凑） ===== */
.btn-wordbank, .btn-phrasebank, .btn-capsule{
    padding:6px 10px;border-radius:18px;font-size:11px;font-weight:600;
    border:1.5px solid transparent;transition:var(--transition);
}
.btn-wordbank{
    background:linear-gradient(135deg,#f0f7f2,#e8f5e9);color:var(--sage-dark);
    border-color:var(--sage-light);
}
.btn-wordbank:hover{background:var(--sage-light);border-color:var(--sage);transform:translateY(-1px);box-shadow:0 3px 10px rgba(92,138,103,.2)}
.btn-wordbank .wb-btn-count{background:var(--sage);color:#fff;border-radius:10px;padding:1px 6px;font-size:10px;margin-left:3px;font-weight:700}
.btn-phrasebank{
    background:linear-gradient(135deg,#f5f3ff,#ede9fe);color:#6366f1;
    border-color:#c4b5fd;
}
.btn-phrasebank:hover{background:#ede9fe;border-color:#8b5cf6;transform:translateY(-1px);box-shadow:0 3px 10px rgba(99,102,241,.2)}
.btn-phrasebank .wb-btn-count{background:#6366f1;color:#fff;border-radius:10px;padding:1px 6px;font-size:10px;margin-left:3px;font-weight:700}
.btn-capsule{
    background:linear-gradient(135deg,#fffbeb,#fef3c7);color:#b45309;
    border-color:#fcd34d;
}
.btn-capsule:hover{background:#fef3c7;border-color:#f59e0b;transform:translateY(-1px);box-shadow:0 3px 10px rgba(245,158,11,.2)}
/* ===== 知识胶囊面板 ===== */
.capsule-item{display:flex;align-items:center;padding:14px 16px;background:var(--cream);border-radius:var(--radius-sm);margin-bottom:8px;border-left:4px solid #6366f1;transition:var(--transition);cursor:pointer;gap:10px;box-shadow:var(--shadow-sm)}
.capsule-item:hover{transform:translateX(3px);box-shadow:var(--shadow-md);background:#f5f0ff}
.capsule-item .capsule-icon{font-size:28px;flex-shrink:0}
.capsule-item .capsule-title{font-size:15px;font-weight:700;color:var(--ink);flex:1}
.capsule-item .capsule-arrow{font-size:18px;color:#6366f1;flex-shrink:0}
/* 仪表盘 */
.dashboard{display:flex;gap:10px;flex-wrap:wrap;margin:8px 0 4px 0;justify-content:center}
.dash-card{flex:1;min-width:100px;max-width:160px;background:var(--card);border-radius:12px;padding:10px 12px;text-align:center;border:1px solid var(--card-border);transition:all .2s;cursor:default;box-shadow:var(--shadow-sm)}
.dash-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}
.dash-card .dash-num{font-size:22px;font-weight:800;font-family:Georgia,serif;color:var(--ink);line-height:1.2}
.dash-card .dash-label{font-size:10px;color:var(--slate-light);margin-top:2px;font-weight:600}
.dash-card.dash-words{border-left:3px solid #5c8a67}
.dash-card.dash-phrases{border-left:3px solid #6366f1}
.dash-card.dash-sentences{border-left:3px solid #c8963e}
.dash-card.dash-level{border-left:3px solid #8b5cf6}
.dash-card.dash-analysis{border-left:3px solid #2d4480;cursor:pointer}
.dash-card.dash-analysis:hover{background:linear-gradient(135deg,#f0f4ff,#e8ecf8);transform:translateY(-3px)}

/* 学习分析面板 */
.analysis-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(16,12,8,.65);z-index:100000;display:none;align-items:center;justify-content:center}
.analysis-overlay.open{display:flex}
.analysis-panel{background:#faf7f0;border-radius:20px;padding:0;width:900px;max-width:96vw;max-height:90vh;overflow-y:auto;box-shadow:0 24px 80px rgba(0,0,0,.35)}
.analysis-header{background:linear-gradient(135deg,#1a2a40,#2d4480);border-radius:20px 20px 0 0;padding:20px 28px;display:flex;align-items:center;justify-content:space-between;color:#fff;position:sticky;top:0;z-index:1}
.analysis-header h2{font-size:18px;margin:0;font-weight:700}
.analysis-close{background:rgba(255,255,255,.2);border:none;color:#fff;width:32px;height:32px;border-radius:50%;font-size:16px;cursor:pointer}
.help-tour-restart{margin-left:auto;padding:7px 11px;border:1px solid rgba(255,255,255,.6);border-radius:5px;background:rgba(255,255,255,.12);color:#fff;font:600 11px/1.2 "Microsoft YaHei UI",sans-serif;cursor:pointer;white-space:nowrap}
.help-tour-restart:hover,.help-tour-restart:focus-visible{background:#fff;color:#17365d;outline:2px solid rgba(255,255,255,.55);outline-offset:2px}
.analysis-body{padding:24px 28px 32px}
.help-manual{display:grid;grid-template-columns:210px minmax(0,1fr);min-height:620px;background:#f8fafc;color:#263548}
.help-manual-nav{padding:18px 12px;border-right:1px solid #d9e1ea;background:#eef3f7}
.help-manual-nav-title{padding:0 10px 12px;font-size:11px;font-weight:800;letter-spacing:.12em;color:#66768a;text-transform:uppercase}
.help-nav-button{display:flex;align-items:center;gap:9px;width:100%;padding:10px 11px;border:0;border-left:3px solid transparent;background:transparent;color:#405169;font-size:13px;text-align:left;cursor:pointer;transition:background .15s ease,color .15s ease,border-color .15s ease}
.help-nav-button:hover{background:#e2e9f0;color:#17365d}
.help-nav-button.active{border-left-color:#b38a37;background:#fff;color:#17365d;font-weight:700}
.help-nav-index{width:22px;color:#8b6a28;font:700 11px/1.2 Consolas,monospace}
.help-manual-content{min-width:0;padding:28px 32px 40px;max-height:calc(90vh - 64px);overflow-y:auto;scroll-behavior:smooth}
.help-section{display:none;max-width:680px;margin:0 auto}
.help-section.active{display:block}
.help-kicker{font-size:11px;font-weight:800;letter-spacing:.14em;color:#8b6a28;text-transform:uppercase}
.help-section h3{margin:7px 0 8px;color:#17365d;font:700 26px/1.25 Cambria,Georgia,serif}
.help-intro{margin:0 0 22px;color:#637184;font-size:14px;line-height:1.75}
.help-quick-route{display:grid;grid-template-columns:repeat(3,1fr);margin:20px 0 26px;border:1px solid #d6dee8;background:#fff}
.help-route-item{padding:15px;border-right:1px solid #d6dee8}
.help-route-item:last-child{border-right:0}
.help-route-item strong{display:block;margin-bottom:4px;color:#17365d;font-size:13px}
.help-route-item span{color:#6a7889;font-size:12px;line-height:1.55}
.help-steps{border-top:1px solid #ccd6e1}
.help-step{display:grid;grid-template-columns:42px minmax(0,1fr);gap:14px;padding:18px 0;border-bottom:1px solid #dbe3eb}
.help-step-number{width:34px;height:34px;border:1px solid #b38a37;color:#7a5b20;display:flex;align-items:center;justify-content:center;font:700 13px/1 Consolas,monospace;background:#fff}
.help-step h4{margin:0 0 6px;color:#203852;font-size:15px}
.help-step p{margin:0;color:#536276;font-size:13px;line-height:1.75}
.help-step b{color:#17365d}
.help-result{margin-top:8px;padding:8px 10px;border-left:3px solid #3f6f66;background:#edf5f2;color:#355c54;font-size:12px;line-height:1.65}
.help-note{margin-top:20px;padding:14px 16px;border:1px solid #d6dee8;background:#fff;color:#536276;font-size:13px;line-height:1.75}
.help-note strong{color:#17365d}
.help-faq{border-top:1px solid #ccd6e1}
.help-faq details{border-bottom:1px solid #dbe3eb;background:#fff}
.help-faq summary{padding:15px 12px;color:#203852;font-size:14px;font-weight:700;cursor:pointer}
.help-faq p{margin:0;padding:0 12px 16px;color:#5d6b7c;font-size:13px;line-height:1.75}
.help-manual button:focus-visible,.help-faq summary:focus-visible{outline:2px solid #b38a37;outline-offset:2px}
@media(max-width:700px){
  .help-manual{display:block;min-height:0}
  .help-manual-nav{display:flex;gap:4px;padding:9px;border-right:0;border-bottom:1px solid #d9e1ea;overflow-x:auto}
  .help-manual-nav-title{display:none}
  .help-nav-button{flex:0 0 auto;width:auto;padding:9px 10px;border-left:0;border-bottom:2px solid transparent;white-space:nowrap}
  .help-nav-button.active{border-left:0;border-bottom-color:#b38a37}
  .help-manual-content{padding:22px 18px 30px;max-height:calc(90vh - 116px)}
  .help-section h3{font-size:22px}
  .help-quick-route{grid-template-columns:1fr}
  .help-route-item{border-right:0;border-bottom:1px solid #d6dee8}
  .help-route-item:last-child{border-bottom:0}
}
@media(max-width:390px){
  .help-manual-content{padding:18px 14px 26px}
  .help-step{grid-template-columns:34px minmax(0,1fr);gap:10px}
  .help-step-number{width:30px;height:30px}
}

/* ===== 首次使用小白模式：首页一级功能导览 ===== */
.onboarding-tour{position:fixed;inset:0;z-index:110000;display:none;pointer-events:none;font-family:"Microsoft YaHei UI","Segoe UI",sans-serif}
.onboarding-tour.open{display:block}
.onboarding-tour-catcher{position:fixed;inset:0;pointer-events:auto;background:transparent}
.onboarding-tour.welcome .onboarding-tour-catcher,.onboarding-tour.finish .onboarding-tour-catcher{background:rgba(9,20,34,.72);backdrop-filter:blur(2px)}
.onboarding-spotlight{position:fixed;z-index:1;display:none;border:2px solid #f5c451;border-radius:12px;background:transparent;box-shadow:0 0 0 9999px rgba(9,20,34,.72),0 0 0 5px rgba(245,196,81,.16),0 0 28px rgba(245,196,81,.72);pointer-events:none;animation:onboardingSpotlightPulse 2s ease-in-out infinite}
.onboarding-tour.has-target .onboarding-spotlight{display:block}
.onboarding-tour-card{position:fixed;z-index:3;width:min(360px,calc(100vw - 28px));max-height:calc(100vh - 28px);overflow:auto;padding:22px 22px 18px;border:1px solid rgba(255,255,255,.65);border-radius:14px;background:#fffdf7;color:#1f3047;box-shadow:0 20px 70px rgba(0,0,0,.38);pointer-events:auto;animation:onboardingCardIn .24s ease-out}
.onboarding-tour-kicker{margin-bottom:8px;color:#9a7125;font:800 10px/1.2 Consolas,monospace;letter-spacing:.16em;text-transform:uppercase}
.onboarding-tour-card h2{margin:0;color:#17365d;font:700 22px/1.25 Cambria,Georgia,"Microsoft YaHei",serif}
.onboarding-tour-card p{margin:10px 0 0;color:#526174;font-size:13px;line-height:1.75}
.onboarding-tour-progress{margin-top:15px;color:#8a6a2a;font-size:11px;font-weight:700}
.onboarding-tour-actions{display:flex;align-items:center;gap:7px;margin-top:16px;flex-wrap:wrap}
.onboarding-tour-actions button{min-height:32px;padding:0 11px;border:1px solid #b9c4d0;border-radius:6px;background:#fff;color:#405169;font:600 11px/30px "Microsoft YaHei UI",sans-serif;cursor:pointer}
.onboarding-tour-actions button:hover,.onboarding-tour-actions button:focus-visible{border-color:#294767;background:#edf2f7;color:#17365d;outline:2px solid rgba(41,71,103,.22);outline-offset:2px}
.onboarding-tour-actions .onboarding-tour-next{border-color:#294767;background:#294767;color:#fff}
.onboarding-tour-actions .onboarding-tour-next:hover,.onboarding-tour-actions .onboarding-tour-next:focus-visible{background:#17365d;color:#fff}
.onboarding-tour-actions .onboarding-tour-muted{margin-left:auto;border-color:transparent;background:transparent;color:#7b8796;font-weight:500}
.onboarding-tour-actions .onboarding-tour-muted:hover,.onboarding-tour-actions .onboarding-tour-muted:focus-visible{border-color:#c8d1db;background:#f3f6f8;color:#405169}
@keyframes onboardingSpotlightPulse{0%,100%{box-shadow:0 0 0 9999px rgba(9,20,34,.72),0 0 0 5px rgba(245,196,81,.16),0 0 28px rgba(245,196,81,.72)}50%{box-shadow:0 0 0 9999px rgba(9,20,34,.72),0 0 0 8px rgba(245,196,81,.23),0 0 38px rgba(245,196,81,.9)}}
@keyframes onboardingCardIn{from{opacity:0;transform:translateY(5px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}
@media(max-width:520px){
  .onboarding-tour-card{padding:18px 16px 15px}
  .onboarding-tour-card h2{font-size:19px}
  .onboarding-tour-card p{font-size:12px}
  .onboarding-tour-actions button{flex:1;min-width:74px;padding:0 7px}
  .onboarding-tour-actions .onboarding-tour-muted{flex:0 0 auto;margin-left:0}
}
@media(prefers-reduced-motion:reduce){
  .onboarding-spotlight,.onboarding-tour-card{animation:none}
}
.analysis-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:20px}
.analysis-stat{background:#fff;border-radius:12px;padding:16px;text-align:center;box-shadow:0 2px 8px rgba(0,0,0,.04);border:1px solid #e8e4d8}
.analysis-stat .as-num{font-size:32px;font-weight:900;color:#1a1a1a;line-height:1}
.analysis-stat .as-label{font-size:11px;color:#888;margin-top:4px}
.analysis-section{margin-bottom:24px}
.analysis-section h3{font-size:15px;font-weight:700;color:#3d3226;margin-bottom:12px;display:flex;align-items:center;gap:8px}
.analysis-section h3 .as-icon{font-size:18px}
.analysis-chart{background:#fff;border-radius:12px;padding:16px;box-shadow:0 2px 8px rgba(0,0,0,.04);border:1px solid #e8e4d8}
.analysis-empty{text-align:center;padding:40px;color:#999;font-size:13px}
@keyframes anBarGrow{from{width:0}to{width:var(--w)}}
@keyframes anFadeIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
@keyframes anLineDraw{from{stroke-dashoffset:2000}to{stroke-dashoffset:0}}
.dash-card.dash-streak{border-left:3px solid #e53e3e}
.dash-card.dash-points{border-left:3px solid #f59e0b}
/* 连续学习横幅 */
.streak-banner{display:none;text-align:center;padding:10px 16px;margin:4px 8px 0;background:linear-gradient(135deg,#fef9f0,#fff5f5);border:1px solid #fcd34d;border-radius:12px;animation:bannerSlide .5s ease-out}
.streak-banner.show{display:block}
.streak-banner .streak-msg{font-size:13px;color:#92400e;font-weight:700;line-height:1.6}
.streak-banner .streak-fire{font-size:18px;margin-right:4px;animation:firePulse .8s ease-in-out infinite}
@keyframes firePulse{0%,100%{transform:scale(1)}50%{transform:scale(1.2)}}
/* 土豆对话大框 — AI 英语问答 */
.potato-chat-overlay{position:fixed;top:0;left:0;width:100%;height:100%;z-index:9995;background:rgba(20,16,12,.55);display:none;justify-content:center;align-items:center;backdrop-filter:blur(3px)}
.potato-chat-overlay.open{display:flex}
.potato-chat-box{background:var(--card);border-radius:20px;width:960px;max-width:98vw;height:95vh;max-height:none;display:flex;flex-direction:column;box-shadow:0 20px 60px rgba(0,0,0,.3);animation:modalIn .4s cubic-bezier(.34,1.56,.64,1);overflow:hidden}
.potato-chat-header{background:linear-gradient(135deg,#d4a358,#c8963e);color:#fff;padding:14px 20px;display:flex;align-items:center;gap:12px;flex-shrink:0}
.potato-chat-header .potato-chat-avatar{font-size:36px;animation:avatarBob 3.2s ease-in-out infinite}
.potato-chat-header .potato-chat-title{font-size:17px;font-weight:700;flex:1}
.potato-chat-header .potato-chat-status{font-size:10px;opacity:.8;display:block}
.potato-chat-header .potato-chat-close{background:#fff;border:none;color:#333;width:34px;height:34px;border-radius:50%;font-size:16px;cursor:pointer;font-weight:700;box-shadow:0 2px 8px rgba(0,0,0,.15);transition:all .2s;line-height:34px;text-align:center;padding:0}
.potato-chat-header .potato-chat-close:hover{background:#e53e3e;color:#fff;transform:scale(1.08);box-shadow:0 4px 14px rgba(229,62,62,.35)}
.potato-chat-body{flex:1;overflow-y:auto;padding:16px 20px;display:flex;flex-direction:column;gap:12px;background:#fdfaf5}
.potato-chat-body .ask-msg{max-width:85%;padding:10px 14px;border-radius:16px;font-size:13px;line-height:1.6;word-break:break-word}
.potato-chat-body .ask-msg.user{align-self:flex-end;background:linear-gradient(135deg,#6366f1,#8b5cf6);color:#fff;border-bottom-right-radius:4px}
.potato-chat-body .ask-msg.potato{align-self:flex-start;background:#fff7ed;color:#5c3d1a;border-bottom-left-radius:4px;border:1px solid #f0dbb8}
.potato-chat-body .ask-msg.potato .potato-label{font-size:10px;color:#c8963e;font-weight:700;margin-bottom:4px}
.potato-chat-body .ask-msg .msg-time{font-size:9px;opacity:.5;margin-top:4px;text-align:right}
.potato-chat-typing{align-self:flex-start;padding:10px 16px;background:#fff7ed;border-radius:14px;display:none;margin:0 20px}
.potato-chat-typing .dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:#c8963e;margin:0 2px;animation:askBounce 1.4s infinite ease-in-out}
.potato-chat-typing .dot:nth-child(2){animation-delay:.2s}
.potato-chat-typing .dot:nth-child(3){animation-delay:.4s}
@keyframes askBounce{0%,80%,100%{transform:translateY(0)}40%{transform:translateY(-6px)}}
.potato-chat-footer{padding:0;border-top:1px solid #f0e8d8;background:#fffdf9;flex-shrink:0}
.potato-chat-footer .footer-upload-row{display:flex;align-items:center;justify-content:flex-end;padding:10px 16px 6px;gap:10px}
.potato-chat-footer .footer-upload-label{font-size:12px;color:#92400e;font-weight:700}
.potato-chat-footer .footer-upload-btn{display:inline-flex;align-items:center;gap:6px;background:linear-gradient(135deg,#f59e0b,#d97706);color:#fff;border:none;padding:9px 20px;border-radius:20px;cursor:pointer;font-size:14px;font-weight:700;transition:all .2s;box-shadow:0 3px 12px rgba(245,158,11,.35)}
.potato-chat-footer .footer-upload-btn .upload-icon{font-size:18px;line-height:1;filter:none}
.potato-chat-footer .footer-upload-btn:hover{background:linear-gradient(135deg,#d97706,#b45309);transform:translateY(-2px);box-shadow:0 6px 20px rgba(217,119,6,.5)}
.potato-chat-footer .footer-upload-btn.uploading{background:#a0aec0;color:#fff;box-shadow:none;animation:uploadPulse .8s ease-in-out infinite}
@keyframes uploadPulse{0%,100%{opacity:1}50%{opacity:.5}}
.potato-chat-footer .footer-input-row{display:flex;gap:8px;align-items:flex-end;padding:6px 16px 12px}
.potato-chat-footer textarea{flex:1;padding:10px 14px;border:1px solid #e0d8c8;border-radius:14px;font-size:13px;outline:none;background:#fdfaf5;resize:none;height:60px;line-height:1.5;font-family:inherit}
.potato-chat-footer textarea:focus{border-color:#c8963e}
.potato-chat-footer button{width:36px;height:36px;border-radius:50%;border:none;background:linear-gradient(135deg,#d4a358,#c8963e);color:#fff;font-size:16px;cursor:pointer;flex-shrink:0;transition:all .15s;margin-bottom:4px}
.potato-chat-footer button:hover{opacity:.9;transform:scale(1.05)}
.potato-chat-footer button:disabled{opacity:.4;cursor:not-allowed;transform:none}
.potato-chat-footer .mic-btn{background:linear-gradient(135deg,#6366f1,#8b5cf6)}
.potato-chat-footer .mic-listening{animation:micPulse .8s ease-in-out infinite;background:#e53e3e!important}
@keyframes micPulse{0%,100%{box-shadow:0 0 0 0 rgba(229,62,62,.4)}50%{box-shadow:0 0 0 8px rgba(229,62,62,0)}}
/* 聊天中的图片缩略图 */
.ask-msg .chat-img{max-width:260px;max-height:200px;border-radius:10px;cursor:pointer;display:block;margin:4px 0;border:2px solid rgba(0,0,0,.05);transition:all .2s}
.ask-msg .chat-img:hover{transform:scale(1.02);border-color:#c8963e}
.ask-msg.user .chat-img{border-color:rgba(255,255,255,.3)}
.ask-msg.user .chat-img:hover{border-color:rgba(255,255,255,.6)}
/* 全屏图片预览 */
.img-fullscreen{position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,.85);z-index:99999;display:flex;align-items:center;justify-content:center;cursor:pointer}
.img-fullscreen img{max-width:95vw;max-height:95vh;border-radius:8px;box-shadow:0 20px 60px rgba(0,0,0,.5)}
/* 上传中占位 */
.img-uploading-placeholder{display:flex;align-items:center;justify-content:center;width:200px;height:120px;background:#f7f6f3;border-radius:10px;border:2px dashed #d0c8b0;font-size:12px;color:#a0aec0}
.potato-chat-upgrade{text-align:center;padding:8px 16px;background:#fff7ed;border-top:1px solid #fcd34d;flex-shrink:0}
.potato-chat-upgrade span{font-size:11px;color:#d97706;margin-right:6px}
.potato-chat-upgrade button{font-size:11px;background:#f59e0b;color:#fff;border:none;padding:4px 12px;border-radius:12px;cursor:pointer;font-weight:600}
/* 土豆答疑工作台：尺寸跟随窗口，内容区独立滚动，避免底部工具覆盖 */
.potato-chat-overlay{inset:0;width:auto;height:auto;padding:clamp(12px,2.2vw,28px);box-sizing:border-box;background:rgba(15,29,48,.62);backdrop-filter:blur(5px);align-items:stretch}
body.potato-chat-active{overflow:hidden}
body.potato-chat-active .container{z-index:1000}
.potato-chat-box{isolation:isolate;width:min(1040px,100%);height:min(780px,calc(100vh - 56px));min-height:0;max-width:none;max-height:none;margin:auto;border:1px solid #9aa7b7;border-radius:10px;background:#fff;box-shadow:0 24px 70px rgba(15,29,48,.3);animation:modalIn .18s ease-out}
.potato-chat-header{position:relative;z-index:2;min-height:68px;padding:0 18px;background:#1f3856;border-bottom:3px solid #c6a35b;gap:13px}
.potato-chat-header .potato-chat-avatar{display:grid;place-items:center;width:40px;height:40px;border:1px solid rgba(255,255,255,.28);border-radius:7px;color:#f4d58a;font-size:0;animation:none}
.potato-chat-header .potato-chat-avatar svg{width:22px;height:22px;stroke:currentColor}
.potato-chat-heading{min-width:0;flex:1;padding:10px 0}
.potato-chat-eyebrow{font:600 9px/1.2 "Segoe UI",sans-serif;letter-spacing:.16em;text-transform:uppercase;color:#d8c28e;margin-bottom:4px}
.potato-chat-header .potato-chat-title{font-size:16px;line-height:1.25;letter-spacing:.02em}
.potato-chat-meta{display:flex;align-items:center;gap:8px;margin-top:5px;font-size:10px;color:#cbd5e1}
.potato-chat-meta button{padding:0;border:0;background:none;color:#f0d897;font:600 10px/1.3 "Segoe UI",sans-serif;cursor:pointer;text-decoration:underline;text-underline-offset:3px}
.potato-chat-meta button:hover{color:#fff}
.potato-chat-header .potato-chat-close{width:34px;height:34px;border:1px solid rgba(255,255,255,.3);border-radius:6px;background:transparent;color:#fff;box-shadow:none;line-height:32px;transition:background .15s,border-color .15s}
.potato-chat-header .potato-chat-close:hover{background:#b44747;border-color:#d36a6a;transform:none;box-shadow:none}
.potato-chat-body{min-height:0;padding:22px clamp(18px,3vw,34px);gap:14px;background-color:#f7f8fa;background-image:linear-gradient(rgba(34,64,97,.055) 1px,transparent 1px);background-size:100% 32px;scrollbar-gutter:stable}
.potato-chat-body .ask-msg{max-width:min(76%,680px);padding:11px 14px;border-radius:7px;font-size:13px;line-height:1.7;box-shadow:0 1px 2px rgba(15,29,48,.05)}
.potato-chat-body .ask-msg.user{background:#294b70;border:1px solid #294b70;color:#fff;border-bottom-right-radius:2px}
.potato-chat-body .ask-msg.potato{background:rgba(255,255,255,.96);border:1px solid #cfd6df;color:#26384d;border-left:3px solid #c6a35b;border-bottom-left-radius:2px}
.potato-chat-body .ask-msg.potato .potato-label{color:#8a6728;letter-spacing:.04em}
.potato-chat-typing{margin:0 clamp(18px,3vw,34px);border:1px solid #d5dbe3;border-radius:6px;background:#fff}
.potato-chat-footer{position:relative;border-top:1px solid #aeb9c6;background:#fff;box-shadow:0 -5px 16px rgba(15,29,48,.05)}
.potato-chat-footer .footer-upload-row{justify-content:space-between;padding:10px 16px 4px;gap:14px}
.potato-chat-footer .footer-upload-label{color:#66758a;font-size:11px;font-weight:400;line-height:1.45}
.potato-chat-footer .footer-upload-btn{width:auto;height:auto;margin:0;border:1px solid #8b6a2e;border-radius:5px;background:#fff;color:#785821;padding:7px 12px;font-size:12px;line-height:1.35;box-shadow:none;white-space:nowrap}
.potato-chat-footer .footer-upload-btn .upload-icon{display:inline-flex;font-size:0}
.potato-chat-footer .footer-upload-btn .upload-icon svg{width:16px;height:16px;stroke:currentColor}
.potato-chat-footer .footer-upload-btn:hover{background:#fbf7ed;color:#614514;transform:none;box-shadow:none}
.potato-chat-footer .footer-input-row{padding:7px 16px 14px}
.potato-chat-footer textarea{box-sizing:border-box;height:56px;min-height:44px;max-height:120px;padding:10px 12px;border:1px solid #aeb9c6;border-radius:5px;background:#fff;color:#26384d}
.potato-chat-footer textarea:focus{border-color:#294b70;box-shadow:0 0 0 3px rgba(41,75,112,.12)}
.potato-chat-footer .footer-input-row button{display:grid;place-items:center;width:38px;height:38px;margin-bottom:1px;border-radius:5px;background:#294b70;font-size:0}
.potato-chat-footer .footer-input-row button svg{width:18px;height:18px;stroke:currentColor}
.potato-chat-footer .footer-input-row .mic-btn{border:1px solid #8290a2;background:#fff;color:#294b70}
.potato-chat-footer .footer-input-row button:hover{opacity:1;background:#1f3856;transform:none}
.potato-chat-footer .footer-input-row .mic-btn:hover{background:#edf2f7}
.potato-chat-upgrade{padding:7px 16px;border-top:1px solid #dfc985;background:#fff9e9}
.potato-chat-upgrade button{border-radius:4px;background:#8a6728}
@media(max-width:640px){
  .potato-chat-overlay{padding:0;background:#f7f8fa;backdrop-filter:none}
  .potato-chat-box{width:100%;height:100%;margin:0;border:0;border-radius:0}
  .potato-chat-header{min-height:60px;padding:0 12px}
  .potato-chat-header .potato-chat-avatar{width:34px;height:34px}
  .potato-chat-eyebrow{display:none}
  .potato-chat-header .potato-chat-title{font-size:14px}
  .potato-chat-meta{margin-top:3px}
  .potato-chat-body{padding:16px 12px}
  .potato-chat-body .ask-msg{max-width:91%;font-size:12px}
  .potato-chat-footer .footer-upload-row{align-items:flex-start;padding:8px 10px 3px}
  .potato-chat-footer .footer-upload-label{font-size:10px}
  .potato-chat-footer .footer-upload-btn{padding:7px 9px}
  .potato-chat-footer .footer-input-row{padding:6px 10px max(10px,env(safe-area-inset-bottom))}
  .potato-chat-footer textarea{height:48px}
}
@media(max-height:620px) and (min-width:641px){
  .potato-chat-overlay{padding:8px}
  .potato-chat-box{height:calc(100vh - 16px)}
  .potato-chat-header{min-height:56px}
  .potato-chat-body{padding-top:12px;padding-bottom:12px}
  .potato-chat-footer .footer-upload-row{padding-top:6px}
  .potato-chat-footer textarea{height:44px}
}
@media(prefers-reduced-motion:reduce){.potato-chat-box{animation:none}}
/* 升级 Pro 弹窗 */
.upgrade-modal{position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(20,16,12,.5);z-index:9999;display:none;justify-content:center;align-items:center;backdrop-filter:blur(2px)}
.upgrade-modal.open{display:flex}
.upgrade-box{background:var(--card);border-radius:16px;padding:32px 28px;max-width:400px;width:90%;text-align:center;box-shadow:0 12px 40px rgba(0,0,0,.2)}
.upgrade-box h3{font-size:20px;color:#f59e0b;margin-bottom:8px}
.upgrade-box p{font-size:13px;color:var(--slate-light);margin-bottom:16px;line-height:1.6}
.upgrade-box input{width:100%;padding:12px 16px;border:2px solid #fcd34d;border-radius:10px;font-size:14px;text-align:center;outline:none;box-sizing:border-box}
.upgrade-box input:focus{border-color:#f59e0b}
.upgrade-box .upgrade-btn-row{display:flex;gap:8px;margin-top:14px}
.upgrade-box .upgrade-btn-row button{flex:1;padding:12px;border-radius:10px;font-size:14px;font-weight:600;cursor:pointer;border:none}
.upgrade-box .btn-submit{background:linear-gradient(135deg,#f59e0b,#d97706);color:#fff}
.upgrade-box .btn-cancel{background:var(--paper);border:1px solid var(--card-border)!important;color:var(--slate)}
.upgrade-box .upgrade-result{margin-top:12px;font-size:12px;padding:8px 12px;border-radius:8px;display:none}
.upgrade-box .upgrade-result.success{display:block;background:#ecfdf5;color:#065f46}
.upgrade-box .upgrade-result.error{display:block;background:#fef2f2;color:#991b1b}
/* 升级 Pro 弹窗 */
.upgrade-modal{position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(20,16,12,.5);z-index:9999;display:none;justify-content:center;align-items:center;backdrop-filter:blur(2px)}
.upgrade-modal.open{display:flex}
.upgrade-box{background:var(--card);border-radius:16px;padding:32px 28px;max-width:400px;width:90%;text-align:center;box-shadow:0 12px 40px rgba(0,0,0,.2)}
.upgrade-box h3{font-size:20px;color:#f59e0b;margin-bottom:8px}
.upgrade-box p{font-size:13px;color:var(--slate-light);margin-bottom:16px;line-height:1.6}
.upgrade-box input{width:100%;padding:12px 16px;border:2px solid #fcd34d;border-radius:10px;font-size:14px;text-align:center;outline:none;box-sizing:border-box}
.upgrade-box input:focus{border-color:#f59e0b}
.upgrade-box .upgrade-btn-row{display:flex;gap:8px;margin-top:14px}
.upgrade-box .upgrade-btn-row button{flex:1;padding:12px;border-radius:10px;font-size:14px;font-weight:600;cursor:pointer;border:none}
.upgrade-box .btn-submit{background:linear-gradient(135deg,#f59e0b,#d97706);color:#fff}
.upgrade-box .btn-cancel{background:var(--paper);border:1px solid var(--card-border)!important;color:var(--slate)}
.upgrade-box .upgrade-result{margin-top:12px;font-size:12px;padding:8px 12px;border-radius:8px;display:none}
.upgrade-box .upgrade-result.success{display:block;background:#ecfdf5;color:#065f46}
.upgrade-box .upgrade-result.error{display:block;background:#fef2f2;color:#991b1b}

/* ===== 作文批改面板 ===== */
.btn-essay{background:linear-gradient(135deg,#fef3c7,#fde68a);color:#92400e;border:1.5px solid #fcd34d;transition:var(--transition);box-shadow:0 2px 8px rgba(245,158,11,.15)}
.btn-essay:hover{background:#fde68a;border-color:#f59e0b;transform:translateY(-1px);box-shadow:0 5px 16px rgba(245,158,11,.35)}
/* 作文批改 — 简洁卡片式 */
.essay-layout{display:flex;gap:24px;padding:24px;max-width:1100px;margin:0 auto}
.essay-left{flex:1;min-width:0}
.essay-right{flex:1;min-width:0;display:flex;flex-direction:column}
.essay-label{font-size:13px;font-weight:700;color:var(--ink);margin-bottom:8px;display:flex;align-items:center;gap:6px}
.essay-label .essay-label-icon{font-size:16px}
.essay-textarea{width:100%;min-height:380px;padding:16px;border:2px solid var(--card-border);border-radius:12px;font-size:15px;font-family:Georgia,'Times New Roman',serif;line-height:1.9;resize:vertical;box-sizing:border-box;background:var(--cream);color:var(--ink);transition:var(--transition)}
.essay-textarea:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 3px rgba(200,150,62,.08);background:var(--card)}
.essay-req-textarea{width:100%;min-height:380px;padding:16px;border:2px solid var(--card-border);border-radius:12px;font-size:15px;line-height:1.9;resize:vertical;box-sizing:border-box;background:var(--cream);color:var(--ink);transition:var(--transition)}
.essay-req-textarea:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 3px rgba(200,150,62,.08);background:var(--card)}
.essay-word-count{text-align:right;font-size:12px;color:var(--slate-light);margin-top:6px}
/* 英文标点符号用法提示 */
.essay-punct-guide{margin-top:10px;background:rgba(245,158,11,.06);border:1px solid rgba(245,158,11,.15);border-radius:10px;overflow:hidden}
.essay-punct-title{padding:8px 12px;font-size:12px;font-weight:600;color:#b45309;cursor:pointer;user-select:none}
.essay-punct-body{padding:0 12px 10px}
.essay-punct-item{margin-bottom:8px;font-size:11px;color:#92400e;line-height:1.5;padding:6px 8px;background:rgba(255,255,255,.4);border-radius:6px}
.essay-punct-item b{color:#78350f}
/* 从句汉译英训练 */
.essay-clause-practice{margin-top:14px;padding:14px;background:linear-gradient(135deg,#eff6ff,#f8fafc);border:1px solid #bfdbfe;border-radius:12px}
.essay-clause-practice h3{margin:0 0 5px;color:#1e3a8a;font-size:15px}
.essay-clause-practice p{margin:0;color:#475569;font-size:12px;line-height:1.6}
.essay-clause-practice-btn{margin-top:10px;padding:8px 14px;border:1px solid #93c5fd;border-radius:8px;background:#fff;color:#1d4ed8;font-size:12px;font-weight:700;cursor:pointer}
.essay-clause-practice-btn:hover{background:#dbeafe}
.clause-practice-tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}
.clause-practice-tab{padding:7px 12px;border:1px solid #cbd5e1;border-radius:999px;background:#fff;color:#475569;font-size:12px;cursor:pointer}
.clause-practice-tab.active{border-color:#2563eb;background:#2563eb;color:#fff}
.clause-practice-card{padding:16px;background:#f8fafc;border:1px solid #dbeafe;border-radius:10px}
.clause-practice-meta{display:flex;justify-content:space-between;gap:8px;color:#64748b;font-size:11px;margin-bottom:10px}
.clause-practice-prompt{font-size:20px;line-height:1.65;color:#1e293b;font-weight:700;margin:8px 0 14px}
.clause-practice-scene{margin:-5px 0 12px;padding:9px 10px;background:#eff6ff;border-left:3px solid #60a5fa;border-radius:5px;color:#1e40af;font-size:12px;line-height:1.6}
.clause-practice-scene b{color:#1e3a8a}
.clause-practice-input{width:100%;min-height:90px;box-sizing:border-box;padding:10px;border:1px solid #cbd5e1;border-radius:8px;font:14px/1.7 Cambria,Georgia,serif;resize:vertical;background:#fff;color:#1e293b}
.clause-practice-answer{display:none;margin-top:12px;padding:12px;background:#ecfdf5;border-left:3px solid #16a34a;border-radius:6px;color:#14532d;font-size:14px;line-height:1.7}
.clause-practice-answer .clause-note{display:block;margin-top:6px;color:#166534;font-size:12px}
.clause-practice-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}
.clause-practice-actions button{padding:8px 12px;border:1px solid #cbd5e1;border-radius:7px;background:#fff;color:#334155;font-size:12px;cursor:pointer}
.clause-practice-actions button.primary{border-color:#2563eb;background:#2563eb;color:#fff}
.clause-practice-actions button.success{border-color:#16a34a;background:#16a34a;color:#fff}
.clause-practice-progress{height:6px;margin-top:14px;background:#e2e8f0;border-radius:999px;overflow:hidden}
.clause-practice-progress i{display:block;height:100%;width:0;background:#2563eb;border-radius:inherit;transition:width .2s}
.clause-practice-foot{margin-top:8px;color:#64748b;font-size:11px;text-align:right}
/* 作文开头·中间·结尾训练 */
.essay-structure-practice{margin-top:14px;padding:14px;background:linear-gradient(135deg,#fff7ed,#fffbeb);border:1px solid #fed7aa;border-radius:12px}
.essay-structure-practice h3{margin:0 0 5px;color:#9a3412;font-size:15px}
.essay-structure-practice p{margin:0;color:#57534e;font-size:12px;line-height:1.6}
.essay-structure-practice-btn{margin-top:10px;padding:8px 14px;border:1px solid #fdba74;border-radius:8px;background:#fff;color:#c2410c;font-size:12px;font-weight:700;cursor:pointer}
.essay-structure-practice-btn:hover{background:#ffedd5}
.structure-practice-tabs{display:flex;gap:8px;margin-bottom:14px}
.structure-practice-tab{flex:1;padding:8px;border:1px solid #fed7aa;border-radius:8px;background:#fff;color:#9a3412;font-size:12px;cursor:pointer}
.structure-practice-tab.active{background:#ea580c;border-color:#ea580c;color:#fff}
.structure-practice-scene{margin:-5px 0 12px;padding:9px 10px;background:#fff7ed;border-left:3px solid #fb923c;border-radius:5px;color:#9a3412;font-size:12px;line-height:1.6}
.structure-practice-input{width:100%;min-height:100px;box-sizing:border-box;padding:10px;border:1px solid #fed7aa;border-radius:8px;font:14px/1.7 Cambria,Georgia,serif;resize:vertical;background:#fff;color:#292524}
.structure-practice-answer{display:none;margin-top:12px;padding:12px;background:#f0fdf4;border-left:3px solid #16a34a;border-radius:6px;color:#14532d;font-size:14px;line-height:1.7;white-space:pre-line}
.structure-practice-answer.missing{background:#f8fafc;border-left-color:#94a3b8;color:#475569}
.structure-practice-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}
.structure-practice-actions button{padding:8px 12px;border:1px solid #fed7aa;border-radius:7px;background:#fff;color:#7c2d12;font-size:12px;cursor:pointer}
.structure-practice-actions button.primary{border-color:#ea580c;background:#ea580c;color:#fff}
/* 参考答案语法讲解 */
.sentence-analysis{margin-top:14px;padding:12px;background:#f8fafc;border:1px solid #cbd5e1;border-radius:8px;color:#334155;font-size:12px;line-height:1.65}
.sentence-analysis h4{margin:0 0 7px;color:#1e3a8a;font-size:13px}
.sentence-analysis-section{margin-top:9px;padding-top:8px;border-top:1px solid #e2e8f0}
.sentence-analysis-section:first-child{margin-top:0;padding-top:0;border-top:0}
.sentence-pos-list{display:flex;flex-wrap:wrap;gap:5px;margin-top:5px}
.sentence-pos-token{padding:3px 6px;background:#fff;border:1px solid #dbeafe;border-radius:5px;color:#1e40af}
.sentence-pos-token small{margin-left:3px;color:#64748b;font-size:10px}
.practice-jump-row{display:flex;align-items:center;justify-content:flex-end;gap:7px;margin:10px 0;color:#64748b;font-size:11px}
.practice-jump-row input{width:58px;padding:6px 7px;border:1px solid #cbd5e1;border-radius:6px;text-align:center;font-size:12px;color:#1e293b;background:#fff}
.practice-jump-row button{padding:6px 10px;border:1px solid #2563eb;border-radius:6px;background:#eff6ff;color:#1d4ed8;font-size:11px;cursor:pointer}
.practice-order-fixed{margin-right:auto;color:#64748b}
.answer-teach-btn{display:inline-flex;align-items:center;gap:4px;margin:10px 0 0;padding:7px 11px;border:1px solid #2563eb;border-radius:7px;background:#eff6ff;color:#1d4ed8;font-size:12px;font-weight:700;cursor:pointer}
.answer-teach-btn:hover{background:#dbeafe}
/* 投影讲解全屏与透明笔记层 */
.answer-teach-overlay{position:fixed;inset:0;z-index:110000;background:#0f172a;display:flex;flex-direction:column;color:#1e293b}
.answer-teach-toolbar{height:54px;flex:0 0 54px;display:flex;align-items:center;gap:8px;padding:0 14px;box-sizing:border-box;background:#172554;color:#fff;box-shadow:0 2px 10px rgba(0,0,0,.25);z-index:4}
.answer-teach-toolbar h2{margin:0 12px 0 0;font-size:17px;white-space:nowrap}
.answer-teach-toolbar button{padding:7px 11px;border:1px solid rgba(255,255,255,.35);border-radius:6px;background:rgba(255,255,255,.12);color:#fff;font-size:12px;cursor:pointer}
.answer-teach-toolbar button.active,.answer-teach-toolbar button:hover{background:#2563eb;border-color:#93c5fd}
.answer-teach-toolbar .teach-spacer{flex:1}
.answer-teach-toolbar .teach-close{background:#dc2626;border-color:#fca5a5}
.answer-teach-surface{position:relative;flex:1;overflow:auto;background:#f8fafc;padding:28px;box-sizing:border-box}
.answer-teach-content{position:relative;z-index:1;max-width:1100px;margin:0 auto;padding:28px 34px;background:#fff;border-radius:12px;box-shadow:0 8px 30px rgba(15,23,42,.18);font-size:17px;line-height:1.8}
.answer-teach-content h3{margin:0 0 14px;color:#1e3a8a;font-size:22px}
.answer-teach-content .teach-meta{margin-bottom:14px;color:#475569;font-size:14px}
.answer-teach-content .teach-answer{padding:18px 20px;background:#ecfdf5;border-left:5px solid #16a34a;border-radius:7px;font:700 30px/1.8 Cambria,Georgia,serif;color:#14532d;white-space:pre-line;letter-spacing:.2px}
.answer-teach-content .sentence-analysis{font-size:15px;margin-top:18px}
.answer-teach-canvas{position:absolute;inset:0;width:100%;height:100%;z-index:2;touch-action:none;cursor:crosshair}
.answer-teach-hint{position:fixed;right:16px;bottom:12px;z-index:5;padding:5px 9px;border-radius:5px;background:rgba(15,23,42,.72);color:#fff;font-size:11px;pointer-events:none}
@media(max-width:640px){.answer-teach-toolbar{gap:4px;padding:0 7px}.answer-teach-toolbar h2{font-size:13px;margin-right:3px}.answer-teach-toolbar button{padding:6px 7px;font-size:11px}.answer-teach-surface{padding:12px}.answer-teach-content{padding:18px;font-size:15px}.answer-teach-content .teach-answer{font-size:22px}}
.teacher-word-toolbar{display:flex;align-items:center;gap:7px;flex-wrap:wrap;padding:10px 12px;background:#263238;color:#fff;border-radius:9px 9px 0 0}
.teacher-word-toolbar button{padding:7px 10px;border:1px solid rgba(255,255,255,.35);border-radius:6px;background:rgba(255,255,255,.1);color:#fff;font-size:12px;cursor:pointer;white-space:nowrap}
.teacher-word-toolbar button:hover,.teacher-word-toolbar button.active{background:#2563eb;border-color:#93c5fd}
.teacher-word-toolbar button:disabled{opacity:.45;cursor:not-allowed;background:rgba(255,255,255,.05);border-color:rgba(255,255,255,.2)}
.teacher-word-control{display:inline-flex;align-items:center;gap:4px;color:#e2e8f0;font-size:11px;white-space:nowrap}
.teacher-word-control select{height:28px;padding:0 5px;border:1px solid rgba(255,255,255,.35);border-radius:5px;background:#37474f;color:#fff;font-size:11px}
.teacher-word-control input[type=color]{width:28px;height:28px;padding:2px;border:1px solid rgba(255,255,255,.35);border-radius:5px;background:#37474f;cursor:pointer}
.teacher-word-control input[type=range]{width:64px;accent-color:#93c5fd;vertical-align:middle;cursor:pointer}
.teacher-word-control output{min-width:30px;color:#cbd5e1;text-align:right;font-variant-numeric:tabular-nums}
.teacher-word-toolbar .teacher-word-spacer{flex:1}
.teacher-word-toolbar .teacher-word-save{background:#39745a;border-color:#86efac}
.teacher-word-toolbar .teacher-word-close{background:#b42318;border-color:#fecaca}
.teacher-word-toolbar .teacher-word-back{background:#8b5cf6;border-color:#c4b5fd}
.teacher-word-zoom-label{min-width:42px;text-align:center;font-size:11px;color:#e2e8f0}
.teacher-word-status{margin-left:4px;font-size:11px;color:#cbd5e1}
.teacher-password-mask{position:fixed;inset:0;z-index:130000;display:flex;align-items:center;justify-content:center;padding:20px;box-sizing:border-box;background:rgba(10,21,36,.62);backdrop-filter:blur(3px)}
.teacher-password-card{width:340px;max-width:100%;padding:24px 26px;background:#fff;border:1px solid #cbd5e1;border-radius:8px;box-shadow:0 16px 50px rgba(10,21,36,.3);box-sizing:border-box;text-align:left}
.teacher-password-card h3{margin:0 0 8px;color:#172554;font-size:18px}
.teacher-password-card p{margin:0 0 16px;color:#64748b;font-size:12px;line-height:1.7}
.teacher-password-card input{width:100%;height:38px;padding:0 10px;box-sizing:border-box;border:1px solid #94a3b8;border-radius:5px;outline:none;font-size:14px;color:#1e293b}
.teacher-password-card input:focus{border-color:#2563eb;box-shadow:0 0 0 2px rgba(37,99,235,.15)}
.teacher-password-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:16px}
.teacher-password-actions button{padding:7px 14px;border:1px solid #cbd5e1;border-radius:5px;background:#fff;color:#475569;font-size:12px;cursor:pointer}
.teacher-password-actions .teacher-password-submit{border-color:#263238;background:#263238;color:#fff}
.teacher-password-error{min-height:18px;margin-top:7px;color:#b42318;font-size:11px}
.teacher-word-viewer{position:relative;margin-top:14px;background:#e5e7eb;border:1px solid #cbd5e1;border-radius:10px;overflow:hidden}
.teacher-word-surface{max-height:62vh;overflow:auto;padding:24px;background:#e5e7eb}
.teacher-word-page{position:relative;max-width:850px;margin:0 auto;padding:38px 46px;background:#fff;color:#1f2937;box-shadow:0 4px 18px rgba(15,23,42,.12);font:15px/1.9 Cambria,"Times New Roman","Microsoft YaHei",serif;min-height:420px}
.teacher-word-page p.teacher-word-paragraph{margin:0 0 10px;white-space:pre-wrap}
.teacher-word-page table.teacher-word-table{width:100%;border-collapse:collapse;margin:14px 0;font:14px/1.6 inherit}
.teacher-word-page table.teacher-word-table td,.teacher-word-page table.teacher-word-table th{border:1px solid #9ca3af;padding:6px 9px;vertical-align:top}
.teacher-word-page .teacher-word-image{display:block;max-width:100%;height:auto;margin:10px auto;border:1px solid #d7dee7;border-radius:4px;object-fit:contain;background:#fff}
.teacher-word-page .teacher-underline{text-decoration-line:underline;text-decoration-thickness:2px;text-decoration-color:#dc2626;text-underline-offset:3px}
.teacher-word-page .teacher-highlight{background:#fde68a;border-radius:2px;padding:0 1px}
.teacher-ink-layer{position:absolute;inset:0;width:100%;height:100%;z-index:2;pointer-events:none;overflow:visible}
.teacher-ink-path{pointer-events:none}
.teacher-text-note{position:absolute;z-index:4;max-width:260px;min-width:36px;padding:5px 8px;background:#fff7c2;border:1px solid #d4a72c;border-radius:5px;box-shadow:0 3px 9px rgba(15,23,42,.18);color:#7c2d12;font:600 14px/1.45 "Microsoft YaHei",sans-serif;white-space:pre-wrap;overflow-wrap:anywhere;transform:translate(-2px,-2px);pointer-events:auto}
.teacher-text-note:hover,.teacher-text-note:focus-within{z-index:8;box-shadow:0 5px 14px rgba(15,23,42,.28)}
.teacher-text-note .teacher-text-note-actions{display:flex;gap:5px;margin:5px 0 0;padding-top:5px;border-top:1px solid rgba(124,45,18,.2);white-space:nowrap}
.teacher-text-note:hover .teacher-text-note-actions,.teacher-text-note:focus-within .teacher-text-note-actions{display:flex}
.teacher-text-note .teacher-text-note-actions button{padding:2px 7px;border:1px solid #b45309;border-radius:4px;background:#fff;color:#7c2d12;font:12px/1.4 "Microsoft YaHei",sans-serif;cursor:pointer}
.teacher-text-note .teacher-text-note-actions button:hover{background:#ffedd5}
.teacher-text-note .teacher-text-note-actions button:last-child{border-color:#dc2626;color:#b91c1c}
@media (hover:none){.teacher-text-note .teacher-text-note-actions{display:flex}}
.teacher-text-editor{position:absolute;z-index:6;display:flex;align-items:flex-start;gap:4px;padding:5px;background:#fff;border:1px solid #2563eb;border-radius:6px;box-shadow:0 5px 18px rgba(15,23,42,.25);transform:translate(-2px,-2px);pointer-events:auto}
.teacher-text-editor input{width:220px;height:30px;padding:0 7px;box-sizing:border-box;border:1px solid #cbd5e1;border-radius:4px;outline:none;color:#1e293b;font:14px/1.4 "Microsoft YaHei",sans-serif}
.teacher-text-editor button{height:30px;padding:0 8px;border:1px solid #2563eb;border-radius:4px;background:#2563eb;color:#fff;font-size:12px;cursor:pointer}
.teacher-text-editor button.cancel{border-color:#cbd5e1;background:#fff;color:#475569}
.teacher-note-marker{position:absolute;z-index:7;transform:translate(-50%,-50%);pointer-events:auto;touch-action:none;cursor:grab}
.teacher-note-marker.teacher-note-dragging{z-index:12;cursor:grabbing}
.teacher-note-dot{width:18px;height:18px;padding:0;border:3px solid #fff;border-radius:50%;background:var(--teacher-note-color,#f59e0b);box-shadow:0 2px 8px rgba(15,23,42,.38),0 0 0 2px var(--teacher-note-color,#f59e0b);cursor:grab;touch-action:none}
.teacher-note-marker.teacher-note-dragging .teacher-note-dot{cursor:grabbing}
.teacher-note-dot:hover,.teacher-note-marker.open .teacher-note-dot{transform:scale(1.16)}
.teacher-note-card{display:none;position:absolute;left:12px;top:12px;width:255px;max-width:calc(100vw - 70px);padding:10px 11px;background:#fffdf5;border:1px solid var(--teacher-note-color,#f59e0b);border-left:4px solid var(--teacher-note-color,#f59e0b);border-radius:8px;box-shadow:0 8px 24px rgba(15,23,42,.22);box-sizing:border-box;color:#334155;font:12px/1.55 "Microsoft YaHei",sans-serif;text-align:left}
.teacher-note-marker.open .teacher-note-card{display:block}
.teacher-note-marker:hover .teacher-note-card,.teacher-note-marker:focus-within .teacher-note-card{display:block}
.teacher-note-marker.teacher-note-jump-focus{animation:teacherNoteJumpPulse 1.6s ease-out}
@keyframes teacherNoteJumpPulse{0%,100%{filter:none}30%,65%{filter:drop-shadow(0 0 7px #2563eb)}}
.teacher-note-card-head{display:flex;align-items:flex-start;gap:6px;margin-bottom:5px}
.teacher-note-card-head strong{flex:1;color:#7c2d12;font-size:13px;word-break:break-all}
.teacher-note-card-close,.teacher-note-card-edit,.teacher-note-card-delete{padding:1px 5px;border:1px solid #e2e8f0;border-radius:4px;background:#fff;color:#64748b;font-size:11px;cursor:pointer}
.teacher-note-card-edit{color:#2563eb}
.teacher-note-card-delete{border-color:#fecaca;color:#b42318;margin-top:7px}
.teacher-note-card-topic{display:inline-block;margin-bottom:5px;padding:2px 6px;border-radius:4px;background:#fef3c7;color:#92400e;font-size:11px}
.teacher-note-card-content{white-space:pre-wrap;overflow-wrap:anywhere;color:#475569}
.teacher-note-card-time{margin-top:6px;color:#94a3b8;font-size:10px}
.teacher-teacher-note-marker{position:absolute;z-index:8;transform:translate(-50%,-50%);pointer-events:auto;touch-action:none;cursor:grab}
.teacher-teacher-note-marker.teacher-note-dragging{z-index:12;cursor:grabbing}
.teacher-teacher-note-triangle{width:20px;height:20px;padding:0;border:0;border-radius:2px;background:#2563eb;clip-path:polygon(50% 0,100% 100%,0 100%);box-shadow:0 2px 7px rgba(15,23,42,.35);cursor:pointer;transition:transform .15s,filter .15s}
.teacher-teacher-note-triangle:hover,.teacher-teacher-note-marker.open .teacher-teacher-note-triangle{transform:scale(1.18);filter:brightness(1.12)}
.teacher-teacher-note-card{display:none;position:absolute;left:14px;top:12px;width:275px;max-width:calc(100vw - 70px);padding:10px 11px;background:#eff6ff;border:1px solid #60a5fa;border-left:4px solid #2563eb;border-radius:8px;box-shadow:0 8px 24px rgba(15,23,42,.22);box-sizing:border-box;color:#334155;font:12px/1.55 "Microsoft YaHei",sans-serif;text-align:left}
.teacher-teacher-note-marker.open .teacher-teacher-note-card{display:block}
.teacher-teacher-note-marker:hover .teacher-teacher-note-card,.teacher-teacher-note-marker:focus-within .teacher-teacher-note-card{display:block}
.teacher-teacher-note-card-head{display:flex;align-items:center;gap:6px;margin-bottom:6px;color:#1e3a8a;font-size:13px;font-weight:700}
.teacher-teacher-note-card-head strong{flex:1}
.teacher-teacher-note-card button{padding:2px 6px;border:1px solid #bfdbfe;border-radius:4px;background:#fff;color:#2563eb;font-size:10px;cursor:pointer}
.teacher-teacher-note-card button.teacher-teacher-note-delete{border-color:#fecaca;color:#b42318}
.teacher-teacher-note-content{white-space:pre-wrap;overflow-wrap:anywhere;color:#334155}
.teacher-teacher-note-time{margin-top:6px;color:#64748b;font-size:10px}
.teacher-teacher-note-editor{position:absolute;z-index:10;display:flex;flex-direction:column;gap:7px;width:290px;max-width:calc(100vw - 44px);padding:11px;background:#fff;border:1px solid #2563eb;border-radius:8px;box-shadow:0 8px 26px rgba(15,23,42,.27);transform:translate(8px,8px);box-sizing:border-box}
.teacher-teacher-note-editor-title{color:#1e3a8a;font-size:13px;font-weight:700}
.teacher-teacher-note-editor textarea{width:100%;min-height:82px;box-sizing:border-box;padding:7px;border:1px solid #cbd5e1;border-radius:5px;outline:none;resize:vertical;color:#1e293b;font:12px/1.5 "Microsoft YaHei",sans-serif}
.teacher-teacher-note-editor textarea:focus{border-color:#2563eb;box-shadow:0 0 0 2px rgba(37,99,235,.12)}
.teacher-teacher-note-editor-error{min-height:15px;color:#b42318;font-size:10px}
.teacher-teacher-note-editor-actions{display:flex;justify-content:flex-end;gap:6px}
.teacher-teacher-note-editor-actions button{padding:6px 10px;border:1px solid #cbd5e1;border-radius:5px;background:#fff;color:#475569;font-size:11px;cursor:pointer}
.teacher-teacher-note-editor-actions button.primary{border-color:#2563eb;background:#2563eb;color:#fff}
.teacher-note-editor{position:absolute;z-index:9;display:flex;flex-direction:column;gap:7px;width:280px;max-width:calc(100vw - 48px);padding:11px;background:#fff;border:1px solid #2563eb;border-radius:8px;box-shadow:0 8px 26px rgba(15,23,42,.27);transform:translate(8px,8px);box-sizing:border-box}
.teacher-note-editor-title{font-size:13px;font-weight:700;color:#1e3a8a}
.teacher-note-editor label{display:flex;flex-direction:column;gap:3px;color:#64748b;font-size:11px}
.teacher-note-editor select,.teacher-note-editor input[type=text],.teacher-note-editor textarea{width:100%;box-sizing:border-box;padding:6px 7px;border:1px solid #cbd5e1;border-radius:5px;outline:none;background:#fff;color:#1e293b;font:12px/1.45 "Microsoft YaHei",sans-serif}
.teacher-note-editor textarea{min-height:68px;resize:vertical}
.teacher-note-editor select:focus,.teacher-note-editor input[type=text]:focus,.teacher-note-editor textarea:focus{border-color:#2563eb;box-shadow:0 0 0 2px rgba(37,99,235,.12)}
.teacher-note-editor-row{display:flex;align-items:center;gap:7px}
.teacher-note-editor-row input[type=color]{width:30px;height:27px;padding:1px;border:1px solid #cbd5e1;border-radius:4px;cursor:pointer}
.teacher-note-editor-actions{display:flex;justify-content:flex-end;gap:6px}
.teacher-note-editor-actions button{padding:6px 10px;border:1px solid #cbd5e1;border-radius:5px;background:#fff;color:#475569;font-size:11px;cursor:pointer}
.teacher-note-editor-actions button.primary{border-color:#2563eb;background:#2563eb;color:#fff}
.teacher-note-editor-error{min-height:15px;color:#b42318;font-size:10px}
.teacher-note-mode-hint{position:absolute;top:68px;left:50%;z-index:8;display:none;max-width:calc(100% - 34px);padding:8px 13px;transform:translateX(-50%);border:1px solid #93c5fd;border-radius:999px;background:#eff6ff;color:#1d4ed8;box-shadow:0 4px 14px rgba(15,23,42,.15);font:600 12px/1.35 "Microsoft YaHei",sans-serif;pointer-events:none;text-align:center}
.teacher-note-mode-hint.error{border-color:#fecaca;background:#fef2f2;color:#b42318}
.teacher-classroom-annotation{cursor:grab;touch-action:none}
.teacher-classroom-annotation.teacher-note-dragging{z-index:12;cursor:grabbing}
.teacher-classroom-note-actions{display:flex;align-items:center;gap:4px;margin-top:6px}
.teacher-classroom-note-actions button{padding:2px 6px;border:1px solid #cbd5e1;border-radius:4px;background:#fff;color:#2563eb;font-size:10px;line-height:1.4;cursor:pointer}
.teacher-classroom-note-actions button.danger{border-color:#fecaca;color:#b42318}
.teacher-annotation-context-menu{position:fixed;z-index:2147483000;min-width:116px;padding:4px;border:1px solid #cbd5e1;border-radius:7px;background:#fff;box-shadow:0 8px 24px rgba(15,23,42,.25);color:#1e293b;font:13px/1.4 "Microsoft YaHei",sans-serif;user-select:none}
.teacher-annotation-context-menu button{display:block;width:100%;padding:7px 12px;border:0;border-radius:4px;background:transparent;color:#1e293b;font:inherit;text-align:left;cursor:pointer}
.teacher-annotation-context-menu button:hover,.teacher-annotation-context-menu button:focus{outline:0;background:#eff6ff}
.teacher-annotation-context-menu button.danger{color:#b42318}
.teacher-annotation-context-menu button.danger:hover,.teacher-annotation-context-menu button.danger:focus{background:#fef2f2}
.teacher-ppt-text-note,.teacher-pdf-text-note{cursor:grab;touch-action:none}
.teacher-ppt-text-note:hover,.teacher-pdf-text-note:hover{z-index:6;box-shadow:0 5px 16px rgba(15,23,42,.28)}
.teacher-ppt-text-note .teacher-classroom-note-actions,.teacher-pdf-text-note .teacher-classroom-note-actions{display:none}
.teacher-ppt-text-note:hover .teacher-classroom-note-actions,.teacher-ppt-text-note:focus-within .teacher-classroom-note-actions,.teacher-pdf-text-note:hover .teacher-classroom-note-actions,.teacher-pdf-text-note:focus-within .teacher-classroom-note-actions{display:flex}
.teacher-ppt-teacher-note:hover .teacher-ppt-teacher-note-card,.teacher-ppt-teacher-note:focus-within .teacher-ppt-teacher-note-card,.teacher-pdf-teacher-note:hover .teacher-pdf-teacher-note-card,.teacher-pdf-teacher-note:focus-within .teacher-pdf-teacher-note-card{display:block}
.teacher-ppt-teacher-note-card-head,.teacher-pdf-teacher-note-card-head{display:flex;align-items:center;gap:4px;margin-bottom:5px}
.teacher-ppt-teacher-note-card-head strong,.teacher-pdf-teacher-note-card-head strong{flex:1}
.teacher-ppt-teacher-note-card .teacher-classroom-note-actions,.teacher-pdf-teacher-note-card .teacher-classroom-note-actions{margin:5px 0 0}
.teacher-word-fullscreen .teacher-note-mode-hint{position:fixed;top:72px;z-index:120004}
.teacher-student-panel,.teacher-note-stats-panel{margin:18px auto 0;padding:14px 16px;background:#fff;border:1px solid #dbe2e8;border-radius:9px;text-align:left;box-shadow:0 2px 8px rgba(15,23,42,.04)}
.teacher-master-data-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:18px}
.teacher-master-data-grid .teacher-student-panel{margin:0}
.teacher-panel-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:10px;color:#263238;font-size:14px;font-weight:700}
.teacher-panel-heading small{font-weight:400;color:#94a3b8;font-size:10px}
.teacher-student-add{display:flex;gap:7px;margin-bottom:9px}
.teacher-student-add input{flex:1;min-width:0;height:32px;box-sizing:border-box;padding:0 9px;border:1px solid #cbd5e1;border-radius:5px;outline:none;color:#1e293b;font-size:12px}
.teacher-student-add input:focus{border-color:#2563eb;box-shadow:0 0 0 2px rgba(37,99,235,.1)}
.teacher-student-add button{padding:0 12px;border:1px solid #2563eb;border-radius:5px;background:#eff6ff;color:#1d4ed8;font-size:11px;cursor:pointer}
.teacher-student-list{display:flex;flex-wrap:wrap;gap:6px;min-height:25px}
.teacher-student-chip{display:inline-flex;align-items:center;gap:5px;padding:4px 7px 4px 9px;background:#f1f5f9;border:1px solid #cbd5e1;border-radius:999px;color:#334155;font-size:11px}
.teacher-student-chip button{padding:0 3px;border:0;background:transparent;color:#94a3b8;font-size:14px;line-height:1;cursor:pointer}
.teacher-student-chip button:hover{color:#b42318}
.teacher-student-empty{color:#94a3b8;font-size:11px}
.teacher-note-stat-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin-bottom:12px}
.teacher-note-stat-card{padding:9px 8px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:7px;text-align:center}
.teacher-note-stat-card strong{display:block;color:#1e3a8a;font-size:20px;line-height:1.1}
.teacher-note-stat-card span{display:block;margin-top:3px;color:#64748b;font-size:10px}
.teacher-note-stat-columns{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.teacher-note-stat-section{min-width:0;padding:9px 10px;background:#fffbeb;border:1px solid #fde68a;border-radius:7px}
.teacher-note-stat-section h5{margin:0 0 7px;color:#92400e;font-size:12px}
.teacher-note-stat-row{display:flex;justify-content:space-between;gap:8px;padding:5px 0;border-bottom:1px solid rgba(217,119,6,.12);color:#475569;font-size:11px}
.teacher-note-stat-link{width:100%;border:0;background:transparent;font:inherit;text-align:left;cursor:pointer}
.teacher-note-stat-link:hover{padding-left:5px;background:#fef3c7;color:#92400e}
.teacher-note-stat-row:last-child{border-bottom:0}
.teacher-note-stat-row span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.teacher-note-stat-row b{flex:0 0 auto;color:#b45309}
.teacher-note-stat-empty{color:#a16207;font-size:11px}
.teacher-note-stat-toggle{display:block;margin-top:6px;padding:3px 0;border:0;background:transparent;color:#92400e;font:inherit;text-align:left;cursor:pointer}
.teacher-note-stat-toggle:hover{text-decoration:underline}
.teacher-note-stat-toggle:focus-visible{outline:2px solid #d97706;outline-offset:2px;border-radius:3px}
.teacher-schedule-entry{margin-top:10px;padding:13px 14px;background:#fff;border:1px solid #dbe2e8;border-radius:9px;text-align:left;box-shadow:0 2px 8px rgba(15,23,42,.04)}
.teacher-schedule-entry-head{display:flex;align-items:flex-start;gap:10px;justify-content:space-between}
.teacher-schedule-entry-title{min-width:0;color:#1e3a8a;font-size:14px;font-weight:700;line-height:1.5;white-space:pre-line}
.teacher-schedule-entry-meta{margin-top:3px;color:#64748b;font-size:11px}
.teacher-schedule-badges{display:flex;align-items:center;gap:5px;flex-wrap:wrap;justify-content:flex-end}
.teacher-schedule-badge{display:inline-block;padding:3px 7px;border-radius:999px;background:#eff6ff;color:#1d4ed8;font-size:10px;white-space:nowrap}
.teacher-schedule-badge.due{background:#fef2f2;color:#b42318;border:1px solid #fecaca;font-weight:700}
.teacher-schedule-entry-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:11px}
.teacher-schedule-kpi{padding:8px 9px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:6px}
.teacher-schedule-kpi strong{display:block;color:#1e3a8a;font-size:14px;line-height:1.3}
.teacher-schedule-kpi span{display:block;margin-top:2px;color:#64748b;font-size:10px}
.teacher-schedule-note{margin-top:9px;padding:8px 10px;background:#fffbeb;border-left:3px solid #f59e0b;border-radius:4px;color:#92400e;font-size:11px;white-space:pre-line}
.teacher-schedule-entry details{margin-top:9px;border-top:1px solid #e2e8f0;padding-top:8px}
.teacher-schedule-entry summary{cursor:pointer;color:#2563eb;font-size:11px}
.teacher-schedule-lesson-row{display:grid;grid-template-columns:34px 80px 1fr;gap:7px;padding:5px 0;border-bottom:1px dashed #e2e8f0;color:#475569;font-size:11px}
.teacher-schedule-lesson-row:last-child{border-bottom:0}
.teacher-schedule-lesson-row .due{color:#b42318;font-weight:700}
.teacher-schedule-tools{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:12px 0}
.teacher-schedule-tools input,.teacher-schedule-tools select{height:32px;padding:0 8px;border:1px solid #cbd5e1;border-radius:5px;background:#fff;color:#334155;font-size:11px;outline:none}
.teacher-schedule-tools input{min-width:230px;flex:1}
.teacher-schedule-tools button{height:32px;padding:0 10px;border:1px solid #2563eb;border-radius:5px;background:#eff6ff;color:#1d4ed8;font-size:11px;cursor:pointer}
.teacher-schedule-tools button.danger{border-color:#fecaca;background:#fff;color:#b42318}
.teacher-schedule-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:12px 0}
.teacher-schedule-summary-card{padding:10px;background:#f8fafc;border:1px solid #dbeafe;border-radius:7px;text-align:center}
.teacher-schedule-summary-card strong{display:block;color:#1e3a8a;font-size:21px;line-height:1.1}
.teacher-schedule-summary-card span{display:block;margin-top:4px;color:#64748b;font-size:10px}
.teacher-schedule-meeting{margin:10px 0;padding:10px 12px;background:#eef2ff;border:1px solid #c7d2fe;border-radius:7px;color:#3730a3;font-size:11px;line-height:1.7;white-space:pre-line}
.teacher-schedule-empty{padding:18px;text-align:center;color:#94a3b8;background:#fff;border:1px dashed #cbd5e1;border-radius:8px;font-size:12px}
@media(max-width:640px){.teacher-schedule-entry-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.teacher-schedule-summary{grid-template-columns:repeat(2,1fr)}.teacher-schedule-entry-head{display:block}.teacher-schedule-badges{justify-content:flex-start;margin-top:7px}.teacher-schedule-lesson-row{grid-template-columns:28px 70px 1fr}.teacher-schedule-tools input{min-width:160px}}
.teacher-ppt-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:10px;margin-top:12px}
.teacher-ppt-card{padding:13px 14px;background:#fff;border:1px solid #dbe2e8;border-radius:9px;box-shadow:0 2px 8px rgba(15,23,42,.04)}
.teacher-ppt-card-title{color:#1e3a8a;font-weight:700;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.teacher-ppt-card-meta{margin-top:5px;color:#64748b;font-size:11px;line-height:1.7}
.teacher-ppt-card-actions{display:flex;gap:7px;margin-top:10px}.teacher-ppt-card-actions button{height:29px;padding:0 10px;border:1px solid #2563eb;border-radius:5px;background:#eff6ff;color:#1d4ed8;font-size:11px;cursor:pointer}.teacher-ppt-card-actions button.danger{border-color:#fecaca;background:#fff;color:#b42318}
.teacher-ppt-viewer{position:relative;margin-top:14px;background:#0f172a;border:1px solid #1e293b;border-radius:9px;overflow:hidden;min-height:520px;color:#e2e8f0}
.teacher-ppt-toolbar{display:flex;align-items:center;gap:6px;flex-wrap:wrap;padding:9px 10px;background:#172554;border-bottom:1px solid #334155;position:relative;z-index:3}
.teacher-ppt-toolbar button{height:32px;padding:0 9px;border:1px solid #64748b;border-radius:5px;background:#1e3a8a;color:#e0f2fe;font-size:11px;cursor:pointer}.teacher-ppt-toolbar button:hover{background:#2563eb}.teacher-ppt-toolbar button.active{background:#f59e0b;color:#451a03;border-color:#fbbf24}.teacher-ppt-toolbar button:disabled{opacity:.45;cursor:not-allowed}
.teacher-ppt-toolbar .teacher-ppt-spacer{flex:1}.teacher-ppt-toolbar .teacher-ppt-status{color:#cbd5e1;font-size:11px;white-space:nowrap}.teacher-ppt-toolbar output{min-width:37px;text-align:center;color:#cbd5e1;font-size:11px}
.teacher-ppt-stage{position:relative;display:flex;align-items:center;justify-content:center;min-height:455px;padding:20px;background:#020617;overflow:auto}
.teacher-ppt-slide-shell{position:relative;width:min(100%,1200px);aspect-ratio:var(--teacher-ppt-aspect,1.7778);background:#fff;box-shadow:0 12px 30px rgba(0,0,0,.35);overflow:hidden;touch-action:none;user-select:none}
.teacher-ppt-slide-shell>svg{display:block;width:100%;height:100%}.teacher-ppt-ink-layer{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.teacher-ppt-slide-shell.teacher-ppt-mark-active{cursor:crosshair}
.teacher-ppt-overlay-layer{position:absolute;inset:0;pointer-events:none}.teacher-ppt-text-note{position:absolute;transform:translate(-3px,-3px);padding:5px 8px;background:#fff7ed;border:1px solid #f59e0b;border-radius:4px;color:#7c2d12;font-size:13px;line-height:1.35;white-space:pre-wrap;max-width:230px;box-shadow:0 3px 10px rgba(0,0,0,.18);pointer-events:auto;user-select:text}.teacher-ppt-teacher-note{position:absolute;transform:translate(-4px,-4px);pointer-events:auto}.teacher-ppt-teacher-note-dot{width:0;height:0;border-left:10px solid transparent;border-right:10px solid transparent;border-bottom:17px solid #2563eb;filter:drop-shadow(0 1px 1px rgba(0,0,0,.35));cursor:pointer}.teacher-ppt-teacher-note-card{display:none;position:absolute;left:15px;top:0;width:230px;padding:9px 10px;background:#eff6ff;border:1px solid #60a5fa;border-radius:6px;color:#1e3a8a;font-size:12px;line-height:1.5;box-shadow:0 4px 14px rgba(0,0,0,.2);white-space:pre-wrap}.teacher-ppt-teacher-note.open .teacher-ppt-teacher-note-card{display:block}.teacher-ppt-note-editor{position:absolute;z-index:4;transform:translate(-5px,-5px);width:245px;padding:9px;background:#fff;border:1px solid #f59e0b;border-radius:6px;box-shadow:0 6px 18px rgba(0,0,0,.22);pointer-events:auto}.teacher-ppt-note-editor input,.teacher-ppt-note-editor textarea{width:100%;box-sizing:border-box;margin:3px 0 6px;border:1px solid #cbd5e1;border-radius:4px;padding:5px;font-size:12px}.teacher-ppt-note-editor textarea{height:58px;resize:vertical}.teacher-ppt-note-editor-actions{display:flex;justify-content:flex-end;gap:6px}.teacher-ppt-note-editor-actions button{height:26px;padding:0 8px;border:1px solid #cbd5e1;border-radius:4px;background:#fff;color:#475569;font-size:11px;cursor:pointer}.teacher-ppt-note-editor-actions button.primary{background:#2563eb;color:#fff;border-color:#2563eb}
.teacher-ppt-viewer.teacher-ppt-fullscreen{position:fixed;inset:0;z-index:120000;margin:0;border:0;border-radius:0;background:#020617}.teacher-ppt-fullscreen .teacher-ppt-toolbar{position:fixed;top:0;left:0;right:0;z-index:120002}.teacher-ppt-fullscreen .teacher-ppt-stage{height:100vh;box-sizing:border-box;padding:70px 20px 20px}.teacher-ppt-fullscreen .teacher-ppt-slide-shell{width:min(96vw,calc(96vh * var(--teacher-ppt-aspect,1.7778)));max-width:none}.teacher-ppt-projector .teacher-ppt-toolbar{box-shadow:0 5px 22px rgba(0,0,0,.35)}
@media(max-width:640px){.teacher-ppt-viewer{min-height:390px}.teacher-ppt-stage{min-height:325px;padding:10px}.teacher-ppt-toolbar{overflow-x:auto;flex-wrap:nowrap}.teacher-ppt-toolbar .teacher-ppt-status,.teacher-ppt-toolbar .teacher-ppt-spacer{display:none}.teacher-ppt-note-editor{width:220px}}
.teacher-pdf-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:10px;margin-top:12px}
.teacher-pdf-card{padding:13px 14px;background:#fff;border:1px solid #dbe2e8;border-radius:9px;box-shadow:0 2px 8px rgba(15,23,42,.04)}
.teacher-pdf-card-title{color:#991b1b;font-weight:700;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.teacher-pdf-card-meta{margin-top:5px;color:#64748b;font-size:11px;line-height:1.7}
.teacher-pdf-card-actions{display:flex;gap:7px;margin-top:10px}.teacher-pdf-card-actions button{height:29px;padding:0 10px;border:1px solid #dc2626;border-radius:5px;background:#fff1f2;color:#b91c1c;font-size:11px;cursor:pointer}.teacher-pdf-card-actions button:hover{background:#ffe4e6}.teacher-pdf-card-actions button.danger{border-color:#fecaca;background:#fff;color:#b42318}
.teacher-pdf-viewer{position:relative;margin-top:14px;background:#1f2937;border:1px solid #374151;border-radius:9px;overflow:hidden;min-height:620px;color:#e5e7eb}
.teacher-pdf-page-jump{display:inline-flex;align-items:center;gap:4px;color:#f9fafb;font-size:11px;white-space:nowrap}.teacher-pdf-page-jump input{width:52px;height:28px;box-sizing:border-box;padding:0 5px;border:1px solid #9ca3af;border-radius:4px;background:#fff;color:#334155;font-size:11px;text-align:center}.teacher-pdf-page-jump input:focus{outline:2px solid #fbbf24;outline-offset:1px}
.teacher-pdf-toolbar{display:flex;align-items:center;gap:6px;flex-wrap:wrap;padding:9px 10px;background:#374151;border-bottom:1px solid #4b5563;position:relative;z-index:3}.teacher-pdf-toolbar button{height:32px;padding:0 9px;border:1px solid #9ca3af;border-radius:5px;background:#4b5563;color:#f9fafb;font-size:11px;cursor:pointer}.teacher-pdf-toolbar button:hover{background:#6b7280}.teacher-pdf-toolbar button.active{background:#f59e0b;border-color:#fbbf24;color:#451a03}.teacher-pdf-toolbar button:disabled{opacity:.45;cursor:not-allowed}.teacher-pdf-toolbar .teacher-pdf-spacer{flex:1}.teacher-pdf-toolbar .teacher-pdf-status{color:#e5e7eb;font-size:11px;white-space:nowrap}.teacher-pdf-toolbar output{min-width:37px;text-align:center;color:#e5e7eb;font-size:11px}.teacher-pdf-toolbar select,.teacher-pdf-toolbar input[type=color]{height:28px;border:1px solid #9ca3af;border-radius:4px;background:#fff;color:#334155;font-size:11px}.teacher-pdf-toolbar input[type=range]{width:76px;vertical-align:middle}
.teacher-pdf-stage{position:relative;display:flex;align-items:flex-start;justify-content:center;min-height:560px;padding:20px;background:#111827;overflow:auto}.teacher-pdf-page-shell{position:relative;width:min(100%,1000px);height:auto;background:#fff;box-shadow:0 12px 30px rgba(0,0,0,.35);overflow:hidden;touch-action:none;user-select:none}.teacher-pdf-page-canvas{display:block;width:100%;height:100%;background:#fff}.teacher-pdf-ink-layer{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.teacher-pdf-overlay-layer{position:absolute;inset:0;pointer-events:none}.teacher-pdf-page-shell.teacher-pdf-mark-active{cursor:crosshair}.teacher-pdf-text-note{position:absolute;transform:translate(-3px,-3px);padding:5px 8px;background:#fff7ed;border:1px solid #f59e0b;border-radius:4px;color:#7c2d12;font-size:13px;line-height:1.35;white-space:pre-wrap;max-width:230px;box-shadow:0 3px 10px rgba(0,0,0,.18);pointer-events:auto;user-select:text}.teacher-pdf-teacher-note{position:absolute;transform:translate(-4px,-4px);pointer-events:auto}.teacher-pdf-teacher-note-dot{width:0;height:0;border-left:10px solid transparent;border-right:10px solid transparent;border-bottom:17px solid #2563eb;filter:drop-shadow(0 1px 1px rgba(0,0,0,.35));cursor:pointer}.teacher-pdf-teacher-note-card{display:none;position:absolute;left:15px;top:0;width:230px;padding:9px 10px;background:#eff6ff;border:1px solid #60a5fa;border-radius:6px;color:#1e3a8a;font-size:12px;line-height:1.5;box-shadow:0 4px 14px rgba(0,0,0,.2);white-space:pre-wrap}.teacher-pdf-teacher-note.open .teacher-pdf-teacher-note-card{display:block}.teacher-pdf-note-editor{position:absolute;z-index:4;transform:translate(-5px,-5px);width:245px;padding:9px;background:#fff;border:1px solid #f59e0b;border-radius:6px;box-shadow:0 6px 18px rgba(0,0,0,.22);pointer-events:auto}.teacher-pdf-note-editor textarea{width:100%;box-sizing:border-box;margin:3px 0 6px;border:1px solid #cbd5e1;border-radius:4px;padding:5px;font-size:12px;height:58px;resize:vertical}.teacher-pdf-note-editor-actions{display:flex;justify-content:flex-end;gap:6px}.teacher-pdf-note-editor-actions button{height:26px;padding:0 8px;border:1px solid #cbd5e1;border-radius:4px;background:#fff;color:#475569;font-size:11px;cursor:pointer}.teacher-pdf-note-editor-actions button.primary{background:#2563eb;color:#fff;border-color:#2563eb}.teacher-pdf-viewer.teacher-pdf-fullscreen{position:fixed;inset:0;z-index:120000;margin:0;border:0;border-radius:0;background:#111827}.teacher-pdf-fullscreen .teacher-pdf-toolbar{position:fixed;top:0;left:0;right:0;z-index:120002}.teacher-pdf-fullscreen .teacher-pdf-stage{height:100vh;box-sizing:border-box;padding:70px 20px 20px}.teacher-pdf-fullscreen .teacher-pdf-page-shell{max-width:none}.teacher-pdf-projector .teacher-pdf-toolbar{box-shadow:0 5px 22px rgba(0,0,0,.35)}
@media(max-width:640px){.teacher-pdf-viewer{min-height:440px}.teacher-pdf-stage{min-height:400px;padding:10px}.teacher-pdf-toolbar{overflow-x:auto;flex-wrap:nowrap}.teacher-pdf-toolbar .teacher-pdf-status,.teacher-pdf-toolbar .teacher-pdf-spacer{display:none}.teacher-pdf-note-editor{width:220px}}
.teacher-note-stats-refresh{padding:3px 7px;border:1px solid #cbd5e1;border-radius:5px;background:#fff;color:#64748b;font-size:10px;cursor:pointer}
.teacher-note-jump-panel{display:none;margin:12px auto 0;padding:12px 14px;background:#eff6ff;border:1px solid #bfdbfe;border-radius:8px;text-align:left}
.teacher-note-jump-panel.open{display:block}
.teacher-note-jump-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px;color:#1e3a8a;font-size:12px;font-weight:700}
.teacher-note-jump-close{padding:2px 7px;border:1px solid #bfdbfe;border-radius:4px;background:#fff;color:#64748b;font-size:10px;cursor:pointer}
.teacher-note-jump-item{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;width:100%;padding:8px 9px;margin-top:5px;border:1px solid #dbeafe;border-radius:6px;background:#fff;color:#334155;font-size:11px;text-align:left;cursor:pointer}
.teacher-note-jump-item:hover{border-color:#2563eb;background:#dbeafe}
.teacher-note-jump-main{display:flex;flex:1;min-width:0;flex-direction:column;gap:2px}
.teacher-note-jump-main strong{color:#334155;font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.teacher-note-jump-main em{color:#64748b;font-size:10px;font-style:normal;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.teacher-note-jump-item small{color:#64748b;white-space:nowrap}
.teacher-chart-panel{margin:12px auto 0;padding:14px 16px;background:#fff;border:1px solid #dbe2e8;border-radius:9px;text-align:left;box-shadow:0 2px 8px rgba(15,23,42,.04)}
.teacher-chart-controls{display:flex;align-items:flex-end;flex-wrap:wrap;gap:8px;padding:10px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:7px}
.teacher-chart-control{display:flex;flex-direction:column;gap:3px;color:#64748b;font-size:10px}
.teacher-chart-control select,.teacher-chart-control input{height:29px;min-width:108px;padding:0 7px;border:1px solid #cbd5e1;border-radius:5px;background:#fff;color:#334155;font:11px/1.2 "Microsoft YaHei",sans-serif}
.teacher-chart-control input[type=date]{min-width:126px}
.teacher-chart-empty{padding:30px 10px;color:#94a3b8;text-align:center;font-size:12px}
.teacher-chart-summary{margin:8px 0 2px;color:#64748b;font-size:10px}
.teacher-chart-canvas{width:100%;min-height:285px;margin-top:8px;overflow:hidden;border:1px solid #e2e8f0;border-radius:7px;background:linear-gradient(180deg,#fff,#f8fafc)}
.teacher-chart-canvas svg{display:block;width:100%;height:285px}
.teacher-chart-axis{fill:#64748b;font:10px "Microsoft YaHei",sans-serif}
.teacher-chart-label{fill:#334155;font:10px "Microsoft YaHei",sans-serif}
.teacher-chart-value{fill:#1d4ed8;font:700 10px "Microsoft YaHei",sans-serif}
.teacher-chart-grid{stroke:#e2e8f0;stroke-width:1}
.teacher-chart-line{fill:none;stroke:#2563eb;stroke-width:3;stroke-linejoin:round;stroke-linecap:round}
.teacher-chart-point{fill:#fff;stroke:#2563eb;stroke-width:3}
.teacher-chart-bar{fill:#3b82f6;opacity:.88}
.teacher-tool-panel{margin:12px auto 0;padding:14px 16px;background:#fff;border:1px solid #dbe2e8;border-radius:9px;text-align:left;box-shadow:0 2px 8px rgba(15,23,42,.04)}
.teacher-tool-panel-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:10px;color:#263238;font-size:14px;font-weight:700}
.teacher-tool-panel-heading small{font-weight:400;color:#94a3b8;font-size:10px}
.teacher-lesson-form{display:grid;grid-template-columns:120px 1fr 1.4fr;gap:8px;margin-bottom:10px}
.teacher-lesson-form input,.teacher-lesson-form select,.teacher-lesson-form textarea{width:100%;box-sizing:border-box;padding:7px 8px;border:1px solid #cbd5e1;border-radius:5px;background:#fff;color:#334155;font:12px/1.4 "Microsoft YaHei",sans-serif}
.teacher-lesson-form textarea{grid-column:1/-1;min-height:52px;resize:vertical}
.teacher-lesson-actions{display:flex;align-items:center;justify-content:flex-end;gap:7px}
.teacher-lesson-actions button,.teacher-report-actions button,.teacher-backup-actions button{padding:6px 10px;border:1px solid #cbd5e1;border-radius:5px;background:#fff;color:#475569;font-size:11px;cursor:pointer}
.teacher-lesson-actions button.primary,.teacher-report-actions button.primary{border-color:#2563eb;background:#2563eb;color:#fff}
.teacher-lesson-list{display:grid;gap:6px;margin-top:10px}
.teacher-lesson-item{padding:8px 10px;border:1px solid #e2e8f0;border-left:3px solid #2563eb;border-radius:6px;background:#f8fafc}
.teacher-lesson-item-head{display:flex;align-items:center;justify-content:space-between;gap:8px;color:#334155;font-size:12px;font-weight:700}
.teacher-lesson-item-head small{color:#64748b;font-size:10px;font-weight:400}
.teacher-lesson-item-body{margin-top:4px;color:#64748b;font-size:11px;line-height:1.55;white-space:pre-wrap}
.teacher-lesson-item button{float:right;padding:1px 5px;border:1px solid #fecaca;border-radius:4px;background:#fff;color:#b42318;font-size:10px;cursor:pointer}
.teacher-report-controls{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-bottom:10px}
.teacher-report-controls select{min-width:150px;height:30px;padding:0 7px;border:1px solid #cbd5e1;border-radius:5px;background:#fff;color:#334155;font-size:11px}
.teacher-report-actions{display:flex;gap:6px}
.teacher-report-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin-bottom:10px}
.teacher-report-summary div{padding:8px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:6px;text-align:center}
.teacher-report-summary strong{display:block;color:#1e3a8a;font-size:18px}
.teacher-report-summary span{display:block;margin-top:2px;color:#64748b;font-size:10px}
.teacher-report-list{display:grid;gap:6px}
.teacher-report-row{display:grid;grid-template-columns:minmax(110px,1fr) minmax(100px,1.4fr) 96px;align-items:center;gap:8px;padding:7px 9px;border:1px solid #e2e8f0;border-radius:6px;background:#fff;color:#475569;font-size:11px}
.teacher-report-row small{color:#94a3b8;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.teacher-report-row select{height:27px;padding:0 5px;border:1px solid #cbd5e1;border-radius:4px;font-size:10px}
.teacher-report-empty{padding:12px;color:#94a3b8;text-align:center;font-size:11px}
.teacher-backup-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.teacher-backup-actions .primary{border-color:#2563eb;background:#eff6ff;color:#1d4ed8}
.teacher-word-quick-nav{display:inline-flex;align-items:center;gap:4px;color:#cbd5e1;font-size:10px}
.teacher-word-quick-nav select{max-width:190px;height:28px;padding:0 5px;border:1px solid #607d8b;border-radius:4px;background:#37474f;color:#fff;font-size:10px}
.teacher-word-nav-focus{outline:3px solid rgba(37,99,235,.55);outline-offset:4px;background:rgba(219,234,254,.35)!important;transition:outline .2s,background .2s}
.teacher-spotlight{position:fixed;inset:0;z-index:120003;display:none;pointer-events:none;background:radial-gradient(circle var(--teacher-spot-size,105px) at var(--teacher-spot-x,50%) var(--teacher-spot-y,50%),transparent 0 calc(var(--teacher-spot-size,105px) * .72),rgba(15,23,42,.74) calc(var(--teacher-spot-size,105px) * 1.18));mix-blend-mode:multiply}
.teacher-word-viewer.teacher-spotlight-active .teacher-spotlight{display:block}
.teacher-word-viewer.teacher-spotlight-active{isolation:isolate}
.teacher-word-viewer.teacher-spotlight-active .teacher-word-toolbar{position:relative;z-index:120004}
.teacher-word-timer{display:inline-flex;align-items:center;gap:3px;color:#fef3c7;font-size:11px;font-variant-numeric:tabular-nums}
.teacher-word-timer.running{color:#86efac}
.teacher-word-viewer.teacher-mark-highlight .teacher-word-page,.teacher-word-viewer.teacher-mark-underline .teacher-word-page,.teacher-word-viewer.teacher-mark-eraser .teacher-word-page{cursor:crosshair}
.teacher-word-viewer.teacher-mark-text .teacher-word-page{cursor:text}
.teacher-word-viewer.teacher-mark-note .teacher-word-page{cursor:cell}
.teacher-word-list{margin-top:18px;text-align:left}
.teacher-word-list h4{margin:0 0 8px;color:#263238;font-size:14px}
.teacher-word-list-item{display:flex;align-items:center;gap:8px;padding:9px 10px;margin-bottom:6px;background:#fff;border:1px solid #dbe2e8;border-radius:7px;cursor:pointer}
.teacher-word-list-item:hover{border-color:#607d8b;background:#f8fafc}
.teacher-word-list-item .teacher-word-list-name{flex:1;min-width:0;color:#263238;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.teacher-word-list-item small{color:#94a3b8;font-size:10px}
.teacher-word-list-item button{padding:3px 7px;border:1px solid #fecaca;border-radius:5px;background:#fff;color:#b42318;font-size:10px;cursor:pointer}
.teacher-list-pager{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:9px;padding:7px 2px 0;color:#7a8796;font-size:10px}.teacher-list-pager button{height:27px;padding:0 9px;border:1px solid #cbd5e1;border-radius:5px;background:#fff;color:#294767;font-size:10px;cursor:pointer}.teacher-list-pager button:hover:not(:disabled){border-color:#607d9b;background:#eff6ff}.teacher-list-pager button:disabled{opacity:.4;cursor:not-allowed}.teacher-ppt-list .teacher-list-pager,.teacher-pdf-list .teacher-list-pager{grid-column:1/-1}
.teacher-home{max-width:1180px;margin:0 auto;padding:22px 24px 36px;text-align:left;color:#26384e}
.teacher-home-hero{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;padding:22px 24px;margin-bottom:16px;border:1px solid #d4dde6;border-left:4px solid #b78a2d;background:linear-gradient(135deg,#f8fafc 0%,#eef3f7 100%);border-radius:4px}
.teacher-home-hero-kicker{margin-bottom:6px;color:#b78a2d;font-size:10px;font-weight:800;letter-spacing:1.8px;text-transform:uppercase}
.teacher-home-hero h2{margin:0;color:#17365d;font:700 24px/1.25 "Segoe UI","Microsoft YaHei UI",sans-serif;letter-spacing:.2px}
.teacher-home-hero p{max-width:680px;margin:8px 0 0;color:#6b7a8d;font-size:12px;line-height:1.7}
.teacher-home-hero-mark{flex:0 0 auto;width:66px;height:66px;display:grid;place-items:center;border:1px solid #d7c38d;border-radius:50%;background:#fff;color:#294767;font-size:31px;box-shadow:0 6px 18px rgba(31,55,80,.08)}
.teacher-home-nav{position:sticky;top:0;z-index:8;display:flex;gap:4px;margin:0 0 18px;padding:5px;border:1px solid #cbd7e2;border-radius:7px;background:#17365d;box-shadow:0 5px 14px rgba(23,54,93,.12)}
.teacher-home-tab{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-width:132px;height:40px;padding:0 15px;border:0;border-radius:5px;background:transparent;color:#dbe7f2;font-size:12px;font-weight:700;cursor:pointer;transition:background .15s,color .15s,box-shadow .15s}.teacher-home-tab span{font-size:16px;line-height:1}.teacher-home-tab:hover{background:rgba(255,255,255,.1);color:#fff}.teacher-home-tab.active{background:#fffdf7;color:#17365d;box-shadow:0 2px 7px rgba(0,0,0,.16)}
.teacher-home-tab-panel{min-height:260px;animation:teacherHomeTabIn .18s ease-out}@keyframes teacherHomeTabIn{from{opacity:.5;transform:translateY(3px)}to{opacity:1;transform:translateY(0)}}
.teacher-home-tip{border-left:3px solid #b78a2d;background:#fffdf7}.teacher-home-tip p{margin:0;color:#6b7a8d;font-size:11px;line-height:1.8}.teacher-home-lesson-panel{margin-top:16px!important}.teacher-material-grid{margin-top:18px}.teacher-student-grid{margin-top:0}
.teacher-home-section-label{display:flex;align-items:center;gap:10px;margin:22px 0 9px;color:#6b7787;font-size:10px;font-weight:800;letter-spacing:1.5px;text-transform:uppercase}
.teacher-home-section-label::after{content:"";height:1px;flex:1;background:#dbe2e8}
.teacher-home-quick-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.teacher-home-schedule-card{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:14px 16px;border:1px solid #d5dee7;border-left:4px solid #54749b;border-radius:4px;background:#fff;box-shadow:0 2px 7px rgba(15,23,42,.035)}
.teacher-home-schedule-card .teacher-home-action-desc{margin-top:4px}.teacher-home-schedule-card button{flex:0 0 auto;height:32px;padding:0 13px;border:1px solid #54749b;border-radius:4px;background:#eff6ff;color:#294767;font-size:11px;cursor:pointer}.teacher-home-schedule-card button:hover{background:#dbeafe;border-color:#294767}
.teacher-home-action{min-height:100px;display:flex;flex-direction:column;justify-content:space-between;padding:14px 15px;border:1px solid #d5dee7;border-top:3px solid #607d9b;border-radius:4px;background:#fff;cursor:pointer;box-shadow:0 2px 7px rgba(15,23,42,.035);transition:border-color .15s,box-shadow .15s,transform .15s}
.teacher-home-action:hover{border-color:#b78a2d;box-shadow:0 7px 18px rgba(15,23,42,.09);transform:translateY(-2px)}
.teacher-home-action.primary{border-top-color:#b78a2d;background:#fffdf7}.teacher-home-action.schedule{border-top-color:#54749b}.teacher-home-action.ppt{border-top-color:#a05a40}.teacher-home-action.pdf{border-top-color:#a33d3d}
.teacher-home-action-head{display:flex;align-items:center;gap:9px;color:#17365d;font-size:13px;font-weight:700}.teacher-home-action-icon{font-size:20px;line-height:1}.teacher-home-action-desc{margin-top:8px;color:#7a8796;font-size:10.5px;line-height:1.55}
.teacher-home-viewer-host{margin-top:14px;text-align:left;scroll-margin-top:78px}.teacher-home-viewer-host:empty{display:none}
.teacher-home-main-grid{display:grid;grid-template-columns:minmax(0,1.18fr) minmax(320px,.82fr);gap:16px;align-items:start}
.teacher-home-column{display:grid;gap:14px;min-width:0}.teacher-home .teacher-word-list{margin-top:0}.teacher-home .teacher-word-list h4{margin:0 0 9px;font-size:13px;color:#294767}.teacher-home .teacher-word-list-item{margin-bottom:6px}
.teacher-home .teacher-master-data-grid{grid-template-columns:1fr;gap:10px;margin:0}.teacher-home .teacher-master-data-grid .teacher-student-panel{margin:0}
.teacher-home .teacher-student-panel,.teacher-home .teacher-tool-panel,.teacher-home .teacher-note-stats-panel,.teacher-home .teacher-chart-panel{margin:0}
.teacher-home-bottom{display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,.75fr);gap:16px;align-items:start}
.teacher-home-bottom #teacherNoteStats{grid-column:1/-1}.teacher-home-bottom #teacherNoteCharts{grid-column:1/-1}.teacher-home-bottom #teacherBackupPanel{grid-column:1/-1}.teacher-home-bottom .teacher-note-jump-panel{margin:0}
.teacher-home .teacher-note-jump-panel{margin:0}.teacher-home .teacher-note-stats-panel{min-width:0}
/* 教师功能首页：使用整个可用工作区，避免被通用模块正文宽度限制 */
#mBody.teacher-home-body-fullscreen{
  width:100%!important;
  max-width:none!important;
  box-sizing:border-box;
  padding:18px clamp(24px,3vw,56px) 30px!important;
}
#mBody.teacher-home-body-fullscreen .teacher-home{
  width:100%;
  max-width:none;
  box-sizing:border-box;
}
@media(max-width:980px){.teacher-home-quick-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.teacher-home-main-grid,.teacher-home-bottom{grid-template-columns:1fr}}
@media(max-width:560px){.teacher-home{padding:14px 12px 28px}.teacher-home-hero{align-items:flex-start;padding:16px;gap:12px}.teacher-home-hero h2{font-size:20px}.teacher-home-hero-mark{width:48px;height:48px;font-size:23px}.teacher-home-quick-grid{grid-template-columns:1fr}.teacher-home-section-label{margin-top:16px}.teacher-home-action{min-height:82px}.teacher-home-nav{overflow-x:auto;scrollbar-width:none}.teacher-home-nav::-webkit-scrollbar{display:none}.teacher-home-tab{flex:1 0 118px;min-width:118px;padding:0 10px}}
#mPanel.teacher-classroom-host{top:0!important;height:100%!important;overflow:visible!important;z-index:120000!important}
.container.teacher-classroom-container{z-index:120000!important}
.teacher-word-viewer.teacher-word-fullscreen{position:fixed;inset:0;z-index:120000;margin:0;border:0;border-radius:0;background:#0f172a}
.teacher-word-fullscreen .teacher-word-toolbar{flex-wrap:nowrap;overflow-x:auto;border-radius:0;position:fixed;top:0;left:0;right:0;z-index:120002;min-height:60px;box-sizing:border-box}
.teacher-word-fullscreen .teacher-word-toolbar .teacher-word-spacer{display:none}
.teacher-word-fullscreen .teacher-word-toolbar .teacher-word-status{display:none}
.teacher-word-fullscreen .teacher-word-surface{height:100vh;max-height:none;padding:92px 34px 34px;box-sizing:border-box}
.teacher-word-fullscreen .teacher-word-page{max-width:1050px;font-size:19px;line-height:2.05;padding:54px 72px;min-height:calc(100vh - 150px)}
.teacher-word-fullscreen.teacher-projector-mode .teacher-word-toolbar{transition:transform .22s ease,opacity .22s ease;box-shadow:0 5px 22px rgba(0,0,0,.28)}
.teacher-word-fullscreen.teacher-projector-mode .teacher-word-toolbar.teacher-projector-toolbar-hidden{transform:translateY(-105%);opacity:.18;pointer-events:none}
.teacher-word-fullscreen.teacher-projector-mode.teacher-mark-highlight .teacher-word-toolbar,.teacher-word-fullscreen.teacher-projector-mode.teacher-mark-underline .teacher-word-toolbar,.teacher-word-fullscreen.teacher-projector-mode.teacher-mark-eraser .teacher-word-toolbar,.teacher-word-fullscreen.teacher-projector-mode.teacher-mark-text .teacher-word-toolbar,.teacher-word-fullscreen.teacher-projector-mode.teacher-mark-note .teacher-word-toolbar{transform:translateY(0)!important;opacity:1!important;pointer-events:auto!important}
.teacher-word-fullscreen.teacher-projector-mode .teacher-word-surface{padding-top:72px;background:#111827}
.teacher-word-fullscreen.teacher-projector-mode .teacher-word-page{max-width:1180px;padding:64px 86px;box-shadow:0 8px 28px rgba(0,0,0,.32)}
/* 题库试卷教师讲解：正文和批注层共用整页坐标，并在全屏时铺满可用屏幕。 */
.teacher-paper-mode .teacher-word-page{width:100%;max-width:1200px;box-sizing:border-box}
.teacher-word-fullscreen.teacher-paper-mode .teacher-word-surface{height:100vh;height:100dvh;max-height:none;padding:76px 18px 24px;box-sizing:border-box;overflow:auto}
.teacher-word-fullscreen.teacher-paper-mode .teacher-word-page{width:100%;max-width:1440px;min-height:calc(100vh - 112px);padding:28px clamp(18px,4vw,64px);box-sizing:border-box}
.teacher-word-fullscreen.teacher-paper-mode .teacher-word-page.paper-sheet{max-width:1440px;width:100%;margin:0 auto}
.teacher-projector-hint{position:fixed;right:16px;bottom:14px;z-index:120004;padding:7px 10px;border-radius:6px;background:rgba(15,23,42,.78);color:#e2e8f0;font-size:11px;pointer-events:none;opacity:0;transition:opacity .2s}
.teacher-word-fullscreen.teacher-projector-mode .teacher-projector-hint{opacity:.8}
.teacher-whiteboard-overlay{position:fixed;inset:0;z-index:120005;display:none;flex-direction:column;background:#0f172a;color:#e2e8f0}
.teacher-word-viewer.teacher-whiteboard-open .teacher-whiteboard-overlay{display:flex}
.teacher-whiteboard-toolbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;min-height:58px;padding:9px 13px;box-sizing:border-box;background:#1e293b;box-shadow:0 3px 14px rgba(0,0,0,.28)}
.teacher-whiteboard-toolbar h3{margin:0 8px 0 0;font-size:15px;white-space:nowrap}
.teacher-whiteboard-toolbar button{padding:7px 11px;border:1px solid rgba(255,255,255,.3);border-radius:6px;background:rgba(255,255,255,.1);color:#fff;font-size:12px;cursor:pointer}
.teacher-whiteboard-toolbar button:hover,.teacher-whiteboard-toolbar button.active{background:#2563eb;border-color:#93c5fd}
.teacher-whiteboard-toolbar .teacher-whiteboard-spacer{flex:1}
.teacher-whiteboard-toolbar .teacher-whiteboard-clear{background:#7f1d1d;border-color:#fca5a5}
.teacher-whiteboard-toolbar .teacher-whiteboard-close{background:#475569}
.teacher-whiteboard-surface{position:relative;flex:1;overflow:auto;padding:24px;box-sizing:border-box;background:#cbd5e1}
.teacher-whiteboard-page{position:relative;max-width:1180px;min-height:calc(100vh - 130px);margin:0 auto;padding:42px 54px;box-sizing:border-box;background:#fff;color:#172554;box-shadow:0 8px 30px rgba(15,23,42,.24);font:21px/1.85 "Microsoft YaHei",Cambria,serif}
.teacher-whiteboard-text{position:relative;z-index:1;min-height:calc(100vh - 215px);outline:none;white-space:pre-wrap;overflow-wrap:anywhere}
.teacher-whiteboard-text:empty:before{content:'点击这里输入讲解文字；切换到画笔后可在白板上书写';color:#94a3b8;pointer-events:none}
.teacher-whiteboard-ink{position:absolute;inset:0;z-index:2;width:100%;height:100%;pointer-events:none;overflow:visible}
.teacher-whiteboard-ink.teacher-whiteboard-pen-active{pointer-events:all;cursor:crosshair}
.teacher-whiteboard-ink path{pointer-events:none}
@media(max-width:640px){.teacher-word-fullscreen.teacher-projector-mode .teacher-word-page{padding:28px 20px}.teacher-whiteboard-surface{padding:12px}.teacher-whiteboard-page{min-height:calc(100vh - 100px);padding:25px 20px;font-size:17px}.teacher-whiteboard-text{min-height:calc(100vh - 170px)}}
@media(max-width:800px){.teacher-master-data-grid{grid-template-columns:1fr}.teacher-note-stat-columns{grid-template-columns:1fr}.teacher-note-stat-grid{grid-template-columns:repeat(2,1fr)}.teacher-lesson-form{grid-template-columns:1fr 1fr}.teacher-lesson-form textarea{grid-column:1/-1}.teacher-report-summary{grid-template-columns:repeat(2,1fr)}.teacher-report-row{grid-template-columns:1fr 1fr}.teacher-report-row select{grid-column:1/-1}}
@media(max-width:640px){.teacher-word-page{padding:24px 20px;font-size:14px}.teacher-word-surface{padding:12px}.teacher-word-fullscreen .teacher-word-surface{padding:12px}.teacher-word-fullscreen .teacher-word-page{padding:24px 20px;font-size:16px}.teacher-note-editor{width:250px;max-width:calc(100vw - 30px)}}
/* 教师课堂展示：应用内全屏保留工具栏，内容区填满剩余空间并随分辨率缩放 */
.teacher-word-viewer.teacher-word-fullscreen,
.teacher-ppt-viewer.teacher-ppt-fullscreen,
.teacher-pdf-viewer.teacher-pdf-fullscreen{
  position:fixed;inset:0;width:100vw;max-width:none;height:100vh;height:100dvh;
  display:flex;flex-direction:column;box-sizing:border-box;margin:0;border:0;border-radius:0;
  overflow:hidden;z-index:120000;
}
.teacher-word-fullscreen .teacher-word-toolbar,
.teacher-ppt-fullscreen .teacher-ppt-toolbar,
.teacher-pdf-fullscreen .teacher-pdf-toolbar{
  position:relative;top:auto;left:auto;right:auto;flex:0 0 auto;width:100%;max-width:none;
  min-height:58px;box-sizing:border-box;flex-wrap:nowrap;overflow-x:auto;overflow-y:hidden;
  scrollbar-width:thin;z-index:120002;
}
.teacher-word-fullscreen .teacher-word-surface,
.teacher-ppt-fullscreen .teacher-ppt-stage,
.teacher-pdf-fullscreen .teacher-pdf-stage{
  flex:1 1 auto;width:100%;height:auto;min-height:0;max-height:none;box-sizing:border-box;
  overflow:auto;
}
.teacher-word-fullscreen .teacher-word-surface{
  padding:clamp(16px,2.5vw,34px);background:#111827;
}
.teacher-word-fullscreen .teacher-word-page{
  width:100%;max-width:none;min-height:100%;box-sizing:border-box;margin:0 auto;
  padding:clamp(24px,4vw,54px) clamp(20px,5vw,72px);font-size:clamp(16px,1.35vw,21px);
}
.teacher-ppt-fullscreen .teacher-ppt-stage,
.teacher-pdf-fullscreen .teacher-pdf-stage{
  padding:clamp(12px,2vw,24px);align-items:center;justify-content:center;
}
.teacher-pdf-fullscreen .teacher-pdf-stage{align-items:flex-start;}
.teacher-ppt-fullscreen .teacher-ppt-slide-shell,
.teacher-pdf-fullscreen .teacher-pdf-page-shell{
  max-width:none;flex:0 0 auto;
}
.teacher-ppt-fullscreen .teacher-ppt-slide-shell{width:100%;}
.teacher-pdf-fullscreen .teacher-pdf-page-shell{width:100%;}
@media(max-width:640px){
  .teacher-word-fullscreen .teacher-word-toolbar,
  .teacher-ppt-fullscreen .teacher-ppt-toolbar,
  .teacher-pdf-fullscreen .teacher-pdf-toolbar{min-height:52px;padding-left:8px;padding-right:8px;}
  .teacher-word-fullscreen .teacher-word-surface,
  .teacher-ppt-fullscreen .teacher-ppt-stage,
  .teacher-pdf-fullscreen .teacher-pdf-stage{padding:10px;}
  .teacher-word-fullscreen .teacher-word-page{padding:24px 18px;font-size:16px;}
}
.structure-practice-actions button.success{border-color:#16a34a;background:#16a34a;color:#fff}
.essay-submit-row{text-align:center;margin-top:20px;padding-top:20px;border-top:1px solid var(--paper)}
.essay-submit-btn{padding:13px 48px;border:none;border-radius:100px;font-size:16px;font-weight:700;cursor:pointer;background:linear-gradient(135deg,var(--gold-dark),var(--gold));color:#fff;transition:var(--transition);box-shadow:0 4px 18px rgba(184,134,11,.35);letter-spacing:.5px}
.essay-submit-btn:hover{transform:translateY(-2px);box-shadow:0 8px 30px rgba(184,134,11,.5)}
.essay-submit-btn:disabled{opacity:.5;cursor:not-allowed;transform:none;box-shadow:none}
.essay-result{margin-top:20px;display:none}
.essay-score-circle{width:100px;height:100px;border-radius:50%;margin:0 auto 16px;display:flex;flex-direction:column;align-items:center;justify-content:center;font-weight:900;color:#fff}
.essay-score-circle.grade-a{background:linear-gradient(135deg,#48bb78,#38a169)}
.essay-score-circle.grade-b{background:linear-gradient(135deg,#4299e1,#3182ce)}
.essay-score-circle.grade-c{background:linear-gradient(135deg,#ed8936,#dd6b20)}
.essay-score-circle.grade-d{background:linear-gradient(135deg,#fc8181,#e53e3e)}
.essay-score-circle.grade-e{background:linear-gradient(135deg,#a0aec0,#718096)}
.essay-score-num{font-size:42px;line-height:1}
.essay-score-total{font-size:12px;opacity:.8}
.essay-score-label{font-size:14px;margin-top:2px}
.essay-rubric-note{text-align:center;margin:-7px 0 14px;color:var(--slate-light);font-size:11px;line-height:1.5}
.essay-breakdown{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:16px 0}
.essay-bd-item{text-align:center;padding:14px 10px;background:var(--cream);border-radius:10px;border:1px solid var(--card-border)}
.essay-bd-item .bd-score{font-size:28px;font-weight:900;color:var(--ink)}
.essay-bd-item .bd-label{font-size:11px;color:var(--slate-light);margin-top:2px}
.essay-errors-section{margin-top:16px}
.essay-errors-section h4{font-size:15px;color:var(--ink);margin-bottom:10px}
.essay-error-item{padding:10px 14px;background:#fff;border-left:3px solid #fc8181;margin-bottom:8px;border-radius:0 8px 8px 0;font-size:13px}
.essay-error-item .e-wrong{color:#c53030;text-decoration:line-through;margin-right:6px}
.essay-error-item .e-correct{color:#276749;font-weight:600}
.essay-error-item .e-detail{font-size:11px;color:var(--slate-light);margin-top:4px}
.essay-suggestions{margin-top:16px;padding:14px;background:#fffbeb;border-radius:10px;border:1px solid #fde68a}
.essay-suggestions h4{font-size:14px;color:#92400e;margin-bottom:8px}
.essay-suggestions li{font-size:13px;color:#78350f;margin:4px 0;line-height:1.6}
.essay-corrected{margin-top:20px;padding:20px;background:linear-gradient(135deg,#f0fdf4,#ecfdf5);border-radius:12px;border:2px solid #86efac}
.essay-corrected h4{font-size:15px;color:#166534;margin:0 0 12px}
.essay-corrected-text{font-family:Georgia,serif;font-size:15px;line-height:2;color:#1a1a1a;background:#fff;padding:18px 22px;border-radius:8px;border:1px solid #bbf7d0;white-space:pre-wrap}
.essay-change{color:#dc2626;font-weight:700;background:rgba(220,38,38,.10);padding:1px 3px;border-radius:2px}
.essay-source-review{margin:16px 0;padding:14px 16px;border:1px solid #e5b7b3;border-left:4px solid #b8423b;border-radius:12px;background:linear-gradient(145deg,#fff9f7,#fff1ee)}
.essay-source-review h4{margin:0 0 6px;color:#843b36;font-size:14px}
.essay-source-review p{margin:0 0 10px;color:#7b6663;font-size:12px}
.essay-source-text{padding:14px 16px;border:1px solid #ead8d5;border-radius:9px;background:#fff;color:#25384a;font:15px/1.9 Georgia,serif;white-space:pre-wrap;overflow-wrap:anywhere}
.essay-source-error{color:#a52d2a;font-weight:800;background:#ffe2df;border-radius:3px;padding:0 2px;text-decoration:underline;text-decoration-color:#d36a63;text-decoration-thickness:1px;text-underline-offset:2px}
/* 学段切换与高中高考双作文工作区 */
.learning-stage-row{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:7px 0 8px;padding:8px 10px;border:1px solid rgba(153,175,198,.34);border-radius:4px;background:rgba(10,27,48,.38);max-width:560px}
.learning-stage-copy{display:flex;align-items:baseline;gap:8px;min-width:0}.learning-stage-label{font-size:11px;font-weight:700;color:#f1c46b;letter-spacing:.4px;white-space:nowrap}.learning-stage-hint{font-size:11px;color:#aeb9c7;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.learning-stage-buttons{display:flex;gap:3px;padding:2px;background:#0b1d33;border:1px solid #425670;border-radius:3px;flex:0 0 auto}.learning-stage-btn{border:0;border-radius:2px;padding:5px 12px;background:transparent;color:#aeb9c7;font:600 11px/1.2 "Segoe UI","Microsoft YaHei UI",sans-serif;cursor:pointer;transition:all .15s}.learning-stage-btn:hover{color:#fff;background:#253c59}.learning-stage-btn.active{background:var(--wb-gold);color:#172943;box-shadow:0 1px 0 rgba(255,255,255,.25) inset}.essay-stage-switcher{max-width:480px;margin-top:8px}
.wb-stage-bar{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:10px 26px;border-bottom:1px solid #c5d5e2;background:linear-gradient(135deg,#fdfcf7,#edf4f8);box-shadow:0 3px 0 rgba(18,39,63,.08);position:sticky;top:0;z-index:2}.wb-stage-bar-copy{display:flex;align-items:baseline;gap:10px;min-width:0}.wb-stage-bar-label{color:#a36c11;font-size:12px;font-weight:800;letter-spacing:.4px;white-space:nowrap}.wb-stage-bar strong{color:#193b5a;font-size:13px;white-space:nowrap}.wb-stage-bar-note{color:#718298;font-size:11px;white-space:nowrap}.wb-stage-bar .learning-stage-buttons{background:#183452;border-color:#43627d}.wb-stage-bar .learning-stage-btn{padding:7px 15px;color:#dbe7f0;font-size:12px}.wb-stage-bar .learning-stage-btn:hover{background:#315372;color:#fff}.wb-stage-bar .learning-stage-btn.active{background:#c9982f;color:#fff;box-shadow:0 2px 0 #8e691f}
.stage-hidden{display:none!important}.senior-essay-workspace{max-width:1240px;margin:0 auto;padding:0 4px 28px}.senior-essay-intro{display:flex;justify-content:space-between;align-items:flex-start;gap:22px;margin-bottom:16px;padding:18px 20px;border:1px solid #cbd9e5;border-left:4px solid #b8872d;background:linear-gradient(120deg,#fffdf8,#f4f8fb);box-shadow:0 3px 0 #dce5ec}.senior-essay-kicker{font-size:10px;font-weight:800;letter-spacing:1.4px;color:#a36c11}.senior-essay-intro h3{margin:5px 0 5px;color:#203b58;font-size:20px}.senior-essay-intro p{margin:0;color:#60738a;font-size:12px;line-height:1.65}.senior-rubric-chips{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:6px;max-width:330px}.senior-rubric-chips span{padding:6px 9px;border:1px solid #d4c18f;border-radius:3px;background:#fffaf0;color:#86621d;font-size:11px;white-space:nowrap}.gaokao-task-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.gaokao-task-card{padding:18px 18px 14px;border:1px solid #cbd9e5;border-top:3px solid #b8872d;background:#fff;box-shadow:0 3px 0 #dce5ec}.gaokao-task-card.continuation-task{border-top-color:#3c7899}.gaokao-task-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.gaokao-task-heading>div{display:flex;align-items:center;gap:10px}.gaokao-task-index{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:3px;background:#213b58;color:#f6d487;font:700 12px/1 "Segoe UI",sans-serif}.continuation-task .gaokao-task-index{background:#376f8d;color:#fff}.gaokao-task-heading h3{margin:0;color:#203b58;font-size:16px}.gaokao-task-score{padding:5px 8px;border:1px solid #dfc98f;background:#fffaf0;color:#8a641b;font-size:11px;font-weight:700}.continuation-task .gaokao-task-score{border-color:#b9d5e4;background:#f1f8fb;color:#2f6884}.gaokao-task-desc{min-height:38px;margin:9px 0 14px;color:#718298;font-size:11px;line-height:1.65}.gaokao-field-label{display:block;margin:12px 0 6px;color:#41566e;font-size:11px;font-weight:700}.gaokao-prompt-input,.gaokao-essay-input{width:100%;box-sizing:border-box;resize:vertical;border:1px solid #c7d5e1;border-radius:3px;background:#f8fafc;color:#203247;font:13px/1.7 "Microsoft YaHei UI",sans-serif;padding:10px 12px}.gaokao-prompt-input{min-height:116px}.gaokao-essay-input{min-height:190px;background:#fff;font:15px/1.9 Cambria,Georgia,serif}.gaokao-prompt-input:focus,.gaokao-essay-input:focus{outline:none;border-color:#b8872d;box-shadow:0 0 0 2px rgba(184,135,45,.13)}.gaokao-word-count{text-align:right;margin-top:5px;color:#8291a3;font-size:11px}.gaokao-submit-row{display:flex;align-items:center;justify-content:center;gap:12px;flex-wrap:wrap;margin-top:18px;padding-top:16px;border-top:1px solid #cbd9e5}.gaokao-submit-row>span{color:#8291a3;font-size:11px}.gaokao-submit-btn{margin:0}.gaokao-task-submit-btn{display:block;width:100%;margin-top:12px;padding:9px 12px;border:1px solid #b8872d;border-radius:4px;background:#fffaf0;color:#8a641b;font-size:12px;font-weight:700;cursor:pointer;transition:all .18s}.gaokao-task-submit-btn:hover{background:#fff1c9;transform:translateY(-1px)}.continuation-task .gaokao-task-submit-btn{border-color:#3c7899;background:#f1f8fb;color:#2f6884}.continuation-task .gaokao-task-submit-btn:hover{background:#dceff6}.gaokao-score-summary{display:grid;grid-template-columns:190px repeat(2,minmax(0,1fr));gap:8px;margin-bottom:14px}.gaokao-total-card,.gaokao-score-item{padding:14px 12px;border:1px solid #ccd9e4;background:#fff;text-align:center}.gaokao-total-card{background:linear-gradient(145deg,#203b58,#315f86);color:#fff}.gaokao-total-num{font-size:34px;font-weight:800;line-height:1}.gaokao-total-label{margin-top:5px;color:#d6e3ee;font-size:11px}.gaokao-total-note{display:block;margin-top:7px;color:#d6e3ee;font-size:10px;line-height:1.45}.gaokao-score-item strong{display:block;color:#203b58;font-size:25px}.gaokao-score-item span{color:#718298;font-size:11px}.gaokao-pending-note{margin:0 0 12px;padding:10px 12px;border:1px solid #ead6a6;background:#fffaf0;color:#86621d;font-size:12px;line-height:1.55}.gaokao-task-result{margin-top:12px;padding:14px 16px;border:1px solid #cbd9e5;background:#fff}.gaokao-task-result h4{display:flex;justify-content:space-between;gap:10px;margin:0 0 8px;color:#203b58;font-size:15px}.gaokao-task-result .gaokao-task-result-score{color:#9a6b17}.gaokao-result-note{margin:0 0 9px;color:#60738a;font-size:12px;line-height:1.6}.gaokao-coverage{margin-top:10px;padding:10px 12px;border-left:3px solid #6b9a75;background:#f3faf4;color:#46634d;font-size:12px;line-height:1.7}.gaokao-coverage.missing{border-left-color:#c47a63;background:#fff6f3;color:#8a4b3e}.gaokao-task-result .essay-breakdown{margin:10px 0}.gaokao-task-result .essay-bd-item{padding:10px 6px}.gaokao-task-result .essay-errors-section,.gaokao-task-result .essay-suggestions{margin-top:10px}
/* 上传弹窗：与深色工作台保持一致，但将文件选择区做成清晰的任务卡 */
#uploadPanel.upload-panel{left:50%!important;right:auto!important;top:50%!important;width:min(640px,calc(100% - 32px))!important;height:auto!important;max-height:min(88vh,760px)!important;transform:translate(-50%,-50%)!important;border-radius:4px!important;overflow:hidden!important;background:#f4f7fa!important;box-shadow:0 18px 50px rgba(4,16,30,.35)!important}.upload-panel-header{position:relative!important;border-radius:0!important;padding-right:270px!important}.upload-panel-header h2{margin-right:4px}.upload-panel-body{padding:20px 22px 18px;background:#f4f7fa;max-height:calc(88vh - 86px);overflow-y:auto}.upload-panel-intro{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:0 0 14px;color:#60738a;font-size:11px}.upload-panel-intro strong{color:#203b58;font-size:13px}.upload-panel-kicker{padding:4px 7px;border-radius:3px;background:#e8eef4;color:#315f86;font-weight:700}.upload-drop-zone{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:220px;padding:26px 20px;border:1px dashed #8eabc1;border-radius:4px;background:linear-gradient(145deg,#ffffff,#eef5f9);cursor:pointer;transition:all .18s}.upload-drop-zone:hover{border-color:#b8872d;background:#fffaf0;box-shadow:0 5px 16px rgba(34,64,91,.08)}.upload-drop-icon{display:flex;align-items:center;justify-content:center;width:58px;height:58px;margin-bottom:12px;border:1px solid #d6c58f;border-radius:50%;background:#fffaf0;font-size:29px}.upload-drop-title{color:#203247;font-size:15px;font-weight:700}.upload-drop-hint{margin-top:7px;color:#8291a3;font-size:11px}.upload-browse-hint{margin-top:16px;padding:7px 14px;border:1px solid #b8872d;border-radius:3px;color:#8b641a;background:#fff;font-size:11px;font-weight:700}.upload-status{margin-top:14px;padding:10px 13px;border:1px solid #cbd9e5;border-radius:3px;text-align:center;font-size:12px;line-height:1.5}.upload-preview{margin-top:14px;max-height:34vh;overflow-y:auto;padding:6px;background:#fff;border:1px solid #d7e0e8}.upload-progress{margin-top:14px;text-align:center}.upload-progress-text{margin-bottom:7px;color:#60738a;font-size:12px}.upload-progress-track{position:relative;height:18px;overflow:hidden;border-radius:3px;background:#dfe7ee}.upload-progress-bar{height:100%;border-radius:inherit;background:linear-gradient(90deg,#b8872d,#d6a94e);transition:width .3s}.upload-progress-pct{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.35);font-size:10px;font-weight:700}.upload-panel-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:16px;padding-top:14px;border-top:1px solid #d5dfe8}.upload-footer-note{color:#8291a3;font-size:10px}.upload-actions{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}.upload-primary-btn,.upload-secondary-btn{padding:8px 12px;border-radius:3px;font-size:12px;font-weight:700;cursor:pointer}.upload-primary-btn{border:1px solid #b8872d;background:#b8872d;color:#fff}.upload-primary-btn:hover{background:#966f25}.upload-secondary-btn{border:1px solid #aebdca;background:#fff;color:#50657a}.upload-secondary-btn:hover{border-color:#315f86;color:#315f86}
@media(max-width:760px){.senior-essay-intro{display:block}.senior-rubric-chips{justify-content:flex-start;margin-top:13px}.gaokao-task-grid{grid-template-columns:1fr}.gaokao-score-summary{grid-template-columns:1fr 1fr}.gaokao-total-card{grid-column:1/-1}.upload-panel-header{padding-right:120px!important}.upload-panel-header .wb-header p{display:none}.upload-panel-footer{align-items:flex-start;flex-direction:column}.upload-actions{justify-content:flex-start}.learning-stage-row{max-width:none}.essay-stage-switcher{margin-right:40px}}
@media(max-width:480px){.learning-stage-copy{display:block}.learning-stage-hint{display:block;margin-top:3px}.learning-stage-btn{padding:5px 8px}.senior-essay-workspace{padding-left:0;padding-right:0}.senior-essay-intro{padding:14px}.senior-essay-intro h3{font-size:17px}.gaokao-task-card{padding:14px 12px}.gaokao-score-summary{grid-template-columns:1fr}.gaokao-total-card{grid-column:auto}.upload-panel-body{padding:15px 14px}.upload-drop-zone{min-height:180px;padding:22px 14px}.upload-drop-title{font-size:13px}.upload-panel-header{padding-right:100px!important}.upload-back-btn{display:none!important}}

/* ===== BOTTOM PANEL ===== */
.bottom-panel{position:fixed;bottom:0;left:0;right:0;z-index:9000;pointer-events:none}
.bottom-bar{display:flex;gap:0;background:linear-gradient(180deg,#fffefb,#faf6ee);border-top:2px solid var(--card-border);box-shadow:0 -4px 24px rgba(20,14,6,.10),inset 0 1px 0 rgba(220,190,130,.06);pointer-events:auto;height:44px;align-items:stretch;padding:0 20px;justify-content:center;position:relative}
.bottom-tabs-wrap{display:flex;align-items:stretch;gap:0}
.bottom-tab{flex:0 1 auto;padding:0 20px;border:none;background:transparent;color:var(--slate-light);font-size:13px;font-weight:500;cursor:pointer;transition:all .2s;border-bottom:3px solid transparent;white-space:nowrap;display:inline-flex;align-items:center;gap:4px;letter-spacing:.3px}
.bottom-tab:hover{color:var(--ink);background:rgba(200,180,140,.06)}
.bottom-tab.active{color:var(--gold-dark);border-bottom-color:var(--gold);font-weight:700}
.bottom-tab .btm-count{display:inline-block;background:var(--paper);color:var(--slate);font-size:10px;font-weight:700;padding:1px 7px;border-radius:10px;min-width:20px;text-align:center}
.bottom-tab.active .btm-count{background:rgba(200,150,62,.15);color:var(--gold-dark)}
.bottom-close-btn{padding:6px 16px;border:none;background:rgba(180,80,70,.08);color:var(--rose);font-size:12px;font-weight:600;cursor:pointer;transition:all .2s;white-space:nowrap;border-radius:6px;animation:closePulse 1.2s ease-in-out infinite;margin:0 12px}
.bottom-close-btn:hover{background:rgba(180,80,70,.2);color:#7a2828;animation:none}
@keyframes closePulse{
  0%,100%{box-shadow:0 0 0 0 rgba(200,80,70,.4)}
  50%{box-shadow:0 0 0 8px rgba(200,80,70,0)}
}
/* 单词本/短语本 tab 闪动 */
.bottom-tab.btm-glow{animation:tabGlow 2s ease-in-out infinite}
.bottom-tab.btm-glow:hover{animation:none}
@keyframes tabGlow{
  0%,100%{background:transparent}
  50%{background:rgba(200,180,140,.12)}
}
.bottom-content{display:none;background:var(--card);border-top:1px solid var(--card-border);max-height:40vh;overflow-y:auto;pointer-events:auto;box-shadow:0 -8px 36px rgba(20,14,6,.08),inset 0 1px 0 rgba(220,190,130,.04)}
.bottom-content.open{display:block}
.bottom-content .wb-empty{padding:32px 20px}
.bottom-content .wb-item{display:flex;align-items:center;justify-content:space-between;padding:10px 20px;border-bottom:1px solid var(--paper);transition:background .15s}
.bottom-content .wb-item:hover{background:var(--cream)}
.bottom-content .wb-item .wb-word-info{flex:1;min-width:0}
.bottom-content .wb-item .wb-word-en{font-family:Georgia,serif;font-size:14px;font-weight:700;color:var(--ink)}
.bottom-content .wb-item .wb-word-zh{font-size:11px;color:var(--slate-light);margin-top:1px}
.bottom-content .wb-item .wb-word-actions{display:flex;gap:4px;flex-shrink:0}
.bottom-content .wb-item .wb-word-actions button{padding:4px 8px;border-radius:4px;border:1px solid var(--card-border);background:var(--cream);font-size:10px;cursor:pointer;color:var(--slate);transition:all .15s}
.bottom-content .wb-item .wb-word-actions button:hover{background:var(--paper);color:var(--ink);border-color:var(--slate-light)}

@media(max-width:640px){.essay-breakdown{grid-template-columns:1fr}}
@media(max-width:640px){.bottom-tab{padding:0 10px;font-size:11px}.bottom-bar{padding:0 8px}.bottom-close-btn{padding:4px 10px;font-size:10px;margin:0 6px}}

/* ===== 三大学习模块卡片 ===== */
.module-cards{display:grid;grid-template-columns:repeat(5,1fr);gap:14px;margin-bottom:20px}
.module-card{background:var(--card);border-radius:var(--radius-lg);padding:22px 18px;box-shadow:var(--shadow-md);cursor:pointer;transition:var(--transition);border:1px solid rgba(200,170,110,.10);position:relative;overflow:hidden;user-select:none}
.module-card::before{content:'';position:absolute;top:0;left:0;width:100%;height:4px}
.module-card.card-words::before{background:linear-gradient(90deg,#5c8a67,#7aac82)}
.module-card.card-phrases::before{background:linear-gradient(90deg,#6366f1,#818cf8)}
.module-card.card-essay::before{background:linear-gradient(90deg,#f59e0b,#f97316)}
.module-card.card-paper::before{background:linear-gradient(90deg,#06b6d4,#0891b2)}
.module-card.card-daily::before{background:linear-gradient(90deg,#0d9488,#14b8a6)}
.module-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg);border-color:rgba(200,170,110,.2)}
.module-card:active{transform:translateY(-2px)}
.module-card-icon{font-size:34px;margin-bottom:8px;line-height:1}
.module-card-title{font-size:17px;font-weight:700;color:var(--ink);margin-bottom:4px;letter-spacing:.5px}
.module-card-desc{font-size:11px;color:var(--slate-light);margin-bottom:10px;line-height:1.5}
.module-card-tags{display:flex;flex-wrap:wrap;gap:4px}
.module-tag{display:inline-block;padding:2px 8px;border-radius:10px;font-size:9.5px;font-weight:600;background:var(--cream);color:var(--slate);border:1px solid var(--card-border);white-space:nowrap}
.card-words .module-tag{background:#ecfdf5;color:#065f46;border-color:#a7f3d0}
.card-phrases .module-tag{background:#eef2ff;color:#3730a3;border-color:#c7d2fe}
.card-essay .module-tag{background:#fffbeb;color:#92400e;border-color:#fde68a}

/* ===== 新模块全屏面板 ===== */
.module-overlay-bg{position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(16,12,8,.55);z-index:9995;display:none;backdrop-filter:blur(3px)}
.module-overlay-bg.open{display:block}
.module-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:var(--card);z-index:9996;overflow-y:auto;display:none}
.module-overlay.open{display:block}
.module-overlay-header{padding:20px 24px;position:sticky;top:0;z-index:1;box-shadow:0 2px 12px rgba(0,0,0,.1);display:flex;align-items:center;gap:12px}
.module-overlay-header.words-hdr{background:linear-gradient(135deg,#1e2a24,#2d4a32)}
.module-overlay-header.phrases-hdr{background:linear-gradient(135deg,#1e1e3a,#3730a3)}
.module-overlay-header.essay-hdr{background:linear-gradient(135deg,#3a2418,#78350f)}
.module-overlay-header h2{font-size:20px;color:#e8dcc8;margin:0;flex:1;letter-spacing:1px}
.module-overlay-close{background:#fff;border:none;color:#333;width:34px;height:34px;border-radius:50%;font-size:16px;cursor:pointer;line-height:34px;text-align:center;font-weight:700;box-shadow:0 2px 10px rgba(0,0,0,.15);transition:all .2s;padding:0}
.module-overlay-close:hover{background:#e53e3e;color:#fff;transform:scale(1.08)}
.module-overlay-body{padding:24px;max-width:560px;margin:0 auto}
.module-feature-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.module-feature-btn{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:24px 12px;background:var(--cream);border:1.5px solid var(--card-border);border-radius:var(--radius-md);cursor:pointer;transition:var(--transition);text-align:center;min-height:100px}
.module-feature-btn:hover{transform:translateY(-3px);box-shadow:var(--shadow-md);border-color:var(--gold)}
.module-feature-btn:active{transform:translateY(-1px)}
.module-feature-btn .f-icon{font-size:28px;margin-bottom:8px;line-height:1}
.module-feature-btn .f-label{font-size:14px;font-weight:700;color:var(--ink);letter-spacing:.3px}
.module-feature-btn .f-desc{font-size:10.5px;color:var(--slate-light);margin-top:3px}
.module-feature-btn.words-btn{border-left:3px solid #5c8a67}
.module-feature-btn.phrases-btn{border-left:3px solid #6366f1}
.module-feature-btn.essay-btn{border-left:3px solid #f59e0b}
.module-feature-btn.paper-btn{border-left:3px solid #2d4480}

/* ══ 题库录入面板 ══ */
.module-overlay-header.paper-hdr{background:linear-gradient(135deg,#1a2a40,#2d4480)}
.qb-entry-tab-row{display:flex;gap:6px;margin-bottom:16px;flex-wrap:wrap;border-bottom:1px solid var(--card-border);padding-bottom:12px}
.qb-entry-tab{flex:1;min-width:70px;padding:8px 6px;border-radius:8px;border:1px solid var(--card-border);background:var(--cream);color:var(--slate);font-weight:600;font-size:11px;cursor:pointer;text-align:center;transition:all .2s}
.qb-entry-tab:hover{background:var(--paper);border-color:var(--gold)}
.qb-entry-tab.active{background:linear-gradient(135deg,#2d4480,#4a6ab0);color:#fff;border-color:#2d4480;box-shadow:0 2px 8px rgba(45,68,128,.3)}
.qb-form-section{margin-bottom:16px}
.qb-form-section label{display:block;font-size:12px;font-weight:600;color:var(--ink);margin-bottom:4px}
.qb-form-section textarea,.qb-form-section input[type="text"],.qb-form-section select{width:100%;padding:10px 14px;border:2px solid var(--card-border);border-radius:8px;font-size:13px;background:var(--cream);box-sizing:border-box;font-family:inherit}
.qb-form-section textarea{min-height:80px;resize:vertical}
.qb-rich-input{width:100%;min-height:120px;max-height:400px;overflow-y:auto;padding:10px 14px;border:2px solid var(--card-border);border-radius:8px;font-size:13px;background:var(--cream);box-sizing:border-box;font-family:inherit;line-height:1.6;word-break:break-word}
.qb-rich-input:focus{border-color:var(--gold);outline:none;box-shadow:0 0 0 3px rgba(180,140,60,.1)}
.qb-rich-input:empty::before{content:attr(placeholder);color:#aab;pointer-events:none}
.qb-rich-input img{max-width:100%;height:auto;border-radius:4px;margin:4px 0}
.qb-rich-input table{border-collapse:collapse;width:100%;margin:4px 0}
.qb-rich-input td,.qb-rich-input th{border:1px solid #ccc;padding:4px 8px;font-size:12px}
.qb-form-section select{min-width:120px;cursor:pointer}
.qb-question-row{display:flex;gap:8px;align-items:flex-start;margin-bottom:8px;padding:10px 12px;background:var(--cream);border-radius:8px;border:1px solid var(--card-border);flex-wrap:wrap}
.qb-question-row .qb-qnum{font-weight:700;font-size:13px;color:var(--gold);min-width:28px;padding-top:8px;flex-shrink:0}
.qb-opt-row{display:flex;gap:6px;flex-wrap:wrap;width:100%}
.qb-opt-row input[type="text"]{flex:1;min-width:90px;padding:6px 10px;border:1px solid var(--card-border);border-radius:6px;font-size:12px;background:#fff}
.qb-add-btn{background:var(--cream);border:1.5px dashed var(--card-border);border-radius:8px;padding:10px 16px;cursor:pointer;font-size:12px;color:var(--slate-light);width:100%;text-align:center;transition:all .2s;font-family:inherit}
.qb-add-btn:hover{background:var(--paper);border-color:var(--gold);color:var(--gold)}
.qb-submit-btn{background:linear-gradient(135deg,#2d4480,#4a6ab0);color:#fff;border:none;border-radius:10px;padding:12px 28px;cursor:pointer;font-size:15px;font-weight:700;width:100%;transition:all .2s;font-family:inherit}
.qb-submit-btn:hover{transform:translateY(-2px);box-shadow:0 6px 24px rgba(45,68,128,.35)}
.qb-submit-btn:disabled{opacity:.5;cursor:not-allowed;transform:none}
.qb-remove-btn{background:#fed7d7;border:none;color:#c53030;border-radius:6px;padding:4px 10px;cursor:pointer;font-size:11px;font-weight:600}
.qb-status{text-align:center;font-size:13px;font-weight:600;margin-top:12px}
.qb-upload-area{display:flex;align-items:center;gap:10px;padding:10px 14px;margin-bottom:12px;background:linear-gradient(135deg,#f0f4ff,#e8ecf8);border:1.5px dashed #93a3c8;border-radius:10px;cursor:pointer;transition:all .2s}
.qb-upload-area:hover{border-color:#2d4480;background:linear-gradient(135deg,#e8ecf8,#dbe1f2)}
.qb-upload-area .qb-upload-icon{font-size:22px;flex-shrink:0}
.qb-upload-area .qb-upload-text{font-size:12px;color:#4a5a80;flex:1}
.qb-upload-area .qb-upload-hint{font-size:10px;color:#8899bb}
.qb-parsed-bar{display:flex;align-items:center;gap:6px;flex-wrap:wrap;padding:8px 12px;margin-bottom:10px;background:#f0fdf4;border:1px solid #86efac;border-radius:8px;font-size:11px;color:#166534}
.qb-parsed-bar .qb-parsed-type{background:#dcfce7;padding:2px 8px;border-radius:10px;font-weight:600;cursor:pointer;transition:all .15s}
.qb-parsed-bar .qb-parsed-type:hover{background:#bbf7d0;transform:translateY(-1px)}

/* ══ 记忆按钮发光 ══ */
@keyframes wbGlow{0%,100%{box-shadow:0 0 4px rgba(255,215,0,.6),0 0 8px rgba(255,180,0,.3)}50%{box-shadow:0 0 14px rgba(255,215,0,.9),0 0 28px rgba(255,180,0,.6),0 0 42px rgba(255,215,0,.3)}}
.wb-memorize-btn{animation:wbGlow 2s ease-in-out infinite;font-size:18px;font-weight:900;letter-spacing:2px}

/* ══ 试卷样式 ══ */
.paper-sheet{background:#fff;padding:32px 40px;border-radius:4px;box-shadow:0 1px 6px rgba(0,0,0,.08);font-family:"Noto Serif SC","SimSun","KaiTi",serif;color:#1a1a1a;line-height:1.9;min-height:100%}
.paper-head{text-align:center;border-bottom:2px solid #1a1a1a;padding-bottom:10px;margin-bottom:16px}
.paper-title{font-size:20px;font-weight:700;letter-spacing:8px;margin-bottom:6px}
.paper-subtitle{font-size:13px;color:#555;margin-bottom:2px}
.paper-notice{font-size:11px;color:#888;margin-bottom:6px}
.paper-meta{font-size:14px;display:flex;justify-content:center;gap:40px;margin-bottom:4px}
.paper-meta span{min-width:110px}
.paper-date{font-size:11px;color:#aaa}
.paper-part-title{font-size:15px;font-weight:700;text-align:center;margin:18px 0 12px;padding:6px 0;border-top:1px solid #ddd;border-bottom:1px solid #ddd;letter-spacing:1px}
.paper-section-title{font-size:15px;font-weight:700;margin:16px 0 4px}
.paper-instruction{font-size:12px;color:#666;margin-bottom:8px;line-height:1.6}
.paper-rd-label{font-size:15px;font-weight:700;margin:10px 0 4px}
.paper-passage{font-size:13px;line-height:2;white-space:pre-wrap;margin-bottom:10px;text-indent:2em}
.paper-passage table,.paper-trans-show table{border-collapse:collapse;max-width:100%;margin:6px auto;text-indent:0;white-space:normal;line-height:1.5}
.paper-passage th,.paper-passage td,.paper-trans-show th,.paper-trans-show td{border:1px solid #94a3b8;padding:4px 7px;vertical-align:top}
.paper-passage img,.paper-trans-show img{max-width:100%;height:auto}
.paper-trans-show{white-space:normal;text-indent:0}
.paper-options-box{border:1px solid #ccc;padding:10px 14px;margin-bottom:10px}
.paper-opt-line{font-size:13px;padding:2px 0;line-height:1.7}
.paper-q{margin-bottom:4px}
.paper-q-stem{font-size:13px;line-height:1.8}
.paper-q-opts{display:flex;flex-wrap:wrap;gap:6px 20px;margin:2px 0 0 20px}
.paper-opt{font-size:13px;white-space:nowrap}
.paper-hints{font-size:12px;padding:6px 12px;margin-bottom:8px;line-height:1.8}
.paper-hints-label{font-weight:600}
.paper-hint-item{font-family:"Consolas","Monaco",monospace;margin-right:8px}
.paper-writing-topic{font-size:14px;font-weight:700;margin-bottom:6px}
.paper-writing-req{font-size:12px;color:#555;margin-bottom:4px;white-space:pre-wrap}
.paper-writing-info{font-size:11px;color:#999;margin-bottom:8px}
.paper-writing-lines{margin-top:6px}
.paper-line{border-bottom:1px solid #ddd;height:28px}
.paper-qnum{font-weight:700;font-size:14px;color:#1a1a1a;margin-right:4px}
.paper-stem{font-size:13px;line-height:1.8}
.paper-opts{display:flex;flex-wrap:wrap;gap:6px 20px;margin:2px 0 0 20px}
.paper-opt{display:flex;align-items:center;gap:4px;font-size:13px;cursor:pointer;padding:2px 8px;border-radius:4px;white-space:nowrap}
.paper-opt:hover{background:#f0f0f0}
.paper-opt input[type="radio"]{margin:0;cursor:pointer}
.paper-blank{width:120px;padding:4px 8px;border:none;border-bottom:2px solid #333;font-size:13px;background:transparent;outline:none;font-family:inherit}
.paper-blank:focus{border-bottom-color:#2d4480}
.paper-hint{font-size:11px;color:#888;margin-left:4px}
.paper-answer-show{margin-top:4px;padding:4px 8px;background:#f0fdf4;border-left:3px solid #22c55e;border-radius:2px;font-size:12px}
.paper-answer-sheet{margin-top:24px;padding:16px;background:#faf7f0;border-radius:8px;border:1px solid #e8e4d8}
.paper-answer-sheet h4{margin:0 0 10px;font-size:14px;color:#5c4a2e}
.paper-answer-grid{display:flex;flex-wrap:wrap;gap:4px}
.paper-as-item{display:flex;align-items:center;gap:4px;background:#fff;border-radius:4px;padding:4px 8px;min-width:50px;font-size:12px;border:1px solid #e8e4d8}
.paper-as-num{font-weight:700;color:#666}
.paper-as-val{color:#2d4480;font-weight:600}
@media print{body>*{display:none!important}#mBg{display:none!important}#mPanel,#mPanel *{display:block!important;visibility:visible!important}#mPanel{position:static!important;width:100%!important;height:auto!important;overflow:visible!important;background:#fff!important}.module-overlay-header{display:none!important}.module-overlay-body{padding:0!important;max-width:none!important;background:#fff!important}.paper-sheet{box-shadow:none!important;padding:10px!important}.paper-answer-sheet{display:none!important}button{display:none!important}}
.paper-answer-sheet-wrap{position:sticky;bottom:0;z-index:10;margin-top:18px}
.paper-answer-toggle{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:10px 20px;background:#1e293b;color:#fbbf24;border:none;border-radius:8px 8px 0 0;font-size:15px;font-weight:700;cursor:pointer;letter-spacing:1px;box-shadow:0 -4px 20px rgba(0,0,0,.15);transition:background .2s}
.paper-answer-toggle:hover{background:#334155}
.paper-answer-toggle .toggle-arrow{font-size:12px;transition:transform .3s}
.paper-answer-sheet{padding:16px 20px;background:#fdfcf8;border:1px solid #e0dcc8;border-top:none;border-radius:0 0 8px 8px;box-shadow:0 4px 20px rgba(0,0,0,.04)}
.paper-answer-sheet.collapsed{display:none}
.paper-answer-grid{display:flex;flex-wrap:wrap;gap:6px 16px;max-height:180px;overflow-y:auto}
.paper-answer-item{display:flex;align-items:center;gap:4px;font-size:12px}
.paper-answer-num{font-weight:600;min-width:22px;color:#555}
.paper-radio{display:flex;align-items:center;gap:1px;cursor:pointer;font-size:11px;margin-right:2px}
.paper-radio input[type=radio]{margin:0;cursor:pointer}
.paper-input{border:1px solid #d0ccc0;border-radius:3px;padding:2px 6px;font-size:11px;font-family:inherit;outline:none}
.paper-input:focus{border-color:#06b6d4}
.paper-actions{display:flex;gap:10px;justify-content:center;margin-top:14px;padding-top:10px;border-top:1px solid var(--card-border)}
.module-feature-btn.fw{grid-column:1/-1;min-height:70px;flex-direction:row;gap:12px;padding:18px 20px}
.module-feature-btn.fw .f-icon{font-size:24px;margin-bottom:0}
@media(max-width:1100px){.module-cards{grid-template-columns:repeat(3,1fr);gap:12px}}
@media(max-width:700px){.module-cards{grid-template-columns:1fr 1fr;gap:10px}}
@media(max-width:600px){.module-cards{grid-template-columns:1fr;gap:10px}.module-feature-grid{grid-template-columns:1fr}.module-overlay-body{padding:16px}}
    /* ===== 错题本 ===== */
    .wrongbook-item{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;margin:6px 0;background:var(--card);border:1px solid var(--card-border);border-radius:8px;gap:10px;flex-wrap:wrap}
    .wrongbook-item .wb-wrong-count{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:22px;background:#e53e3e;color:#fff;border-radius:11px;font-size:11px;font-weight:700;padding:0 6px;margin-right:6px}
    .wrongbook-item .wb-wrong-en{font-family:Georgia,serif;font-size:15px;font-weight:600;color:var(--ink);flex:1;min-width:100px}
    .wrongbook-item .wb-wrong-zh{font-size:13px;color:var(--slate-light);flex:1;min-width:80px}
    .wrongbook-item .wb-wrong-pos{font-size:11px;color:var(--gold);margin-right:6px}
    .wrongbook-actions{text-align:center;margin-top:16px;display:flex;gap:10px;justify-content:center;flex-wrap:wrap}
    .wrongbook-actions button{padding:8px 18px;border:none;border-radius:8px;cursor:pointer;font-weight:600;font-size:13px}
    .btn-wrong-retry{background:linear-gradient(135deg,#e53e3e,#f56565);color:#fff}
    .btn-wrong-retry:hover{transform:translateY(-1px);box-shadow:0 4px 12px rgba(229,62,62,.3)}
    .btn-wrong-clear{background:var(--card);color:var(--slate-light);border:1px solid var(--card-border)!important}
    .btn-wrong-clear:hover{background:#fef2f2;color:#c53030}
    .wrong-quiz-word{font-family:Georgia,serif;font-size:22px;font-weight:700;color:var(--ink);text-align:center;margin:16px 0}
    .wrong-quiz-badge{display:inline-block;background:#fef2f2;color:#c53030;padding:2px 8px;border-radius:8px;font-size:11px;font-weight:600;margin-left:6px}

    /* ===== 每日任务 ===== */
    .daily-tasks{display:none;margin:0 0 4px;padding:12px 14px;background:var(--card);border:1px solid var(--card-border);border-radius:4px}
    .daily-tasks.show{display:block}
    .daily-tasks .dt-title{font-size:12px;font-weight:700;color:var(--ink);margin-bottom:6px;text-align:center}
    .daily-tasks .dt-row{display:flex;gap:8px;align-items:center;margin:3px 0}
    .daily-tasks .dt-label{font-size:11px;color:var(--slate-light);min-width:55px;text-align:right}
    .daily-tasks .dt-bar-wrap{flex:1;height:8px;background:#e5e0d5;border-radius:4px;overflow:hidden}
    .daily-tasks .dt-bar-fill{height:100%;border-radius:4px;transition:width .4s;background:linear-gradient(90deg,#5c8a67,#7dab83)}
    .daily-tasks .dt-bar-fill.dt-orange{background:linear-gradient(90deg,#f59e0b,#f97316)}
    .daily-tasks .dt-bar-fill.dt-purple{background:linear-gradient(90deg,#6366f1,#8b5cf6)}
    .daily-tasks .dt-check{font-size:13px;min-width:18px;text-align:center}
    .daily-tasks .dt-target-btn{background:none;border:1px solid var(--card-border);border-radius:6px;cursor:pointer;font-size:12px;padding:1px 5px;color:var(--slate-light);transition:all .15s;line-height:1;flex-shrink:0}
    .daily-tasks .dt-target-btn:hover{background:var(--cream);color:var(--ink);border-color:var(--slate-light)}
    .daily-tasks .dt-reward{text-align:center;font-size:11px;color:var(--gold);font-weight:600;margin-top:4px;display:none}
    .daily-tasks .dt-reward.show{display:block}
    .dt-summary{font-size:10px;font-weight:500;color:var(--slate-light);float:right}
    .dt-list{display:grid;gap:5px}
    .dt-item{display:grid;grid-template-columns:18px 1fr auto;gap:7px;align-items:start;padding:7px 0;border-top:1px solid var(--card-border);cursor:pointer}
    .dt-item:first-child{border-top:0}
    .dt-item-status{width:16px;height:16px;border:1px solid var(--slate-light);display:grid;place-items:center;font-size:10px;color:#fff;margin-top:1px}
    .dt-item.done .dt-item-status{background:var(--wb-green);border-color:var(--wb-green)}
    .dt-item-title{display:block;font-size:11px;font-weight:700;color:var(--ink);line-height:1.35}
    .dt-item-reason{display:block;font-size:10px;color:var(--slate-light);line-height:1.4;margin-top:2px}
    .dt-item-meta{font-size:10px;color:var(--slate-light);white-space:nowrap}
    .dt-loading,.dt-error{font-size:11px;color:var(--slate-light);padding:7px 0}

    /* ===== 学习周报 ===== */
    .weekly-modal-bg{display:none;position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.55);z-index:1000}
    .weekly-modal-bg.show{display:block}
    .weekly-modal{display:none;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);z-index:1001;background:var(--card);border-radius:16px;width:440px;max-width:90vw;max-height:85vh;overflow-y:auto;box-shadow:0 20px 60px rgba(0,0,0,.25);padding:0}
    .weekly-modal.show{display:block;animation:fadeInUp .4s ease-out}
    .weekly-header{background:linear-gradient(135deg,#5c8a67,#7dab83);color:#fff;padding:20px 24px;border-radius:16px 16px 0 0;text-align:center}
    .weekly-header h2{font-size:20px;margin:0 0 4px;font-weight:700}
    .weekly-header p{font-size:12px;margin:0;opacity:.85}
    .weekly-body{padding:20px 24px}
    .weekly-stat-row{display:flex;justify-content:space-around;margin:16px 0;flex-wrap:wrap;gap:10px}
    .weekly-stat-item{text-align:center;min-width:70px}
    .weekly-stat-num{font-size:28px;font-weight:700;color:var(--ink)}
    .weekly-stat-label{font-size:11px;color:var(--slate-light);margin-top:2px}
    .weekly-divider{border:none;border-top:1px solid var(--card-border);margin:16px 0}
    .weekly-tip{font-size:13px;color:var(--ink);text-align:center;line-height:1.6;padding:8px 12px;background:var(--paper);border-radius:8px}
    .weekly-close-btn{display:block;margin:16px auto;padding:10px 32px;background:var(--gold);color:#fff;border:none;border-radius:8px;cursor:pointer;font-weight:600;font-size:14px}
    .weekly-close-btn:hover{transform:translateY(-1px);box-shadow:0 4px 12px rgba(200,160,80,.3)}
    /* ===== 推送消息 ===== */
    .push-msg{display:none;align-items:center;gap:10px;margin:4px 8px;padding:10px 16px;background:linear-gradient(135deg,#ede9fe,#f5f3ff);border:1px solid #c4b5fd;border-radius:10px;animation:pushSlideIn .35s ease-out}
    .push-msg.show{display:flex}
    .push-msg-icon{font-size:18px;flex-shrink:0}
    .push-msg-text{flex:1;font-size:13px;color:#5b21b6;font-weight:600;line-height:1.5}
    .push-msg-text img{max-width:100%;max-height:200px;border-radius:6px;margin:4px 0;display:block}
    .push-msg-text a{color:#6366f1;text-decoration:underline}
    .push-msg-dots{display:flex;gap:4px;justify-content:center;margin:4px 8px 0}
    .push-msg-dot{width:6px;height:6px;border-radius:50%;background:#d0c8e0;transition:background .3s}
    .push-msg-dot.active{background:#8b5cf6}
    .push-msg-close{background:none;border:none;color:#a78bfa;cursor:pointer;font-size:16px;padding:0 4px;flex-shrink:0}
    .push-msg-close:hover{color:#7c3aed}
    @keyframes pushSlideIn{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}

    /* ===== 留言反馈 ===== */
    .feedback-float-btn{position:fixed;bottom:100px;right:20px;z-index:999;background:linear-gradient(135deg,#6366f1,#8b5cf6);color:#fff;border:none;border-radius:50px;padding:10px 18px;font-size:14px;font-weight:600;cursor:pointer;box-shadow:0 4px 16px rgba(99,102,241,.35);transition:all .25s;display:flex;align-items:center;gap:6px;letter-spacing:.5px;white-space:nowrap}
    .feedback-float-btn:hover{transform:translateY(-3px);box-shadow:0 6px 24px rgba(99,102,241,.45);background:linear-gradient(135deg,#4f46e5,#7c3aed)}
    .feedback-float-btn.glowing{animation:fbGlow 1.5s ease-in-out infinite;background:linear-gradient(135deg,#f59e0b,#f97316);box-shadow:0 0 20px rgba(245,158,11,.6),0 0 40px rgba(245,158,11,.3)}
    .feedback-float-btn .fb-badge{display:none;position:absolute;top:-8px;right:-8px;background:#e53e3e;color:#fff;font-size:10px;font-weight:700;padding:2px 7px;border-radius:10px;white-space:nowrap;box-shadow:0 2px 6px rgba(229,62,62,.4)}
    .feedback-float-btn.glowing .fb-badge{display:block;animation:fbBadgePulse .8s ease-in-out infinite}
    @keyframes fbGlow{0%,100%{box-shadow:0 0 20px rgba(245,158,11,.6),0 0 40px rgba(245,158,11,.3)}50%{box-shadow:0 0 35px rgba(245,158,11,.9),0 0 70px rgba(245,158,11,.6)}}
    @keyframes fbBadgePulse{0%,100%{transform:scale(1)}50%{transform:scale(1.15)}}
    .feedback-modal-bg{display:none;position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.55);z-index:2000}
    .feedback-modal-bg.show{display:block}
    .feedback-modal{display:none;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);z-index:2001;background:var(--card);border-radius:16px;width:500px;max-width:94vw;max-height:88vh;overflow-y:auto;box-shadow:0 20px 60px rgba(0,0,0,.25);padding:0}
    .feedback-modal.show{display:block;animation:fadeInUp .4s ease-out}
    .feedback-modal-header{background:linear-gradient(135deg,#6366f1,#8b5cf6);color:#fff;padding:16px 20px;border-radius:16px 16px 0 0;display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:2}
    .feedback-modal-header h3{font-size:17px;margin:0;font-weight:700}
    .feedback-modal-close{background:rgba(255,255,255,.2);border:none;color:#fff;width:28px;height:28px;border-radius:50%;font-size:14px;cursor:pointer;line-height:28px;text-align:center;transition:background .2s;padding:0}
    .feedback-modal-close:hover{background:rgba(255,255,255,.35)}
    .feedback-modal-body{padding:18px 20px}
    .feedback-modal-body label{display:block;font-size:12px;font-weight:600;color:var(--slate);margin-bottom:4px;margin-top:10px}
    .feedback-modal-body label:first-child{margin-top:0}
    .feedback-modal-body input{width:100%;padding:9px 11px;border:1.5px solid var(--card-border);border-radius:8px;font-size:13px;font-family:inherit;box-sizing:border-box;background:var(--cream);color:var(--ink);transition:border-color .2s}
    .feedback-modal-body input:focus{outline:none;border-color:#6366f1;background:#fff}
    .feedback-editor-toolbar{display:flex;gap:2px;flex-wrap:wrap;padding:6px 8px;background:#f8f6f0;border:1.5px solid var(--card-border);border-bottom:none;border-radius:8px 8px 0 0}
    .feedback-editor-toolbar button{width:28px;height:26px;border:1px solid #d0c8b8;border-radius:4px;background:#fff;cursor:pointer;font-size:12px;display:flex;align-items:center;justify-content:center;color:var(--ink);transition:all .15s;padding:0}
    .feedback-editor-toolbar button:hover{background:#eef2ff;border-color:#6366f1;color:#6366f1}
    .feedback-editor-toolbar button.active{background:#6366f1;color:#fff;border-color:#6366f1}
    .feedback-editor-toolbar .fb-sep{width:1px;background:#d0c8b8;margin:0 3px;align-self:stretch}
    .feedback-editor-toolbar select{padding:0 4px;border:1px solid #d0c8b8;border-radius:4px;font-size:11px;background:#fff;cursor:pointer;height:26px;color:var(--ink)}
    .feedback-editor{width:100%;min-height:120px;max-height:250px;overflow-y:auto;padding:10px 12px;border:1.5px solid var(--card-border);border-top:none;border-radius:0 0 8px 8px;font-size:13px;font-family:inherit;box-sizing:border-box;background:#fff;color:var(--ink);line-height:1.6;outline:none;word-break:break-word}
    .feedback-editor:focus{border-color:#6366f1}
    .feedback-editor:empty::before{content:attr(placeholder);color:#b0a898;pointer-events:none}
    .feedback-submit-btn{display:block;width:100%;margin-top:12px;padding:10px;background:linear-gradient(135deg,#6366f1,#8b5cf6);color:#fff;border:none;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;letter-spacing:.5px;transition:all .2s}
    .feedback-submit-btn:hover{transform:translateY(-1px);box-shadow:0 4px 12px rgba(99,102,241,.3)}
    .feedback-submit-btn:disabled{opacity:.6;cursor:not-allowed;transform:none}
    .feedback-my-msgs{border-top:1px solid var(--card-border);padding-top:10px}
    .feedback-my-msgs .fm-title{font-size:14px;font-weight:700;color:var(--ink);margin-bottom:10px;display:flex;align-items:center;gap:6px}
    .feedback-msg-item{padding:10px 14px;background:var(--cream);border-radius:10px;margin-bottom:8px;font-size:12px;border:1px solid var(--card-border)}
    .feedback-msg-item.has-reply{border-left:3px solid #6366f1;background:#f8f7ff}
    .feedback-msg-item .fm-content{color:var(--ink);margin-bottom:4px;line-height:1.6}
    .feedback-msg-item .fm-meta{font-size:10px;color:var(--slate-light);margin-bottom:2px}
    .feedback-msg-item .fm-reply{margin-top:8px;padding:8px 12px;background:#eef2ff;border-radius:8px;font-size:12px;line-height:1.6;border:1px dashed #c7d2fe}
    .feedback-msg-item .fm-reply .fm-reply-label{font-size:11px;font-weight:700;color:#6366f1;margin-bottom:4px}
    .feedback-msg-item .fm-reply .fm-reply-time{font-size:10px;color:var(--slate-light);margin-top:4px}
    .feedback-msg-item .fm-reply.fm-reply-ai{background:#fffbeb;border-color:#fde68a}
    .feedback-msg-item .fm-reply.fm-reply-ai .fm-reply-label{color:#f59e0b}
    @keyframes fadeInUp{from{opacity:0;transform:translate(-50%,-48%)}to{opacity:1;transform:translate(-50%,-50%)}}

    /* ===== HOME REFRESH v11.6.42 ===== */
    :root{
        --home-navy:#121a2d;--home-navy-2:#1d2940;--home-gold:#b88718;
        --home-green:#39745a;--home-paper:#fffdf8;--home-line:#e5dfd2;
    }
    .header{padding:8px 0;background:linear-gradient(120deg,var(--home-navy),var(--home-navy-2))}
    .header-inner{max-width:1120px;justify-content:flex-start;gap:12px}
    .header-text{flex:0 0 auto}
    .header-text h1{font-size:19px;margin:0;display:flex;align-items:center;gap:7px;letter-spacing:.5px}
    .header-text .header-sub{display:none}
    .eric-logo{font-size:24px!important;margin-right:2px!important;animation:none!important}
    .header h1 #btnUpdate,.header h1 .license-badge{margin:0!important}
    .header h1 #btnUpdate{background:transparent!important;border:1px solid rgba(255,255,255,.2)!important}
    .header-meta{margin-left:auto;gap:7px}
    .header-tool{
        border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.07);
        color:#eee5cf;border-radius:16px;padding:5px 10px;font-size:11px;
        cursor:pointer;transition:.2s;font-family:inherit;
    }
    .header-tool:hover,.header-tool:focus-visible{background:rgba(255,255,255,.14);outline:2px solid #e5c46d;outline-offset:2px}
    .container{max-width:1120px;padding-top:18px}
    .input-card{padding:24px 28px 22px;margin-bottom:14px;border-radius:18px}
    .home-hero-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:14px;position:relative;z-index:2}
    .home-eyebrow{font-size:11px;font-weight:800;letter-spacing:1.6px;color:var(--home-gold);text-transform:uppercase}
    .home-hero-title{font-size:23px;line-height:1.25;margin-top:3px;color:var(--home-navy);font-weight:800}
    .home-hero-note{font-size:12px;color:#687386;margin-top:4px}
    .home-clear-icon{
        width:34px;height:34px;border-radius:50%;border:1px solid var(--home-line);
        background:#fff;color:#697386;cursor:pointer;font-size:16px;
    }
    .home-clear-icon:hover,.home-clear-icon:focus-visible{color:#9b3f3f;border-color:#c98282;outline:2px solid rgba(184,135,24,.28)}
    .input-card textarea{height:118px;border:1px solid #d9d2c2;background:#fffdf9;padding:17px 18px;font-size:17px;line-height:1.65}
    .example-row{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin-top:10px;position:relative;z-index:2}
    .example-label{font-size:11px;color:#7c8594;font-weight:700}
    .example-chip{
        border:1px solid #ddd6c7;background:#f8f5ed;color:#4d596b;border-radius:16px;
        padding:5px 10px;font-size:11px;cursor:pointer;font-family:inherit;transition:.18s;
    }
    .example-chip:hover,.example-chip:focus-visible{background:#fff;border-color:var(--home-gold);color:#76540b;outline:none}
    .btn-row{margin-top:13px;justify-content:space-between}
    .btn-group-main{width:100%;align-items:center;flex-wrap:wrap}
    .btn{min-height:42px}
    .btn-a{min-width:168px}
    .btn-zh2en,.btn-ai,.btn-tts{background:#fff!important;color:#364050!important;border:1px solid #dcd6ca!important;box-shadow:none!important}
    .btn-zh2en:hover,.btn-ai:hover,.btn-tts:hover{border-color:#9b8a67!important;background:#faf7ef!important;transform:translateY(-1px)}
    .btn-clear{display:none}
    .home-shortcut{margin-left:auto;font-size:11px;color:#8a93a2;white-space:nowrap}
    .home-resume{
        display:grid;grid-template-columns:minmax(0,1.5fr) minmax(240px,.7fr);gap:12px;
        margin:0 0 14px;
    }
    .resume-card,.today-card{background:rgba(255,253,248,.92);border:1px solid var(--home-line);border-radius:14px;padding:14px 16px;box-shadow:var(--shadow-sm)}
    .resume-label{font-size:11px;color:#7b8492;font-weight:700;margin-bottom:5px}
    .resume-title{font-size:14px;color:var(--home-navy);font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
    .resume-actions{display:flex;gap:8px;margin-top:9px}
    .resume-btn{border:0;border-radius:8px;padding:7px 12px;background:var(--home-navy-2);color:#fff;font-size:12px;font-weight:700;cursor:pointer}
    .resume-btn.secondary{background:#f2ede2;color:#4d596b}
    .today-card{display:flex;align-items:center;gap:12px}
    .today-ring{width:48px;height:48px;border-radius:50%;display:grid;place-items:center;background:#f2ede2;color:var(--home-green);font-weight:800;flex:0 0 auto}
    .today-copy strong{display:block;font-size:13px;color:var(--home-navy)}
    .today-copy span{font-size:11px;color:#7a8492}
    .loading{
        background:#fffdf8;border:1px solid var(--home-line);border-radius:14px;
        margin:0 0 14px;padding:20px!important;
    }
    .loading-progress{height:3px;background:#eee8dc;border-radius:4px;overflow:hidden;margin:13px auto 9px;max-width:420px}
    .loading-progress::after{content:'';display:block;width:36%;height:100%;background:var(--home-gold);animation:loadingSweep 1.25s ease-in-out infinite}
    @keyframes loadingSweep{from{transform:translateX(-110%)}to{transform:translateX(310%)}}
    .loading-cancel{border:0;background:transparent;color:#7b5b17;text-decoration:underline;cursor:pointer;font-size:12px;margin-top:5px}
    .error{border-radius:12px!important;padding:14px 16px!important;background:#fff7f5!important;border:1px solid #e8b4aa!important;color:#7f3026!important}
    .error strong{display:block;font-size:14px;margin-bottom:3px}
    .error span{font-size:12px;line-height:1.55}
    .error button{margin-top:9px;border:0;background:#8e443a;color:#fff;border-radius:7px;padding:7px 12px;cursor:pointer;font-weight:700}
    .daily-tasks{margin-bottom:12px;padding:10px 14px}
    .home-learning-grid{display:grid!important;grid-template-columns:3fr 2fr;gap:12px!important;margin-bottom:18px!important;align-items:stretch}
    .home-learning-group{border:1px solid var(--home-line)!important;border-radius:14px!important;padding:14px!important;background:rgba(255,253,248,.76)!important;animation:none!important}
    .home-learning-heading{font-size:12px;font-weight:800;color:var(--home-navy);margin-bottom:10px;letter-spacing:.3px}
    .home-learning-group .module-cards{gap:10px!important}
    .module-card{min-height:170px;padding:17px 15px;border-radius:13px;box-shadow:0 2px 8px rgba(20,23,42,.06)}
    .module-card:hover{transform:translateY(-2px);box-shadow:0 8px 22px rgba(20,23,42,.10)}
    .module-card:focus-visible{outline:3px solid rgba(184,135,24,.38);outline-offset:2px}
    .module-card-icon{font-size:25px;margin-bottom:9px}
    .module-card-title{font-size:15px}
    .module-card-desc{font-size:11px;line-height:1.45;min-height:32px}
    .module-card-tags{display:none}
    .module-card-footer{display:flex;align-items:center;justify-content:space-between;gap:6px;margin-top:12px;padding-top:10px;border-top:1px solid #eee8dc}
    .module-progress{font-size:10px;color:#7b8492;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
    .module-start{font-size:11px;color:#76540b;font-weight:800;white-space:nowrap}
    @media(max-width:900px){
        .header-text h1 .license-badge:last-child{display:none}
        .home-learning-grid{grid-template-columns:1fr}
        .home-resume{grid-template-columns:1fr}
        .home-shortcut{width:100%;margin-left:0}
    }
    @media(max-width:640px){
        .header-inner{justify-content:flex-start;padding:0 12px;gap:7px}
        .eric-logo{font-size:20px!important}.header-text h1{font-size:16px}.header-meta{width:100%;justify-content:flex-start;margin-left:0}
        #timeDisplay,.header-tool-weekly{display:none!important}
        .container{padding:12px 10px 76px}
        .input-card{padding:18px 14px}.home-hero-title{font-size:19px}.home-hero-note{font-size:11px}
        .input-card textarea{height:128px;font-size:16px}
        .btn-group-main{display:grid;grid-template-columns:1fr 1fr;gap:8px}
        .btn{padding:10px 8px;width:100%}.btn-a{grid-column:1/-1}
        .home-shortcut{grid-column:1/-1}.module-card{min-height:150px}
        .home-learning-group .module-cards{grid-template-columns:1fr!important}
        .avatar-float{opacity:.82;transform:scale(.82);transform-origin:left center}
    }
    @media(prefers-reduced-motion:reduce){
        *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important}
    }

    /* ===== ENGLISH ANNOTATION WORKBENCH ===== */
    :root{
        --wb-navy:#132238;--wb-navy-2:#1d314d;--wb-blue:#315a7d;
        --wb-green:#236b55;--wb-gold:#b78a2d;--wb-paper:#ffffff;
        --wb-canvas:#f3f5f7;--wb-line:#d9dfe6;--wb-muted:#687587;
        --grammar-subject:#315f91;--grammar-predicate:#9a463f;--grammar-object:#2c765f;
    }
    html,body{max-width:100%;overflow-x:hidden}
    body{
        background:var(--wb-canvas)!important;color:#1d2a3a;
        font-family:"Segoe UI","Microsoft YaHei UI","Microsoft YaHei",sans-serif;
    }
    body::before{display:none!important}
    .header{
        background:var(--wb-navy)!important;border-bottom:1px solid #071526;
        box-shadow:none!important;padding:0!important;position:sticky;top:0;z-index:900;
    }
    .header-inner{max-width:none!important;min-height:64px;padding:0 24px!important;gap:14px!important}
    .eric-logo{
        font-family:"Segoe UI","Microsoft YaHei UI",sans-serif!important;font-style:normal!important;
        font-size:12px!important;font-weight:800!important;letter-spacing:2px!important;
        color:#d6b667!important;background:none!important;-webkit-text-fill-color:currentColor!important;
        filter:none!important;text-transform:uppercase;margin:0!important;
    }
    .header-text h1{font-size:16px!important;font-weight:650!important;letter-spacing:.2px!important;color:#fff}
    .header-text h1::after{content:"英语批注工作台";font-size:11px;font-weight:400;color:#9eabbc;margin-left:10px;padding-left:10px;border-left:1px solid #405069}
    .header-text .header-sub{
        display:block!important;margin:3px 0 0!important;color:#8f9caf!important;
        font-size:9.5px!important;font-weight:400;letter-spacing:.25px;line-height:1.2;
    }
    .header-text .header-sub .contact-phone{color:#d6b667;font-weight:650;letter-spacing:.45px}
    .header h1 #btnUpdate,.header h1 .license-badge:not(#licenseBadge){display:none!important}
    .header h1 #licenseBadge{
        display:inline-flex!important;align-items:center;gap:5px;margin-left:8px!important;
        padding:3px 7px!important;border:1px solid #526178!important;border-radius:3px!important;
        background:transparent!important;color:#cbd5e1!important;font-size:10px!important;cursor:pointer;
    }
    .header h1 #licenseBadge::before{content:"";width:6px;height:6px;border-radius:50%;background:#62a77f}
    .header h1 #licenseBadge.license-trial::before{background:#d3a84a}
    .header h1 #licenseBadge.license-expired::before{background:#c96464}
    .header-meta{gap:2px!important}
    .header-tool{
        border:0!important;border-radius:4px!important;background:transparent!important;color:#c5ced9!important;
        padding:7px 9px!important;font-size:11px!important;
    }
    .header-tool:hover{background:#233854!important;color:#fff!important}
    #levelDisplay{
        border:0!important;border-left:1px solid #405069!important;border-radius:0!important;
        background:transparent!important;margin-left:6px!important;padding-left:12px!important;
    }
    #levelBadge{background:#b78a2d!important;border-radius:3px!important}
    .container{max-width:none!important;padding:0!important;margin:0!important}
    .avatar-float{
        display:block;position:fixed!important;top:430px;left:40px;right:auto;bottom:auto;
        z-index:9800!important;transform:scale(.62);transform-origin:left top;filter:saturate(.9);touch-action:none;
    }
    .avatar-float:hover{filter:saturate(1)}
    .avatar-bubble{pointer-events:auto!important}
    .workbench-shell{
        min-height:calc(100vh - 52px);display:grid;
        grid-template-columns:190px minmax(520px,1fr) 270px;
        background:var(--wb-canvas);
    }
    .workbench-nav{
        position:sticky;top:52px;height:calc(100vh - 52px);box-sizing:border-box;
        background:#eef1f4;border-right:1px solid var(--wb-line);padding:18px 12px;
        display:flex;flex-direction:column;gap:3px;z-index:4;
    }
    .workbench-nav-title{padding:0 10px 10px;font-size:10px;font-weight:800;letter-spacing:1.5px;color:#7c8796;text-transform:uppercase}
    .workbench-nav button{
        width:100%;height:40px;display:flex;align-items:center;gap:10px;padding:0 10px;
        border:0;border-left:3px solid transparent;border-radius:3px;background:transparent;
        color:#415066;font:600 12px/1 "Segoe UI","Microsoft YaHei UI",sans-serif;cursor:pointer;text-align:left;
        transition:background .14s,color .14s,border-color .14s;
    }
    .workbench-nav button:hover,.workbench-nav button:focus-visible{background:#fff;color:var(--wb-navy);outline:none;border-left-color:#9aa8b8}
    .workbench-nav button.active{background:#fff;color:var(--wb-navy);border-left-color:var(--wb-gold);box-shadow:0 1px 2px rgba(17,34,56,.06)}
    .workbench-nav button.teacher-nav-button{border-left-color:#5b7c9d;color:#294767;background:#e5ebf1}
    .workbench-nav button.teacher-nav-button:hover,.workbench-nav button.teacher-nav-button:focus-visible{background:#fff;color:#17365d;border-left-color:#b78a2d}
    .workbench-nav svg,.wb-inline-icon{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex:0 0 auto}
    .workbench-nav-footer{margin-top:auto;padding:12px 10px 0;border-top:1px solid var(--wb-line);font-size:10px;line-height:1.55;color:#8792a0}
    .workbench-main{min-width:0;padding:24px 28px 40px}
    .workbench-rail{
        min-width:0;background:#f8f9fa;border-left:1px solid var(--wb-line);padding:20px 16px;
    }
    .workbench-rail-title{
        font-size:10px;font-weight:800;letter-spacing:1.4px;color:#7d8896;text-transform:uppercase;
        padding-bottom:9px;border-bottom:1px solid var(--wb-line);margin-bottom:10px;
    }
    .input-card{
        margin:0 0 18px!important;padding:0!important;border:1px solid #cfd6de!important;
        border-radius:5px!important;background:var(--wb-paper)!important;box-shadow:0 2px 8px rgba(22,38,57,.06)!important;
        overflow:hidden;
    }
    .home-hero-head{align-items:center!important;margin:0!important;padding:18px 20px 14px;border-bottom:1px solid #e5e9ed}
    .home-eyebrow{font-size:10px!important;color:var(--wb-gold)!important;letter-spacing:1.3px!important}
    .home-hero-title{font-size:21px!important;font-weight:650!important;color:var(--wb-navy)!important;margin-top:5px!important}
    .home-hero-note{font-size:12px!important;color:var(--wb-muted)!important}
    .home-clear-icon{width:30px!important;height:30px!important;border-radius:3px!important}
    .input-card textarea{
        display:block;width:calc(100% - 40px)!important;box-sizing:border-box!important;margin:18px 20px 0!important;
        height:148px!important;border:1px solid #cbd3dc!important;border-radius:3px!important;
        background:#fff!important;padding:18px!important;color:#18283d!important;
        font:18px/1.7 Cambria,Georgia,"Times New Roman",serif!important;box-shadow:inset 0 1px 2px rgba(20,40,60,.04);
    }
    .input-card textarea:focus{outline:2px solid rgba(49,90,125,.18)!important;border-color:var(--wb-blue)!important}
    .example-row{margin:11px 20px 0!important}
    .example-chip{border-radius:3px!important;background:#f7f8f9!important;padding:5px 9px!important}
    .btn-row{margin:14px 20px 18px!important}
    .btn{border-radius:3px!important;box-shadow:none!important;min-height:38px!important;transition:background .15s,border-color .15s,color .15s!important}
    .btn:hover{transform:none!important}
    .btn-a{background:var(--wb-green)!important;min-width:152px!important}
    .btn-a:hover{background:#195843!important}
    .btn-zh2en,.btn-ai,.btn-tts{background:#fff!important;border-color:#cbd3dc!important;color:#33445a!important}
    .home-shortcut{color:#85909d!important}
    .home-resume{display:flex!important;flex-direction:column;gap:0!important;margin:0 0 18px!important}
    .resume-card,.today-card{
        border:0!important;border-bottom:1px solid var(--wb-line)!important;border-radius:0!important;
        background:transparent!important;box-shadow:none!important;padding:13px 4px!important;
    }
    .resume-title{font-family:Cambria,Georgia,serif;font-size:13px!important;line-height:1.45;white-space:normal!important}
    .resume-btn{border-radius:3px!important;background:var(--wb-navy-2)!important}
    .resume-btn.secondary{background:#e8ecf0!important;color:#3d4a5b!important}
    .today-card{align-items:flex-start!important}
    .today-ring{width:38px!important;height:38px!important;border-radius:3px!important;background:#e8ecef!important;font-size:12px!important}
    .today-copy strong{font-size:12px!important}.today-copy span{display:block;margin-top:3px;line-height:1.5}
    .daily-tasks{border:0!important;border-radius:0!important;background:transparent!important;padding:13px 4px!important;margin:0!important}
    .daily-tasks .dt-title{text-align:left!important;font-size:11px!important}
    .daily-tasks .dt-label{text-align:left!important;min-width:62px!important}
    .daily-tasks .dt-bar-wrap{border-radius:1px!important;height:5px!important}
    .daily-tasks .dt-bar-fill{border-radius:1px!important;background:var(--wb-green)!important}
    .daily-tasks .dt-target-btn{border-radius:3px!important}
    .rail-actions{border-top:1px solid var(--wb-line);padding-top:12px;margin-top:4px}
    .rail-action{
        display:flex;width:100%;align-items:center;gap:8px;padding:9px 4px;border:0;background:transparent;
        color:#536174;font-size:11px;cursor:pointer;text-align:left;
    }
    .rail-action:hover{color:var(--wb-navy)}
    .loading,.error,.result-card{
        border-radius:4px!important;border:1px solid var(--wb-line)!important;box-shadow:none!important;background:#fff!important;
    }
    .result-card{margin-bottom:14px!important}
    .result-card h3{border-bottom:1px solid #e4e8ec;padding-bottom:10px!important;color:var(--wb-navy)!important}
    .sentence-display{font-family:Cambria,Georgia,"Times New Roman",serif!important}
    #sent-translation-viz{background:#eef1f4!important;color:#33445a!important;border-left:3px solid var(--wb-gold);border-radius:1px!important}
    .home-learning-grid{display:block!important;margin:20px 0 0!important}
    .home-learning-group{
        border:0!important;border-top:1px solid var(--wb-line)!important;border-radius:0!important;
        padding:16px 0 4px!important;background:transparent!important;
    }
    .home-learning-heading{font-size:11px!important;letter-spacing:.8px!important;color:#607084!important;text-transform:uppercase}
    .home-learning-group .module-cards{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:0!important;border:1px solid var(--wb-line);border-bottom:0}
    .home-learning-group .module-cards.home-foundation-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important}
    .module-card{
        min-height:112px!important;padding:15px 16px!important;border:0!important;border-right:1px solid var(--wb-line)!important;
        border-bottom:1px solid var(--wb-line)!important;border-radius:0!important;background:#fff!important;box-shadow:none!important;
    }
    .module-card:nth-child(2n){border-right:0!important}
    .home-foundation-grid .module-card:nth-child(2n){border-right:1px solid var(--wb-line)!important}
    .home-foundation-grid .module-card:nth-child(3n){border-right:0!important}
    .module-card:hover{transform:none!important;background:#f8fafb!important;box-shadow:inset 3px 0 0 var(--wb-gold)!important}
    .module-card::before{display:none!important}
    .module-card-icon{display:none!important}
    .module-card-title{font-size:14px!important;color:var(--wb-navy)!important}
    .module-card-desc{min-height:0!important;color:#758193!important}
    .module-card-footer{margin-top:12px!important;padding-top:9px!important;border-color:#e6eaee!important}
    .module-start{display:inline-flex;align-items:center;padding:7px 11px;border:1px solid #cddbeb;border-radius:7px;background:#f4f8fc;color:var(--wb-blue)!important;font-weight:800}
    .module-card-icon.learning-icon-decorated{display:grid!important;place-items:center;width:52px;height:52px;margin-bottom:13px;border-radius:14px;background:#eef5ff;color:transparent;font-size:0}
    .module-card-icon.learning-icon-decorated svg{width:38px;height:38px}
    .module-start::before{content:'▶';display:inline-block;margin-right:6px;font-size:9px;color:var(--wb-gold)}
    .teacher-home-action-icon.learning-icon-decorated{display:inline-grid;place-items:center;width:34px;height:34px;border-radius:9px;background:#eef5ff;font-size:0}
    .teacher-home-action-icon.learning-icon-decorated svg{width:25px;height:25px}
    .module-tag.learning-icon-decorated{display:inline-flex;align-items:center;gap:4px}
    .module-tag.learning-icon-decorated svg{width:14px;height:14px}
    .push-msg{border-radius:3px!important;box-shadow:none!important}
    @media(max-width:1120px){
        .workbench-shell{grid-template-columns:168px minmax(480px,1fr) 238px}
        .workbench-main{padding:20px}
    }
    @media(max-width:920px){
        .workbench-shell{grid-template-columns:72px minmax(0,1fr) 230px}
        .workbench-nav{padding:16px 8px}
        .workbench-nav-title,.workbench-nav button span,.workbench-nav-footer{display:none}
        .workbench-nav button{justify-content:center;padding:0}
    }
    @media(max-width:760px){
        .header{position:relative}.header-inner{min-height:58px;padding:5px 12px!important;flex-wrap:wrap}
        .header-text h1::after{display:none}.header-meta{width:auto!important;margin-left:auto!important}
        .header-tool-weekly,#timeDisplay{display:none!important}
        .workbench-shell{display:block;min-height:0}
        .workbench-nav{
            position:fixed;top:auto;left:0;right:0;bottom:0;height:58px;padding:5px 8px;
            border:0;border-top:1px solid var(--wb-line);display:grid;grid-template-columns:repeat(12,minmax(56px,1fr));
            overflow-x:auto;overflow-y:hidden;
            background:rgba(248,249,250,.97);z-index:950;
        }
        .workbench-nav button{height:47px;min-width:56px;flex-direction:column;justify-content:center;gap:3px;border:0!important;padding:0;font-size:9px}
        .workbench-nav button span{display:block}
        .workbench-main{padding:14px 10px 76px}
        .workbench-rail{border:0;border-top:1px solid var(--wb-line);padding:16px 14px 82px}
        .input-card textarea{width:calc(100% - 28px)!important;margin:14px 14px 0!important;height:135px!important;font-size:16px!important}
        .home-hero-head{padding:15px 14px 12px!important}.home-hero-title{font-size:18px!important}
        .example-row{margin:10px 14px 0!important}.btn-row{margin:12px 14px 15px!important}
        .btn-group-main{grid-template-columns:1fr 1fr!important}
        .home-learning-group .module-cards,.home-learning-group .module-cards.home-foundation-grid{grid-template-columns:1fr!important}
        .module-card{border-right:0!important}
        .rail-actions{display:grid;grid-template-columns:1fr 1fr;gap:4px 12px}
    }

    /* ===== UNIFIED LEARNING MODULE WINDOWS ===== */
    .wb-overlay-bg,.module-overlay-bg{
        background:rgba(10,21,36,.52)!important;backdrop-filter:blur(2px)!important;
    }
    .wb-overlay,.module-overlay{
        background:var(--wb-canvas)!important;color:#233247!important;
        animation:none!important;
    }
    #mPanel,#wbPanel,#essayPanel{
        top:53px!important;height:calc(100% - 53px)!important;
    }
    .wb-header,.module-overlay-header{
        min-height:70px;box-sizing:border-box;padding:15px 22px!important;
        background:var(--wb-navy)!important;border-bottom:2px solid var(--wb-gold)!important;
        box-shadow:none!important;color:#fff!important;
    }
    .wb-header h2,.module-overlay-header h2{
        font-size:18px!important;font-weight:650!important;letter-spacing:.2px!important;color:#fff!important;
    }
    .wb-header p{color:#aeb9c7!important;font-size:11px!important;margin:3px 0 7px!important}
    .wb-close,.module-overlay-close{
        top:17px!important;right:18px!important;width:32px!important;height:32px!important;line-height:30px!important;
        border:1px solid #526178!important;border-radius:3px!important;background:transparent!important;color:#d6dde6!important;
        box-shadow:none!important;transform:none!important;
    }
    .wb-close:hover,.module-overlay-close:hover{background:#803d3d!important;border-color:#9b5151!important;color:#fff!important}
    .module-back-btn{
        position:absolute;top:17px;right:60px;height:32px;padding:0 12px;
        border:1px solid #526178;border-radius:3px;background:transparent;color:#d6dde6;
        font:600 11px/30px "Segoe UI","Microsoft YaHei UI",sans-serif;cursor:pointer;
    }
    .module-back-btn:hover,.module-back-btn:focus-visible{background:#253c59;border-color:#7d8da1;color:#fff;outline:none}
    .wb-upload-btn{
        margin:3px 5px 0 0!important;padding:5px 10px!important;border:1px solid #526178!important;
        border-radius:3px!important;background:transparent!important;color:#d6dde6!important;box-shadow:none!important;
    }
    .wb-upload-btn:hover{background:#253c59!important;border-color:#7d8da1!important}
    #ttsVoiceSelect{
        border-color:#526178!important;border-radius:3px!important;background:#1d314d!important;color:#dce4ed!important;
    }
    .wb-tabs{
        gap:0!important;margin:10px -22px -15px!important;padding:0 22px!important;
        border-top:1px solid #33465f;overflow-x:auto;flex-wrap:nowrap!important;
    }
    .wb-tab{
        flex:0 0 auto;border:0!important;border-bottom:3px solid transparent!important;border-radius:0!important;
        background:transparent!important;color:#aeb9c7!important;padding:10px 11px!important;font-size:11px!important;box-shadow:none!important;
    }
    .wb-tab:hover{background:#1c3049!important;color:#fff!important}
    .wb-tab.active{background:transparent!important;color:#fff!important;border-bottom-color:var(--wb-gold)!important}
    .wb-body{padding:22px 26px!important;max-width:1180px;margin:0 auto}
    .wb-empty{
        border:1px dashed #c7d0da;background:#fff;padding:52px 20px!important;color:#748194!important;
        font-size:13px!important;line-height:1.8!important;
    }
    .wb-item{
        background:#fff!important;border:1px solid var(--wb-line)!important;border-left:3px solid var(--wb-blue)!important;
        border-radius:2px!important;box-shadow:none!important;margin-bottom:5px!important;padding:10px 12px!important;
    }
    .wb-item:hover{transform:none!important;background:#f8fafb!important;box-shadow:none!important}
    .wb-item .wb-word{font-family:Cambria,Georgia,serif!important;color:var(--wb-navy)!important;font-size:17px!important}
    .wb-item .wb-pos-tag,.wb-item .wb-badge,.wb-form-row{border-radius:2px!important}
    .wb-item button{border-radius:3px!important;background:#fff!important}
    .wb-item button:hover{background:var(--wb-navy-2)!important;border-color:var(--wb-navy-2)!important}
    .module-overlay-body{max-width:840px!important;padding:30px 28px!important}
    .module-feature-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:0!important;border:1px solid var(--wb-line);border-bottom:0}
    .module-feature-btn{
        min-height:82px!important;align-items:flex-start!important;padding:16px 18px!important;
        border:0!important;border-right:1px solid var(--wb-line)!important;border-bottom:1px solid var(--wb-line)!important;
        border-left:3px solid transparent!important;border-radius:0!important;background:#fff!important;box-shadow:none!important;
    }
    .module-feature-btn:nth-child(2n){border-right:0!important}
    .module-feature-btn:hover{
        transform:none!important;background:#f8fafb!important;border-left-color:var(--wb-gold)!important;box-shadow:none!important;
    }
    .module-feature-btn .f-icon{display:none!important}
    .module-feature-btn .f-label{font-size:14px!important;color:var(--wb-navy)!important}
    .module-feature-btn .f-desc{font-size:11px!important;color:#728095!important;margin-top:6px!important;text-align:left}
    .module-feature-btn.fw{grid-column:1/-1!important;min-height:68px!important}
    /* ===== 桌面端学习模块：全屏工作台与可识别操作入口 ===== */
    #mPanel{left:0!important;right:0!important;width:100%!important;max-width:none!important;transform:none!important;border-radius:0!important}
    #mBody.module-overlay-body{width:100%!important;max-width:none!important;min-height:calc(100vh - 123px);box-sizing:border-box;padding:34px 48px 56px!important;background:linear-gradient(135deg,#f4f7fa 0%,#edf2f6 100%)!important}
    #mBody .module-panel-intro{display:flex;align-items:center;gap:22px;padding:24px 30px;margin:0 0 24px;border:1px solid #d8e1ea;border-left:5px solid var(--wb-gold);background:linear-gradient(110deg,#fff 0%,#f8fbfd 100%);box-shadow:0 10px 25px rgba(24,49,77,.07)}
    #mBody .module-panel-intro-mark{width:70px;height:70px;display:grid;place-items:center;flex:0 0 auto;border-radius:18px;background:#eaf2fb;border:1px solid #c9d9ea}
    #mBody .module-panel-intro-mark svg{width:46px;height:46px}
    #mBody .module-panel-intro-kicker{font-size:10px;letter-spacing:1.6px;text-transform:uppercase;color:#b88726;font-weight:800}
    #mBody .module-panel-intro h3{margin:5px 0 4px;color:#17365d;font-size:24px;letter-spacing:.2px}
    #mBody .module-panel-intro p{margin:0;color:#718096;font-size:12px}
    #mBody .module-panel-intro-count{margin-left:auto;padding:8px 14px;border:1px solid #d6e0ea;background:#f3f7fb;color:#486684;font-size:11px;white-space:nowrap}
    #mBody .module-feature-grid{grid-template-columns:repeat(4,minmax(220px,1fr))!important;gap:16px!important;border:0!important}
    #mBody .module-feature-btn{position:relative;min-height:168px!important;justify-content:flex-start!important;padding:24px 22px!important;border:1px solid #d6e0ea!important;border-top:4px solid var(--wb-blue)!important;background:#fff!important;box-shadow:0 7px 18px rgba(27,52,78,.06)!important;transition:transform .18s,box-shadow .18s,border-color .18s!important}
    #mBody .module-feature-btn:nth-child(4n+2){border-top-color:#b88726!important}
    #mBody .module-feature-btn:nth-child(4n+3){border-top-color:#2a8c75!important}
    #mBody .module-feature-btn:nth-child(4n+4){border-top-color:#b35d49!important}
    #mBody .module-feature-btn:hover{transform:translateY(-4px)!important;background:#fff!important;border-color:#aebfd1!important;box-shadow:0 15px 30px rgba(27,52,78,.13)!important}
    #mBody .module-feature-btn .f-icon{display:grid!important;place-items:center;width:60px;height:60px;margin:0 0 21px;border-radius:16px;background:#eef5ff!important}
    #mBody .module-feature-btn .f-icon svg{display:block;width:42px;height:42px}
    #mBody .module-feature-btn .f-label{display:block!important;font-size:16px!important;line-height:1.35;color:#17365d!important}
    #mBody .module-feature-btn .f-desc{display:block!important;margin-top:8px!important;font-size:12px!important;line-height:1.6;color:#74869a!important}
    #mBody .module-feature-btn.fw{grid-column:auto!important}
    /* 首页常用操作也明确呈现为可点击按钮，而不是普通文字 */
    .btn-row button,.home-learning-card button,.home-learning-card a,.home-quick-action,.home-action-card{position:relative;box-shadow:0 3px 10px rgba(27,52,78,.08);font-weight:700!important}
    .btn-row button:hover,.home-learning-card button:hover,.home-learning-card a:hover,.home-quick-action:hover,.home-action-card:hover{transform:translateY(-2px);box-shadow:0 8px 18px rgba(27,52,78,.14)}
    .btn-row button::before,.home-learning-card button::before,.home-learning-card a::before{content:'◆';display:inline-block;margin-right:7px;color:var(--wb-gold);font-size:9px}
    .btn-row button::before{display:none}
    .btn-icon{display:inline-grid;place-items:center;width:20px;height:20px;margin-right:7px;vertical-align:-5px;border-radius:6px;background:rgba(255,255,255,.18)}
    .btn-icon svg{width:15px;height:15px}
    @media(min-width:1500px){ #mBody .module-feature-grid{grid-template-columns:repeat(5,minmax(210px,1fr))!important} }
    #essayPanel .wb-body{max-width:1220px}
    .essay-layout{gap:0!important;padding:0!important;border:1px solid var(--wb-line);background:#fff}
    .essay-left,.essay-right{padding:20px!important}
    .essay-left{border-right:1px solid var(--wb-line)}
    .essay-label{font-size:12px!important;color:#526175!important;letter-spacing:.2px}
    .essay-label-icon{display:none}
    .essay-textarea,.essay-req-textarea{
        min-height:410px!important;border:1px solid #cbd3dc!important;border-radius:2px!important;
        background:#fff!important;padding:18px!important;box-shadow:none!important;
    }
    .essay-textarea{font:16px/1.85 Cambria,Georgia,serif!important}
    .essay-textarea:focus,.essay-req-textarea:focus{border-color:var(--wb-blue)!important;box-shadow:0 0 0 2px rgba(49,90,125,.12)!important}
    .essay-punct-guide{border-radius:2px!important;background:#f7f8fa!important;border-color:var(--wb-line)!important}
    .essay-punct-title{color:#59687b!important}
    .essay-submit-row{margin-top:16px!important;padding-top:16px!important;border-color:var(--wb-line)!important}
    .essay-submit-btn{
        padding:11px 34px!important;border-radius:3px!important;background:var(--wb-green)!important;
        box-shadow:none!important;font-size:14px!important;
    }
    .essay-submit-btn:hover{transform:none!important;background:#195843!important;box-shadow:none!important}
    .essay-breakdown{gap:0!important;border:1px solid var(--wb-line)}
    .essay-bd-item{border:0!important;border-right:1px solid var(--wb-line)!important;border-radius:0!important;background:#fff!important}
    .essay-bd-item:last-child{border-right:0!important}
    .essay-score-circle{border-radius:3px!important;background:var(--wb-navy-2)!important}
    .essay-suggestions,.essay-corrected,.essay-corrected-text{border-radius:2px!important;box-shadow:none!important}
    #dailyPanel{
        width:900px!important;max-width:calc(100vw - 40px)!important;max-height:calc(100vh - 40px)!important;
        top:73px!important;transform:translateX(-50%)!important;max-height:calc(100vh - 93px)!important;
        border-radius:3px!important;box-shadow:0 18px 60px rgba(10,21,36,.24)!important;
    }
    #dailyPanel .wb-header{border-radius:0!important}
    #dailyPanel .wb-body{padding:24px 30px!important;max-width:none!important}
    #dailyContent{padding:10px 0!important;text-align:left!important}
    #dailyContent > div{
        border-radius:2px!important;background:#fff!important;border:1px solid var(--wb-line)!important;box-shadow:none!important;
    }
    #dailyContent h3{color:var(--wb-navy)!important;font-size:14px!important}
    #dailyContent p[style*="line-height:1.8"]{font:16px/1.9 Cambria,Georgia,serif!important;color:#1f2d3e!important}
    .daily-question{border-radius:2px!important;border-color:var(--wb-line)!important}
    #dailyGenBtn{
        border-radius:3px!important;background:var(--wb-green)!important;padding:10px 24px!important;box-shadow:none!important;
    }
    #dailyNav button{border-radius:3px!important}
    .paper-sheet{border-radius:2px!important;box-shadow:none!important;border:1px solid var(--wb-line)!important}
    .paper-answer-toggle{border-radius:2px 2px 0 0!important;background:var(--wb-navy)!important}
    #qbEntryPanel{
        width:900px!important;max-width:calc(100vw - 40px)!important;top:73px!important;
        transform:translateX(-50%)!important;max-height:calc(100vh - 93px)!important;border-radius:3px!important;
    }
    #qbEntryPanel .wb-header{border-radius:0!important}
    .qb-upload-area{
        border-radius:2px!important;background:#f7f9fb!important;border-color:#9eabb9!important;
    }
    .qb-entry-tab,.qb-rich-input,.qb-form-section textarea,.qb-form-section input[type="text"],.qb-form-section select,
    .qb-question-row,.qb-add-btn,.qb-submit-btn{border-radius:2px!important;box-shadow:none!important}
    .qb-entry-tab.active,.qb-submit-btn{background:var(--wb-navy-2)!important}
    @media(max-width:760px){
        #mPanel,#wbPanel,#essayPanel{top:71px!important;height:calc(100% - 71px)!important}
        .wb-header,.module-overlay-header{padding:13px 14px!important;min-height:62px}
        .wb-header h2,.module-overlay-header h2{font-size:16px!important;padding-right:38px}
        .module-back-btn{top:15px;right:52px;height:30px;line-height:28px;padding:0 9px;font-size:10px}
        .wb-header p{display:none}
        .wb-upload-btn{font-size:10px!important;padding:4px 7px!important}
        .wb-tabs{margin:8px -14px -13px!important;padding:0 14px!important}
        .wb-body,.module-overlay-body{padding:14px 10px!important}
        .module-feature-grid{grid-template-columns:1fr!important}
        .module-feature-btn{border-right:0!important}
        .essay-layout{display:block!important}
        .essay-left{border-right:0;border-bottom:1px solid var(--wb-line)}
        .essay-left,.essay-right{padding:14px!important}
        .essay-textarea,.essay-req-textarea{min-height:260px!important}
        #dailyPanel,#qbEntryPanel{left:0!important;top:71px!important;transform:none!important;width:100%!important;max-width:none!important;height:calc(100% - 71px)!important;max-height:none!important;border-radius:0!important}
        #dailyPanel .wb-body{padding:14px!important}
        .paper-sheet{padding:20px 16px!important}
        .avatar-float{transform:scale(.52)!important;transform-origin:left top}
        .header h1 #licenseBadge{font-size:9px!important;margin-left:4px!important;padding:2px 5px!important}
        .header-activation-tool,.header-token-usage{display:none!important}
    }

    /* ===== HOME 3D STUDY DESK · lightweight CSS depth, no WebGL dependency ===== */
    :root{
        --wb-canvas:#eaf0f6;
        --wb-line:#d4deea;
        --wb-gold:#c59a45;
        --wb-blue:#3a6d98;
    }
    body{
        background:
            radial-gradient(ellipse at 68% 4%,rgba(114,159,195,.16),transparent 38%),
            radial-gradient(ellipse at 20% 55%,rgba(205,176,111,.09),transparent 36%),
            linear-gradient(145deg,#eef3f8 0%,#e5ecf4 54%,#edf2f7 100%)!important;
    }
    .header{
        background:linear-gradient(112deg,#101f35 0%,#18314d 54%,#1a3551 100%)!important;
        box-shadow:0 8px 22px rgba(16,31,53,.2),inset 0 -1px rgba(255,255,255,.1)!important;
    }
    .workbench-shell{background:transparent!important}
    .workbench-nav{
        background:linear-gradient(180deg,rgba(242,246,250,.97),rgba(231,237,244,.96))!important;
        border-right-color:#d0dae5!important;
        box-shadow:inset -1px 0 rgba(255,255,255,.75),5px 0 22px rgba(37,59,83,.035);
    }
    .workbench-nav button{
        min-height:42px!important;border-radius:9px!important;border-left-width:0!important;
        transition:background .18s ease,transform .18s ease,box-shadow .18s ease,color .18s ease!important;
    }
    .workbench-nav button:hover,.workbench-nav button:focus-visible{
        transform:translateX(3px);box-shadow:0 5px 12px rgba(25,49,77,.08);
    }
    .workbench-nav button.active{
        background:linear-gradient(110deg,#fff 0%,#f8fbff 100%)!important;
        box-shadow:0 5px 14px rgba(25,49,77,.1),inset 3px 0 var(--wb-gold)!important;
    }
    .workbench-nav button.teacher-nav-button{border-left-width:0!important;border-radius:9px!important}
    .workbench-main{
        position:relative;isolation:isolate;
        background:radial-gradient(ellipse at 56% 0%,rgba(255,255,255,.64),transparent 58%);
    }
    .workbench-rail{
        background:linear-gradient(180deg,rgba(249,251,253,.97),rgba(240,245,249,.96))!important;
        border-left-color:#d0dae5!important;
        box-shadow:inset 1px 0 rgba(255,255,255,.82),-6px 0 20px rgba(37,59,83,.035);
    }
    .workbench-rail-title{color:#62758b!important;letter-spacing:1.7px!important}
    .input-card{
        position:relative;perspective:1200px;transform-style:preserve-3d;
        border:1px solid #cfdae6!important;border-radius:17px!important;
        background:linear-gradient(155deg,#fff 0%,#fbfdff 72%,#f4f8fc 100%)!important;
        box-shadow:0 16px 34px rgba(24,48,75,.11),0 3px 8px rgba(24,48,75,.06),inset 0 1px #fff!important;
    }
    .home-hero-head{
        min-height:142px!important;overflow:hidden;
        padding:18px 24px 18px 26px!important;
        border:0!important;border-bottom:1px solid rgba(220,232,244,.24)!important;
        background:
            radial-gradient(ellipse at 77% 12%,rgba(130,176,210,.27),transparent 33%),
            linear-gradient(118deg,#142a45 0%,#1b3c5d 58%,#244b6c 100%)!important;
        box-shadow:inset 0 1px rgba(255,255,255,.12),inset 0 -12px 24px rgba(7,20,35,.12);
    }
    .home-hero-head > div:first-child{min-width:0;flex:1 1 auto;position:relative;z-index:2}
    .home-eyebrow{color:#e3bd69!important;letter-spacing:1.7px!important}
    .home-hero-title{color:#f5f8fc!important;font-size:24px!important;letter-spacing:.2px}
    .home-hero-note{color:#c5d3e0!important;line-height:1.6}
    .home-clear-icon{
        position:relative;z-index:3;align-self:flex-start;
        border-color:rgba(228,237,246,.28)!important;background:rgba(255,255,255,.08)!important;
        color:#e4edf6!important;border-radius:9px!important;
    }
    .home-clear-icon:hover,.home-clear-icon:focus-visible{background:rgba(255,255,255,.17)!important;color:#fff!important}
    .home-3d-stage{
        position:relative;isolation:isolate;flex:0 0 218px;width:218px;height:116px;
        margin:0 2px 0 10px;perspective:680px;transform-style:preserve-3d;
    }
    .home-3d-stage::before{
        content:"";position:absolute;inset:5px 8px 1px;border-radius:50%;
        background:radial-gradient(ellipse,rgba(100,155,190,.42),rgba(100,155,190,0) 68%);
        filter:blur(9px);transform:translateZ(-28px);
    }
    .home-3d-plinth{
        position:absolute;left:26px;right:21px;bottom:7px;height:36px;border-radius:10px;
        background:linear-gradient(145deg,#f0c86f 0%,#c59337 38%,#936923 100%);
        box-shadow:0 13px 16px rgba(3,15,29,.31),inset 0 2px 1px rgba(255,255,255,.5),inset 0 -5px 0 rgba(91,60,14,.24);
        transform:rotateX(61deg) rotateZ(-13deg) translateZ(-13px);
    }
    .home-3d-book{
        position:absolute;left:54px;top:18px;width:112px;height:75px;
        transform-style:preserve-3d;transform:rotateX(54deg) rotateZ(-13deg) translateZ(12px);
        filter:drop-shadow(0 10px 7px rgba(5,18,32,.25));
        animation:studyBookFloat 5.8s ease-in-out infinite;
    }
    .home-3d-page{
        position:absolute;top:0;width:55px;height:70px;overflow:hidden;
        border:1px solid rgba(66,91,112,.22);
        background:repeating-linear-gradient(180deg,transparent 0 11px,rgba(64,95,119,.16) 11px 12px),linear-gradient(145deg,#fffefa,#e9f0f4);
        box-shadow:0 7px 0 #ccd8df,0 10px 0 #a9bbc7;
    }
    .home-3d-page-left{left:0;border-radius:9px 3px 3px 8px;transform-origin:right center;transform:rotateY(-14deg)}
    .home-3d-page-right{right:0;border-radius:3px 9px 8px 3px;transform-origin:left center;transform:rotateY(14deg)}
    .home-3d-page-left::before,.home-3d-page-right::before{
        content:"ENGLISH";position:absolute;top:8px;left:7px;color:#315a7d;
        font:700 7px/1 "Segoe UI",sans-serif;letter-spacing:1px;
    }
    .home-3d-page-right::before{content:"LEARN";color:#9b752c}
    .home-3d-spine{
        position:absolute;z-index:2;left:53px;top:3px;width:6px;height:68px;border-radius:4px;
        background:linear-gradient(90deg,#b5832c,#f2cf78 48%,#a67322);
        transform:translateZ(3px);box-shadow:0 3px 4px rgba(30,35,42,.2);
    }
    .home-3d-chip{
        position:absolute;z-index:4;min-width:66px;padding:8px 9px 7px;
        border:1px solid rgba(236,243,249,.48);border-radius:8px;
        background:linear-gradient(145deg,rgba(255,255,255,.96),rgba(226,237,246,.88));
        color:#28435e;box-shadow:0 8px 15px rgba(4,17,31,.22),inset 0 1px #fff;
        font:700 8px/1.2 "Segoe UI",sans-serif;letter-spacing:.8px;
        transform-style:preserve-3d;
    }
    .home-3d-chip b{display:block;margin-top:4px;color:#a07829;font-size:10px;letter-spacing:.1px}
    .home-3d-chip-vocab{top:8px;right:2px;transform:translateZ(40px) rotateY(-14deg) rotateZ(4deg)}
    .home-3d-chip-reading{left:2px;bottom:13px;transform:translateZ(30px) rotateY(13deg) rotateZ(-5deg)}
    @keyframes studyBookFloat{0%,100%{transform:rotateX(54deg) rotateZ(-13deg) translate3d(0,0,12px)}50%{transform:rotateX(54deg) rotateZ(-11deg) translate3d(0,-4px,16px)}}
    .input-card textarea{
        border:1px solid #d3deea!important;border-radius:12px!important;
        background:linear-gradient(145deg,#fff 0%,#fbfdff 100%)!important;
        box-shadow:inset 0 2px 5px rgba(30,57,83,.035),0 2px 0 rgba(255,255,255,.95)!important;
    }
    .input-card textarea:focus{outline:3px solid rgba(58,109,152,.14)!important;border-color:#6b98bc!important}
    .example-chip{border-radius:999px!important;background:#f2f6fa!important;border-color:#d9e3ed!important}
    .example-chip:hover,.example-chip:focus-visible{background:#fff!important;box-shadow:0 4px 9px rgba(29,57,86,.1)}
    .btn{border-radius:10px!important;transition:transform .18s ease,box-shadow .18s ease,background .18s ease!important}
    .btn-a{
        background:linear-gradient(145deg,#2a8067,#1d604e)!important;
        box-shadow:0 5px 0 #154638,0 8px 14px rgba(26,86,68,.2)!important;
    }
    .btn-a:hover{transform:translateY(-2px)!important;box-shadow:0 7px 0 #154638,0 12px 18px rgba(26,86,68,.24)!important}
    .btn-zh2en,.btn-ai,.btn-tts{
        border-radius:10px!important;background:linear-gradient(145deg,#fff,#f3f7fa)!important;
        box-shadow:0 3px 0 #d6e0e9,0 5px 10px rgba(28,51,74,.06)!important;
    }
    .btn-zh2en:hover,.btn-ai:hover,.btn-tts:hover{transform:translateY(-2px)!important;box-shadow:0 5px 0 #d6e0e9,0 9px 15px rgba(28,51,74,.11)!important}
    .resume-card,.today-card{
        border:1px solid #d8e2eb!important;border-radius:13px!important;
        background:linear-gradient(145deg,#fff,#f6f9fc)!important;
        box-shadow:0 8px 18px rgba(28,51,74,.065),inset 0 1px #fff!important;
    }
    .resume-btn{border-radius:8px!important;box-shadow:0 3px 0 #101f35,0 5px 8px rgba(16,31,53,.14)}
    .today-ring{border-radius:50%!important;background:linear-gradient(145deg,#e5f1eb,#cfe4d8)!important;box-shadow:inset 0 2px 5px rgba(41,98,72,.12)}
    .home-learning-group{
        border:1px solid #d4deea!important;border-radius:15px!important;padding:16px!important;
        background:linear-gradient(145deg,rgba(255,255,255,.9),rgba(242,247,251,.88))!important;
        box-shadow:0 9px 20px rgba(28,51,74,.055),inset 0 1px #fff;
    }
    .home-learning-heading{color:#536b84!important;letter-spacing:.6px!important}
    .home-learning-group .module-cards{
        border:0!important;border-bottom:0!important;gap:11px!important;overflow:visible!important;
    }
    .module-card{
        position:relative;z-index:0;overflow:hidden;
        min-height:144px!important;padding:15px 15px 13px!important;
        border:1px solid #d6e0e9!important;border-radius:12px!important;
        background:linear-gradient(150deg,#fff 0%,#fbfdff 65%,#f1f6fa 100%)!important;
        box-shadow:0 7px 0 #dfe7ee,0 10px 18px rgba(28,51,74,.08),inset 0 1px #fff!important;
        transform-style:preserve-3d;transition:transform .2s ease,box-shadow .2s ease,background .2s ease!important;
    }
    .module-card::before{
        display:block!important;content:"";position:absolute;top:0;left:16px;width:38px;height:4px;
        border-radius:0 0 5px 5px;background:linear-gradient(90deg,#c59a45,#edd18c);
    }
    .module-card:nth-child(2n){border-right:1px solid #d6e0e9!important}
    .home-foundation-grid .module-card:nth-child(3n){border-right:1px solid #d6e0e9!important}
    .module-card:hover,.workbench-shell .module-card:hover{
        z-index:2;transform:perspective(900px) translateY(-4px) rotateX(2deg) rotateY(-1deg)!important;
        background:linear-gradient(150deg,#fff 0%,#fafdff 65%,#eaf2f8 100%)!important;
        box-shadow:0 10px 0 #d7e2eb,0 18px 25px rgba(28,51,74,.15),inset 0 1px #fff!important;
    }
    .module-card-icon.learning-icon-decorated{
        border-radius:13px!important;background:linear-gradient(145deg,#eff6fc,#dce9f4)!important;
        box-shadow:inset 0 1px #fff,0 4px 8px rgba(38,72,102,.09);
    }
    .module-card-title{letter-spacing:.1px}
    .module-card-footer{border-color:#e2eaf1!important}
    .module-start{border-radius:8px!important;background:linear-gradient(145deg,#f8fbfd,#e9f1f7)!important;box-shadow:0 2px 0 #dbe5ed}
    .loading,.error,.result-card{border-radius:13px!important;box-shadow:0 8px 20px rgba(25,49,76,.065)!important}
    @media(max-width:1100px){
        .home-3d-stage{flex-basis:164px;width:164px;transform:scale(.88);transform-origin:right center;margin-left:0}
        .workbench-main{padding-left:20px;padding-right:20px}
    }
    @media(max-width:760px){
        .home-3d-stage{display:none!important}
        .workbench-main{padding-left:12px;padding-right:12px}
        .input-card{border-radius:14px!important}
        .home-hero-head{min-height:0!important;padding:16px 15px 14px!important}
        .home-learning-group{padding:12px!important;border-radius:13px!important}
        .home-learning-group .module-cards{gap:10px!important}
        .module-card{min-height:125px!important;box-shadow:0 4px 0 #dfe7ee,0 7px 12px rgba(28,51,74,.07)!important}
        .module-card:hover{transform:none!important}
    }
    @media(prefers-reduced-motion:reduce){
        .home-3d-book{animation:none!important}
        .workbench-nav button,.module-card,.btn{transition:none!important}
        .module-card:hover{transform:none!important}
    }




@keyframes ericShine{0%,100%{background-position:0% 50%;filter:drop-shadow(0 0 6px rgba(245,158,11,.3))}50%{background-position:100% 50%;filter:drop-shadow(0 0 16px rgba(251,191,36,.7))}}


/* ===== 统一错题中心：英语批注档案柜 ===== */
.mistake-center-bg{position:fixed;inset:0;z-index:10020;display:none;background:rgba(10,21,36,.52);backdrop-filter:blur(2px)}
.mistake-center-bg.open{display:block}
.mistake-center-panel{position:fixed;inset:53px 0 0;z-index:10021;display:none;overflow-y:auto;overflow-x:hidden;background:#f3f5f7;color:#233247}
.mistake-center-panel.open{display:block}
.mistake-center-header{position:sticky;top:0;z-index:3;display:flex;align-items:center;gap:14px;min-height:70px;padding:14px 22px;border-bottom:2px solid #b78a2d;background:#162a43;color:#fff}
.mistake-center-title{min-width:0;flex:1}
.mistake-center-title small{display:block;margin-bottom:3px;color:#d8c28e;font:600 9px/1.2 "Segoe UI",sans-serif;letter-spacing:.16em;text-transform:uppercase}
.mistake-center-title h2{margin:0;font-size:18px;font-weight:650;letter-spacing:.2px}
.mistake-center-header button{height:32px;padding:0 12px;border:1px solid #526178;border-radius:3px;background:transparent;color:#d6dde6;font:600 11px/30px "Segoe UI","Microsoft YaHei UI",sans-serif;cursor:pointer}
.mistake-center-header button:hover{background:#294767;color:#fff}
.mistake-center-main{width:min(1040px,100%);margin:0 auto;padding:26px 24px 50px;box-sizing:border-box}
.mistake-stats{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid #d9dfe6;background:#fff}
.mistake-stat{min-width:0;padding:16px 18px;border-right:1px solid #d9dfe6}
.mistake-stat:last-child{border-right:0}
.mistake-stat-label{display:flex;align-items:center;gap:7px;color:#687587;font-size:11px}
.mistake-stat-mark{width:8px;height:8px;border-radius:50%;background:#a64b45}
.mistake-stat.reviewing .mistake-stat-mark{background:#b78a2d}
.mistake-stat.mastered .mistake-stat-mark{background:#34705d}
.mistake-stat strong{display:block;margin-top:7px;color:#162a43;font:700 25px/1 Cambria,Georgia,serif}
.mistake-progress-card{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px 20px;align-items:center;margin-top:14px;padding:17px 18px;border:1px solid #d9dfe6;border-left:4px solid #b78a2d;background:linear-gradient(110deg,#fff 0%,#f7f8f8 100%)}
.mistake-progress-heading{display:flex;align-items:baseline;gap:10px;color:#526176;font-size:12px;font-weight:650}
.mistake-progress-heading strong{color:#162a43;font:700 28px/1 Cambria,Georgia,serif}
.mistake-progress-track{height:10px;margin-top:10px;overflow:hidden;border-radius:999px;background:#e3e8ed}
.mistake-progress-fill{width:0;height:100%;border-radius:inherit;background:linear-gradient(90deg,#b78a2d,#34705d);transition:width .25s ease}
.mistake-progress-details{display:flex;flex-wrap:wrap;gap:8px 16px;margin-top:9px;color:#687587;font-size:11px}
.mistake-progress-details b{color:#294767}
.mistake-progress-nudge{grid-column:1/2;margin:0;color:#526176;font-size:11px;line-height:1.6}
.mistake-progress-cta{grid-column:2/3;grid-row:1/4;min-height:36px;padding:0 14px;border:1px solid #294767;border-radius:4px;background:#294767;color:#fff;font-size:11px;font-weight:650;cursor:pointer}
.mistake-progress-cta:hover{background:#1b3857}
.mistake-progress-cta[hidden]{display:none}
.mistake-toolbar{display:flex;align-items:center;gap:0;margin-top:18px;border-bottom:1px solid #bcc6d1;overflow-x:auto;white-space:nowrap}
.mistake-filter{flex:0 0 auto;padding:10px 14px;border:0;border-bottom:3px solid transparent;background:transparent;color:#687587;font-size:12px;font-weight:600;cursor:pointer}
.mistake-filter:hover{color:#294767}
.mistake-filter.active{border-bottom-color:#b78a2d;color:#162a43}
.mistake-state-toolbar{display:flex;align-items:center;gap:7px;margin:12px 0 0;overflow-x:auto;white-space:nowrap}
.mistake-state-filter{flex:0 0 auto;padding:7px 11px;border:1px solid #cbd3dc;border-radius:3px;background:#fff;color:#59697d;font-size:11px;font-weight:600;cursor:pointer}
.mistake-state-filter:hover{border-color:#294767;color:#294767}
.mistake-state-filter.active{border-color:#294767;background:#eaf0f5;color:#162a43}
.mistake-list{border:1px solid #d9dfe6;border-top:0;background:#fff}
.mistake-row{position:relative;display:grid;grid-template-columns:minmax(0,1fr) 150px 78px 150px 82px;align-items:center;min-width:0;border-top:1px solid #e3e7ec}
.mistake-row:first-child{border-top:0}
.mistake-row::before{content:"";position:absolute;inset:0 auto 0 0;width:3px;background:#a64b45}
.mistake-row.status-reviewing::before{background:#b78a2d}
.mistake-row.status-mastered::before{background:#34705d}
.mistake-cell{min-width:0;padding:14px 12px;color:#445267;font-size:11px}
.mistake-summary{padding-left:18px}
.mistake-summary strong{display:block;overflow:hidden;color:#162a43;font:600 15px/1.35 Cambria,Georgia,"Microsoft YaHei",serif;text-overflow:ellipsis;white-space:nowrap}
.mistake-summary span{display:block;margin-top:5px;color:#7b8797;font-size:10px}
.mistake-knowledge{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mistake-count{text-align:center;font:700 17px/1 Cambria,Georgia,serif;color:#8f403b}
.mistake-status{font-weight:650}
.mistake-actions{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:7px;padding:0 12px 13px 18px}
.mistake-actions button{padding:6px 10px;border:1px solid #9ba8b7;border-radius:3px;background:#fff;color:#294767;font-size:11px;font-weight:600;cursor:pointer}
.mistake-actions button:hover{border-color:#294767;background:#edf2f7}
.mistake-actions .primary{border-color:#294767;background:#294767;color:#fff}
.mistake-detail{grid-column:1/-1;display:none;margin:0 12px 13px 18px;padding:12px 14px;border-left:3px solid #b78a2d;background:#f8f6ef;color:#445267;font-size:12px;line-height:1.7}
.mistake-detail.open{display:block}
.mistake-review-passage{max-height:340px;overflow:auto;margin:10px 0;padding:12px 14px;border:1px solid #d9e1e8;background:#fff;color:#243a52;line-height:1.75}
.mistake-review-passage-title,.mistake-review-question-title{display:block;margin-bottom:6px;color:#294767;font-size:12px;font-weight:700}
.mistake-review-question{margin:10px 0;padding:10px 12px;border-left:3px solid #b78a2d;background:#fff;color:#162a43;font-size:13px;font-weight:650}
.mistake-review-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin:9px 0}
.mistake-review-option{min-width:0;padding:9px 11px;border:1px solid #cad4df;border-radius:4px;background:#fff;color:#294767;text-align:left;font-size:12px;line-height:1.6;cursor:pointer}
.mistake-review-option:hover,.mistake-review-option[aria-pressed="true"]{border-color:#294767;background:#eaf0f5;color:#162a43}
.mistake-review-translation{margin:7px 0;color:#687587;font-size:11px}
.mistake-empty{padding:58px 20px;text-align:center}
.mistake-empty-potato{position:relative;width:68px;height:76px;margin:0 auto 18px;border:2px solid #8c672f;border-radius:48% 52% 46% 54%;background:#d5ae65}
.mistake-empty-potato::before{content:"•  •";position:absolute;top:22px;left:0;right:0;color:#27384d;font-size:20px;letter-spacing:8px;text-align:center;text-indent:8px}
.mistake-empty-potato::after{content:"⌣";position:absolute;top:39px;left:0;right:0;color:#7a4c2c;font-size:22px;text-align:center}
.mistake-empty h3{margin:0 0 7px;color:#162a43;font-size:16px}
.mistake-empty p{margin:0;color:#687587;font-size:12px;line-height:1.7}
.mistake-loading{padding:36px;text-align:center;color:#687587;font-size:12px}
@media(max-width:760px){
  .mistake-center-panel{inset:71px 0 0}
  .mistake-center-header{min-height:62px;padding:12px 14px}
  .mistake-center-main{padding:14px 10px 36px}
  .mistake-row{grid-template-columns:minmax(0,1fr) 74px 76px}
  .mistake-knowledge{grid-column:1/2}
  .mistake-review-time{display:none}
}
@media(max-width:390px){
  .mistake-center-panel{width:100%;max-width:100%;min-width:0}
  .mistake-center-header{gap:7px}
  .mistake-center-title small{display:none}
  .mistake-center-title h2{font-size:15px}
  .mistake-center-header button{padding:0 7px;font-size:9px}
  .mistake-center-main{width:100%;min-width:0;padding:10px 7px 28px}
  .mistake-stat{min-width:0;padding:12px 8px}
  .mistake-stat-label{font-size:9px}
  .mistake-stat strong{font-size:21px}
  .mistake-progress-card{grid-template-columns:minmax(0,1fr);gap:10px;padding:13px 11px}
  .mistake-progress-cta{grid-column:1;grid-row:auto;width:100%}
  .mistake-progress-nudge{grid-column:1}
  .mistake-progress-details{gap:6px 10px;font-size:10px}
  .mistake-progress-heading strong{font-size:24px}
  .mistake-filter{padding:9px 10px;font-size:10px}
  .mistake-state-filter{padding:7px 8px;font-size:10px}
  .mistake-row{grid-template-columns:minmax(0,1fr) 58px}
  .mistake-knowledge{grid-column:1/2}
  .mistake-count{grid-column:2/3;grid-row:1/2}
  .mistake-status{grid-column:2/3}
  .mistake-summary strong{white-space:normal;word-break:break-word}
  .mistake-actions{gap:5px}
  .mistake-actions button{padding:6px 7px;font-size:10px}
}
.shared-materials-body{max-width:none!important;padding:24px!important;background:#f2f4f6!important}
.shared-materials-page{max-width:1120px;margin:0 auto;color:#24364b}
.shared-materials-hero{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:22px 26px;margin-bottom:18px;border:1px solid #cdd6df;border-left:4px solid #bd963f;border-radius:8px;background:linear-gradient(115deg,#fffdf8 0%,#edf2f6 100%);box-shadow:0 5px 16px rgba(23,54,93,.06)}
.shared-materials-hero h3{margin:0;color:#17365d;font-size:23px;letter-spacing:.2px}.shared-materials-hero p{margin:7px 0 0;color:#68798b;font-size:13px;line-height:1.65}.shared-materials-hero-mark{width:54px;height:54px;display:grid;place-items:center;flex:none;border:1px solid #d9c58f;border-radius:50%;background:#fff;color:#17365d;font-size:25px}
.shared-materials-gate{max-width:500px;margin:56px auto;padding:30px;border:1px solid #d7e0e8;border-radius:10px;background:#fff;box-shadow:0 14px 40px rgba(23,54,93,.1)}
.shared-materials-auth-backdrop{position:fixed;inset:0;z-index:10010;display:grid;place-items:center;padding:16px;background:rgba(12,25,41,.58)}.shared-materials-auth-backdrop .shared-materials-gate{width:min(500px,100%);box-sizing:border-box;margin:0}
.shared-materials-gate h3{margin:0 0 8px;color:#17365d;font-size:19px}.shared-materials-gate p{margin:0 0 18px;color:#6b7787;font-size:13px;line-height:1.6}.shared-materials-gate input,.shared-materials-editor input[type=text]{width:100%;height:42px;box-sizing:border-box;padding:0 12px;border:1px solid #cbd5df;border-radius:6px;background:#fff;color:#26384e;font-size:14px;outline:none}.shared-materials-gate input:focus,.shared-materials-editor input[type=text]:focus{border-color:#54749b;box-shadow:0 0 0 3px rgba(84,116,155,.13)}
.shared-materials-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px;padding:12px 14px;border:1px solid #d8e0e7;border-radius:8px;background:#fff}.shared-materials-toolbar-note{color:#69798a;font-size:12px}.shared-materials-actions{display:flex;flex-wrap:wrap;gap:8px}
.shared-materials-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:34px;padding:0 13px;border:1px solid #c5d0db;border-radius:6px;background:#fff;color:#294767;font-size:12px;font-weight:700;cursor:pointer;transition:background .15s,border-color .15s,transform .15s}.shared-materials-btn:hover{transform:translateY(-1px);border-color:#8da3b8;background:#f7f9fb}.shared-materials-btn.primary{border-color:#17365d;background:#17365d;color:#fff}.shared-materials-btn.primary:hover{background:#234a78}.shared-materials-btn.danger{border-color:#e3bdb8;color:#9c3d35}.shared-materials-btn.danger:hover{background:#fff6f4}.shared-materials-btn:disabled{opacity:.55;cursor:wait;transform:none}
.shared-materials-list{display:grid;gap:10px}.shared-material-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:16px;padding:15px 17px;border:1px solid #d9e1e8;border-radius:8px;background:#fff;box-shadow:0 2px 7px rgba(20,42,66,.035)}.shared-material-main{display:flex;align-items:center;gap:13px;min-width:0}.shared-material-icon{width:40px;height:44px;display:grid;place-items:center;flex:none;border:1px solid #dbe2e8;border-radius:6px;background:#f5f7f9;font-size:21px}.shared-material-meta{min-width:0}.shared-material-title{overflow:hidden;color:#233a54;font-size:14px;font-weight:700;text-overflow:ellipsis;white-space:nowrap}.shared-material-subtitle{margin-top:5px;color:#7a8795;font-size:11px;overflow-wrap:anywhere}.shared-material-row-actions{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:6px}.shared-material-empty,.shared-material-status{padding:25px 16px;border:1px dashed #ccd6df;border-radius:8px;background:#fff;color:#728091;text-align:center;font-size:13px}.shared-material-status.error{border-color:#edc5bf;background:#fff7f5;color:#a13e34}.shared-material-status.loading{border-style:solid}
.shared-materials-editor-backdrop{position:fixed;inset:0;z-index:10005;display:grid;place-items:center;padding:16px;background:rgba(12,25,41,.48)}.shared-materials-editor{width:min(500px,100%);padding:24px;border:1px solid #cbd6df;border-radius:10px;background:#fff;box-shadow:0 18px 60px rgba(0,0,0,.25)}.shared-materials-editor h3{margin:0 0 15px;color:#17365d}.shared-materials-editor label{display:block;margin:12px 0 6px;color:#516274;font-size:12px;font-weight:700}.shared-materials-editor input[type=file]{display:block;width:100%;box-sizing:border-box;padding:10px;border:1px dashed #b9c6d2;border-radius:6px;background:#f8fafb;color:#4d5f71}.shared-materials-editor-status{min-height:20px;margin-top:10px;color:#68798b;font-size:12px}.shared-materials-editor-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:14px}
@media(max-width:650px){.shared-materials-body{padding:14px!important}.shared-materials-hero{padding:17px;align-items:flex-start}.shared-materials-hero h3{font-size:19px}.shared-materials-hero-mark{width:42px;height:42px;font-size:20px}.shared-materials-toolbar{align-items:flex-start;flex-direction:column}.shared-material-row{grid-template-columns:1fr;gap:12px;padding:13px}.shared-material-row-actions{justify-content:flex-start}.shared-materials-gate{margin:30px auto;padding:22px}}


@keyframes bounce{0%,100%{transform:translateY(0)}50%{transform:translateY(-12px)}}






/* ===== SPELLING ARCADE GAME STYLES ===== */
.spelling-launcher{
  position:fixed;bottom:72px;right:16px;z-index:8999;
  width:52px;height:52px;border-radius:50%;
  background:linear-gradient(145deg,#ff6b35 0%,#f7931e 100%);
  color:#fff;border:3px solid #ffd700;cursor:pointer;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  font-size:22px;box-shadow:0 4px 20px rgba(255,107,53,.45);
  transition:transform .15s,box-shadow .15s;
  animation:spLauncherPulse 2s ease-in-out infinite;
}
.spelling-launcher:hover{transform:scale(1.12);box-shadow:0 6px 28px rgba(255,107,53,.65)}
.spelling-launcher:active{transform:scale(.92)}
.spelling-launcher-label{font-size:8px;line-height:1;margin-top:-1px;font-weight:700}
@keyframes spLauncherPulse{
  0%,100%{box-shadow:0 4px 20px rgba(255,107,53,.45)}
  50%{box-shadow:0 4px 28px rgba(255,215,0,.70),0 0 40px rgba(255,107,53,.35)}
}
/* Overlay */
.spelling-overlay{
  position:fixed;top:0;left:0;width:100%;height:100%;z-index:99999;
  background:linear-gradient(180deg,#0a0a1a 0%,#1a0a2e 20%,#0d1b2a 60%,#0a0a1a 100%);
  display:none;flex-direction:column;align-items:center;justify-content:center;
  font-family:'Courier New','Microsoft YaHei',monospace;
}
.spelling-overlay.open{display:flex}
/* Canvas particle layer */
#spParticles{position:fixed;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:100001}
.spelling-game{width:100%;max-width:100%;padding:2vw 4vw;text-align:center;position:relative;z-index:100000}
/* Shared screen */
.spelling-screen{display:none;flex-direction:column;align-items:center;gap:clamp(8px,1.5vw,20px)}
.spelling-screen.active{display:flex}
/* Title */
.spelling-title-word{
  font-size:clamp(48px,8vw,96px);font-weight:900;color:transparent;
  background:linear-gradient(180deg,#ffd700 0%,#ff8c00 50%,#ff4500 100%);
  -webkit-background-clip:text;background-clip:text;
  text-shadow:none;letter-spacing:3px;
  animation:spTitleBounce .6s ease-out;
}
@keyframes spTitleBounce{
  0%{transform:scale(0) rotate(-10deg)}
  60%{transform:scale(1.15) rotate(2deg)}
  100%{transform:scale(1) rotate(0)}
}
.spelling-subtitle{color:#ffd700;font-size:clamp(14px,2.5vw,22px);opacity:.85;letter-spacing:2px}
.spelling-start-hint{color:#fff;font-size:clamp(16px,3vw,24px);animation:spBlink 1s ease-in-out infinite;margin-top:12px}
.sp-battle-mistakes{width:min(700px,100%);margin:12px auto 0;padding:12px 14px;border:1px solid rgba(255,215,120,.3);border-radius:12px;background:rgba(7,24,45,.72);text-align:left;color:#dcecff;box-shadow:0 8px 24px rgba(0,0,0,.22)}
.sp-battle-mistakes h3{margin:0 0 8px;color:#ffd875;font-size:15px}
.sp-battle-mistakes-empty{color:#9fb4c9;font-size:12px;text-align:center;padding:5px}
.sp-battle-mistake-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:7px;align-items:center;padding:8px 0;border-top:1px solid rgba(255,255,255,.12)}
.sp-battle-mistake-word{font:700 16px Cambria,Georgia,serif;color:#fff}
.sp-battle-mistake-meta{display:block;margin-top:3px;color:#a9bfd2;font-size:11px}
.sp-battle-mistake-actions{display:flex;gap:5px;flex-wrap:wrap;justify-content:flex-end}
.sp-battle-mistake-actions button{padding:5px 8px;border:1px solid #6e91ad;border-radius:6px;background:#173955;color:#fff;font-size:11px;cursor:pointer}
.sp-battle-mistake-actions button:hover{background:#285b80}
.sp-battle-mistake-actions .ok{border-color:#77d5a2;background:#216a51}
.sp-battle-mistake-answer{grid-column:1/-1;display:none;padding:7px 9px;border-left:3px solid #ffd875;background:rgba(255,216,117,.08);color:#f8e7b1;font-size:12px;line-height:1.6}
.sp-battle-mistake-answer.open{display:block}
@keyframes spBlink{0%,100%{opacity:.4}50%{opacity:1}}
.sp-rank-badge{background:linear-gradient(135deg,rgba(255,215,0,.12),rgba(255,140,0,.08));border:1px solid rgba(255,215,0,.25);border-radius:10px;padding:clamp(8px,1.5vw,14px) clamp(12px,2vw,20px);text-align:center;font-size:clamp(14px,2vw,20px);color:#ffd700;max-width:clamp(300px,50vw,500px);margin:0 auto}
.sp-rank-badge .sp-rank-num{font-size:clamp(26px,4vw,40px);font-weight:900;color:#ffd700;text-shadow:0 0 12px rgba(255,215,0,.5)}
.sp-rank-badge .sp-rank-detail{color:#ccc;font-size:clamp(12px,1.6vw,16px);line-height:1.6}
.sp-rank-badge .sp-rank-champion{font-size:clamp(18px,2.8vw,28px);font-weight:900;background:linear-gradient(90deg,#ffd700,#ffec99,#ffd700);-webkit-background-clip:text;background-clip:text;color:transparent;animation:spChampGlow 2s ease-in-out infinite}
@keyframes spChampGlow{0%,100%{filter:brightness(1)}50%{filter:brightness(1.4)}}
.sp-rank-badge .sp-rank-fire{font-size:clamp(16px,2.5vw,22px);font-weight:700;color:#ff9800}
.spelling-char-preview{display:flex;gap:clamp(20px,5vw,60px);align-items:center;margin:clamp(10px,2vw,24px) 0}
.spelling-char-preview .char{text-align:center}
.spelling-char-preview .char .avatar{font-size:clamp(48px,8vw,96px);display:block}
.spelling-char-preview .char .self-avatar{
  display:block;width:clamp(48px,8vw,96px);height:clamp(48px,8vw,96px);
  line-height:clamp(48px,8vw,96px);text-align:center;
  background:linear-gradient(135deg,#2196f3,#64b5f6);border-radius:50%;
  font-size:clamp(28px,4.5vw,56px);font-weight:900;color:#fff;
  box-shadow:0 0 16px rgba(33,150,243,.5);margin:0 auto;font-family:'Microsoft YaHei',sans-serif
}
.spelling-char-preview .char .name{color:#ddd;font-size:clamp(13px,2vw,18px);margin-top:6px}
.spelling-char-preview .vs-text{font-size:clamp(28px,5vw,48px);color:#ff4444;font-weight:900;text-shadow:0 0 20px rgba(255,0,0,.6)}
/* VS Screen */
.spelling-vs-flash{
  font-size:clamp(60px,10vw,120px);font-weight:900;color:#ff4444;
  animation:spVSFlash .5s ease-out;
  text-shadow:0 0 40px rgba(255,0,0,.8),0 0 80px rgba(255,0,0,.4);
}
@keyframes spVSFlash{
  0%{transform:scale(3);opacity:0}
  50%{transform:scale(.9);opacity:1}
  100%{transform:scale(1);opacity:1}
}
/* Battle */
.spelling-hud{width:100%;display:flex;align-items:center;gap:clamp(6px,1vw,16px);padding:0 8px}
.spelling-hp-bar-wrap{flex:1;height:clamp(18px,3vw,30px);background:rgba(255,255,255,.08);border-radius:clamp(9px,1.5vw,15px);overflow:hidden;position:relative;border:2px solid rgba(255,255,255,.15)}
.spelling-hp-bar{height:100%;border-radius:clamp(7px,1.2vw,13px);transition:width .35s cubic-bezier(.4,0,.2,1)}
.spelling-hp-bar.student{background:linear-gradient(90deg,#2196f3,#64b5f6);box-shadow:0 0 12px rgba(33,150,243,.5)}
.spelling-hp-bar.opponent{background:linear-gradient(90deg,#f44336,#ef5350);box-shadow:0 0 12px rgba(244,67,54,.5)}
.spelling-hp-text{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:clamp(12px,1.6vw,16px);color:#fff;font-weight:700;text-shadow:0 1px 2px rgba(0,0,0,.6)}
.spelling-hp-label{color:#fff;font-size:clamp(12px,1.8vw,18px);font-weight:700;min-width:48px;text-align:center}
/* Arena */
.spelling-arena{display:flex;align-items:flex-end;justify-content:space-between;width:100%;padding:0 clamp(10px,3vw,40px);min-height:clamp(80px,15vw,180px);position:relative}
.spelling-fighter{text-align:center;transition:transform .2s}
.spelling-fighter .fighter-avatar{font-size:clamp(48px,8vw,96px);display:block;transition:all .2s}
.spelling-fighter .self-fighter-avatar{
  display:block;width:clamp(48px,8vw,96px);height:clamp(48px,8vw,96px);
  line-height:clamp(48px,8vw,96px);text-align:center;
  background:linear-gradient(135deg,#2196f3,#64b5f6);border-radius:50%;
  font-size:clamp(28px,4.5vw,56px);font-weight:900;color:#fff;
  box-shadow:0 0 16px rgba(33,150,243,.5);margin:0 auto;font-family:'Microsoft YaHei',sans-serif;
  transition:all .2s
}
.spelling-fighter.ko .self-fighter-avatar{filter:grayscale(1);opacity:.4;transform:rotate(90deg) scale(.6)}
.spelling-fighter .fighter-name{color:#ddd;font-size:clamp(13px,2vw,18px);margin-top:4px}
.spelling-fighter .fighter-hp-num{color:#ff4444;font-size:clamp(12px,1.8vw,16px);font-weight:700}
.spelling-fighter.attacking{animation:spAttack .4s ease-out}
.spelling-fighter.hurting{animation:spHurt .5s ease-out}
@keyframes spAttack{
  0%{transform:translateX(0)}
  40%{transform:translateX(60px) scale(1.15)}
  100%{transform:translateX(0) scale(1)}
}
@keyframes spHurt{
  0%{transform:translateX(0)}
  25%{transform:translateX(-12px)}
  50%{transform:translateX(8px)}
  75%{transform:translateX(-5px)}
  100%{transform:translateX(0)}
}
.spelling-fighter.ko .fighter-avatar{filter:grayscale(1);opacity:.4;transform:rotate(90deg) scale(.6)}
/* Question zone */
.spelling-question-zone{
  background:rgba(255,255,255,.06);border:2px solid rgba(255,255,255,.1);
  border-radius:18px;padding:clamp(16px,2vw,32px) clamp(20px,3vw,40px);
  min-width:clamp(240px,50vw,500px)
}
.spelling-question-type{
  color:#ffd700;font-size:clamp(12px,1.8vw,16px);text-transform:uppercase;letter-spacing:2px;margin-bottom:8px
}
.spelling-question-text{color:#fff;font-size:clamp(24px,4vw,42px);font-weight:700;margin:8px 0;letter-spacing:2px}
.spelling-hint{color:#aaa;font-size:clamp(13px,2vw,18px);margin-top:4px}
.spelling-input{
  background:rgba(255,255,255,.12);border:2px solid rgba(255,215,0,.4);
  color:#fff;font-size:clamp(20px,3vw,28px);padding:clamp(8px,1.2vw,14px) clamp(14px,2vw,22px);border-radius:12px;
  width:clamp(200px,40vw,360px);text-align:center;outline:none;letter-spacing:3px;
  transition:border-color .2s,box-shadow .2s
}
.spelling-input:focus{border-color:#ffd700;box-shadow:0 0 20px rgba(255,215,0,.3)}
.spelling-input.wrong{animation:spShake .5s;border-color:#f44336;box-shadow:0 0 20px rgba(244,67,54,.4)}
@keyframes spShake{
  0%,100%{transform:translateX(0)}
  20%{transform:translateX(-8px)}
  40%{transform:translateX(8px)}
  60%{transform:translateX(-5px)}
  80%{transform:translateX(5px)}
}
.spelling-input.correct{animation:spPop .35s ease-out;border-color:#4caf50;box-shadow:0 0 24px rgba(76,175,80,.5)}
@keyframes spPop{0%{transform:scale(1)}50%{transform:scale(1.08)}100%{transform:scale(1)}}
/* Timer ring */
.spelling-timer-wrap{position:relative;width:clamp(48px,7vw,72px);height:clamp(48px,7vw,72px);margin:0 auto}
.spelling-timer-ring{transform:rotate(-90deg)}
.spelling-timer-ring .bg{fill:none;stroke:rgba(255,255,255,.1);stroke-width:4}
.spelling-timer-ring .fg{fill:none;stroke:#ffd700;stroke-width:4;stroke-linecap:round;transition:stroke-dashoffset .3s linear,stroke .3s}
.spelling-timer-ring .fg.urgent{stroke:#f44336}
.spelling-timer-text{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:clamp(18px,2.5vw,26px);color:#fff;font-weight:700}
/* Combo/Score */
.spelling-stats{display:flex;gap:clamp(12px,2vw,32px);justify-content:center;flex-wrap:wrap}
.spelling-stat{color:#fff;text-align:center}
.spelling-stat .stat-val{font-size:clamp(22px,3.5vw,32px);font-weight:900;color:#ffd700}
.spelling-stat .stat-label{font-size:clamp(11px,1.5vw,14px);color:#aaa;letter-spacing:1px}
/* Hit effects */
.spelling-effect{
  position:absolute;font-weight:900;pointer-events:none;z-index:10;
  animation:spEffectPop .8s ease-out forwards
}
@keyframes spEffectPop{
  0%{transform:scale(.5) translateY(0);opacity:1}
  50%{transform:scale(1.2) translateY(-20px);opacity:.9}
  100%{transform:scale(.8) translateY(-50px);opacity:0}
}
.spelling-effect.hit{color:#ffd700;text-shadow:0 0 20px rgba(255,215,0,.7)}
.spelling-effect.miss{color:#f44336;text-shadow:0 0 20px rgba(244,67,54,.7)}
.spelling-effect.combo{color:#ff6d00;text-shadow:0 0 20px rgba(255,109,0,.7);font-size:22px}
.spelling-effect.ko{
  color:#ff0;font-size:64px;text-shadow:0 0 40px rgba(255,255,0,.8),0 0 80px rgba(255,0,0,.6);
  animation:spKOPop 1.2s ease-out forwards
}
@keyframes spKOPop{
  0%{transform:scale(3) rotate(-15deg);opacity:0}
  20%{transform:scale(1) rotate(0);opacity:1}
  80%{transform:scale(1.1);opacity:.8}
  100%{transform:scale(1.5);opacity:0}
}
/* Screen shake */
.spelling-shake{animation:spScreenShake .4s ease-out}
@keyframes spScreenShake{
  0%,100%{transform:translate(0)}
  15%{transform:translate(-6px,3px)}
  30%{transform:translate(6px,-3px)}
  45%{transform:translate(-4px,-2px)}
  60%{transform:translate(4px,2px)}
  75%{transform:translate(-2px,1px)}
}
/* Game Over */
.spelling-gameover-title{font-size:clamp(38px,6vw,60px);font-weight:900;color:#f44336;letter-spacing:2px}
.spelling-result-row{display:flex;gap:clamp(20px,4vw,50px);justify-content:center;flex-wrap:wrap;margin:16px 0}
.spelling-result-item{text-align:center}
.spelling-result-item .val{font-size:clamp(28px,4.5vw,40px);font-weight:900;color:#ffd700}
.spelling-result-item .lbl{font-size:clamp(11px,1.5vw,14px);color:#aaa}
.spelling-ranking{color:#4caf50;font-size:clamp(16px,2.5vw,24px);margin:8px 0}
/* Buttons */
.spelling-btn{
  background:linear-gradient(180deg,#ff6b35,#e65100);
  color:#fff;border:2px solid #ffd700;border-radius:30px;
  padding:clamp(10px,1.5vw,16px) clamp(28px,5vw,48px);font-size:clamp(16px,2.2vw,22px);font-weight:700;cursor:pointer;
  letter-spacing:1px;transition:all .15s;text-shadow:0 1px 2px rgba(0,0,0,.4)
}
.spelling-btn:hover{transform:scale(1.05);box-shadow:0 4px 24px rgba(255,107,53,.5)}
.spelling-btn:active{transform:scale(.95)}
.spelling-btn.secondary{
  background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.2);color:#ccc
}
.spelling-btn.secondary:hover{box-shadow:0 4px 16px rgba(255,255,255,.1)}
/* Close button */
.spelling-close{
  position:fixed;top:clamp(10px,2vw,18px);right:clamp(14px,2vw,24px);z-index:100002;
  color:rgba(255,255,255,.5);font-size:clamp(28px,4vw,36px);cursor:pointer;
  background:none;border:none;transition:color .2s
}
.spelling-close:hover{color:#fff}
/* Options grid for choice questions */
.spelling-options{display:grid;grid-template-columns:1fr 1fr;gap:clamp(8px,1.2vw,14px);width:100%;max-width:clamp(360px,55vw,600px)}
.spelling-option-btn{
  background:rgba(255,255,255,.08);border:2px solid rgba(255,255,255,.15);
  border-radius:12px;padding:clamp(10px,1.5vw,16px);color:#fff;font-size:clamp(15px,2vw,20px);
  cursor:pointer;transition:all .15s;text-align:center;letter-spacing:1px
}
.spelling-option-btn:hover{background:rgba(255,215,0,.12);border-color:rgba(255,215,0,.4)}
.spelling-option-btn:active{transform:scale(.95)}
.spelling-option-btn .opt-label{font-size:clamp(12px,1.5vw,15px);color:#ffd700;display:block;margin-bottom:4px}
/* My-name-in-leaderboard glow */
.sp-my-row{font-size:clamp(14px,1.8vw,18px)!important;font-weight:900!important;color:#fff!important;
  text-shadow:0 0 8px #ffd700,0 0 16px #ff8c00,0 0 24px #ff4500;
  animation:spMyGlow 1.8s ease-in-out infinite;background:rgba(255,215,0,.08);border-radius:6px}
@keyframes spMyGlow{0%,100%{text-shadow:0 0 8px #ffd700,0 0 16px #ff8c00,0 0 24px #ff4500}
50%{text-shadow:0 0 14px #fff,0 0 24px #ffd700,0 0 36px #ff8c00,0 0 50px #ff4500}}



/* ===== WORD BATTLE REDESIGN: editorial arena, calm and high-contrast ===== */
:root{
  --battle-ink:#17212b;
  --battle-navy:#1e3040;
  --battle-paper:#f5f0e8;
  --battle-paper-2:#ebe3d6;
  --battle-orange:#d95732;
  --battle-orange-dark:#a83d24;
  --battle-teal:#2e7774;
  --battle-line:rgba(23,33,43,.18);
}
.spelling-launcher{
  width:auto;height:44px;min-width:88px;padding:0 16px;bottom:72px;right:18px;
  border:1px solid rgba(255,255,255,.68);border-radius:6px;
  background:var(--battle-orange);color:#fff;box-shadow:0 8px 22px rgba(33,28,22,.22);
  animation:none;flex-direction:row;gap:8px;font:700 13px/1 "Microsoft YaHei",sans-serif;
  letter-spacing:.08em;transition:background .2s,transform .2s,box-shadow .2s;
}
.spelling-launcher:hover{transform:translateY(-2px);background:var(--battle-orange-dark);box-shadow:0 12px 28px rgba(33,28,22,.28)}
.spelling-launcher:active{transform:translateY(0)}
.spelling-launcher-label{font-size:13px;line-height:1;margin:0}
.spelling-overlay{
  background:var(--battle-navy);font-family:"Microsoft YaHei","PingFang SC",sans-serif;
  color:var(--battle-paper);isolation:isolate;overflow:auto;
}
.spelling-overlay:before{
  content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;opacity:.32;
  background-image:linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px);
  background-size:28px 28px;
}
#spParticles{opacity:.04}
.spelling-close{
  top:20px;right:24px;width:38px;height:38px;border:1px solid rgba(245,240,232,.35);border-radius:50%;
  color:rgba(245,240,232,.72);font:400 20px/1 Georgia,serif;background:rgba(23,33,43,.42);
}
.spelling-close:hover{color:#fff;border-color:#fff;background:rgba(23,33,43,.75)}
.spelling-game{max-width:1180px;padding:52px 30px 38px;text-align:left}
.spelling-screen{width:100%;gap:20px;animation:spScreenIn .38s ease-out both}
@keyframes spScreenIn{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
.spelling-screen.active{display:flex}
#spTitle.active{align-items:stretch;max-width:920px;margin:0 auto;padding:42px 54px 34px;border:1px solid rgba(245,240,232,.22);background:var(--battle-paper);color:var(--battle-ink);box-shadow:0 24px 70px rgba(8,15,21,.28);position:relative;overflow:hidden}
#spTitle.active:before{content:"WORD BATTLE / 练习场";display:block;color:var(--battle-orange);font:700 12px/1.2 "Microsoft YaHei",sans-serif;letter-spacing:.18em;border-bottom:1px solid var(--battle-line);padding-bottom:14px}
.spelling-title-word{font:700 clamp(46px,7vw,84px)/.96 Georgia,"Times New Roman",serif;letter-spacing:-.045em;color:var(--battle-ink);background:none;-webkit-text-fill-color:initial;text-shadow:none;animation:none;margin-top:18px}
.spelling-title-word:after{content:"";display:block;width:74px;height:5px;background:var(--battle-orange);margin-top:22px}
.spelling-subtitle{color:var(--battle-ink);font-size:14px;letter-spacing:.12em;opacity:.66;margin-top:0}
.spelling-char-preview{width:100%;margin:12px 0 4px;padding:18px 0;display:flex;justify-content:flex-start;gap:24px;border-bottom:1px solid var(--battle-line)}
.spelling-char-preview .char{min-width:112px;text-align:left;display:flex;align-items:center;gap:11px}
.spelling-char-preview .char .avatar,.spelling-char-preview .char .self-avatar{font-size:26px;width:44px;height:44px;line-height:44px;border-radius:50%;box-shadow:none}
.spelling-char-preview .char .self-avatar{background:var(--battle-ink);font-size:18px}
.spelling-char-preview .char .avatar{background:var(--battle-paper-2);display:inline-block;text-align:center}
.spelling-char-preview .char .name{color:var(--battle-ink);font-size:14px;margin:0;font-weight:700}
.spelling-char-preview .vs-text{font:700 17px/44px Georgia,serif;color:var(--battle-orange);text-shadow:none}
#spPlayerName{align-self:flex-start;width:280px!important;margin:4px 0 0!important;background:transparent;color:var(--battle-ink);border:0;border-bottom:2px solid var(--battle-ink);border-radius:0;padding:10px 0;font:16px/1.4 "Microsoft YaHei",sans-serif;letter-spacing:0;text-align:left;box-shadow:none}
#spPlayerName:focus{border-bottom-color:var(--battle-orange);box-shadow:none}
#spPlayerName::placeholder{color:rgba(23,33,43,.48)}
.spelling-start-hint{color:var(--battle-orange-dark);font-size:13px;opacity:1;animation:none;margin-top:3px;letter-spacing:.04em}
#spRankBadge{margin-top:4px!important;min-height:0!important}
.sp-rank-badge{max-width:none;margin:0;background:transparent;border:0;border-left:3px solid var(--battle-teal);border-radius:0;padding:4px 12px;color:var(--battle-ink);text-align:left;font-size:13px}
.sp-rank-badge .sp-rank-num{font-size:22px;color:var(--battle-teal);text-shadow:none}
.sp-rank-badge .sp-rank-detail{color:rgba(23,33,43,.66);font-size:12px}
.sp-rank-badge .sp-rank-champion,.sp-rank-badge .sp-rank-fire{color:var(--battle-orange-dark);background:none;-webkit-text-fill-color:initial;animation:none}
#spTitleTop100{width:100%!important;max-width:none!important;max-height:150px!important;margin-top:12px!important;padding:12px 0 0!important;border-top:1px solid var(--battle-line);color:rgba(23,33,43,.62)!important;font-size:12px!important;line-height:1.8!important}
#spTitleTop100>div:first-child{color:var(--battle-ink)!important;font-weight:700;letter-spacing:.08em}
#spVS.active{min-height:480px;justify-content:center;align-items:center}
.spelling-vs-flash{font:700 clamp(82px,15vw,180px)/.8 Georgia,serif;color:var(--battle-paper);text-shadow:none;letter-spacing:-.08em;animation:spVSQuiet .5s ease-out}
@keyframes spVSQuiet{from{opacity:0;transform:scale(1.14)}to{opacity:1;transform:none}}
#spBattle.active{gap:18px}
.spelling-hud{width:100%;display:grid;grid-template-columns:minmax(95px,.22fr) 1fr 45px 1fr minmax(95px,.22fr);gap:12px;align-items:center;padding:0 0 18px;border-bottom:1px solid rgba(245,240,232,.22)}
.spelling-hp-label{min-width:0!important;color:var(--battle-paper)!important;font-size:12px!important;font-weight:700;letter-spacing:.06em}
.spelling-hp-label:last-child{text-align:right}
.spelling-hp-bar-wrap{height:12px;background:rgba(245,240,232,.14);border:0;border-radius:2px}
.spelling-hp-bar{border-radius:2px;box-shadow:none!important;transition:width .4s ease}
.spelling-hp-bar.student{background:var(--battle-teal)}
.spelling-hp-bar.opponent{background:var(--battle-orange)}
.spelling-hp-text{font:700 11px/1 "Microsoft YaHei",sans-serif;color:#fff;font-variant-numeric:tabular-nums}
.spelling-hud>span:nth-of-type(2){color:var(--battle-paper)!important;font:700 12px/1 Georgia,serif!important;opacity:.65}
.spelling-stats{align-self:flex-end;display:flex;gap:0;justify-content:flex-end;border:1px solid rgba(245,240,232,.22);margin-top:-60px;margin-bottom:8px}
.spelling-stat{min-width:90px;padding:9px 15px;border-left:1px solid rgba(245,240,232,.18);text-align:center}
.spelling-stat:first-child{border-left:0}
.spelling-stat .stat-val{font:700 22px/1 Georgia,serif;color:var(--battle-paper)}
.spelling-stat .stat-label{font-size:10px;color:rgba(245,240,232,.56);letter-spacing:.12em;margin-top:5px}
.spelling-arena{display:grid;grid-template-columns:150px minmax(420px,1fr) 150px;align-items:center;gap:34px;width:100%;padding:24px 0 10px;min-height:480px}
.spelling-fighter{padding:18px 10px;text-align:center;border-top:1px solid rgba(245,240,232,.25);border-bottom:1px solid rgba(245,240,232,.25);transition:transform .2s}
.spelling-fighter .fighter-avatar,.spelling-fighter .self-fighter-avatar{font-size:44px;width:70px;height:70px;line-height:70px;margin:0 auto 12px;display:block;border-radius:50%;box-shadow:none}
.spelling-fighter .self-fighter-avatar{background:var(--battle-paper);color:var(--battle-ink);font-size:24px}
.spelling-fighter .fighter-avatar{background:rgba(245,240,232,.1)}
.spelling-fighter .fighter-name{color:var(--battle-paper);font-size:13px;font-weight:700;margin-top:0}
.spelling-fighter .fighter-hp-num{color:rgba(245,240,232,.6);font-size:11px;margin-top:6px}
.spelling-fighter.ko .self-fighter-avatar,.spelling-fighter.ko .fighter-avatar{filter:grayscale(1);opacity:.35;transform:none}
.spelling-question-zone{width:100%;min-width:0;background:var(--battle-paper);border:0;border-radius:3px;padding:30px 34px 36px;box-shadow:0 18px 42px rgba(8,15,21,.2);color:var(--battle-ink)}
.spelling-timer-wrap{width:54px;height:54px;margin:0 0 15px auto}
.spelling-timer-ring .bg{stroke:rgba(23,33,43,.12)}
.spelling-timer-ring .fg{stroke:var(--battle-orange);stroke-width:4}
.spelling-timer-ring .fg.urgent{stroke:var(--battle-orange-dark)}
.spelling-timer-text{color:var(--battle-ink);font-size:15px}
.spelling-question-type{color:var(--battle-teal);font-size:11px;letter-spacing:.16em;margin-bottom:18px;font-weight:700}
.spelling-question-text{color:var(--battle-ink);font:700 clamp(34px,5vw,64px)/1.08 Georgia,serif;letter-spacing:-.03em;margin:0 0 12px}
.spelling-hint{color:rgba(23,33,43,.62);font-size:14px;min-height:20px}
.spelling-input{display:block;width:100%;box-sizing:border-box;background:transparent;color:var(--battle-ink);border:0;border-bottom:2px solid var(--battle-ink);border-radius:0;padding:12px 0;margin-top:25px;font:700 24px/1.3 Georgia,serif;letter-spacing:.04em;text-align:left;box-shadow:none}
.spelling-input:focus{border-bottom-color:var(--battle-orange);box-shadow:none}
.spelling-input::placeholder{color:rgba(23,33,43,.35);font:400 15px/1.3 "Microsoft YaHei",sans-serif;letter-spacing:0}
.spelling-input.correct{border-bottom-color:var(--battle-teal);box-shadow:none}
.spelling-input.wrong{border-bottom-color:var(--battle-orange-dark);box-shadow:none}
.spelling-options{grid-template-columns:1fr 1fr;gap:10px;max-width:none;margin-top:24px}
.spelling-option-btn{background:transparent;border:1px solid var(--battle-line);border-radius:2px;padding:14px;color:var(--battle-ink);font-size:15px;text-align:left;transition:background .18s,border-color .18s,transform .18s}
.spelling-option-btn:hover{background:var(--battle-paper-2);border-color:var(--battle-ink)}
.spelling-option-btn:active{transform:translateY(1px)}
.spelling-option-btn .opt-label{color:var(--battle-orange);font:700 11px/1 Georgia,serif;margin-bottom:6px}
.spelling-effect{font-family:Georgia,serif;text-shadow:none}
.spelling-effect.hit{color:#d9eadf}.spelling-effect.miss{color:#f0b0a0}.spelling-effect.combo{color:#f1c59a}
.spelling-effect.ko{color:var(--battle-paper);font-size:54px;text-shadow:none}
.spelling-gameover-title{color:var(--battle-paper);font:700 clamp(46px,7vw,84px)/.9 Georgia,serif;letter-spacing:-.05em}
.spelling-result-row{width:100%;justify-content:flex-start;gap:0;border-top:1px solid rgba(245,240,232,.22);border-bottom:1px solid rgba(245,240,232,.22);margin:20px 0;padding:12px 0}
.spelling-result-item{min-width:130px;padding:0 24px;border-left:1px solid rgba(245,240,232,.18);text-align:left}
.spelling-result-item:first-child{padding-left:0;border-left:0}
.spelling-result-item .val{color:var(--battle-paper);font:700 36px/1 Georgia,serif}
.spelling-result-item .lbl{color:rgba(245,240,232,.58);font-size:11px;margin-top:6px}
.spelling-ranking{color:#b9ddd2;font-size:15px;margin:8px 0}
#spWrongsList,#spTopList{max-height:180px!important;margin:8px 0!important;padding:12px 0;border-top:1px solid rgba(245,240,232,.16);color:rgba(245,240,232,.72)!important;font-size:13px!important;line-height:1.8!important}
.spelling-btn{background:var(--battle-orange);border:1px solid var(--battle-orange);border-radius:2px;padding:12px 22px;color:#fff;font-size:14px;letter-spacing:.04em;text-shadow:none;transition:background .18s,transform .18s}
.spelling-btn:hover{background:var(--battle-orange-dark);box-shadow:none;transform:translateY(-1px)}
.spelling-btn.secondary{background:transparent;border-color:rgba(245,240,232,.35);color:var(--battle-paper)}
.spelling-btn.secondary:hover{background:rgba(245,240,232,.08);box-shadow:none}
.sp-my-row{color:var(--battle-paper)!important;text-shadow:none!important;animation:none;background:rgba(46,119,116,.28);border-radius:0}
@media (max-width:760px){
  .spelling-game{padding:54px 16px 24px}
  #spTitle.active{padding:28px 22px 22px}
  .spelling-title-word{font-size:clamp(40px,13vw,64px)}
  .spelling-char-preview{gap:13px}
  .spelling-char-preview .char{min-width:0}.spelling-char-preview .char .name{font-size:12px}
  #spPlayerName{width:100%!important}
  .spelling-hud{grid-template-columns:54px 1fr 24px 1fr 54px;gap:7px}
  .spelling-hp-label{font-size:10px!important;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .spelling-stats{margin-top:0;align-self:stretch;justify-content:space-between}
  .spelling-stat{min-width:0;flex:1;padding:8px 4px}
  .spelling-arena{grid-template-columns:1fr;gap:12px;min-height:0;padding-top:16px}
  .spelling-fighter{display:none}
  .spelling-question-zone{padding:22px 20px 26px}
  .spelling-question-text{font-size:42px}
  .spelling-options{grid-template-columns:1fr}
  .spelling-result-item{min-width:0;flex:1;padding:0 10px}
  .spelling-result-item:first-child{padding-left:0}
}
@media (prefers-reduced-motion:reduce){.spelling-screen,.spelling-vs-flash{animation:none!important}.spelling-fighter,.spelling-btn{transition:none!important}}



/* ===== ARCADE FIGHT FX: original 90s fighting-game motion language ===== */
#spBattle.active{position:relative;overflow:hidden;padding:18px 22px 24px;border:1px solid rgba(255,255,255,.18);background:#101923;box-shadow:inset 0 0 0 1px rgba(0,229,255,.05),0 24px 70px rgba(0,0,0,.28)}
#spBattle.active:before{content:"";position:absolute;inset:0;pointer-events:none;opacity:.17;background:repeating-linear-gradient(0deg,transparent 0 3px,rgba(255,255,255,.08) 4px,transparent 5px)}
#spBattle.active:after{content:"FIGHT / SPELL / WIN";position:absolute;right:22px;bottom:10px;color:rgba(255,255,255,.22);font:700 10px/1 "Arial Black",sans-serif;letter-spacing:.2em}
.sp-arcade-round{position:absolute;top:18px;left:50%;z-index:4;display:flex;align-items:baseline;gap:8px;transform:translateX(-50%) skew(-12deg);color:#f7d86b;text-shadow:0 0 12px rgba(247,216,107,.5);font-family:"Arial Black",sans-serif;font-style:italic;letter-spacing:.08em}
.sp-arcade-round span{font-size:10px;color:#8be9ef;letter-spacing:.2em}
.sp-arcade-round strong{font-size:24px;line-height:1}
.sp-arcade-round em{font:700 10px/1 "Microsoft YaHei",sans-serif;color:rgba(255,255,255,.62);font-style:normal;letter-spacing:.05em}
.sp-arcade-impact{position:absolute;inset:0;z-index:3;pointer-events:none;opacity:0;background:rgba(255,255,255,.8)}
.sp-arcade-impact.has-label:after{content:attr(data-label);position:absolute;left:50%;top:39%;transform:translate(-50%,-50%) skew(-12deg) rotate(-4deg);color:#fff;font:700 clamp(36px,7vw,88px)/.9 "Arial Black",sans-serif;letter-spacing:-.06em;text-shadow:4px 4px 0 #e62e79,8px 8px 0 rgba(0,0,0,.3);animation:spCallout .62s cubic-bezier(.16,1.3,.3,1) both}
@keyframes spCallout{0%{opacity:0;transform:translate(-50%,-50%) scale(2.2) skew(-12deg) rotate(-4deg)}35%{opacity:1;transform:translate(-50%,-50%) scale(.92) skew(-12deg) rotate(-4deg)}100%{opacity:0;transform:translate(-50%,-58%) scale(1.02) skew(-12deg) rotate(-4deg)}}
#spBattle.impact-hit .sp-arcade-impact{animation:spImpactFlash .32s ease-out}
#spBattle.impact-miss .sp-arcade-impact{background:rgba(242,75,75,.7);animation:spImpactFlash .28s ease-out}
#spBattle.impact-ko .sp-arcade-impact{background:rgba(247,216,107,.92);animation:spImpactFlash .65s ease-out}
@keyframes spImpactFlash{0%{opacity:.85}100%{opacity:0}}
/* Screen-level comic hit choreography: the impact lands on the fighter being hit. */
.sp-arcade-impact:before{content:"";position:absolute;width:250px;height:250px;left:50%;top:48%;border-radius:50%;opacity:0;transform:translate(-50%,-50%) scale(.2);background:repeating-conic-gradient(from 0deg,rgba(255,255,255,.95) 0 7deg,transparent 7deg 18deg);filter:drop-shadow(0 0 14px #fff);mix-blend-mode:screen}
#spBattle.impact-hit .sp-arcade-impact:before{left:76%;background:repeating-conic-gradient(from -10deg,rgba(255,224,103,.98) 0 6deg,transparent 6deg 16deg);animation:spPunchBurst .58s cubic-bezier(.16,1.2,.3,1) both}
#spBattle.impact-miss .sp-arcade-impact:before{left:24%;background:repeating-conic-gradient(from 10deg,rgba(255,93,113,.98) 0 6deg,transparent 6deg 16deg);animation:spPunchBurst .58s cubic-bezier(.16,1.2,.3,1) both}
#spBattle.impact-hit .sp-arcade-impact:before,#spBattle.impact-miss .sp-arcade-impact:before{background-image:url('./word-battle/comic-impact.png?v=20260909-11');background-position:center;background-size:contain;background-repeat:no-repeat;mix-blend-mode:screen}
#spBattle.impact-miss .sp-arcade-impact:before{transform:translate(-50%,-50%) scaleX(-1) scale(.2)}
@keyframes spPunchBurst{0%{opacity:0;transform:translate(-50%,-50%) scale(.2) rotate(-18deg)}25%{opacity:1;transform:translate(-50%,-50%) scale(1.25) rotate(8deg)}100%{opacity:0;transform:translate(-50%,-50%) scale(1.8) rotate(24deg)}}
#spBattle.impact-hit .spelling-arena{animation:spArenaHit .42s ease-out}
#spBattle.impact-miss .spelling-arena{animation:spArenaMiss .42s ease-out}
@keyframes spArenaHit{0%{transform:translateX(0)}28%{transform:translateX(-10px) rotate(-.4deg)}58%{transform:translateX(7px) rotate(.25deg)}100%{transform:none}}
@keyframes spArenaMiss{0%{transform:translateX(0)}28%{transform:translateX(10px) rotate(.4deg)}58%{transform:translateX(-7px) rotate(-.25deg)}100%{transform:none}}
#spBattle .spelling-hud{position:relative;z-index:2;margin-top:38px;border-bottom-color:rgba(255,255,255,.32)}
#spBattle .spelling-stats{position:relative;z-index:2}
.spelling-arena{position:relative;isolation:isolate;overflow:hidden;background:radial-gradient(circle at 50% 47%,rgba(0,229,255,.16),transparent 34%),linear-gradient(180deg,rgba(5,10,17,.04),rgba(5,10,17,.45));border:1px solid rgba(255,255,255,.12);box-shadow:inset 0 -50px 80px rgba(0,0,0,.34)}
.spelling-arena:before{content:"";position:absolute;left:4%;right:4%;bottom:24px;height:84px;z-index:-1;border-top:2px solid rgba(0,229,255,.38);background:linear-gradient(165deg,transparent 0 47%,rgba(0,229,255,.1) 48%,transparent 49%),linear-gradient(15deg,transparent 0 47%,rgba(230,46,121,.1) 48%,transparent 49%);transform:perspective(320px) rotateX(58deg);transform-origin:bottom}
.spelling-arena:after{content:"";position:absolute;left:50%;bottom:38px;width:240px;height:38px;z-index:-1;transform:translateX(-50%);border-radius:50%;background:rgba(247,216,107,.2);filter:blur(18px);animation:spFloorPulse 1.6s ease-in-out infinite}
@keyframes spFloorPulse{0%,100%{opacity:.45;transform:translateX(-50%) scale(.85)}50%{opacity:.9;transform:translateX(-50%) scale(1.15)}}
.sp-speed-lines{position:absolute;inset:0;z-index:-1;opacity:.5;background:repeating-conic-gradient(from -20deg at 50% 52%,transparent 0 5deg,rgba(139,233,239,.12) 5.2deg 5.7deg,transparent 6deg 14deg);animation:spSpeedSpin 18s linear infinite}
@keyframes spSpeedSpin{to{transform:rotate(360deg)}}
.sp-center-mark{position:absolute;left:50%;top:48%;z-index:0;transform:translate(-50%,-50%) skew(-12deg);font:700 64px/.8 "Arial Black",sans-serif;color:transparent;-webkit-text-stroke:1px rgba(255,255,255,.15);letter-spacing:-.12em;opacity:.5;pointer-events:none}
.spelling-fighter{position:relative;z-index:2;border:0;background:rgba(4,9,15,.2);padding:20px 10px;filter:drop-shadow(0 10px 12px rgba(0,0,0,.25))}
.spelling-fighter:before{content:"";position:absolute;left:50%;top:44px;width:112px;height:112px;z-index:-1;transform:translateX(-50%);border:1px solid rgba(139,233,239,.55);border-radius:50%;box-shadow:0 0 0 8px rgba(139,233,239,.06),0 0 28px rgba(0,229,255,.32);animation:spAura 1.5s ease-in-out infinite}
#spFighterOpponent:before{border-color:rgba(230,46,121,.65);box-shadow:0 0 0 8px rgba(230,46,121,.06),0 0 28px rgba(230,46,121,.35);animation-delay:.45s}
@keyframes spAura{0%,100%{transform:translateX(-50%) scale(.9);opacity:.6}50%{transform:translateX(-50%) scale(1.08);opacity:1}}
.spelling-fighter .self-fighter-avatar,.spelling-fighter .fighter-avatar{position:relative;border:2px solid #8be9ef;background:#213c4d;color:#fff;box-shadow:0 0 18px rgba(0,229,255,.35),inset 0 -12px 0 rgba(0,0,0,.18);animation:spIdle .85s ease-in-out infinite alternate}
#spFighterOpponent .fighter-avatar{border-color:#e62e79;background:#51213b;box-shadow:0 0 18px rgba(230,46,121,.36),inset 0 -12px 0 rgba(0,0,0,.18);animation-delay:.32s}
@keyframes spIdle{from{transform:translateY(2px) rotate(-2deg)}to{transform:translateY(-5px) rotate(2deg)}}
.spelling-fighter.attacking .self-fighter-avatar,.spelling-fighter.attacking .fighter-avatar{animation:spStrike .42s cubic-bezier(.2,.8,.2,1)}
@keyframes spStrike{0%{transform:translateX(0) scale(1) rotate(0)}35%{transform:translateX(18px) scale(1.24) rotate(-8deg)}100%{transform:translateX(0) scale(1) rotate(0)}}
.spelling-fighter.hurting .self-fighter-avatar,.spelling-fighter.hurting .fighter-avatar{animation:spDamage .44s ease-out}
@keyframes spDamage{0%,100%{filter:brightness(1)}18%{transform:translateX(-10px) rotate(-8deg);filter:brightness(2) saturate(.3)}36%{transform:translateX(10px) rotate(8deg)}55%{transform:translateX(-5px)} }
.spelling-fighter .fighter-name{font-family:"Arial Black","Microsoft YaHei",sans-serif;text-transform:uppercase;letter-spacing:.08em;text-shadow:0 2px 0 #071018}
.spelling-fighter .fighter-hp-num{font-family:"Arial Black",sans-serif;color:#f7d86b}
.spelling-question-zone{position:relative;z-index:2;border:2px solid #8be9ef;box-shadow:0 0 0 5px rgba(139,233,239,.07),0 0 32px rgba(0,229,255,.18),12px 16px 0 rgba(230,46,121,.22);transform:skew(-1deg);animation:spCardFloat 2.4s ease-in-out infinite}
@keyframes spCardFloat{0%,100%{transform:skew(-1deg) translateY(0)}50%{transform:skew(-1deg) translateY(-4px)}}
.spelling-question-zone>*{transform:skew(1deg)}
.spelling-question-text{font-family:"Arial Black",Georgia,serif;text-shadow:2px 2px 0 rgba(230,46,121,.22),0 0 16px rgba(0,229,255,.24)}
.spelling-timer-wrap{filter:drop-shadow(0 0 7px rgba(247,216,107,.5))}
.spelling-timer-ring .fg{stroke:#f7d86b;filter:drop-shadow(0 0 3px #f7d86b)}
.spelling-options .spelling-option-btn{position:relative;overflow:hidden;border-color:rgba(23,33,43,.36);font-family:"Arial Black","Microsoft YaHei",sans-serif;box-shadow:3px 3px 0 rgba(230,46,121,.18)}
.spelling-options .spelling-option-btn:before{content:"";position:absolute;left:-30%;top:0;width:22%;height:100%;transform:skew(-20deg);background:rgba(255,255,255,.45);transition:left .35s}
.spelling-options .spelling-option-btn:hover:before{left:115%}
.spelling-effect{z-index:5!important;font-family:"Arial Black",sans-serif!important;font-style:italic;text-transform:uppercase;filter:drop-shadow(3px 3px 0 rgba(230,46,121,.5))}
.spelling-effect.hit{color:#0b4b5d!important}.spelling-effect.miss{color:#a5233d!important}.spelling-effect.combo{color:#b16a00!important}
.spelling-effect.ko{color:#d23b64!important;-webkit-text-stroke:1px #fff;filter:drop-shadow(5px 5px 0 #f7d86b)!important}
.spelling-fighter.ko .fighter-avatar{animation:spKnockout .9s cubic-bezier(.2,.8,.2,1) forwards!important}
@keyframes spKnockout{0%{transform:scale(1) rotate(0);opacity:1}25%{transform:translateX(12px) scale(1.25) rotate(10deg);opacity:1}100%{transform:translate(46px,44px) rotate(76deg) scale(.3);opacity:0}}
@media (max-width:760px){
  #spBattle.active{padding:14px 10px 18px}
  .sp-arcade-round{top:12px}.sp-arcade-round strong{font-size:20px}
  #spBattle .spelling-hud{margin-top:34px}
  .spelling-arena{min-height:370px}
  .sp-center-mark{font-size:46px}
  .spelling-question-zone{box-shadow:0 0 0 4px rgba(139,233,239,.07),0 0 24px rgba(0,229,255,.18),7px 9px 0 rgba(230,46,121,.22)}
}
@media (prefers-reduced-motion:reduce){.sp-speed-lines,.spelling-arena:after,.spelling-fighter:before,.spelling-fighter .self-fighter-avatar,.spelling-fighter .fighter-avatar,.spelling-question-zone{animation:none!important}}
.sp-hammer-fx{position:absolute;inset:0;z-index:7;pointer-events:none;opacity:0;background:url('./word-battle/comic-hammer.png?v=20260909-11') center/contain no-repeat;filter:drop-shadow(0 10px 5px #0008)}
#spBattle.impact-hit .sp-hammer-fx{opacity:1;animation:spHammerHit .7s cubic-bezier(.18,.9,.25,1) both}
#spBattle.impact-miss .sp-hammer-fx{opacity:1;transform:scaleX(-1);animation:spHammerMiss .7s cubic-bezier(.18,.9,.25,1) both}
@keyframes spHammerHit{0%{left:-48%;top:18%;transform:rotate(-42deg) scale(.18)}48%{left:18%;top:4%;transform:rotate(-20deg) scale(1.05)}64%{left:47%;top:16%;transform:rotate(10deg) scale(1.12)}100%{left:68%;top:30%;transform:rotate(24deg) scale(.25);opacity:0}}
@keyframes spHammerMiss{0%{left:48%;top:18%;transform:scaleX(-1) rotate(-42deg) scale(.18)}48%{left:18%;top:4%;transform:scaleX(-1) rotate(-20deg) scale(1.05)}64%{left:-3%;top:16%;transform:scaleX(-1) rotate(10deg) scale(1.12)}100%{left:-30%;top:30%;transform:scaleX(-1) rotate(24deg) scale(.25);opacity:0}}
#spBattle.impact-ko .spelling-fighter.ko:after{content:"🐦‍⬛  ·  ·  ·";position:absolute;left:50%;top:6%;color:#111;font-size:26px;white-space:nowrap;animation:spBirdAway .9s ease-out both}
@keyframes spBirdAway{0%{opacity:0;transform:translate(0,0) scale(.3)}25%{opacity:1}100%{opacity:0;transform:translate(130px,-70px) scale(1.15) rotate(-18deg)}}
.spelling-fighter.victory:after{content:"✦  胜利  ✦";position:absolute;left:50%;top:-28%;transform:translateX(-50%) rotate(-5deg);white-space:nowrap;color:#ffe16b;font:900 24px/1 "Arial Black","Microsoft YaHei",sans-serif;text-shadow:3px 3px 0 #9b4928,0 0 18px #ffd45c;animation:spVictoryBadge .85s cubic-bezier(.16,1.3,.3,1) both}
.spelling-fighter.victory .self-fighter-avatar{animation:spVictoryPose .85s ease-out both!important}
@keyframes spVictoryPose{0%{transform:translateY(0) rotate(0) scale(1)}35%{transform:translateY(-20px) rotate(-8deg) scale(1.18)}70%{transform:translateY(-8px) rotate(8deg) scale(1.08)}100%{transform:translateY(0) rotate(0) scale(1)}}
@keyframes spVictoryBadge{0%{opacity:0;transform:translateX(-50%) scale(2.2) rotate(-14deg)}45%{opacity:1;transform:translateX(-50%) scale(.95) rotate(-5deg)}100%{opacity:0;transform:translateX(-50%) translateY(-18px) scale(1)}}
.spelling-fighter.hurt:after{content:"😵";position:absolute;left:50%;top:-20%;font-size:42px;animation:spDizzy .6s ease-out both}
@keyframes spDizzy{0%{opacity:0;transform:translateX(-50%) scale(.3) rotate(-30deg)}35%{opacity:1;transform:translateX(-50%) scale(1.25) rotate(20deg)}100%{opacity:0;transform:translateX(-50%) translateY(-16px) rotate(-10deg)}}



/* ===== CARTOON FIGHTERS: CSS-built animated characters ===== */
.spelling-fighter .self-fighter-avatar,
.spelling-fighter .fighter-avatar{
  position:relative;width:84px;height:92px;line-height:1;border:0!important;border-radius:0!important;
  overflow:visible;background:transparent!important;box-shadow:none!important;color:transparent!important;font-size:0!important;
  filter:drop-shadow(0 8px 4px rgba(0,0,0,.3));animation:spCartoonBob .9s ease-in-out infinite alternate!important;
}
.spelling-fighter .self-fighter-avatar:before,
.spelling-fighter .fighter-avatar:before{
  content:"";position:absolute;left:17px;top:39px;width:50px;height:50px;border:2px solid #102432;
  border-radius:48% 48% 20% 20%;background:linear-gradient(135deg,#1f9c9a 0 48%,#0f5c70 49% 100%);
  box-shadow:-13px 15px 0 -7px #f2b28c,13px 15px 0 -7px #f2b28c;
}
.spelling-fighter .self-fighter-avatar:after,
.spelling-fighter .fighter-avatar:after{
  content:"";position:absolute;left:21px;top:3px;width:46px;height:46px;border:2px solid #102432;border-radius:50%;
  background:
    radial-gradient(circle at 31% 58%,#102432 0 3px,transparent 3.6px),
    radial-gradient(circle at 69% 58%,#102432 0 3px,transparent 3.6px),
    radial-gradient(ellipse at 50% 12%,#172d45 0 54%,transparent 55%),
    #f2b28c;
  box-shadow:0 -5px 0 -1px #172d45,0 4px 0 -2px rgba(255,255,255,.4);animation:spBlink 3.8s steps(1,end) infinite;
}
.spelling-fighter .self-fighter-avatar:before{clip-path:polygon(0 0,100% 0,100% 84%,74% 84%,68% 100%,32% 100%,26% 84%,0 84%)}
.spelling-fighter .self-fighter-avatar:after{transform:rotate(-3deg)}
.spelling-fighter .self-fighter-avatar{margin-bottom:8px!important}
#spFighterStudent .fighter-name:before{content:"✦ ";color:#8be9ef}
#spFighterStudent .fighter-name:after{content:"  ✦";color:#f7d86b}

/* Opponent: visor, magenta armor, and a sharper silhouette */
#spFighterOpponent .fighter-avatar:before{
  left:14px;top:39px;width:56px;height:51px;border-color:#280e27;border-radius:24% 24% 18% 18%;
  background:linear-gradient(135deg,#e62e79 0 42%,#752353 43% 100%);
  box-shadow:-15px 16px 0 -7px #d98e73,15px 16px 0 -7px #d98e73,0 0 0 4px rgba(230,46,121,.18);
}
#spFighterOpponent .fighter-avatar:after{
  left:17px;top:2px;width:52px;height:47px;border-color:#280e27;border-radius:44% 44% 38% 38%;
  background:
    radial-gradient(ellipse at 50% 60%,#8be9ef 0 3px,transparent 4px),
    linear-gradient(180deg,#28143a 0 40%,#e62e79 41% 48%,#182335 49% 70%,#35132f 71% 100%);
  box-shadow:0 -6px 0 -1px #e62e79;animation:none;
}
#spFighterOpponent .fighter-name:before{content:"◆ ";color:#e62e79}
#spFighterOpponent .fighter-name:after{content:"  ◆";color:#f7d86b}

@keyframes spCartoonBob{from{transform:translateY(2px) rotate(-1.5deg)}to{transform:translateY(-5px) rotate(1.5deg)}}
@keyframes spBlink{0%,92%,100%{clip-path:none}94%,96%{clip-path:inset(0 0 44% 0)}}
.spelling-fighter.attacking .self-fighter-avatar,
.spelling-fighter.attacking .fighter-avatar{animation:spCartoonStrike .42s cubic-bezier(.2,.8,.2,1)!important}
@keyframes spCartoonStrike{0%{transform:translateX(0) scale(1) rotate(0)}32%{transform:translateX(24px) scale(1.18) rotate(-7deg)}100%{transform:translateX(0) scale(1) rotate(0)}}
.spelling-fighter.hurting .self-fighter-avatar,
.spelling-fighter.hurting .fighter-avatar{animation:spCartoonHit .46s ease-out!important}
@keyframes spCartoonHit{0%,100%{filter:brightness(1)}18%{transform:translateX(-12px) rotate(-8deg);filter:brightness(2) saturate(.3)}36%{transform:translateX(11px) rotate(8deg)}60%{transform:translateX(-5px)}}

/* Title preview uses the same character language at a smaller scale. */
#spTitle .self-avatar,#spTitle #spPreviewAvatar{position:relative;display:inline-block;width:48px!important;height:48px!important;line-height:48px!important;font-size:0!important;border-radius:50%!important;overflow:hidden;background:#1f9c9a!important;box-shadow:inset 0 -9px 0 rgba(0,0,0,.18)!important;color:transparent!important}
#spTitle .self-avatar:after,#spTitle #spPreviewAvatar:after{content:"";position:absolute;left:10px;top:8px;width:28px;height:28px;border-radius:50%;background:radial-gradient(circle at 30% 58%,#172d45 0 2px,transparent 2.5px),radial-gradient(circle at 70% 58%,#172d45 0 2px,transparent 2.5px),#f2b28c;box-shadow:0 -5px 0 -1px #172d45}
#spTitle #spPreviewAvatar{background:#e62e79!important}
#spTitle #spPreviewAvatar:after{background:linear-gradient(180deg,#28143a 0 43%,#e62e79 44% 51%,#182335 52% 100%);box-shadow:none}
@media (prefers-reduced-motion:reduce){.spelling-fighter .self-fighter-avatar,.spelling-fighter .fighter-avatar,.spelling-fighter .self-fighter-avatar:after{animation:none!important}}



/* ===== INTERIOR STUDY SPACES · shared depth language from the 3D home ===== */
:root{
  --interior-canvas:#eaf0f6;
  --interior-line:#d4deea;
  --interior-navy:#142a45;
  --interior-blue:#315f86;
  --interior-gold:#c59a45;
  --interior-shadow:0 10px 24px rgba(24,48,75,.09),0 3px 0 rgba(203,216,229,.9),inset 0 1px #fff;
}
.module-overlay,.wb-overlay,.mistake-center-panel{
  color:#23374e!important;
  background:
    radial-gradient(ellipse at 72% 0%,rgba(255,255,255,.72),transparent 42%),
    linear-gradient(145deg,#edf2f7 0%,#e5edf5 58%,#edf2f7 100%)!important;
}
.module-overlay-bg,.wb-overlay-bg,.analysis-overlay,.weekly-modal-bg,.stats-overlay-bg{
  background:rgba(10,21,36,.56)!important;
  backdrop-filter:blur(5px)!important;
}
#mPanel:not(.teacher-classroom-host){box-shadow:0 18px 45px rgba(12,29,49,.22)!important}
#mHeader,.module-overlay-header,.wb-header,.analysis-header,.mistake-center-header,.weekly-header,.stats-header{
  background:
    radial-gradient(ellipse at 76% 0%,rgba(113,157,192,.2),transparent 36%),
    linear-gradient(112deg,#101f35 0%,#18314d 58%,#214562 100%)!important;
  border-bottom:1px solid rgba(229,194,116,.72)!important;
  box-shadow:0 8px 20px rgba(13,29,48,.17),inset 0 -1px rgba(255,255,255,.08)!important;
  color:#f4f7fa!important;
}
.answer-teach-toolbar,.potato-chat-header{
  background:
    radial-gradient(ellipse at 78% 0%,rgba(113,157,192,.2),transparent 36%),
    linear-gradient(112deg,#101f35 0%,#18314d 58%,#214562 100%)!important;
  border-bottom:2px solid var(--interior-gold)!important;
  box-shadow:0 6px 16px rgba(13,29,48,.18)!important;
}
.answer-teach-surface,.potato-chat-body{background-color:#eaf0f6!important}
.answer-teach-content,.potato-chat-box{
  border:1px solid #d4deea!important;border-radius:14px!important;
  background:linear-gradient(145deg,#fff,#f5f9fc)!important;
  box-shadow:0 7px 0 #dfe7ee,0 13px 25px rgba(28,51,74,.12),inset 0 1px #fff!important;
}
.answer-teach-content .teach-answer{border-radius:10px!important;box-shadow:0 4px 0 #d7e9de,0 8px 14px rgba(36,91,65,.08)!important}
.answer-teach-toolbar button,.potato-chat-header .potato-chat-close{border-radius:8px!important;box-shadow:0 3px 0 rgba(4,14,25,.22),inset 0 1px rgba(255,255,255,.12)!important}
.answer-teach-toolbar button:hover{transform:translateY(-1px)}
.potato-chat-body .ask-msg.user{background:linear-gradient(145deg,#3d729a,#214562)!important;box-shadow:0 4px 0 #d6e0e9,0 7px 12px rgba(28,51,74,.08)!important}
.potato-chat-body .ask-msg.potato{background:linear-gradient(145deg,#fff,#f4f8fb)!important;box-shadow:0 4px 0 #dfe7ee,0 7px 12px rgba(28,51,74,.06)!important}
.teacher-password-card{border-radius:15px!important;background:linear-gradient(145deg,#fff,#f1f6fa)!important;box-shadow:0 9px 0 #d5e0e9,0 20px 42px rgba(8,24,41,.26),inset 0 1px #fff!important}
.teacher-password-card button,.teacher-password-card .teacher-password-submit{border-radius:9px!important;box-shadow:0 3px 0 rgba(24,48,75,.18)!important}
.teacher-password-card input{border-radius:9px!important}
#mHeader{min-height:58px}
.module-overlay-header h2,.wb-header h2,.analysis-header h2,.mistake-center-title h2,.weekly-header h2,.stats-header h2{
  color:#f4f7fa!important;letter-spacing:.25px!important;
}
.wb-header p,.mistake-center-title small{color:#c5d3e0!important}
.module-overlay-close,.wb-close,.analysis-close,.mistake-center-header button,.weekly-header button,.stats-header button{
  border-radius:9px!important;
  border:1px solid rgba(218,231,242,.28)!important;
  background:rgba(255,255,255,.08)!important;
  color:#e6eef5!important;
  box-shadow:inset 0 1px rgba(255,255,255,.09),0 3px 7px rgba(2,14,27,.15)!important;
}
.module-overlay-close:hover,.wb-close:hover,.analysis-close:hover,.mistake-center-header button:hover,.weekly-header button:hover,.stats-header button:hover{
  background:rgba(255,255,255,.18)!important;color:#fff!important;transform:translateY(-1px)!important;
}
#mBody.module-overlay-body{
  background:
    radial-gradient(ellipse at 78% 0%,rgba(255,255,255,.75),transparent 38%),
    linear-gradient(145deg,#edf2f7 0%,#e5edf5 58%,#edf2f7 100%)!important;
}
.module-panel-intro,.teacher-home-hero{
  position:relative;overflow:hidden;border:1px solid #cfdae6!important;border-radius:16px!important;
  background:linear-gradient(145deg,#fff 0%,#fbfdff 64%,#edf3f8 100%)!important;
  box-shadow:0 10px 0 #dce5ed,0 15px 27px rgba(24,48,75,.1),inset 0 1px #fff!important;
}
.module-panel-intro::after,.teacher-home-hero::after{
  content:"";position:absolute;right:-48px;top:-84px;width:230px;height:170px;border-radius:50%;
  background:radial-gradient(ellipse,rgba(141,180,207,.19),transparent 70%);pointer-events:none;
}
.module-panel-intro-mark,.teacher-home-hero-mark{
  border-radius:16px!important;background:linear-gradient(145deg,#f1f7fc,#dce9f4)!important;
  box-shadow:inset 0 1px #fff,0 5px 11px rgba(38,72,102,.1)!important;
}
.module-panel-intro h3,.teacher-home-hero h2{color:#17365d!important}
.module-panel-intro-count{border-radius:9px!important;background:linear-gradient(145deg,#f8fbfd,#e8f0f6)!important;box-shadow:0 2px 0 #dbe5ed}
#mBody .module-feature-btn,.teacher-home-action,.teacher-home-schedule-card,.teacher-tool-panel,.teacher-student-panel,.teacher-note-stats-panel,.teacher-chart-panel,.teacher-note-jump-panel,.teacher-master-data-grid .teacher-student-panel{
  border:1px solid #d3dfeb!important;border-radius:13px!important;
  background:linear-gradient(150deg,#fff 0%,#fbfdff 66%,#f1f6fa 100%)!important;
  box-shadow:0 6px 0 #dfe7ee,0 10px 18px rgba(28,51,74,.075),inset 0 1px #fff!important;
}
#mBody .module-feature-btn{border-top:4px solid var(--interior-blue)!important}
#mBody .module-feature-btn:nth-child(4n+2){border-top-color:var(--interior-gold)!important}
#mBody .module-feature-btn:nth-child(4n+3){border-top-color:#39866f!important}
#mBody .module-feature-btn:nth-child(4n+4){border-top-color:#ad6652!important}
#mBody .module-feature-btn:hover,.teacher-home-action:hover,.teacher-home-schedule-card:hover{
  transform:perspective(900px) translateY(-4px) rotateX(1deg)!important;
  box-shadow:0 9px 0 #d7e2eb,0 17px 26px rgba(28,51,74,.14),inset 0 1px #fff!important;
}
.teacher-home{color:#23374e!important}
.teacher-home-hero{border-left:5px solid var(--interior-gold)!important}
.teacher-home-nav{
  border:1px solid rgba(212,226,238,.25)!important;border-radius:12px!important;
  background:linear-gradient(112deg,#142a45,#214562)!important;
  box-shadow:0 6px 0 #cbd8e4,0 10px 18px rgba(24,48,75,.12)!important;
}
.teacher-home-tab{border-radius:9px!important}
.teacher-home-tab.active{background:linear-gradient(145deg,#fff,#eaf2f8)!important;box-shadow:0 3px 0 #d5e1eb,0 6px 12px rgba(4,18,33,.18)!important}
.teacher-home-section-label{color:#526d87!important}
.teacher-home-section-label::after{background:linear-gradient(90deg,#d1dce6,transparent)!important}
.teacher-tool-panel-heading{color:#294767!important}
.teacher-home-tip{background:linear-gradient(145deg,#fffdf7,#f6efdc)!important}
.teacher-word-list-item,.teacher-pdf-card,.teacher-ppt-card,.teacher-schedule-summary-card,.teacher-note-stat-card{
  border-radius:10px!important;box-shadow:0 3px 0 #e2e9ef,0 6px 12px rgba(28,51,74,.06)!important;
}
.teacher-word-toolbar,.teacher-pdf-toolbar,.teacher-ppt-toolbar,.teacher-whiteboard-toolbar{
  background:linear-gradient(112deg,#142a45,#214562)!important;
  border-bottom:2px solid var(--interior-gold)!important;
  box-shadow:0 6px 18px rgba(10,25,43,.22)!important;
}
.teacher-word-toolbar button,.teacher-pdf-toolbar button,.teacher-ppt-toolbar button,.teacher-whiteboard-toolbar button{
  border-radius:8px!important;box-shadow:0 3px 0 rgba(4,14,25,.24),inset 0 1px rgba(255,255,255,.16)!important;
}
.wb-tabs{background:linear-gradient(180deg,rgba(18,39,63,.48),transparent)!important}
.wb-tab,.help-nav-button,.mistake-filter{transition:background .18s ease,color .18s ease,transform .18s ease,box-shadow .18s ease!important}
.wb-body,.analysis-body,.mistake-center-main{color:#2b3e53!important}
.wb-item,.flashcard,.quiz-opt,.analysis-stat,.analysis-chart,.help-note,.help-route-item,.help-faq details,.mistake-stat,.mistake-list,.paper-answer-sheet{
  border-radius:12px!important;border-color:#d7e1eb!important;
  box-shadow:0 5px 0 #e1e9f0,0 9px 17px rgba(28,51,74,.06),inset 0 1px #fff!important;
}
.wb-item{background:linear-gradient(145deg,#fff,#f3f7fa)!important;border-left:3px solid var(--interior-gold)!important}
.wb-item:hover{transform:translateY(-2px)!important;box-shadow:0 7px 0 #dbe5ed,0 13px 20px rgba(28,51,74,.1)!important}
.flashcard{background:linear-gradient(145deg,#fff,#edf4f9)!important}
.analysis-panel,.weekly-modal,.stats-overlay,.feedback-modal{
  border:1px solid #cbd8e4!important;border-radius:18px!important;
  background:linear-gradient(145deg,#f8fbfd,#eaf1f7)!important;
  box-shadow:0 18px 0 rgba(188,204,219,.62),0 28px 60px rgba(8,24,41,.3),inset 0 1px #fff!important;
}
.analysis-stat,.analysis-chart,.help-note{background:linear-gradient(145deg,#fff,#f3f7fa)!important}
.analysis-stat .as-num{color:#17365d!important}
.analysis-section h3,.help-section h3{color:#23496c!important}
.help-manual{background:linear-gradient(145deg,#f7fafc,#eaf1f7)!important}
.help-manual-nav{background:linear-gradient(180deg,#e9f0f6,#dfe8f0)!important;border-color:#cfdbe6!important}
.help-nav-button{border-radius:9px!important}
.help-nav-button.active{box-shadow:0 3px 0 #d8e3ec,0 5px 10px rgba(25,49,77,.08)!important}
.help-quick-route{gap:10px;border:0!important;background:transparent!important}
.help-route-item{border:1px solid #d7e1eb!important;background:linear-gradient(145deg,#fff,#f2f7fa)!important}
.help-step-number{border-radius:10px!important;background:linear-gradient(145deg,#fff,#eaf2f8)!important;box-shadow:0 3px 0 #dbe5ed}
.mistake-stats{gap:12px;border:0!important;background:transparent!important}
.mistake-stat{border:1px solid #d7e1eb!important;background:linear-gradient(145deg,#fff,#f2f7fa)!important}
.mistake-row{margin:8px 0;border:1px solid #dce5ed!important;border-radius:12px!important;background:linear-gradient(145deg,#fff,#f8fbfd)!important;box-shadow:0 4px 0 #e1e9f0,0 7px 14px rgba(28,51,74,.05)!important}
.mistake-row:first-child{border-top:1px solid #dce5ed!important}
.mistake-actions button,.mistake-filter{border-radius:8px!important}
.mistake-actions .primary{background:linear-gradient(145deg,#315f86,#214562)!important;box-shadow:0 3px 0 #17334d!important}
#videoPwdOverlay,#videoOverlay{backdrop-filter:blur(6px)}
#videoPwdOverlay > div{
  border:1px solid #d3dfeb!important;border-radius:16px!important;
  background:linear-gradient(145deg,#fff,#edf4f9)!important;
  box-shadow:0 9px 0 #d7e2eb,0 22px 48px rgba(8,24,41,.34),inset 0 1px #fff!important;
}
#videoPwdOverlay > div > div[style*="color:#fff"],#videoPwdOverlay > div > div[style*="color: #fff"]{color:#17365d!important}
#videoPwdOverlay > div > div[style*="color:#888"],#videoPwdOverlay > div > div[style*="color: #888"]{color:#718096!important}
#videoPwdOverlay input{border-radius:9px!important;background:#f5f8fb!important;color:#23374e!important;border-color:#cbd8e4!important}
#videoPwdOverlay button{border-radius:9px!important;background:linear-gradient(145deg,#315f86,#214562)!important;box-shadow:0 4px 0 #17334d!important}
#videoOverlay{background:radial-gradient(ellipse at 76% 0%,rgba(255,255,255,.9),transparent 38%),linear-gradient(145deg,#edf2f7,#e5edf5)!important}
#videoOverlay > div:first-child{background:linear-gradient(112deg,#142a45,#214562)!important;border-bottom:2px solid var(--interior-gold)}
#videoOverlay > div:first-child span{color:#f3f7fa!important}
#videoOverlay > div:first-child button{width:34px;height:34px;border:1px solid rgba(255,255,255,.3)!important;border-radius:9px!important;background:rgba(255,255,255,.08)!important}
#videoMenu{justify-content:flex-start!important;align-content:flex-start!important;padding:24px clamp(16px,4vw,52px)!important;gap:15px!important}
#videoMenu > div{
  border:1px solid #d3dfeb!important;border-top:3px solid var(--interior-gold)!important;border-radius:13px!important;
  background:linear-gradient(145deg,#fff,#edf4f9)!important;color:#17365d!important;
  box-shadow:0 6px 0 #dfe7ee,0 10px 18px rgba(28,51,74,.1),inset 0 1px #fff!important;
  transition:transform .18s,box-shadow .18s!important;
}
#videoMenu > div:hover{transform:translateY(-4px)!important;box-shadow:0 10px 0 #d8e2eb,0 17px 25px rgba(28,51,74,.15)!important}
#videoMenu > div > div[style*="font-size:13px"]{color:#17365d!important}
#videoMenu > div > div[style*="font-size:10px"]{color:#718096!important}
#videoFrame{border-top:2px solid var(--interior-gold)!important}
#dailyPanel,#qbEntryPanel,#editPanel,#essayPanel{
  border:1px solid #cbd8e4!important;border-radius:17px!important;
  box-shadow:0 12px 0 rgba(192,207,222,.68),0 24px 48px rgba(8,24,41,.28)!important;
}
#dailyContent > div,#dailyContent .daily-question{
  border-radius:13px!important;background:linear-gradient(145deg,#fff,#f4f8fb)!important;
  box-shadow:0 5px 0 #e0e8ef,0 9px 16px rgba(28,51,74,.06)!important;
}
#dailyContent [data-reading-step]{border-radius:8px!important}
#dailyContent [id^="dq_fb_"]{
  padding:10px 13px!important;border-radius:10px!important;
  box-shadow:0 3px 0 rgba(192,207,222,.78),0 6px 12px rgba(28,51,74,.06)!important;
  line-height:1.65!important;
}
#dailyContent [id^="dq_fb_"][style*="f0fdf4"]{background:linear-gradient(145deg,#f0faf4,#dff1e7)!important;border-color:#a9d6ba!important;color:#245b41!important}
#dailyContent [id^="dq_fb_"][style*="fef2f2"]{background:linear-gradient(145deg,#fff5f4,#fbe5e3)!important;border-color:#e6b7b3!important;color:#8d3a35!important}
#dailyContent [id^="dql_"]{border-radius:8px!important;transition:transform .15s,box-shadow .15s,background .15s}
#readingSummary{margin:14px 0;padding:14px 16px!important;border:1px solid #b9d7c5!important;border-radius:12px!important;background:linear-gradient(145deg,#f1faf4,#deefe5)!important;color:#285a42!important;box-shadow:0 5px 0 #d8e9de,0 9px 15px rgba(36,91,65,.08)!important}
#dailyGenBtn,.essay-submit-btn,.module-overlay .btn-primary,.wb-overlay .btn-primary{
  border-radius:9px!important;box-shadow:0 4px 0 #164938,0 7px 12px rgba(24,79,62,.16)!important;
}
.essay-result{padding-top:18px;border-top:1px solid #d8e3ec}
.essay-score-circle{
  border:3px solid rgba(255,255,255,.68)!important;border-radius:50%!important;
  box-shadow:0 8px 0 rgba(29,65,96,.18),0 14px 22px rgba(24,48,75,.19),inset 0 2px 5px rgba(255,255,255,.24)!important;
  transform:translateY(-2px);
}
.essay-score-circle.grade-a{background:linear-gradient(145deg,#48bb78,#24764f)!important;box-shadow:0 8px 0 #266b4c,0 14px 22px rgba(24,48,75,.16),inset 0 2px 5px rgba(255,255,255,.24)!important}
.essay-score-circle.grade-b{background:linear-gradient(145deg,#5498d5,#315f91)!important;box-shadow:0 8px 0 #315d88,0 14px 22px rgba(24,48,75,.16),inset 0 2px 5px rgba(255,255,255,.24)!important}
.essay-score-circle.grade-c{background:linear-gradient(145deg,#e9a34e,#b76a28)!important;box-shadow:0 8px 0 #a5612b,0 14px 22px rgba(24,48,75,.16),inset 0 2px 5px rgba(255,255,255,.24)!important}
.essay-score-circle.grade-d{background:linear-gradient(145deg,#dc7774,#a64040)!important;box-shadow:0 8px 0 #963f3f,0 14px 22px rgba(24,48,75,.16),inset 0 2px 5px rgba(255,255,255,.24)!important}
.essay-score-circle.grade-e{background:linear-gradient(145deg,#8294a8,#536579)!important;box-shadow:0 8px 0 #4f6072,0 14px 22px rgba(24,48,75,.16),inset 0 2px 5px rgba(255,255,255,.24)!important}
.essay-breakdown{display:grid!important;gap:12px!important;border:0!important;background:transparent!important}
.essay-bd-item{border:1px solid #d6e1eb!important;border-radius:12px!important;background:linear-gradient(145deg,#fff,#f0f6fa)!important;box-shadow:0 5px 0 #dfe7ee,0 8px 14px rgba(28,51,74,.07)!important}
.essay-bd-item .bd-score{color:#17365d!important}
.essay-errors-section{padding:15px 16px;border:1px solid #e2d8d7;border-radius:14px;background:linear-gradient(145deg,#fff,#fbf5f4);box-shadow:0 5px 0 #eee3e1,0 9px 16px rgba(75,39,37,.06)}
.essay-errors-section h4{color:#823d3b!important}
.essay-error-item{border:1px solid #ead3d1!important;border-left:4px solid #bc615a!important;border-radius:10px!important;background:linear-gradient(145deg,#fff,#fff8f7)!important;box-shadow:0 3px 0 #f0e3e1,0 6px 10px rgba(80,41,38,.05)!important}
.essay-suggestions{border:1px solid #e6d6ad!important;border-radius:13px!important;background:linear-gradient(145deg,#fffdf6,#f8efd8)!important;box-shadow:0 5px 0 #eee2c3,0 9px 16px rgba(91,69,25,.07)!important}
.essay-suggestions h4{color:#765a20!important}
.essay-corrected{border:1px solid #bad7c5!important;border-radius:14px!important;background:linear-gradient(145deg,#f7fcf8,#e7f3eb)!important;box-shadow:0 5px 0 #d7e9dd,0 9px 16px rgba(36,91,65,.07)!important}
.essay-corrected h4{color:#285b43!important}
.essay-corrected-text{border:1px solid #d9e2e8!important;border-radius:10px!important;background:linear-gradient(145deg,#fff,#fbfdfe)!important;box-shadow:inset 0 2px 5px rgba(30,57,83,.035),0 3px 0 #e8eef2!important}
.essay-coverage{border:1px solid #b9d7c5!important;border-radius:13px!important;background:linear-gradient(145deg,#f5fbf6,#e4f1e8)!important;box-shadow:0 5px 0 #d8e9de,0 9px 15px rgba(36,91,65,.07)!important}
#essayResult > div[style*="background"]:not(.essay-score-circle){border-radius:11px!important;box-shadow:0 4px 0 rgba(210,222,233,.7),0 7px 12px rgba(28,51,74,.05)!important}
.essay-suggestions .essay-corrected-text{background:#fff!important}
.quiz-opt{border-radius:10px!important;box-shadow:0 4px 0 #dfe7ee,0 7px 12px rgba(28,51,74,.06)!important}
.quiz-opt.correct{box-shadow:0 4px 0 #91caa4,0 8px 14px rgba(39,103,73,.12)!important}
.quiz-opt.wrong{box-shadow:0 4px 0 #e2aaa8,0 8px 14px rgba(155,44,44,.1)!important}
#wbBody .quiz-word,#wbBody .wrong-quiz-word,.quiz-word,.wrong-quiz-word{
  display:block!important;width:max-content;max-width:calc(100% - 24px);margin:12px auto 16px!important;
  padding:8px 22px 10px!important;border:1px solid #cfdae5!important;border-radius:10px!important;
  background:linear-gradient(145deg,#fffdf7,#edf4f9)!important;color:#17365d!important;
  -webkit-text-fill-color:#17365d!important;text-shadow:none!important;
  box-shadow:0 4px 0 #dce5ed,0 7px 15px rgba(28,51,74,.1)!important;
}
.quiz-score,.qb-status,.result,.paper-answer-show,.help-result{
  border-radius:10px!important;border:1px solid #d4e0e9!important;
  box-shadow:0 4px 0 #e1e9f0,0 7px 13px rgba(28,51,74,.06)!important;
}
.quiz-score{padding:13px 16px;background:linear-gradient(145deg,#fff,#edf4f9)!important;color:#17365d!important}
.paper-answer-show{background:linear-gradient(145deg,#f1faf4,#e1f0e6)!important;border-left:4px solid #4e9b6e!important}
.essay-clause-practice,.essay-structure-practice,.clause-practice-card,.structure-practice-card,.practice-result,.practice-feedback{
  border-radius:13px!important;box-shadow:0 5px 0 #dfe7ee,0 9px 16px rgba(28,51,74,.07)!important;
}
.essay-clause-practice{background:linear-gradient(145deg,#f5faff,#e6f0f8)!important;border-color:#c5d7e7!important}
.essay-structure-practice{background:linear-gradient(145deg,#fffdf7,#f7efd9)!important;border-color:#e6d7b3!important}
.qb-question-row,.qb-parsed-bar,.paper-answer-item,.paper-as-item,.paper-actions{
  border-radius:9px!important;box-shadow:0 3px 0 rgba(217,227,236,.78),0 5px 10px rgba(28,51,74,.04)!important;
}
.mistake-detail{border-radius:10px!important;background:linear-gradient(145deg,#fffdf7,#f5efdE)!important;box-shadow:0 3px 0 #e9e1cf,0 6px 12px rgba(73,57,25,.06)!important}
.teacher-note-card,.teacher-teacher-note-card,.teacher-pdf-teacher-note-card,.teacher-ppt-teacher-note-card,.teacher-note-stat-card,.teacher-schedule-summary-card{
  border-radius:11px!important;box-shadow:0 4px 0 #e0e8ef,0 7px 13px rgba(28,51,74,.06)!important;
}
#teacherSaveStatus,.teacher-status-message,.teacher-toast,.teacher-backup-status{border-radius:9px!important;box-shadow:0 3px 0 rgba(210,222,233,.7),0 6px 10px rgba(28,51,74,.05)!important}
:is(.module-overlay,.wb-overlay,.analysis-panel,.mistake-center-panel,.teacher-home,.help-manual) :is(input[type="text"],input[type="search"],input[type="number"],input[type="password"],textarea,select){
  border-radius:9px!important;border-color:#cbd8e4!important;
  box-shadow:inset 0 2px 4px rgba(30,57,83,.035),0 2px 0 rgba(255,255,255,.8)!important;
}
:is(.module-overlay,.wb-overlay,.analysis-panel,.mistake-center-panel,.teacher-home,.help-manual) button{
  transition:transform .17s ease,box-shadow .17s ease,background .17s ease!important;
}
.teacher-word-toolbar button:hover,.teacher-pdf-toolbar button:hover,.teacher-ppt-toolbar button:hover,.teacher-whiteboard-toolbar button:hover,
.teacher-home-tab:hover,.help-nav-button:hover,.mistake-actions button:hover{transform:translateY(-1px)}
/* Preserve printable/study material as a flat white page; the workspace around it carries the depth. */
.paper-sheet,.teacher-word-page,.teacher-pdf-page,.teacher-ppt-slide,.teacher-pdf-canvas-wrap{box-shadow:none!important}
@media(max-width:760px){
  #mBody.module-overlay-body{padding:18px 14px 34px!important}
  .module-panel-intro,.teacher-home-hero{border-radius:13px!important;padding:17px!important}
  .module-panel-intro-count{white-space:normal;text-align:center}
  #mBody .module-feature-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:12px!important}
  #mBody .module-feature-btn{min-height:138px!important;padding:17px!important}
  .teacher-home-nav{position:sticky;top:0;overflow-x:auto;scrollbar-width:thin}
  .teacher-home-tab{flex:1 0 126px}
  .teacher-home-main-grid,.teacher-home-bottom{grid-template-columns:minmax(0,1fr)!important}
  .teacher-home-quick-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .mistake-center-main{padding:16px 12px 34px!important}
  .mistake-stats{grid-template-columns:1fr!important}
  .mistake-stat{border-right:1px solid #d7e1eb!important}
  .analysis-body{padding:18px 15px 24px!important}
  #dailyPanel .wb-body{padding:16px!important}
}
@media(max-width:500px){
  #mBody .module-feature-grid,.teacher-home-quick-grid{grid-template-columns:1fr!important}
  .module-panel-intro{align-items:flex-start!important;gap:12px!important;padding:14px!important}
  .module-panel-intro-mark{width:48px!important;height:48px!important}
  .module-panel-intro-mark svg{width:32px!important;height:32px!important}
  .teacher-home-hero-mark{display:none!important}
  .mistake-row{grid-template-columns:minmax(0,1fr) auto!important}
  .mistake-cell{padding:10px 9px!important}
  .mistake-knowledge,.mistake-review-time{grid-column:1/-1}
}
@media(prefers-reduced-motion:reduce){
  .module-overlay *, .wb-overlay *, .analysis-panel *, .mistake-center-panel *, .teacher-home *{scroll-behavior:auto!important;transition:none!important;animation:none!important}
}
/* ===== FULL INTERIOR PASS · module content and post-action states ===== */
:root{
  --interior-paper:#fff;
  --interior-soft:#f3f7fa;
  --interior-edge:#d2deea;
  --interior-lift:0 5px 0 #dfe7ee,0 10px 18px rgba(28,51,74,.075),inset 0 1px #fff;
}

/* Shared overlays keep the same raised shell as the home cards. */
#wbPanel,#essayPanel,#dailyPanel,#qbEntryPanel,#uploadPanel,#editPanel,#mPanel,#analysisPanel,
.mistake-center-panel,.potato-chat-box{
  border:1px solid #cbd8e4!important;
  background:linear-gradient(145deg,#f8fbfd 0%,#eaf1f7 100%)!important;
  box-shadow:0 12px 0 rgba(188,204,219,.62),0 25px 54px rgba(8,24,41,.28),inset 0 1px #fff!important;
}
.wb-body,.analysis-body,.mistake-center-main,#mBody.module-overlay-body{
  background:radial-gradient(ellipse at 82% 0%,rgba(255,255,255,.82),transparent 42%),linear-gradient(145deg,#edf3f8,#e6eef5 62%,#edf3f8)!important;
}
.wb-header,.module-overlay-header,.analysis-header,.mistake-center-header{
  border-bottom:2px solid var(--interior-gold)!important;
  box-shadow:0 5px 0 rgba(18,39,63,.08),0 9px 16px rgba(13,29,48,.15),inset 0 1px rgba(255,255,255,.12)!important;
}
.wb-close,.module-overlay-close,.analysis-close,.mistake-center-header button{
  min-width:34px!important;min-height:34px!important;border-radius:9px!important;
  box-shadow:0 3px 0 rgba(4,14,25,.22),inset 0 1px rgba(255,255,255,.14)!important;
}

/* Vocabulary / phrase lists, review cards, quizzes and import feedback. */
.wb-tabs{
  border-top:1px solid #cbd8e4!important;
  background:linear-gradient(180deg,#e8f0f6,#dce7f0)!important;
  box-shadow:inset 0 1px #fff,0 4px 0 rgba(9,29,49,.14)!important;
}
.wb-tab{
  color:#526b84!important;border-radius:8px 8px 0 0!important;
  text-shadow:none!important;padding:11px 13px!important;
}
.wb-tab:hover{background:linear-gradient(145deg,#fff,#eff5f9)!important;color:#17365d!important;box-shadow:0 3px 0 #d5e1eb!important}
.wb-tab.active{color:#17365d!important;background:linear-gradient(145deg,#fff,#f5f9fc)!important;border-bottom-color:var(--interior-gold)!important;box-shadow:0 3px 0 #d3dee8,inset 0 1px #fff!important}
/* Keep wordbank tabs readable when older dark-workspace rules are also present. */
#wbPanel .wb-tabs{
  border-top:1px solid #40566f!important;
  background:linear-gradient(180deg,#1d314d,#132238)!important;
}
#wbPanel .wb-tabs>.wb-tab{
  color:#dce6f0!important;-webkit-text-fill-color:#dce6f0!important;
  opacity:1!important;text-shadow:none!important;
}
#wbPanel .wb-tabs>.wb-tab:hover:not(.active){
  background:#294767!important;color:#fff!important;-webkit-text-fill-color:#fff!important;
}
#wbPanel .wb-tabs>.wb-tab.active{
  background:linear-gradient(145deg,#fffdf7,#f3f6f9)!important;
  color:#172f49!important;-webkit-text-fill-color:#172f49!important;
  border-bottom-color:#b78a2d!important;font-weight:750!important;
}
#wbPanel .wb-tabs>.wb-tab span{color:inherit!important;-webkit-text-fill-color:inherit!important}
#wbPanel .wb-tabs>.wb-tab:not(.active)[onclick*="wrong_book"]{
  color:#ffaaa1!important;-webkit-text-fill-color:#ffaaa1!important;
}
#wbBody .wb-item,#wbBody .flashcard,#wbBody .quiz-opt,#wbBody .quiz-score,
#wbBody .wb-empty,#wbBody .quiz-result,#wbBody .review-summary,
#uploadDropZone,#uploadStatus,#uploadPreview,#uploadProgress,
#editPanel>div:not(.wb-header),#uploadPanel>div:not(.wb-header){
  border:1px solid var(--interior-edge)!important;border-radius:12px!important;
  box-shadow:var(--interior-lift)!important;
}
#wbBody .wb-item{background:linear-gradient(145deg,#fff,#f3f7fa)!important;border-left:4px solid var(--interior-gold)!important;padding:13px 15px!important;margin:0 0 9px!important}
#wbBody .wb-item:hover{transform:translateY(-2px)!important;box-shadow:0 7px 0 #d8e3ec,0 14px 22px rgba(28,51,74,.11),inset 0 1px #fff!important}
#wbBody .wb-item .wb-word{color:#17365d!important}
#wbBody .wb-item .wb-actions button,#wbBody .wb-item button:not(.wb-memorize-btn){border-radius:8px!important;box-shadow:0 2px 0 #e0e8ef!important}
#wbBody .flashcard{background:radial-gradient(ellipse at 50% 0%,#fff,transparent 68%),linear-gradient(145deg,#f6fafc,#e7f0f6)!important;box-shadow:0 9px 0 #dbe5ed,0 15px 25px rgba(28,51,74,.12),inset 0 1px #fff!important}
#wbBody .wb-empty{background:linear-gradient(145deg,#fff,#f1f6fa)!important;color:#718096!important}
#uploadDropZone{background:linear-gradient(145deg,#fff,#eef5fa)!important;border:2px dashed #9bb2c7!important}
#uploadStatus,#uploadPreview{padding:13px!important;background:linear-gradient(145deg,#fff,#f1f6fa)!important}
#uploadProgress{padding:12px!important;background:#fff!important}
#uploadProgress>div:first-child{border-radius:8px!important;box-shadow:inset 0 2px 4px rgba(24,48,75,.12)!important}
#uploadProgressBar{border-radius:8px!important;box-shadow:inset 0 1px rgba(255,255,255,.3),0 2px 5px rgba(24,48,75,.16)!important}
#uploadActions button,#editPanel button{border-radius:8px!important;box-shadow:0 3px 0 rgba(24,48,75,.13)!important}

/* Essay writing form, waiting state, rubric/result details and revision cycle. */
#essayPanel .wb-body{background:transparent!important;padding:22px!important}
#essayPanel .essay-layout{display:grid!important;grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;gap:16px!important;max-width:1240px!important;padding:0!important;border:0!important;background:transparent!important}
#essayPanel .essay-left,#essayPanel .essay-right{
  min-width:0;padding:19px!important;border:1px solid var(--interior-edge)!important;border-radius:13px!important;
  background:linear-gradient(150deg,#fff 0%,#fbfdff 65%,#f0f5f9 100%)!important;box-shadow:var(--interior-lift)!important;
}
#essayPanel .essay-label{color:#23496c!important;font-size:13px!important}
#essayPanel .essay-textarea,#essayPanel .essay-req-textarea{
  min-height:350px!important;border:1px solid #c7d6e4!important;border-radius:9px!important;
  background:linear-gradient(180deg,#fff,#fbfdff)!important;color:#26384d!important;
  box-shadow:inset 0 2px 5px rgba(30,57,83,.045),0 3px 0 #e5ecf2!important;
}
#essayPanel .essay-textarea:focus,#essayPanel .essay-req-textarea:focus{border-color:#6a91b2!important;box-shadow:0 0 0 3px rgba(49,95,134,.13),inset 0 2px 5px rgba(30,57,83,.035)!important}
#essayPanel .essay-word-count{display:inline-flex;align-self:flex-end;margin:5px 0 8px;padding:5px 10px;border:1px solid #d3dfeb;border-radius:8px;background:linear-gradient(145deg,#fff,#edf4f9);box-shadow:0 2px 0 #dfe7ee;color:#526b84!important}
#essayPanel .essay-punct-guide,#essayPanel .essay-clause-practice,#essayPanel .essay-structure-practice{
  border-radius:12px!important;box-shadow:0 4px 0 #dfe7ee,0 8px 14px rgba(28,51,74,.065)!important;
}
#essayPanel .essay-submit-row{padding:16px 0 4px!important;text-align:center}
#essayPanel .essay-submit-btn{border-radius:9px!important;box-shadow:0 5px 0 #164938,0 9px 16px rgba(24,79,62,.18)!important}
#essayResult{margin:18px auto 0!important;max-width:1240px;padding:18px!important;border:1px solid var(--interior-edge)!important;border-radius:14px!important;background:linear-gradient(145deg,#fff,#f3f7fa)!important;box-shadow:0 7px 0 #dfe7ee,0 13px 23px rgba(28,51,74,.09),inset 0 1px #fff!important}
#essayResult[style*="display: block"]{display:block!important}
#essayResult>div[style*="padding:40px"]{
  display:flex!important;min-height:92px;align-items:center;justify-content:center;padding:22px!important;
  border:1px solid #cbd8e4;border-radius:12px;background:linear-gradient(145deg,#fff,#edf4f9);
  box-shadow:0 5px 0 #dfe7ee,0 9px 16px rgba(28,51,74,.08);color:#315f86;font-weight:650;
}
#essayResult>div[style*="padding:40px"] span{border-color:#cbd8e4!important;border-top-color:#315f86!important}
#essayResult .essay-score-circle{margin:4px auto 16px!important}
#essayResult .essay-breakdown{grid-template-columns:repeat(3,minmax(0,1fr))!important}
#essayResult .essay-errors-section,#essayResult .essay-suggestions,#essayResult .essay-corrected,#essayResult .essay-coverage{margin-top:12px}

/* Daily reading: all five workflow stages and submitted feedback. */
#dailyPanel .wb-body{background:transparent!important;padding:20px!important}
#dailyContent{color:#2b3e53!important}
#dailyContent [data-reading-step]{
  display:inline-flex!important;align-items:center;justify-content:center;min-height:34px;padding:7px 12px!important;
  border:1px solid #cbd8e4!important;border-radius:9px!important;
  box-shadow:0 3px 0 #dfe7ee,0 5px 10px rgba(28,51,74,.06)!important;
}
#dailyContent [data-reading-step][style*="17324d"]{box-shadow:0 4px 0 #10283f,0 7px 12px rgba(18,39,63,.18)!important}
#dailyContent>div{border-color:#d5e0ea!important}
#dailyContent h3{color:#23496c!important}
#dailyContent button,#dailyGenWrap button{border-radius:8px!important;box-shadow:0 3px 0 rgba(28,51,74,.14),inset 0 1px rgba(255,255,255,.25)!important}
#dailyContent [id^="dql_"]{border:1px solid #d3dfeb!important;background:linear-gradient(145deg,#fff,#f4f8fb)!important;box-shadow:0 3px 0 #e0e8ef,0 6px 11px rgba(28,51,74,.05)!important}
#dailyContent [id^="dq_fb_"]{border:1px solid #d6e1eb!important}
#readingSummary{font-weight:550}

/* Learning analysis: data-rich and empty views share the same raised surface. */
#analysisOverlay{background:rgba(10,21,36,.62)!important;backdrop-filter:blur(6px)!important}
#analysisPanel{
  max-height:min(90vh,980px)!important;border-radius:17px!important;overflow:auto!important;
  background:radial-gradient(ellipse at 85% 0%,rgba(255,255,255,.9),transparent 42%),linear-gradient(145deg,#f8fbfd,#eaf1f7)!important;
  box-shadow:0 12px 0 rgba(188,204,219,.66),0 26px 58px rgba(8,24,41,.32),inset 0 1px #fff!important;
}
#analysisPanel .analysis-header{border-radius:16px 16px 0 0!important}
#analysisPanel .analysis-body{background:transparent!important;color:#2b3e53!important}
#analysisPanel .analysis-stats{gap:12px!important}
#analysisPanel .analysis-stat,#analysisPanel .analysis-chart{
  border:1px solid #d3dfeb!important;border-radius:12px!important;
  background:linear-gradient(145deg,#fff,#f1f6fa)!important;
  box-shadow:0 5px 0 #dfe7ee,0 9px 17px rgba(28,51,74,.07),inset 0 1px #fff!important;
}
#analysisPanel .analysis-stat .as-num{color:#17365d!important;text-shadow:0 2px 0 rgba(207,221,233,.8)}
#analysisPanel .analysis-stat .as-label{color:#52677c!important}
#analysisPanel .analysis-section h3{padding:0 0 8px;border-bottom:1px solid rgba(216,226,235,.45);color:#f1f5f9!important;text-shadow:0 1px 3px rgba(0,0,0,.22)}
#analysisPanel .analysis-empty{border:1px dashed #b9cad9;border-radius:12px;background:linear-gradient(145deg,#fff,#edf4f9);color:#34495e!important;box-shadow:0 4px 0 #dfe7ee,0 8px 13px rgba(28,51,74,.06)}

/* Question-bank answer sheets, mistake details, teacher feedback and chat states. */
#qbEntryPanel .qb-upload-area,#qbEntryPanel #aiGenPassage,#qbEntryPanel #aiGenResult,
#qbEntryPanel #qbParsedBar,.paper-answer-sheet,.paper-answer-toggle,
.mistake-stat,.mistake-row,.mistake-detail,.teacher-note-card,.teacher-status-message,
.potato-chat-typing,.potato-chat-footer{
  border-radius:10px!important;box-shadow:0 4px 0 #dfe7ee,0 8px 14px rgba(28,51,74,.065)!important;
}
#qbEntryPanel .qb-upload-area,#qbEntryPanel #aiGenPassage,#qbEntryPanel #aiGenResult,#qbEntryPanel #qbParsedBar{
  border-color:#d3dfeb!important;background:linear-gradient(145deg,#fff,#f1f6fa)!important;
}
.paper-answer-toggle{background:linear-gradient(145deg,#244c70,#17324d)!important;box-shadow:0 4px 0 #10283f,0 7px 13px rgba(18,39,63,.18)!important}
.paper-answer-sheet{background:linear-gradient(145deg,#fff,#f4f8fb)!important}
.mistake-stat,.mistake-row,.mistake-detail,.teacher-note-card,.teacher-status-message{border:1px solid #d3dfeb!important;background:linear-gradient(145deg,#fff,#f2f7fa)!important}
.potato-chat-overlay{background:rgba(10,21,36,.62)!important;backdrop-filter:blur(6px)!important}
.potato-chat-box{border-radius:16px!important;overflow:hidden!important}
.potato-chat-body{background-color:#eaf0f6!important;background-image:linear-gradient(rgba(49,95,134,.045) 1px,transparent 1px)!important}
.potato-chat-body .ask-msg.user{border-radius:11px 11px 3px 11px!important;box-shadow:0 4px 0 rgba(27,62,91,.18),0 8px 12px rgba(28,51,74,.08)!important}
.potato-chat-body .ask-msg.potato{border-radius:11px 11px 11px 3px!important;box-shadow:0 4px 0 #dfe7ee,0 8px 12px rgba(28,51,74,.07)!important}
.potato-chat-typing{background:linear-gradient(145deg,#fff,#f2f7fa)!important}

/* Keep battle visuals explicitly outside the shared interior reskin. */
.teacher-note-jump-status{margin:0 0 7px;padding:0;color:#526b84;font-size:12px;line-height:1.5}
.teacher-note-jump-status:empty{display:none}
.teacher-note-jump-status.is-error{padding:8px 10px;border:1px solid #efc3bd;border-radius:8px;background:linear-gradient(145deg,#fff8f6,#fce9e5);color:#9d3f32}
.teacher-note-jump-item{
  border:1px solid #d3dfeb!important;border-radius:10px!important;
  background:linear-gradient(145deg,#fff 0%,#f3f7fa 100%)!important;
  box-shadow:0 3px 0 #dfe7ee,0 7px 13px rgba(28,51,74,.07),inset 0 1px #fff!important;
  transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease,background .16s ease!important;
}
.teacher-note-jump-item:hover,.teacher-note-jump-item:focus-visible{
  border-color:#8ba9c3!important;background:linear-gradient(145deg,#fff,#eaf2f8)!important;
  box-shadow:0 5px 0 #d8e3ec,0 10px 17px rgba(28,51,74,.1),inset 0 1px #fff!important;
  transform:translateY(-1px);outline:2px solid transparent;outline-offset:2px;
}
.teacher-note-jump-item:focus-visible{outline-color:#6e95b5}
.teacher-note-jump-main strong{color:#17365d!important}
.teacher-note-jump-main em{color:#60768c!important}
.teacher-note-jump-item small{color:#718096!important}
.teacher-note-jump-item[aria-busy="true"]{opacity:.68;cursor:progress;box-shadow:0 2px 0 #dfe7ee!important;transform:none}
@media(max-width:760px){
  #essayPanel .wb-body{padding:15px!important}
  #essayPanel .essay-layout{grid-template-columns:minmax(0,1fr)!important;gap:12px!important}
  #essayPanel .essay-left,#essayPanel .essay-right{padding:14px!important}
  #essayPanel .essay-textarea,#essayPanel .essay-req-textarea{min-height:260px!important}
  #essayResult .essay-breakdown{grid-template-columns:minmax(0,1fr)!important}
  #analysisPanel .analysis-stats{grid-template-columns:minmax(0,1fr)!important}
  #analysisPanel .analysis-stat{border-right:1px solid #d3dfeb!important}
}

/* Readable source filters in the mistake center, including over themed backgrounds. */
.mistake-center-panel .mistake-source-toolbar{
  gap:5px!important;padding:6px!important;border:1px solid #cbd8e4!important;border-bottom:1px solid #cbd8e4!important;
  border-radius:10px!important;background:#e7eef5!important;box-shadow:inset 0 1px #fff!important;
}
.mistake-center-panel .mistake-source-toolbar .mistake-filter{
  min-height:36px!important;padding:7px 12px!important;border:1px solid transparent!important;border-bottom:3px solid transparent!important;
  border-radius:7px!important;background:#f8fbfd!important;color:#405873!important;font-size:12px!important;font-weight:700!important;
}
.mistake-center-panel .mistake-source-toolbar .mistake-filter:hover{
  border-color:#aebfd0!important;background:#fff!important;color:#17365d!important;
}
.mistake-center-panel .mistake-source-toolbar .mistake-filter.active{
  border-color:#c7d4e0!important;border-bottom-color:#b88726!important;background:#fff!important;color:#122945!important;
  box-shadow:0 2px 5px rgba(23,54,93,.1)!important;
}
.mistake-center-panel .mistake-source-toolbar .mistake-filter:focus-visible{outline:2px solid #315f86!important;outline-offset:2px}

/* Generated 3D atlas replaces the old flat pictogram set across learning cards. */
.learning-icon-art{
  display:inline-block;flex:none;width:100%;height:100%;background-image:url('./ui/learning-icon-atlas-3d.png?v=20260930-photo-2');
  background-repeat:no-repeat;background-size:400% 400%;
}
.learning-icon-art--book-open{background-position:0 0}
.learning-icon-art--check-book{background-position:33.333333% 0}
.learning-icon-art--flashcard{background-position:66.666667% 0}
.learning-icon-art--quiz{background-position:100% 0}
.learning-icon-art--headphones{background-position:0 33.333333%}
.learning-icon-art--upload{background-position:33.333333% 33.333333%}
.learning-icon-art--library{background-position:66.666667% 33.333333%}
.learning-icon-art--capsule{background-position:100% 33.333333%}
.learning-icon-art--shuffle{background-position:0 66.666667%}
.learning-icon-art--link{background-position:33.333333% 66.666667%}
.learning-icon-art--essay{background-position:66.666667% 66.666667%}
.learning-icon-art--chart{background-position:100% 66.666667%}
.learning-icon-art--target{background-position:0 100%}
.learning-icon-art--grammar{background-position:33.333333% 100%}
.learning-icon-art--reading{background-position:66.666667% 100%}
.learning-icon-art--video{background-position:100% 100%}
.learning-icon-art--calendar,.learning-icon-art--tutor{
  background-image:url('./ui/learning-icon-supplement-3d.png?v=20260930-photo-2');background-size:200% 100%;
}
.learning-icon-art--calendar{background-position:0 0}
.learning-icon-art--tutor{background-position:100% 0}
.learning-icon-art--special{
  background-image:url('./ui/learning-icon-specials-3d.png?v=20260930-photo-2');background-size:400% 300%;
}
.learning-icon-art--phrase-mastered{background-position:0 0}
.learning-icon-art--phrase-flashcard{background-position:33.333333% 0}
.learning-icon-art--phrase-quiz{background-position:66.666667% 0}
.learning-icon-art--phrase-upload{background-position:100% 0}
.learning-icon-art--paper-fetch{background-position:0 50%}
.learning-icon-art--my-papers{background-position:33.333333% 50%}
.learning-icon-art--type-practice{background-position:66.666667% 50%}
.learning-icon-art--essay-structure{background-position:100% 50%}
.learning-icon-art--qbank-entry{background-position:0 100%}
.learning-icon-art--paper-management{background-position:33.333333% 100%}
.learning-icon-art--admin-access{background-position:66.666667% 100%}
.learning-icon-art--workspace{background-position:100% 100%}
#mBody .module-feature-btn .f-icon .learning-icon-art{width:54px;height:54px}
#mBody .module-panel-intro-mark .learning-icon-art{width:50px;height:50px}
.module-card-icon.learning-icon-decorated .learning-icon-art{width:43px;height:43px}
.teacher-home-action-icon.learning-icon-decorated .learning-icon-art{width:27px;height:27px}
.module-tag.learning-icon-decorated .learning-icon-art{width:14px;height:14px}
#mBody .module-feature-btn .f-icon .learning-icon-art--special{width:40px;height:54px}
#mBody .module-panel-intro-mark .learning-icon-art--special{width:37px;height:50px}
.module-card-icon.learning-icon-decorated .learning-icon-art--special{width:32px;height:43px}
.teacher-home-action-icon.learning-icon-decorated .learning-icon-art--special{width:20px;height:27px}
.module-tag.learning-icon-decorated .learning-icon-art--special{width:10px;height:14px}
.btn-icon .learning-icon-art{width:16px;height:16px}
/* Final overlay fixes: capsule export action stays visible below the title and every modal has a clear escape route. */
#capsulePanel{top:53px!important;height:calc(100% - 53px)!important;max-width:none!important;transform:none!important;border-radius:0!important}
#capsulePanel .capsule-header{position:relative!important;min-height:104px!important;padding:14px 250px 15px 22px!important;background:linear-gradient(135deg,#263d64,#4b4d91)!important}
#capsulePanel .capsule-header h2{margin:0 0 4px!important}
#capsulePanel .capsule-header-subtitle{display:block!important;margin:3px 0 8px!important;line-height:1.5!important;white-space:normal!important}
#capsulePanel .capsule-export-link{position:relative;z-index:2;display:inline-flex;align-items:center;min-height:24px;padding:3px 8px;border:1px solid rgba(252,211,77,.75);border-radius:3px;color:#fcd34d!important;background:rgba(12,25,46,.25);font-size:11px;font-weight:700;text-decoration:none!important}
#capsulePanel .capsule-export-link:hover{background:#fcd34d;color:#263d64!important}
#uploadPanel.upload-panel{top:50%!important;left:50%!important;right:auto!important;height:auto!important;transform:translate(-50%,-50%)!important;border-radius:4px!important;overflow:hidden!important}
#uploadPanel .upload-panel-header{min-height:86px!important;padding:14px 270px 13px 22px!important;border-radius:0!important}
#uploadPanel .upload-panel-header h2{margin:0 0 4px!important}
#uploadPanel .upload-panel-header p{display:block!important;margin:0!important;line-height:1.5!important}
#uploadPanel .upload-panel-header .upload-back-btn{top:15px!important;right:60px!important}
#uploadPanel .upload-panel-body{padding:20px 22px 18px!important;border:0!important;border-radius:0!important;box-shadow:none!important;background:linear-gradient(145deg,#f8fbfd 0%,#edf3f8 100%)!important}
#uploadPanel #uploadStatus{border-radius:3px!important;box-shadow:none!important}
#uploadPanel #uploadPreview .wb-item{border-radius:3px!important;box-shadow:none!important}
.gaokao-rubric-meta{display:grid;grid-template-columns:auto auto 1fr;gap:8px;align-items:center;margin:10px 0;padding:10px 12px;border:1px solid #d8c99e;border-left:3px solid #b8872d;background:#fffaf0;color:#6d5626;font-size:11px;line-height:1.55}.gaokao-rubric-meta strong{color:#8d641b}.gaokao-rubric-meta span:last-child{color:#786c55}.gaokao-dimension-feedback{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:10px 0}.gaokao-dimension-feedback>div{display:grid;gap:5px;padding:10px;border:1px solid #d6e1eb;border-radius:7px;background:linear-gradient(145deg,#fff,#f1f6f9)}.gaokao-dimension-feedback strong{color:#234764;font-size:11px}.gaokao-dimension-feedback span{color:#657b8f;font-size:11px;line-height:1.55}
@media(max-width:760px){ #capsulePanel{top:71px!important;height:calc(100% - 71px)!important}#capsulePanel .capsule-header{min-height:112px!important;padding:13px 120px 13px 14px!important}#capsulePanel .capsule-header-subtitle{display:block!important;max-width:100%!important}#capsulePanel .module-back-btn{top:15px!important;right:52px!important}#capsulePanel .capsule-export-link{margin-top:2px}#uploadPanel .upload-panel-header{padding-right:120px!important}#uploadPanel .upload-panel-body{padding:15px 14px 14px!important}.gaokao-rubric-meta{grid-template-columns:1fr}.gaokao-dimension-feedback{grid-template-columns:1fr}.wb-stage-bar{align-items:flex-start;flex-direction:column;gap:8px;padding:10px 14px}.wb-stage-bar-copy{flex-wrap:wrap;gap:5px 8px}.wb-stage-bar-note{width:100%}.wb-stage-bar .learning-stage-buttons{width:100%}.wb-stage-bar .learning-stage-btn{flex:1}}
@media(max-width:480px){ #capsulePanel .capsule-header{padding-right:100px!important}#capsulePanel .module-back-btn{display:none!important}#uploadPanel .upload-panel-header .upload-back-btn{display:none!important}}
#essayPanel .essay-layout.stage-hidden,#essayPanel .essay-submit-row.stage-hidden,#essayPanel .essay-result.stage-hidden{display:none!important}



.teacher-planning-view{margin-top:14px;color:#19334d}
.teacher-prep-dashboard{display:grid;grid-template-columns:minmax(0,1fr) 220px;gap:12px;margin:12px 0}
.teacher-prep-next,.teacher-prep-followup-summary,.teacher-plan-list,.teacher-plan-editor,.teacher-followup-form,.teacher-followup-list,.teacher-practice-saved,.teacher-practice-builder{border:1px solid #cad8e5;border-radius:12px;background:linear-gradient(145deg,#fffdf7,#f2f6fa);box-shadow:0 4px 12px rgba(14,38,61,.09)}
.teacher-prep-next{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 17px}.teacher-prep-next>div{display:grid;gap:4px}.teacher-prep-next small,.teacher-plan-editor-heading small{color:#b0852d;font-size:11px;font-weight:800;letter-spacing:.08em}.teacher-prep-next strong{font-size:17px;color:#163653}.teacher-prep-next span{font-size:12px;color:#647b91}.teacher-prep-next button,.teacher-plan-subnav button,.teacher-plan-list-actions button,.teacher-plan-form-actions button,.teacher-practice-source-actions button,.teacher-practice-bank-controls button,.teacher-practice-question-top button,.teacher-practice-edit-actions button,.teacher-practice-saved-row>button,.teacher-practice-meta>button,.teacher-followup-card-head button{border:1px solid #bfd0df;border-radius:7px;background:#fff;color:#244867;padding:8px 12px;font:600 12px "Microsoft YaHei",sans-serif;cursor:pointer}.teacher-prep-next button,.teacher-plan-form-actions button.primary,.teacher-practice-bank-controls button.primary,.teacher-practice-edit-actions button.primary,.teacher-practice-meta>button.primary{background:#1e4866;border-color:#1e4866;color:#fff}.teacher-prep-followup-summary{display:grid;grid-template-columns:auto 1fr;align-items:center;column-gap:11px;text-align:left;padding:10px 14px;cursor:pointer;color:#234766}.teacher-prep-followup-summary b{grid-row:span 2;color:#b38832;font-size:28px}.teacher-prep-followup-summary span{font-weight:700}.teacher-prep-followup-summary em{font-size:10px;color:#74879a;font-style:normal}
.teacher-plan-subnav{display:flex;gap:7px;flex-wrap:wrap;padding:8px;border:1px solid #50677f;border-radius:10px;background:linear-gradient(120deg,#1a3552,#234965)}.teacher-plan-subnav button{border-color:transparent;background:transparent;color:#dce7ef}.teacher-plan-subnav button.active{background:#f7f2e4;color:#183954;box-shadow:0 2px 0 #b88a31}
.teacher-plan-workspace{display:grid;grid-template-columns:minmax(250px,.8fr) minmax(0,1.8fr);gap:14px;align-items:start}.teacher-plan-list,.teacher-plan-editor{padding:15px}.teacher-plan-list-head,.teacher-plan-section-head,.teacher-plan-editor-heading,.teacher-followup-card-head,.teacher-practice-draft-head{display:flex;justify-content:space-between;align-items:center;gap:12px}.teacher-plan-list-head{margin-bottom:10px}.teacher-plan-list-head strong,.teacher-plan-section-head h3,.teacher-plan-editor-heading h3{margin:0;color:#173956}.teacher-plan-list-item{padding:10px 0;border-top:1px solid #dce4eb}.teacher-plan-list-open{width:100%;display:grid;text-align:left;gap:4px;border:0;background:transparent;padding:2px;color:#294b68;cursor:pointer}.teacher-plan-list-open strong{font-size:13px}.teacher-plan-list-open span,.teacher-plan-list-open small{font-size:11px;color:#6c8193}.teacher-plan-list-item.selected{border-left:3px solid #c99d3c;padding-left:9px}.teacher-plan-list-actions{display:flex;gap:5px;align-items:center;flex-wrap:wrap;margin-top:7px}.teacher-plan-list-actions button{padding:5px 7px;font-size:10px}.teacher-plan-status-done,.teacher-plan-badge{border-radius:20px;padding:5px 9px;background:#e8f3ef;color:#2d705e;font-size:10px;font-weight:700;white-space:nowrap}.teacher-plan-list-actions .danger,.teacher-followup-card-head .danger,.teacher-practice-saved-row .danger,.teacher-practice-question-top .danger{color:#a6423d}.teacher-plan-empty,.teacher-practice-empty{padding:16px;border-radius:9px;background:#f2f6f9;color:#718398;font-size:12px;text-align:center}.teacher-plan-editor-heading{align-items:flex-start;margin-bottom:14px}.teacher-plan-editor-heading h3{margin:4px 0;font-size:18px}.teacher-plan-editor-heading p,.teacher-plan-section-head p{margin:4px 0 0;color:#75899b;font-size:11px}.teacher-plan-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.teacher-plan-fields label,.teacher-practice-meta label,.teacher-practice-edit-form>label,.teacher-practice-edit-two label{display:grid;gap:5px;color:#49667f;font-size:11px;font-weight:650}.teacher-plan-fields .span-two{grid-column:1/-1}.teacher-plan-fields input,.teacher-plan-fields select,.teacher-plan-fields textarea,.teacher-practice-meta input,.teacher-practice-meta select,.teacher-practice-edit-form input,.teacher-practice-edit-form select,.teacher-practice-edit-form textarea,.teacher-followup-form input,.teacher-followup-form select,.teacher-followup-form textarea{width:100%;box-sizing:border-box;border:1px solid #c5d4e0;border-radius:7px;background:#fff;padding:8px 9px;color:#263f57;font:12px/1.55 "Microsoft YaHei",sans-serif}.teacher-plan-fields textarea,.teacher-practice-edit-form textarea,.teacher-followup-form textarea{min-height:58px;resize:vertical}.teacher-plan-procedure{margin:14px 0;padding:12px;border-radius:10px;background:#edf3f7;border:1px solid #d6e1e9}.teacher-plan-section-head{margin-bottom:10px}.teacher-plan-section-head h4{margin:0;color:#234969}.teacher-plan-procedure .teacher-plan-section-head>button{border:1px solid #c1d1df;border-radius:6px;background:#fff;color:#29516f;padding:7px 10px;cursor:pointer}.teacher-plan-stage-row{padding:10px;margin-top:8px;border:1px solid #d3dee7;border-radius:8px;background:#fff}.teacher-plan-stage-head{display:grid;grid-template-columns:minmax(0,1fr) 100px auto;gap:8px;align-items:center}.teacher-plan-stage-head input,.teacher-plan-stage-head label input{width:100%;box-sizing:border-box;border:1px solid #cad7e2;border-radius:6px;padding:7px}.teacher-plan-stage-head label{display:flex;align-items:center;gap:4px;font-size:10px;color:#60778c}.teacher-plan-stage-head button{border:0;background:transparent;color:#a34b46;cursor:pointer}.teacher-plan-stage-columns{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:9px}.teacher-plan-stage-columns label{display:grid;gap:4px;color:#58728a;font-size:10px}.teacher-plan-stage-columns textarea{min-height:55px;width:100%;box-sizing:border-box;border:1px solid #ccd9e3;border-radius:6px;padding:7px;resize:vertical;font:11px/1.45 "Microsoft YaHei",sans-serif}.teacher-plan-form-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;margin-top:12px}.teacher-plan-form-actions span{margin-right:auto;color:#34715f;font-size:11px}.teacher-plan-form-actions button:disabled{opacity:.5;cursor:not-allowed}
.teacher-followup-layout{display:grid;grid-template-columns:minmax(270px,.8fr) minmax(0,1.5fr);gap:14px;margin-top:14px;align-items:start}.teacher-followup-form,.teacher-followup-list{padding:15px}.teacher-followup-form>.teacher-plan-section-head,.teacher-followup-list>.teacher-plan-section-head{margin-bottom:12px}.teacher-followup-roster{margin-top:14px}.teacher-followup-roster>strong{font-size:12px;color:#294c6b}.teacher-followup-roster>div{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px;margin-top:7px;max-height:200px;overflow:auto}.teacher-followup-student{display:flex;align-items:center;gap:7px;padding:6px;border-radius:6px;background:#edf3f7;color:#3c5871;font-size:11px}.teacher-followup-card{margin-top:10px;padding:12px;border:1px solid #d4dfe8;border-radius:9px;background:#fff}.teacher-followup-card-head>div{display:grid;gap:4px}.teacher-followup-card-head strong{color:#1d405d;font-size:13px}.teacher-followup-card-head span,.teacher-followup-progress small{font-size:10px;color:#74889a}.teacher-followup-progress{margin:12px 0 8px}.teacher-followup-progress>div{display:flex;justify-content:space-between;align-items:center;color:#4e6881;font-size:11px}.teacher-followup-progress b{color:#b18836;font-size:20px}.teacher-followup-progress progress{display:block;width:100%;height:9px;margin:5px 0;accent-color:#327462}.teacher-followup-details{margin:8px 0;color:#5c7388;font-size:11px;white-space:pre-wrap}.teacher-followup-recipients{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin-top:10px}.teacher-followup-recipients label{display:flex;align-items:center;justify-content:space-between;gap:4px;padding:5px 7px;border:1px solid #e0e7ed;border-radius:6px;color:#49647b;font-size:10px}.teacher-followup-recipients select{max-width:94px;border:1px solid #ccd9e3;border-radius:5px;padding:4px;background:#fff;color:#34536f;font-size:10px}
.teacher-practice-workspace{display:grid;gap:14px;margin-top:14px}.teacher-practice-saved,.teacher-practice-builder{padding:15px}.teacher-practice-saved-row{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 0;border-top:1px solid #dde5eb}.teacher-practice-saved-row>button:first-child{flex:1;display:flex;align-items:center;justify-content:space-between;gap:10px;text-align:left;border:0;background:transparent}.teacher-practice-saved-row strong{color:#244562}.teacher-practice-saved-row span{color:#7a8b9b;font-size:10px}.teacher-practice-meta{display:grid;grid-template-columns:minmax(200px,1fr) minmax(200px,1fr) auto;gap:10px;align-items:end}.teacher-practice-source-actions{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0 8px}.teacher-practice-file-button{display:inline-flex;align-items:center;padding:8px 12px;border:1px solid #c1d0dd;border-radius:7px;background:#fff;color:#294b67;font-size:12px;font-weight:600;cursor:pointer}.teacher-practice-file-button input{display:none}.teacher-practice-import-note{padding:8px 10px;border-left:3px solid #c4993c;background:#f7f4eb;color:#687d90;font-size:10px}.teacher-practice-source-panel{margin:12px 0;padding:12px;border:1px solid #d3dfe8;border-radius:9px;background:#f3f7fa}.teacher-practice-source-panel[hidden]{display:none}.teacher-practice-bank-controls{display:flex;gap:7px;align-items:center;margin:10px 0}.teacher-practice-bank-controls select{min-width:210px;padding:8px;border:1px solid #c6d5e0;border-radius:7px;background:white;color:#294b67}.teacher-practice-bank-results{max-height:310px;overflow:auto;display:grid;gap:6px}.teacher-practice-bank-row{display:flex;align-items:flex-start;gap:9px;padding:8px;border:1px solid #d6e1e9;border-radius:7px;background:#fff;cursor:pointer}.teacher-practice-bank-row span{display:grid;gap:3px}.teacher-practice-bank-row strong{font-size:11px;color:#2d4f6c}.teacher-practice-bank-row small{font-size:10px;color:#72869a}.teacher-practice-draft-head{margin:16px 0 8px;color:#284b69}.teacher-practice-draft-head span{display:inline-block;padding:2px 7px;border-radius:20px;background:#eadbb5;color:#74571d}.teacher-practice-draft-head small{color:#8696a4;font-size:10px}.teacher-practice-question{margin:9px 0;padding:12px;border:1px solid #d4dfe8;border-radius:9px;background:#fff;box-shadow:0 2px 6px rgba(16,44,67,.05)}.teacher-practice-question-top{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px;color:#56718a;font-size:10px}.teacher-practice-question-top>div{display:flex;gap:5px}.teacher-practice-question-top button{padding:5px 8px;font-size:10px}.teacher-practice-passage{margin:7px 0;padding:8px 10px;border-left:3px solid #7e9db6;background:#f0f5f8;color:#536b7f}.teacher-practice-passage small,.teacher-practice-source{font-size:9px;color:#8191a0}.teacher-practice-passage p{margin:5px 0 0;font-size:11px;line-height:1.65;white-space:pre-wrap}.teacher-practice-question>strong{display:block;color:#25435e;font-size:12px;white-space:pre-wrap}.teacher-practice-options{padding-left:23px;color:#506b84;font-size:11px}.teacher-practice-answer,.teacher-practice-explanation{margin:5px 0;color:#4c687f;font-size:10px;white-space:pre-wrap}.teacher-practice-unchecked{color:#a67831}.teacher-practice-source{display:block;margin-top:8px}.teacher-practice-edit-form{display:grid;gap:9px}.teacher-practice-edit-form>label{margin-top:4px}.teacher-practice-edit-form .teacher-plan-section-head{margin:0}.teacher-practice-edit-two{display:grid;grid-template-columns:1fr 160px;gap:9px}.teacher-practice-edit-actions{text-align:right}.teacher-practice-save-bottom{text-align:right;margin-top:12px}.teacher-practice-import-error{color:#a3423d;font-size:11px}
@media(max-width:1000px){.teacher-plan-workspace,.teacher-followup-layout{grid-template-columns:1fr}.teacher-prep-dashboard{grid-template-columns:1fr}.teacher-plan-stage-columns{grid-template-columns:1fr}.teacher-practice-meta{grid-template-columns:1fr 1fr}.teacher-practice-meta>button{grid-column:1/-1}}
@media(max-width:640px){.teacher-plan-fields,.teacher-followup-recipients{grid-template-columns:1fr}.teacher-plan-fields .span-two{grid-column:auto}.teacher-plan-stage-head{grid-template-columns:1fr 90px auto}.teacher-followup-roster>div{grid-template-columns:1fr 1fr}.teacher-practice-meta,.teacher-practice-edit-two{grid-template-columns:1fr}.teacher-practice-meta>button{grid-column:auto}.teacher-prep-next{align-items:flex-start;flex-direction:column}.teacher-practice-bank-controls{align-items:stretch;flex-direction:column}.teacher-practice-bank-controls select{min-width:0}.teacher-practice-saved-row{align-items:flex-start}.teacher-practice-saved-row>button:first-child{align-items:flex-start;flex-direction:column}}
@media(prefers-reduced-motion:reduce){.teacher-planning-view *{scroll-behavior:auto!important;transition:none!important}}
@media print{.teacher-practice-source-actions,.teacher-practice-saved,.teacher-practice-meta,.teacher-practice-draft-head,.teacher-practice-import-note,.teacher-practice-question-top,.teacher-practice-save-bottom{display:none!important}.teacher-practice-question{break-inside:avoid;box-shadow:none}}


.teacher-practice-options{list-style-type:upper-alpha}