:root{--bg: #fff7fa;--surface: #ffffff;--surface-2: #fdf0f5;--border: #f1dde6;--text: #2a1630;--muted: #8a7390;--accent: #e8326f;--accent-2: #b93ad1;--accent-soft: #ffe3ee;--on-accent: #ffffff;--gold: #e8a00f;--danger: #e5484d;--ok: #14a46c;--shadow: 0 1px 2px rgba(80, 20, 60, .06), 0 6px 20px rgba(80, 20, 60, .07);--radius: 18px;--tabbar-h: 64px;--safe-b: env(safe-area-inset-bottom, 0px);--safe-t: env(safe-area-inset-top, 0px);color-scheme:light}@media(prefers-color-scheme:dark){:root{--bg: #120c18;--surface: #1d1526;--surface-2: #261c31;--border: #33273f;--text: #f6eef8;--muted: #a593ad;--accent: #ff4f8b;--accent-2: #c86cf0;--accent-soft: #3a1a2c;--gold: #fbbf24;--danger: #ff6369;--ok: #34d399;--shadow: 0 1px 2px rgba(0, 0, 0, .3), 0 8px 24px rgba(0, 0, 0, .25);color-scheme:dark}}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--bg);color:var(--text);font:400 16px/1.45 Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;overscroll-behavior-y:none}body.no-scroll{overflow:hidden}button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer;text-align:inherit}button:disabled{cursor:not-allowed;opacity:.5}a{color:var(--accent)}h1,h2,h3{margin:0;line-height:1.2}p{margin:0}:focus-visible{outline:2.5px solid var(--accent);outline-offset:2px;border-radius:10px}.muted{color:var(--muted)}.small{font-size:13.5px}.center{text-align:center}.pad{padding:8px 4px}.grow{flex:1;min-width:0}.danger{color:var(--danger)!important}.row{display:flex;gap:10px;align-items:center}.row.between{justify-content:space-between}.gap-sm{gap:6px;flex-wrap:wrap}.stack{display:flex;flex-direction:column;gap:18px}.stack-sm{display:flex;flex-direction:column;gap:10px}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:10px}.brand{font-family:Fraunces,Georgia,serif;font-weight:700;letter-spacing:-.01em;background:linear-gradient(90deg,var(--accent),var(--accent-2));-webkit-background-clip:text;background-clip:text;color:transparent}.brand.big{font-size:40px}.app{min-height:100dvh;max-width:600px;margin:0 auto}.topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:10px;padding:calc(var(--safe-t) + 8px) 16px 8px;min-height:calc(var(--safe-t) + 60px);background:color-mix(in srgb,var(--bg) 88%,transparent);backdrop-filter:saturate(1.4) blur(16px);-webkit-backdrop-filter:saturate(1.4) blur(16px)}.topbar-title{flex:1;min-width:0;display:flex;flex-direction:column;font-size:22px;font-weight:700}.topbar-title .brand{font-size:26px}.topbar-sub{font-size:13px;font-weight:500;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.avatar-btn{border-radius:50%}.avatar{display:inline-grid;place-items:center;width:40px;height:40px;border-radius:50%;background:var(--surface-2);font-size:22px;flex:none}.avatar.sm{width:32px;height:32px;font-size:17px}.avatar.lg{width:56px;height:56px;font-size:32px;background:var(--surface)}.avatar.xl{width:84px;height:84px;font-size:48px}.content{padding:4px 16px calc(var(--tabbar-h) + var(--safe-b) + 96px)}.content.no-tabbar{padding-bottom:calc(var(--safe-b) + 32px)}.tabbar{position:fixed;left:0;right:0;bottom:0;z-index:30;display:flex;justify-content:center;padding:6px 8px calc(var(--safe-b) + 6px);background:color-mix(in srgb,var(--surface) 92%,transparent);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);border-top:1px solid var(--border)}.tab{flex:1;max-width:110px;min-height:52px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;color:var(--muted);border-radius:14px}.tab-icon{display:grid;place-items:center;width:54px;height:30px;border-radius:999px;transition:background .2s}.tab-label{font-size:11.5px;font-weight:600}.tab.on{color:var(--accent)}.tab.on .tab-icon{background:var(--accent-soft)}.splash{min-height:100dvh;display:grid;place-content:center;justify-items:center;gap:20px}.splash-logo{font-size:56px;animation:beat 1.2s ease-in-out infinite}@keyframes beat{0%,to{transform:scale(1)}30%{transform:scale(1.15)}}.spinner{width:26px;height:26px;border-radius:50%;border:3px solid var(--border);border-top-color:var(--accent);animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:46px;padding:0 18px;border-radius:14px;font-weight:600;font-size:15.5px;text-decoration:none;white-space:nowrap;transition:transform .1s,filter .15s}.btn:active:not(:disabled){transform:scale(.97)}.btn-primary{background:linear-gradient(135deg,var(--accent),color-mix(in srgb,var(--accent) 70%,var(--accent-2)));color:var(--on-accent);box-shadow:0 4px 14px color-mix(in srgb,var(--accent) 30%,transparent)}.btn-secondary{background:var(--accent-soft);color:var(--accent)}.btn-ghost{background:var(--surface-2);color:var(--text)}.btn-danger{background:var(--danger);color:#fff}.btn-gold{background:linear-gradient(135deg,#fbbf24,#f59e0b);color:#2a1a00}.btn-sm{min-height:36px;padding:0 12px;font-size:14px;border-radius:11px}.btn-lg{min-height:54px;font-size:17px}.btn-block{width:100%}.btn-icon{padding:0;width:46px;flex:none}.btn-icon.round{border-radius:50%}.icon-btn{display:inline-grid;place-items:center;width:44px;height:44px;border-radius:12px;color:var(--muted);flex:none}.icon-btn:active{background:var(--surface-2)}.icon-btn.sm{width:36px;height:36px}.link-btn{color:var(--accent);font-weight:600;font-size:15px;padding:8px 2px}.input{width:100%;min-height:48px;padding:12px 14px;border-radius:13px;border:1.5px solid var(--border);background:var(--surface);color:var(--text);font:inherit;font-size:16px;transition:border-color .15s,box-shadow .15s;-webkit-appearance:none;-moz-appearance:none;appearance:none}textarea.input{resize:none;line-height:1.4}.input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 4px color-mix(in srgb,var(--accent) 15%,transparent)}.input::placeholder{color:color-mix(in srgb,var(--muted) 75%,transparent)}.code-input{text-transform:uppercase;letter-spacing:.25em;font-weight:700;text-align:center;font-variant-numeric:tabular-nums}.field{display:flex;flex-direction:column;gap:7px;margin-bottom:16px}.field-label{font-size:13.5px;font-weight:600;color:var(--muted)}.field-hint{font-size:12.5px;color:var(--muted)}.alert{padding:12px 14px;border-radius:13px;background:color-mix(in srgb,var(--danger) 12%,transparent);color:var(--danger);font-size:14.5px;margin-bottom:12px}.alert.ok{background:color-mix(in srgb,var(--ok) 13%,transparent);color:var(--ok)}.choice{min-height:50px;border-radius:14px;border:1.5px solid var(--border);background:var(--surface);font-weight:600;text-align:center}.choice.on{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.emoji-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:8px}.emoji-grid.dense{grid-template-columns:repeat(auto-fill,minmax(44px,1fr));max-height:200px;overflow-y:auto;padding:2px}.emoji-pick{aspect-ratio:1;min-height:44px;border-radius:13px;font-size:26px;display:grid;place-items:center;background:var(--surface-2);border:2px solid transparent;transition:transform .1s}.emoji-pick.on{border-color:var(--accent);background:var(--accent-soft);transform:scale(1.06)}.color-row{display:flex;gap:12px;flex-wrap:wrap}.swatch{width:38px;height:38px;border-radius:50%;border:3px solid var(--surface);box-shadow:0 0 0 1px var(--border)}.swatch.on{box-shadow:0 0 0 3px var(--text)}.segmented{display:flex;padding:4px;gap:4px;background:var(--surface-2);border-radius:15px}.segmented button{flex:1;min-height:40px;border-radius:11px;font-weight:600;font-size:14px;color:var(--muted);text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:0 6px}.segmented button.on{background:var(--surface);color:var(--text);box-shadow:var(--shadow)}.seg-icon{margin-right:5px}.chips{display:flex;gap:8px;flex-wrap:wrap}.chips.scroll-x{flex-wrap:nowrap;overflow-x:auto;margin:0 -16px 14px;padding:2px 16px;scrollbar-width:none}.chips.scroll-x::-webkit-scrollbar{display:none}.chip{min-height:38px;padding:0 14px;border-radius:999px;border:1.5px solid var(--border);background:var(--surface);font-size:14px;font-weight:600;white-space:nowrap;color:var(--muted)}.chip.on{background:var(--accent-soft);border-color:color-mix(in srgb,var(--accent) 45%,transparent);color:var(--accent)}.badge{display:inline-flex;align-items:center;gap:4px;padding:2px 9px;border-radius:999px;font-size:12px;font-weight:600;background:var(--surface-2);color:var(--muted)}.badge.gold{background:color-mix(in srgb,var(--gold) 18%,transparent);color:var(--gold)}.toggle{width:52px;height:32px;border-radius:999px;background:var(--border);position:relative;flex:none;transition:background .2s}.toggle span{position:absolute;top:3px;left:3px;width:26px;height:26px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #00000040;transition:transform .2s}.toggle.on{background:var(--ok)}.toggle.on span{transform:translate(20px)}.toggle-row{display:flex;align-items:center;justify-content:space-between;min-height:48px;margin-bottom:12px;font-weight:600}.card{background:var(--surface);border-radius:var(--radius);padding:18px;box-shadow:var(--shadow)}.card-title{font-size:19px;margin-bottom:4px}.section-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}.section-title{font-size:19px;font-weight:700}.section-label{font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin:18px 0 8px}.count{background:var(--surface-2);border-radius:999px;padding:1px 8px;margin-left:4px}.row-card{display:flex;align-items:center;gap:12px;width:100%;min-height:64px;padding:12px 10px 12px 14px;border-radius:16px;background:var(--surface);box-shadow:var(--shadow);text-align:left}.row-card:active{transform:scale(.99)}.row-main{display:flex;flex-direction:column;gap:3px;text-align:left}.row-with-lead{flex-direction:row;align-items:center;gap:12px}.row-lead{flex:none;display:grid;place-items:center}.big-emoji{font-size:28px;width:40px}.row-card>.grow{display:flex;flex-direction:column;gap:3px}.row-title{font-weight:600;font-size:16px;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.row-sub{font-size:13.5px;color:var(--muted);display:flex;align-items:center;gap:4px;flex-wrap:wrap}.row-note{font-size:14px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chev{color:var(--muted);opacity:.6;flex:none}.date-pill{display:grid;place-items:center;width:44px;height:48px;border-radius:12px;background:var(--accent-soft);color:var(--accent);font-size:11px;font-weight:600;text-transform:uppercase;line-height:1.1}.date-pill b{font-size:19px}.progress{display:block;height:5px;border-radius:999px;background:var(--surface-2);margin-top:5px;overflow:hidden}.progress i{display:block;height:100%;background:var(--ok);border-radius:inherit;transition:width .3s}.quote{padding:12px 14px;border-radius:13px;background:var(--surface-2);margin:12px 0;white-space:pre-wrap}.comment-count{display:inline-flex;align-items:center;gap:3px;font-size:13px;color:var(--muted);flex:none}.empty{text-align:center;padding:36px 20px;display:flex;flex-direction:column;align-items:center;gap:8px}.empty-emoji{font-size:52px;margin-bottom:4px}.empty h3{font-size:19px}.empty p{color:var(--muted);max-width:300px;margin-bottom:10px}.fab{position:fixed;z-index:25;right:max(16px,calc(50vw - 284px));bottom:calc(var(--tabbar-h) + var(--safe-b) + 18px);display:inline-flex;align-items:center;gap:6px;height:54px;padding:0 20px 0 16px;border-radius:18px;background:linear-gradient(135deg,var(--accent),color-mix(in srgb,var(--accent) 70%,var(--accent-2)));color:#fff;font-weight:700;box-shadow:0 8px 24px color-mix(in srgb,var(--accent) 40%,transparent)}.fab:active{transform:scale(.96)}.toasts{position:fixed;z-index:100;left:16px;right:16px;top:calc(var(--safe-t) + 12px);display:flex;flex-direction:column;align-items:center;gap:8px;pointer-events:none}.toast{max-width:420px;padding:12px 18px;border-radius:14px;background:var(--text);color:var(--bg);font-weight:600;font-size:14.5px;box-shadow:0 10px 30px #00000040;animation:drop .25s ease-out}.toast-err{background:var(--danger);color:#fff}@keyframes drop{0%{opacity:0;transform:translateY(-10px)}}.sheet-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;background:#14081473;display:flex;align-items:flex-end;justify-content:center;animation:fade .2s}@keyframes fade{0%{opacity:0}}.sheet{width:100%;max-width:600px;max-height:calc(100dvh - var(--safe-t) - 24px);display:flex;flex-direction:column;background:var(--bg);border-radius:24px 24px 0 0;box-shadow:0 -10px 40px #0003;animation:up .28s cubic-bezier(.2,.9,.3,1)}.sheet-tall{height:calc(100dvh - var(--safe-t) - 24px)}@keyframes up{0%{transform:translateY(40%);opacity:.4}}.sheet-grab{width:40px;height:5px;border-radius:9px;background:var(--border);margin:8px auto 0;flex:none}.sheet-head{display:flex;align-items:center;gap:8px;padding:6px 8px 6px 20px;flex:none}.sheet-head h2{flex:1;font-size:19px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sheet-body{flex:1;overflow-y:auto;padding:8px 20px 20px;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}.sheet-foot{display:flex;gap:10px;padding:12px 16px calc(var(--safe-b) + 12px);border-top:1px solid var(--border);background:var(--bg);flex:none}@media(min-width:640px){.sheet-backdrop{align-items:center}.sheet{border-radius:24px;max-height:86vh}.sheet-tall{height:86vh}}.auth{min-height:100dvh;max-width:460px;margin:0 auto;padding:calc(var(--safe-t) + 32px) 16px calc(var(--safe-b) + 32px);display:flex;flex-direction:column;gap:22px}.auth-hero{text-align:center;display:flex;flex-direction:column;align-items:center;gap:6px}.auth-logo{font-size:54px;animation:beat 2s ease-in-out infinite}.auth-card{display:flex;flex-direction:column}.auth-card .segmented{margin-bottom:20px}.auth-card .link-btn{margin:-4px 0 14px;align-self:flex-start}.auth-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:-4px 0 14px}.auth-row .link-btn{margin:0}.remember{display:flex;align-items:center;gap:8px;font-size:15px;cursor:pointer}.remember input{width:18px;height:18px;accent-color:var(--accent)}.auth-card .muted.small{font-size:14.5px;margin:0 0 14px}.auth-title{font-size:20px;margin:0 0 10px}.auth-card .auth-back{margin:12px 0 0;align-self:center}.auth-card .auth-note{margin:6px 0 0;text-align:center}.partner-card{position:relative;overflow:hidden;border-radius:24px;padding:20px;color:var(--text);background:linear-gradient(140deg,color-mix(in srgb,var(--c) 22%,var(--surface)),color-mix(in srgb,var(--c) 8%,var(--surface)));border:1px solid color-mix(in srgb,var(--c) 30%,transparent);box-shadow:0 10px 30px color-mix(in srgb,var(--c) 18%,transparent)}.partner-top{display:flex;gap:14px;align-items:center}.partner-top>div{flex:1;min-width:0}.eyebrow{font-size:13px;font-weight:600;color:var(--muted)}.partner-mood{font-family:Fraunces,Georgia,serif;font-size:24px;font-weight:700;line-height:1.15;margin-top:2px}.partner-desc{color:color-mix(in srgb,var(--c) 70%,var(--text));font-weight:500;margin-top:2px}.partner-emoji{font-size:56px;line-height:1;flex:none;animation:float 3s ease-in-out infinite}@keyframes float{50%{transform:translateY(-5px)}}.partner-time{position:absolute;top:12px;right:16px;font-size:12px;color:var(--muted)}.connect-card{display:flex;flex-direction:column;gap:14px}.code-box{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 10px 10px 18px;border-radius:16px;background:var(--surface-2)}.code{font-size:26px;font-weight:800;letter-spacing:.18em;font-variant-numeric:tabular-nums}.notify-card{display:flex;gap:12px;align-items:flex-start}.notify-card .btn{margin-top:10px}.notify-icon{display:grid;place-items:center;width:40px;height:40px;border-radius:12px;background:var(--accent-soft);color:var(--accent);flex:none}.my-mood{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:10px 14px;margin-bottom:12px;border-radius:14px;background:color-mix(in srgb,var(--c) 12%,var(--surface));font-weight:600;font-size:14.5px}.mood-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}@media(min-width:480px){.mood-grid{grid-template-columns:repeat(3,1fr)}}.mood-tile{position:relative;border-radius:20px;background:var(--surface);box-shadow:var(--shadow);border:2px solid transparent;transition:transform .12s,border-color .2s;min-height:124px}.mood-tile:active{transform:scale(.96)}.mood-tile.on{border-color:var(--c);background:color-mix(in srgb,var(--c) 12%,var(--surface))}.mood-tile-btn{width:100%;height:100%;display:flex;flex-direction:column;align-items:flex-start;gap:3px;padding:14px;text-align:left;border-radius:18px}.mood-emoji{font-size:34px;line-height:1.1;margin-bottom:6px}.mood-label{font-weight:700;font-size:15px;line-height:1.25}.mood-desc{font-size:13px;color:color-mix(in srgb,var(--c) 65%,var(--muted));line-height:1.3}.mood-edit{position:absolute;top:6px;right:6px;width:34px;height:34px;border-radius:10px;display:grid;place-items:center;color:var(--muted)}.mood-tile.add{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;color:var(--accent);border:2px dashed color-mix(in srgb,var(--accent) 40%,transparent);background:transparent;box-shadow:none}.mood-tile.preview{margin-bottom:18px;border-color:var(--c);background:color-mix(in srgb,var(--c) 12%,var(--surface))}.mood-banner{position:fixed;z-index:60;left:12px;right:12px;top:calc(var(--safe-t) + 10px);max-width:520px;margin:0 auto;display:flex;gap:12px;align-items:center;padding:14px 16px;border-radius:20px;text-align:left;background:color-mix(in srgb,var(--c) 18%,var(--surface));border:1.5px solid color-mix(in srgb,var(--c) 45%,transparent);box-shadow:0 16px 40px #00000040;animation:drop .35s cubic-bezier(.2,.9,.3,1.3)}.mood-banner-emoji{font-size:38px}.mood-banner-text{display:flex;flex-direction:column;font-size:16px}.mood-banner-text small{color:var(--muted);font-size:13.5px}.pack-row{display:flex;align-items:center;gap:12px;padding:14px;border-radius:16px;background:var(--surface);box-shadow:var(--shadow)}.pack-emoji{font-size:30px}.pack-name{font-weight:700;display:flex;gap:6px;align-items:center;flex-wrap:wrap}.pack-preview{font-size:17px;margin-top:4px;letter-spacing:2px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.month{padding:12px}.month-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}.month-head b{font-size:17px}.month-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.dow{text-align:center;font-size:12px;font-weight:600;color:var(--muted);padding:4px 0}.day{position:relative;aspect-ratio:1;min-height:40px;border-radius:12px;display:flex;flex-direction:column;align-items:center;justify-content:center;font-weight:500;font-size:15px}.day.today{color:var(--accent);font-weight:800}.day.sel{background:var(--accent);color:#fff}.day.filled{background:color-mix(in srgb,var(--c) 22%,transparent);color:var(--text)}.day.filled.today{box-shadow:inset 0 0 0 2px var(--accent)}.dots{position:absolute;bottom:5px;display:flex;gap:2px}.dots b{width:5px;height:5px;border-radius:50%;background:var(--accent)}.day.sel .dots b{background:#fff}.legend{display:flex;flex-wrap:wrap;gap:8px 14px;justify-content:center;font-size:13px;color:var(--muted)}.legend i{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:5px}.stat-card{display:flex;gap:14px;align-items:center}.stat-emoji{font-size:28px}.type-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:16px}.type-btn{display:flex;flex-direction:column;align-items:flex-start;gap:4px;padding:14px;border-radius:16px;background:var(--surface);border:2px solid var(--border);font-weight:600;font-size:14.5px}.type-btn span{font-size:22px}.type-btn.on{border-color:var(--c);background:color-mix(in srgb,var(--c) 12%,var(--surface))}.notes{padding-bottom:70px}.bubbles{display:flex;flex-direction:column;gap:6px}.day-sep{text-align:center;font-size:12.5px;font-weight:600;color:var(--muted);margin:14px 0 6px}.bubble-row{display:flex;align-items:flex-end;gap:8px}.bubble-row.own{justify-content:flex-end}.bubble{max-width:78%;padding:10px 14px 7px;border-radius:20px 20px 20px 6px;background:var(--surface);box-shadow:var(--shadow);text-align:left;display:flex;flex-direction:column}.own .bubble{border-radius:20px 20px 6px;background:linear-gradient(135deg,var(--accent),color-mix(in srgb,var(--accent) 70%,var(--accent-2)));color:#fff}.bubble-text{white-space:pre-wrap;overflow-wrap:anywhere;font-size:16px}.bubble-time{align-self:flex-end;font-size:11px;opacity:.65;margin-top:2px}.composer{position:fixed;z-index:24;left:0;right:0;bottom:calc(var(--tabbar-h) + var(--safe-b));max-width:600px;margin:0 auto;display:flex;gap:8px;align-items:flex-end;padding:10px 12px;background:color-mix(in srgb,var(--bg) 94%,transparent);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}.composer .input{border-radius:24px;min-height:46px;padding:11px 16px}.checklist{list-style:none;margin:8px 0 0;padding:0}.checklist li{display:flex;align-items:center;gap:4px;border-bottom:1px solid var(--border)}.check{flex:1;display:flex;align-items:center;gap:12px;min-height:54px;padding:6px 0;text-align:left}.box{width:26px;height:26px;border-radius:8px;border:2px solid var(--border);display:grid;place-items:center;flex:none;color:#fff;transition:background .15s,border-color .15s}.done .box{background:var(--ok);border-color:var(--ok)}.check-text{font-size:16px;overflow-wrap:anywhere}.done .check-text{text-decoration:line-through;color:var(--muted)}.claim{font-size:13.5px;color:var(--accent);font-weight:600;margin-top:2px}.claim.on{color:var(--ok)}.row-card.claimed{opacity:.75}.favicon{width:32px;height:32px;border-radius:8px;background:var(--surface-2);flex:none}.video-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.video-card{display:flex;flex-direction:column;gap:6px;text-align:left}.thumb{position:relative;display:block;aspect-ratio:16 / 9;border-radius:14px;overflow:hidden;background:var(--surface-2)}.thumb img{width:100%;height:100%;object-fit:cover;display:block}.play{position:absolute;right:8px;bottom:8px;width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:#0009;color:#fff}.video-title{font-weight:600;font-size:14.5px;line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.video-preview{width:100%;border-radius:14px;margin-bottom:16px;aspect-ratio:16 / 9;object-fit:cover}.video-frame{position:relative;aspect-ratio:16 / 9;border-radius:14px;overflow:hidden;margin-bottom:14px;background:#000}.video-frame iframe{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;border:0}.sheet-body>.btn-block{margin:6px 0 4px}.thread-item{display:flex;gap:10px;align-items:flex-start;padding:8px 0}.thread-body{flex:1;min-width:0}.thread-meta{font-size:13px;color:var(--muted)}.thread-text{white-space:pre-wrap;overflow-wrap:anywhere}.thread-form{display:flex;gap:8px;margin-top:10px}.profile-hero{display:flex;flex-direction:column;align-items:center;gap:6px;padding:10px 0 24px;text-align:center}.profile-hero h2{font-size:24px;margin-top:6px}.menu{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden;margin-bottom:18px}.menu-item{display:flex;align-items:center;gap:14px;width:100%;min-height:60px;padding:10px 14px}.menu-item+.menu-item{border-top:1px solid var(--border)}.menu-item:active{background:var(--surface-2)}.menu-icon{width:36px;height:36px;border-radius:11px;display:grid;place-items:center;background:var(--accent-soft);color:var(--accent);flex:none}.menu-item.gold .menu-icon{background:color-mix(in srgb,var(--gold) 18%,transparent);color:var(--gold)}.menu-item.danger .menu-icon{background:color-mix(in srgb,var(--danger) 13%,transparent);color:var(--danger)}.menu-label{display:block;font-weight:600}.menu-sub{display:block;font-size:13.5px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.feature{display:flex;gap:14px;align-items:flex-start;padding:12px;border-radius:14px;background:var(--surface)}.feature-icon{font-size:26px}.steps{padding-left:22px;display:flex;flex-direction:column;gap:10px}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:14px}.stats div{display:flex;flex-direction:column;align-items:center;padding:12px;border-radius:14px;background:var(--surface)}.stats b{font-size:22px}.stats span{font-size:12.5px;color:var(--muted)}.admin-user{display:flex;align-items:center;gap:10px;padding:10px;border-radius:14px;background:var(--surface)}.sheet-body>.input{margin-bottom:12px}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}.invite-chip{display:inline-flex;align-items:center;gap:10px;min-height:44px;margin-top:8px;padding:6px 14px;border-radius:14px;background:var(--surface);box-shadow:var(--shadow);color:var(--text)}.invite-chip b{font-size:18px;letter-spacing:.18em;font-variant-numeric:tabular-nums}.invite-chip svg{color:var(--accent)}.field .invite-chip{align-self:flex-start;margin-top:0}.menu.flat{box-shadow:none;border:1px solid var(--border)}.menu-item.danger .menu-label{color:var(--danger)}.kpis{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-bottom:12px}@media(min-width:480px){.kpis{grid-template-columns:repeat(3,1fr)}}.kpi{display:flex;flex-direction:column;padding:14px;border-radius:16px;background:var(--surface);box-shadow:var(--shadow)}.kpi b{font-size:28px;line-height:1.1;font-variant-numeric:tabular-nums}.kpi span{font-weight:600;font-size:14px}.kpi small{color:var(--muted);font-size:12.5px}.kpi.gold b{color:var(--gold)}.content-counts{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:18px}.content-counts .badge b{color:var(--text);margin-left:2px}.admin-tools{position:sticky;top:calc(var(--safe-t) + 60px);z-index:10;background:var(--bg);padding:8px 0 10px;display:flex;flex-direction:column;gap:10px}.admin-tools .chips.scroll-x{margin-bottom:0}.sort select{margin-left:6px;min-height:36px;padding:0 8px;border-radius:10px;border:1px solid var(--border);background:var(--surface);color:var(--text);font:inherit;font-size:14px}.admin-head{display:flex;gap:14px;align-items:center;margin-bottom:14px}.facts{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:0 0 6px}.facts div{padding:10px 12px;border-radius:12px;background:var(--surface)}.facts .wide{grid-column:1 / -1}.facts dt{font-size:12px;color:var(--muted);font-weight:600}.facts dd{margin:2px 0 0;font-weight:600}.facts .link-btn{padding:0}.mono{font-variant-numeric:tabular-nums;letter-spacing:.12em}.menu-item .avatar{flex:none}.media-bar{display:flex;align-items:flex-start;gap:10px}.media-bar .chips{flex:1;min-width:0}.layout-toggle{flex:none;display:flex;padding:3px;gap:2px;background:var(--surface-2);border-radius:12px}.layout-toggle button{display:grid;place-items:center;width:36px;height:32px;border-radius:9px;color:var(--muted)}.layout-toggle button.on{background:var(--surface);color:var(--text);box-shadow:var(--shadow)}.poster-card{display:flex;flex-direction:column;gap:4px;text-align:left;min-width:0}.poster-card:active{transform:scale(.98)}.poster{position:relative;display:block;border-radius:12px;overflow:hidden;background:var(--surface-2);box-shadow:var(--shadow)}.poster img,.row-cover img,.sheet-cover img{width:100%;height:100%;object-fit:cover;display:block}.poster-status{position:absolute;top:7px;right:7px;width:11px;height:11px;border-radius:50%;border:2px solid #fff;box-shadow:0 1px 3px #0000004d}.poster-comments{position:absolute;bottom:6px;right:6px;display:inline-flex;align-items:center;gap:3px;padding:2px 7px;border-radius:999px;background:#0009;color:#fff;font-size:11.5px;font-weight:600}.poster-title{font-weight:600;font-size:13.5px;line-height:1.25;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.poster-sub{font-size:12px;font-weight:600}.cover-fallback{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;padding:8px;text-align:center;background:linear-gradient(160deg,color-mix(in srgb,var(--accent) 16%,var(--surface-2)),var(--surface-2))}.cover-fallback span{font-size:30px}.cover-fallback small{font-size:11.5px;color:var(--muted);line-height:1.2;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.row-cover{flex:none;width:40px;height:60px;border-radius:7px;overflow:hidden;background:var(--surface-2)}.row-cover .cover-fallback{padding:0}.row-cover .cover-fallback span{font-size:20px}.sheet-cover{width:120px;aspect-ratio:2 / 3;margin:0 auto 16px;border-radius:12px;overflow:hidden;box-shadow:var(--shadow);background:var(--surface-2)}.input-row{display:flex;gap:6px;align-items:center}.input-row .input{flex:1;min-width:0}.icon-btn:disabled{opacity:.4}.masonry{columns:3;column-gap:12px}.masonry.tiles{columns:2}@media(min-width:520px){.masonry{columns:4}.masonry.tiles{columns:3}}.masonry>*{break-inside:avoid;margin-bottom:16px;width:100%}.masonry .poster img,.masonry .thumb img{height:auto}.masonry .thumb{aspect-ratio:auto}.masonry.posters .cover-fallback{aspect-ratio:2 / 3}.masonry.tiles .cover-fallback{aspect-ratio:16 / 9}.media-bar>.grow{min-width:0}.tile-card{display:flex;flex-direction:column;gap:6px;text-align:left}.tile-card:active{transform:scale(.98)}.tile-card .thumb{box-shadow:var(--shadow)}.tile-sub{display:flex;align-items:center;gap:6px;min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.favicon.xs{width:16px;height:16px;border-radius:4px}.cover-fallback .favicon{width:36px;height:36px}.row-cover.big{width:72px;height:108px;border-radius:10px}.row-cover.big .cover-fallback span{font-size:28px}.cover-row{align-items:flex-start}.cover-row>.grow{gap:6px}.row-thumb{flex:none;width:56px;height:42px;border-radius:8px;overflow:hidden;background:var(--surface-2)}.row-thumb img{width:100%;height:100%;object-fit:cover;display:block}.row-thumb .cover-fallback span{font-size:18px}.sheet-cover.wide{width:100%;max-width:360px;aspect-ratio:auto}.sheet-cover.wide img{height:auto;max-height:240px;object-fit:cover}.video-row{padding:8px 10px 8px 8px}.thumb.row-video{flex:none;width:120px;border-radius:10px}.play.sm{width:24px;height:24px;right:5px;bottom:5px}.clamp-2{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;white-space:normal}
