.app-shell{background:linear-gradient(135deg, #f5f7faf2 0%, #d7e5f6eb 100%), radial-gradient(circle at top right, #3498db29, transparent 30%), radial-gradient(circle at bottom left, #2ecc711a, transparent 28%), var(--color-bg);min-height:100dvh}.app-main{min-height:100dvh}.app-sidebar{display:none}.app-tabbar{right:12px;bottom:max(10px, env(safe-area-inset-bottom));z-index:20;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#fffffff0;border:1px solid #3498db1f;border-radius:20px;grid-template-columns:repeat(5,minmax(0,1fr));gap:4px;max-width:560px;min-height:62px;margin:0 auto;padding:6px;display:grid;position:fixed;left:12px;box-shadow:0 14px 38px #3498db2e}.app-tabbar a{min-width:0;min-height:50px;color:var(--color-muted);touch-action:manipulation;border-radius:14px;place-items:center;font-size:12px;font-weight:700;text-decoration:none;display:grid}.app-tabbar a.active{background:linear-gradient(135deg, var(--color-primary), var(--color-primary-strong));color:#fff;box-shadow:0 6px 16px #3498db47}@media (width>=860px){.app-shell{grid-template-columns:232px minmax(0,1fr);display:grid}.app-main{min-width:0;padding:28px}.app-sidebar{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:#ffffffc7;border-right:1px solid #3498db1f;flex-direction:column;gap:28px;height:100dvh;padding:26px 18px;display:flex;position:sticky;top:0}.app-sidebar-brand{color:var(--color-heading);align-items:center;gap:12px;padding:0 8px;display:flex}.app-sidebar-brand span{background:linear-gradient(135deg, var(--color-primary), var(--color-primary-strong));color:#fff;border-radius:50%;place-items:center;width:38px;height:38px;font-weight:800;display:grid;box-shadow:0 8px 20px #3498db47}.app-sidebar nav{gap:8px;display:grid}.app-sidebar a{min-height:44px;color:var(--color-muted);border-radius:14px;align-items:center;gap:10px;padding:12px 14px;font-weight:700;text-decoration:none;display:flex}.app-sidebar a.active{background:linear-gradient(135deg, var(--color-primary), var(--color-primary-strong));color:#fff;box-shadow:0 10px 24px #3498db38}.app-tabbar{display:none}}.login-screen{min-height:100dvh;padding:calc(22px + env(safe-area-inset-top)) 18px calc(22px + env(safe-area-inset-bottom));background:radial-gradient(circle at 80% 8%,#3498db38,#0000 26%),radial-gradient(circle at 12% 78%,#2ecc7124,#0000 26%),linear-gradient(135deg,#f5f7fa 0%,#dce9f7 100%);place-items:center;display:grid}.login-panel{border:1px solid var(--color-line);width:min(100%,420px);box-shadow:var(--shadow-panel);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#fffffff0;border-radius:18px;padding:28px 24px}.login-brand{align-items:center;gap:14px;margin-bottom:18px;display:flex}.login-brand-mark{background:linear-gradient(135deg, var(--color-primary), var(--color-primary-strong));color:#fff;border-radius:15px;place-items:center;width:48px;height:48px;font-size:24px;font-weight:700;display:grid;box-shadow:0 8px 22px #3498db47}.login-brand h1{color:var(--color-heading);margin:0;font-size:26px}.login-brand p{color:var(--color-muted);margin:3px 0 0}.login-brief{border:1px solid var(--color-line);border-radius:var(--radius-control);min-height:46px;color:var(--color-primary);background:#3498db12;align-items:center;gap:10px;margin-bottom:22px;padding:0 14px;font-size:14px;font-weight:700;display:flex}.login-form{gap:18px;display:grid}.login-form label{color:var(--color-heading);gap:8px;font-size:14px;font-weight:600;display:grid}.input-shell{box-sizing:border-box;width:100%;min-height:46px;color:var(--color-muted);background:#f8f9fa;border:1px solid #e9ecef;border-radius:12px;grid-template-columns:22px minmax(0,1fr) auto;align-items:center;gap:10px;padding:0 12px;transition:transform .2s,box-shadow .2s,border-color .2s;display:grid;box-shadow:0 4px 12px #00000008}.login-form input{width:100%;min-width:0;min-height:44px;color:var(--color-text);background:0 0;border:0;font-size:16px}.login-form input:focus{outline:none}.input-shell:focus-within{border-color:var(--color-primary);outline:0;transform:translateY(-1px);box-shadow:0 4px 16px #3498db26}.icon-action{width:34px;height:34px;color:var(--color-muted);background:0 0;border:0;border-radius:999px;place-items:center;display:grid}.form-error{color:#b3261e;margin:-4px 0 0;font-size:14px}.primary-action{background:linear-gradient(135deg, var(--color-primary), var(--color-primary-strong));color:#fff;border:0;border-radius:14px;justify-content:center;align-items:center;gap:8px;min-height:48px;font-size:16px;font-weight:700;display:inline-flex;box-shadow:0 8px 25px #3498db59}.primary-action:disabled{cursor:wait;opacity:.68}.home-header{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:16px;display:flex}.home-header>div:first-child{min-width:0}.home-eyebrow{color:var(--color-muted);margin:0 0 6px;font-size:14px}.home-header h1{color:var(--color-heading);overflow-wrap:anywhere;margin:0;font-size:32px;line-height:1.08}.text-action{border:1px solid var(--color-line);background:var(--color-panel);min-width:56px;min-height:36px;color:var(--color-primary);border-radius:999px;font-weight:700;box-shadow:0 4px 12px #3498db1f}.home-header-actions{align-items:center;gap:8px;display:flex}.notification-button{border:1px solid var(--color-line);background:var(--color-panel);width:40px;height:40px;color:var(--color-primary);border-radius:999px;place-items:center;display:grid;position:relative;box-shadow:0 4px 12px #3498db1f}.notification-button span{background:#e74c3c;border:2px solid #fff;border-radius:999px;width:8px;height:8px;position:absolute;top:8px;right:8px}.home-hero{background:linear-gradient(135deg, #ffffff2e, transparent 48%), linear-gradient(135deg, var(--color-primary), var(--color-primary-strong));color:#fff;border-radius:26px;justify-content:space-between;align-items:center;gap:18px;min-height:112px;margin-bottom:14px;padding:20px;display:flex;box-shadow:0 14px 34px #3498db47}.home-hero>div>svg{margin-bottom:14px}.home-hero>div{min-width:0}.home-hero p{color:#ffffffc2;margin:0 0 8px;font-size:13px}.home-hero strong{overflow-wrap:anywhere;font-size:20px;line-height:1.25;display:block}.home-hero em{color:#ffffffdb;background:#ffffff29;border-radius:999px;margin-top:9px;padding:5px 9px;font-size:12px;font-style:normal;font-weight:900;display:inline-flex}.home-hero button{color:#fff;white-space:nowrap;background:#ffffff29;border:1px solid #ffffff47;border-radius:999px;flex:none;justify-content:center;align-items:center;gap:6px;min-width:116px;min-height:44px;padding:0 18px 0 20px;font-weight:800;display:inline-flex;box-shadow:inset 0 1px #ffffff2e}.home-hero button svg{flex:none}.study-summary{grid-template-columns:1fr;gap:12px;margin-bottom:16px;display:grid}.student-page>.study-summary,.student-page>.action-list{width:min(100%,920px);margin-left:auto;margin-right:auto}.study-summary div{border:1px solid var(--color-line);background:var(--color-panel);min-height:102px;box-shadow:var(--shadow-card);border-radius:16px;padding:14px;transition:transform .2s,box-shadow .2s}.study-summary div:hover{box-shadow:var(--shadow-blue);transform:translateY(-2px)}.study-summary svg{color:var(--color-primary)}.study-summary span{color:var(--color-heading);overflow-wrap:anywhere;margin-top:8px;font-size:24px;font-weight:800;display:block}.study-summary p{color:var(--color-muted);margin:8px 0 0;font-size:13px}.action-list{gap:12px;display:grid}.today-panel{border:1px solid var(--color-line);box-shadow:var(--shadow-card);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#ffffffe0;border-radius:18px;margin-bottom:16px;padding:16px}.section-title{justify-content:space-between;align-items:center;gap:14px;margin-bottom:12px;display:flex}.section-title p{color:var(--color-primary);margin:0 0 4px;font-size:13px;font-weight:800}.section-title h2{color:var(--color-heading);margin:0;font-size:18px}.section-title button{border:1px solid var(--color-line);background:var(--color-panel);min-width:58px;min-height:34px;color:var(--color-primary);border-radius:999px;font-weight:800;box-shadow:0 4px 12px #3498db1a}.today-cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.today-cards button{border:1px solid var(--color-line);background:var(--color-panel);min-height:112px;color:inherit;text-align:left;border-radius:16px;gap:8px;padding:14px;transition:transform .2s,box-shadow .2s,border-color .2s;display:grid;box-shadow:0 6px 18px #0000000f}.today-cards button:hover{box-shadow:var(--shadow-blue);border-color:#3498db2e;transform:translateY(-2px)}.today-cards strong{color:var(--color-heading)}.today-cards span:last-child{color:var(--color-muted);font-size:13px}.action-icon{border-radius:16px;place-items:center;width:48px;height:48px;display:grid}.tone-green{color:#27ae60;background:#2ecc711f}.tone-blue{color:var(--color-primary);background:#3498db1f}.tone-orange{color:var(--color-warning);background:#f39c1224}.tone-purple{color:#6f4f97;background:#6f4f9721}.tone-red{color:#ab4b43;background:#ab4b431f}@media (width>=720px){.home-header{align-items:center}.home-header h1{font-size:36px}.home-hero{border-radius:22px;min-height:140px;padding:24px 26px}.home-hero strong{font-size:28px}.today-cards{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (width>=520px) and (width<=719px){.study-summary{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width>=720px){.study-summary{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width<=380px){.home-hero{flex-direction:column;align-items:stretch}.home-hero button{width:100%;min-height:46px}.today-cards{grid-template-columns:1fr}}.finish-page{place-items:center;display:grid}.finish-card{border:1px solid var(--color-line);background:var(--color-panel);width:min(100%,620px);box-shadow:var(--shadow-panel);text-align:center;border-radius:30px;justify-items:center;padding:28px 20px;display:grid;position:relative;overflow:hidden}.finish-card:before,.finish-card:after{background:var(--color-primary);content:"";opacity:.22;border-radius:999px;width:9px;height:22px;position:absolute;top:18px;transform:rotate(18deg)}.finish-card:before{left:18%}.finish-card:after{background:var(--color-accent);right:18%;transform:rotate(-18deg)}.finish-icon{background:linear-gradient(135deg, var(--color-primary), var(--color-primary-strong));color:#fff;border-radius:50%;place-items:center;width:82px;height:82px;display:grid;box-shadow:0 10px 28px #3498db47}.finish-card p{color:var(--color-accent);margin:18px 0 6px;font-size:14px;font-weight:900}.finish-card h1{color:var(--color-heading);margin:0;font-size:30px}.finish-card>span{color:var(--color-muted);margin-top:10px;line-height:1.7}.finish-stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;width:100%;margin:24px 0;display:grid}.finish-stats div{background:var(--color-surface);border-radius:20px;min-height:86px;padding:14px 8px}.finish-stats strong{color:var(--color-primary);font-size:26px;display:block}.finish-stats span{color:var(--color-muted);margin-top:7px;font-size:13px;font-weight:800;display:block}.finish-actions{gap:10px;width:100%;display:grid}.finish-actions button{border:1px solid var(--color-line);background:var(--color-panel);min-height:48px;color:var(--color-primary);border-radius:16px;justify-content:center;align-items:center;gap:7px;font-weight:900;display:inline-flex}.finish-actions button:first-child{background:linear-gradient(135deg, var(--color-primary), var(--color-primary-strong));color:#fff;border:0;box-shadow:0 8px 24px #3498db47}@media (width>=680px){.finish-card{padding:34px}.finish-actions{grid-template-columns:repeat(3,minmax(0,1fr))}}.page-header{align-items:center;gap:12px;width:min(100%,920px);margin:0 auto 18px;display:flex}.page-header button{border:1px solid var(--color-line);background:var(--color-panel);width:40px;height:40px;color:var(--color-primary);border-radius:12px;place-items:center;display:grid;box-shadow:0 6px 18px #3498db1f}.page-header h1{color:var(--color-heading);margin:0;font-size:24px}.page-header p{color:var(--color-muted);margin:3px 0 0;font-size:14px}.empty-state{border:1px solid var(--color-line);background:var(--color-panel);width:min(100%,920px);box-shadow:var(--shadow-card);text-align:center;border-radius:18px;margin:0 auto;padding:28px}.empty-state h2{color:var(--color-heading);margin:0;font-size:20px}.empty-state p{color:var(--color-muted);margin:10px 0 0;line-height:1.7}.games-hall-hero,.llk-book-panel,.llk-progress-card,.llk-daily-card,.llk-level-list{width:min(100%,920px);margin:0 auto 14px}.games-hall-hero{color:#fff;background:linear-gradient(135deg,#ffffff2e,#0000 48%),linear-gradient(135deg,#27ae60,#3498db);border-radius:18px;padding:20px;box-shadow:0 14px 34px #3498db42}.games-hall-hero p,.games-hall-hero h1,.games-hall-hero span{margin:0}.games-hall-hero p{color:#ffffffbd;margin-bottom:8px;font-size:12px;font-weight:900}.games-hall-hero h1{font-size:24px;line-height:1.2}.games-hall-hero span{color:#ffffffd1;margin-top:10px;display:block}.llk-book-panel,.llk-progress-card,.llk-daily-card,.llk-level-card{border:1px solid var(--color-line);background:var(--color-panel);box-shadow:var(--shadow-card);border-radius:16px}.llk-book-panel{padding:14px}.llk-book-panel label{color:var(--color-muted);gap:8px;font-size:13px;font-weight:900;display:grid}.llk-book-panel select{border:1px solid var(--color-line);min-height:44px;color:var(--color-heading);font:inherit;background:#fff;border-radius:12px;padding:0 12px}.llk-progress-card{grid-template-columns:repeat(3,minmax(0,1fr));display:grid;overflow:hidden}.llk-progress-card div{place-items:center;gap:7px;min-height:86px;padding:12px 8px;display:grid}.llk-progress-card div+div{border-left:1px solid var(--color-line)}.llk-progress-card span{color:var(--color-muted);font-size:13px;font-weight:800}.llk-progress-card strong{color:var(--color-heading);font-size:22px}.llk-daily-card{justify-content:space-between;align-items:center;gap:14px;padding:14px;display:flex}.llk-daily-card>div{color:var(--color-primary);align-items:center;gap:12px;display:flex}.llk-daily-card span{gap:4px;display:grid}.llk-daily-card strong{color:var(--color-heading)}.llk-daily-card em{color:var(--color-muted);font-size:13px;font-style:normal;font-weight:800}.llk-daily-card button{background:linear-gradient(135deg, var(--color-primary), var(--color-primary-strong));color:#fff;border:0;border-radius:999px;place-items:center;min-width:48px;height:48px;font-weight:900;display:grid}.llk-daily-card.locked{opacity:.72}.llk-level-list{gap:10px;display:grid}.llk-level-card{min-height:68px;color:inherit;text-align:left;grid-template-columns:44px minmax(0,1fr) auto 20px;align-items:center;gap:12px;padding:12px;display:grid}.llk-level-card:disabled{cursor:not-allowed;opacity:.68}.llk-level-card>span:first-child{width:44px;height:44px;color:var(--color-primary);background:#3498db1f;border-radius:14px;place-items:center;font-weight:900;display:grid}.llk-level-card>span:first-child.locked{color:var(--color-muted);background:#7f8c8d1f}.llk-level-card strong{color:var(--color-heading)}.llk-level-card em{color:var(--color-warning);align-items:center;gap:2px;font-size:13px;font-style:normal;font-weight:800;display:inline-flex}@media (width<=520px){.llk-progress-card{grid-template-columns:1fr}.llk-progress-card div+div{border-top:1px solid var(--color-line);border-left:0}.llk-level-card{grid-template-columns:44px minmax(0,1fr) auto}.llk-level-card>svg{display:none}}.llk-game-page{position:relative}.llk-game-status,.llk-board{width:min(100%,920px);margin:0 auto 14px}.llk-game-status{grid-template-columns:46px repeat(2,minmax(0,1fr)) 46px;align-items:center;gap:10px;display:grid}.llk-game-status>div,.llk-icon-button{border:1px solid var(--color-line);background:var(--color-panel);min-height:58px;box-shadow:var(--shadow-card);border-radius:16px}.llk-game-status>div{place-items:center;gap:4px;padding:8px;display:grid}.llk-game-status span{color:var(--color-muted);font-size:12px;font-weight:900}.llk-game-status strong{color:var(--color-heading);font-size:20px}.llk-lives{color:#ff6b6b;gap:3px;display:inline-flex}.llk-icon-button{color:var(--color-primary);place-items:center;display:grid}.llk-board{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.llk-column{gap:10px;display:grid}.llk-match-card{min-height:68px;color:var(--color-heading);text-align:center;background:linear-gradient(#fff,#f5fbff);border:1px solid #3498db38;border-radius:16px;place-items:center;padding:12px;font-size:17px;font-weight:900;line-height:1.25;transition:transform .16s,border-color .16s,background .16s,opacity .16s,box-shadow .16s;display:grid;box-shadow:0 10px 22px #3498db1f}.llk-match-card.meaning{font-size:15px;font-weight:800}.llk-match-card:not(:disabled):active,.llk-match-card.selected{transform:scale(.97)}.llk-match-card.selected{border-color:var(--color-primary);background:linear-gradient(#eaf7ff,#fff);box-shadow:0 12px 26px #3498db33}.llk-match-card.correct{background:#edfff5;border-color:#2ecc71;animation:.42s both llk-pop}.llk-match-card.wrong{background:#fff2f2;border-color:#ff6b6b;animation:.36s both llk-shake}.llk-match-card.matched{opacity:.45;transform:scale(.96)}.llk-result-mask{z-index:30;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#1226375c;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.llk-result-card{text-align:center;background:#fff;border:1px solid #ffffffb3;border-radius:20px;width:min(100%,360px);padding:24px 20px 20px;animation:.22s both llk-rise;box-shadow:0 24px 70px #1226373d}.llk-result-card span{color:var(--color-primary);font-size:12px;font-weight:900}.llk-result-card h2{color:var(--color-heading);margin:8px 0 12px;font-size:24px}.llk-result-stars{color:var(--color-warning);gap:5px;display:inline-flex}.llk-result-card p{color:var(--color-muted);margin:14px 0 18px;font-weight:800}.llk-result-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.llk-result-actions button{min-height:44px;color:var(--color-primary);background:#3498db1f;border:0;border-radius:14px;font-weight:900}.llk-result-actions button:first-child{background:linear-gradient(135deg, var(--color-primary), var(--color-primary-strong));color:#fff}@keyframes llk-pop{0%{transform:scale(.94)}55%{transform:scale(1.04)}to{transform:scale(1)}}@keyframes llk-shake{0%,to{transform:translate(0)}25%{transform:translate(-7px)}50%{transform:translate(6px)}75%{transform:translate(-4px)}}@keyframes llk-rise{0%{opacity:0;transform:translateY(12px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}@media (width<=640px){.llk-game-status{grid-template-columns:42px repeat(2,minmax(0,1fr)) 42px;gap:8px}.llk-game-status>div,.llk-icon-button{border-radius:14px;min-height:52px}.llk-board,.llk-column{gap:8px}.llk-match-card{border-radius:14px;min-height:64px;padding:10px 8px;font-size:15px}.llk-match-card.meaning{font-size:13px}}.notification-stack{gap:14px;width:min(100%,920px);margin:0 auto;display:grid}.notification-stack>*,.notification-feature-grid{width:100%;margin:0}.notification-hero{color:#fff;box-shadow:var(--shadow-blue);background:linear-gradient(135deg,#fff3,#0000 50%),linear-gradient(135deg,#3498db,#2ecc71);border-radius:18px;justify-content:space-between;align-items:flex-end;gap:16px;padding:20px;display:flex}.notification-hero span{background:#fff3;border-radius:16px;place-items:center;width:48px;height:48px;display:grid}.notification-hero p,.notification-hero h1{margin:0}.notification-hero p{color:#ffffffc2;margin-top:12px;font-size:12px;font-weight:900}.notification-hero h1{margin-top:6px;font-size:24px;line-height:1.2}.notification-hero strong{background:#ffffff2e;border-radius:999px;flex:none;padding:8px 12px;font-size:13px}.reminder-card{border:1px solid var(--color-line);border-radius:var(--radius-card);background:var(--color-panel);box-shadow:var(--shadow-card);gap:16px;padding:18px;display:grid}.reminder-title{align-items:center;gap:12px;display:flex}.reminder-title>span,.permission-panel>span{width:44px;height:44px;color:var(--color-primary);background:#3498db1f;border-radius:14px;flex:none;place-items:center;display:grid}.reminder-title h2,.reminder-title p{margin:0}.reminder-title h2{color:var(--color-heading);font-size:19px}.reminder-title p{color:var(--color-muted);margin-top:4px;line-height:1.55}.reminder-row{grid-template-columns:minmax(0,1fr) 132px;align-items:end;gap:12px;display:grid}.reminder-row label{color:var(--color-muted);gap:8px;font-size:13px;font-weight:900;display:grid}.reminder-row input{border:1px solid var(--color-line);min-height:46px;color:var(--color-heading);background:#fff;border-radius:14px;padding:0 12px}.reminder-row button,.permission-panel button{min-height:46px;color:var(--color-primary);background:#3498db1f;border:0;border-radius:14px;font-weight:900}.reminder-row button.enabled{background:linear-gradient(135deg, var(--color-primary), var(--color-primary-strong));color:#fff}.reminder-row button:disabled,.permission-panel button:disabled{cursor:not-allowed;opacity:.55}.permission-panel{background:var(--color-surface);border-radius:16px;grid-template-columns:44px minmax(0,1fr) 112px;align-items:center;gap:12px;padding:12px;display:grid}.permission-panel p{color:var(--color-heading);margin:0;font-weight:900}.reminder-message{color:#239b56;background:#2ecc711f;border-radius:14px;margin:0;padding:10px 12px;font-weight:800}@media (width<=560px){.notification-hero{align-items:start;display:grid}.notification-hero h1{font-size:22px}.reminder-row,.permission-panel{grid-template-columns:1fr}.permission-panel>span{display:none}}.plan-hero,.plan-action-grid{width:min(100%,920px);margin:0 auto 14px}.plan-hero{color:#fff;box-shadow:var(--shadow-blue);background:linear-gradient(135deg,#fff3,#0000 50%),linear-gradient(135deg,#3498db,#2ecc71);border-radius:18px;padding:20px}.plan-hero svg{margin-bottom:12px}.plan-hero p,.plan-hero h1{margin:0}.plan-hero p{color:#ffffffc2;font-size:12px;font-weight:900}.plan-hero h1{margin-top:6px;font-size:24px;line-height:1.2}.plan-action-grid{gap:12px;display:grid}.plan-action-grid button,.plan-action-grid article{border:1px solid var(--color-line);border-radius:var(--radius-card);background:var(--color-panel);min-height:92px;color:inherit;text-align:left;box-shadow:var(--shadow-card);grid-template-columns:48px minmax(0,1fr) 20px;align-items:center;gap:12px;padding:14px;display:grid;position:relative}.plan-action-grid article{grid-template-columns:48px minmax(0,1fr)}.plan-action-grid strong,.plan-action-grid h2{color:var(--color-heading);margin:0;font-size:17px}.plan-action-grid p{color:var(--color-muted);grid-column:2;margin:-8px 0 0;line-height:1.55}.plan-action-grid button>svg{color:var(--color-primary)}@media (width>=720px){.plan-action-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.book-progress-list,.records-tabs{width:min(100%,920px);margin:0 auto 14px}.book-progress-list{gap:10px;display:grid}.book-progress-card{border:1px solid var(--color-line);background:var(--color-panel);box-shadow:var(--shadow-card);border-radius:16px;gap:10px;padding:14px;display:grid}.book-progress-card div:first-child{justify-content:space-between;align-items:center;gap:12px;display:flex}.book-progress-card strong{color:var(--color-heading)}.book-progress-card span,.book-progress-card em{color:var(--color-muted);font-size:13px;font-style:normal;font-weight:800}.book-progress-bar{background:#3498db1a;border-radius:999px;height:9px;overflow:hidden}.book-progress-bar span{border-radius:inherit;background:linear-gradient(135deg, var(--color-primary), var(--color-primary-strong));height:100%;display:block}.records-tabs{border:1px solid var(--color-line);background:var(--color-panel);box-shadow:var(--shadow-card);border-radius:16px;grid-template-columns:repeat(2,minmax(0,1fr)) auto;align-items:center;gap:8px;padding:8px;display:grid}.records-tabs button{min-height:38px;color:var(--color-muted);background:0 0;border:0;border-radius:12px;font-weight:900}.records-tabs button.active{background:linear-gradient(135deg, var(--color-primary), var(--color-primary-strong));color:#fff;box-shadow:0 6px 16px #3498db38}.records-tabs>span{color:var(--color-muted);white-space:nowrap;padding:0 8px;font-size:13px;font-weight:800}.record-list-card{border:1px solid var(--color-line);border-radius:var(--radius-card);background:var(--color-panel);box-shadow:var(--shadow-card);grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;padding:12px;display:grid}.record-main-button{min-width:0;min-height:62px;color:inherit;text-align:left;background:0 0;border:0;grid-template-columns:48px minmax(0,1fr) auto;align-items:center;gap:12px;padding:0;display:grid}.record-main-button strong,.record-main-button span span{display:block}.record-main-button strong{color:var(--color-heading)}.record-main-button span span{color:var(--color-muted);font-size:13px}.record-export-button{border:1px solid var(--color-line);min-height:36px;color:var(--color-primary);white-space:nowrap;background:#3498db14;border-radius:999px;padding:0 16px;font-weight:900}.export-modal-backdrop{z-index:40;background:#0000006b;place-items:center;padding:18px;display:grid;position:fixed;inset:0}.export-modal{background:var(--color-panel);border-radius:18px;gap:14px;width:min(100%,520px);max-height:min(760px,100vh - 36px);padding:18px;display:grid;overflow:auto;box-shadow:0 20px 60px #0000002e}.export-modal header,.export-modal footer,.export-tabs,.export-option-group div{gap:10px;display:flex}.export-modal header,.export-modal footer{justify-content:space-between;align-items:center}.export-modal h2{color:var(--color-heading);margin:0;font-size:20px}.export-modal button{border:1px solid var(--color-line);background:var(--color-panel);min-height:38px;color:var(--color-primary);border-radius:12px;padding:0 16px;font-weight:900}.export-tabs{grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.export-tabs button.active,.export-option-group button.active,.export-modal footer button:last-child{background:linear-gradient(135deg, var(--color-primary), var(--color-primary-strong));color:#fff;border:0;box-shadow:0 6px 16px #3498db38}.export-option-group,.export-checkboxes{border:1px solid var(--color-line);border-radius:16px;gap:10px;padding:12px;display:grid}.export-option-group strong{color:var(--color-heading)}.export-option-group div{flex-wrap:wrap}.export-checkboxes label{color:var(--color-text);align-items:center;gap:8px;font-weight:700;display:flex}.export-error{color:#b34137;margin:0;font-weight:800}@media (width<=420px){.records-tabs{grid-template-columns:repeat(2,minmax(0,1fr))}.records-tabs>span{text-align:center;grid-column:1/-1}.record-list-card{grid-template-columns:1fr}.record-export-button{width:100%}}.record-toolbar{border:1px solid var(--color-line);border-radius:var(--radius-card);background:var(--color-panel);width:min(100%,920px);box-shadow:var(--shadow-card);gap:12px;margin:0 auto 14px;padding:14px;display:grid}.record-toolbar>div{flex-wrap:wrap;gap:8px;display:flex}.record-toolbar button{border:1px solid var(--color-line);background:var(--color-panel);min-height:34px;color:var(--color-muted);border-radius:999px;align-items:center;gap:5px;padding:0 10px;font-weight:800;display:inline-flex}.record-toolbar button.active{background:linear-gradient(135deg, var(--color-primary), var(--color-primary-strong));color:#fff;box-shadow:0 6px 16px #3498db38}.vocab-card-list{gap:12px;width:min(100%,920px);margin:0 auto;display:grid}.vocab-card{border:1px solid var(--color-line);border-radius:var(--radius-card);background:var(--color-panel);box-shadow:var(--shadow-card);gap:12px;padding:16px;transition:transform .2s,box-shadow .2s,border-color .2s;display:grid}.vocab-card:hover{box-shadow:var(--shadow-blue);border-color:#3498db2e;transform:translateY(-2px)}.vocab-card-head{grid-template-columns:34px minmax(0,1fr) auto auto auto;align-items:center;gap:10px;display:grid}.vocab-index{width:34px;height:34px;color:var(--color-primary);background:#3498db1a;border-radius:12px;place-items:center;font-weight:900;display:grid}.vocab-word-block{width:100%;min-width:0;color:inherit;text-align:left;cursor:default;background:0 0;border:0;gap:4px;padding:0;display:grid}.vocab-word-block:enabled{cursor:pointer}.vocab-word-block:enabled:hover,.vocab-meaning:enabled:hover{outline:2px solid #3498db1f}.vocab-word-block strong{color:var(--color-heading);font-size:22px;line-height:1.1}.vocab-word-block span{color:var(--color-muted);font-size:13px}.vocab-word-block em,.vocab-meaning em{color:var(--color-primary);margin-top:2px;font-size:12px;font-style:normal;font-weight:900}.record-status{border-radius:999px;min-height:28px;padding:5px 9px;font-size:12px;font-weight:900}.record-status.correct{color:#397953;background:#3979531f}.record-status.wrong{color:#b34137;background:#b341371f}.record-status.skipped{color:#5d6675;background:#7d829124}.record-status.neutral{color:var(--color-primary);background:#3498db1a}.sound-button,.detail-button{width:40px;height:40px;color:var(--color-primary);background:#3498db1a;border:0;border-radius:14px;place-items:center;display:grid}.detail-button{color:#397953;background:#3979531a}.vocab-meaning{background:var(--color-surface);width:100%;color:var(--color-text);text-align:left;cursor:default;border:0;border-radius:16px;gap:4px;padding:13px;line-height:1.7;display:grid}.vocab-meaning:enabled{cursor:pointer}.masked-text{text-shadow:none;-webkit-user-select:none;user-select:none;background:repeating-linear-gradient(135deg,#3498db24,#3498db24 8px,#3498db14 8px 16px);border-radius:10px;color:#0000!important}@media (width>=760px){.record-toolbar{grid-template-columns:auto minmax(0,1fr);align-items:center}.record-toolbar>div{justify-content:flex-end}.vocab-card-list{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=520px){.vocab-card-head{grid-template-columns:34px minmax(0,1fr) auto auto}.record-status{grid-column:2/-1;justify-self:start}}.review-date-card{border:1px solid var(--color-line);border-radius:var(--radius-card);background:var(--color-panel);box-shadow:var(--shadow-card);grid-template-columns:48px minmax(0,1fr);gap:12px;padding:14px;transition:transform .2s,box-shadow .2s,border-color .2s;display:grid}.review-date-card:hover{box-shadow:var(--shadow-blue);border-color:#3498db2e;transform:translateY(-2px)}.review-date-card.not-due{opacity:.82}.review-date-card strong{color:var(--color-heading);font-size:17px;display:block}.review-date-meta{color:var(--color-muted);align-items:center;gap:5px;margin-top:6px;font-size:14px;display:inline-flex}.review-date-actions{grid-column:1/-1;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.review-date-actions button,.review-actions-row button,.quiz-panel>button,.answer-reveal button{background:var(--color-primary);color:#fff;border:0;border-radius:14px;justify-content:center;align-items:center;gap:4px;min-height:42px;font-weight:800;display:inline-flex}.review-date-actions button:first-child{border:1px solid var(--color-line);background:var(--color-panel);color:var(--color-primary)}.review-progress-card,.word-card{border:1px solid var(--color-line);background:var(--color-panel);width:min(100%,760px);box-shadow:var(--shadow-card);border-radius:18px;margin:0 auto 14px}.review-progress-card{padding:14px}.review-progress-card>div:first-child{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.review-progress-card strong{color:var(--color-heading)}.review-progress-bar{background:#3498db1a;border-radius:999px;height:9px;overflow:hidden}.review-progress-bar span{border-radius:inherit;background:linear-gradient(135deg, var(--color-primary), var(--color-primary-strong));height:100%;transition:width .18s;display:block}.word-card{gap:16px;padding:18px;transition:border-color .2s,box-shadow .2s,transform .2s;display:grid}.word-card.answered-correct{border-color:#39795347;animation:.36s review-card-correct;box-shadow:0 14px 34px #3979531f}.word-card.answered-wrong{border-color:#b3413747;animation:.32s review-card-wrong;box-shadow:0 14px 34px #b341371f}.word-card-head{justify-content:space-between;align-items:flex-start;gap:14px;display:flex}.word-card-head p{color:var(--color-muted);margin:0 0 6px;font-size:13px;font-weight:800}.word-card-head h2{color:var(--color-heading);margin:0;font-size:34px;line-height:1.06}.word-card-tools{flex:none;gap:8px;display:flex}.word-card-tools button{width:48px;height:48px;color:var(--color-primary);background:#3498db1a;border:0;border-radius:14px;place-items:center;display:grid}.meaning-panel{background:var(--color-surface);color:var(--color-text);border-radius:18px;align-items:flex-start;gap:10px;padding:14px;line-height:1.7;display:flex}.meaning-panel>svg{color:var(--color-primary);flex:none;margin-top:4px}.meaning-panel span{min-width:0}.quiz-panel,.self-check-panel{gap:12px;display:grid}.option-grid{gap:10px;display:grid}.option-grid button{border:1px solid var(--color-line);background:var(--color-panel);min-height:54px;color:var(--color-text);text-align:left;border-radius:16px;grid-template-columns:30px minmax(0,1fr);align-items:center;gap:10px;padding:10px 12px;transition:transform .16s,border-color .16s,background .16s,box-shadow .16s;display:grid}.option-grid button:enabled:active{transform:scale(.985)}.option-grid button span{width:30px;height:30px;color:var(--color-primary);background:#3498db1a;border-radius:999px;place-items:center;font-weight:800;display:grid}.option-grid button.correct{background:#3979531a;border-color:#39795373;animation:.3s option-correct-pop}.option-grid button.wrong{background:#b341371a;border-color:#b3413773;animation:.28s option-wrong-shake}.spelling-field{color:var(--color-heading);gap:8px;font-weight:800;display:grid}.spelling-field input{border:1px solid var(--color-line);min-height:50px;color:var(--color-text);border-radius:16px;padding:0 14px;font-size:20px}.self-check-panel p{color:var(--color-muted);margin:0}.self-check-panel div{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.self-check-panel button{border:1px solid var(--color-line);background:var(--color-panel);min-height:44px;color:var(--color-primary);border-radius:14px;justify-content:center;align-items:center;gap:6px;font-weight:800;display:inline-flex}.answer-reveal{background:#3498db14;border:1px solid #3498db1f;border-radius:18px;gap:8px;padding:14px;animation:.22s answer-reveal-in;display:grid}.answer-reveal.correct{background:#2ecc711a;border-color:#2ecc713d}.answer-reveal.wrong{background:#ff6b6b1a;border-color:#ff6b6b47}.answer-reveal strong{color:var(--color-heading)}.answer-reveal span{color:var(--color-muted)}.review-error{color:#b3261e;margin:0}@media (width>=720px){.review-date-card{grid-template-columns:48px minmax(0,1fr) 220px;align-items:center}.review-date-actions{grid-column:auto}.word-card{padding:24px}}@keyframes answer-reveal-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes option-correct-pop{0%{transform:scale(1)}45%{transform:scale(1.025)}to{transform:scale(1)}}@keyframes option-wrong-shake{0%,to{transform:translate(0)}25%{transform:translate(-4px)}55%{transform:translate(4px)}80%{transform:translate(-2px)}}@keyframes review-card-correct{0%{transform:translateY(0)}50%{transform:translateY(-2px)}to{transform:translateY(0)}}@keyframes review-card-wrong{0%,to{transform:translate(0)}35%{transform:translate(-2px)}70%{transform:translate(2px)}}.selection-panel,.selection-actions{border:1px solid var(--color-line);background:var(--color-panel);width:min(100%,760px);box-shadow:var(--shadow-card);border-radius:18px;margin:0 auto 16px}.selection-panel{gap:14px;padding:18px;display:grid}.selection-progress-info{justify-content:space-between;align-items:center;gap:14px;display:flex}.selection-progress-info span{color:var(--color-muted);font-weight:700}.selection-progress-info strong{color:var(--color-heading);font-size:22px}.selection-progress-bar{background:#3498db1a;border-radius:999px;height:10px;overflow:hidden}.selection-progress-bar span{border-radius:inherit;background:linear-gradient(135deg, var(--color-primary), var(--color-primary-strong));height:100%;transition:width .18s;display:block}.selection-actions{gap:12px;padding:18px;display:grid}.selection-actions h2,.selection-actions p{margin:0}.selection-actions h2{color:var(--color-heading);font-size:19px}.selection-actions p{color:var(--color-muted);margin-top:8px;font-size:14px;font-weight:800}.selection-action{border-radius:16px;justify-content:center;align-items:center;gap:8px;min-height:52px;font-weight:900;display:inline-flex}.selection-action.primary{background:linear-gradient(135deg, var(--color-primary), var(--color-primary-strong));color:#fff;border:0;box-shadow:0 8px 25px #3498db59}.selection-action.secondary{border:1px solid var(--color-line);background:var(--color-panel);color:var(--color-primary)}.selection-action:disabled{cursor:not-allowed;opacity:.5}.spelling-date-list{margin-top:14px}.spelling-progress-card,.dictation-card{border:1px solid var(--color-line);background:var(--color-panel);width:min(100%,760px);box-shadow:var(--shadow-card);border-radius:18px;margin:0 auto 14px}.spelling-progress-card{padding:14px}.spelling-progress-card>div:first-child{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.spelling-progress-card strong{color:var(--color-heading)}.spelling-progress-bar{background:#3498db1a;border-radius:999px;height:9px;overflow:hidden}.spelling-progress-bar span{border-radius:inherit;background:linear-gradient(135deg, var(--color-primary), var(--color-primary-strong));height:100%;transition:width .18s;display:block}.dictation-card{gap:16px;padding:18px;transition:border-color .2s,box-shadow .2s,transform .2s;display:grid}.dictation-card.answered-correct{border-color:#39795347;animation:.36s spelling-card-correct;box-shadow:0 14px 34px #3979531f}.dictation-card.answered-wrong{border-color:#b3413747;animation:.32s spelling-card-wrong;box-shadow:0 14px 34px #b341371f}.dictation-head{justify-content:space-between;align-items:flex-start;gap:14px;display:flex}.dictation-head p{color:var(--color-muted);margin:0 0 6px;font-size:13px;font-weight:800}.dictation-head h2{color:var(--color-heading);letter-spacing:0;margin:0;font-size:38px;line-height:1.06}.dictation-head button{width:52px;height:52px;color:var(--color-primary);background:#3498db1a;border:0;border-radius:14px;place-items:center;display:grid}.dictation-meaning{background:var(--color-surface);color:var(--color-text);border-radius:18px;align-items:flex-start;gap:10px;padding:14px;line-height:1.7;display:flex}.dictation-meaning>svg{color:var(--color-primary);flex:none;margin-top:4px}.dictation-meaning span{min-width:0}.dictation-input{color:var(--color-heading);gap:8px;font-weight:800;display:grid}.dictation-input input{border:1px solid var(--color-line);min-height:54px;color:var(--color-text);border-radius:18px;padding:0 14px;font-size:20px}.dictation-input input:focus{border-color:var(--color-primary);outline:3px solid #3498db29}.spelling-error,.spelling-result{border-radius:16px;align-items:center;gap:8px;margin:0;padding:12px;font-weight:800;animation:.22s spelling-result-in;display:flex}.spelling-error,.spelling-result.wrong{color:#b34137;background:#b341371a}.spelling-result.correct{color:#397953;background:#3979531f}.dictation-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.dictation-actions button{background:linear-gradient(135deg, var(--color-primary), var(--color-primary-strong));color:#fff;border:0;border-radius:16px;min-height:48px;font-weight:900;transition:transform .16s,box-shadow .16s,opacity .16s;box-shadow:0 8px 22px #3498db38}.dictation-actions button:enabled:active{transform:scale(.985)}.dictation-actions button:first-child:not(:only-child){border:1px solid var(--color-line);background:var(--color-panel);color:var(--color-primary)}.dictation-actions button:only-child{grid-column:1/-1}.dictation-actions button:disabled{opacity:.58}@media (width>=720px){.dictation-card{padding:24px}}@keyframes spelling-result-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes spelling-card-correct{0%{transform:translateY(0)}50%{transform:translateY(-2px)}to{transform:translateY(0)}}@keyframes spelling-card-wrong{0%,to{transform:translate(0)}35%{transform:translate(-2px)}70%{transform:translate(2px)}}.word-detail-page{--word-detail-gap:16px;gap:var(--word-detail-gap)}.word-detail-hero{border-radius:var(--radius-card);background:linear-gradient(135deg, #3498db1a, #7dbbff0f), var(--color-panel);width:min(100%,920px);box-shadow:var(--shadow-card);border:1px solid #3498db29;margin:0 auto 12px;padding:22px;display:block}.word-detail-hero>div{gap:14px;min-width:0;display:grid}.word-detail-hero h1{color:var(--color-heading);margin:0;font-size:clamp(36px,8vw,64px);line-height:.95}.phonetic-row{flex-wrap:wrap;gap:10px;display:flex}.translation-switch{border:1px solid var(--color-line);background:#ffffffb8;border-radius:999px;grid-template-columns:repeat(2,minmax(76px,1fr));gap:4px;width:fit-content;padding:4px;display:inline-grid}.translation-switch button{min-height:30px;color:var(--color-muted);background:0 0;border:0;border-radius:999px;padding:0 14px;font-weight:900}.translation-switch button.active{background:linear-gradient(135deg, var(--color-primary), var(--color-primary-strong));color:#fff;box-shadow:0 6px 14px #3498db33}.hero-translation{background:0 0;border-top:1px solid #3498db21;gap:8px;margin-top:2px;padding-top:14px;display:grid}.hero-translation p{color:var(--color-text);margin:0;line-height:1.75}.phonetic-chip{border:1px solid var(--color-line);min-height:36px;color:var(--color-text);background:#ffffffb8;border-radius:999px;align-items:center;gap:8px;padding:0 12px;font-weight:800;display:inline-flex}.phonetic-chip span{width:22px;height:22px;color:var(--color-primary);background:#3498db1a;border-radius:8px;place-items:center;font-size:12px;display:grid}.phonetic-chip strong{font-size:13px}.phonetic-chip svg{color:var(--color-primary)}.word-detail-grid{gap:16px;width:min(100%,920px);margin:0 auto;display:grid}.word-info-card{border:1px solid var(--color-line);border-radius:var(--radius-card);background:var(--color-panel);box-shadow:var(--shadow-card);align-content:start;gap:12px;padding:16px;display:grid}.word-info-card h2{color:var(--color-heading);align-items:center;gap:8px;margin:0;font-size:16px;display:flex}.word-info-card h2 span{width:34px;height:34px;color:var(--color-primary);background:#3498db1a;border-radius:12px;place-items:center;display:grid}.word-info-card p{color:var(--color-text);margin:0;line-height:1.75}.meaning-list{gap:6px;display:grid}.sentence-detail-item,.compact-detail-item{background:var(--color-surface);border-radius:14px;padding:12px}.meaning-list p{padding-left:12px;position:relative}.meaning-list p:before{content:"";background:var(--color-primary);border-radius:50%;width:4px;height:4px;position:absolute;top:.72em;left:0}.note-card{background:linear-gradient(135deg, #3498db14, #fff0), var(--color-panel);border-color:#3498db2e}.muted-text{color:var(--color-muted)!important}.markdown-body{color:var(--color-text);gap:10px;line-height:1.75;display:grid}.markdown-body h3,.markdown-body h4,.markdown-body p,.markdown-body ul{margin:0}.markdown-body h3{color:var(--color-heading);font-size:17px}.markdown-body h4{color:var(--color-heading);font-size:15px}.markdown-body ul{gap:8px;padding-left:18px;display:grid}.markdown-body li::marker{color:var(--color-primary)}.markdown-body strong{color:var(--color-heading);font-weight:900}.markdown-body code{color:var(--color-primary);background:#3498db1a;border-radius:8px;padding:2px 6px;font-family:inherit;font-weight:800}.word-detail-list{gap:10px;display:grid}.sentence-detail-item{gap:7px;display:grid}.sentence-detail-item strong{color:var(--color-heading);line-height:1.55}.sentence-detail-item span{color:var(--color-text);line-height:1.65}.sentence-detail-item em{color:var(--color-primary);font-size:12px;font-style:normal;font-weight:900}.compact-detail-item{grid-template-columns:minmax(96px,auto) minmax(0,1fr);align-items:start;gap:10px;display:grid}.compact-detail-item strong{color:var(--color-heading)}.compact-detail-item span{color:var(--color-text);line-height:1.55}@media (width>=760px){.word-detail-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.wide-card,.note-card{grid-column:1/-1}}@media (width<=520px){.word-detail-hero{padding:16px}.word-detail-hero h1{font-size:42px}.compact-detail-item{grid-template-columns:1fr}}.route-error-page{min-height:100dvh;padding:calc(24px + env(safe-area-inset-top)) 18px calc(24px + env(safe-area-inset-bottom));background:linear-gradient(135deg, #f5f7faf5, #dce9f7f0), var(--color-bg);place-items:center;display:grid}.route-error-card{border:1px solid var(--color-line);background:var(--color-panel);width:min(100%,420px);box-shadow:var(--shadow-panel);text-align:center;border-radius:20px;gap:12px;padding:24px;display:grid}.route-error-card>span{width:58px;height:58px;color:var(--color-warning);background:#f39c1224;border-radius:18px;place-items:center;margin:0 auto;display:grid}.route-error-card p,.route-error-card h1,.route-error-card em{margin:0}.route-error-card p{color:var(--color-primary);font-size:13px;font-weight:900}.route-error-card h1{color:var(--color-heading);font-size:24px;line-height:1.2}.route-error-card em{color:var(--color-muted);font-style:normal;line-height:1.65}.route-error-card div{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:4px;display:grid}.route-error-card button{min-height:44px;color:var(--color-primary);background:#3498db1f;border:0;border-radius:14px;justify-content:center;align-items:center;gap:6px;font-weight:900;display:inline-flex}.route-error-card button:first-child{background:linear-gradient(135deg, var(--color-primary), var(--color-primary-strong));color:#fff}:root{--color-bg:#f5f7fa;--color-surface:#edf4fb;--color-panel:#fff;--color-heading:#2c3e50;--color-text:#26313d;--color-muted:#7f8c8d;--color-primary:#3498db;--color-primary-strong:#2980b9;--color-accent:#2ecc71;--color-warning:#f39c12;--color-line:#3498db1f;--radius-card:16px;--radius-control:14px;--shadow-card:0 8px 25px #00000014;--shadow-blue:0 10px 28px #3498db2e;--shadow-panel:0 20px 60px #3498db26;color:var(--color-text);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:linear-gradient(135deg,#f5f7fa 0%,#e6eef8 100%);font-family:Inter,Segoe UI,PingFang SC,Microsoft YaHei,Arial,sans-serif}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}html{background:var(--color-bg);overscroll-behavior-y:none;height:100%}body{background:var(--color-bg);touch-action:manipulation;-webkit-text-size-adjust:100%;-webkit-user-select:none;user-select:none;min-width:320px;min-height:100%;overflow-x:hidden}button,input{font:inherit}input,textarea{-webkit-user-select:text;user-select:text}button{cursor:pointer}button:disabled{cursor:not-allowed}button,a{-webkit-tap-highlight-color:transparent}button:active,a:active{filter:brightness(.98)}.student-page{min-height:100dvh;padding:calc(18px + env(safe-area-inset-top)) 18px calc(98px + env(safe-area-inset-bottom));color:var(--color-text)}.student-page-content{width:min(100%,920px);margin:0 auto}.card-grid{gap:14px;width:min(100%,920px);margin:0 auto;display:grid}.feature-card{border:1px solid var(--color-line);border-radius:var(--radius-card);background:var(--color-panel);min-height:118px;box-shadow:var(--shadow-card);gap:10px;padding:18px;transition:transform .2s,box-shadow .2s,border-color .2s;display:grid}.feature-card:hover{box-shadow:var(--shadow-blue);border-color:#3498db2e;transform:translateY(-2px)}.feature-card-icon{width:44px;height:44px;color:var(--color-primary);background:#3498db1f;border-radius:12px;place-items:center;display:grid}.feature-card h2,.feature-card h3{color:var(--color-heading);margin:0;font-size:18px}.feature-card p{color:var(--color-muted);margin:0;line-height:1.65}.list-card{border:1px solid var(--color-line);border-radius:var(--radius-card);background:var(--color-panel);width:100%;min-height:78px;color:inherit;text-align:left;box-shadow:var(--shadow-card);grid-template-columns:48px minmax(0,1fr) auto;align-items:center;gap:12px;padding:14px;transition:transform .2s,box-shadow .2s,border-color .2s;display:grid}.list-card:hover{box-shadow:var(--shadow-blue);border-color:#3498db2e;transform:translateY(-2px)}.list-card strong{color:var(--color-heading);font-size:16px;display:block}.list-card span{color:var(--color-muted);font-size:14px}.pill{min-height:30px;color:var(--color-primary);background:#3498db1a;border-radius:999px;justify-content:center;align-items:center;padding:0 10px;font-size:13px;font-weight:800;display:inline-flex}@media (width>=720px){.card-grid.two-col{grid-template-columns:repeat(2,minmax(0,1fr))}}.boot-screen{background:var(--color-bg);min-height:100dvh;color:var(--color-primary);place-items:center;font-weight:700;display:grid}@media (width>=860px){.student-page{min-height:calc(100vh - 56px);padding:0}}
