:root{--accent:#17d059;--ink:#171a17;--muted:#5b665d;--paper:#fbfaf3;--line:#d9ded6;--accent-strong:#0f9f43;--font-main:Arial,Helvetica,sans-serif;--page-gutter:24px;--page-max:1440px;--surface:#fffef8;--surface-muted:#f1efe4;--surface-hover:#f4fff7;--surface-pinned:#ecfff2;--surface-warning:#fff8e6;--surface-error:#fff5f3;--warning-ink:#9a6700;--error-ink:#b42318;--difficulty-medium:#c98a00;--difficulty-hard:#d1462f;--shadow:var(--ink);--tooltip-bg:#171a17;--tier-rough:#6b7280;--tier-cut:#2f9e44;--tier-polished:#1971c2;--tier-radiant:#7048e8;--tier-molten:#e8590c;color-scheme:light}[data-theme=dark]{--accent:#21e065;--accent-strong:#2ef074;--ink:#f0f6fc;--muted:#9aa4b2;--paper:#151a23;--line:#30363d;--surface:#1c212b;--surface-muted:#232a35;--surface-hover:#1f2e24;--surface-pinned:#192b1f;--surface-warning:#2b2513;--surface-error:#2e1a18;--warning-ink:#f0c000;--error-ink:#ff9a8d;--shadow:#05070b;--tooltip-bg:#30363d;--tier-rough:#9aa4b2;--tier-cut:#51cf66;--tier-polished:#4dabf7;--tier-radiant:#b197fc;--tier-molten:#ff922b;color-scheme:dark}[data-theme=dark] .button{color:#05070b;border-color:#05070b}[data-theme=dark] .member-card.medal-gold{background:#2b2513}[data-theme=dark] .member-card.medal-silver{background:#333d4d}[data-theme=dark] .member-card.medal-bronze{background:#2a1d12}.contest-tier{font-weight:600}.contest-tier--rough{color:var(--tier-rough)}.contest-tier--cut{color:var(--tier-cut)}.contest-tier--polished{color:var(--tier-polished)}.contest-tier--radiant{color:var(--tier-radiant)}.contest-tier--molten{color:var(--tier-molten)}.contest-rating-chart{position:relative;width:100%;margin:4px 0 16px;border:1px solid var(--line);border-radius:12px;background:var(--paper);padding:8px}.contest-rating-chart svg{display:block;width:100%;height:auto;overflow:visible}.contest-rating-chart__grid line{stroke:var(--line);stroke-width:1;stroke-dasharray:3 4}.contest-rating-chart__grid text{fill:var(--muted);font-size:11px;font-weight:600}.contest-rating-chart__line{fill:none;stroke:var(--accent);stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round}.contest-rating-chart__dot{fill:var(--paper);stroke:var(--accent);stroke-width:2;transition:r .12s ease,fill .12s ease}.contest-rating-chart__dot.is-active{fill:var(--accent)}.contest-rating-chart__hit{fill:transparent;cursor:pointer;outline:none}.contest-rating-chart__marker{stroke:var(--accent);stroke-width:1;stroke-dasharray:3 3;opacity:.6}.contest-rating-chart__tooltip{position:absolute;transform:translate(-50%,calc(-100% - 12px));min-width:128px;display:grid;grid-gap:2px;gap:2px;padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:var(--ink);color:var(--paper);font-size:12px;line-height:1.35;pointer-events:none;box-shadow:0 8px 20px rgba(5,7,11,.25);z-index:2}.contest-rating-chart__tooltip strong{font-size:12px}.contest-rating-chart__tooltip-date{color:var(--muted)}*{box-sizing:border-box}html{scroll-behavior:auto;-webkit-text-size-adjust:100%}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--font-main)}a{color:inherit;text-decoration:none}img{display:block;max-width:100%}.site-header button{padding:0;background:transparent;border:0;color:inherit;font:inherit;font-weight:800;cursor:pointer}.site-header button:hover{color:var(--accent)}.site-header form{margin:0}.site-header .theme-toggle{display:inline-grid;place-items:center;width:36px;height:36px;margin-left:8px;padding:0;border:2px solid var(--ink);border-radius:999px;background:var(--surface);color:var(--ink);font-size:1rem;line-height:1;cursor:pointer}.site-header .theme-toggle:hover{background:var(--surface-hover);color:var(--ink)}.site-shell{width:min(var(--page-max),calc(100% - var(--page-gutter)));margin:0 auto}.site-header{display:flex;align-items:center;position:relative;justify-content:space-between;gap:24px;padding:28px 0;border-bottom:1px solid var(--line)}.brand{color:var(--accent);font-size:1.45rem;font-weight:800;letter-spacing:-.04em}.brand,.nav-links{font-family:var(--font-main)}.nav-links{display:flex;align-items:center;flex-wrap:wrap;gap:22px;color:var(--muted);font-size:.95rem}.nav-links a:hover,.site-footer a:hover,.text-link:hover{color:var(--accent)}.notification-bell-wrap{position:static}.message-indicator-wrap,.notification-bell-wrap{display:inline-flex;margin-left:8px}.message-indicator,.notification-bell{position:relative;display:inline-grid;place-items:center;width:36px;height:36px;padding:0;border:2px solid var(--ink);border-radius:999px;background:var(--surface);color:var(--ink);cursor:pointer}.message-indicator:hover,.notification-bell:hover{background:var(--surface-hover)}.message-indicator.is-unread{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 20%,var(--surface))}.notification-bell-badge{position:absolute;top:-6px;right:-6px;display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;border-radius:999px;border:2px solid var(--surface);background:var(--accent);color:#05130a;font-size:.65rem;font-weight:800;line-height:1}.notification-dropdown{position:absolute;top:calc(100% + 10px);right:0;left:auto;z-index:60;width:min(340px,calc(100vw - 32px));max-height:420px;overflow-y:auto;background:var(--surface);border:1px solid var(--line);border-radius:14px;box-shadow:0 12px 32px -12px var(--shadow)}.notification-dropdown-header{padding:12px 16px;border-bottom:1px solid var(--line);font-family:var(--font-main);font-weight:800;font-size:.9rem;color:var(--ink)}.notification-dropdown-list{list-style:none;margin:0;padding:0}.notification-dropdown-item{display:flex;align-items:flex-start;gap:12px;padding:12px 16px;color:inherit;text-decoration:none;border-bottom:1px solid var(--line)}.notification-dropdown-list li:last-child .notification-dropdown-item{border-bottom:none}a.notification-dropdown-item:hover{background:var(--surface-hover)}.notification-dropdown-icon{font-size:1.05rem;line-height:1.3}.notification-dropdown-body{display:flex;flex-direction:column;gap:3px}.notification-dropdown-message{font-size:.85rem;line-height:1.35;color:var(--ink)}.notification-dropdown-time{font-size:.75rem;color:var(--muted)}.notification-dropdown-empty{padding:24px 16px;text-align:center;color:var(--muted);font-size:.85rem}.notification-dropdown-footer{display:block;padding:12px 16px;border-top:1px solid var(--line);text-align:center;font-family:var(--font-main);font-weight:700;font-size:.82rem;color:var(--accent);text-decoration:none}.notification-dropdown-footer:hover{background:var(--surface-hover)}.notifications-intro{margin:0 0 24px;color:var(--muted);max-width:60ch}.notification-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}.notification-item{margin:0}.notification-row{display:flex;align-items:flex-start;gap:14px;padding:14px 16px;border:1px solid var(--line);border-radius:12px;color:inherit;text-decoration:none;transition:border-color .15s ease}a.notification-row:hover{border-color:var(--accent)}.notification-icon{font-size:1.15rem;line-height:1.4}.notification-body{display:flex;flex-direction:column;gap:4px}.notification-message{font-weight:600}.notification-time{color:var(--muted);font-size:.82rem}.hero{min-height:66vh;display:grid;align-content:center;padding:84px 0 96px;border-bottom:1px solid var(--line)}.eyebrow,.section-label{margin:0 0 14px;color:var(--accent);font-family:var(--font-main);font-size:.78rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase}.hero h1{max-width:860px;margin:0;font-size:clamp(2.75rem,6vw,5.4rem);line-height:1;letter-spacing:-.06em}.hero-copy{max-width:660px;margin:28px 0 0;color:var(--muted);font-size:clamp(1.15rem,2vw,1.45rem);line-height:1.45}.hero-actions{display:flex;gap:22px;margin-top:36px}.button,.hero-actions,.secondary-button{align-items:center;font-family:var(--font-main)}.button,.secondary-button{display:inline-flex;justify-content:center;min-height:46px;padding:0 22px;border:2px solid var(--ink);box-shadow:5px 5px 0 var(--shadow);color:var(--ink);font-weight:800;line-height:1;text-align:center;white-space:nowrap}.button{background:var(--accent)}.secondary-button{background:transparent}.button:hover,.secondary-button:hover{transform:translate(1px,1px);box-shadow:4px 4px 0 var(--shadow)}.text-link{color:var(--muted);font-weight:700}.section{padding:72px 0;border-bottom:1px solid var(--line)}.about-section{display:grid;grid-template-columns:.9fr 1.1fr;grid-gap:56px;gap:56px}.section h2{margin:0;font-size:clamp(2rem,4vw,3.5rem);line-height:1;letter-spacing:-.05em}.section-copy{color:var(--muted);font-size:1.18rem;line-height:1.65}.section-copy p{margin:0 0 20px}.section-copy p:last-child{margin-bottom:0}.pillar-list{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:16px;gap:16px;margin-top:24px}.pillar{min-height:108px;align-items:flex-end;padding:18px;background:var(--paper);border:1px solid var(--line);border-top:4px solid var(--accent);font-size:1.05rem;font-weight:800}.pillar,.site-footer{display:flex;font-family:var(--font-main)}.site-footer{align-items:center;justify-content:space-between;gap:20px;padding:28px 0;color:var(--muted);font-size:.95rem}.site-footer p{margin:0}.site-footer a{font-weight:800}.app-shell,.auth-shell{width:min(880px,calc(100% - 32px));min-height:calc(100vh - 88px);display:grid;align-content:center;margin:0 auto;padding:48px 0}.app-shell{align-content:start}.app-card,.auth-card{padding:clamp(24px,3vw,40px);background:var(--paper);border:1px solid var(--line)}.wide-card{width:min(var(--page-max),calc(100vw - var(--page-gutter)))}.workspace-shell{padding:24px 0}.workspace-card{padding:clamp(22px,3vw,40px)}.app-card h1,.auth-card h1{max-width:760px;margin:0;font-size:clamp(2.35rem,5vw,4.4rem);line-height:1;letter-spacing:-.06em}.app-card p,.auth-card p{max-width:700px;color:var(--muted);font-size:1.12rem;line-height:1.6}.app-card form,.auth-card form{margin-top:28px}.auth-card form+form{margin-top:14px}.auth-actions-list{display:flex;flex-wrap:wrap;gap:14px;margin-top:28px}.auth-actions-list form{margin-top:0}.stacked-form{display:grid;grid-gap:18px;gap:18px}.stacked-form label{display:grid;grid-gap:8px;gap:8px;color:var(--ink);font-family:var(--font-main);font-weight:800}.stacked-form .checkbox-row{display:inline-flex;align-items:center;gap:10px}.stacked-form .checkbox-row input{width:auto}.stacked-form input,.stacked-form select,.stacked-form textarea{width:100%;padding:13px 14px;border:1px solid var(--line);background:var(--surface);color:var(--ink);font:inherit;font-size:1rem}.stacked-form textarea{min-height:120px;resize:vertical}.event-delete-form{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-top:22px;padding-top:18px;border-top:1px solid var(--line)}.event-delete-form small{color:var(--muted);font-weight:800}.form-message{padding:12px 14px;border-left:4px solid var(--accent);background:var(--surface);color:var(--ink);font-family:var(--font-main);font-size:1rem;line-height:1.5}.form-message.error{border-left-color:var(--error-ink)}.form-message code{padding:2px 5px;background:var(--surface-muted);border:1px solid var(--line);font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:.9em}.application-summary{display:grid;grid-gap:10px;gap:10px;margin-top:28px;padding:18px;border:1px solid var(--line);background:var(--surface)}.application-summary h2,.application-summary p{margin:0}.application-summary h2,.application-summary strong{color:var(--ink);font-family:var(--font-main)}.application-list{display:grid;grid-gap:18px;gap:18px;margin-top:28px}.application-row{display:grid;grid-template-columns:1fr auto;grid-gap:20px;gap:20px;padding:18px;border:1px solid var(--line);background:var(--surface)}.application-row h2{margin:0 0 8px;font-size:1.3rem}.review-actions{display:flex;align-items:center;gap:10px}.event-list{display:grid;grid-gap:18px;gap:18px;margin-top:32px}.event-card{display:grid;grid-template-columns:1fr auto;grid-gap:22px;gap:22px;padding:20px;border:1px solid var(--line);background:var(--surface)}.event-card.has-event-image{grid-template-columns:minmax(150px,220px) 1fr auto}.event-image-link{display:block}.event-hero-image,.event-image{display:block;width:100%;border:1px solid var(--line);background:var(--surface)}.event-image{aspect-ratio:4/3;height:100%;min-height:150px;object-fit:contain}.event-hero-image{height:auto;margin-top:28px;object-fit:contain}.event-card h2{margin:6px 0 10px;font-size:clamp(1.55rem,3vw,2.25rem);line-height:1;letter-spacing:-.04em}.event-card h2 a:hover{color:var(--accent)}.event-card p{margin:0 0 12px}.event-card p:last-child{margin-bottom:0}.event-summary-meta{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0 14px}.event-summary-meta span{padding:7px 10px;border:1px solid var(--line);border-left:3px solid var(--accent);background:var(--paper);color:var(--muted);font-family:var(--font-main);font-size:.88rem;font-weight:800;line-height:1.25}.event-detail-meta,.event-meta,.event-note{color:var(--muted);font-family:var(--font-main);font-size:.95rem;line-height:1.5}.event-meta{font-weight:800}.event-actions,.event-detail-actions{display:flex;align-items:center;gap:14px}.event-actions{align-self:start;flex-direction:column;align-items:flex-end}.nudge-section{margin-top:36px}.nudge-section h2{margin:0 0 16px;font-size:clamp(1.35rem,2.5vw,1.85rem);letter-spacing:-.03em}.nudge-section h3{margin:0 0 12px;font-size:1.05rem;letter-spacing:-.02em}.member-nudges-panel{margin-top:28px}.nudge-list{display:grid;grid-gap:16px;gap:16px}.nudge-card{display:grid;grid-template-columns:1fr auto;grid-gap:18px;gap:18px;padding:18px;border:1px solid var(--line);background:var(--surface)}.nudge-card-header{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px}.nudge-card h2{margin:0;font-size:clamp(1.2rem,2.2vw,1.6rem);line-height:1.1;letter-spacing:-.03em}.nudge-meta{margin:0 0 10px;color:var(--muted);font-size:.92rem}.nudge-card p:last-child{margin-bottom:0}.nudge-status{padding:6px 10px;border:1px solid var(--line);font-size:.82rem;font-weight:800;letter-spacing:.02em;text-transform:uppercase}.nudge-status-pending{border-left:3px solid var(--accent);background:var(--paper)}.nudge-status-accepted{border-left:3px solid var(--accent);background:var(--surface)}.nudge-status-completed{border-left:3px solid var(--accent);color:var(--ink)}.nudge-status-closed{border-left:3px solid var(--line);color:var(--muted)}.nudge-actions{display:flex;flex-wrap:wrap;align-items:flex-start;gap:10px}.event-detail-meta{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:12px;gap:12px;margin:24px 0}.event-detail-meta p{margin:0;padding:14px;border:1px solid var(--line);border-top:4px solid var(--accent);background:var(--surface);color:var(--ink);font-weight:800}.event-detail-meta span{display:block;margin-bottom:6px;color:var(--accent);font-size:.7rem;letter-spacing:.14em;text-transform:uppercase}.event-detail-actions{flex-wrap:wrap;margin-top:28px}.practice-week{margin-top:36px}.practice-week-header{margin:0;color:var(--accent);font-family:var(--font-main);font-size:.9rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.practice-week .problem-list{margin-top:14px}.problem-list{display:grid;margin-top:28px;border:1px solid var(--line);background:var(--surface)}.problem-row{display:grid;grid-template-columns:1fr auto;grid-gap:18px;gap:18px;align-items:center;padding:14px 18px;border-bottom:1px solid var(--line);transition:background .16s ease,color .16s ease}.problem-row:last-child{border-bottom:0}.problem-row:hover{background:var(--surface-hover)}.problem-row-title{color:var(--ink);font-size:1.05rem;font-weight:800}.problem-row-meta{display:flex;gap:14px;align-items:center;color:var(--muted);font-size:.92rem;font-weight:700;white-space:nowrap}.difficulty-pill{min-width:64px;color:var(--accent-strong)}.difficulty-pill.medium{color:var(--warning-ink)}.difficulty-pill.hard{color:var(--error-ink)}.problem-tag-list{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px}.problem-tag-list span{padding:7px 10px;border:1px solid var(--line);border-left:3px solid var(--accent);background:var(--surface);color:var(--muted);font-size:.9rem;font-weight:800}.teaching-form{margin-top:28px}.teaching-artifact-list,.teaching-session-list{display:grid;grid-gap:12px;gap:12px;margin-top:28px}.teaching-artifact-row,.teaching-session-row{display:grid;grid-template-columns:1fr auto auto;grid-gap:16px;gap:16px;align-items:center;padding:16px;border:1px solid var(--line);background:var(--surface)}.teaching-session-row:hover{background:var(--surface-hover)}.teaching-session-row small,.teaching-session-row strong{display:block}.teaching-date,.teaching-session-row small,.teaching-session-row>span:not(:first-child){color:var(--muted);font-size:.92rem;font-weight:800}.teaching-artifact-row{grid-template-columns:1fr auto}.teaching-artifact-row h2{margin:4px 0 8px;font-size:1.35rem;letter-spacing:-.03em}.teaching-artifact-row .text-link{overflow-wrap:anywhere}.teaching-board-section{margin-top:32px;padding-top:28px;border-top:1px solid var(--line)}.compact-form{max-width:560px}.teaching-board-row{display:grid;grid-template-columns:1fr auto auto auto;grid-gap:12px;gap:12px;align-items:center;padding:16px;border:1px solid var(--line);background:var(--surface)}.teaching-board-row small,.teaching-board-row strong{display:block}.teaching-board-row small{color:var(--muted);font-size:.9rem;font-weight:800}.teaching-artifact-row form,.teaching-board-row form{margin-top:0}.teaching-artifact-row button,.teaching-artifact-row form,.teaching-board-row button,.teaching-board-row form{align-self:center}.excalidraw-page-shell{width:min(var(--page-max),calc(100% - var(--page-gutter)));padding:16px 0}.excalidraw-page-shell .app-card{padding:clamp(14px,2vw,24px)}.excalidraw-page-shell .wide-card{width:100%}.excalidraw-board-shell{display:grid;grid-gap:14px;gap:14px;margin-top:24px;background:var(--paper)}.excalidraw-board-shell:-webkit-full-screen{padding:12px;background:var(--paper)}.excalidraw-board-shell:fullscreen{padding:12px;background:var(--paper)}.excalidraw-toolbar{display:flex;flex-wrap:wrap;gap:12px;align-items:center}.excalidraw-toolbar span{color:var(--muted);font-weight:800}.excalidraw-canvas-shell{height:min(82vh,920px);min-height:520px;overflow:hidden;border:1px solid var(--line);background:var(--surface)}.excalidraw-board-shell:-webkit-full-screen .excalidraw-canvas-shell{height:calc(100vh - 82px);min-height:0}.excalidraw-board-shell:fullscreen .excalidraw-canvas-shell{height:calc(100vh - 82px);min-height:0}.pinned-problem{background:var(--surface-pinned)}.pinned-problem .problem-row-title{display:flex;gap:8px;align-items:center}.problem-row.solved{background:var(--surface-hover);border-left:3px solid var(--accent)}.problem-row.solved:hover{background:var(--surface-pinned)}.practice-leaderboard{margin-top:28px;border:1px solid var(--line);background:var(--surface)}.leaderboard-row,.practice-leaderboard-header{display:grid;grid-template-columns:auto 1fr auto;grid-gap:14px;gap:14px;align-items:center}.practice-leaderboard-header{padding:14px 18px;border-bottom:1px solid var(--line)}.practice-leaderboard-header h2{grid-column:span 2;margin:0;font-size:clamp(1.35rem,3vw,2rem);line-height:1;letter-spacing:-.04em}.practice-leaderboard-header span{color:var(--muted);font-size:.9rem;font-weight:800}.leaderboard-list{display:grid}.leaderboard-row{padding:12px 18px;border-bottom:1px solid var(--line)}.leaderboard-row:last-child{border-bottom:0}.leaderboard-rank,.leaderboard-score{color:var(--accent-strong);font-weight:900}.leaderboard-name{color:var(--ink);font-weight:800}.practice-detail-card{width:100%;display:flex;flex-direction:column;height:calc(100vh - 132px);min-height:520px;padding-inline:clamp(16px,1.75vw,24px);overflow:hidden}.practice-detail-header{display:flex;justify-content:space-between;gap:clamp(14px,2vw,28px);align-items:center;flex-wrap:wrap;padding-bottom:12px;border-bottom:1px solid var(--line)}.practice-detail-heading{display:flex;align-items:center;flex-wrap:wrap;gap:10px 14px;min-width:0}.practice-detail-header h1{margin:0;font-size:clamp(1.15rem,2vw,1.6rem);line-height:1.15;letter-spacing:-.02em}.difficulty-badge{padding:4px 10px;border:1px solid;border-radius:999px;font-size:.78rem;font-weight:800;letter-spacing:.02em;text-transform:uppercase}.difficulty-badge.easy{color:var(--accent-strong)}.difficulty-badge.medium{color:var(--difficulty-medium)}.difficulty-badge.hard{color:var(--difficulty-hard)}.practice-detail-header .problem-tag-list{margin-top:0;gap:8px}.practice-detail-header .problem-tag-list span{padding:4px 8px;border-left-width:3px;font-size:.78rem}.practice-detail-actions{display:flex;flex-wrap:wrap;gap:14px;justify-content:flex-end;align-items:center}.contest-problem-nav{display:flex;flex-wrap:wrap;gap:6px}.contest-problem-nav a{display:inline-flex;align-items:center;justify-content:center;min-width:32px;padding:4px 10px;border:1px solid var(--line);background:var(--surface);color:var(--muted);font-weight:800;font-size:.85rem}.contest-problem-nav a:hover{color:var(--accent);border-color:var(--accent)}.contest-problem-nav a.is-active{border-color:var(--accent);border-left-width:3px;color:var(--accent-strong);background:var(--surface-strong,var(--surface))}.practice-contest-meta{display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px;padding-top:8px;font-size:.82rem;color:var(--muted)}.practice-contest-meta a{color:var(--accent-strong);font-weight:600}.practice-workspace{display:flex;align-items:stretch;flex:1 1;min-height:0}.practice-prompt-pane,.practice-submit-pane{min-width:0;min-height:0;padding-top:16px;overscroll-behavior:contain}.practice-prompt-pane{flex:var(--left,1) 1 0;display:flex;flex-direction:column;overflow-y:auto}.practice-submit-pane{flex:var(--right,1) 1 0;display:flex;flex-direction:column;overflow:hidden;padding-left:clamp(12px,1.5vw,20px)}.practice-divider{flex:0 0 5px;align-self:stretch;margin:0 clamp(4px,.5vw,8px);border-left:1px solid var(--line);border-right:1px solid var(--line);background:transparent;cursor:col-resize;touch-action:none}.practice-divider:hover,body.is-resizing-panes .practice-divider{border-color:var(--accent);background:var(--surface-hover)}body.is-resizing-panes{cursor:col-resize;-webkit-user-select:none;-moz-user-select:none;user-select:none}.practice-tabs{display:flex;gap:4px;margin-bottom:16px;border-bottom:1px solid var(--line)}.practice-tab{padding:8px 4px;margin-bottom:-1px;border:0;border-bottom:2px solid transparent;background:transparent;color:var(--muted);font-family:var(--font-main);font-size:.92rem;font-weight:800;letter-spacing:.02em;cursor:pointer}.practice-tab+.practice-tab{margin-left:18px}.practice-tab:hover{color:var(--ink)}.practice-tab.is-active{color:var(--ink);border-bottom-color:var(--accent)}.practice-prompt-pane .problem-statement{margin-top:0;max-width:none}.practice-submit-pane>.problem-section{margin-top:0}.editor-form{gap:18px}.editor-form,.editor-form .code-editor-shell{display:flex;flex:1 1;flex-direction:column;min-height:0}.editor-form .code-editor-body{display:flex;flex:1 1;min-height:0}.editor-form .code-editor-body .cm-theme{flex:1 1;min-width:0}.editor-form .code-editor-body .cm-editor{height:100%}.editor-actions{display:flex;flex-wrap:wrap;gap:12px;align-items:center}.editor-actions .button,.editor-actions .secondary-button{flex:1 1 auto}.submission-note{font-style:italic;opacity:.75}.practice-workspace .problem-section h2{font-size:clamp(1.2rem,2vw,1.7rem);letter-spacing:-.03em}.problem-section,.problem-statement{margin-top:28px}.problem-readonly{-moz-user-select:none;user-select:none;-webkit-user-select:none}.problem-statement{max-width:760px;color:var(--muted);font-size:1.12rem;line-height:1.65;white-space:pre-wrap}.problem-section h2{margin:0 0 14px;font-size:clamp(1.45rem,3vw,2.25rem);line-height:1;letter-spacing:-.04em}.reference-solution{max-height:420px;overflow:auto;padding:16px;border:1px solid var(--line);border-radius:12px;background:#1d1f1d;color:#f3f3ec;font-size:.85rem;line-height:1.5}.sample-list,.submission-list{display:grid;grid-gap:14px;gap:14px}.sample-card,.submission-entry{padding:16px;border:1px solid var(--line);background:var(--surface)}.sample-card h3{margin:0 0 12px}.sample-card label{display:grid;grid-gap:8px;gap:8px;margin-top:12px;color:var(--ink);font-weight:800}.problem-section pre,.sample-card pre{overflow-x:auto;margin:0;padding:12px;border:1px solid var(--line);background:var(--paper);color:var(--ink);font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:.95rem;line-height:1.5;white-space:pre-wrap}.submission-row{display:grid;grid-template-columns:1fr repeat(3,auto);grid-gap:14px;gap:14px;color:var(--muted)}.submission-details{display:grid;grid-gap:12px;gap:12px}.submission-details summary{cursor:pointer;list-style:none}.submission-details summary::-webkit-details-marker{display:none}.submission-details summary .verdict-label{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}.submission-failure-message{max-height:220px;overflow:auto;margin:0;padding:12px;border:1px solid rgba(180,35,24,.28);background:rgba(18,11,11,.65);color:var(--ink);font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:.86rem;line-height:1.5;white-space:pre-wrap}.submission-row .verdict-label{color:var(--ink)}.submission-entry.verdict-success{border-color:rgba(23,208,89,.45);background:var(--surface-hover)}.submission-entry.verdict-success .verdict-label{color:var(--accent-strong)}.submission-entry.verdict-warning{border-color:rgba(214,153,0,.45);background:var(--surface-warning)}.submission-entry.verdict-warning .verdict-label{color:var(--warning-ink)}.submission-entry.verdict-error{border-color:rgba(180,35,24,.38);background:var(--surface-error)}.submission-entry.verdict-error .verdict-label{color:var(--error-ink)}.code-editor-shell{overflow:hidden;border:1px solid var(--ink);background:#1f232a}.code-editor-toolbar{display:flex;justify-content:space-between;gap:12px;padding:10px 12px;border-bottom:1px solid hsla(0,0%,100%,.12);background:#14181f;color:#d8dee9;font-size:.82rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase}.code-editor-toolbar-actions{display:flex;align-items:center;gap:16px}.code-editor-toolbar-actions button{padding:0;border:0;background:transparent;color:inherit;cursor:pointer;font:inherit;letter-spacing:inherit;text-transform:inherit}.code-editor-toolbar-actions button:hover:not(:disabled){color:#fff}.code-editor-toolbar-actions button:disabled{cursor:not-allowed;opacity:.5}.code-editor-shell .cm-editor{font-size:.95rem}.code-editor-shell .cm-content,.code-editor-shell .cm-scroller{font-family:SFMono-Regular,Consolas,Liberation Mono,monospace}.running-submission{border-color:rgba(214,153,0,.45);background:var(--surface-warning)}.submission-spinner{width:18px;height:18px;border:2px solid rgba(214,153,0,.25);border-top:2px solid var(--warning-ink);border-radius:999px;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}.app-card .inline-form{margin:0}.feedback-button{position:fixed;right:18px;bottom:18px;z-index:30;width:44px;height:44px;border:2px solid var(--ink);border-radius:999px;background:var(--accent);box-shadow:4px 4px 0 var(--shadow);color:var(--ink);font:800 .95rem/1 var(--font-main);cursor:pointer}.feedback-button:hover{transform:translate(1px,1px);box-shadow:3px 3px 0 var(--shadow)}.feedback-backdrop{position:fixed;inset:0;z-index:40;display:grid;place-items:end;padding:20px;background:rgba(23,26,23,.18)}.feedback-panel{width:min(100%,460px);max-height:calc(100dvh - 40px);overflow-y:auto;padding:22px;border:2px solid var(--ink);background:var(--paper);box-shadow:8px 8px 0 var(--shadow)}.feedback-actions,.feedback-panel-header{display:flex;align-items:center;justify-content:space-between;gap:14px}.feedback-panel h2{margin:0;font-size:2rem;letter-spacing:-.04em}.feedback-close{border:0;background:transparent;color:var(--muted);font:inherit;font-weight:800;cursor:pointer}.feedback-message,.feedback-meta{color:var(--muted);line-height:1.45}.feedback-meta span{color:var(--ink);font-weight:800}.feedback-label{display:block;margin-bottom:8px;font-weight:800}.feedback-panel textarea{width:100%;min-height:128px;resize:vertical;padding:12px;border:1px solid var(--line);background:var(--surface);color:var(--ink);font:inherit}.feedback-actions{flex-wrap:wrap;position:-webkit-sticky;position:sticky;bottom:-22px;margin-top:18px;padding-top:14px;padding-bottom:2px;background:var(--paper)}.member-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));grid-gap:16px;gap:16px}.member-batch-groups,.member-grid{margin-top:32px}.member-batch-group+.member-batch-group{margin-top:40px}.member-batch-heading{margin:0;padding-bottom:8px;border-bottom:1px solid var(--line);font-size:1.1rem}.member-batch-group .member-grid{margin-top:16px}.member-card,.member-panel,.member-profile-card,.member-profile-side{border:1px solid var(--line);background:var(--surface)}.member-card,.member-card-profile{display:grid;grid-gap:14px;gap:14px}.member-card{padding:18px;border:2px solid var(--ink);box-shadow:6px 6px 0 var(--shadow);transition:transform .15s ease,box-shadow .15s ease}.member-card:hover{transform:translate(-2px,-2px);box-shadow:8px 8px 0 var(--shadow)}.member-card.medal-gold{outline:2px solid #d4af37;outline-offset:-2px;background:#fff3b0}.member-card.medal-silver{outline:2px solid silver;outline-offset:-2px;background:#f1f5f9}.member-card.medal-bronze{outline:2px solid #cd7f32;outline-offset:-2px;background:#ffe0c2}.member-card small,.member-card strong{display:block}.member-badge small,.member-badge-admin-row small,.member-card small,.member-facts dt{color:var(--muted);font-size:.9rem;font-weight:800}.member-avatar,.member-profile-photo{display:inline-grid;place-items:center;overflow:hidden;border:2px solid var(--ink);background:var(--accent);color:var(--ink);font-weight:900;object-fit:cover}.member-avatar{width:72px;height:72px;border-radius:24px;font-size:1.35rem}.member-avatar.medal-gold,.member-profile-photo.medal-gold{border-color:#d4af37;box-shadow:0 0 0 4px gold}.member-avatar.medal-silver,.member-profile-photo.medal-silver{border-color:#9ca3af;box-shadow:0 0 0 4px silver}.member-avatar.medal-bronze,.member-profile-photo.medal-bronze{border-color:#a05a2c;box-shadow:0 0 0 4px #cd7f32}.member-profile-photo{width:100%;aspect-ratio:1;border-radius:28px;font-size:4rem}.member-profile-page{width:calc(100vw - var(--page-gutter));max-width:none}.member-card-badges,.member-chip-list,.member-link-list{display:flex;flex-wrap:wrap;gap:8px}.dashboard-admin-links{margin-top:28px}.member-card-badges a,.member-chip-list span,.member-link-list a,.member-link-list span{display:inline-grid;place-items:center;padding:7px 10px;border:1px solid var(--line);background:var(--paper);font-weight:800}.member-card-badges a{position:relative;min-width:34px;height:34px;padding:0;border-radius:999px;box-shadow:0 3px 0 var(--shadow),0 10px 18px rgba(23,26,23,.16);transition:transform .12s ease,box-shadow .12s ease}.member-card-badges a:focus-visible,.member-card-badges a:hover{transform:translateY(-2px);box-shadow:0 5px 0 var(--shadow),0 14px 24px rgba(23,26,23,.2)}.member-card-badges a:after,.profile-badge-chip:after{position:absolute;left:50%;bottom:calc(100% + 10px);z-index:5;display:none;width:max-content;max-width:220px;padding:8px 10px;border-radius:8px;background:var(--tooltip-bg);color:#fff;content:attr(aria-label);font-size:.8rem;font-weight:900;line-height:1.2;text-align:center;transform:translateX(-50%)}.member-card-badges a:focus-visible:after,.member-card-badges a:hover:after,.profile-badge-chip:focus-visible:after,.profile-badge-chip:hover:after{display:block}.member-card-badges img{width:34px;height:34px;padding:0;border-radius:999px;object-fit:cover}.member-profile-shell{display:grid;grid-template-columns:300px minmax(0,1fr) 300px;grid-gap:18px;gap:18px}.member-panel,.member-profile-card,.member-profile-side{padding:22px}.member-profile-card{align-self:start;display:grid;grid-gap:16px;gap:16px}.member-panel h2,.member-profile-card h1{margin:0;letter-spacing:-.04em}.member-panel p,.member-profile-card p{margin:0;color:var(--muted);line-height:1.6}.member-facts{display:grid;grid-gap:12px;gap:12px;margin:0}.member-facts dd,.member-facts dt{margin:0}.member-badge-admin-list,.member-profile-main,.member-profile-side{display:grid;grid-gap:16px;gap:16px}.member-badge-list{display:grid;grid-template-columns:repeat(2,1fr);grid-gap:18px;gap:18px;margin-top:20px;justify-items:center}.member-badge-admin-row>span{font-size:2rem}.profile-badge-chip,.profile-badge-shell{position:relative;display:inline-grid}.profile-badge-chip{place-items:center;border-radius:999px;box-shadow:0 5px 0 var(--shadow),0 16px 26px rgba(23,26,23,.2);transition:transform .12s ease,box-shadow .12s ease}.profile-badge-chip:focus-visible,.profile-badge-chip:hover{transform:translateY(-3px) rotate(-2deg);box-shadow:0 8px 0 var(--shadow),0 22px 32px rgba(23,26,23,.24)}.badge-admin-thumb,.member-badge-image{display:inline-grid;place-items:center;width:48px;height:48px;border:1px solid var(--line);border-radius:999px;background:var(--paper);color:var(--muted);font-size:.65rem;font-weight:900;text-transform:uppercase;object-fit:cover}.profile-badge-chip .member-badge-image{width:84px;height:84px}.profile-badge-edit-link{position:absolute;inset:0;z-index:3;display:inline-grid;place-items:center;border-radius:999px;background:rgba(23,26,23,.72);color:#fff;font-size:.78rem;font-weight:900;opacity:0;pointer-events:none;transition:opacity .12s ease}.profile-badge-edit-link:focus-visible,.profile-badge-shell:hover .profile-badge-edit-link{opacity:1;pointer-events:auto}.profile-badge-remove-form{position:absolute;top:-8px;right:-8px;z-index:4;margin:0}.profile-badge-remove-form button{display:inline-grid;place-items:center;width:22px;height:22px;padding:0;border:2px solid var(--ink);border-radius:999px;background:var(--paper);color:var(--ink);font:900 .9rem/1 var(--font-main);cursor:pointer}.profile-badge-remove-form button:focus-visible,.profile-badge-remove-form button:hover{background:var(--accent)}.member-badge-admin-actions{position:relative;z-index:2;display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-bottom:14px}.member-badge-form{position:relative;z-index:2;padding:14px;border:1px solid var(--line);background:var(--paper)}.member-badge-form select{width:100%;min-width:0;height:44px;padding:0 12px;overflow:hidden;border:1px solid var(--line);background:var(--surface);color:var(--ink);font:inherit;font-weight:800;text-overflow:ellipsis}.member-badge form,.member-badge-admin-row form,.member-badge-form{margin-top:0}.member-badge-admin-list{margin-top:28px}.member-badge-admin-row{display:grid;grid-template-columns:auto 1fr auto auto;grid-gap:14px;gap:14px;align-items:center;padding:16px;border:1px solid var(--line);background:var(--surface)}.member-badge-admin-row small,.member-badge-admin-row strong{display:block}.member-edit-preview{display:flex;gap:14px;align-items:center;margin:24px 0;color:var(--muted);font-weight:800}.badge-group-hero{display:grid;grid-template-columns:180px minmax(0,1fr);grid-gap:28px;gap:28px;align-items:center;padding:clamp(24px,4vw,48px);border:1px solid var(--line);background:var(--surface)}.badge-group-hero h1{margin:0;font-size:clamp(2.4rem,5vw,4.5rem);line-height:1;letter-spacing:-.06em}.badge-group-hero p{max-width:760px;color:var(--muted);font-size:1.15rem;line-height:1.6}.badge-group-image{display:inline-grid;place-items:center;width:180px;height:180px;border:2px solid var(--ink);border-radius:40px;background:var(--accent);color:var(--ink);font-size:1.1rem;font-weight:900;text-transform:uppercase;object-fit:cover}.modal-backdrop{position:fixed;inset:0;z-index:50;display:none;place-items:center;padding:20px;background:rgba(23,26,23,.55)}.modal-backdrop:target{display:grid}.badge-create-modal{position:relative;width:min(100%,430px);max-height:calc(100vh - 40px);overflow:auto;padding:24px;border-radius:16px;border:1px solid var(--line);background:var(--surface);color:var(--ink);box-shadow:0 24px 80px rgba(0,0,0,.28)}.badge-create-modal h2{margin:0 0 20px;font-size:1.55rem;letter-spacing:-.04em}.modal-close{position:absolute;top:18px;right:20px;color:var(--ink);font-size:1.35rem;font-weight:900}.badge-upload-row{display:grid;grid-template-columns:76px 1fr;grid-gap:14px;gap:14px;align-items:center;padding:12px;border:1px solid var(--line);background:var(--surface-muted)}.badge-upload-icon{display:inline-grid;place-items:center;width:60px;height:60px;border-radius:999px;background:var(--surface-muted);color:var(--ink);font-size:1.5rem;font-weight:900}.badge-upload-row input{grid-column:1/-1}.badge-create-modal small,.badge-upload-row small,.badge-upload-row strong{display:block}.modal-actions{display:flex;justify-content:flex-end;gap:14px;align-items:center;margin-top:10px}.badge-group-members{margin-top:18px}.badge-admin-layout{display:grid;grid-template-columns:minmax(280px,420px) minmax(0,1fr);grid-gap:24px;gap:24px;margin-top:28px}.form-label{font-weight:800}.badge-member-picker{display:grid;max-height:360px;overflow:auto;border:1px solid var(--line);background:var(--surface)}.badge-member-picker label{display:grid;grid-template-columns:auto 1fr;grid-gap:10px;gap:10px;align-items:center;padding:10px 12px;border-bottom:1px solid var(--line);cursor:pointer}.badge-member-picker label:last-child{border-bottom:0}.badge-member-picker label:hover{background:var(--surface-hover)}.badge-member-picker input{width:18px;height:18px}.badge-member-picker small,.badge-member-picker strong{display:block}.badge-member-picker small{color:var(--muted);font-weight:800}@media (max-width:720px){.hero-actions,.site-footer,.site-header{align-items:flex-start;flex-direction:column}.nav-links{gap:16px}.auth-actions-list,.hero-actions{align-items:stretch}.auth-actions-list a,.auth-actions-list button,.auth-actions-list form,.auth-actions-list>*{width:100%}.hero{min-height:auto;padding:64px 0 72px}.about-section,.application-row,.badge-admin-layout,.badge-group-hero,.event-card,.event-card.has-event-image,.event-detail-meta,.member-badge-admin-row,.member-profile-shell,.pillar-list,.problem-row,.teaching-artifact-row,.teaching-board-row,.teaching-session-row{grid-template-columns:1fr}.event-card{gap:18px}.member-profile-photo{max-width:220px}.problem-row{gap:8px}.practice-detail-actions{justify-content:flex-start}.practice-detail-card{height:auto;min-height:0;overflow:visible}.practice-workspace{flex-direction:column;min-height:0}.practice-divider{display:none}.practice-prompt-pane,.practice-submit-pane{flex:1 1 auto;min-height:0;overflow:visible}.practice-submit-pane{padding-left:0;padding-top:24px;border-left:0;border-top:1px solid var(--line)}.editor-form .code-editor-body{flex:none;height:420px}.problem-row-meta{justify-content:space-between;white-space:normal}.submission-row{grid-template-columns:1fr}.teaching-artifact-row button,.teaching-artifact-row form,.teaching-board-row a,.teaching-board-row button,.teaching-board-row form,.teaching-board-row>*{width:100%}.teaching-artifact-row button,.teaching-board-row a{display:inline-flex;justify-content:center}.excalidraw-canvas-shell{height:68vh;min-height:420px}.event-image{width:100%;height:auto;max-height:280px;min-height:0;object-fit:contain}.event-actions,.event-detail-actions,.review-actions{align-items:stretch;flex-direction:column}.event-actions,.event-actions a,.event-actions button,.event-actions form,.event-actions>*,.event-detail-actions,.event-detail-actions a,.event-detail-actions button,.event-detail-actions form,.event-detail-actions>*,.review-actions button{width:100%}.event-actions a,.event-detail-actions a{display:inline-flex;align-items:center;justify-content:center;min-height:44px}.section{padding:56px 0}}@media (max-width:480px){.app-shell,.auth-shell,.site-shell,.wide-card{width:min(calc(100% - 24px),1080px)}.site-header{gap:18px;padding:22px 0}.nav-links{gap:12px 16px;font-size:.92rem}.hero{padding:52px 0 60px}.hero h1{font-size:clamp(2.2rem,13vw,3.2rem);letter-spacing:-.05em}.app-card p,.auth-card p,.hero-copy,.section-copy{font-size:1.02rem}.section{padding:44px 0}.app-card h1,.auth-card h1,.section h2{font-size:clamp(1.85rem,10vw,2.8rem);letter-spacing:-.045em}.app-card,.auth-card{padding:24px}.event-card{padding:16px}.event-card h2{font-size:clamp(1.55rem,9vw,2rem);letter-spacing:-.035em}.event-summary-meta{align-items:stretch;flex-direction:column}.event-summary-meta span{width:100%}.feedback-backdrop{place-items:end center;padding:12px}.feedback-panel{padding:18px}.feedback-actions .button,.feedback-actions .secondary-button{width:100%}}.resource-image-link{background:var(--surface-muted)}.resource-card h2 a,.resource-category-tag{text-decoration:none}.resource-card h2 a{color:var(--ink)}.resource-card-actions{padding:0 20px 20px}.resource-card-actions .secondary-button{width:100%}.category-card-link{display:block}.category-card-link .pillar{min-height:108px;display:flex;align-items:center;padding:20px;background:var(--surface);border:1px solid var(--line);border-top:4px solid var(--accent);transition:transform .15s ease,box-shadow .15s ease}.category-card-link:hover .pillar{transform:translate(-2px,-2px);box-shadow:4px 4px 0 var(--shadow)}.category-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));grid-gap:16px;gap:16px;margin-top:24px}.resource-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));grid-gap:24px;gap:24px;margin-top:24px}.resource-card{display:flex;flex-direction:column;border:1px solid var(--line);background:var(--surface);padding:0;overflow:hidden;height:100%;transition:transform .15s ease,box-shadow .15s ease}.resource-card:hover{transform:translate(-2px,-2px);box-shadow:4px 4px 0 var(--shadow)}.resource-image-link{display:block;width:100%;border-bottom:1px solid var(--line);background:var(--paper);overflow:hidden}.resource-image{display:block;width:100%;height:240px;object-fit:cover}.resource-card-content{padding:20px;flex-grow:1;display:flex;flex-direction:column}.resource-meta-tags{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:12px}.resource-category-tag{font-size:.75rem;font-weight:800;text-transform:uppercase;color:var(--accent);letter-spacing:.05em}.resource-category-tag:hover{text-decoration:underline}.resource-type-badge{display:inline-block;padding:3px 8px;font-size:.7rem;font-weight:800;text-transform:uppercase;border:1px solid var(--line);background:var(--paper);color:var(--muted)}.resource-card h2{margin:0 0 6px;font-size:clamp(1.25rem,2.5vw,1.55rem);line-height:1.2;letter-spacing:-.03em}.resource-card h2 a:hover{color:var(--accent)}.resource-author{font-size:.9rem;color:var(--muted);margin:0 0 16px}@media (max-width:720px){.categories-layout-grid{grid-template-columns:1fr!important;gap:24px!important}}.chat-page{width:min(1180px,calc(100% - 32px));min-height:calc(100vh - 112px);margin:0 auto;padding:24px 0}.chat-page+.feedback-button{display:none}.chat-workspace{display:grid;grid-template-columns:minmax(260px,340px) minmax(0,1fr);height:min(760px,calc(100vh - 136px));min-height:560px;border:2px solid var(--ink);background:var(--surface);box-shadow:7px 7px 0 var(--shadow);overflow:hidden}.chat-sidebar{position:relative;display:flex;min-width:0;flex-direction:column;border-right:1px solid var(--line);background:var(--paper)}.chat-sidebar-header,.chat-thread-header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px;border-bottom:1px solid var(--line)}.chat-sidebar-header h1,.chat-thread-header h2{margin:0;font-size:1.45rem;line-height:1.1;letter-spacing:0}.chat-sidebar-header .section-label,.chat-thread-header p{margin:0 0 4px;color:var(--muted);font-size:.78rem}.chat-connection{padding:4px 8px;border:1px solid var(--line);color:var(--muted);font-family:var(--font-main);font-size:.72rem;font-weight:800}.chat-connection.is-live{border-color:var(--accent);color:var(--ink)}.chat-new-actions{display:grid;grid-template-columns:1fr 1fr;grid-gap:8px;gap:8px;padding:12px;border-bottom:1px solid var(--line)}.chat-back,.chat-compose-actions button,.chat-new-actions button{min-height:36px;border:1px solid var(--line);background:var(--surface);color:var(--ink);font-family:var(--font-main);font-weight:800;cursor:pointer}.chat-compose-panel{position:absolute;z-index:4;top:143px;right:12px;left:12px;display:grid;grid-gap:10px;gap:10px;max-height:calc(100% - 156px);padding:16px;overflow-y:auto;border:1px solid var(--ink);background:var(--paper);box-shadow:5px 5px 0 var(--shadow)}.chat-compose-panel input,.chat-compose-panel select,.chat-send-form textarea{width:100%;border:1px solid var(--line);background:var(--surface);color:var(--ink);font:inherit}.chat-compose-panel input,.chat-compose-panel select{min-height:42px;padding:8px 10px}.chat-member-picker{max-height:min(220px,calc(100vh - 390px));overflow:auto;border:1px solid var(--line)}.chat-member-picker label{display:flex;gap:8px;align-items:center;min-height:42px;padding:8px 10px;border-bottom:1px solid var(--line);cursor:pointer}.chat-member-picker label:last-child{border-bottom:0}.chat-member-picker label:hover{background:var(--surface-hover)}.chat-member-picker input{width:18px;height:18px;min-height:18px;flex:0 0 18px;margin:0;accent-color:var(--accent)}.chat-compose-actions{display:flex;justify-content:flex-end;gap:8px}.chat-compose-actions .button{min-height:38px;padding:0 14px;box-shadow:3px 3px 0 var(--shadow)}.chat-conversation-list,.chat-message-list{min-height:0;overflow-y:auto;overscroll-behavior:contain}.chat-conversation-list>button{width:100%;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;border:0;border-bottom:1px solid var(--line);background:transparent;color:var(--ink);text-align:left;cursor:pointer}.chat-conversation-list>button.is-active,.chat-conversation-list>button:hover{background:var(--surface-hover)}.chat-conversation-list>button.is-active{box-shadow:inset 4px 0 0 var(--accent)}.chat-conversation-copy{min-width:0}.chat-conversation-copy small,.chat-conversation-copy strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-conversation-copy small{margin-top:4px;color:var(--muted)}.chat-unread-badge{min-width:22px;height:22px;display:inline-grid;place-items:center;padding:0 6px;background:var(--accent);border:1px solid var(--ink);font-size:.72rem;font-weight:900}.chat-thread{min-width:0;display:grid;grid-template-rows:auto minmax(0,1fr) auto auto;background:var(--surface)}.chat-back{display:none}.chat-message-list{display:flex;flex-direction:column;gap:10px;padding:20px}.chat-message{width:min(76%,620px);align-self:flex-start;padding:11px 13px;border:1px solid var(--line);background:var(--paper)}.chat-message.is-own{align-self:flex-end;border-color:var(--accent);background:var(--surface-hover)}.chat-message-meta{display:flex;justify-content:space-between;gap:14px;color:var(--muted);font-size:.75rem}.chat-message p{margin:7px 0 0;color:var(--ink);line-height:1.45;overflow-wrap:anywhere;white-space:pre-wrap}.chat-message small{display:block;margin-top:5px;color:var(--muted)}.chat-form-error,.chat-message-error{color:var(--danger,#b42318)!important}.chat-send-form{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;grid-gap:10px;gap:10px;padding:14px;border-top:1px solid var(--line)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.chat-send-form textarea{min-height:48px;max-height:150px;padding:10px 12px;resize:vertical}.chat-send-form .button{min-height:48px;padding:0 18px;box-shadow:3px 3px 0 var(--shadow)}.chat-empty-copy,.chat-form-error{margin:0;padding:0 14px 12px;font-size:.85rem}.chat-thread-empty{align-self:center;justify-self:center;padding:24px;color:var(--muted);text-align:center}.chat-thread-empty strong{color:var(--ink)}.chat-thread-empty p{margin:8px 0 0}@media (max-width:720px){.chat-page{width:100%;height:calc(100dvh - 184px);min-height:0;padding:0}.chat-workspace{display:block;height:100%;min-height:0;border-right:0;border-left:0;box-shadow:none}.chat-sidebar,.chat-thread{height:100%}.chat-sidebar.has-selection,.chat-thread:not(.is-open){display:none}.chat-thread.is-open{display:grid}.chat-back{display:inline-flex;align-items:center;padding:0 10px}.chat-thread-header{justify-content:flex-start}.chat-message{width:88%}.chat-compose-panel{top:143px;max-height:calc(100% - 156px)}.chat-member-picker{max-height:min(280px,calc(100dvh - 440px))}.chat-send-form{grid-template-columns:minmax(0,1fr) auto;padding:10px}.chat-send-form .button{min-width:72px;padding:0 12px}}.portal-section{margin-top:40px}.portal-section h2{margin:0 0 16px;font-size:1.5rem;line-height:1.1;letter-spacing:-.03em}.app-card .muted-line{margin:0;color:var(--muted);font-family:var(--font-main);font-size:.95rem;line-height:1.5}.form-row{align-items:center;gap:12px}.filter-tabs,.form-row{display:flex;flex-wrap:wrap}.filter-tabs{gap:10px;margin:24px 0}.filter-tab{padding:8px 14px;border:2px solid var(--ink);background:var(--paper);color:var(--ink);font-family:var(--font-main);font-size:.85rem;font-weight:800}.filter-tab.is-active{background:var(--accent)}.filter-tab:hover{transform:translate(1px,1px)}.question-list{display:grid;grid-gap:12px;gap:12px;margin-bottom:16px}.question-row{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin:0;padding:12px;border:1px solid var(--line);background:var(--surface)}.question-row.add-question{border-style:dashed}.question-row input[name=label]{flex:1 1 240px;min-width:0;padding:10px 12px;border:1px solid var(--line);background:var(--surface);color:var(--ink);font:inherit}.inline-check{display:inline-flex;align-items:center;gap:6px;font-family:var(--font-main);font-size:.9rem;font-weight:700;white-space:nowrap}.question-actions{display:flex;align-items:center;gap:6px}.icon-button{min-height:38px;min-width:38px;padding:0 10px;border:2px solid var(--ink);background:var(--paper);color:var(--ink);font-family:var(--font-main);font-weight:800;line-height:1;cursor:pointer}.icon-button:hover:not(:disabled){background:var(--accent)}.icon-button:disabled{opacity:.4;cursor:not-allowed}.icon-button.danger:hover:not(:disabled){background:var(--surface-error);border-color:var(--error-ink)}.practice-landing-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));grid-gap:24px;gap:24px;margin-top:32px}.practice-landing-card{display:flex;flex-direction:column;gap:10px;padding:24px;border:2px solid var(--ink);background:var(--surface);color:var(--ink);box-shadow:6px 6px 0 var(--shadow);transition:transform .15s ease,box-shadow .15s ease}.practice-landing-card:hover{transform:translate(-2px,-2px);box-shadow:8px 8px 0 var(--shadow)}.practice-landing-card h2{margin:0;font-size:1.5rem;letter-spacing:-.03em}.practice-landing-card p{margin:0;color:var(--muted)}.practice-landing-meta{margin-top:auto;font-size:.85rem;font-weight:800;color:var(--accent)}.board-create-form{display:flex;flex-wrap:wrap;gap:12px;margin:20px 0 8px}.board-create-form input{flex:1 1 280px;padding:10px 12px;border:1px solid var(--line);background:var(--surface);color:var(--ink);font:inherit}.board-gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));grid-gap:16px;gap:16px;margin-top:24px}.board-gallery-card{display:flex;flex-direction:column;gap:6px;padding:18px;border:1px solid var(--line);background:var(--surface);color:var(--ink);transition:transform .15s ease,box-shadow .15s ease}.board-gallery-card:hover{transform:translate(-2px,-2px);box-shadow:4px 4px 0 var(--shadow)}.board-gallery-card h2{margin:0;font-size:1.15rem;letter-spacing:-.02em}.board-gallery-owner{font-size:.9rem;color:var(--muted)}.board-gallery-date{font-size:.8rem;color:var(--muted)}.board-owner-actions{display:flex;flex-wrap:wrap;gap:12px;margin:16px 0}.board-rename-form{display:flex;gap:8px}.board-rename-form input{padding:8px 10px;border:1px solid var(--line);background:var(--surface);color:var(--ink);font:inherit}