:root{--bg: #fbfcfb;--surface: rgba(255, 255, 255, .86);--surface-strong: rgba(255, 255, 255, .96);--surface-soft: rgba(246, 249, 247, .92);--border: rgba(16, 24, 20, .08);--border-strong: rgba(16, 24, 20, .14);--line: rgba(16, 24, 20, .06);--text: #111713;--text-soft: #3f4a43;--muted: #6d7770;--accent: #14945d;--accent-strong: #0f7b4c;--accent-soft: rgba(20, 148, 93, .1);--blue: #2b8fbf;--gold: #d99921;--shadow-sm: 0 12px 30px rgba(17, 23, 19, .04);--shadow-md: 0 22px 50px rgba(17, 23, 19, .06);--radius-xl: 28px;--radius-lg: 22px;--radius-md: 16px;--radius-sm: 12px;--font-display: "Space Grotesk", "PingFang SC", "Noto Sans SC", sans-serif;--font-body: "IBM Plex Sans", "PingFang SC", "Noto Sans SC", sans-serif}*{box-sizing:border-box}html{color-scheme:light}body{margin:0;min-width:320px;min-height:100vh;background:#fff;color:var(--text);font-family:var(--font-body);text-rendering:optimizeLegibility}a{color:inherit;text-decoration:none}button,input,select{font:inherit}.app-shell{display:grid;grid-template-columns:300px minmax(0,1fr);min-height:100vh}.sidebar{position:sticky;top:0;display:flex;flex-direction:column;gap:28px;height:100vh;padding:28px 24px;border-right:1px solid var(--border);background:#fbfcfbc7;backdrop-filter:blur(16px);overflow-y:auto}.sidebar:after{content:"";position:absolute;inset:24px 0 24px auto;width:1px;background:linear-gradient(180deg,transparent,rgba(20,148,93,.16),transparent);pointer-events:none}.sidebar__eyebrow{margin:0 0 8px;color:var(--muted);font-size:11px;font-weight:650;line-height:1;letter-spacing:0;text-transform:uppercase}.sidebar__brand h1,.topbar h2{margin:0;font-family:var(--font-display);letter-spacing:0}.sidebar__brand h1{font-size:32px;font-weight:700;line-height:1}.nav{display:grid;gap:10px}.nav__item{position:relative;display:grid;gap:5px;border:1px solid transparent;border-radius:var(--radius-md);padding:14px 16px 14px 34px;background:transparent;text-align:left;cursor:pointer;transition:transform .15s ease,border-color .15s ease,background-color .15s ease,box-shadow .15s ease,opacity .15s ease}.nav__item:before{content:"";position:absolute;inset:10px auto 10px 14px;width:3px;border-radius:999px;background:transparent;transition:background-color .15s ease,box-shadow .15s ease}.nav__item:hover{transform:translate(3px);border-color:var(--border);background:#ffffff8c}.nav__item.is-active{border-color:#14945d38;background:var(--surface-strong);box-shadow:var(--shadow-sm)}.nav__item.is-active:before{background:var(--accent);box-shadow:0 0 0 6px #14945d14}.nav__label{font-size:14px;font-weight:700}.nav__meta{color:var(--muted);font-size:12px;line-height:1.45}.content{padding:30px 30px 72px}.topbar{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:24px}.topbar h2{font-size:clamp(30px,4vw,42px);font-weight:650;line-height:1}.sections{display:grid}.section-view{display:none}.section-view.is-active{display:grid;gap:22px}.life-groups,.series-grid{display:grid}.life-groups{gap:20px}.math-panel{border:1px solid var(--border);border-radius:var(--radius-xl);background:var(--surface);box-shadow:var(--shadow-sm);overflow:hidden}.math-panel__bar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 22px 14px 16px}.math-tabs{display:inline-flex;justify-self:start;width:fit-content;gap:4px;border-radius:999px;padding:4px;background:#10181409}.math-updated{margin:0;color:var(--muted);font-size:12px;font-weight:650;line-height:1;white-space:nowrap}.math-tab{position:relative;display:inline-flex;align-items:center;justify-content:center;min-height:40px;border:1px solid transparent;border-radius:999px;padding:0 16px;background:transparent;color:var(--muted);line-height:1;transition:background-color .15s ease,color .15s ease,box-shadow .15s ease}.math-tab:hover{background:#ffffff9e;color:var(--text-soft)}.math-tab.is-active{border-color:#14945d2e;background:var(--accent);color:#fff;box-shadow:0 8px 18px #14945d24}.math-tab strong{font-size:14px}.resource-group{border:1px solid var(--border);border-radius:var(--radius-xl);background:var(--surface);box-shadow:var(--shadow-sm);overflow:hidden}.series-panel{display:none}.series-panel.is-active{display:block}.group-heading{display:flex;align-items:start;justify-content:space-between;gap:18px;padding:22px 24px;border-bottom:1px solid var(--line);background:#f6f9f7a3}.group-heading h3,.resource-row h4{margin:0;letter-spacing:0}.group-heading h3{font-size:19px;line-height:1.25}.group-heading p,.resource-row p{margin:8px 0 0;color:var(--muted);font-size:14px;line-height:1.65}.group-heading span{flex:none;border:1px solid rgba(20,148,93,.14);border-radius:999px;padding:7px 10px;background:#ffffffb8;color:var(--accent-strong);font-size:12px;font-weight:700}.resource-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;padding:16px}.resource-row{display:grid;grid-template-columns:118px minmax(0,1fr);align-items:start;gap:16px;min-height:100%;border:1px solid var(--border);border-radius:var(--radius-md);padding:16px;background:#ffffffb8}.resource-row h4{font-size:16px}.resource-row__body{display:grid;grid-template-rows:auto 1fr auto;min-height:100%;min-width:0}.resource-row__header{display:flex;align-items:center;justify-content:space-between;gap:10px}.page-badge{flex:none;border:1px solid var(--border);border-radius:999px;padding:4px 8px;background:#f6f9f7b8;color:var(--muted);font-size:12px;font-weight:700;line-height:1}.resource-row__footer{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin-top:14px}.resource-tags{display:flex;flex-wrap:wrap;gap:6px}.resource-tags span{display:inline-flex;align-items:center;min-height:26px;border:1px solid rgba(16,24,20,.08);border-radius:999px;padding:0 9px;background:#f6f9f7b3;color:var(--text-soft);font-size:12px;font-weight:650;line-height:1}.resource-row__actions{display:flex;flex:none;justify-content:flex-end}.pdf-thumb,.resource-thumb-frame{display:grid;place-items:center;width:108px;height:153px;border-radius:var(--radius-sm);background:linear-gradient(145deg,#14945d14,#2b8fbf14),#fff;border:1px solid rgba(16,24,20,.08)}.resource-thumb-frame{overflow:hidden;background:#fff}.resource-thumb{display:block;width:100%;height:100%;border:0;border-radius:0;background:#fff;object-fit:contain;object-position:top center;transform:scale(var(--thumb-zoom, 1));transform-origin:top center}.pdf-thumb__sheet{display:grid;place-items:center;width:42px;height:56px;border:1px solid rgba(16,24,20,.1);border-radius:8px;background:linear-gradient(180deg,#fff,#f6f9f7);color:var(--accent-strong);font-size:11px;font-weight:800}.download-button{display:inline-flex;align-items:center;justify-content:center;gap:4px;min-height:30px;border:1px solid rgba(20,148,93,.18);border-radius:999px;padding:0 9px;background:var(--accent);color:#fff;font-size:12px;font-weight:750;line-height:1;white-space:nowrap;box-shadow:0 12px 24px #14945d1f;transition:transform .15s ease,background-color .15s ease,box-shadow .15s ease}.download-button svg{width:13px;height:13px;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:2}.download-button:hover{transform:translateY(-1px);background:var(--accent-strong);box-shadow:0 16px 28px #14945d29}.level-card-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:0 16px 16px}.level-card{display:grid;grid-template-rows:auto 1fr auto;gap:12px;border:1px solid var(--border);border-radius:var(--radius-md);padding:16px;background:transparent}.level-card__title{display:flex;align-items:center;flex-wrap:wrap;gap:10px}.level-badge,.format-badge{display:inline-flex;align-items:center;min-height:30px;border-radius:999px;padding:0 10px;font-size:12px;font-weight:800;line-height:1.2}.level-badge{flex:none;border:1px solid var(--border);background:#ffffffb8;color:var(--muted)}.format-badges{display:flex;flex-wrap:wrap;gap:7px;min-width:0}.format-badge{border:1px solid rgba(20,148,93,.16);background:#14945d14;color:var(--accent-strong)}.level-card__description{margin:0;color:var(--muted);font-size:14px;line-height:1.7}.level-card__actions{display:flex;justify-content:flex-end;align-self:end}body[data-section=calendar] [data-section-panel=calendar]{grid-template-columns:minmax(460px,680px) minmax(320px,1fr);align-items:start;gap:22px}.calendar-preview{display:block;width:100%;border:1px solid var(--border);border-radius:var(--radius-lg);background:#fff;box-shadow:0 18px 34px #1117130f;object-fit:contain}.calendar-card{border:1px solid var(--border);border-radius:var(--radius-md);padding:20px 22px 20px 20px;background:var(--surface);box-shadow:var(--shadow-sm)}.calendar-card__header{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.calendar-card h3{margin:0;font-size:19px;letter-spacing:0}.calendar-card p{margin:9px 0 0;color:var(--muted);font-size:14px;line-height:1.7}.calendar-card__block{margin-top:18px}.calendar-card__actions{display:flex;justify-content:flex-start;margin-top:22px}.calendar-card__block span{display:inline-flex;align-items:center;min-height:26px;border:1px solid rgba(20,148,93,.16);border-radius:999px;padding:0 9px;background:#14945d14;color:var(--accent-strong);font-size:12px;font-weight:750;line-height:1}body[data-section=sudoku] [data-section-panel=sudoku]{grid-template-columns:minmax(300px,450px) minmax(0,1fr);align-items:start;gap:16px 22px}.sudoku-preview{grid-row:span 3;display:block;width:100%;height:auto;border:1px solid var(--border);border-radius:var(--radius-lg);background:#fff;box-shadow:0 18px 34px #1117130f}.sudoku-note,.sudoku-difficulty{border:1px solid var(--border);border-radius:var(--radius-md);padding:18px 22px 18px 18px;background:var(--surface);box-shadow:var(--shadow-sm)}.sudoku-note h3,.sudoku-difficulty h3{margin:0;font-size:18px;letter-spacing:0}.sudoku-difficulty__header{display:flex;align-items:center;justify-content:space-between;gap:16px}.sudoku-note p,.sudoku-note__block p{margin:9px 0 0;color:var(--muted);font-size:14px;line-height:1.7}.sudoku-note__subtitle{margin-top:7px;color:var(--muted);font-size:14px;font-weight:400;line-height:1.45}.sudoku-note__block{margin-top:18px}.sudoku-note__block span{display:inline-flex;align-items:center;min-height:26px;border:1px solid rgba(20,148,93,.16);border-radius:999px;padding:0 9px;background:#14945d14;color:var(--accent-strong);font-size:12px;font-weight:750;line-height:1}.sudoku-level-list{display:grid;grid-template-columns:repeat(4,max-content);gap:14px;margin-top:22px}.sudoku-level{display:inline-flex}.sudoku-updated{margin:0;color:var(--muted);font-size:12px;font-weight:650;line-height:1;white-space:nowrap}@media(max-width:900px){.app-shell{grid-template-columns:1fr}.sidebar{position:relative;height:auto;gap:18px;padding:18px;border-right:0;border-bottom:1px solid var(--border)}.sidebar:after{display:none}.nav{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.nav__item{padding:12px 14px 12px 30px}.content{padding:22px 18px 56px}.topbar{align-items:start;flex-direction:column}.resource-list,.level-card-grid,body[data-section=sudoku] [data-section-panel=sudoku],body[data-section=calendar] [data-section-panel=calendar]{grid-template-columns:1fr}.sudoku-preview{grid-row:auto}}@media(max-width:620px){.nav{grid-template-columns:1fr}.sidebar{gap:14px;padding:16px}.sidebar__eyebrow{margin-bottom:6px;font-size:10px}.sidebar__brand h1{font-size:28px}.nav__item{padding:11px 12px 11px 28px}.group-heading{flex-direction:column;padding:18px}.resource-list{padding:12px}.resource-row{grid-template-columns:76px minmax(0,1fr);gap:12px;padding:12px}.pdf-thumb,.resource-thumb-frame{width:76px;height:auto;aspect-ratio:1 / 1.414}.resource-row__footer{align-items:flex-start;flex-direction:column}.resource-row__actions{justify-content:flex-start}.sudoku-level-list{grid-template-columns:repeat(2,max-content);justify-content:center}.sudoku-level{min-width:0}.sudoku-difficulty__header{align-items:flex-start;flex-direction:column;gap:8px}.sudoku-updated{white-space:normal}.calendar-card__header{flex-direction:column}.math-panel__bar{align-items:flex-start;flex-direction:column;gap:10px}.math-tabs{width:100%;max-width:100%;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:none}.math-tabs::-webkit-scrollbar{display:none}.math-updated{white-space:normal}.math-tab{flex:0 0 auto;padding:0 10px}.level-card-grid{padding:12px}}
