:root,[data-theme=legacy]{--bg:#f4f7ff;--bg-grain:transparent;--surface:#ffffff;--surface-soft:#eef3ff;--surface-2:#eef3ff;--border:#e3eaf8;--line:#e3eaf8;--text:#1a2b4a;--ink-soft:#4a5a7a;--ink-mute:#7b8aa8;--muted:#7b8aa8;--brand:#2f6bff;--brand-soft:#dce6ff;--brand-deep:#1e4fd6;--primary:#2f6bff;--primary-soft:#dce6ff;--primary-deep:#1e4fd6;--accent:#ff6b6b;--accent-soft:#ffe0e0;--accent-orange:#ff9d3d;--accent-orange-soft:#ffe9d2;--accent-green:#2bc48a;--accent-green-soft:#d6f5e6;--accent-red:#ff6b6b;--accent-red-soft:#ffe0e0;--accent-gold:#ffc53d;--accent-yellow-soft:#fff4d2;--warn:#ff9d3d;--warn-soft:#ffe9d2;--ok:#2bc48a;--ok-soft:#d6f5e6;--shadow-card:0 6px 20px rgba(47,107,255,0.08);--shadow-soft:0 2px 8px rgba(26,43,74,0.06);--shadow-md:0 4px 24px rgba(26,43,74,0.06);--radius-card:16px;--radius-pill:999px;--r-sm:8px;--r-md:14px;--r-lg:22px;--r-xl:32px;--font-display:-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans SC","PingFang SC",sans-serif;--font-body:-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans SC","PingFang SC",sans-serif;--font-mono:"JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,monospace;--sidebar-bg:linear-gradient(180deg,#2f6bff,#1e4fd6);--sidebar-fg:#ffffff}[data-theme=paper]{--bg:#f1ead4;--bg-grain:#ece1c0;--surface:#fbf6e6;--surface-soft:#f6efd8;--surface-2:#f6efd8;--border:#d9cfb1;--line:#d9cfb1;--text:#1d1b16;--ink-soft:#5a554a;--ink-mute:#8a8472;--muted:#8a8472;--brand:#2c5749;--brand-soft:#d8e2dc;--brand-deep:#1c3b30;--primary:#2c5749;--primary-soft:#d8e2dc;--primary-deep:#1c3b30;--accent:#c64a37;--accent-soft:#f4dad3;--accent-orange:#c98a1a;--accent-orange-soft:#f3e3bd;--accent-green:#5b8a3a;--accent-green-soft:#dde6c8;--accent-red:#c64a37;--accent-red-soft:#f4dad3;--accent-gold:#c98a1a;--accent-yellow-soft:#f3e3bd;--warn:#c98a1a;--warn-soft:#f3e3bd;--ok:#5b8a3a;--ok-soft:#dde6c8;--shadow-card:0 2px 0 rgba(28,30,24,0.08),0 6px 22px rgba(28,30,24,0.07);--shadow-soft:0 1px 0 rgba(28,30,24,0.06),0 3px 12px rgba(28,30,24,0.05);--shadow-md:0 2px 0 rgba(28,30,24,0.08),0 6px 22px rgba(28,30,24,0.07);--font-display:"Smiley Sans","Noto Serif SC","STKaiti","KaiTi","Songti SC","Noto Sans SC",serif;--font-body:"Noto Sans SC","PingFang SC",-apple-system,sans-serif;--font-mono:"JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,monospace;--sidebar-bg:linear-gradient(180deg,#2c5749,#1c3b30);--sidebar-fg:#f6efd8}*{box-sizing:border-box}body,html{margin:0;padding:0;background:var(--bg);color:var(--text);font-family:var(--font-body)}[data-theme=paper] body{background-color:var(--bg);background-image:radial-gradient(circle at 20% 10%,var(--bg-grain) 0,transparent 40%),radial-gradient(circle at 80% 80%,var(--bg-grain) 0,transparent 50%);background-attachment:fixed}a{color:inherit;text-decoration:none}button{font-family:inherit;cursor:pointer}.tnum{font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1,"tnum"}.font-display{font-family:var(--font-display)}.font-mono{font-family:var(--font-mono)}@keyframes spin{to{transform:rotate(1turn)}}.display-heading{letter-spacing:.5px}.display-heading,.display-stat-num{font-family:var(--font-display);font-weight:900}.display-stat-num{font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1,"tnum";letter-spacing:0;line-height:1}[data-theme=paper] .responsive-h1,[data-theme=paper] .responsive-h2,[data-theme=paper] .task-list-card__title{font-family:var(--font-display);font-weight:900}.paper-grain-card{background-color:var(--surface);background-image:repeating-linear-gradient(0deg,rgba(28,30,24,.018),rgba(28,30,24,.018) 1px,transparent 0,transparent 4px)}[data-theme=legacy] .paper-grain-card{background-image:none}[data-theme=legacy] .paper-only{display:none}@media (max-width:768px){.paper-only{display:none}}.paper-corner-mark{position:absolute;font-family:var(--font-display);font-weight:900;color:var(--text);opacity:.08;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;line-height:1}[data-theme=legacy] .paper-corner-mark{display:none}@media (max-width:768px){.paper-corner-mark{display:none}}@keyframes paper-ink-drip{0%{opacity:0;transform:translateY(-14px);filter:blur(3px)}60%{opacity:1;transform:translateY(4px);filter:blur(0)}to{opacity:1;transform:translateY(0);filter:blur(0)}}@keyframes paper-grid-flow{0%{background-position:0 0}to{background-position:64px 0}}.paper-ink-drip{animation:paper-ink-drip .8s cubic-bezier(.22,1,.36,1) both}[data-theme=legacy] .paper-ink-drip{animation:none}.paper-grid-flow{background-image:repeating-linear-gradient(90deg,rgba(28,30,24,.07),rgba(28,30,24,.07) 1px,transparent 0,transparent 32px);background-size:64px 100%;animation:paper-grid-flow 18s linear infinite}[data-theme=legacy] .paper-grid-flow{background-image:none;animation:none}.paper-grain{background-color:var(--surface);background-image:repeating-linear-gradient(0deg,rgba(28,30,24,.025),rgba(28,30,24,.025) 1px,transparent 0,transparent 3px)}[data-theme=legacy] .paper-grain{background-image:none}.login-shell{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr)}@media (max-width:768px){.login-shell{grid-template-columns:1fr}.login-brand{display:none!important}}.page-narrow{max-width:720px;margin:0 auto;padding:0 1rem}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-card);box-shadow:var(--shadow-soft)}.card-body,.feature-card{padding:1rem 1.25rem}.feature-card{display:flex;align-items:center;gap:1rem;transition:transform .12s ease,box-shadow .12s ease}.feature-card:hover{transform:translateY(-1px);box-shadow:var(--shadow-card)}.feature-icon{font-size:1.6rem}.feature-title{font-weight:700;color:var(--text)}.feature-desc{margin:4px 0 0;color:var(--muted);font-size:.9rem}.feature-arrow{color:var(--muted);font-size:1.6rem}:root,[data-theme=legacy],[data-theme=paper]{--danger-bg:var(--accent-red-soft);--danger-border:var(--accent-red);--danger-text:var(--accent-red);--soft:var(--muted)}.board-header-actions-desktop{flex-shrink:0}.board-header-actions-mobile{display:none}@media (max-width:720px){.board-header-actions-desktop{display:none!important}.board-header-actions-mobile{display:block}}.board-tile-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr 1fr;grid-gap:16px;gap:16px;margin-bottom:1.25rem}@media (max-width:720px){.board-tile-grid{grid-template-columns:1fr 1fr;gap:12px}.board-tile-grid>:first-child{grid-column:1/-1}}.task-list-card{display:flex;align-items:center;gap:1rem;padding:1.5rem 1.75rem;transition:transform .12s ease,box-shadow .12s ease}.task-list-card:hover{transform:translateY(-1px);box-shadow:var(--shadow-card)}.task-list-card__main{display:flex;align-items:center;gap:1.25rem;flex:1 1;min-width:0;text-decoration:none;color:inherit}.task-list-card__title{font-size:1.4rem;display:flex;align-items:center;gap:8px;flex-wrap:wrap;word-break:break-word;line-height:1.3}.task-list-card__actions{display:flex;gap:8px;flex-shrink:0;flex-wrap:wrap}.app-shell{display:flex;min-height:100vh;background:var(--bg)}.app-main{flex:1 1;padding:1.5rem 1.75rem;min-width:0;max-width:1080px;margin-inline:auto}.app-sidebar{width:200px;flex-shrink:0;background:var(--sidebar-bg);color:var(--sidebar-fg);padding:1.25rem .75rem;display:flex;flex-direction:column;gap:4px;min-height:100vh}.app-mobile-topbar,.app-sidebar-backdrop{display:none}.responsive-h1{font-size:2.2rem}.responsive-h2{font-size:1.5rem}.responsive-grid{display:flex;flex-wrap:wrap;gap:1rem}.responsive-grid>*{flex:1 1 280px;min-width:0}.responsive-container{width:min(880px,100%);margin:0 auto}@media (max-width:768px){.app-shell{flex-direction:column}.app-main{padding:calc(56px + env(safe-area-inset-top, 0px)) calc(.75rem + env(safe-area-inset-right, 0px)) calc(.75rem + env(safe-area-inset-bottom, 0px)) calc(.75rem + env(safe-area-inset-left, 0px))}.app-mobile-topbar{display:flex;align-items:center;gap:12px;position:fixed;top:0;left:0;right:0;height:calc(48px + env(safe-area-inset-top, 0px));padding:env(safe-area-inset-top,0) calc(.75rem + env(safe-area-inset-right, 0px)) 0 calc(.75rem + env(safe-area-inset-left, 0px));background:var(--sidebar-bg);color:var(--sidebar-fg);z-index:50;box-shadow:var(--shadow-soft)}.app-mobile-topbar__btn{background:rgba(255,255,255,.18);border:1px solid rgba(255,255,255,.3);color:#fff;border-radius:8px;width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center;font-size:18px;cursor:pointer;padding:0}.app-mobile-topbar__title{font-weight:700;font-size:1rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.app-sidebar{position:fixed;top:0;left:0;bottom:0;width:78%;max-width:280px;z-index:60;transform:translateX(-100%);transition:transform .22s ease;min-height:100vh;overflow-y:auto;padding-top:calc(1.25rem + env(safe-area-inset-top, 0px));padding-bottom:calc(1.25rem + env(safe-area-inset-bottom, 0px));padding-left:calc(.75rem + env(safe-area-inset-left, 0px))}.app-sidebar--open{transform:translateX(0)}.app-sidebar-backdrop{display:block;position:fixed;inset:0;background:rgba(15,23,42,.45);z-index:55;opacity:0;pointer-events:none;transition:opacity .22s ease}.app-sidebar-backdrop--open{opacity:1;pointer-events:auto}.responsive-h1{font-size:clamp(1.35rem,5.6vw,1.7rem)}.responsive-h2{font-size:clamp(1.1rem,4.5vw,1.35rem)}.responsive-grid>*{flex:1 1 100%}.task-list-card{flex-direction:column;align-items:stretch;padding:1rem 1.1rem;gap:.85rem}.task-list-card__main{gap:.75rem}.task-list-card__title{font-size:1.1rem}.task-list-card__actions{justify-content:flex-end}.task-list-card__actions>button{flex:0 0 auto}}@keyframes paper-stage-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.04)}}@keyframes paper-stage-flash{0%{background-color:var(--brand-deep)}to{background-color:var(--brand)}}@keyframes legacy-spotlight{0%{opacity:0;transform:translate(-50%,-50%) scaleX(0) rotate(-8deg)}20%{opacity:1;transform:translate(-50%,-50%) scaleX(1) rotate(-8deg)}to{opacity:0;transform:translate(-50%,-50%) scaleX(1) rotate(-8deg)}}@keyframes legacy-ring-pop{0%{opacity:.55;transform:translate(-50%,-50%) scale(.3)}to{opacity:0;transform:translate(-50%,-50%) scale(2.4)}}@keyframes legacy-confetti{0%{opacity:0;transform:translate(-50%,-50%) rotate(0)}10%{opacity:1}to{opacity:0;transform:translate(calc(-50% + var(--cx)),calc(-50% + var(--cy))) rotate(2turn)}}@keyframes legacy-name-drop{0%{opacity:0;transform:translateY(-90px) rotate(-18deg) scale(.6);filter:blur(6px)}55%{opacity:1;transform:translateY(14px) rotate(2deg) scale(1.06);filter:blur(0)}to{opacity:1;transform:translateY(0) rotate(0) scale(1);filter:blur(0)}}@keyframes legacy-badge-pop{0%{opacity:0;transform:scale(0) rotate(-30deg)}60%{opacity:1;transform:scale(1.15) rotate(4deg)}to{opacity:1;transform:scale(1) rotate(0)}}@keyframes legacy-float{0%,to{transform:translateY(0);opacity:.4}50%{transform:translateY(-40px);opacity:.8}}.legacy-stage{position:relative;height:320px;margin-bottom:20px;border-radius:var(--radius-card);border:1px solid var(--border);background:linear-gradient(135deg,var(--surface) 0,var(--surface-soft) 100%);box-shadow:var(--shadow-card);overflow:hidden;contain:layout paint;display:flex;flex-direction:column;justify-content:space-between;padding:20px 32px}.legacy-stage__ambient{position:absolute;left:var(--x,50%);top:var(--y,50%);width:var(--s,6px);height:var(--s,6px);border-radius:50%;background:var(--c,var(--brand));opacity:.4;pointer-events:none;will-change:transform,opacity;animation:legacy-float var(--d,8s) ease-in-out infinite;animation-delay:var(--delay,0s)}.legacy-stage__center{position:absolute;left:50%;top:50%;pointer-events:none}.legacy-stage__spotlight{width:1100px;height:200px;background:linear-gradient(90deg,transparent,rgba(124,92,255,.18) 35%,rgba(47,107,255,.28) 50%,rgba(124,92,255,.18) 65%,transparent);filter:blur(20px);transform-origin:center;will-change:transform,opacity;animation:legacy-spotlight 1.4s ease-out both}.legacy-stage__ring{width:320px;height:320px;border:4px solid var(--ring-color,#2f6bff);border-radius:50%;will-change:transform,opacity;animation:legacy-ring-pop 1.6s ease-out both;animation-delay:var(--ring-delay,0s)}.legacy-stage__confetti{width:var(--s,10px);height:var(--s,10px);background:var(--c,#2f6bff);border-radius:var(--shape,50%);will-change:transform,opacity;animation:legacy-confetti 1.4s ease-out both;animation-delay:var(--delay,0s)}.legacy-stage__content{position:relative;z-index:3;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;flex:1 1;text-align:center}.legacy-stage__name{display:flex;gap:4px;font-size:clamp(80px,12vw,160px);font-weight:900;line-height:1;letter-spacing:4px;font-family:var(--font-display);background:linear-gradient(180deg,#1c4ed8,#2f6bff 60%,#5b8def);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;filter:drop-shadow(0 8px 24px rgba(47,107,255,.25));margin:0;max-width:100%;flex-wrap:wrap;justify-content:center;transition:font-size .28s ease,letter-spacing .28s ease,filter .28s ease}.legacy-stage__name--speaking{font-size:clamp(100px,15vw,200px);letter-spacing:6px;filter:drop-shadow(0 12px 32px rgba(47,107,255,.4))}.legacy-stage__name-char{display:inline-block;opacity:0;will-change:transform,opacity,filter;animation:legacy-name-drop .7s cubic-bezier(.34,1.56,.64,1) both;animation-delay:calc(.1s + var(--i, 0) * .09s)}.legacy-stage__badges{flex-wrap:wrap;gap:12px;margin-top:8px}.legacy-stage__badge,.legacy-stage__badges{display:inline-flex;align-items:center;justify-content:center}.legacy-stage__badge{min-width:56px;padding:6px 16px;border-radius:var(--radius-pill);background:var(--brand-soft);color:var(--brand-deep);font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1,"tnum";font-weight:700;font-size:1rem;opacity:0;will-change:transform,opacity;animation:legacy-badge-pop .55s cubic-bezier(.34,1.56,.64,1) both}.legacy-stage__badge--hot{background:var(--accent-red-soft);color:var(--accent-red)}.legacy-stage__badges>.legacy-stage__badge:first-child{animation-delay:.55s}.legacy-stage__badges>.legacy-stage__badge:nth-child(2){animation-delay:.7s}.legacy-stage__badges>.legacy-stage__badge:nth-child(3){animation-delay:.85s}.legacy-stage__header{justify-content:space-between;font-size:14px;font-family:var(--font-mono);letter-spacing:1px;color:var(--ink-mute);text-transform:uppercase}.legacy-stage__footer,.legacy-stage__header{display:flex;align-items:center;position:relative;z-index:3}.legacy-stage__footer{justify-content:center;padding-top:8px}.legacy-stage__announce{padding:10px 22px;border-radius:var(--radius-pill);border:none;background:var(--brand);color:#fff;font-weight:700;font-size:15px;font-family:var(--font-display);cursor:pointer;box-shadow:var(--shadow-soft);transition:transform .12s ease;flex-shrink:0}.legacy-stage__announce:hover:not(:disabled){transform:translateY(-1px)}.legacy-stage__announce:disabled{opacity:.4;cursor:not-allowed}.create-task-modal-sheet__grabber,.status-list-modal-sheet__grabber{display:none}@media (max-width:720px){.create-task-modal-backdrop,.status-list-modal-backdrop{align-items:flex-end!important;padding:0!important}.create-task-modal-sheet,.status-list-modal-sheet{width:100%!important;max-width:100%!important;min-width:0!important;border-radius:16px 16px 0 0!important;padding:.75rem 1rem 1rem!important;max-height:85vh!important;box-shadow:0 -6px 24px rgba(0,0,0,.18)!important}.status-list-modal-sheet{max-height:75vh!important}.create-task-modal-sheet__grabber,.status-list-modal-sheet__grabber{display:block;width:36px;height:4px;margin:0 auto 8px;border-radius:999px;background:var(--border)}.task-list-card{flex-direction:row!important;align-items:center!important;padding:.55rem .75rem!important;gap:.6rem!important}.task-list-card__class-block{width:32px!important;height:32px!important;font-size:.9rem!important;border-radius:8px!important}.task-list-card__meta,.task-list-card__progress-mini{display:none!important}.task-list-card__open{padding:6px 10px!important;font-size:.85rem!important;flex-shrink:0}.legacy-stage{height:160px;padding:12px 16px;margin-bottom:12px}.legacy-stage__ambient,.legacy-stage__confetti,.legacy-stage__ring,.legacy-stage__spotlight{display:none!important}.legacy-stage__name{font-size:clamp(48px,14vw,80px);letter-spacing:2px}.legacy-stage__name--speaking{font-size:clamp(64px,17vw,100px);letter-spacing:3px}.legacy-stage__content{gap:8px}.legacy-stage__badges{margin-top:4px;gap:8px}.legacy-stage__badge{min-width:48px;padding:5px 12px;font-size:.95rem}.legacy-stage__footer{padding-top:4px}.status-card{padding:.5rem .7rem!important;min-height:96px}.status-card__icon{font-size:22px!important}.status-card__label{font-size:.85rem!important;margin-top:2px!important}.status-card__num{font-size:2.2rem!important;margin-top:0!important}.status-card__hint{display:none!important}}.chip{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:8px 14px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-pill);box-shadow:var(--shadow-soft);color:var(--text);font-weight:700;font-size:.9rem;white-space:nowrap}.chip--ghost{background:transparent;border:none;box-shadow:none;color:var(--muted)}.chip--icon{width:36px;height:36px;padding:0;border-radius:50%;gap:0;font-size:16px}button.chip:not([disabled]){cursor:pointer}.chip[disabled]{opacity:.5;cursor:not-allowed}