:root{color-scheme:light;--bg: oklch(.987 .012 150);--surface: oklch(1 0 0);--surface-2: oklch(.962 .025 150);--ink: oklch(.26 .065 155);--muted: oklch(.52 .055 150);--line: oklch(.88 .04 150);--accent: oklch(.62 .16 155);--accent-strong: oklch(.36 .09 155);--accent-soft: oklch(.93 .07 150);--blue: oklch(.45 .13 245);--amber: oklch(.74 .13 78);--warn: oklch(.58 .18 35);--radius: 12px;--shadow: 0 8px 14px oklch(.24 .065 155 / .12);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Microsoft YaHei,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background:linear-gradient(180deg,oklch(.96 .045 150),var(--bg) 420px),var(--bg);color:var(--ink)}button,a,select,input,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed}a{color:inherit}:focus-visible{outline:3px solid oklch(.75 .16 160);outline-offset:3px}.app-shell{min-height:100vh}.topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:24px;padding:14px clamp(18px,4vw,56px);border-bottom:1px solid var(--line);background:#fffffff0;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.brand{display:inline-flex;align-items:center;gap:12px;border:0;background:transparent;color:var(--ink);text-align:left}.brand-mark{display:grid;width:38px;height:38px;place-items:center;border-radius:10px;background:var(--accent);color:#fff;font-weight:800}.brand strong,.brand small{display:block}.brand strong{font-size:1rem}.brand small{margin-top:2px;color:var(--muted);font-size:.78rem}.topnav{display:flex;align-items:center;gap:4px;overflow-x:auto}.topnav button{flex:0 0 auto;border:0;border-radius:999px;padding:9px 13px;background:transparent;color:var(--muted)}.topnav button:hover,.topnav button.active{background:var(--accent-soft);color:var(--accent-strong)}.user-mini{flex:0 0 auto}.user-mini button{min-height:36px;border:1px solid var(--line);border-radius:999px;padding:0 14px;background:var(--surface);color:var(--accent-strong);font-weight:750}.feedback-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;display:grid;place-items:center;padding:18px;background:#05100b6b}.feedback-dialog{position:relative;display:grid;width:min(560px,100%);grid-template-columns:54px minmax(0,1fr);gap:16px;border-radius:16px;padding:24px;background:var(--surface);box-shadow:0 8px 8px #06150f29}.feedback-mark{display:grid;width:54px;height:54px;place-items:center;border-radius:14px;background:#ffe4de;background:oklch(.94 .05 35);color:var(--warn);font-size:1.6rem;font-weight:900}.feedback-close{position:absolute;top:14px;right:14px;width:34px;height:34px;border:0;border-radius:999px;background:var(--surface-2);color:var(--muted);font-size:1.35rem;line-height:1}.feedback-close:hover{color:var(--ink)}.feedback-kicker{display:inline-flex;margin-bottom:8px;border-radius:999px;padding:5px 10px;background:var(--accent-soft);color:var(--accent-strong);font-size:.78rem;font-weight:850}.feedback-body h2{margin:0;padding-right:34px;font-size:1.55rem;line-height:1.2}.feedback-body p{margin:10px 0 16px;color:var(--muted);line-height:1.7}.feedback-body dl{display:grid;gap:10px;margin:0 0 18px}.feedback-body dl>div{border-radius:12px;padding:12px;background:var(--surface-2)}.feedback-body dt{margin-bottom:4px;color:var(--accent-strong);font-size:.82rem;font-weight:850}.feedback-body dd{margin:0;color:var(--ink);line-height:1.65}.page{width:min(1240px,calc(100% - 32px));margin:0 auto;padding:42px 0 72px}.label{margin:0 0 8px;color:var(--accent-strong);font-size:.78rem;font-weight:800;letter-spacing:.04em}.hero{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:28px;align-items:stretch;padding:clamp(26px,5vw,54px);border:1px solid var(--line);border-radius:18px;background:radial-gradient(circle at 80% 18%,oklch(.88 .1 155 / .72),transparent 30%),linear-gradient(115deg,#ebffee,#a8eabe)}.hero-copy h1,.side-panel h1,.page-intro h1,.practice-sidebar h1{margin:0;max-width:760px;font-size:clamp(2.05rem,5vw,4.6rem);line-height:1.02;letter-spacing:-.03em;text-wrap:balance}.hero-copy p:not(.label),.side-panel p,.page-intro p,.official-panel p{max-width:66ch;color:var(--muted);font-size:1rem;line-height:1.75}.hero-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}.primary-btn,.secondary-btn,.card-action,.material-card button,.job-row button,.question-actions button{min-height:42px;border-radius:10px;padding:0 16px;font-weight:750;transition:transform .18s ease,background-color .18s ease,color .18s ease,border-color .18s ease}.primary-btn,.card-action:not(:disabled){border:1px solid var(--accent);background:var(--accent);color:#fff}.secondary-btn{border:1px solid var(--line);background:var(--surface);color:var(--ink)}.primary-btn:hover,.secondary-btn:hover,.card-action:not(:disabled):hover,.material-card button:hover,.job-row button:hover,.question-actions button:hover{transform:translateY(-1px)}.hero-panel{display:flex;min-height:260px;flex-direction:column;justify-content:flex-end;border-radius:16px;padding:26px;background:linear-gradient(145deg,var(--accent-strong),oklch(.48 .13 155));color:#fff}.hero-panel span{color:#c3eac9;font-weight:700}.hero-panel strong{margin-top:12px;font-size:3.6rem;line-height:1}.hero-panel p{margin:18px 0;color:#e0f0e3;line-height:1.65}.mini-meter{height:8px;overflow:hidden;border-radius:999px;background:#ffffff2e}.mini-meter span{display:block;height:100%;border-radius:inherit;background:#fff}.section-heading{margin:54px 0 20px}.section-heading p{margin:0 0 6px;color:var(--accent-strong);font-weight:800}.section-heading h2,.official-panel h2,.material-card h2,.notice-item h2,.job-row h2,.question-card h2,.activity-panel h2,.calendar-panel h2{margin:0;letter-spacing:-.02em}.resource-shelf{display:grid;grid-template-columns:repeat(6,minmax(160px,1fr));align-items:stretch;border-bottom:14px solid var(--accent)}.resource-card{display:flex;min-height:460px;flex-direction:column;justify-content:space-between;padding:28px 24px;border:1px solid var(--line);background:linear-gradient(180deg,var(--surface),oklch(.965 .035 150));color:var(--ink)}.resource-card.featured{min-height:520px;background:linear-gradient(180deg,var(--accent),oklch(.48 .13 155));color:#fff;box-shadow:var(--shadow)}.resource-card.developing{background:linear-gradient(180deg,#deffe4,#bbedc4)}.resource-card.muted{color:var(--muted)}.card-topline{display:flex;align-items:center;justify-content:space-between;gap:10px}.card-topline strong{font-size:1.9rem;letter-spacing:.04em}.card-topline span{border:1px solid currentColor;border-radius:999px;padding:4px 10px;font-size:.78rem;font-weight:800;opacity:.82}.bookplate{height:58px;margin:auto 0 28px;opacity:.5;background:linear-gradient(currentColor,currentColor) center 15px / 70% 1px no-repeat,linear-gradient(currentColor,currentColor) center 32px / 58% 1px no-repeat,radial-gradient(circle,currentColor 2px,transparent 3px) center / 18px 18px repeat-x}.resource-card h3{margin:0 0 12px;font-size:clamp(1.55rem,2vw,2.35rem);line-height:1.15;letter-spacing:-.03em}.resource-card p{margin:0 0 20px;line-height:1.75}.card-action{width:100%}.card-action:disabled{border:1px solid var(--line);background:transparent;color:var(--muted)}.official-panel{display:grid;grid-template-columns:310px 1fr;gap:24px;margin-top:44px;padding:28px;border:1px solid var(--line);border-radius:16px;background:var(--surface)}.official-grid{display:grid;grid-template-columns:repeat(2,minmax(220px,1fr));gap:12px}.official-grid a{display:block;border:1px solid var(--line);border-radius:var(--radius);padding:16px;text-decoration:none}.official-grid a:hover{border-color:var(--blue);color:var(--blue)}.official-grid span{display:block;margin-bottom:8px;color:var(--muted);font-size:.82rem}.two-column-page,.practice-page{display:grid;grid-template-columns:310px minmax(0,1fr);gap:28px}.side-panel,.practice-sidebar{position:sticky;top:86px;height:fit-content;border:1px solid var(--line);border-radius:16px;padding:24px;background:var(--surface)}.side-panel h1,.page-intro h1,.practice-sidebar h1{font-size:2.3rem}.chip-list{display:flex;flex-wrap:wrap;gap:8px;margin-top:22px}.chip-list button,.practice-sidebar button{border:1px solid var(--line);border-radius:999px;padding:8px 12px;background:var(--surface);color:var(--muted)}.chip-list button.active,.practice-sidebar button.active{border-color:var(--accent-strong);background:var(--accent-soft);color:var(--accent-strong)}.content-stack{display:grid;gap:14px}.notice-item{display:grid;grid-template-columns:72px minmax(0,1fr) auto;gap:18px;align-items:start;border:1px solid var(--line);border-radius:var(--radius);padding:18px;background:var(--surface)}.notice-item>span{border-radius:999px;padding:6px 10px;background:var(--accent-soft);color:var(--accent-strong);text-align:center;font-size:.82rem;font-weight:800}.notice-item p,.material-card p,.job-row p,.question-card p{color:var(--muted);line-height:1.7}.notice-item small{color:var(--muted)}.notice-item a{color:var(--blue);font-weight:750;text-decoration:none}.practice-sidebar{display:grid;gap:10px}.practice-sidebar button{display:flex;justify-content:space-between;width:100%;border-radius:12px;padding:12px}.question-area,.profile-grid{display:grid;gap:16px}.practice-summary,.stat-board{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.practice-summary div,.stat-board div{border:1px solid var(--line);border-radius:var(--radius);padding:16px;background:var(--surface)}.practice-summary span,.stat-board span{display:block;color:var(--muted);font-size:.86rem}.practice-summary strong,.stat-board strong{display:block;margin-top:8px;font-size:1.9rem}.question-card,.material-card,.activity-panel,.calendar-panel{border:1px solid var(--line);border-radius:var(--radius);padding:20px;background:var(--surface)}.question-card header{display:flex;align-items:center;justify-content:space-between;gap:16px;color:var(--muted)}.question-card header span{color:var(--accent-strong);font-weight:900}.option-list{display:grid;gap:8px;margin:16px 0}.option-list button{border:1px solid var(--line);border-radius:10px;padding:12px;background:var(--surface-2);color:var(--ink);text-align:left}.option-list button.selected{border-color:var(--blue);background:#dbeeff;background:oklch(.94 .035 245)}.option-list button.correct{border-color:var(--accent-strong);background:var(--accent-soft);color:var(--accent-strong)}.option-list button.wrong{border-color:var(--warn);background:#ffe9e3;background:oklch(.95 .04 35);color:#8b2000;color:oklch(.42 .16 35)}.question-actions{display:flex;flex-wrap:wrap;gap:8px}.question-actions button,.material-card button,.job-row button{border:1px solid var(--line);background:var(--surface);color:var(--ink)}.question-actions button.active{border-color:var(--accent-strong);background:var(--accent-soft);color:var(--accent-strong)}.answer-box{margin-top:12px;border-radius:10px;padding:14px;background:var(--surface-2);line-height:1.7}.content-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px}.material-card span{display:inline-flex;margin-bottom:12px;border-radius:999px;padding:5px 10px;background:var(--accent-soft);color:var(--accent-strong);font-size:.82rem;font-weight:800}.jobs-page,.profile-page,.admin-page{display:grid;gap:22px}.auth-page{width:min(980px,calc(100% - 32px))}.auth-panel{display:grid;grid-template-columns:minmax(0,.9fr) minmax(320px,1fr);gap:24px;align-items:start}.auth-copy{padding:34px 0}.auth-copy h1{margin:0;font-size:3rem;line-height:1.08;letter-spacing:-.03em}.auth-copy p:not(.label),.auth-card p{color:var(--muted);line-height:1.75}.auth-card{border:1px solid var(--line);border-radius:16px;padding:24px;background:var(--surface)}.auth-card h2{margin:10px 0 8px;font-size:1.6rem}.auth-badge{display:inline-flex;border-radius:999px;padding:5px 10px;background:var(--accent-soft);color:var(--accent-strong);font-size:.82rem;font-weight:800}.auth-tabs{display:inline-flex;margin-bottom:20px;border:1px solid var(--line);border-radius:999px;padding:4px;background:var(--surface-2)}.auth-tabs button{min-width:88px;border:0;border-radius:999px;padding:9px 14px;background:transparent;color:var(--muted);font-weight:800}.auth-tabs button.active{background:var(--surface);color:var(--accent-strong)}.auth-form{display:grid;gap:16px}.auth-form label{display:grid;gap:8px;color:var(--muted);font-size:.9rem;font-weight:750}.auth-form input{min-height:44px;border:1px solid var(--line);border-radius:10px;padding:0 12px;background:var(--surface);color:var(--ink)}.page-intro{max-width:820px}.filter-bar{display:flex;flex-wrap:wrap;gap:12px;border:1px solid var(--line);border-radius:16px;padding:16px;background:var(--surface)}.filter-bar label{display:grid;gap:8px;color:var(--muted);font-size:.86rem;font-weight:750}.filter-bar select{min-width:170px;border:1px solid var(--line);border-radius:10px;padding:10px 12px;background:var(--surface);color:var(--ink)}.job-table{display:grid;gap:10px}.job-row{display:grid;grid-template-columns:minmax(240px,1fr) 130px 180px 70px auto;gap:16px;align-items:center;border:1px solid var(--line);border-radius:var(--radius);padding:16px;background:var(--surface)}.job-row span{display:inline-flex;margin-bottom:8px;border-radius:999px;padding:4px 9px;background:var(--surface-2);color:var(--accent-strong);font-size:.8rem;font-weight:800}.job-row small{display:block;color:var(--muted)}.activity-panel article{display:grid;grid-template-columns:64px 1fr auto;gap:12px;align-items:center;padding:13px 0;border-bottom:1px solid var(--line)}.activity-panel article:last-child{border-bottom:0}.activity-panel span,.activity-panel small{color:var(--muted)}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(34px,1fr));gap:8px;margin-top:16px}.calendar-grid span{display:grid;min-height:38px;place-items:center;border:1px solid var(--line);border-radius:10px;color:var(--muted)}.calendar-grid span.active{border-color:var(--accent-strong);background:var(--accent-soft);color:var(--accent-strong);font-weight:800}.calendar-grid span.today{border-color:var(--blue)}.admin-layout{display:grid;grid-template-columns:360px minmax(0,1fr);gap:18px;align-items:start}.admin-login-panel{display:flex;gap:16px;align-items:center;justify-content:space-between;border:1px solid var(--line);border-radius:16px;padding:16px 18px;background:var(--surface)}.admin-login-panel strong,.admin-import-box h3{display:block;margin:0}.admin-login-panel p,.admin-import-box p{margin:6px 0 0;color:var(--muted);line-height:1.55}.admin-login-panel form{display:flex;gap:10px}.admin-login-panel input{min-width:220px;border:1px solid var(--line);border-radius:10px;padding:10px 12px}.admin-form-panel,.admin-list-panel{border:1px solid var(--line);border-radius:16px;padding:18px;background:var(--surface)}.admin-form-panel{position:sticky;top:86px}.admin-toolbar{display:flex;gap:10px;align-items:end;justify-content:space-between;margin-bottom:16px}.admin-form,.admin-form label,.admin-toolbar label{display:grid;gap:8px}.admin-form{gap:12px}.admin-form label,.admin-toolbar label{color:var(--muted);font-size:.86rem;font-weight:750}.admin-form input,.admin-form textarea,.admin-form select,.admin-toolbar select{width:100%;border:1px solid var(--line);border-radius:10px;padding:10px 12px;background:var(--surface);color:var(--ink)}.admin-form textarea{min-height:92px;resize:vertical}.admin-status{margin:0;border-radius:10px;padding:10px 12px;background:var(--accent-soft);color:var(--accent-strong);font-weight:750}.danger-btn{width:100%;min-height:40px;margin-top:12px;border:1px solid oklch(.78 .06 35);border-radius:10px;background:#ffede8;background:oklch(.96 .025 35);color:var(--warn);font-weight:750}.admin-import-box{display:grid;gap:10px;margin-top:14px;border:1px solid var(--line);border-radius:12px;padding:14px;background:var(--surface-2)}.admin-import-box label{display:grid;gap:8px;color:var(--muted);font-size:.86rem;font-weight:750}.admin-import-box input,.admin-import-box select{width:100%;border:1px solid var(--line);border-radius:10px;padding:10px 12px;background:var(--surface);color:var(--ink)}.admin-list-panel{display:grid;gap:10px}.admin-list-panel header,.admin-row{display:flex;gap:14px;align-items:center;justify-content:space-between}.admin-list-panel header{margin-bottom:6px}.admin-list-panel header>span{border-radius:999px;padding:6px 10px;background:var(--surface-2);color:var(--muted);font-size:.84rem;font-weight:800}.admin-row{border:1px solid var(--line);border-radius:var(--radius);padding:14px;background:var(--surface-2)}.admin-row strong,.admin-row small{display:block}.admin-row small{margin-bottom:4px;color:var(--muted)}.admin-row p{max-width:72ch;margin:6px 0 0;color:var(--muted);line-height:1.55}.admin-row-actions{display:flex;flex:0 0 auto;gap:8px}.admin-row-actions button{min-height:36px;border:1px solid var(--line);border-radius:9px;padding:0 12px;background:var(--surface);color:var(--ink);font-weight:750}@media(max-width:1080px){.resource-shelf{grid-template-columns:repeat(3,minmax(210px,1fr))}.resource-card,.resource-card.featured{min-height:390px}.hero,.official-panel,.two-column-page,.practice-page,.auth-panel,.admin-layout{grid-template-columns:1fr}.side-panel,.practice-sidebar,.admin-form-panel{position:static}.job-row{grid-template-columns:1fr 1fr}}@media(max-width:720px){.topbar{align-items:stretch;flex-direction:column;gap:12px}.user-mini button{width:100%}.page{width:min(100% - 22px,1240px);padding-top:24px}.hero{padding:22px}.hero-copy h1{font-size:2.45rem}.auth-copy{padding:8px 0 0}.auth-copy h1{font-size:2.35rem}.feedback-dialog{grid-template-columns:1fr;gap:12px;padding:20px}.feedback-mark{width:44px;height:44px;border-radius:12px;font-size:1.3rem}.resource-shelf,.official-grid,.practice-summary,.stat-board,.notice-item,.job-row{grid-template-columns:1fr}.activity-panel article{grid-template-columns:1fr}.admin-list-panel header,.admin-row,.admin-login-panel,.admin-login-panel form{align-items:stretch;flex-direction:column}.admin-row-actions{width:100%}.admin-row-actions button{flex:1}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition-duration:.01ms!important}}
