.gi-mask[data-v-997f4b9f]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:3200;display:flex;align-items:center;justify-content:center;padding:20px;background:#0d111c8c;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);animation:gi-in-997f4b9f .18s ease}.gi-card[data-v-997f4b9f]{width:min(360px,100%);padding:24px 22px 18px;border-radius:20px;background:var(--bg);box-shadow:0 40px 100px -30px #0009;text-align:center}.gi-badge[data-v-997f4b9f]{display:inline-grid;place-items:center;width:46px;height:46px;margin-bottom:12px;border-radius:14px;color:#fff;font-size:18px;font-weight:800;background:linear-gradient(135deg,#f76707,#d9480f)}.gi-badge.relay[data-v-997f4b9f]{background:linear-gradient(135deg,#4c6ef5,#3b5bdb)}.gi-badge.focus[data-v-997f4b9f]{background:linear-gradient(135deg,#12b886,#087f5b)}.gi-card h3[data-v-997f4b9f]{margin:0 0 8px;font-size:16px;line-height:1.5}.gi-detail[data-v-997f4b9f]{margin:0 0 18px;color:var(--muted);font-size:12.5px}.gi-actions[data-v-997f4b9f]{display:flex;gap:10px}.gi-actions .btn[data-v-997f4b9f]{flex:1;justify-content:center}@keyframes gi-in-997f4b9f{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}:root{color-scheme:light;--bg: #f5f6f8;--card: #ffffff;--text: #1d2433;--muted: #8a91a3;--line: #eceef3;--primary: #4c6ef5;--primary-dark: #3b5bdb;--primary-soft: #edf1fe;--green: #0ca678;--green-soft: #e6f7f1;--danger: #e03131;--danger-soft: #fff0f0;--radius: 16px;--shadow: 0 1px 2px rgba(16, 24, 40, .04), 0 10px 30px rgba(16, 24, 40, .06)}*{box-sizing:border-box}html,body{margin:0;padding:0;-webkit-text-size-adjust:100%;text-size-adjust:100%}body{background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif;font-size:14px;line-height:1.6;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}h1,h2,h3{margin:0;font-weight:600;letter-spacing:-.01em}h1{font-size:24px}h2{font-size:16px}p{margin:0}button,input,textarea,select{font-family:inherit;font-size:inherit;color:inherit}.app-shell{min-height:100vh;min-height:100dvh}.topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:24px;padding:14px 32px;background:#ffffffd1;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:10px;font-weight:700;font-size:15px;letter-spacing:.02em}.brand-mark{display:grid;place-items:center;width:28px;height:28px;border-radius:9px;background:linear-gradient(135deg,#5c7cfa,#4c6ef5);color:#fff;font-weight:700;font-size:15px}.nav{display:flex;gap:4px;margin-left:12px}.nav a{padding:6px 14px;border-radius:10px;color:var(--muted);font-weight:500;transition:all .15s ease}.nav a:hover{color:var(--text);background:#f2f4f8}.nav a.active{color:var(--primary-dark);background:var(--primary-soft)}.user-chip{display:flex;align-items:center;gap:10px;margin-left:auto;color:var(--muted)}.avatar{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:var(--primary-soft);color:var(--primary-dark);font-weight:600}.link{border:none;background:none;color:var(--muted);cursor:pointer;padding:4px 6px;border-radius:8px}.link:hover{color:var(--danger);background:var(--danger-soft)}.main{max-width:1060px;margin:0 auto;padding:28px 24px 64px}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:20px}.page-head p{color:var(--muted);font-size:13px}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:20px}.grid{display:grid;gap:16px}.grid-3{grid-template-columns:repeat(3,1fr)}.grid-2{grid-template-columns:1.05fr 1fr}.stack{display:flex;flex-direction:column;gap:16px}.muted{color:var(--muted)}.small{font-size:12px}.stat-label{color:var(--muted);font-size:12px;letter-spacing:.02em}.stat-value{font-size:32px;font-weight:650;letter-spacing:-.02em;line-height:1.2;margin-top:4px}.stat-value span{font-size:13px;font-weight:500;color:var(--muted);margin-left:4px}.stat-value.accent{color:var(--primary-dark)}.stat-value.green{color:var(--green)}.card-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.field{display:flex;flex-direction:column;gap:6px}.field label{font-size:12px;font-weight:600;color:var(--muted);letter-spacing:.02em}.input{width:100%;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:#fbfcfe;outline:none;transition:border-color .15s ease,box-shadow .15s ease,background .15s ease}.input:focus{border-color:#b9c4f9;background:#fff;box-shadow:0 0 0 3px #4c6ef51f}.input::placeholder{color:#b0b6c4}textarea.input{resize:vertical;min-height:64px}.form-row{display:grid;gap:12px;grid-template-columns:1fr 1fr}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:10px 16px;border-radius:11px;border:1px solid transparent;background:#f1f3f7;color:var(--text);font-weight:600;cursor:pointer;box-shadow:0 1px 2px #1018280a;transition:transform .18s ease,box-shadow .18s ease,background .18s ease,border-color .18s ease,color .18s ease;white-space:nowrap}.btn:hover{background:#e9ecf2;transform:translateY(-1px)}.btn:active{transform:translateY(0)}.btn:focus-visible{outline:none;box-shadow:0 0 0 3px #4f46e538}.btn:disabled{opacity:.55;cursor:not-allowed;transform:none;box-shadow:none}.btn-primary{background:linear-gradient(135deg,#6366f1,#4f46e5);color:#fff;box-shadow:0 4px 12px #4f46e547}.btn-primary:hover{background:linear-gradient(135deg,#5b5ef0,#4338ca);box-shadow:0 7px 18px #4f46e557}.btn-ghost{background:transparent;border-color:var(--line);color:var(--muted);box-shadow:none}.btn-ghost:hover{color:var(--text);border-color:#dfe3ea;background:#fbfcfe}.btn-danger{background:linear-gradient(135deg,#fef2f2,#fee2e2);color:var(--danger);border-color:#fecaca}.btn-danger:hover{background:linear-gradient(135deg,#fee2e2,#fecaca)}.btn-sm{padding:5px 10px;font-size:12px;border-radius:8px}.btn-block{width:100%}.tabs{display:flex;gap:4px;padding:4px;background:#f3f5f9;border-radius:12px;margin-bottom:20px}.tabs button{flex:1;border:none;background:none;padding:8px 12px;border-radius:9px;cursor:pointer;color:var(--muted);font-weight:600}.tabs button.active{background:#fff;color:var(--text);box-shadow:0 1px 3px #10182814}.records-toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.records-tabs{margin-bottom:0;padding:3px;gap:2px}.records-tabs button{min-width:42px;padding:7px 12px}.records-picker-wrap{position:relative}.records-picker{display:inline-flex;align-items:center;gap:6px;height:38px;padding:0 10px;border:1px solid var(--line);border-radius:11px;background:var(--card);color:var(--muted);font-family:inherit;cursor:pointer;transition:border-color .15s ease}.records-picker:hover{border-color:#6366f159}.records-picker:focus{outline:none}.records-picker:focus-visible{border-color:#6366f173;box-shadow:0 0 0 3px #6366f126}.records-picker svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.records-picker>span{color:var(--text);font-size:12.5px;font-weight:600;white-space:nowrap}.records-picker .records-picker-caret{width:12px;height:12px;opacity:.6}.records-picker input,.records-picker select{border:none;background:transparent;color:var(--text);font-family:inherit;font-size:12.5px;font-weight:600;outline:none;cursor:pointer}.records-picker input::-webkit-calendar-picker-indicator{opacity:.5;cursor:pointer}@media (max-width: 640px){.records-head{align-items:flex-start}.records-toolbar{width:100%}.records-tabs{flex:1}.records-tabs button{padding:7px 8px}}.tag{display:inline-flex;align-items:center;padding:3px 10px;border-radius:999px;border:1px solid rgba(102,112,133,.12);background:linear-gradient(180deg,#f8f9fc,#eef1f7);color:var(--muted);font-size:12px;font-weight:600;box-shadow:inset 0 1px #ffffffb3}.tag.primary{background:linear-gradient(180deg,#f0f3ff,#e3e8ff);border-color:#d4dbff;color:#4338ca}.tag.green{background:linear-gradient(180deg,#ecfdf5,#dcf7eb);border-color:#bef0da;color:var(--green)}.alert{padding:9px 12px;border-radius:10px;font-size:13px;margin-bottom:14px}.alert-error{background:var(--danger-soft);color:var(--danger)}.alert-ok{background:var(--green-soft);color:var(--green)}.empty{padding:32px 16px;text-align:center;color:var(--muted);font-size:13px}.bars{display:flex;align-items:flex-end;gap:8px;height:168px;padding:14px 10px 6px;border-radius:14px;background-image:linear-gradient(to top,var(--line) 1px,transparent 1px);background-size:100% 25%;background-position:0 100%}.bar-col{flex:1;display:flex;flex-direction:column;align-items:center;gap:6px;height:100%}.bar-value{min-height:14px;font-size:10px;color:var(--muted);font-variant-numeric:tabular-nums}.bar-wrap{flex:1;width:100%;padding:0 2px;display:flex;align-items:flex-end;justify-content:center}.bar{width:100%;max-width:26px;border-radius:999px;background:linear-gradient(180deg,#a5b4fc,#6366f1 58%,#4f46e5);box-shadow:0 6px 14px #4f46e538,inset 0 1px #ffffff59;transform-origin:bottom;animation:bar-grow .55s cubic-bezier(.22,1,.36,1);transition:transform .18s ease,filter .18s ease}.bar:hover{transform:translateY(-2px);filter:saturate(1.15)}.bar.today{background:linear-gradient(180deg,#6ee7b7,#10b981 60%,#059669);box-shadow:0 7px 16px #10b9814d,inset 0 1px #fff6}.bar.zero{max-width:8px;background:var(--soft);box-shadow:none;animation:none}.bar-label{font-size:11px;color:var(--muted)}.bar-label.today{color:var(--green);font-weight:700}@keyframes bar-grow{0%{transform:scaleY(0);opacity:.3}to{transform:scaleY(1);opacity:1}}.subject-row{display:grid;grid-template-columns:88px 1fr 52px;align-items:center;gap:12px;padding:7px 0}.subject-name{font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.subject-bar{height:8px;border-radius:999px;background:#f1f3f7;overflow:hidden}.subject-bar span{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#8ea2fb,#4c6ef5)}.subject-minutes{text-align:right;font-size:12px;color:var(--muted)}.chips{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:2px}.chip{display:inline-flex;align-items:center;gap:5px;padding:5px 12px;border-radius:999px;border:1px solid var(--line);background:#fbfcfe;color:var(--muted);font-size:12px;cursor:pointer;box-shadow:0 1px 2px #10182808;transition:transform .16s ease,border-color .16s ease,background .16s ease,color .16s ease,box-shadow .16s ease}.chip:hover{border-color:#c7d2fe;color:var(--text);transform:translateY(-1px);box-shadow:0 4px 10px #4f46e51a}.chip.active{border-color:#a5b4fc;background:linear-gradient(135deg,#eef1ff,#e0e7ff);color:#4338ca;font-weight:600;box-shadow:0 4px 12px #4f46e529}.chip-x{color:#b0b6c4;font-size:13px;line-height:1;padding:0 1px}.chip-x:hover{color:var(--danger)}.chip-add{border-style:dashed;color:var(--primary-dark);background:transparent}.chip-input{width:140px;padding:4px 10px;border:1px solid var(--line);border-radius:999px;background:#fff;font-size:12px;outline:none}.chip-input:focus{border-color:#b9c4f9;box-shadow:0 0 0 3px #4c6ef51f}.record-item{display:flex;align-items:center;gap:14px;padding:12px 0;border-bottom:1px dashed var(--line)}.record-item:last-child{border-bottom:none}.record-time{width:58px;font-size:13px;font-weight:600;color:var(--muted)}.record-subject{font-weight:600}.record-note{font-size:12px;color:var(--muted)}.record-main{flex:1;min-width:0}.record-actions{display:flex;align-items:center;gap:12px;margin-left:auto;flex-shrink:0}.record-duration{margin-left:0;font-weight:600;color:var(--primary-dark);white-space:nowrap}.record-entry{display:grid;grid-template-columns:52px minmax(0,1fr) auto;align-items:center;gap:12px;padding:12px 0;border-bottom:1px dashed var(--line)}.record-entry:last-child{border-bottom:none}.record-entry .record-time{width:auto;font-variant-numeric:tabular-nums}.record-entry .record-actions{margin-left:0}.record-entry .record-subject{line-height:1.4}.record-entry .record-note{margin-top:2px;line-height:1.4;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.history-room{display:flex;flex-direction:column;gap:16px}.history-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.history-stat{display:flex;flex-direction:column;gap:6px;padding:18px 20px;border:1px solid var(--line);border-radius:16px;background:linear-gradient(135deg,#f4f7ff,#eef1ff)}.history-stat-label{font-size:12px;letter-spacing:.06em;color:var(--muted)}.history-stat strong{font-size:32px;line-height:1.1;color:var(--primary-dark);font-variant-numeric:tabular-nums}.history-stat strong span{margin-left:4px;font-size:13px;font-weight:600;color:var(--muted)}.history-members{display:flex;flex-wrap:wrap;gap:10px}.history-chat-list{min-height:220px;max-height:460px}.history-chat-tip{margin-top:10px;padding-top:10px;border-top:1px dashed var(--line);text-align:center;font-size:12px;color:var(--muted)}.countdown-strip{position:relative;display:flex;align-items:center;gap:14px;padding:14px 16px;margin-bottom:16px;border:1px solid rgba(99,102,241,.18);border-radius:18px;background:radial-gradient(120% 160% at 100% 0%,rgba(124,92,255,.14),transparent 56%),linear-gradient(120deg,#f7f8ff,#fff 48%,#f5f7ff);box-shadow:0 14px 30px -26px #3730a38c;color:inherit;text-decoration:none;overflow:hidden;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}.countdown-strip:before{content:"";position:absolute;left:0;top:16px;bottom:16px;width:4px;border-radius:0 4px 4px 0;background:linear-gradient(180deg,#6366f1,#a855f7)}.countdown-strip:after{content:"";position:absolute;right:-36px;top:-48px;width:150px;height:150px;border-radius:50%;border:20px solid rgba(99,102,241,.06);pointer-events:none}.countdown-strip:hover{transform:translateY(-2px);border-color:#6366f16b;box-shadow:0 22px 40px -26px #4f46e58c}.countdown-strip-icon{display:grid;place-items:center;width:46px;height:46px;flex:none;border-radius:14px;background:linear-gradient(135deg,#6366f1,#8b5cf6);box-shadow:0 12px 24px -14px #6366f1d9;color:#fff}.countdown-strip-icon svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.countdown-strip-main{display:flex;flex-direction:column;gap:2px;min-width:0}.countdown-strip-kicker{color:#6366f1;font-size:9.5px;font-weight:800;letter-spacing:.16em}.countdown-strip-main strong{overflow:hidden;font-size:15px;font-weight:800;text-overflow:ellipsis;white-space:nowrap}.countdown-strip-date{color:var(--muted);font-size:11.5px}.countdown-strip-days{display:flex;align-items:baseline;gap:5px;margin-left:auto;padding:7px 14px;border:1px solid rgba(99,102,241,.16);border-radius:14px;background:#ffffffc2;box-shadow:inset 0 1px #ffffffe6;white-space:nowrap}.countdown-days-label{color:var(--muted);font-size:10.5px;font-weight:600}.countdown-strip-days b{background:linear-gradient(135deg,#4f46e5,#9333ea);-webkit-background-clip:text;background-clip:text;color:transparent;font-size:26px;font-weight:900;font-variant-numeric:tabular-nums;line-height:1}.countdown-strip-days b.today{font-size:17px}.countdown-days-unit{color:var(--muted);font-size:11px;font-weight:600}.countdown-strip-arrow{display:grid;place-items:center;width:26px;height:26px;flex:none;border-radius:50%;background:#6366f11a;color:#6366f1;transition:transform .18s ease,background .18s ease}.countdown-strip-arrow svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}.countdown-strip:hover .countdown-strip-arrow{background:#6366f12e;transform:translate(2px)}.cdr-mask{position:fixed;top:0;right:0;bottom:0;left:0;z-index:3900;display:grid;place-items:center;padding:20px;background:#0a0e1a94;-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px)}.cdr-card{position:relative;width:min(380px,100%);padding:30px 26px 22px;border:1px solid rgba(99,102,241,.18);border-radius:26px;background:var(--card);box-shadow:0 40px 100px -34px #14183ca6;text-align:center;overflow:hidden;animation:cdr-pop .32s cubic-bezier(.34,1.4,.64,1)}.cdr-card:before{content:"";position:absolute;inset:-40% -30% auto;height:240px;background:radial-gradient(closest-side,rgba(99,102,241,.18),transparent 70%);pointer-events:none}.cdr-halo{position:relative;width:96px;height:96px;margin:6px auto 4px}.cdr-ring{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%;border:1px solid rgba(99,102,241,.28);box-shadow:inset 0 0 0 12px #6366f10f}.cdr-ring:after{content:"";position:absolute;top:16px;right:16px;bottom:16px;left:16px;border-radius:50%;border:1px dashed rgba(139,92,246,.38);animation:cdr-spin 18s linear infinite}.cdr-dot{position:absolute;width:7px;height:7px;border-radius:50%;background:linear-gradient(135deg,#818cf8,#c084fc);box-shadow:0 0 12px #818cf8cc}.cdr-dot.d1{top:2px;left:22px}.cdr-dot.d2{right:8px;top:34px;width:5px;height:5px}.cdr-dot.d3{left:30px;bottom:6px;width:5px;height:5px}.cdr-kicker{display:inline-flex;align-items:center;padding:4px 12px;border-radius:999px;background:#6366f11a;color:#4f46e5;font-size:10px;font-weight:800;letter-spacing:.16em}.cdr-title{margin:12px 0 16px;font-size:19px;font-weight:900;letter-spacing:-.01em;line-height:1.4}.cdr-days{display:flex;flex-direction:column;align-items:center;gap:2px}.cdr-label{color:var(--muted);font-size:11px;font-weight:600;letter-spacing:.04em}.cdr-number{display:flex;align-items:baseline;gap:4px}.cdr-number b{background:linear-gradient(135deg,#4f46e5,#a855f7 60%,#ec4899);-webkit-background-clip:text;background-clip:text;color:transparent;font-size:62px;font-weight:900;font-variant-numeric:tabular-nums;line-height:1.05}.cdr-number em{color:var(--muted);font-size:14px;font-style:normal;font-weight:700}.cdr-today-text{background:linear-gradient(135deg,#4f46e5,#db2777);-webkit-background-clip:text;background-clip:text;color:transparent;font-size:36px;font-weight:900;line-height:1.2}.cdr-date{margin:10px 0 0;color:var(--muted);font-size:11.5px}.cdr-note{margin:12px 0 18px;color:var(--muted);font-size:12px;line-height:1.65}.cdr-btn{width:100%;padding:11px 16px;border:none;border-radius:14px;background:linear-gradient(135deg,#6366f1,#8b5cf6);box-shadow:0 14px 26px -16px #6366f1e6;color:#fff;font-size:13.5px;font-weight:800;cursor:pointer;transition:transform .15s ease,box-shadow .15s ease}.cdr-btn:hover{transform:translateY(-1px);box-shadow:0 18px 32px -16px #6366f1f2}.cdr-close{position:absolute;top:14px;right:14px;display:grid;place-items:center;width:28px;height:28px;border:none;border-radius:50%;background:#94a3b81f;color:var(--muted);cursor:pointer}.cdr-close svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round}.cdr-close:hover{background:#94a3b833;color:var(--text)}.cdr-fade-enter-active,.cdr-fade-leave-active{transition:opacity .2s ease}.cdr-fade-enter-from,.cdr-fade-leave-to{opacity:0}@keyframes cdr-pop{0%{opacity:0;transform:translateY(10px) scale(.96)}to{opacity:1;transform:none}}@keyframes cdr-spin{to{transform:rotate(360deg)}}@media (max-width: 640px){.countdown-strip{gap:10px;padding:12px;border-radius:16px}.countdown-strip-icon{width:40px;height:40px;border-radius:12px}.countdown-strip-icon svg{width:19px;height:19px}.countdown-strip-main{flex:1}.countdown-strip-days{margin-left:0;padding:6px 10px}.countdown-strip-days b{font-size:22px}.countdown-strip-days b.today{font-size:15px}.countdown-strip-arrow{display:none}.cdr-card{padding:26px 20px 18px;border-radius:22px}.cdr-number b{font-size:54px}}.dash-head{align-items:center}.dash-head-main h1{letter-spacing:-.02em}.dash-date{display:inline-flex;align-items:center;gap:6px;margin:4px 0 0;color:var(--muted);font-size:12.5px}.dash-date svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.dash-quote{display:flex;align-items:center;flex-wrap:wrap;gap:7px;margin:7px 0 0;color:var(--muted);font-size:12.5px;line-height:1.55}.dash-quote-tag{flex:none;padding:2px 9px;border:1px solid rgba(99,102,241,.2);border-radius:999px;background:#6366f114;color:var(--primary-dark);font-size:10.5px;font-weight:700}.dash-head-actions{display:flex;align-items:center;gap:10px}.dash-points{display:inline-flex;align-items:center;gap:6px;padding:7px 12px;border:1px solid rgba(245,159,0,.22);border-radius:999px;background:linear-gradient(135deg,#ffd43b2e,#f59f000f);color:#b45309;font-size:12px;font-weight:700}.dash-points svg{width:14px;height:14px;fill:#f59f00;stroke:none}.dash-points b{font-size:14px;font-weight:900;font-variant-numeric:tabular-nums}.dash-checkin{display:inline-flex;align-items:center;gap:6px}.dash-checkin svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.dash-stat{position:relative;overflow:hidden;transition:transform .18s ease,box-shadow .18s ease}.dash-stat:after{content:"";position:absolute;right:-30px;bottom:-40px;width:120px;height:120px;border-radius:50%;background:radial-gradient(circle,rgba(99,102,241,.08),transparent 70%)}.dash-stat.today{background:linear-gradient(160deg,#fff,#f5f7ff)}.dash-stat.streak{background:linear-gradient(160deg,#fff,#f2fbf6)}.dash-stat.week{background:linear-gradient(160deg,#fff,#f7f5ff)}.dash-stat:hover{transform:translateY(-2px);box-shadow:0 20px 34px -24px #1e293b59}.dash-stat-icon{position:absolute;top:16px;right:16px;display:grid;place-items:center;width:34px;height:34px;border-radius:11px;background:#6366f11a;color:#4f46e5}.dash-stat.streak .dash-stat-icon{background:#12b8861f;color:#0b8a63}.dash-stat.week .dash-stat-icon{background:#8b5cf61f;color:#7c3aed}.dash-stat-icon svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.dash-stat .stat-value{font-size:34px;font-weight:800;letter-spacing:-.03em}.dash-stat-sub{margin-top:6px;color:var(--muted);font-size:11.5px}.dash-status{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:999px;background:#94a3b81f;color:var(--muted);font-size:11px;font-weight:700}.dash-status i{width:7px;height:7px;border-radius:50%;background:#94a3b8}.dash-status.running{background:#12b8861f;color:#0b8a63}.dash-status.running i{background:#12b886;box-shadow:0 0 0 3px #12b8862e;animation:dash-pulse 1.6s ease-in-out infinite}.dash-status.paused{background:#f59f001f;color:#b45309}.dash-status.paused i{background:#f59f00}@keyframes dash-pulse{0%,to{box-shadow:0 0 0 3px #12b8862e}50%{box-shadow:0 0 0 7px #12b8860d}}.dash-clock{display:flex;flex-direction:column;align-items:center;gap:2px;padding:16px 12px 14px;border:1px solid rgba(99,102,241,.14);border-radius:16px;background:radial-gradient(120% 140% at 50% 0%,rgba(99,102,241,.1),transparent 65%),#f8faffcc;text-align:center}.dash-clock-label{color:var(--muted);font-size:10px;font-weight:700;letter-spacing:.16em}.dash-clock strong{background:linear-gradient(135deg,#1e293b,#4f46e5);-webkit-background-clip:text;background-clip:text;color:transparent;font-size:44px;font-weight:800;font-variant-numeric:tabular-nums;letter-spacing:.04em;line-height:1.1}.dash-clock.running strong{background-image:linear-gradient(135deg,#0b8a63,#12b886)}.dash-clock-hint{color:var(--muted);font-size:11px}.dash-timer-actions{display:flex;flex-wrap:wrap;gap:8px}.dash-timer-actions .btn{display:inline-flex;align-items:center;justify-content:center;gap:6px}.dash-timer-actions .btn-primary{flex:1}.dash-timer-actions svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.dash-timer-note{margin:0;text-align:center}.hour-bars{position:relative}.hour-bars:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:10px;background:repeating-linear-gradient(to top,rgba(148,163,184,.16) 0 1px,transparent 1px 25%);pointer-events:none}.hour-bars .hour-col{position:relative;z-index:1}.hour-bar{border-radius:5px 5px 3px 3px;box-shadow:0 4px 10px -6px #4f46e580}.hour-col:hover .hour-bar{filter:brightness(1.08)}.hour-bar.now{box-shadow:0 0 0 3px #12b8861f,0 4px 12px -4px #0596698c}.hour-summary{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.hour-summary-chip{display:inline-flex;align-items:center;gap:5px;padding:5px 10px;border:1px solid var(--line);border-radius:999px;background:#94a3b814;color:var(--muted);font-size:11px}.hour-summary-chip b{color:var(--text);font-weight:800}.hour-summary-chip.accent{border-color:#6366f133;background:#6366f114;color:#4f46e5}.hour-summary-chip svg{width:13px;height:13px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.hour-section-title{display:flex;align-items:center;gap:10px}.hour-section-title:after{content:"";flex:1;height:1px;background:linear-gradient(90deg,var(--line),transparent)}.dash-chart-card .legend-percent{padding:2px 8px;border-radius:999px;background:#6366f114;color:var(--primary-dark)}.dash-chart-card .legend-row.active .legend-percent{background:var(--primary);color:#fff}.dash-record-count{display:inline-grid;place-items:center;min-width:20px;height:20px;padding:0 6px;margin-left:6px;border-radius:999px;background:#6366f11a;color:#4f46e5;font-size:11px;font-weight:800;vertical-align:2px}.dash-more{display:inline-flex;align-items:center;gap:2px;color:var(--primary-dark);font-size:12px;font-weight:600;text-decoration:none}.dash-more svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;transition:transform .15s ease}.dash-more:hover svg{transform:translate(2px)}.dash-record-list{display:flex;flex-direction:column;gap:8px}.dash-record-entry{grid-template-columns:52px minmax(0,1fr) auto;padding:10px 12px;border:1px solid var(--line);border-radius:14px;background:#94a3b80a;transition:border-color .15s ease,background .15s ease,transform .15s ease}.dash-record-entry:hover{border-color:#6366f147;background:#6366f10d;transform:translate(2px)}.dash-record-entry .record-time{display:inline-grid;place-items:center;height:26px;border-radius:999px;background:#6366f114;color:var(--primary-dark);font-size:11px;font-weight:700}.dash-record-entry .record-subject{display:flex;align-items:center;gap:6px;font-weight:700}.record-dot{width:8px;height:8px;flex:none;border-radius:50%;box-shadow:0 0 0 2px #ffffffe6}.dash-record-entry .record-duration{padding:3px 9px;border-radius:999px;background:#12b8861a;color:#0b8a63;font-size:11.5px;font-weight:700;white-space:nowrap}.dash-record-entry .record-duration i{margin-left:2px;font-size:10px;font-style:normal;font-weight:600;opacity:.8}@media (max-width: 640px){.dash-head-actions{width:100%;justify-content:flex-end}.dash-clock strong{font-size:38px}.dash-stat .stat-value{font-size:28px}.dash-timer-actions .btn{flex:1 1 auto}}@media (max-width: 640px){.dash-head{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px 10px}.dash-head-main{display:contents}.dash-head-main h1{grid-column:1;grid-row:1;font-size:22px}.dash-head-actions{grid-column:2;grid-row:1;width:auto;justify-content:flex-end;gap:6px}.dash-head-actions .dash-points{gap:4px;padding:5px 9px;font-size:11px}.dash-head-actions .dash-points b{font-size:12.5px}.dash-head-actions .dash-checkin{padding:6px 10px;font-size:12px}.dash-date{grid-column:1 / -1;grid-row:2;margin-top:0}.dash-quote{grid-column:1 / -1;grid-row:3;margin-top:0}}@media (max-width: 520px){.dash-clock strong{font-size:34px}.dash-timer-actions{flex-direction:column}.dash-timer-actions .btn{width:100%;flex:none}.dash-timer-note{font-size:11.5px}}.page-head-main{display:flex;align-items:center;gap:14px}.back-pill{display:inline-flex;align-items:center;justify-content:center;width:42px;height:42px;flex-shrink:0;border:none;border-radius:50%;background:linear-gradient(135deg,var(--primary),#7c3aed);color:#fff;cursor:pointer;box-shadow:0 8px 20px #4f46e559;transition:transform .2s ease,box-shadow .2s ease}.back-pill svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}.back-pill:hover{transform:translateY(-1px);box-shadow:0 10px 24px #4f46e573}.btn-back-icon{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;flex-shrink:0;border:1px solid var(--line);border-radius:10px;background:transparent;color:var(--muted);cursor:pointer;transition:color .2s ease,border-color .2s ease,background .2s ease}.icon-btn svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.icon-btn.danger:hover{color:var(--danger);border-color:var(--danger);background:#dc262614}.countdown-list{display:flex;flex-direction:column;gap:10px}.countdown-item{display:flex;align-items:center;gap:14px;padding:14px;border:1px solid var(--line);border-radius:14px;background:linear-gradient(135deg,#f6f8ff,#fbfcff)}.countdown-item-main{flex:1;min-width:0}.countdown-item .countdown-days{min-width:58px;font-size:30px}.countdown-item .countdown-days.past{color:var(--muted)}.countdown-item-title{font-size:13px;font-weight:600;color:#4a5163}.day-group{margin-bottom:18px}.day-group:last-child{margin-bottom:0}.day-head{display:flex;align-items:center;gap:10px;padding-bottom:10px;border-bottom:1px solid var(--line);margin-bottom:4px}.day-head strong{font-size:15px}.day-total{margin-left:auto;font-size:12px;color:var(--muted)}.records-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-bottom:16px}.records-stat{position:relative;display:flex;align-items:center;gap:15px;overflow:hidden;background:radial-gradient(130% 120% at 100% 0%,rgba(99,102,241,.09),transparent 58%),var(--card);transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}.records-stat:after{content:"";position:absolute;right:-32px;bottom:-46px;width:110px;height:110px;border-radius:50%;border:1px solid rgba(99,102,241,.1);pointer-events:none}.records-stat:hover{transform:translateY(-2px);border-color:#6366f147;box-shadow:0 16px 32px #1720401a}.records-stat-icon{display:grid;place-items:center;flex:none;width:50px;height:50px;border-radius:16px}.records-stat-icon svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.records-stat-icon.accent{background:linear-gradient(135deg,#eef2ff,#dfe7ff);color:#4f46e5;box-shadow:inset 0 0 0 1px #6366f124}.records-stat-icon.green{background:linear-gradient(135deg,#ecfdf5,#d3f7e8);color:#0f9d76;box-shadow:inset 0 0 0 1px #12b88629}.records-stat-icon.amber{background:linear-gradient(135deg,#fff8ec,#ffe9c7);color:#d97706;box-shadow:inset 0 0 0 1px #f59e0b2e}.records-stat-body{display:flex;flex-direction:column;gap:2px;min-width:0}.records-stat-label{color:var(--muted);font-size:12px;letter-spacing:.02em}.records-stat-value{font-size:28px;line-height:1.15;font-weight:700;letter-spacing:-.02em;font-variant-numeric:tabular-nums}.records-stat-value em{margin-left:4px;color:var(--muted);font-size:12px;font-style:normal;font-weight:600}.records-stat-sub{color:var(--muted);font-size:11.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}[data-theme=dark] .records-stat{background:radial-gradient(130% 120% at 100% 0%,rgba(129,140,248,.16),transparent 58%),var(--card)}[data-theme=dark] .records-stat:hover{box-shadow:0 16px 32px #0006}[data-theme=dark] .records-stat-icon.accent{background:linear-gradient(135deg,#6366f147,#6366f124);color:#c7d2fe}[data-theme=dark] .records-stat-icon.green{background:linear-gradient(135deg,#12b88642,#12b8861f);color:#6ee7b7}[data-theme=dark] .records-stat-icon.amber{background:linear-gradient(135deg,#f59e0b42,#f59e0b1f);color:#fcd34d}@media (max-width: 860px){.records-stats{grid-template-columns:1fr;gap:10px}}.day-list-head{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin:4px 2px 12px}.day-list-head h2{margin:0 0 4px;font-size:16px}.day-list-head p{margin:0}.day-toggle-all{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;border:1px solid var(--line);border-radius:999px;background:var(--card);color:var(--muted);font-size:12px;font-weight:600;cursor:pointer;transition:border-color .16s ease,color .16s ease,box-shadow .16s ease,transform .16s ease}.day-toggle-all svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;transition:transform .2s ease}.day-toggle-all svg.open{transform:rotate(180deg)}.day-toggle-all:hover{color:var(--primary);border-color:#6366f166;box-shadow:0 8px 18px #4f46e51f;transform:translateY(-1px)}.day-card-list{display:grid;gap:12px}.day-card{position:relative;overflow:hidden;padding:0;background:radial-gradient(120% 90% at 100% 0%,rgba(79,70,229,.07),transparent 55%),var(--card);transition:box-shadow .2s ease,transform .2s ease,border-color .2s ease}.day-card:hover{transform:translateY(-2px);box-shadow:0 16px 32px #1720401a}.day-card.open{border-color:#6366f159;box-shadow:0 18px 36px #1720401f}.day-card-head{display:flex;align-items:center;gap:14px;width:100%;padding:16px 18px 14px;border:0;background:transparent;font:inherit;color:inherit;text-align:left;cursor:pointer}.day-card-head:focus{outline:none}.day-card-head:focus-visible{outline:2px solid rgba(99,102,241,.55);outline-offset:-2px;border-radius:18px}.day-date-badge{display:flex;flex-direction:column;align-items:center;justify-content:center;flex:none;width:54px;height:54px;border-radius:16px;background:linear-gradient(135deg,#6366f1,#8b5cf6);color:#fff;box-shadow:0 10px 20px #6366f147}.day-date-badge b{font-size:20px;line-height:1.1;font-weight:700}.day-date-badge em{font-style:normal;font-size:11px;opacity:.9}.day-card-main{display:flex;flex-direction:column;gap:4px;min-width:0;flex:1}.day-card-main strong{font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.day-card-sub{font-size:12px;color:var(--muted)}.day-card-tags{display:flex;align-items:center;gap:8px;flex:none}.day-card-tags .day-total{margin-left:0}.day-card-chevron{display:inline-flex;align-items:center;justify-content:center;flex:none;width:30px;height:30px;border-radius:50%;background:#6366f114;color:var(--primary);transition:transform .2s ease,background .2s ease}.day-card-chevron svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.day-card-chevron.open{transform:rotate(180deg);background:#6366f129}.day-card .day-mix-bar{margin:0 18px 10px;height:6px}.day-detail{margin:0 18px;padding:12px 0 16px;border-top:1px dashed var(--line)}.day-detail .day-mix{margin-bottom:10px}.day-detail .record-entry:first-of-type{padding-top:0}[data-theme=dark] .day-card{background:radial-gradient(120% 90% at 100% 0%,rgba(129,140,248,.16),transparent 55%),var(--card)}[data-theme=dark] .day-card:hover{box-shadow:0 16px 32px #0006}[data-theme=dark] .day-toggle-all{background:#ffffff0a}.chart-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:18px}.chart-block{min-width:0;padding:16px;border:1px solid var(--line);border-radius:14px;background:linear-gradient(180deg,#fff,#fbfcff)}.chart-block-wide{grid-column:1 / -1}.chart-title{margin-bottom:14px;font-size:12px;font-weight:600;letter-spacing:.02em;color:var(--muted)}.pie-wrap{display:flex;justify-content:center;padding:2px 0 14px}.pie{position:relative;width:160px;height:160px;border-radius:50%;box-shadow:0 10px 24px #4f46e524}.pie:after{content:"";position:absolute;top:15px;right:15px;bottom:15px;left:15px;border-radius:50%;background:#fff;box-shadow:inset 0 0 0 1px var(--line)}.pie-hole{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;display:flex;flex-direction:column;align-items:center;justify-content:center}.pie-hole strong{font-size:23px;letter-spacing:-.02em;line-height:1.2}.pie-hole span{font-size:11px;color:var(--muted)}.pie-legend{display:flex;flex-direction:column;gap:8px;max-height:168px;overflow-y:auto;padding-right:2px}.legend-row{display:flex;align-items:center;gap:8px;font-size:12.5px}.legend-dot{flex:none;width:9px;height:9px;border-radius:3px}.legend-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.legend-value{margin-left:auto;color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap}.bar-chart{display:flex;gap:10px}.bar-axis{display:flex;flex-direction:column;justify-content:space-between;height:180px;padding:6px 0 18px;font-size:10px;color:var(--muted);text-align:right;font-variant-numeric:tabular-nums}.bar-area{flex:1;display:flex;align-items:flex-end;gap:4px;height:180px;padding-top:6px;overflow-x:auto;overflow-y:hidden}.bar-col{flex:1 1 0;min-width:9px;height:100%;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:6px}.bar-stack{width:100%;max-width:26px;display:flex;flex-direction:column-reverse;border-radius:6px 6px 3px 3px;overflow:hidden;background:#eef1f7;transition:height .45s cubic-bezier(.22,1,.36,1)}.bar-seg{display:block;width:100%}.bar-x{font-size:10px;color:var(--muted);white-space:nowrap}.line-svg{display:block;width:100%;height:180px}.line-labels{display:flex;justify-content:space-between;gap:8px;margin-top:8px;font-size:11px;color:var(--muted);font-variant-numeric:tabular-nums}.day-mix-bar{display:flex;height:6px;margin:-2px 0 10px;border-radius:999px;overflow:hidden;background:#f1f3f7}.day-mix-bar span{display:block;height:100%}.day-mix{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}.day-mix-chip{display:inline-flex;align-items:center;gap:6px;padding:3px 9px;border:1px solid var(--line);border-radius:999px;background:#f7f9fc;font-size:11.5px;color:#4b5568}.day-mix-chip i{display:inline-block;width:7px;height:7px;border-radius:2px}@media (max-width: 900px){.chart-grid{grid-template-columns:minmax(0,1fr)}.pie-legend{max-height:none}.bar-axis,.bar-area,.line-svg{height:150px}}.day-pick-row{margin-bottom:12px}.day-select{width:100%}.day-summary{margin-bottom:12px;font-size:12px;color:var(--muted)}.day-pie-row{display:flex;align-items:center;gap:16px}.pie-sm{flex:none;width:104px;height:104px;box-shadow:0 6px 16px #4f46e51f}.pie-sm:after{top:11px;right:11px;bottom:11px;left:11px}.pie-sm .pie-hole strong{font-size:17px}.day-subject-bars{flex:1;min-width:0;display:flex;flex-direction:column;gap:8px}.day-subject-row{display:flex;align-items:center;gap:7px;font-size:12px}.day-subject-name{flex:none;width:52px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.day-subject-track{flex:1;height:7px;border-radius:999px;background:#f1f3f7;overflow:hidden}.day-subject-track span{display:block;height:100%;border-radius:999px}.day-subject-meta{flex:none;font-size:11px;color:var(--muted);font-variant-numeric:tabular-nums}.stage-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:18px}.stage-bars{height:190px}@media (max-width: 900px){.stage-grid{grid-template-columns:minmax(0,1fr)}}@media (max-width: 560px){.day-pie-row{flex-direction:column;align-items:stretch}.pie-sm{margin:0 auto}}.hour-bars{display:flex;align-items:flex-end;gap:3px;height:190px;padding-top:6px}.hour-col{flex:1;height:100%;display:flex;align-items:flex-end;justify-content:center}.hour-bar{width:100%;max-width:15px;border-radius:4px 4px 2px 2px;background:linear-gradient(180deg,#a5b4fc,#4f46e5);transition:height .4s ease}.hour-bar.now{background:linear-gradient(180deg,#6ee7b7,#059669)}.hour-axis{display:flex;justify-content:space-between;margin-top:8px;font-size:10px;color:var(--muted)}.hour-summary{display:flex;flex-wrap:wrap;justify-content:space-between;gap:6px;margin-top:10px;font-size:12px;color:var(--muted)}.hour-section-title{margin:18px 0 2px;padding-top:14px;border-top:1px dashed var(--line);font-size:12px;font-weight:600;letter-spacing:.02em;color:var(--muted)}.donut-compact{width:150px;height:150px;margin:10px auto 12px}.donut-compact .donut-center strong{font-size:23px}.stat-sub{margin-top:6px;font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums}.collapse-head{display:flex;align-items:center;gap:12px;width:100%;margin:0;padding:0;border:none;background:none;text-align:left;cursor:pointer}.collapse-head:focus-visible{outline:none;border-radius:10px;box-shadow:0 0 0 3px #4f46e52e}.collapse-title{min-width:0}.collapse-title h2{margin-bottom:2px}.collapse-title p{font-size:12px}.collapse-head .tag{flex:none;margin-left:auto}.collapse-chevron{flex:none;display:grid;place-items:center;width:30px;height:30px;border-radius:9px;background:#f2f4f8;color:var(--muted);transition:transform .25s ease,background .2s ease,color .2s ease}.collapse-chevron svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}.collapse-chevron.open{transform:rotate(180deg);background:var(--primary-soft);color:var(--primary-dark)}.collapse-head+.chart-grid,.collapse-head+.stage-grid{margin-top:16px}.day-pick-wrap{position:relative}.day-pick{position:relative;display:flex;align-items:center;gap:9px;width:100%;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:var(--card);color:var(--text);font-family:inherit;text-align:left;cursor:pointer;transition:border-color .18s ease,box-shadow .18s ease,background .18s ease}.day-pick:hover{border-color:#6366f159;background:var(--hover);box-shadow:0 6px 16px -12px #4f46e559}.day-pick-icon{flex:none;width:17px;height:17px;fill:none;stroke:var(--primary-dark);stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.day-pick-text{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:600}.day-pick-arrow{flex:none;padding:3px 9px;border-radius:999px;background:var(--primary-soft);color:var(--primary-dark);font-size:11px;font-weight:600}.legend-row.clickable{cursor:pointer}.room-card{display:flex;flex-direction:column;gap:12px}.history-card{position:relative}.history-card-title{display:flex;align-items:center;gap:8px;padding-right:42px}.history-card .room-delete-btn{position:absolute;top:13px;right:13px;width:30px;height:30px;border-radius:9px}.history-card-foot{display:flex;align-items:center;gap:10px;margin-top:auto}.room-delete-btn{display:inline-flex;align-items:center;justify-content:center;flex:none;width:32px;height:32px;padding:0;border:1px solid rgba(224,49,49,.24);border-radius:10px;background:#e031310f;color:#e03131;cursor:pointer;transition:border-color .16s ease,background .16s ease,transform .16s ease}.room-delete-btn svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}.room-delete-btn:hover{border-color:#e031318c;background:#e031311f;transform:translateY(-1px)}.room-full-mask{position:fixed;top:0;right:0;bottom:0;left:0;z-index:4000;background:var(--bg)}.room-full{display:flex;flex-direction:column;width:100%;height:100%;background:var(--bg)}.room-full-head{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:16px 24px;border-bottom:1px solid var(--line);background:var(--card)}.room-full-title{display:flex;align-items:center;gap:12px;min-width:0}.room-full-icon{display:grid;place-items:center;width:40px;height:40px;flex:none;border-radius:12px;background:var(--tone-bg, var(--soft));color:var(--tone-ink, var(--text))}.room-full-icon svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;opacity:.72}.room-full-title-text{min-width:0}.room-full-title-text h2{font-size:17px}.room-full-title-text p{margin-top:2px}.room-full-body{flex:1;min-height:0;padding:20px 24px 40px;overflow-y:auto}.room-full-content{max-width:1120px;margin:0 auto}.room-browse-toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}.room-full-enter-active,.room-full-leave-active{transition:opacity .2s ease}.room-full-enter-from,.room-full-leave-to{opacity:0}.room-full-enter-active .room-full{animation:room-full-up .24s cubic-bezier(.22,1,.36,1)}.room-full-leave-active .room-full{animation:room-full-up .18s ease reverse}@keyframes room-full-up{0%{opacity:.4;transform:translateY(20px)}to{opacity:1;transform:none}}[data-theme=dark] .room-full-head{border-color:#242c3a}@media (max-width: 760px){.room-full-head{align-items:flex-start;padding:12px 14px}.room-full-icon{width:36px;height:36px;border-radius:11px}.room-full-icon svg{width:19px;height:19px}.room-full-title{gap:10px}.room-full-title-text h2{font-size:15px}.room-full-body{padding:14px 14px 28px}}@media (max-width: 520px){.room-full-title .tag{display:none}}.room-code{font-family:SFMono-Regular,Consolas,monospace;font-weight:700;letter-spacing:.18em;color:var(--primary-dark)}.room-head{align-items:center}.room-head-actions{display:flex;align-items:center;gap:8px;margin-left:auto}.room-icon-btn{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;flex:none;border:1px solid var(--line);border-radius:12px;background:var(--card);color:var(--muted);cursor:pointer;box-shadow:var(--shadow);transition:transform .15s ease,border-color .15s ease,color .15s ease,background .15s ease}.room-icon-btn svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.room-icon-btn:hover{color:var(--primary-dark);border-color:#6366f166;transform:translateY(-1px)}.room-icon-btn.invite{color:#0b8a63;border-color:#12b88659;background:linear-gradient(180deg,#12b8861f,#12b8860a)}.room-icon-btn.invite:hover{color:#087f5b;border-color:#12b88699}.room-icon-btn.danger{color:#e03131;border-color:#e031314d;background:linear-gradient(180deg,#e031311a,#e0313108)}.room-icon-btn.danger:hover{color:#c92a2a;border-color:#e031318c}.room-meta{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin:-6px 0 16px}.room-code-chip{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border:1px dashed rgba(79,70,229,.45);border-radius:999px;background:#4f46e514;color:var(--primary-dark);font-size:12px;font-weight:600;cursor:pointer;transition:background .15s ease,border-color .15s ease}.room-code-chip b{font-family:SFMono-Regular,Consolas,monospace;font-size:12.5px;letter-spacing:.14em}.room-code-chip svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;opacity:.7}.room-code-chip:hover{background:#4f46e524;border-color:#4f46e5b3}.room-meta-chip{display:inline-flex;align-items:center;padding:6px 12px;border:1px solid var(--line);border-radius:999px;background:var(--card);color:var(--muted);font-size:12px;font-weight:600}.room-meta-chip.green{color:#0b8a63;border-color:#12b8864d;background:#12b8861a}.room-timer-card{position:relative;overflow:hidden;background:radial-gradient(120% 90% at 100% 0%,rgba(79,70,229,.1),transparent 55%),var(--card)}.room-timer-tools{display:flex;align-items:center;gap:8px}.room-icon-btn.compact{width:34px;height:34px;border-radius:10px;box-shadow:none}.room-icon-btn.compact.with-label{width:auto;gap:6px;padding:0 12px;color:var(--primary-dark);border-color:#6366f147;background:#6366f10f;font-size:12px;font-weight:600;white-space:nowrap}.room-icon-btn.compact.with-label svg{width:15px;height:15px}.room-icon-btn.compact svg{width:16px;height:16px}.room-timer-stats{display:flex;align-items:center;justify-content:space-between}.room-timer-actions{display:flex;align-items:center;gap:8px;margin-top:16px}.room-timer-actions .btn{display:inline-flex;align-items:center;justify-content:center;gap:6px}.room-timer-actions svg,.room-checkin svg{width:16px;height:16px;flex:none;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.room-timer-main{flex:1}.room-timer-reset{flex:none;padding-left:14px;padding-right:14px}.room-checkin{display:flex;align-items:center;justify-content:center;gap:6px;width:100%;margin-top:8px}.room-timer-note{margin:8px 0 0;text-align:center}.room-member-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:8px}.room-member-grid .member{width:100%;padding:8px 10px 8px 8px;border:1px solid var(--line);border-radius:12px;background:#94a3b814}.members{display:flex;flex-wrap:wrap;gap:8px}.member{display:inline-flex;align-items:center;gap:7px;padding:5px 10px 5px 6px;border-radius:999px;background:#f6f8fb;font-size:12px}.member .avatar{width:22px;height:22px;font-size:12px}.member-owner{padding:1px 6px;border-radius:999px;background:#4c6ef51f;color:var(--primary-dark);font-size:10px;font-style:normal;font-weight:700}.timer{font-size:46px;font-weight:650;letter-spacing:.02em;font-variant-numeric:tabular-nums;text-align:center;color:var(--text)}.timer.running{color:var(--primary-dark)}.chat{display:flex;flex-direction:column;height:460px}.chat-list{flex:1;overflow-y:auto;overflow-x:hidden;display:flex;flex-direction:column;gap:10px;padding:4px 2px 12px}.chat-msg{display:flex;flex-direction:column;gap:3px;max-width:78%;align-self:flex-start}.chat-msg.mine{align-self:flex-end;align-items:flex-end}.chat-meta{font-size:11px;color:var(--muted)}.chat-edited{margin-left:4px;font-size:11px;color:var(--muted);opacity:.8}.chat-msg-tools{display:flex;gap:2px;margin-top:1px;opacity:0;transition:opacity .15s ease}.chat-msg:hover .chat-msg-tools,.chat-msg:focus-within .chat-msg-tools{opacity:1}@media (hover: none){.chat-msg-tools{opacity:.8}}.chat-msg-tools .link{font-size:12px;padding:2px 7px;border-radius:6px}.chat-msg-tools .link:hover{color:var(--primary-dark);background:var(--primary-soft)}.chat-recalled{padding:6px 12px;border-radius:10px;background:#8a91a31f;color:var(--muted);font-size:12px;font-style:italic}.chat-edit{display:flex;align-items:center;gap:6px;width:min(420px,100%)}.chat-edit .input{flex:1 1 0;width:auto;min-width:0;padding:7px 10px;font-size:13px}.chat-bubble{padding:8px 12px;border-radius:12px;background:#f3f5f9;word-break:break-word;font-size:13px}.chat-msg.mine .chat-bubble{background:var(--primary);color:#fff}.chat-input{display:flex;gap:8px;padding-top:12px;border-top:1px solid var(--line)}.login-page{min-height:100vh;display:grid;place-items:center;padding:32px 20px;background:radial-gradient(1100px 500px at 50% -10%,#e7ebff,#f5f6f800 60%),var(--bg)}.login-card{width:100%;max-width:420px;padding:32px}.login-brand{display:flex;align-items:center;gap:10px;margin-bottom:6px}.login-sub{color:var(--muted);font-size:13px;margin-bottom:24px}.footer-note{margin-top:18px;font-size:12px;color:var(--muted);text-align:center}@media (max-width: 860px){.grid-3,.grid-2{grid-template-columns:1fr}.topbar{padding:12px 16px;gap:12px}.nav{margin-left:0}.nav a{padding:6px 10px;font-size:13px}.user-chip span:not(.avatar){display:none}.main{padding:20px 16px 48px}}.timer-display{font-variant-numeric:tabular-nums;font-size:30px;font-weight:700;letter-spacing:.06em;color:var(--text);padding:2px 0}.timer-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.input[readonly]{background:#f4f6fb;color:var(--muted);cursor:default}.focus-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1200;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:32px 20px;background:radial-gradient(circle at 50% 28%,#1c2540,#0d111c 62%);color:#f7f9ff;text-align:center}.focus-overlay-subject{font-size:15px;letter-spacing:.18em;color:#9aa6c8}.focus-overlay-timer{font-size:clamp(72px,17vw,176px);font-weight:700;font-variant-numeric:tabular-nums;letter-spacing:.03em;line-height:1.05}.focus-overlay-hint{font-size:13px;color:#8b97b8}.focus-overlay-note{max-width:560px;font-size:13px;color:#c3cbe4}.focus-overlay-actions{display:flex;gap:12px;flex-wrap:wrap;justify-content:center;margin-top:26px}.focus-btn{padding:10px 24px;border-radius:999px;border:1px solid rgba(255,255,255,.18);background:#ffffff0f;color:#e7ecff;font-size:14px;cursor:pointer;transition:background .15s ease,border-color .15s ease,opacity .15s ease}.focus-btn:hover:not(:disabled){background:#ffffff24}.focus-btn.primary{background:#4c6ef5;border-color:#4c6ef5;color:#fff}.focus-btn.primary:hover:not(:disabled){background:#3b5bdb}.focus-btn.primary:disabled{opacity:.45;cursor:not-allowed}.focus-btn.ghost{color:#9aa6c8}.focus-overlay-tip{font-size:12px;color:#6f7b9c;margin-top:14px}.focus-overlay-timer.paused{color:#8b97b8}@media (max-width: 640px){.focus-overlay{gap:8px;padding:24px 16px calc(24px + env(safe-area-inset-bottom))}.focus-overlay-subject{font-size:13px;letter-spacing:.14em}.focus-overlay-timer{font-size:clamp(54px,19vw,104px);letter-spacing:.01em}.focus-overlay-hint{font-size:12px}.focus-overlay-note{max-width:100%;padding:0 6px;font-size:12px}.focus-overlay-actions{width:100%;margin-top:18px;flex-direction:column;flex-wrap:nowrap;gap:8px}.focus-overlay-actions .focus-btn{width:100%}.focus-overlay-tip{margin-top:10px;padding:0 8px;font-size:11px}}.room-focus{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1200;display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:24px;padding:28px;background:radial-gradient(circle at 35% 20%,#1c2540,#0d111c 62%);background-repeat:no-repeat;background-size:cover;background-position:center}.focus-overlay,.room-focus{background-repeat:no-repeat;background-size:cover;background-position:center}.room-focus .focus-overlay-timer{font-size:clamp(56px,8vw,112px);letter-spacing:.02em}.room-focus-main{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;min-width:0;color:#f7f9ff;text-align:center}.room-focus.side-collapsed{grid-template-columns:minmax(0,1fr)}.room-focus.side-collapsed .room-focus-side{display:none}.rf-side-toggle{position:absolute;top:22px;right:22px;z-index:2;display:inline-flex;align-items:center;gap:6px;padding:8px 14px;border:1px solid rgba(255,255,255,.16);border-radius:999px;background:#ffffff14;color:#e7ecff;font-size:12px;font-weight:600;cursor:pointer;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);transition:background .16s ease,border-color .16s ease}.rf-side-toggle:hover{border-color:#ffffff4d;background:#ffffff24}.rf-side-toggle svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}@media (min-width: 901px){.room-focus-side-head{cursor:pointer}.room-focus-side .rf-chat-caret{display:block;transform:rotate(-90deg)}}.room-focus-progress{width:min(520px,70%);height:6px;margin-top:16px;overflow:hidden;border-radius:999px;background:#ffffff24}.room-focus-progress span{display:block;height:100%;border-radius:999px;background:#4c6ef5;transition:width .4s ease}.room-focus-goal{font-size:12px;color:#8b97b8}.room-focus-side{display:flex;flex-direction:column;min-height:0;padding:18px;border-radius:16px;background:#fff;color:var(--text);box-shadow:0 20px 60px #00000059}.room-focus-side-head{display:flex;align-items:center;justify-content:space-between;width:100%;margin-bottom:10px;padding:0;border:none;background:transparent;color:inherit;font:inherit;text-align:left;cursor:default}.rf-chat-title,.rf-chat-meta{display:inline-flex;align-items:center;gap:8px}.rf-chat-title{gap:7px;min-width:0}.rf-chat-title strong{font-size:14px}.rf-chat-title svg{flex:none;width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;opacity:.55}.rf-chat-caret{display:none;width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;opacity:.5;transition:transform .24s ease}.rf-chat-body{display:flex;flex:1;flex-direction:column;min-height:0}.rf-close{display:none}.room-focus-chat{flex:1;min-height:0}.room-focus-members{margin-top:12px;padding-top:10px;border-top:1px solid var(--line)}.room-focus-members .members{margin-top:8px}@media (max-width: 900px){.room-focus{grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr) auto;gap:10px;padding:14px 14px calc(14px + env(safe-area-inset-bottom))}.room-focus-main{position:relative;justify-content:center;gap:0;padding:40px 2px 4px;overflow-y:auto;scrollbar-width:none}.room-focus-main::-webkit-scrollbar{display:none}.room-focus .hide-on-mobile{display:none}.rf-close{position:absolute;top:0;right:0;display:grid;place-items:center;width:36px;height:36px;padding:0;border:1px solid color-mix(in srgb,currentColor 13%,transparent);border-radius:999px;background:color-mix(in srgb,currentColor 6%,transparent);color:inherit;opacity:.72;cursor:pointer;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);transition:opacity .16s ease,background .16s ease}.rf-close:hover{opacity:1;background:color-mix(in srgb,currentColor 12%,transparent)}.rf-close svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.room-focus .focus-overlay-subject{max-width:86%;padding:6px 14px;overflow:hidden;border:1px solid color-mix(in srgb,currentColor 12%,transparent);border-radius:999px;background:color-mix(in srgb,currentColor 5%,transparent);color:color-mix(in srgb,currentColor 60%,transparent);font-size:10.5px;letter-spacing:.16em;text-overflow:ellipsis;white-space:nowrap}.room-focus .focus-overlay-timer{margin:16px 0 8px;font-size:clamp(68px,22vw,112px);font-weight:300;letter-spacing:-.01em;line-height:1}.room-focus .focus-overlay-hint{font-size:11.5px;letter-spacing:.04em;color:color-mix(in srgb,currentColor 46%,transparent)}.room-focus-progress{width:min(340px,76%);height:3px;margin-top:28px;background:color-mix(in srgb,currentColor 12%,transparent)}.room-focus-progress span{background:linear-gradient(90deg,#7c8cff,#a78bfa);box-shadow:0 0 12px #7c8cff8c}.room-focus .room-focus-goal{margin-top:10px;font-size:11px;letter-spacing:.04em;color:color-mix(in srgb,currentColor 42%,transparent)}.room-focus .focus-overlay-actions{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:center;gap:8px;width:100%;max-width:340px;margin-top:28px}.room-focus .focus-overlay-actions .focus-btn{flex:1 1 calc(50% - 4px);width:auto;min-height:48px;height:auto;padding:10px 12px;border-radius:14px;font-size:13px;font-weight:700;line-height:1.35;letter-spacing:.02em}.room-focus .focus-overlay-actions .focus-btn.primary{border-color:transparent;background:linear-gradient(135deg,#6f7dff,#8b5cf6);box-shadow:0 16px 32px -16px #6f7dffcc}.room-focus .focus-overlay-actions .focus-btn.ghost{flex:0 1 auto;width:auto;min-height:0;height:33px;padding:0 14px;border-color:color-mix(in srgb,currentColor 10%,transparent);border-radius:999px;background:transparent;color:color-mix(in srgb,currentColor 52%,transparent);font-size:11.5px;font-weight:600}.room-focus .focus-overlay-actions .focus-btn.ghost:hover:not(:disabled){background:color-mix(in srgb,currentColor 8%,transparent);color:color-mix(in srgb,currentColor 78%,transparent)}.room-focus .focus-overlay-tip{margin-top:16px;padding:0 12px;font-size:10.5px;line-height:1.6;color:color-mix(in srgb,currentColor 32%,transparent)}.room-focus-side{max-height:none;padding:0;overflow:hidden;border:1px solid color-mix(in srgb,currentColor 10%,transparent);border-radius:20px;background:color-mix(in srgb,currentColor 6%,transparent);color:inherit;box-shadow:none;backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px)}.room-focus-side .room-focus-side-head{margin:0;padding:14px 16px;cursor:pointer}.room-focus-side.is-open .room-focus-side-head{border-bottom:1px solid color-mix(in srgb,currentColor 8%,transparent)}.rf-chat-caret{display:block}.room-focus-side.is-open .rf-chat-caret{transform:rotate(180deg)}.room-focus-side .rf-chat-body{max-height:0;padding:0 14px;overflow:hidden;opacity:0;transition:max-height .32s ease,opacity .24s ease,padding .32s ease}.room-focus-side.is-open .rf-chat-body{max-height:42vh;padding:0 14px 14px;opacity:1}.room-focus-side .rf-chat-body .room-focus-chat{padding-top:10px}.room-focus-side .chat-bubble{background:color-mix(in srgb,currentColor 10%,transparent);color:inherit}.room-focus-side .chat-msg.mine .chat-bubble{background:linear-gradient(135deg,#6f7dff,#8b5cf6);color:#fff}.room-focus-side .chat-input{border-top-color:color-mix(in srgb,currentColor 8%,transparent)}.room-focus-side .chat-input .input{border-color:color-mix(in srgb,currentColor 12%,transparent);background:color-mix(in srgb,currentColor 7%,transparent);color:inherit}.room-focus-side .chat-input .input::placeholder{color:color-mix(in srgb,currentColor 38%,transparent)}.room-focus-side .member{background:color-mix(in srgb,currentColor 7%,transparent)}}@media (max-width: 560px){.room-focus{gap:8px;padding:12px 12px calc(12px + env(safe-area-inset-bottom))}.room-focus .focus-overlay-timer{font-size:clamp(64px,23vw,96px)}}.modal-mask{position:fixed;top:0;right:0;bottom:0;left:0;z-index:4000;display:flex;align-items:center;justify-content:center;padding:20px;background:#0d111c8c;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.modal{width:100%;max-width:420px;padding:22px 22px 18px;border-radius:18px;background:var(--card);box-shadow:0 24px 70px #00000047;animation:modal-in .16s ease}@keyframes modal-in{0%{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:none}}.modal-title{margin:0 0 10px;font-size:17px}.modal-text{margin:0;color:#4a5163;font-size:14px;line-height:1.7;white-space:pre-wrap;word-break:break-word}.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:22px}.modal-actions .btn{min-width:88px}.profile-modal{max-width:460px}.profile-modal-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:14px}.profile-modal-head .modal-title{margin:0}.profile-quota{display:flex;flex-direction:column;gap:4px;padding:12px 16px;margin-bottom:16px;border:1px solid #e3e9ff;border-radius:14px;background:linear-gradient(135deg,#eef2ff,#f8faff)}.profile-quota.empty{border-color:#fde3c8;background:linear-gradient(135deg,#fff6ec,#fffbf5)}.profile-quota>div{display:flex;align-items:baseline;justify-content:space-between;gap:10px}.profile-quota-label{font-size:12px;color:var(--muted)}.profile-quota-count{font-size:20px;color:var(--primary)}.profile-quota.empty .profile-quota-count{color:#d97706}.profile-quota-hint{font-size:12px;color:var(--muted)}.profile-form{display:grid;gap:12px}.profile-field-hint{font-size:11px;color:var(--muted)}.profile-tip{margin:14px 0 0;padding:10px 12px;border-radius:12px;background:#6366f10f;color:var(--muted);font-size:12px;line-height:1.6}[data-theme=dark] .profile-quota{border-color:#818cf847;background:linear-gradient(135deg,#6366f12e,#6366f10f)}[data-theme=dark] .profile-quota.empty{border-color:#f59e0b59;background:linear-gradient(135deg,#f59e0b29,#f59e0b0d)}.countdown-hero{padding:16px;border-radius:14px;background:linear-gradient(135deg,#eef2ff,#f7f9ff);border:1px solid #e3e9ff}.countdown-days{font-size:44px;font-weight:700;line-height:1.1;color:var(--primary);font-variant-numeric:tabular-nums}.countdown-days span{font-size:15px;margin-left:4px;color:var(--muted);font-weight:500}.countdown-title{margin:4px 0 10px;font-size:13px;color:#4a5163}.cd-skin-picker{display:flex;align-items:center;gap:8px}.cd-skin-dot{width:18px;height:18px;padding:0;border-radius:50%;border:2px solid transparent;background:linear-gradient(135deg,var(--cd-head),var(--cd-head-2));box-shadow:0 1px 4px #0f172a47;cursor:pointer;transition:transform .15s ease,border-color .15s ease,opacity .15s ease}.cd-skin-dot:hover{transform:scale(1.14)}.cd-skin-dot.locked{opacity:.35}.cd-skin-dot.active{border-color:var(--text)}.cd-toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:14px}.cd-stage{display:flex;flex-direction:column;min-height:calc(100vh - 250px);min-height:calc(100dvh - 250px);padding:20px 20px 24px}.cd-toolbar-actions{display:flex;align-items:center;gap:8px}.cd-add-icon{flex:none;display:grid;place-items:center;width:36px;height:36px;border:none;border-radius:11px;color:#fff;cursor:pointer;background:linear-gradient(135deg,#34d399,#0ca678);box-shadow:0 8px 18px #0ca67852,inset 0 1px #ffffff73;transition:transform .16s ease,box-shadow .16s ease}.cd-add-icon svg{width:20px;height:20px;stroke:currentColor;stroke-width:2.2;fill:none}.cd-add-icon:hover{transform:translateY(-2px) scale(1.05);box-shadow:0 12px 22px #0ca67866,inset 0 1px #ffffff80}.cd-stage .cd-grid{flex:1;align-items:center;padding:6px 0 5vh}.cd-stage>.empty{flex:1;display:flex;align-items:center;justify-content:center;padding-bottom:5vh}.cd-stage .cd-shell{flex:0 0 clamp(240px,26vw,320px);width:clamp(240px,26vw,320px)}.cd-stage .cd-head{height:52px;font-size:14.5px}.cd-stage .cd-body{padding:20px 14px 0}.cd-stage .cd-days-num{font-size:68px}.cd-stage .cd-target{font-size:17px}.cd-sheet-mask{position:fixed;top:0;right:0;bottom:0;left:0;z-index:2400;display:flex;align-items:center;justify-content:center;padding:24px;background:#0f142073;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);animation:sheet-mask-in .18s ease}.cd-sheet{width:100%;max-width:460px;max-height:min(84vh,640px);overflow-y:auto;padding:18px 20px 20px;border-radius:20px;background:var(--card);box-shadow:0 24px 70px #10182847;animation:modal-in .18s ease}.cd-sheet-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:14px}.cd-sheet-head h2{font-size:17px}@keyframes sheet-down{0%{transform:translateY(-28px);opacity:.7}to{transform:translateY(0);opacity:1}}@media (max-width: 640px){.cd-stage{min-height:calc(100vh - 260px);min-height:calc(100dvh - 260px);padding:16px 14px 20px}.cd-sheet-mask{align-items:center;padding:14px}.cd-sheet{max-width:none;max-height:86vh;max-height:86dvh;padding:16px 18px calc(18px + env(safe-area-inset-bottom));border-radius:20px;animation:modal-in .18s ease}.cd-stage .cd-shell{flex:0 0 min(74vw,300px);width:min(74vw,300px)}.cd-stage .cd-head{height:46px;font-size:13px}.cd-stage .cd-days-num{font-size:60px}}.cd-shop-icon{flex:none;display:grid;place-items:center;width:36px;height:36px;border-radius:11px;color:#fff;text-decoration:none;background:linear-gradient(135deg,#8b9cff,#4c6ef5);box-shadow:0 8px 18px #4c6ef559,inset 0 1px #ffffff73;transition:transform .16s ease,box-shadow .16s ease}.cd-shop-icon svg{width:20px;height:20px;stroke:currentColor;stroke-width:1.7;fill:none}.cd-shop-icon .cd-icon-dot{fill:currentColor;stroke:none}.cd-shop-icon:hover{transform:translateY(-2px) scale(1.05);box-shadow:0 12px 22px #4c6ef573,inset 0 1px #ffffff80}.cd-skin-classic{--cd-head: #c04a43;--cd-head-2: #de6b5e;--cd-bg: #fffaf0;--cd-ink: #2c2823;--cd-sub: #9b8f7c;--cd-line: #eddfc9;--cd-font: "Songti SC", "STSong", "SimSun", Georgia, serif;--cd-head-font: "Songti SC", "STSong", "SimSun", Georgia, serif}.cd-skin-kraft{--cd-head: #9c6b36;--cd-head-2: #c08b52;--cd-bg: #f7ecd6;--cd-ink: #46341c;--cd-sub: #94805f;--cd-line: #e4d3b0;--cd-font: "Courier New", "Consolas", ui-monospace, monospace;--cd-head-font: "Courier New", "Consolas", ui-monospace, monospace}.cd-skin-mint{--cd-head: #2f9e80;--cd-head-2: #63c9ab;--cd-bg: #f0fbf6;--cd-ink: #1d4437;--cd-sub: #7ba295;--cd-line: #d5f0e3;--cd-font: "Yuanti SC", "Hiragino Maru Gothic ProN", "PingFang SC", "Microsoft YaHei", system-ui, sans-serif;--cd-head-font: "Yuanti SC", "Hiragino Maru Gothic ProN", "PingFang SC", "Microsoft YaHei", system-ui, sans-serif}.cd-skin-sakura{--cd-head: #e8749d;--cd-head-2: #f7a8c4;--cd-bg: #fff6f9;--cd-ink: #5a2f42;--cd-sub: #b78a9d;--cd-line: #f7d9e3;--cd-font: "Kaiti SC", "STKaiti", "KaiTi", "Songti SC", serif;--cd-head-font: "Kaiti SC", "STKaiti", "KaiTi", "Songti SC", serif}.cd-skin-night{--cd-head: #1f2a4d;--cd-head-2: #31427a;--cd-bg: #151b30;--cd-ink: #eef2ff;--cd-sub: #97a4cb;--cd-line: #2c3a5f;--cd-font: "Kaiti SC", "STKaiti", "KaiTi", "Songti SC", serif;--cd-head-font: "Songti SC", "STSong", serif}.cd-skin-frost{--cd-head: #9fc0e4;--cd-head-2: #dcebfa;--cd-bg: rgba(236, 245, 255, .6);--cd-ink: #37527c;--cd-sub: #8ba1c2;--cd-line: rgba(255, 255, 255, .85);--cd-font: "PingFang SC", "Microsoft YaHei", system-ui, sans-serif;--cd-head-font: "PingFang SC", "Microsoft YaHei", system-ui, sans-serif}.cd-skin-emboss{--cd-head: #d3dcec;--cd-head-2: #eff4fb;--cd-bg: #e9eef6;--cd-ink: #3a465c;--cd-sub: #94a1b5;--cd-line: #dde4ef;--cd-font: "PingFang SC", "Microsoft YaHei", system-ui, sans-serif;--cd-head-font: "PingFang SC", "Microsoft YaHei", system-ui, sans-serif}.cd-skin-holo{--cd-head: #a89bff;--cd-head-2: #7fd8ff;--cd-bg: #f7f3ff;--cd-ink: #4a3f78;--cd-sub: #9a8fbb;--cd-line: #e7dcff;--cd-font: "PingFang SC", "Microsoft YaHei", system-ui, sans-serif;--cd-head-font: "PingFang SC", "Microsoft YaHei", system-ui, sans-serif}.cd-grid{display:flex;flex-wrap:wrap;justify-content:center;gap:18px}.cd-shell{position:relative;flex:0 0 216px;width:216px;max-width:100%;border-radius:16px;background:var(--cd-bg);border:1px solid var(--cd-line);box-shadow:0 10px 22px #0f172a24;overflow:hidden;padding-bottom:16px;font-family:var(--cd-font, inherit);transition:transform .2s ease,box-shadow .2s ease}.cd-grid .cd-shell:hover{transform:translateY(-3px);box-shadow:0 16px 30px #0f172a2e}.cd-ring{position:absolute;top:10px;width:9px;height:9px;border-radius:50%;background:var(--cd-bg);box-shadow:inset 0 1px 2px #0f172a59;z-index:2}.cd-ring-left{left:22%}.cd-ring-right{right:22%}.cd-head{position:relative;z-index:1;height:48px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--cd-head),var(--cd-head-2));color:#fff;font-family:var(--cd-head-font, var(--cd-font, inherit));font-size:13.5px;font-weight:700;letter-spacing:.14em}.cd-body{position:relative;z-index:1;padding:16px 12px 0;text-align:center}.cd-days{display:flex;align-items:baseline;justify-content:center;gap:4px;color:var(--cd-ink)}.cd-days-num{font-size:60px;font-weight:800;line-height:1;font-variant-numeric:tabular-nums;letter-spacing:-.02em}.cd-days-cap,.cd-days-unit{font-size:12.5px;font-weight:600;color:var(--cd-sub)}.cd-days.past .cd-days-num{color:var(--cd-sub)}.cd-target{margin-top:10px;font-size:16px;font-weight:700;color:var(--cd-ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cd-date{margin-top:2px;font-size:12px;color:var(--cd-sub)}.cd-shell .cd-del{position:absolute;top:5px;right:5px;width:24px;height:24px;z-index:2;border:1px solid rgba(255,255,255,.28);background:#ffffff24;color:#fff}.cd-shell .cd-del:hover{background:#ffffff52;color:#fff}.cd-skin-classic .cd-shell{background-image:radial-gradient(circle at 18% 12%,rgba(255,255,255,.85),transparent 45%),repeating-linear-gradient(0deg,rgba(160,130,90,.05) 0 1px,transparent 1px 3px),linear-gradient(160deg,#fffdf7,#fdf3e3)}.cd-skin-classic .cd-head{border-bottom:1px solid rgba(120,70,60,.16)}.cd-skin-classic .cd-shell:after{content:"";position:absolute;top:0;bottom:0;left:0;z-index:0;width:58%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.72),transparent);transform:translate(-150%) skew(-16deg);animation:cd-sheen 5.4s ease-in-out infinite;pointer-events:none}@keyframes cd-sheen{0%,50%{transform:translate(-150%) skew(-16deg);opacity:0}60%{opacity:.55}to{transform:translate(280%) skew(-16deg);opacity:0}}.cd-skin-kraft .cd-shell{background-image:repeating-linear-gradient(0deg,rgba(120,84,40,.06) 0 1px,transparent 1px 4px),repeating-linear-gradient(90deg,rgba(120,84,40,.05) 0 1px,transparent 1px 7px),linear-gradient(165deg,#f9f0dc,#f2e2c3)}.cd-skin-kraft .cd-head{border-bottom:2px dashed rgba(255,255,255,.48);letter-spacing:.2em}.cd-skin-kraft .cd-shell:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;background-image:repeating-linear-gradient(45deg,rgba(255,255,255,.18) 0 2px,transparent 2px 6px);animation:cd-fiber 12s linear infinite;pointer-events:none}@keyframes cd-fiber{to{background-position:42px 42px}}.cd-skin-mint .cd-shell{background-image:radial-gradient(circle at 80% 0%,rgba(120,226,190,.42),transparent 55%),radial-gradient(circle at 10% 100%,rgba(178,244,220,.5),transparent 50%),linear-gradient(160deg,#f4fffa,#dff6ec)}.cd-skin-mint .cd-head{letter-spacing:.12em}.cd-skin-mint .cd-ring{display:none}.cd-skin-mint .cd-shell:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;background-image:radial-gradient(circle at 18% 76%,rgba(255,255,255,.75) 0 6px,transparent 7px),radial-gradient(circle at 76% 60%,rgba(255,255,255,.6) 0 4.5px,transparent 5.5px),radial-gradient(circle at 58% 88%,rgba(255,255,255,.55) 0 3px,transparent 4px),radial-gradient(circle at 34% 92%,rgba(255,255,255,.45) 0 2px,transparent 3px);animation:cd-float 6s ease-in-out infinite alternate;pointer-events:none}@keyframes cd-float{0%{transform:translateY(8px)}to{transform:translateY(-12px)}}.cd-skin-sakura .cd-shell{background-image:radial-gradient(circle at 85% 8%,rgba(255,214,229,.7),transparent 50%),linear-gradient(165deg,#fffafc,#ffe9f1)}.cd-skin-sakura .cd-target,.cd-skin-sakura .cd-days-num{font-style:italic}.cd-skin-sakura .cd-shell:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;background-image:radial-gradient(circle at 12% 6%,rgba(238,120,158,.75) 0 3.4px,transparent 4.4px),radial-gradient(circle at 72% 16%,rgba(247,163,194,.8) 0 2.8px,transparent 3.8px),radial-gradient(circle at 44% 30%,rgba(238,140,175,.65) 0 2.2px,transparent 3.2px),radial-gradient(circle at 88% 44%,rgba(250,186,209,.75) 0 2.8px,transparent 3.8px),radial-gradient(circle at 22% 52%,rgba(238,120,158,.55) 0 2px,transparent 3px);animation:cd-petals 9s linear infinite;pointer-events:none}@keyframes cd-petals{0%{transform:translateY(-22%)}to{transform:translateY(22%)}}.cd-skin-night .cd-shell{background-image:radial-gradient(circle at 22% 8%,#2b3a68,transparent 55%),radial-gradient(circle at 85% 90%,#1d2b52,transparent 55%),linear-gradient(170deg,#161d33,#0e1322);box-shadow:0 10px 26px #080c1880}.cd-skin-night .cd-ring{display:none}.cd-skin-night .cd-days-num{text-shadow:0 0 18px rgba(130,168,255,.5)}.cd-skin-night .cd-shell:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;background-image:radial-gradient(1.6px 1.6px at 18% 26%,#fff,transparent),radial-gradient(1.4px 1.4px at 46% 14%,rgba(255,255,255,.9),transparent),radial-gradient(1.8px 1.8px at 76% 32%,#fff,transparent),radial-gradient(1.3px 1.3px at 88% 58%,rgba(255,255,255,.85),transparent),radial-gradient(1.5px 1.5px at 30% 70%,#fff,transparent),radial-gradient(1.2px 1.2px at 62% 84%,rgba(255,255,255,.8),transparent);animation:cd-twinkle 3.6s ease-in-out infinite alternate;pointer-events:none}@keyframes cd-twinkle{0%{opacity:.35}to{opacity:1}}.cd-skin-frost .cd-shell{background-image:radial-gradient(circle at 24% 10%,rgba(255,255,255,.95),transparent 46%),linear-gradient(150deg,#ffffffc7,#d6e8fb73 45%,#b6d0ee80);background-color:#ecf5ff9e;border:1px solid rgba(255,255,255,.9);box-shadow:inset 0 1px #fffffff2,inset 1px 0 #ffffffa6,inset 0 -18px 30px #82a2c838,inset 0 22px 28px #ffffff6b,0 20px 36px #5878a04d,0 3px #ffffffa6;-webkit-backdrop-filter:blur(12px) saturate(1.25);backdrop-filter:blur(12px) saturate(1.25)}.cd-skin-frost .cd-ring{display:none}.cd-skin-frost .cd-head{background:linear-gradient(180deg,#ffffffb8,#a8c8eb9e);color:#33507c;text-shadow:0 1px 0 rgba(255,255,255,.85);box-shadow:inset 0 1px #fffffff2,inset 0 -1px #789cc880;letter-spacing:.2em}.cd-skin-frost .cd-days-num{color:#35527f;opacity:1;text-shadow:0 1px 0 rgba(255,255,255,.95),0 -1px 0 rgba(120,150,195,.35),0 10px 22px rgba(70,100,150,.35)}.cd-skin-frost .cd-target{color:#2f4a72;text-shadow:0 1px 0 rgba(255,255,255,.85)}.cd-skin-frost .cd-date{color:#6f87ab}.cd-skin-frost .cd-shell:after{content:"";position:absolute;top:-25%;left:-45%;width:55%;height:150%;z-index:0;background:linear-gradient(105deg,transparent,rgba(255,255,255,.9) 42%,rgba(255,255,255,.2) 58%,transparent);filter:blur(1.5px);transform:rotate(10deg) translate(-60%);animation:cd-glass-shine 6.2s ease-in-out infinite;pointer-events:none}@keyframes cd-glass-shine{0%,52%{transform:rotate(10deg) translate(-65%);opacity:0}62%{opacity:.85}to{transform:rotate(10deg) translate(260%);opacity:0}}.cd-skin-emboss .cd-shell{background-image:linear-gradient(145deg,#f5f8fd,#dde5f1);border:1px solid rgba(255,255,255,.92);box-shadow:14px 14px 28px #a0afc68c,-12px -12px 24px #ffffffeb,inset 0 1px #ffffffd9}.cd-skin-emboss .cd-ring{display:none}.cd-skin-emboss .cd-head{background:linear-gradient(180deg,#f4f8fd,#d8e1ee);color:#3f4d66;text-shadow:0 1px 0 #fff;box-shadow:inset 0 1px #fff,inset 0 -2px 4px #a0afc873,inset 0 2px 3px #fffc}.cd-skin-emboss .cd-days-num{color:#41506a;text-shadow:2px 2px 3px rgba(255,255,255,.95),-2px -2px 4px rgba(150,165,190,.6)}.cd-skin-emboss .cd-target{text-shadow:0 1px 0 #fff}.cd-skin-emboss .cd-shell:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;border-radius:inherit;box-shadow:inset 0 10px 20px #ffffffa6,inset 0 -12px 22px #96a5be52;animation:cd-emboss-breathe 6s ease-in-out infinite alternate;pointer-events:none}@keyframes cd-emboss-breathe{0%{opacity:.6}to{opacity:1}}.cd-skin-holo .cd-shell{background-image:radial-gradient(circle at 20% 8%,rgba(255,176,220,.6),transparent 44%),radial-gradient(circle at 86% 90%,rgba(136,224,255,.6),transparent 45%),linear-gradient(160deg,#fdf7ff,#eef9ff);border:1px solid rgba(255,255,255,.92);box-shadow:inset 0 1px #fffffff2,inset 0 -16px 28px #a096dc33,0 18px 34px #8c82c847}.cd-skin-holo .cd-ring{display:none}.cd-skin-holo .cd-head{background:linear-gradient(110deg,#ffb6de,#c9a8ff 32%,#8fd6ff 62%,#b8ffe2);background-size:200% 100%;color:#4a3f78;text-shadow:0 1px 0 rgba(255,255,255,.65);box-shadow:inset 0 -1px #ffffff8c;letter-spacing:.18em;animation:cd-holo-shift 6s ease-in-out infinite alternate}.cd-skin-holo .cd-days-num{background-image:linear-gradient(110deg,#ff86c8,#8d7bff 35%,#3fc8ff 65%,#54e3a5);background-size:200% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 4px 10px rgba(150,130,220,.35));animation:cd-holo-shift 5s ease-in-out infinite alternate}@keyframes cd-holo-shift{0%{background-position:0% 50%}to{background-position:100% 50%}}.cd-skin-holo .cd-target{color:#453b70}.cd-skin-holo .cd-shell:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;background:linear-gradient(115deg,transparent 32%,rgba(255,255,255,.7) 46%,transparent 62%);background-size:220% 100%;animation:cd-holo-sheen 5.2s linear infinite;pointer-events:none}@keyframes cd-holo-sheen{0%{background-position:-120% 0}to{background-position:220% 0}}.cd-preview{flex:0 0 126px;width:126px;height:122px;display:flex;align-items:center;justify-content:center;overflow:hidden;border-radius:12px;background:radial-gradient(ellipse at 50% 50%,rgba(92,112,160,.1),transparent 72%)}.cd-preview .cd-shell{flex:none;width:216px;zoom:.62;box-shadow:none;pointer-events:none}.skin-card.cd-skin-card{flex-direction:column;align-items:center;gap:10px;padding:12px}.skin-card.cd-skin-card .cd-preview{flex:none;width:100%;height:126px;background:radial-gradient(ellipse at 50% 50%,rgba(92,112,160,.1),transparent 72%)}.skin-card.cd-skin-card .skin-info{width:100%;align-items:center;text-align:center}.skin-card.cd-skin-card .skin-info .btn{width:100%;margin-top:8px}.skins.cd-skins{grid-template-columns:repeat(auto-fill,minmax(190px,1fr))}@media (prefers-reduced-motion: reduce){.cd-shell,.cd-shell:before,.cd-shell:after{animation:none!important}}@media (max-width: 640px){.cd-grid{gap:12px}.cd-shell{flex:0 0 182px;width:182px}.cd-head{height:42px;font-size:12.5px}.cd-days-num{font-size:52px}.cd-preview{flex:0 0 116px;width:116px;height:112px}.cd-preview .cd-shell{zoom:.5}.skins.cd-skins{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.skin-card.cd-skin-card{padding:8px;gap:6px;border-radius:12px}.skin-card.cd-skin-card .cd-preview{height:92px;border-radius:10px}.skin-card.cd-skin-card .skin-info{gap:2px}.skin-card.cd-skin-card .skin-info strong{font-size:13px}.skin-card.cd-skin-card .skin-info .small{font-size:11px;line-height:1.4}.skin-card.cd-skin-card .skin-info .btn{font-size:12px;padding:6px 8px;margin-top:6px}.skin-card.cd-skin-card .cd-preview .cd-shell{zoom:.44}}.tool-hero{display:flex;align-items:center;justify-content:space-between;gap:22px;flex-wrap:wrap;padding:22px 24px;margin-bottom:20px;border:1px solid rgba(76,110,245,.16);border-radius:22px;background:radial-gradient(circle at 88% 20%,rgba(124,92,255,.16),transparent 42%),linear-gradient(140deg,#fff,#f4f7ff 60%,#eef2ff);box-shadow:0 20px 48px -34px #4c6ef599}.tool-hero-main{display:flex;align-items:center;gap:14px;min-width:240px}.tool-hero-mark{flex:none;display:grid;place-items:center;width:48px;height:48px;border-radius:15px;background:linear-gradient(135deg,#7c8cff,#4f46e5);box-shadow:0 14px 26px -14px #4f46e5b3}.tool-hero-mark svg{width:24px;height:24px;stroke:#fff;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;fill:none}.tool-hero-main h2{margin:0 0 5px;font-size:19px;letter-spacing:.01em}.tool-hero-main p{margin:0;max-width:560px;color:var(--muted);font-size:13px;line-height:1.6}.tool-hero-stats{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.tool-hero-stats>div{display:flex;flex-direction:column;align-items:center;gap:2px;min-width:72px;padding:10px 14px;border:1px solid rgba(255,255,255,.9);border-radius:14px;background:#ffffffd1;box-shadow:0 8px 20px -18px #10182880}.tool-hero-stats strong{font-size:17px;color:var(--primary-dark);font-variant-numeric:tabular-nums}.tool-hero-stats span{color:var(--muted);font-size:11px}.tool-section+.tool-section{margin-top:24px}.tool-section-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:10px}.tool-section-head h2{margin:0;font-size:15px;font-weight:800;letter-spacing:.02em}.tool-section-head span{color:var(--muted);font-size:12px}.tool-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px}.tool-tile{display:flex;align-items:center;gap:12px;padding:18px;border:1px solid var(--line);border-radius:18px;background:linear-gradient(160deg,#fff,#f8faff);box-shadow:0 1px 2px #1018280a,0 14px 28px -22px #10182880;text-align:left;cursor:pointer;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}.tool-tile:hover{transform:translateY(-2px);border-color:#4c6ef559;box-shadow:0 18px 34px -18px #4c6ef559}.tool-tile:first-child{border-color:#4c6ef547;background:linear-gradient(160deg,#fff,#f1f5ff)}.tool-tile:disabled{opacity:.55;cursor:not-allowed;transform:none}.tool-tile-icon{display:grid;place-items:center;width:46px;height:46px;flex:none;border-radius:12px;background:var(--tone-bg, var(--soft));color:var(--tone-ink, var(--text))}.tool-tile-icon svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;opacity:.82}.tool-tile-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}.tool-tile-text strong{display:flex;align-items:center;gap:8px;font-size:15px;color:var(--text)}.tool-tile-text small{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;font-size:12px;line-height:1.5;color:var(--muted)}.tool-tile-arrow{flex:none;width:18px;height:18px;stroke:var(--muted);stroke-width:2;fill:none}.tool-modal-mask{position:fixed;top:0;right:0;bottom:0;left:0;z-index:2400;display:flex;align-items:center;justify-content:center;padding:24px;background:#0d111c8c;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);animation:sheet-mask-in .18s ease}.tool-modal{width:100%;max-width:720px;min-height:min(440px,82vh);max-height:min(88vh,860px);overflow-y:auto;padding:26px 28px 28px;border-radius:24px;background:var(--card);box-shadow:0 36px 110px -36px #0000008c;animation:modal-in .2s cubic-bezier(.22,1,.36,1)}.tool-head-main{flex:1;min-width:0}.tool-head-main p{margin:2px 0 0}.icon-btn.tool-modal-close{flex:none;width:32px;height:32px}.tool-badges{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}.tool-badge{padding:5px 11px;border:1px solid rgba(76,110,245,.16);border-radius:999px;background:linear-gradient(135deg,#4c6ef514,#7c5cff0f);color:var(--primary-dark);font-size:12px;font-weight:600}.toolbox-nav{display:flex;flex-direction:column;gap:8px;padding:12px;position:sticky;top:16px}.tool-nav-item{display:flex;align-items:center;gap:10px;width:100%;padding:11px 10px;border:1px solid transparent;border-radius:13px;background:transparent;text-align:left;cursor:pointer;transition:background .18s ease,border-color .18s ease,transform .18s ease,box-shadow .18s ease}.tool-nav-item:hover{background:var(--hover);transform:translate(2px)}.tool-nav-item.active{background:linear-gradient(135deg,#4c6ef521,#7c5cff14);border-color:#4c6ef54d;box-shadow:0 6px 16px #4c6ef524}.tool-nav-item:disabled{opacity:.55;cursor:not-allowed}.tool-nav-text{display:flex;flex-direction:column;gap:2px;min-width:0}.tool-nav-text strong{font-size:14px;color:var(--text)}.tool-nav-text small{font-size:11px;color:var(--muted)}.choice-skin-shop{display:flex;flex-direction:column;gap:14px;padding-top:12px}.choice-skin-group{display:flex;flex-direction:column;gap:8px}.choice-skin-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(128px,1fr));gap:10px}.choice-skin-card{display:flex;flex-direction:column;align-items:center;gap:6px;padding:12px 10px;border:1px solid var(--line);border-radius:16px;background:#fbfcfe;text-align:center;cursor:pointer;transition:border-color .15s ease,background .15s ease,transform .15s ease,box-shadow .15s ease}.choice-skin-card:hover{border-color:#4c6ef566;transform:translateY(-1px);box-shadow:0 12px 24px -18px #4c6ef58c}.choice-skin-card strong{font-size:12.5px}.choice-skin-card>span:last-child{padding:3px 10px;border:1px solid rgba(79,70,229,.22);border-radius:999px;background:#6366f112;color:var(--primary-dark);font-size:10.5px;font-weight:700}.choice-skin-card.active{border-color:#4f46e56b;background:#6366f10f;color:var(--text);box-shadow:inset 0 0 0 1px #4f46e524}.choice-skin-card.active>span:last-child{border-color:transparent;background:#6366f124;color:var(--primary-dark)}[data-theme=dark] .choice-skin-card>span:last-child{border-color:#818cf84d;background:#818cf81f;color:#a5b4fc}[data-theme=dark] .choice-skin-card.active{border-color:#818cf873;background:#818cf81a}[data-theme=dark] .choice-skin-card.active>span:last-child{background:#818cf82e;color:#a5b4fc}.choice-skin-card.active .choice-preview{box-shadow:0 0 0 2px #ffffffb3}.choice-preview{position:relative;display:grid;place-items:center;width:80px;height:80px;overflow:hidden;border-radius:18px;background:#eef2ff;box-shadow:inset 0 0 0 1px #0f172a14,0 8px 18px -12px #10182880}.choice-preview-wheel{border-radius:50%;box-shadow:inset 0 0 0 3px #fff,0 10px 20px -12px #4c6ef580}.choice-preview-wheel:before{content:"选";z-index:2;display:grid;place-items:center;width:22px;height:22px;border-radius:50%;background:linear-gradient(135deg,#fff,#eef2fe);color:#3b5bdb;font-size:9px;font-weight:800;box-shadow:0 2px 5px #1018282e}.choice-preview-wheel:after{content:"";position:absolute;top:1px;left:50%;z-index:3;transform:translate(-50%);border:5px solid transparent;border-top-color:#1f2937}.skin-wheel-classic{background:conic-gradient(#5c7cfa 0,#5c7cfa 45deg,#12b886 45deg,#12b886 90deg,#f06595 90deg,#f06595 135deg,#f59f00 135deg,#f59f00 180deg,#7950f2 180deg,#7950f2 225deg,#22b8cf 225deg,#22b8cf 270deg,#fa5252 270deg,#fa5252 315deg,#4c6ef5 315deg,#4c6ef5 360deg)}.skin-wheel-aurora{background:conic-gradient(#67e8f9 0,#67e8f9 45deg,#818cf8 45deg,#818cf8 90deg,#a78bfa 90deg,#a78bfa 135deg,#38bdf8 135deg,#38bdf8 180deg,#34d399 180deg,#34d399 225deg,#22d3ee 225deg,#22d3ee 270deg,#7c3aed 270deg,#7c3aed 315deg,#0ea5e9 315deg,#0ea5e9 360deg)}.skin-wheel-candy{background:conic-gradient(#ffb3c6 0,#ffb3c6 45deg,#ffd6a5 45deg,#ffd6a5 90deg,#b5ead7 90deg,#b5ead7 135deg,#cdb4db 135deg,#cdb4db 180deg,#a0e7e5 180deg,#a0e7e5 225deg,#ffc8dd 225deg,#ffc8dd 270deg,#8ecae6 270deg,#8ecae6 315deg,#ffb4a2 315deg,#ffb4a2 360deg)}.choice-preview-wheel.skin-wheel-aurora:after{border-top-color:#0ea5e9}.choice-preview-wheel.skin-wheel-candy:after{border-top-color:#f472b6}.choice-preview-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:5px;padding:9px;background:#f7f9ff}.choice-preview-grid i{position:relative;display:flex;align-items:flex-end;justify-content:flex-start;padding:4px 5px;border:1px solid #edf0f7;border-radius:6px;background:linear-gradient(180deg,#fff,#f7f9ff);box-shadow:0 2px 4px #1018280f}.choice-preview-grid i:before{content:"";position:absolute;top:4px;left:5px;width:5px;height:5px;border-radius:50%;background:var(--accent, #5c7cfa);box-shadow:0 0 0 2px #fffc}.choice-preview-grid i b{font-size:7px;font-weight:800;color:#8f9bb3;line-height:1}.choice-preview-grid i:nth-child(1){--accent: #5c7cfa}.choice-preview-grid i:nth-child(2){--accent: #12b886}.choice-preview-grid i:nth-child(3){--accent: #f06595}.choice-preview-grid i:nth-child(4){--accent: #f59f00}.skin-grid-neon{background:radial-gradient(circle at 50% 20%,rgba(34,211,238,.18),transparent 70%),#0e1626}.skin-grid-neon i{border-color:#22d3ee38;background:linear-gradient(180deg,#182238,#121a2b);box-shadow:0 0 0 1px #22d3ee14,0 4px 8px -4px #000c}.skin-grid-neon i b{color:#7dd3fc}.skin-grid-neon i:nth-child(1){--accent: #22d3ee}.skin-grid-neon i:nth-child(2){--accent: #a78bfa}.skin-grid-neon i:nth-child(3){--accent: #f472b6}.skin-grid-neon i:nth-child(4){--accent: #34d399}.skin-grid-morandi{background:radial-gradient(circle at 50% 24%,rgba(160,150,135,.14),transparent 70%),#f3f0ea}.skin-grid-morandi i{border-color:#e3ddd2;background:linear-gradient(180deg,#fbf9f5,#f1ede5)}.skin-grid-morandi i b{color:#a49a8d}.skin-grid-morandi i:nth-child(1){--accent: #8fa3b8}.skin-grid-morandi i:nth-child(2){--accent: #9fb8a8}.skin-grid-morandi i:nth-child(3){--accent: #c4a7a1}.skin-grid-morandi i:nth-child(4){--accent: #b3a394}.choice-preview-lot{padding:9px;border-radius:10px;background:radial-gradient(circle at 50% 18%,#ffffff,transparent 58%),linear-gradient(165deg,#fffaf0,#f7ecd6);border:1px solid rgba(214,158,46,.28);box-shadow:0 8px 16px -10px #785a288c,inset 0 1px #fff}.skin-lot-card{display:flex;flex-direction:column;align-items:center;gap:5px}.skin-lot-card em{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:linear-gradient(145deg,#f06a5e,#c0392b);color:#fff8f0;font-family:Songti SC,STSong,SimSun,serif;font-size:16px;font-style:normal;font-weight:700;box-shadow:0 4px 8px #c0392b59,inset 0 1px 2px #fff6}.skin-lot-card b{width:40px;height:5px;border-radius:999px;background:#c8a06a;opacity:.75}.skin-lot-card small{width:28px;height:4px;border-radius:999px;background:#d9c7a8}.skin-lot-jade{background:radial-gradient(circle at 50% 18%,#ffffff,transparent 58%),linear-gradient(165deg,#f2fbf7,#d8efe6);border-color:#10b9814d;box-shadow:0 8px 16px -10px #0f766e80,inset 0 1px #fff}.skin-lot-jade .skin-lot-card em{background:linear-gradient(145deg,#34d399,#0f766e);color:#f0fdfa;box-shadow:0 4px 8px #0f766e59,inset 0 1px 2px #fff6}.skin-lot-jade .skin-lot-card b{background:#8bc9b5}.skin-lot-jade .skin-lot-card small{background:#b9dfd2}.skin-lot-gold{background:radial-gradient(circle at 50% 18%,rgba(255,255,255,.18),transparent 58%),linear-gradient(165deg,#232019,#15130f);border-color:#facc1561;box-shadow:0 8px 16px -10px #0009,inset 0 1px #ffffff1f}.skin-lot-gold .skin-lot-card em{background:linear-gradient(145deg,#fde68a,#d97706);color:#241c08;box-shadow:0 4px 8px #d9770666,inset 0 1px 2px #ffffff80}.skin-lot-gold .skin-lot-card b{background:#8a7a55}.skin-lot-gold .skin-lot-card small{background:#5c5138}.badge-img2docx{background:linear-gradient(135deg,#8d7bff,#5a45d6);box-shadow:inset 0 1px #ffffff59,0 4px 10px #5a45d640}.badge-img2xlsx{background:linear-gradient(135deg,#48c78e,#12805c);box-shadow:inset 0 1px #ffffff59,0 4px 10px #12805c40}.badge-pdf2img{background:linear-gradient(135deg,#f6b26b,#e0703c);box-shadow:inset 0 1px #ffffff59,0 4px 10px #e0703c40}.tool-head{display:flex;align-items:center;gap:14px;margin-bottom:16px;padding-bottom:14px;border-bottom:1px dashed var(--line)}.tool-head h2{margin:0;font-size:18px}.tool-options{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:14px;padding:12px 14px;border:1px solid rgba(76,110,245,.16);border-radius:14px;background:linear-gradient(135deg,#4c6ef512,#7c5cff0a)}.tool-segment{display:inline-flex;gap:2px;padding:3px;border-radius:10px;background:var(--soft)}.tool-segment button{padding:6px 12px;border:none;border-radius:8px;background:transparent;font-size:12.5px;font-weight:600;color:var(--muted);cursor:pointer;transition:background .15s ease,color .15s ease,box-shadow .15s ease}.tool-segment button.active{background:var(--card);color:var(--text);box-shadow:0 2px 6px #0f172a1f}.tool-segment button:disabled{opacity:.6;cursor:not-allowed}.tool-lang{display:inline-flex;align-items:center;gap:8px}.tool-lang select{padding:6px 8px;border:1px solid var(--line);border-radius:9px;background:var(--card);color:var(--text);font-size:12.5px}.tool-ocr-hint{font-size:11.5px}.tool-drop{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:34px 16px;border:1.5px dashed rgba(76,110,245,.32);border-radius:18px;background:radial-gradient(circle at 50% 0%,rgba(76,110,245,.09),transparent 62%),var(--card-soft);text-align:center;cursor:pointer;transition:border-color .18s ease,background .18s ease,transform .18s ease,box-shadow .18s ease}.tool-drop:hover,.tool-drop.dragging{border-color:var(--primary);background:linear-gradient(180deg,#4c6ef51a,#7c5cff0a);transform:translateY(-1px);box-shadow:0 12px 26px #4c6ef524}.tool-drop-icon{display:grid;place-items:center;width:56px;height:56px;border-radius:50%;background:linear-gradient(135deg,#fff,#e9efff);box-shadow:inset 0 1px #fff,0 8px 18px #4c6ef52e}.tool-drop-icon svg{display:block;width:26px;height:26px;stroke:var(--primary);stroke-width:1.8;fill:none}.tool-drop strong{font-size:14px;color:var(--text)}.tool-native-input{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;margin:0;padding:0;border:0;opacity:0;cursor:pointer}.tool-pick-btn{margin-top:4px;pointer-events:none}.tool-drop small{font-size:12px;color:var(--muted)}.tool-file-list{display:flex;flex-direction:column;gap:8px;margin-top:14px;max-height:320px;overflow:auto}.tool-file{display:flex;align-items:center;gap:10px;padding:8px 10px;border:1px solid var(--line);border-radius:12px;background:var(--card-soft);transition:border-color .15s ease,box-shadow .15s ease}.tool-file:hover{border-color:#4c6ef552;box-shadow:0 4px 12px #0f172a0f}.tool-thumb{flex:none;width:46px;height:46px;border-radius:9px;border:1px solid var(--line);background:#fff;object-fit:cover}.tool-thumb-file{display:grid;place-items:center;font-size:11px;font-weight:700;color:var(--muted)}.tool-file-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.tool-file-main strong{font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tool-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px}.tool-actions .btn-primary{min-width:180px;font-weight:700;box-shadow:0 8px 18px #4c6ef53d}.tool-progress{margin-left:8px;font-size:12px;opacity:.8}.tool-result{display:flex;align-items:center;gap:12px;margin-top:16px;padding:12px;border:1px solid rgba(12,166,120,.35);border-radius:14px;background:linear-gradient(135deg,var(--green-soft),rgba(255,255,255,.7));box-shadow:0 8px 20px #0ca67824;animation:tool-pop .3s ease}@keyframes tool-pop{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.tool-result-check{flex:none;display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:var(--green);color:#fff;font-weight:700}.tool-result-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.tool-result-main strong{font-size:13.5px;word-break:break-all}.tool-docx-render{position:fixed;left:-10000px;top:0;width:794px;padding:56px;background:#fff;color:#111827;font-family:Times New Roman,Songti SC,SimSun,serif;font-size:15px;line-height:1.75}.tool-docx-render img{max-width:100%;height:auto}.tool-docx-render table{width:100%;border-collapse:collapse}.tool-docx-render td,.tool-docx-render th{border:1px solid #cbd5e1;padding:4px 6px}@media (max-width: 900px){.tool-actions .btn-primary{width:100%}}@media (max-width: 640px){.tool-hero{padding:18px;gap:16px}.tool-hero-main{align-items:flex-start}.tool-hero-main h2{font-size:17px}.tool-hero-stats{width:100%}.tool-hero-stats>div{flex:1;min-width:0}.tool-grid{grid-template-columns:1fr;gap:10px}.tool-tile{padding:13px 14px}.tool-modal-mask{align-items:flex-end;padding:0}.tool-modal{max-width:none;max-height:90vh;padding:16px 16px calc(18px + env(safe-area-inset-bottom));border-radius:22px 22px 0 0;animation:sheet-up .26s cubic-bezier(.22,1,.36,1)}}.sys-msg-list{display:flex;flex-direction:column;gap:12px}.sys-msg-item{padding:14px 16px;border:1px solid var(--line);border-radius:14px;background:var(--card-soft)}.sys-msg-item.history{border-color:#eef0f4;background:#f8f9fb}.tag.history{background:#f1f3f5;color:#868e96}.sys-msg-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.sys-msg-title{margin:0;font-size:15px;font-weight:700;color:var(--text)}.sys-msg-time{margin-left:auto;font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums}.sys-msg-body{margin:8px 0 0;font-size:13px;line-height:1.7;color:var(--text);white-space:pre-wrap;word-break:break-word}.sys-msg-author{margin-top:8px}.points-hero{display:flex;align-items:baseline;gap:8px;margin-bottom:4px}.points-value{font-size:40px;font-weight:700;line-height:1.1;color:var(--green);font-variant-numeric:tabular-nums}.shop-card{position:relative;overflow:hidden}.shop-head{flex-wrap:wrap;gap:12px}.shop-head-title{display:flex;align-items:center;gap:12px;flex:1;min-width:0}:is(.shop-head-icon,.level-head-icon,.room-entry-icon,.room-full-icon,.shop-stat-icon,.tool-tile-icon,.shop-module-icon,.shop-full-icon,.shop-full-tab-icon).tone-indigo{--tone-bg: #eef1ff;--tone-ink: #4f5bd5}:is(.shop-head-icon,.level-head-icon,.room-entry-icon,.room-full-icon,.shop-stat-icon,.tool-tile-icon,.shop-module-icon,.shop-full-icon,.shop-full-tab-icon).tone-amber{--tone-bg: #fff6e5;--tone-ink: #b45309}:is(.shop-head-icon,.level-head-icon,.room-entry-icon,.room-full-icon,.shop-stat-icon,.tool-tile-icon,.shop-module-icon,.shop-full-icon,.shop-full-tab-icon).tone-sky{--tone-bg: #eaf6ff;--tone-ink: #2563a8}:is(.shop-head-icon,.level-head-icon,.room-entry-icon,.room-full-icon,.shop-stat-icon,.tool-tile-icon,.shop-module-icon,.shop-full-icon,.shop-full-tab-icon).tone-rose{--tone-bg: #fff0f4;--tone-ink: #c2416b}:is(.shop-head-icon,.level-head-icon,.room-entry-icon,.room-full-icon,.shop-stat-icon,.tool-tile-icon,.shop-module-icon,.shop-full-icon,.shop-full-tab-icon).tone-violet{--tone-bg: #f4f0ff;--tone-ink: #6d4bc4}:is(.shop-head-icon,.level-head-icon,.room-entry-icon,.room-full-icon,.shop-stat-icon,.tool-tile-icon,.shop-module-icon,.shop-full-icon,.shop-full-tab-icon).tone-teal{--tone-bg: #e8faf7;--tone-ink: #0f766e}:is(.shop-head-icon,.level-head-icon,.room-entry-icon,.room-full-icon,.shop-stat-icon,.tool-tile-icon,.shop-module-icon,.shop-full-icon,.shop-full-tab-icon).tone-emerald{--tone-bg: #eafaf1;--tone-ink: #15803d}:is(.shop-head-icon,.level-head-icon,.room-entry-icon,.room-full-icon,.shop-stat-icon,.tool-tile-icon,.shop-module-icon,.shop-full-icon,.shop-full-tab-icon).tone-cyan{--tone-bg: #e9f9fc;--tone-ink: #0e7490}:is(.shop-head-icon,.level-head-icon,.room-entry-icon,.room-full-icon,.shop-stat-icon,.tool-tile-icon,.shop-module-icon,.shop-full-icon,.shop-full-tab-icon).tone-slate{--tone-bg: #f1f4f9;--tone-ink: #526078}.shop-head-icon{display:grid;place-items:center;width:36px;height:36px;flex:none;border-radius:10px;background:var(--tone-bg, var(--soft));color:var(--tone-ink, var(--text))}.shop-head-icon svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;opacity:.72}.shop-head-text{display:flex;flex-direction:column;gap:1px;min-width:0}.shop-head-text h2,.shop-head-name{margin:0;font-size:16px;font-weight:600;letter-spacing:-.01em;line-height:1.4}.shop-head-text em{color:var(--muted);font-size:12px;font-style:normal}.shop-head>.tag,.shop-head>.level-chip{margin-left:auto}.shop-body{margin-top:16px}.points-unit{padding:2px 8px;border-radius:999px;background:#0ca6781f;color:var(--green);font-size:11px;font-weight:700}.shop-stat-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:14px}.shop-stat{display:flex;align-items:center;gap:10px;padding:9px 11px;border:1px solid var(--line);border-radius:12px;background:#fbfcfe}.shop-stat-icon{display:grid;place-items:center;width:20px;height:20px;flex:none;color:var(--tone-ink, var(--muted))}.shop-stat-icon svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.shop-stat-text{display:flex;flex-direction:column;min-width:0}.shop-stat-text small{color:var(--muted);font-size:10.5px}.shop-stat-text b{font-size:13px;font-weight:700}.shop-progress{margin-top:14px}.shop-progress-bar{height:8px;border-radius:999px;background:#e9ecf6;overflow:hidden}.shop-progress-bar span{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#7c8cff,#5f4bdb);transition:width .4s ease}.shop-progress-text{margin-top:7px}.shop-tier-list{display:flex;flex-direction:column;gap:8px}.shop-tier{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:#fbfcfe}.shop-tier.earned{border-color:#0ca67852;background:linear-gradient(180deg,#f1fdf8,#e8faf2)}.shop-tier-state{display:grid;place-items:center;width:26px;height:26px;flex:none;border:1px solid var(--line);border-radius:50%;background:#fff;color:#c2c8d4}.shop-tier-state svg{width:13px;height:13px;fill:none;stroke:currentColor;stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round}.shop-tier.earned .shop-tier-state{border-color:transparent;background:var(--green);color:#fff}.shop-tier-main{display:flex;flex-direction:column;flex:1;min-width:0}.shop-tier-main strong{font-size:12.5px;font-weight:600}.shop-tier-main small{color:var(--muted);font-size:11px}.shop-tier-points{flex:none;color:#b7791f;font-size:14px;font-weight:800;font-variant-numeric:tabular-nums}.shop-tier.earned .shop-tier-points{color:var(--green)}.shop-note{margin-top:12px}.redeem-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:6px 12px;border:1px solid rgba(79,70,229,.24);border-radius:9px;background:#6366f112;color:var(--primary-dark);font-family:inherit;font-size:12px;font-weight:600;line-height:1.4;white-space:nowrap;cursor:pointer;transition:background .16s ease,border-color .16s ease,color .16s ease,transform .16s ease}.redeem-btn:hover:not(:disabled){border-color:#4f46e56b;background:#6366f11f;transform:translateY(-1px)}.redeem-btn:focus-visible{outline:none;box-shadow:0 0 0 3px #4f46e52e}.redeem-btn:disabled{border-color:var(--line);background:var(--soft);color:var(--muted);cursor:not-allowed;transform:none}.redeem-btn.owned{border-color:var(--line);background:var(--card);color:var(--text)}.redeem-btn.active{border-color:transparent;background:var(--soft);color:var(--muted);cursor:default}.redeem-btn.lg{padding:9px 16px;border-radius:11px;font-size:13px}[data-theme=dark] .redeem-btn{border-color:#818cf84d;background:#818cf81f;color:#a5b4fc}[data-theme=dark] .redeem-btn:hover:not(:disabled){border-color:#818cf88c;background:#818cf82e}[data-theme=dark] .redeem-btn:disabled,[data-theme=dark] .redeem-btn.active{border-color:#2c344a;background:#1a2130;color:#6b7688}[data-theme=dark] .redeem-btn.owned{border-color:#2c344a;background:#1a2130;color:var(--text)}.shop-symbols{position:absolute;width:0;height:0;overflow:hidden}.shop-module-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.shop-module{display:flex;flex-direction:column;align-items:flex-start;gap:5px;padding:13px 14px;border:1px solid var(--line);border-radius:14px;background:var(--card-soft);color:var(--text);text-align:left;cursor:pointer;transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease}.shop-module:hover{transform:translateY(-2px);border-color:#4f46e54d;box-shadow:0 14px 26px -22px #1018288c}.shop-module:focus-visible{outline:none;box-shadow:0 0 0 3px #4f46e52e}.shop-module-icon{display:grid;place-items:center;width:36px;height:36px;margin-bottom:3px;border-radius:10px;background:var(--tone-bg, var(--soft));color:var(--tone-ink, var(--text))}.shop-module-icon svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.shop-module strong{font-size:13px;font-weight:600}.shop-module small{color:var(--muted);font-size:11px}.shop-full-mask{display:none;position:fixed;top:0;right:0;bottom:0;left:0;z-index:4000;background:var(--bg)}.shop-full-mask.open{display:flex}.shop-full{position:relative;display:flex;flex-direction:column;width:100%;height:100%;background:var(--bg);animation:shop-full-in .22s cubic-bezier(.22,1,.36,1)}@keyframes shop-full-in{0%{opacity:.4;transform:translateY(16px)}to{opacity:1;transform:none}}.shop-full-head{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:16px 24px;border-bottom:1px solid var(--line);background:var(--card)}.shop-full-title{display:flex;align-items:center;gap:12px;min-width:0}.shop-full-icon{display:grid;place-items:center;width:40px;height:40px;flex:none;border-radius:12px;background:var(--tone-bg, var(--soft));color:var(--tone-ink, var(--text))}.shop-full-icon svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;opacity:.82}.shop-full-title-text{min-width:0}.shop-full-title-text h2{font-size:17px}.shop-full-title-text p{margin-top:2px}.shop-full-tabs{display:flex;align-items:center;gap:6px;padding:10px 24px;overflow-x:auto;border-bottom:1px solid var(--line);background:var(--card);scrollbar-width:none}.shop-full-tabs::-webkit-scrollbar{display:none}.shop-full-tab{display:inline-flex;align-items:center;gap:5px;flex:none;padding:6px 12px;border:1px solid transparent;border-radius:999px;background:transparent;color:var(--muted);font-family:inherit;font-size:12px;font-weight:600;white-space:nowrap;cursor:pointer;transition:background .16s ease,color .16s ease,border-color .16s ease}.shop-full-tab-icon{display:inline-flex;color:var(--tone-ink, currentColor)}.shop-full-tab svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;opacity:.9}.shop-full-tab:hover{color:var(--text)}.shop-full-tab.active{border-color:#4f46e52e;background:var(--primary-soft);color:var(--primary-dark)}.shop-full-tab.active svg{opacity:1}.shop-full-tab.active .shop-full-tab-icon{color:var(--primary-dark)}.shop-full-body{flex:1;min-height:0;padding:20px 24px 40px;overflow-y:auto}.shop-panel{max-width:1120px;margin:0 auto;animation:shop-panel-in .28s cubic-bezier(.22,1,.36,1)}@keyframes shop-panel-in{0%{opacity:0;transform:translate(var(--slide-from, 24px))}to{opacity:1;transform:none}}.shop-full-body .shop-panel>.card{margin:0!important;padding:0;border:none;border-radius:0;background:none;box-shadow:none;overflow:visible}.shop-full-body .shop-head,.shop-full-body .level-head{display:none}.shop-full-body .shop-body,.shop-full-body .level-body{margin-top:0}.shop-full-body .level-card:before{display:none}.shop-full-arrow{position:absolute;top:50%;z-index:2;display:grid;place-items:center;width:38px;height:38px;border:1px solid var(--line);border-radius:50%;background:var(--card);color:var(--muted);box-shadow:0 10px 22px -16px #1018288c;cursor:pointer;transform:translateY(-50%);transition:color .16s ease,border-color .16s ease}.shop-full-arrow.left{left:14px}.shop-full-arrow.right{right:14px}.shop-full-arrow:hover{border-color:#4f46e559;color:var(--primary-dark)}.shop-full-arrow svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}[data-theme=dark] .shop-module{background:#151c2b;border-color:#26324a}[data-theme=dark] .shop-full-head,[data-theme=dark] .shop-full-tabs{border-color:#242c3a}@media (max-width: 900px){.shop-module-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.shop-full-arrow{display:none}.shop-full-head{padding:12px 14px}.shop-full-tabs{padding:8px 14px}.shop-full-body{padding:14px 14px 28px}.shop-full-title-text p,.shop-full-title .tag{display:none}}[data-theme=dark] .shop-stat,[data-theme=dark] .shop-tier{background:#151c2b;border-color:#26324a}[data-theme=dark] .shop-tier.earned{border-color:#12b88659;background:linear-gradient(180deg,#12251f,#101f1b)}[data-theme=dark] .shop-tier-state{background:#1a2130;border-color:#2c344a;color:#5b6577}[data-theme=dark] .shop-progress-bar{background:#26324a}[data-theme=dark] :is(.shop-head-icon,.level-head-icon,.room-entry-icon,.room-full-icon,.shop-stat-icon,.tool-tile-icon,.shop-module-icon,.shop-full-icon,.shop-full-tab-icon).tone-indigo{--tone-bg: rgba(129, 140, 248, .16);--tone-ink: #a5b4fc}[data-theme=dark] :is(.shop-head-icon,.level-head-icon,.room-entry-icon,.room-full-icon,.shop-stat-icon,.tool-tile-icon,.shop-module-icon,.shop-full-icon,.shop-full-tab-icon).tone-amber{--tone-bg: rgba(245, 158, 11, .16);--tone-ink: #f5c778}[data-theme=dark] :is(.shop-head-icon,.level-head-icon,.room-entry-icon,.room-full-icon,.shop-stat-icon,.tool-tile-icon,.shop-module-icon,.shop-full-icon,.shop-full-tab-icon).tone-sky{--tone-bg: rgba(56, 189, 248, .16);--tone-ink: #7dd3fc}[data-theme=dark] :is(.shop-head-icon,.level-head-icon,.room-entry-icon,.room-full-icon,.shop-stat-icon,.tool-tile-icon,.shop-module-icon,.shop-full-icon,.shop-full-tab-icon).tone-rose{--tone-bg: rgba(244, 114, 182, .16);--tone-ink: #f9a8d4}[data-theme=dark] :is(.shop-head-icon,.level-head-icon,.room-entry-icon,.room-full-icon,.shop-stat-icon,.tool-tile-icon,.shop-module-icon,.shop-full-icon,.shop-full-tab-icon).tone-violet{--tone-bg: rgba(167, 139, 250, .16);--tone-ink: #c4b5fd}[data-theme=dark] :is(.shop-head-icon,.level-head-icon,.room-entry-icon,.room-full-icon,.shop-stat-icon,.tool-tile-icon,.shop-module-icon,.shop-full-icon,.shop-full-tab-icon).tone-teal{--tone-bg: rgba(45, 212, 191, .16);--tone-ink: #5eead4}[data-theme=dark] :is(.shop-head-icon,.level-head-icon,.room-entry-icon,.room-full-icon,.shop-stat-icon,.tool-tile-icon,.shop-module-icon,.shop-full-icon,.shop-full-tab-icon).tone-emerald{--tone-bg: rgba(52, 211, 153, .16);--tone-ink: #6ee7b7}[data-theme=dark] :is(.shop-head-icon,.level-head-icon,.room-entry-icon,.room-full-icon,.shop-stat-icon,.tool-tile-icon,.shop-module-icon,.shop-full-icon,.shop-full-tab-icon).tone-cyan{--tone-bg: rgba(34, 211, 238, .16);--tone-ink: #67e8f9}[data-theme=dark] :is(.shop-head-icon,.level-head-icon,.room-entry-icon,.room-full-icon,.shop-stat-icon,.tool-tile-icon,.shop-module-icon,.shop-full-icon,.shop-full-tab-icon).tone-slate{--tone-bg: rgba(148, 163, 184, .16);--tone-ink: #cbd5e1}@media (max-width: 640px){.shop-head-text em{display:none}.shop-head-icon{width:36px;height:36px;border-radius:11px}.shop-head-icon svg{width:18px;height:18px}.shop-stat-row{grid-template-columns:1fr}}.skins{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px}.skin-group+.skin-group{margin-top:20px}.skin-group-head{display:flex;align-items:center;gap:8px;margin-bottom:10px}.skin-group-head strong{font-size:14px}.skin-group-head:before{content:"";width:4px;height:14px;border-radius:999px;background:linear-gradient(180deg,#8ea2fb,#4c6ef5)}.skin-card{display:flex;gap:12px;padding:12px;border:1px solid var(--line);border-radius:14px;background:var(--card);transition:border-color .15s ease,box-shadow .15s ease}.skin-card.active{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft)}.skin-preview{flex:0 0 92px;height:92px;border-radius:10px;display:flex;align-items:center;justify-content:center;overflow:hidden}.skin-preview-timer{font-size:16px;font-weight:700;font-variant-numeric:tabular-nums;color:#f7f9ff;opacity:.92}.skin-info{display:flex;flex-direction:column;gap:4px;min-width:0;align-items:flex-start}.skin-info strong{font-size:14px}.skin-info .btn{margin-top:auto}.skin-card.skin-midnight .skin-preview{background:radial-gradient(circle at 50% 30%,#1c2540,#0d111c)}.skin-card.skin-aurora .skin-preview{background:linear-gradient(135deg,#0f3d3e,#1f8a70 45%,#4fd1c5)}.skin-card.skin-sakura .skin-preview{background:linear-gradient(135deg,#fbe4ea,#f6b8cb 60%,#d98aa8)}.skin-card.skin-sakura .skin-preview-timer{color:#5a2a3c}.skin-card.skin-forest .skin-preview{background:linear-gradient(135deg,#0d241b,#1e5b45 55%,#3f8f6b)}.skin-card.skin-sunset .skin-preview{background:linear-gradient(135deg,#4a1d2f,#c2410c 55%,#f59e0b)}.skin-card.skin-mono .skin-preview{background:#fbfbfd;border:1px solid #e7e9ef}.skin-card.skin-mono .skin-preview-timer{color:#1d2433}.focus-overlay.skin-midnight,.room-focus.skin-midnight{background:radial-gradient(circle at 50% 28%,#1c2540,#0d111c 62%)}.focus-overlay.skin-aurora,.room-focus.skin-aurora{background:radial-gradient(circle at 28% 22%,#1f8a70,#0f3d3e 42%,#050d12)}.focus-overlay.skin-forest,.room-focus.skin-forest{background:radial-gradient(circle at 32% 20%,#3f8f6b,#123527 45%,#06110c)}.focus-overlay.skin-sunset,.room-focus.skin-sunset{background:radial-gradient(circle at 30% 24%,#f59e0b,#c2410c 42%,#3b1020)}.focus-overlay.skin-sakura,.room-focus.skin-sakura{background:radial-gradient(circle at 38% 24%,#fdeef3,#f6c9d8 48%,#c98da8);color:#3d2430}.focus-overlay.skin-mono,.room-focus.skin-mono{background:#fbfbfd;color:#1d2433}.focus-overlay.skin-sakura .focus-overlay-subject,.focus-overlay.skin-mono .focus-overlay-subject,.focus-overlay.skin-sakura .focus-overlay-hint,.focus-overlay.skin-mono .focus-overlay-hint,.room-focus.skin-sakura .focus-overlay-subject,.room-focus.skin-mono .focus-overlay-subject,.room-focus.skin-sakura .focus-overlay-hint,.room-focus.skin-mono .focus-overlay-hint,.room-focus.skin-sakura .room-focus-goal,.room-focus.skin-mono .room-focus-goal{color:#8a6a78}.focus-overlay.skin-sakura .focus-overlay-note,.focus-overlay.skin-mono .focus-overlay-note,.focus-overlay.skin-sakura .focus-overlay-tip,.focus-overlay.skin-mono .focus-overlay-tip{color:#7c6a74}.focus-overlay.skin-sakura .focus-btn,.room-focus.skin-sakura .focus-btn,.focus-overlay.skin-mono .focus-btn,.room-focus.skin-mono .focus-btn{border-color:#1d243329;background:#ffffffb8;color:#1d2433}.focus-overlay.skin-sakura .focus-btn.primary,.room-focus.skin-sakura .focus-btn.primary,.focus-overlay.skin-mono .focus-btn.primary,.room-focus.skin-mono .focus-btn.primary{background:#1d2433;border-color:#1d2433;color:#fff}.focus-overlay.skin-sakura .focus-btn.ghost,.room-focus.skin-sakura .focus-btn.ghost,.focus-overlay.skin-mono .focus-btn.ghost,.room-focus.skin-mono .focus-btn.ghost{color:#6b5a63}.focus-overlay.skin-sakura .focus-overlay-timer.paused,.room-focus.skin-sakura .focus-overlay-timer.paused,.focus-overlay.skin-mono .focus-overlay-timer.paused,.room-focus.skin-mono .focus-overlay-timer.paused{color:#a08d97}.room-focus.skin-sakura .room-focus-progress,.room-focus.skin-mono .room-focus-progress{background:#1d24331f}.skin-card.skin-mochi .skin-preview{background:radial-gradient(circle at 35% 26%,#fff1e6,#ffd9e8 55%,#f3c4d8)}.skin-card.skin-mochi .skin-preview-timer{color:#7a4a5c}.skin-card.skin-mint .skin-preview{background:radial-gradient(circle at 35% 26%,#eafff6,#c7f0e0 55%,#9fdfc9)}.skin-card.skin-mint .skin-preview-timer{color:#256b57}.skin-card.skin-neon .skin-preview{background:radial-gradient(circle at 50% 30%,#16203a,#05070f);box-shadow:inset 0 0 14px #38e8ff59}.skin-card.skin-neon .skin-preview-timer{color:#7ef9ff;text-shadow:0 0 8px rgba(56,232,255,.8)}.skin-card.skin-galaxy .skin-preview{background:radial-gradient(circle at 32% 24%,#3b2a6b,#120c2e 55%,#04030a)}.skin-card.skin-galaxy .skin-preview-timer{color:#d8ccff;text-shadow:0 0 10px rgba(160,130,255,.7)}.focus-overlay.skin-mochi,.room-focus.skin-mochi{background:radial-gradient(circle at 36% 24%,#fff1e6,#ffd9e8 48%,#f3c4d8);color:#4a2b38}.focus-overlay.skin-mint,.room-focus.skin-mint{background:radial-gradient(circle at 36% 24%,#eafff6,#c7f0e0 48%,#9fdfc9);color:#1e5546}.focus-overlay.skin-neon,.room-focus.skin-neon{background:radial-gradient(circle at 50% 28%,#16203a,#05070f 65%)}.focus-overlay.skin-neon .focus-overlay-timer,.room-focus.skin-neon .focus-overlay-timer{color:#7ef9ff;text-shadow:0 0 18px rgba(56,232,255,.55)}.focus-overlay.skin-galaxy,.room-focus.skin-galaxy{background:radial-gradient(circle at 30% 20%,#3b2a6b,#120c2e 52%,#04030a)}.focus-overlay.skin-galaxy .focus-overlay-timer,.room-focus.skin-galaxy .focus-overlay-timer{color:#e2d9ff;text-shadow:0 0 22px rgba(160,130,255,.55)}.focus-overlay.skin-mochi .focus-overlay-subject,.focus-overlay.skin-mint .focus-overlay-subject,.focus-overlay.skin-mochi .focus-overlay-hint,.focus-overlay.skin-mint .focus-overlay-hint,.room-focus.skin-mochi .focus-overlay-subject,.room-focus.skin-mint .focus-overlay-subject,.room-focus.skin-mochi .focus-overlay-hint,.room-focus.skin-mint .focus-overlay-hint,.room-focus.skin-mochi .room-focus-goal,.room-focus.skin-mint .room-focus-goal{color:#6d5560}.focus-overlay.skin-mochi .focus-overlay-note,.focus-overlay.skin-mint .focus-overlay-note,.focus-overlay.skin-mochi .focus-overlay-tip,.focus-overlay.skin-mint .focus-overlay-tip{color:#7d6670}.focus-overlay.skin-mochi .focus-btn,.room-focus.skin-mochi .focus-btn,.focus-overlay.skin-mint .focus-btn,.room-focus.skin-mint .focus-btn{border-color:#1d243329;background:#ffffffbf;color:#1d2433}.focus-overlay.skin-mochi .focus-btn.primary,.room-focus.skin-mochi .focus-btn.primary,.focus-overlay.skin-mint .focus-btn.primary,.room-focus.skin-mint .focus-btn.primary{background:#1d2433;border-color:#1d2433;color:#fff}.focus-overlay.skin-mochi .focus-btn.ghost,.room-focus.skin-mochi .focus-btn.ghost,.focus-overlay.skin-mint .focus-btn.ghost,.room-focus.skin-mint .focus-btn.ghost{color:#6d5560}.room-focus.skin-mochi .room-focus-progress,.room-focus.skin-mint .room-focus-progress{background:#1d24331f}.bubbles{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px}.bubble-card{display:flex;gap:12px;align-items:center;padding:12px;border:1px solid var(--line);border-radius:14px;background:var(--card)}.bubble-card.active{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft)}.bubble-preview{flex:0 0 96px;height:72px;display:flex;align-items:center;justify-content:center;border-radius:10px;background:#f7f9fc;padding:6px;overflow:hidden}.bubble-preview .chat-bubble{font-size:12px;padding:6px 10px}.chat-bubble.bubble-candy,.chat-msg.mine .chat-bubble.bubble-candy{background:linear-gradient(135deg,#ffd6e8,#ffe9c7);color:#6b3b4a;border-radius:18px 18px 18px 5px;box-shadow:0 4px 12px #ffa8c859}.chat-msg.mine .chat-bubble.bubble-candy{border-radius:18px 18px 5px}.chat-bubble.bubble-cloud,.chat-msg.mine .chat-bubble.bubble-cloud{background:#fff;color:#33415c;border:1px solid #dbeafe;border-radius:22px;box-shadow:0 4px 12px #3b82f624}.chat-bubble.bubble-neon,.chat-msg.mine .chat-bubble.bubble-neon{background:#101426;color:#7ef9ff;border:1px solid #38e8ff;border-radius:10px;box-shadow:0 0 10px #38e8ff73,inset 0 0 8px #38e8ff2e;font-weight:500}.chat-bubble.bubble-pixel,.chat-msg.mine .chat-bubble.bubble-pixel{background:#fff;color:#1d2433;border:2px solid #1d2433;border-radius:2px;box-shadow:3px 3px #1d2433;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px}.chat-bubble.bubble-sakura,.chat-msg.mine .chat-bubble.bubble-sakura{background:linear-gradient(135deg,#ffe6f0,#ffd1e3);color:#7a3550;border:1px solid #ffc2d9;border-radius:18px;box-shadow:0 4px 14px #ffa0c359}.room-card.ended{opacity:.94}.ended-banner{margin-bottom:16px;padding:12px 16px;border-radius:12px;background:#f4f6fa;border:1px dashed #d5dbe8;color:#5b6373;font-size:13px}:root{--soft: #f3f5f9;--hover: #f2f4f8;--input-bg: #fbfcfe;--topbar-bg: rgba(255, 255, 255, .82);--card-soft: #fbfcfe}body,.card,.sidebar,.mobile-bar,.input,.btn,.tag,.chip,.chat-bubble{transition:background-color .18s ease,border-color .18s ease,color .18s ease}.sidebar{position:fixed;top:0;bottom:0;left:0;z-index:60;display:flex;flex-direction:column;gap:18px;width:232px;padding:18px 14px;background:var(--card);border-right:1px solid var(--line);overflow-y:auto}.sidebar .brand{padding:2px 8px}.side-nav{display:flex;flex-direction:column;gap:4px}.side-nav a{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:10px;color:var(--muted);font-weight:500}.side-nav a svg{width:18px;height:18px;flex:0 0 auto;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.side-nav a:hover{background:var(--hover);color:var(--text)}.side-nav a.active{background:var(--primary-soft);color:var(--primary-dark)}.side-foot{margin-top:auto;display:flex;flex-direction:column;gap:12px}.side-points{display:flex;align-items:baseline;justify-content:space-between;padding:10px 12px;border-radius:12px;background:var(--primary-soft)}.side-points strong{font-size:20px;line-height:1;color:var(--primary-dark);font-variant-numeric:tabular-nums}.side-user{display:flex;align-items:center;gap:10px;padding:0 4px}.side-user-text{display:flex;flex-direction:column;line-height:1.3;min-width:0}.side-user-text strong{font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.side-user-edit{display:inline-flex;align-items:center;justify-content:center;flex:none;width:30px;height:30px;margin-left:auto;border:1px solid var(--line);border-radius:10px;background:var(--card);color:var(--muted);cursor:pointer;transition:color .16s ease,border-color .16s ease,background .16s ease}.side-user-edit svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.side-user-edit:hover{color:var(--primary);border-color:#6366f166;background:var(--primary-soft)}.theme-switch{display:grid;grid-template-columns:repeat(3,1fr);gap:3px;padding:3px;border-radius:10px;background:var(--soft)}.theme-switch button{padding:6px 0;border:none;border-radius:8px;background:transparent;color:var(--muted);font-size:11px;cursor:pointer}.theme-switch button.active{background:var(--card);color:var(--text);font-weight:600;box-shadow:0 1px 3px #1018281f}.main-wrap{margin-left:232px;min-width:0}.main-wrap-bare{margin-left:0}.main-bare{min-height:100vh;min-height:100dvh}.mobile-bar,.sidebar-mask{display:none}.icon-btn{display:grid;place-items:center;width:36px;height:36px;border:1px solid var(--line);border-radius:10px;background:var(--card);color:var(--text);cursor:pointer}.icon-btn svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.mobile-bar-right{display:flex;align-items:center;gap:8px;margin-left:auto}.donut-wrap{position:relative;width:184px;height:184px;margin:8px auto 16px}.donut-wrap:before{content:"";position:absolute;top:22px;right:22px;bottom:22px;left:22px;border-radius:50%;background:radial-gradient(circle,rgba(99,102,241,.16),transparent 70%);filter:blur(12px)}.donut{position:relative;width:100%;height:100%;filter:drop-shadow(0 10px 18px rgba(79,70,229,.16));animation:donut-in .65s cubic-bezier(.22,1,.36,1)}.donut-ring{fill:none;stroke:var(--soft);stroke-width:5.5}.donut-slice{fill:none;stroke-width:5.5;stroke-linecap:round;cursor:pointer;transition:stroke-width .18s ease,opacity .18s ease}.donut-slice:hover,.donut-slice.active{stroke-width:7}.donut-slice.dim{opacity:.28}.donut-center{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center}.donut-center-label{margin-bottom:2px;font-size:10px;letter-spacing:.16em;color:var(--muted)}.donut-center strong{font-size:28px;line-height:1.05;font-variant-numeric:tabular-nums}.donut-legend{display:flex;flex-direction:column;gap:2px}.legend-row{display:flex;align-items:center;gap:8px;padding:8px 6px;border-radius:9px;cursor:pointer;transition:background .15s ease}.legend-row:hover{background:var(--hover)}.legend-row.active{background:var(--primary-soft)}.legend-row.active .legend-name{color:var(--primary-dark);font-weight:600}.legend-dot{width:10px;height:10px;flex:0 0 auto;border-radius:50%;box-shadow:0 2px 6px #1018282e}.legend-name{flex:1;min-width:0;font-size:13px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.legend-meta{font-size:12px;color:var(--muted);white-space:nowrap}.legend-percent{min-width:38px;text-align:right;font-size:12px;font-weight:700;font-variant-numeric:tabular-nums}.breakdown-hint{margin:10px 0 0;font-size:12px;color:var(--muted);text-align:center}.breakdown{display:flex;flex-direction:column;gap:9px;margin-top:12px;padding-top:12px;border-top:1px dashed var(--line)}.breakdown-head{display:flex;align-items:center;gap:8px}.breakdown-close{width:28px;height:28px;margin-left:auto;border-radius:8px}.breakdown-row{display:grid;grid-template-columns:88px 1fr auto;align-items:center;gap:10px}.breakdown-name{font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.breakdown-bar{height:8px;border-radius:999px;background:var(--soft);overflow:hidden}.breakdown-bar span{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#818cf8,#4f46e5)}.breakdown-meta{font-size:11px;color:var(--muted);white-space:nowrap;font-variant-numeric:tabular-nums}@keyframes donut-in{0%{transform:rotate(-24deg) scale(.92);opacity:0}to{transform:none;opacity:1}}.msg-head-actions{display:flex;align-items:center;gap:10px}.msg-quota-hint{color:var(--muted);font-size:12px}.msg-icon-btn{display:grid;place-items:center;width:42px;height:42px;padding:0;border:1px solid var(--line);border-radius:14px;background:var(--card);color:var(--text);cursor:pointer;transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease}.msg-icon-btn svg{width:19px;height:19px;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round;fill:none}.msg-icon-btn:hover{transform:translateY(-1px);border-color:#4c6ef559;box-shadow:0 12px 24px -18px #10182880}.msg-icon-btn.primary{border:none;color:#fff;background:linear-gradient(135deg,#7c8cff,#4f46e5);box-shadow:0 14px 26px -14px #4f46e5b3}.msg-icon-btn.primary:hover{box-shadow:0 18px 30px -14px #4f46e5cc}.msg-feed-head{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;max-width:760px;margin:2px auto 6px;padding:0 4px}.msg-feed-head h2{margin:0;font-size:18px;letter-spacing:-.02em}.msg-feed-count{color:#98a2b3;font-size:12px}.message-feed{max-width:760px;margin:0 auto}.message-item{display:flex;gap:12px;padding:16px 12px;border-bottom:1px solid rgba(15,23,42,.06);transition:background .18s ease,border-radius .18s ease}.message-item:last-child{border-bottom:none}.message-item:hover{border-radius:14px;background:#4c6ef509}.message-avatar{flex:none;width:38px;height:38px;border-radius:50%;color:#fff;font-size:14px;font-weight:800;box-shadow:inset 0 0 0 1px #ffffff59,0 8px 18px -12px #10182899}.message-main{flex:1;min-width:0}.message-meta{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.message-meta strong{color:#0f172a;font-size:13px;font-weight:650;letter-spacing:-.01em}.message-badge{padding:1px 7px;border-radius:999px;background:linear-gradient(135deg,#4c6ef51f,#7c5cff1a);color:#4c6ef5;font-size:10px;font-weight:700}.message-time{color:#98a2b3;font-size:11px}.message-del{flex:none;width:26px;height:26px;margin-left:auto;opacity:0;transition:opacity .15s ease}.message-item:hover .message-del{opacity:1}@media (hover: none){.message-del{opacity:.55}}.message-content{margin:5px 0 0;color:#1f2937;font-size:14px;line-height:1.8;letter-spacing:.005em;word-break:break-word;white-space:pre-wrap}.msg-empty{display:flex;flex-direction:column;align-items:center;gap:6px;max-width:760px;margin:0 auto;padding:64px 20px;border:1px dashed rgba(15,23,42,.1);border-radius:24px;background:linear-gradient(180deg,#ffffffe6,#f8faffe6);text-align:center}.msg-empty-mark{display:grid;place-items:center;width:54px;height:54px;margin-bottom:8px;border-radius:18px;background:linear-gradient(135deg,#7c8cff,#4f46e5);color:#fff;font-size:22px;font-weight:800;box-shadow:0 16px 30px -16px #4f46e5b3}.msg-empty strong{font-size:15px;letter-spacing:-.01em}.msg-empty p{margin:0;color:var(--muted);font-size:12.5px}.msg-modal-mask{position:fixed;top:0;right:0;bottom:0;left:0;z-index:2400;display:flex;align-items:center;justify-content:center;padding:24px;background:#0d111c80;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);animation:sheet-mask-in .18s ease}.msg-modal{width:100%;max-width:460px;max-height:min(86vh,760px);overflow-y:auto;padding:24px;border-radius:24px;background:var(--card);box-shadow:0 40px 110px -36px #0000008c;animation:modal-in .2s cubic-bezier(.22,1,.36,1)}.msg-modal-wide{max-width:660px}.msg-sheet-grabber{display:none}.msg-modal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:16px}.msg-modal-head h2{margin:0 0 4px;font-size:18px;letter-spacing:-.02em}.msg-modal-head p{margin:0;line-height:1.55}.msg-textarea{min-height:132px;padding:14px 15px;border:1px solid transparent;border-radius:16px;background:#f5f7fb;resize:vertical;line-height:1.75;transition:border-color .15s ease,background .15s ease,box-shadow .15s ease}.msg-textarea:focus{border-color:#4c6ef559;background:#fff;box-shadow:0 0 0 4px #4c6ef51a;outline:none}.msg-modal-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-top:14px}.msg-modal-buttons{display:flex;align-items:center;gap:10px;margin-left:auto}.quota-list{display:flex;flex-direction:column}.quota-item{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:10px 0;border-bottom:1px dashed var(--line)}.quota-item:last-child{border-bottom:none}.quota-user{display:flex;align-items:center;gap:10px;min-width:160px}.quota-actions{display:flex;gap:6px;margin-left:auto}@media (max-width: 640px){.msg-head-actions{gap:8px}.msg-quota-hint{display:none}.msg-icon-btn{width:38px;height:38px;border-radius:12px}.message-feed{max-width:none}.message-item{gap:10px;padding:14px 6px}.message-avatar{width:36px;height:36px}.msg-feed-head{margin-top:2px}.msg-modal-mask{align-items:flex-end;padding:0}.msg-modal{max-width:none;max-height:88vh;padding:14px 18px calc(20px + env(safe-area-inset-bottom));border-radius:22px 22px 0 0;animation:sheet-up .26s cubic-bezier(.22,1,.36,1)}.msg-sheet-grabber{display:block;width:38px;height:4px;margin:-4px auto 14px;border-radius:999px;background:#0f172a29}}.danger-link{color:var(--danger)}.point-logs{display:flex;flex-direction:column;gap:6px;margin-top:14px}.point-log{display:flex;justify-content:space-between;font-size:12px;color:var(--muted)}.point-log strong{color:var(--green)}.point-log strong.minus{color:var(--danger)}.quota-shop{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;padding:14px 16px;border:1px solid var(--line);border-radius:14px;background:#fbfcfe}.quota-shop-info strong{display:block;margin-top:2px;font-size:26px;line-height:1.2;color:var(--primary-dark);font-variant-numeric:tabular-nums}.quota-input{width:68px;padding:6px 8px;text-align:center}.bg-upload{display:flex;align-items:stretch;gap:12px;flex-wrap:wrap;margin-top:14px;padding:12px;border-radius:16px;border:1px solid var(--line);background:linear-gradient(135deg,#4c6ef512,#4c6ef505)}.bg-upload-stat{display:flex;flex-direction:column;justify-content:center;gap:2px;min-width:140px;padding:12px 16px;border-radius:12px;background:var(--card);border:1px solid var(--line)}.bg-upload-stat strong{font-size:22px;line-height:1.25;color:var(--primary-dark)}.bg-upload-main{display:flex;align-items:stretch;gap:10px;flex:1;flex-wrap:wrap}.upload-drop{display:flex;align-items:center;gap:12px;flex:1 1 240px;padding:12px 16px;border-radius:14px;border:1.5px dashed #c3cdf5;background:var(--card);cursor:pointer;text-align:left;transition:border-color .15s ease,box-shadow .15s ease,background .15s ease}.upload-drop:hover:not(:disabled){border-color:var(--primary);background:var(--primary-soft);box-shadow:0 8px 20px #4c6ef524}.upload-drop:disabled{opacity:.55;cursor:not-allowed}.upload-drop.uploading .upload-drop-icon{animation:uploadPulse 1s ease-in-out infinite}@keyframes uploadPulse{0%,to{transform:scale(1)}50%{transform:scale(1.12)}}.upload-drop-icon{display:grid;place-items:center;width:38px;height:38px;flex-shrink:0;border-radius:50%;background:var(--primary-soft);color:var(--primary-dark);font-size:20px;font-weight:600}.upload-drop-text{display:flex;flex-direction:column;gap:2px;min-width:0}.upload-drop-text small{color:var(--muted);font-size:12px}.bg-upload-buy,.bg-upload-unlimited{align-self:center}.bg-upload-note{margin:8px 2px 0}.tag.amber{background:linear-gradient(180deg,#fffbeb,#fef3c7);border-color:#fde68a;color:#b45309}.tag.rejected{background:linear-gradient(180deg,#fef2f2,#fee2e2);border-color:#fecaca;color:#b91c1c}.bg-review{margin-top:14px;padding:12px;border-radius:16px;border:1px solid #f0d9a8;background:linear-gradient(135deg,#f59e0b1a,#f59e0b08)}.bg-review-head{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}.bg-review-title{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.bg-review-title strong{font-size:14px}.bg-review-empty{margin:8px 2px 0}.bg-review-list{display:flex;flex-direction:column;gap:8px;margin-top:10px}.bg-review-item{display:flex;align-items:center;gap:10px;padding:8px;border-radius:12px;border:1px solid var(--line);background:var(--card)}.bg-review-thumb{flex:0 0 76px;width:76px;height:56px;border-radius:9px;border:1px solid var(--line);background-color:#0d111c;background-size:cover;background-position:center;background-repeat:no-repeat}.bg-review-info{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0}.bg-review-info strong{font-size:13px}.bg-review-info .small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bg-review-actions{display:flex;gap:6px;flex-shrink:0}.bg-review-actions .btn{padding:5px 10px}[data-theme=dark] .tag.amber{background:#f59e0b29;border-color:#f59e0b4d;color:#fbbf24}[data-theme=dark] .tag.rejected{background:#ef444429;border-color:#ef44444d;color:#fca5a5}[data-theme=dark] .bg-review{border-color:#5b4a22;background:linear-gradient(135deg,#f59e0b24,#f59e0b0a)}[data-theme=dark] .upload-drop{border-color:#3a415c}.skin-preview-img{background-size:cover;background-position:center;background-repeat:no-repeat;background-color:#0d111c}.skin-card .skin-preview.skin-preview-phone,.skin-card.bg-user-card .skin-preview.skin-preview-phone{flex:0 0 78px;height:138px;border-radius:13px}.skin-card .skin-preview.skin-preview-tablet,.skin-card.bg-user-card .skin-preview.skin-preview-tablet{flex:0 0 132px;height:84px}.skin-actions{display:flex;flex-wrap:wrap;gap:6px;margin-top:auto}.skin-actions .btn{padding:5px 10px}.skins.bg-skins{grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}.skin-card.bg-user-card{align-items:stretch;gap:14px}.skin-card.bg-user-card .skin-preview{flex:0 0 132px;height:108px;border-radius:12px;border:1px solid var(--line)}.bg-user-title{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.bg-price{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:6px;padding:4px 6px 4px 10px;border:1px solid var(--line);border-radius:10px;background:#4c6ef50f}.bg-price-label{font-size:12px;color:var(--muted)}.bg-price-input-wrap{display:inline-flex;align-items:center;gap:2px;padding:2px 8px;border-radius:8px;background:var(--card);border:1px solid var(--line)}.bg-price-input{width:58px;padding:2px 0;border:none;outline:none;background:transparent;font-size:13px;font-weight:600;text-align:right;color:var(--text);font-variant-numeric:tabular-nums}.bg-price-input-wrap em{font-style:normal;font-size:11px;color:var(--muted)}.skin-card.bg-user-card .skin-actions{width:100%;margin-top:8px}[data-theme=dark] .quota-shop-info strong{color:#c7d2fe}[data-theme=dark] .quota-shop{background:#151c2b;border-color:#26324a}@media (max-width: 640px){.card-head{flex-wrap:wrap;gap:6px}.bg-upload{flex-direction:column;gap:10px;padding:10px}.bg-upload-stat{flex-direction:row;align-items:baseline;justify-content:space-between;gap:8px;min-width:0;padding:10px 14px}.bg-upload-stat strong{font-size:18px}.bg-upload-main{flex-direction:column;gap:8px}.upload-drop{flex:1 1 auto;padding:12px}.upload-drop-text small{font-size:11px}.bg-upload-buy{width:100%}.bg-upload-unlimited{align-self:flex-start}.bg-upload-note{font-size:11px}.bg-review-item{flex-wrap:wrap}.bg-review-thumb{flex-basis:64px;width:64px;height:48px}.bg-review-actions{width:100%}.bg-review-actions .btn,.skin-card.bg-user-card .skin-actions .btn{flex:1}.skin-card,.bubble-card{gap:10px;padding:10px}.skin-preview{flex:0 0 70px;height:70px}.bubble-preview{flex:0 0 70px}.skin-info .btn{padding:5px 8px;font-size:12px}.bg-price{gap:4px}.bg-price-input{width:72px;padding:4px 6px;font-size:12px}.quota-shop{flex-direction:column;align-items:flex-start;gap:10px}.quota-shop-info strong{font-size:20px}}.request-list{display:flex;flex-direction:column}.request-item{display:flex;align-items:center;gap:10px;padding:10px 0;border-bottom:1px dashed var(--line)}.request-item:last-child{border-bottom:none}.request-body{flex:1;min-width:0}.request-body strong{font-size:13px}.request-actions{display:flex;gap:6px}[data-theme=dark]{color-scheme:dark;--bg: #0d1117;--card: #151b24;--text: #e6ebf4;--muted: #94a0b5;--line: #242c3a;--primary: #6c8bff;--primary-dark: #9bb0ff;--primary-soft: #1c2740;--green: #3ddc97;--green-soft: #12291f;--danger: #ff6b6b;--danger-soft: #2c1719;--shadow: 0 1px 2px rgba(0, 0, 0, .3), 0 12px 32px rgba(0, 0, 0, .35);--soft: #1b2230;--hover: #1b2230;--input-bg: #10151d;--topbar-bg: rgba(17, 22, 30, .85);--card-soft: #121821}[data-theme=dark] .topbar,[data-theme=dark] .mobile-bar{background:var(--topbar-bg)}[data-theme=dark] .nav a:hover{background:var(--hover)}[data-theme=dark] .input{background:var(--input-bg)}[data-theme=dark] .input:focus{background:#131a24;border-color:#4a5f9e}[data-theme=dark] .input[readonly]{background:#141b26}[data-theme=dark] .btn{background:#232c3b}[data-theme=dark] .btn:hover{background:#2b3546}[data-theme=dark] .btn-primary{background:linear-gradient(135deg,#6366f1,#4f46e5);box-shadow:0 4px 14px #4f46e566}[data-theme=dark] .btn-primary:hover{background:linear-gradient(135deg,#7477f5,#5b52ea);box-shadow:0 7px 18px #4f46e573}[data-theme=dark] .btn-ghost{background:transparent;border-color:var(--line)}[data-theme=dark] .btn-ghost:hover{background:var(--hover);border-color:#2f3a4c}[data-theme=dark] .btn-danger{background:var(--danger-soft);border-color:#4a252b}[data-theme=dark] .btn-danger:hover{background:#3a1d22}[data-theme=dark] .tabs{background:#161d28}[data-theme=dark] .tabs button.active{background:#232c3b}[data-theme=dark] .tag{background:#232b39;border-color:#ffffff0f;box-shadow:none}[data-theme=dark] .tag.primary{background:var(--primary-soft);color:#c7d2fe}[data-theme=dark] .chip{background:#141b26}[data-theme=dark] .chip.active{color:#c7d2fe}[data-theme=dark] .chip:hover{border-color:#3a465b}[data-theme=dark] .chip.active{border-color:#3d5a9e;background:var(--primary-soft)}[data-theme=dark] .chip-input{background:var(--input-bg)}[data-theme=dark] .subject-bar{background:#232c3b}[data-theme=dark] .member{background:#1b2331}[data-theme=dark] .member-owner{background:#818cf82e;color:#a5b4fc}[data-theme=dark] .countdown-strip{border-color:#818cf838;background:radial-gradient(120% 160% at 100% 0%,rgba(124,92,255,.2),transparent 56%),linear-gradient(120deg,#171f30,#121826 55%,#151d2e);box-shadow:0 16px 32px -24px #000000bf}[data-theme=dark] .countdown-strip-kicker{color:#a5b4fc}[data-theme=dark] .countdown-strip-days{border-color:#818cf83d;background:#ffffff0f;box-shadow:none}[data-theme=dark] .countdown-strip-days b{background-image:linear-gradient(135deg,#a5b4fc,#e9d5ff)}[data-theme=dark] .countdown-strip-arrow{background:#818cf829;color:#a5b4fc}[data-theme=dark] .countdown-strip:hover .countdown-strip-arrow{background:#818cf842}[data-theme=dark] .cdr-card{border-color:#818cf840}[data-theme=dark] .cdr-kicker{background:#818cf829;color:#a5b4fc}[data-theme=dark] .cdr-number b{background-image:linear-gradient(135deg,#818cf8,#c084fc 60%,#f472b6)}[data-theme=dark] .cdr-today-text{background-image:linear-gradient(135deg,#818cf8,#f472b6)}[data-theme=dark] .cdr-close{background:#94a3b829}[data-theme=dark] .dash-date{color:#94a3b8}[data-theme=dark] .dash-quote-tag{border-color:#818cf84d;background:#818cf829;color:#a5b4fc}[data-theme=dark] .dash-points{border-color:#f59f004d;background:linear-gradient(135deg,#ffd43b24,#f59f000d);color:#ffd43b}[data-theme=dark] .dash-points b{color:#ffe08a}[data-theme=dark] .dash-stat.today{background:linear-gradient(160deg,#171f30,#141b2a)}[data-theme=dark] .dash-stat.streak{background:linear-gradient(160deg,#141f1e,#121a1a)}[data-theme=dark] .dash-stat.week{background:linear-gradient(160deg,#1a1a2e,#151625)}[data-theme=dark] .dash-stat:hover{box-shadow:0 20px 34px -22px #000c}[data-theme=dark] .dash-clock{border-color:#818cf833;background:radial-gradient(120% 140% at 50% 0%,rgba(129,140,248,.14),transparent 65%),#ffffff08}[data-theme=dark] .dash-clock strong{background-image:linear-gradient(135deg,#e2e8f0,#a5b4fc)}[data-theme=dark] .dash-clock.running strong{background-image:linear-gradient(135deg,#63e6be,#12b886)}[data-theme=dark] .dash-status{background:#94a3b829}[data-theme=dark] .dash-record-entry{background:#ffffff08}[data-theme=dark] .dash-record-entry:hover{background:#818cf814}[data-theme=dark] .dash-record-entry .record-time{background:#818cf829;color:#a5b4fc}[data-theme=dark] .dash-record-entry .record-duration{background:#12b88629;color:#63e6be}[data-theme=dark] .record-dot{box-shadow:0 0 0 2px #121826}[data-theme=dark] .dash-more{color:#a5b4fc}[data-theme=dark] .dash-chart-card .legend-percent{background:#818cf824;color:#a5b4fc}[data-theme=dark] .hour-summary-chip{background:#ffffff0a}[data-theme=dark] .hour-summary-chip b{color:var(--text)}[data-theme=dark] .hour-summary-chip.accent{background:#818cf81f;color:#a5b4fc}[data-theme=dark] .room-icon-btn{background:var(--card)}[data-theme=dark] .room-icon-btn.invite{color:#63e6be;border-color:#12b88673}[data-theme=dark] .room-icon-btn.danger{color:#ff8787;border-color:#e0313173}[data-theme=dark] .room-code-chip{background:#818cf824;border-color:#818cf866;color:#a5b4fc}[data-theme=dark] .room-meta-chip{background:var(--card)}[data-theme=dark] .room-meta-chip.green{color:#63e6be;border-color:#12b88666;background:#12b8861f}[data-theme=dark] .room-member-grid .member{background:#94a3b81a}[data-theme=dark] .chat-bubble{background:#232c3b}[data-theme=dark] .chat-msg.mine .chat-bubble{background:var(--primary)}[data-theme=dark] .room-focus-side{background:var(--card)}[data-theme=dark] .bubble-preview{background:#1a2130}[data-theme=dark] .skin-card.active,[data-theme=dark] .bubble-card.active{box-shadow:0 0 0 3px #6c8bff2e}[data-theme=dark] .modal-text{color:#c7d0e0}[data-theme=dark] .countdown-hero{background:linear-gradient(135deg,#1b2440,#151c2b);border-color:#26324a}[data-theme=dark] .countdown-title{color:#c7d0e0}[data-theme=dark] .countdown-item{background:linear-gradient(135deg,#1b2440,#151c2b);border-color:#26324a}[data-theme=dark] .countdown-item-title{color:#c7d0e0}[data-theme=dark] .legend-row.active{background:#232c46}[data-theme=dark] .legend-row.active .legend-name{color:#c7d2fe}[data-theme=dark] .breakdown-bar{background:#26324a}[data-theme=dark] .breakdown-bar span{background:linear-gradient(90deg,#818cf8,#6366f1)}[data-theme=dark] .ended-banner{background:#1a2130;border-color:#2b3546;color:#aab4c6}[data-theme=dark] .login-page{background:radial-gradient(1100px 500px at 50% -10%,#1a2440,#0d111700 60%),var(--bg)}[data-theme=dark] .room-card{background:var(--card-soft)!important}[data-theme=dark] .history-stat{background:linear-gradient(135deg,#1b2440,#151c2b);border-color:#26324a}[data-theme=dark] .history-stat strong{color:#c7d2fe}[data-theme=dark] .countdown-strip{background:linear-gradient(90deg,#6c8bff29,#6c8bff08)}@media (max-width: 900px){.sidebar{width:264px;transform:translate(-100%);transition:transform .2s ease;box-shadow:0 20px 60px #00000059}.sidebar.open{transform:none}.sidebar-mask{display:block;position:fixed;top:0;right:0;bottom:0;left:0;z-index:55;background:#0d111c73}.main-wrap{margin-left:0}.mobile-bar{position:sticky;top:0;z-index:40;display:flex;align-items:center;gap:10px;padding:calc(10px + env(safe-area-inset-top,0px)) 14px 10px;background:var(--topbar-bg);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}.main{max-width:none;padding:16px 14px calc(56px + env(safe-area-inset-bottom,0px))}.page-head{flex-wrap:wrap;align-items:flex-start}.page-head h1{font-size:21px}.form-row{grid-template-columns:1fr}.record-item{flex-wrap:wrap;row-gap:6px}.record-duration{margin-left:0}.record-actions{width:100%;margin-left:0;justify-content:flex-end}.record-entry{grid-template-columns:42px minmax(0,1fr);row-gap:6px}.record-entry .record-actions{grid-column:1 / -1}.history-stats{grid-template-columns:1fr}.countdown-strip-days{margin-left:0}.skins,.skins.bg-skins,.bubbles{grid-template-columns:1fr}.chat{height:60vh}.focus-overlay-actions{width:100%}.donut-wrap{width:160px;height:160px}}.admin-search{max-width:220px}.admin-user-list{display:flex;flex-direction:column}.admin-user-item{border-bottom:1px dashed var(--line)}.admin-user-item:last-child{border-bottom:none}.admin-user-row{display:flex;align-items:center;gap:12px;padding:14px 6px;border-radius:12px;cursor:pointer;transition:background .15s ease}.admin-user-row:hover{background:#6366f10d}.admin-user-main{flex:1;min-width:0}.admin-user-name{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.admin-user-meta{margin-top:3px}.admin-user-tags{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.admin-user-chevron{display:inline-flex;color:var(--muted);transition:transform .2s ease}.admin-user-chevron.open{transform:rotate(90deg)}.admin-user-chevron svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.admin-user-detail{padding:4px 6px 20px}.admin-stat-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin-bottom:18px}.admin-stat{padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:#f8f9fd}.admin-stat strong{display:block;margin-top:3px;font-size:16px;font-weight:700;color:var(--primary-dark);font-variant-numeric:tabular-nums}.admin-detail-cols{display:grid;grid-template-columns:1.4fr 1fr;gap:18px}.admin-detail-cols h3{margin-bottom:8px;font-size:13px;color:var(--muted);font-weight:600}.admin-records{display:flex;flex-direction:column;max-height:260px;overflow:auto;padding-right:4px}.admin-record{display:flex;align-items:center;gap:8px;padding:6px 0;font-size:12px;border-bottom:1px dashed var(--line)}.admin-record:last-child{border-bottom:none}.admin-record-note{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-actions{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:18px}.admin-action label{display:block;margin-bottom:6px;font-size:12px;font-weight:600;color:var(--muted)}.admin-action-row{display:flex;gap:8px}.admin-danger-zone{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:18px;padding-top:14px;border-top:1px dashed var(--line)}[data-theme=dark] .admin-stat{background:#151c2b;border-color:#26324a}[data-theme=dark] .admin-stat strong{color:#c7d2fe}[data-theme=dark] .admin-user-row:hover{background:#6c8bff1a}@media (max-width: 900px){.admin-search{max-width:none;width:100%}.admin-user-row{flex-wrap:wrap}.admin-user-tags{width:100%;justify-content:flex-start}.admin-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-detail-cols,.admin-actions{grid-template-columns:1fr}}.focus-overlay.skin-rainy,.room-focus.skin-rainy{background:radial-gradient(ellipse 120% 70% at 50% -10%,rgba(96,132,186,.35),transparent 60%),radial-gradient(ellipse 90% 50% at 80% 100%,rgba(38,58,92,.55),transparent 70%),linear-gradient(180deg,#26364d,#16202f 46%,#0a0f18);overflow:hidden}.focus-overlay.skin-snowy,.room-focus.skin-snowy{background:radial-gradient(ellipse 120% 70% at 30% -10%,rgba(148,168,205,.4),transparent 62%),radial-gradient(ellipse 100% 60% at 50% 110%,rgba(196,210,232,.3),transparent 70%),linear-gradient(180deg,#3c4a63,#232e42 52%,#111827);overflow:hidden}.weather-canvas{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;display:block;pointer-events:none;z-index:0}.focus-overlay.skin-bg-maple,.room-focus.skin-bg-maple{background-image:linear-gradient(180deg,#0c0a1047,#080a1294),url(/focus/maple.jpg);background-size:cover;background-position:center;overflow:hidden}.focus-overlay.skin-bg-hill,.room-focus.skin-bg-hill{background-image:linear-gradient(180deg,#101a2242,#0a121a80),url(/focus/hill.jpg);background-size:cover;background-position:center;overflow:hidden}.focus-overlay.skin-bg-sky,.room-focus.skin-bg-sky{background-image:linear-gradient(180deg,#0a142838,#060c1a85),url(/focus/sky.jpg);background-size:cover;background-position:center 42%;overflow:hidden}.focus-overlay.skin-bg-sunset,.room-focus.skin-bg-sunset{background-image:linear-gradient(180deg,#1e0c0838,#10080a85),url(/focus/sunset.jpg);background-size:cover;background-position:center;overflow:hidden}.focus-overlay.skin-bg-sea,.room-focus.skin-bg-sea{background-image:linear-gradient(180deg,#06141e3d,#040c168c),url(/focus/sea.jpg);background-size:cover;background-position:center;overflow:hidden}.focus-overlay[class*=skin-bg-] .focus-overlay-subject,.focus-overlay[class*=skin-bg-] .focus-overlay-timer,.focus-overlay[class*=skin-bg-] .focus-overlay-hint,.focus-overlay[class*=skin-bg-] .focus-overlay-note,.room-focus[class*=skin-bg-] .focus-overlay-subject,.room-focus[class*=skin-bg-] .focus-overlay-timer,.room-focus[class*=skin-bg-] .focus-overlay-hint{text-shadow:0 2px 18px rgba(0,0,0,.55),0 1px 3px rgba(0,0,0,.45)}.skin-card.skin-bg-maple .skin-preview{background-image:linear-gradient(180deg,#0000002e,#0000004d),url(/focus/maple.jpg)}.skin-card.skin-bg-hill .skin-preview{background-image:linear-gradient(180deg,#0000001f,#00000042),url(/focus/hill.jpg)}.skin-card.skin-bg-sky .skin-preview{background-image:linear-gradient(180deg,#00000029,#0000004d),url(/focus/sky.jpg)}.skin-card.skin-bg-sunset .skin-preview{background-image:linear-gradient(180deg,#00000024,#0000004d),url(/focus/sunset.jpg)}.skin-card.skin-bg-sea .skin-preview{background-image:linear-gradient(180deg,#00000029,#0000004d),url(/focus/sea.jpg)}.skin-card[class*=skin-bg-] .skin-preview{background-size:cover;background-position:center}.focus-overlay.skin-bg-user,.room-focus.skin-bg-user{background-color:#0d111c;background-size:cover;background-position:center;overflow:hidden}.focus-overlay>:not(.weather-canvas),.room-focus>:not(.weather-canvas){position:relative;z-index:1}@keyframes rain-fall{0%{transform:translateY(-90px)}to{transform:translateY(0)}}@keyframes snow-fall{0%{transform:translateY(-240px)}to{transform:translateY(0)}}.skin-card.skin-rainy .skin-preview,.skin-card.skin-snowy .skin-preview{position:relative;overflow:hidden}.skin-card.skin-rainy .skin-preview{background:radial-gradient(circle at 50% 18%,#33445f,#0b111b)}.skin-card.skin-rainy .skin-preview:after{content:"";position:absolute;top:-40%;right:-20%;bottom:-40%;left:-20%;background-image:repeating-linear-gradient(100deg,rgba(190,214,255,.5) 0 1px,transparent 1px 9px);animation:rain-fall .8s linear infinite;opacity:.55}.skin-card.skin-snowy .skin-preview{background:radial-gradient(circle at 50% 15%,#55637f,#0b111b)}.skin-card.skin-snowy .skin-preview:after{content:"";position:absolute;top:-10%;right:-10%;bottom:-10%;left:-10%;background-image:radial-gradient(2px 2px at 18px 22px,rgba(255,255,255,.9) 50%,transparent 51%),radial-gradient(1.6px 1.6px at 70px 64px,rgba(255,255,255,.75) 50%,transparent 51%),radial-gradient(2.2px 2.2px at 40px 96px,rgba(255,255,255,.8) 50%,transparent 51%);background-size:120px 120px;animation:snow-fall 7s linear infinite}.skin-preview-timer{position:relative;z-index:1}.announce-mask{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1400;display:grid;place-items:center;padding:20px;background:#0c101a85;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.announce-card{width:min(540px,100%);max-height:min(620px,86vh);display:flex;flex-direction:column;padding:22px;border-radius:18px;background:var(--card);border:1px solid var(--line);box-shadow:0 24px 60px #10182847;animation:announce-pop .28s cubic-bezier(.22,1,.36,1)}@keyframes announce-pop{0%{opacity:0;transform:translateY(12px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.announce-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.announce-title{margin-top:10px;font-size:20px}.announce-body{margin-top:12px;flex:1;overflow:auto;white-space:pre-wrap;word-break:break-word;color:var(--text);font-size:14px;line-height:1.8}.announce-foot{display:flex;justify-content:flex-end;margin-top:18px}.announce-admin-item{display:flex;align-items:flex-start;gap:12px;padding:12px 0;border-top:1px dashed var(--line)}.announce-admin-item:first-of-type{margin-top:16px}.announce-admin-text{flex:1;min-width:0}.announce-admin-body{margin:4px 0 2px;font-size:13px;color:var(--muted);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}@media (max-width: 900px){.announce-admin-item{flex-wrap:wrap}}.chat-bubble.bubble-jelly{position:relative;overflow:hidden;background:radial-gradient(circle at 20% 14%,rgba(255,255,255,.95),transparent 42%),linear-gradient(135deg,#ffd6f0f2,#c4b5fde6 55%,#93c5fddb);color:#4c1d4a;border:1px solid rgba(255,255,255,.8);border-radius:18px;box-shadow:0 10px 22px #a78bfa57,inset 0 2px 8px #ffffffe6,inset 0 -6px 12px #8b5cf62e;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.chat-bubble.bubble-jelly:after{content:"";position:absolute;top:-60%;left:-40%;width:55%;height:220%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.5),transparent);transform:rotate(18deg);animation:jelly-sheen 4.5s ease-in-out infinite;pointer-events:none}@keyframes jelly-sheen{0%,55%{left:-40%}78%,to{left:125%}}.chat-msg.mine .chat-bubble.bubble-jelly{background:radial-gradient(circle at 20% 14%,rgba(255,255,255,.9),transparent 42%),linear-gradient(135deg,#c4b5fdeb,#93c5fde6 55%,#7dd3fcdb);color:#4c1d4a}.chat-bubble.bubble-starry{position:relative;overflow:hidden;background-color:#17204a;background-image:radial-gradient(1.4px 1.4px at 18% 24%,rgba(255,255,255,.95) 50%,transparent 51%),radial-gradient(1px 1px at 62% 68%,rgba(199,210,254,.9) 50%,transparent 51%),radial-gradient(1.2px 1.2px at 84% 28%,rgba(255,255,255,.85) 50%,transparent 51%),radial-gradient(1px 1px at 34% 82%,rgba(224,231,255,.8) 50%,transparent 51%),linear-gradient(135deg,#1e2a63,#101636);color:#e6ecff;border:1px solid rgba(147,197,253,.4);border-radius:16px;box-shadow:0 8px 20px #1e2a6361,inset 0 1px #c7d2fe40}.chat-msg.mine .chat-bubble.bubble-starry{background-color:#17204a;background-image:radial-gradient(1.4px 1.4px at 18% 24%,rgba(255,255,255,.95) 50%,transparent 51%),radial-gradient(1px 1px at 62% 68%,rgba(199,210,254,.9) 50%,transparent 51%),radial-gradient(1.2px 1.2px at 84% 28%,rgba(255,255,255,.85) 50%,transparent 51%),radial-gradient(1px 1px at 34% 82%,rgba(224,231,255,.8) 50%,transparent 51%),linear-gradient(135deg,#1e2a63,#101636);color:#e6ecff;border-radius:16px 16px 6px}.chat-bubble.bubble-starry:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-image:radial-gradient(1.6px 1.6px at 46% 32%,rgba(255,255,255,.95) 50%,transparent 51%),radial-gradient(1.2px 1.2px at 72% 58%,rgba(191,219,254,.9) 50%,transparent 51%),radial-gradient(1.8px 1.8px at 26% 64%,rgba(255,255,255,.85) 50%,transparent 51%);opacity:.55;animation:star-twinkle 3.4s ease-in-out infinite;pointer-events:none}@keyframes star-twinkle{0%,to{opacity:.25}50%{opacity:.9}}.chat-bubble.bubble-dino{position:relative;background:radial-gradient(circle at 24% 16%,rgba(255,255,255,.9),transparent 40%),linear-gradient(135deg,#e2fce9,#86efac 58%,#4ade80);color:#14532d;border:2px solid #34d399;border-radius:8px 22px 22px;box-shadow:0 6px 14px #34d3994d,inset 0 1px #f0fff6}.chat-bubble.bubble-dino:after{content:"";position:absolute;top:-9px;left:14px;width:58px;height:9px;background:linear-gradient(180deg,#6ee7b7,#10b981);clip-path:polygon(0 100%,8% 0,16% 100%,24% 0,32% 100%,40% 0,48% 100%,56% 0,64% 100%,72% 0,80% 100%,88% 0,96% 100%,100% 100%)}.chat-msg.mine .chat-bubble.bubble-dino{background:radial-gradient(circle at 24% 16%,rgba(255,255,255,.9),transparent 40%),linear-gradient(135deg,#e2fce9,#86efac 58%,#4ade80);color:#14532d;border-radius:22px 8px 22px 22px}.chat-msg.mine .chat-bubble.bubble-dino:after{left:auto;right:14px}.chat-bubble.bubble-peachcat,.chat-msg.mine .chat-bubble.bubble-peachcat{position:relative;padding-top:24px;background:radial-gradient(circle at 22% 10%,rgba(255,255,255,.95),transparent 42%),radial-gradient(circle at 86% 92%,rgba(255,170,60,.28),transparent 58%),linear-gradient(145deg,#fff7e8,#ffdda6 52%,#f8b969);color:#6b3f12;border:2px solid #e9a44c;border-radius:22px 22px 22px 8px;box-shadow:0 8px 18px #e9a44c47,inset 0 2px #ffffffe6}.chat-bubble.bubble-peachcat:before{content:"";position:absolute;top:-5px;left:14px;width:34px;height:13px;background:radial-gradient(circle at 7px 7px,#f5b25e 6px,transparent 6.6px),radial-gradient(circle at 27px 7px,#f0a94f 6px,transparent 6.6px)}.chat-bubble.bubble-peachcat:after{content:"";position:absolute;top:9px;left:15px;width:36px;height:12px;background:radial-gradient(circle at 4px 4px,#5b3410 2px,transparent 2.4px),radial-gradient(circle at 20px 4px,#5b3410 2px,transparent 2.4px),radial-gradient(ellipse 4px 2px at 12px 9px,rgba(150,80,30,.7),transparent 70%)}.chat-msg.mine .chat-bubble.bubble-peachcat{border-radius:22px 22px 8px}.chat-bubble.bubble-snowpuff,.chat-msg.mine .chat-bubble.bubble-snowpuff{position:relative;padding-top:21px;background:radial-gradient(circle at 18% 8%,#ffffff,transparent 46%),radial-gradient(circle at 88% 94%,rgba(173,216,255,.4),transparent 60%),linear-gradient(150deg,#fff,#eaf5ff 48%,#cfe6fb);color:#2f506e;border:2px solid #a9cdec;border-radius:24px 24px 24px 8px;box-shadow:0 8px 18px #7ca8d640,inset 0 1px #fff}.chat-bubble.bubble-snowpuff:before{content:"";position:absolute;top:-5px;left:14px;width:34px;height:13px;background:radial-gradient(circle at 7px 7px,#d5e9fb 6px,transparent 6.6px),radial-gradient(circle at 27px 7px,#c5def5 6px,transparent 6.6px)}.chat-bubble.bubble-snowpuff:after{content:"";position:absolute;top:9px;left:15px;width:36px;height:12px;background:radial-gradient(circle at 4px 4px,#3d5a78 2px,transparent 2.4px),radial-gradient(circle at 20px 4px,#3d5a78 2px,transparent 2.4px),radial-gradient(ellipse 4px 2px at 12px 9px,rgba(90,130,170,.65),transparent 70%)}.chat-msg.mine .chat-bubble.bubble-snowpuff{border-radius:24px 24px 8px}.chat-bubble.bubble-mintdragon,.chat-msg.mine .chat-bubble.bubble-mintdragon{position:relative;padding-top:21px;background:radial-gradient(circle at 22% 12%,rgba(255,255,255,.9),transparent 42%),linear-gradient(135deg,#e9fdf2,#9cf0c4 56%,#5fe0a0);color:#0f5132;border:2px solid #3ecf8e;border-radius:8px 22px 22px;box-shadow:0 8px 18px #3ecf8e47,inset 0 1px #f2fffa}.chat-bubble.bubble-mintdragon:before{content:"";position:absolute;top:-8px;left:14px;width:56px;height:9px;background:linear-gradient(180deg,#86efac,#22c55e);clip-path:polygon(0 100%,8% 0,16% 100%,24% 0,32% 100%,40% 0,48% 100%,56% 0,64% 100%,72% 0,80% 100%,88% 0,96% 100%,100% 100%)}.chat-bubble.bubble-mintdragon:after{content:"";position:absolute;top:9px;left:15px;width:36px;height:12px;background:radial-gradient(circle at 4px 4px,#14532d 2px,transparent 2.4px),radial-gradient(circle at 20px 4px,#14532d 2px,transparent 2.4px),radial-gradient(ellipse 4px 2px at 12px 9px,rgba(20,83,45,.7),transparent 70%)}.chat-msg.mine .chat-bubble.bubble-mintdragon{border-radius:22px 8px 22px 22px}.chat-msg.mine .chat-bubble.bubble-mintdragon:before{left:auto;right:14px}.chat-bubble.bubble-berryuni,.chat-msg.mine .chat-bubble.bubble-berryuni{position:relative;padding-top:22px;background:radial-gradient(circle at 20% 10%,rgba(255,255,255,.95),transparent 44%),radial-gradient(circle at 84% 88%,rgba(255,158,199,.3),transparent 58%),linear-gradient(145deg,#fff2f8,#ffd0e6 52%,#ffabd2);color:#7a2c50;border:2px solid #ff9ec7;border-radius:24px 24px 24px 8px;box-shadow:0 8px 18px #ff9ec747,inset 0 2px #ffffffe6}.chat-bubble.bubble-berryuni:before{content:"♥";position:absolute;top:-10px;left:14px;font-size:16px;line-height:1;color:#ff7fb4;text-shadow:16px 2px 0 #ffb3d1}.chat-bubble.bubble-berryuni:after{content:"";position:absolute;top:10px;left:15px;width:36px;height:12px;background:radial-gradient(circle at 4px 4px,#7a2c50 2px,transparent 2.4px),radial-gradient(circle at 20px 4px,#7a2c50 2px,transparent 2.4px),radial-gradient(ellipse 4px 2px at 12px 9px,rgba(200,90,140,.6),transparent 70%)}.chat-msg.mine .chat-bubble.bubble-berryuni{border-radius:24px 24px 8px}.chat-msg.mine .chat-bubble.bubble-berryuni:before{left:auto;right:14px;text-shadow:-16px 2px 0 #ffb3d1}.chat-bubble.bubble-wolfgray,.chat-msg.mine .chat-bubble.bubble-wolfgray{position:relative;padding-top:21px;background:radial-gradient(circle at 24% 12%,rgba(255,255,255,.9),transparent 44%),linear-gradient(140deg,#f7f9fd,#d9e2f0 52%,#bfcbdd);color:#2b3a52;border:2px solid #7b8aa6;border-radius:20px 20px 20px 6px;box-shadow:0 8px 18px #6c7d9847,inset 0 1px #fff}.chat-bubble.bubble-wolfgray:before{content:"";position:absolute;top:-6px;left:14px;width:32px;height:14px;background:linear-gradient(135deg,transparent 48%,#aebbd0 49%) left / 50% 100% no-repeat,linear-gradient(225deg,transparent 48%,#a2b0c7 49%) right / 50% 100% no-repeat}.chat-bubble.bubble-wolfgray:after{content:"";position:absolute;top:9px;left:15px;width:36px;height:12px;background:radial-gradient(circle at 4px 4px,#374151 2px,transparent 2.4px),radial-gradient(circle at 20px 4px,#374151 2px,transparent 2.4px),radial-gradient(ellipse 4px 2px at 12px 9px,rgba(70,85,110,.65),transparent 70%)}.chat-msg.mine .chat-bubble.bubble-wolfgray{border-radius:20px 20px 6px}.chat-bubble.bubble-tuxcat,.chat-msg.mine .chat-bubble.bubble-tuxcat{position:relative;padding-top:21px;background:radial-gradient(circle at 88% 16%,rgba(31,41,55,.92) 10%,transparent 11%),linear-gradient(135deg,#fff,#eef2f8 55%,#dbe3ee);color:#1f2a3c;border:2px solid #334155;border-radius:22px;box-shadow:0 8px 18px #3341553d,inset 0 1px #fff}.chat-bubble.bubble-tuxcat:before{content:"";position:absolute;top:-5px;left:14px;width:34px;height:13px;background:radial-gradient(circle at 7px 7px,#334155 6px,transparent 6.6px),radial-gradient(circle at 27px 7px,#e2e8f2 6px,transparent 6.6px)}.chat-bubble.bubble-tuxcat:after{content:"";position:absolute;top:9px;left:15px;width:36px;height:12px;background:radial-gradient(circle at 4px 4px,#1f2937 2px,transparent 2.4px),radial-gradient(circle at 20px 4px,#1f2937 2px,transparent 2.4px),radial-gradient(ellipse 4px 2px at 12px 9px,rgba(60,80,100,.6),transparent 70%)}.chat-msg.mine .chat-bubble.bubble-tuxcat{border-radius:22px 22px 8px}.chat-bubble.bubble-tangplain,.chat-bubble.bubble-tangorange,.chat-bubble.bubble-tangcat,.chat-msg.mine .chat-bubble.bubble-tangplain,.chat-msg.mine .chat-bubble.bubble-tangorange,.chat-msg.mine .chat-bubble.bubble-tangcat{display:inline-flex;align-items:center;position:relative;min-height:46px;padding:8px 13px 8px 52px;border:2px solid;border-radius:18px 18px 18px 6px;font-weight:500;line-height:1.4;box-shadow:0 8px 18px #a0781e2e,inset 0 2px #ffffffd9}.chat-bubble.bubble-tangplain:before,.chat-bubble.bubble-tangorange:before,.chat-bubble.bubble-tangcat:before{content:"";position:absolute;top:50%;left:8px;width:36px;height:36px;margin-top:-18px;border-radius:50%;background-position:center;background-size:cover;background-repeat:no-repeat;box-shadow:0 0 0 2px #fff,0 5px 10px #78500a38;animation:bubble-bob 2.8s ease-in-out infinite}.chat-bubble.bubble-tangplain:after,.chat-bubble.bubble-tangorange:after,.chat-bubble.bubble-tangcat:after{content:"";position:absolute;left:-5px;bottom:8px;width:8px;height:8px;border-radius:50%}.chat-bubble.bubble-tangplain,.chat-msg.mine .chat-bubble.bubble-tangplain{background:linear-gradient(150deg,#fffbef,#ffe9a8 55%,#ffd75e);color:#6b4712;border-color:#f0b400}.chat-bubble.bubble-tangplain:before{background-image:url(/assets/tang-plain-sPDliUwo.png)}.chat-bubble.bubble-tangplain:after{background:#ffd75e}.chat-bubble.bubble-tangorange,.chat-msg.mine .chat-bubble.bubble-tangorange{background:linear-gradient(150deg,#fff8e8,#ffe1a8 52%,#ffc14d);color:#7a4308;border-color:#ef9f24}.chat-bubble.bubble-tangorange:before{background-image:url(/assets/tang-orange-FY4LaxIh.png)}.chat-bubble.bubble-tangorange:after{background:#ffc14d}.chat-bubble.bubble-tangcat,.chat-msg.mine .chat-bubble.bubble-tangcat{background:linear-gradient(160deg,#fff,#fffdf3 45%,#ffe9c2);color:#6b532a;border-color:#efdcb4}.chat-bubble.bubble-tangcat:before{background-image:url(/assets/tang-cat-BZanyGJb.png)}.chat-bubble.bubble-tangcat:after{background:#ffe9c2}.chat-msg.mine .chat-bubble.bubble-tangplain,.chat-msg.mine .chat-bubble.bubble-tangorange,.chat-msg.mine .chat-bubble.bubble-tangcat{padding:8px 52px 8px 13px;border-radius:18px 18px 6px}.chat-msg.mine .chat-bubble.bubble-tangplain:before,.chat-msg.mine .chat-bubble.bubble-tangorange:before,.chat-msg.mine .chat-bubble.bubble-tangcat:before{left:auto;right:8px}.chat-msg.mine .chat-bubble.bubble-tangplain:after,.chat-msg.mine .chat-bubble.bubble-tangorange:after,.chat-msg.mine .chat-bubble.bubble-tangcat:after{left:auto;right:-5px}@keyframes bubble-bob{0%,to{transform:translateY(0)}50%{transform:translateY(-3px)}}@media (prefers-reduced-motion: reduce){.chat-bubble.bubble-tangplain:before,.chat-bubble.bubble-tangorange:before,.chat-bubble.bubble-tangcat:before{animation:none}}.bubble-preview .chat-bubble.bubble-tangplain,.bubble-preview .chat-bubble.bubble-tangorange,.bubble-preview .chat-bubble.bubble-tangcat{width:100%;height:48px;min-height:48px;padding:5px 6px 5px 30px;font-size:11px}.bubble-preview .chat-bubble.bubble-tangplain:before,.bubble-preview .chat-bubble.bubble-tangorange:before,.bubble-preview .chat-bubble.bubble-tangcat:before{left:5px;width:22px;height:22px;margin-top:-11px;box-shadow:0 0 0 1.5px #fff,0 3px 6px #78500a33}.bubble-preview .chat-bubble.bubble-tangplain:after,.bubble-preview .chat-bubble.bubble-tangorange:after,.bubble-preview .chat-bubble.bubble-tangcat:after{display:none}.level-card{position:relative;overflow:hidden}.level-card:before{content:"";position:absolute;inset:0 0 auto;height:3px;background:linear-gradient(90deg,#6366f1,#8b5cf6 52%,#f59f00)}.level-head{display:flex;align-items:center;justify-content:space-between;gap:14px;width:100%;padding:0;border:none;background:none;color:inherit;font:inherit;text-align:left;cursor:pointer}.level-head:focus-visible{outline:none;border-radius:10px;box-shadow:0 0 0 3px #4f46e52e}.level-head-title{display:flex;align-items:center;gap:12px;min-width:0}.level-head-icon{display:grid;place-items:center;width:36px;height:36px;flex:none;border-radius:10px;background:var(--tone-bg, var(--soft));color:var(--tone-ink, var(--text))}.level-head-icon svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;opacity:.72}.level-head-text{display:flex;flex-direction:column;gap:1px;min-width:0}.level-title{font-size:16px;font-weight:600;letter-spacing:-.01em}.level-head-text em{color:var(--muted);font-size:12px;font-style:normal}.level-head-side{display:flex;align-items:center;gap:8px;flex:none}.level-chip{display:inline-flex;align-items:center;padding:4px 10px;border:1px solid var(--line);border-radius:999px;background:var(--card-soft);color:var(--text);font-size:12px;font-weight:600;white-space:nowrap}.level-body{margin-top:16px}.level-progress{padding:14px 16px;border:1px solid rgba(99,102,241,.16);border-radius:16px;background:radial-gradient(120% 100% at 100% 0%,rgba(99,102,241,.1),transparent 55%),#f7f8ff}.level-progress-main{display:flex;align-items:center;gap:12px}.level-medal{display:grid;place-items:center;width:50px;height:50px;flex:none;border-radius:50%;background:var(--tone-bg, var(--soft));color:var(--tone-ink, var(--text))}.level-medal b{font-size:14px;font-weight:700;letter-spacing:.01em}.level-medal.tone-indigo{--tone-bg: #eef1ff;--tone-ink: #4f5bd5}[data-theme=dark] .level-medal.tone-indigo{--tone-bg: rgba(129, 140, 248, .16);--tone-ink: #a5b4fc}.level-progress-text{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0}.level-progress-text strong{font-size:15px}.level-progress-percent{flex:none;color:var(--primary-dark);font-size:18px;font-weight:800;font-variant-numeric:tabular-nums}.level-progress-bar{height:8px;margin:12px 0 10px;border-radius:999px;background:#e6e9f5;overflow:hidden}.level-progress-bar span{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#7c8cff,#6d5cff);transition:width .4s ease}.level-progress-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}.level-progress-earned{display:inline-flex;align-items:center;gap:5px;color:var(--green);font-size:12px;font-weight:600}.level-progress-earned svg{width:14px;height:14px;flex:none;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}.level-tier{margin-top:18px}.level-tier-head{display:flex;align-items:center;gap:8px;margin-bottom:10px}.level-tier-name{font-size:13px;font-weight:800;letter-spacing:.02em}.level-tier-range{padding:1px 8px;border-radius:999px;background:#eef1fa;color:var(--muted);font-size:10px;font-weight:700;white-space:nowrap}.level-tier-line{flex:1;height:1px;background:var(--line)}.level-tier-hint{color:var(--muted);font-size:11px;white-space:nowrap}.level-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}.level-item{position:relative;display:flex;flex-direction:column;gap:2px;padding:10px 11px;border:1px solid var(--line);border-radius:12px;background:#fafbfe;transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease}.level-item:hover{transform:translateY(-1px);box-shadow:0 8px 18px -14px #10182880}.level-item.reached{border-color:#c7d2fe;background:linear-gradient(180deg,#f6f8ff,#eff2ff)}.level-item.current{border-color:#8b9cf9;background:linear-gradient(180deg,#eef2ff,#e5ebff);box-shadow:0 0 0 2px #6366f133}.level-item-top{display:flex;align-items:center;gap:6px}.level-badge{padding:2px 7px;border-radius:999px;background:#e3e8ff;color:#4338ca;font-size:11px;font-weight:700}.level-state{display:inline-flex;align-items:center;margin-left:auto}.level-state svg{width:13px;height:13px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}.level-state.done{color:var(--green)}.level-state.locked{color:#b0b6c4}.level-state.now{padding:1px 6px;border-radius:999px;background:#4f46e5;color:#fff;font-size:9px;font-weight:700;line-height:1.6}.level-name{margin-top:2px;font-size:13px;font-weight:700}.level-requirement{color:var(--muted);font-size:11px}.level-reward{display:inline-flex;align-items:center;gap:4px;margin-top:4px;color:#b26811;font-size:11px;font-weight:600}.level-reward svg{width:12px;height:12px;flex:none;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}.level-reward.zero{color:var(--muted);font-weight:500}.level-note{margin-top:14px}.point-summary{display:flex;align-items:center;gap:18px;flex-wrap:wrap;margin-bottom:14px;font-size:13px;color:var(--muted)}.point-summary strong{color:var(--text);font-variant-numeric:tabular-nums}.point-summary strong.plus,.point-detail-item>strong.plus{color:var(--green)}.point-summary strong.minus,.point-detail-item>strong.minus{color:var(--danger)}.point-filter{max-width:320px;margin-bottom:12px}.point-detail-list{display:flex;flex-direction:column}.point-detail-item{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0;font-size:13px;border-bottom:1px dashed var(--line)}.point-detail-item:last-child{border-bottom:none}.point-detail-main{min-width:0}.point-detail-main strong{word-break:break-word}.point-detail-item>strong{flex-shrink:0;font-variant-numeric:tabular-nums}[data-theme=dark] .level-item{background:#151c2b;border-color:#26324a}[data-theme=dark] .level-item.reached{border-color:#3b4a6b;background:linear-gradient(180deg,#1b2440,#151c2b)}[data-theme=dark] .level-item.current{border-color:#5567a8;background:linear-gradient(180deg,#202a4a,#1a2340);box-shadow:0 0 0 2px #6c8bff38}[data-theme=dark] .level-badge{background:#2b3a63;color:#c7d2fe}[data-theme=dark] .level-chip{border-color:#2c344a;background:#1a2130;color:var(--text)}[data-theme=dark] .level-progress{border-color:#2a3450;background:radial-gradient(120% 100% at 100% 0%,rgba(108,139,255,.14),transparent 55%),#171f2e}[data-theme=dark] .level-progress-bar{background:#26324a}[data-theme=dark] .level-tier-range{background:#232c3b}[data-theme=dark] .level-state.locked{color:#5b6577}@media (max-width: 1200px){.level-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (max-width: 900px){.level-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.point-filter{max-width:none}.level-head{flex-wrap:wrap}.level-head-text em{display:none}}.level-toggle{display:inline-flex;color:var(--muted);transition:transform .2s ease}.level-toggle.open{transform:rotate(180deg)}.level-toggle svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.level-fold-enter-active,.level-fold-leave-active{transition:opacity .18s ease,transform .18s ease}.level-fold-enter-from,.level-fold-leave-to{opacity:0;transform:translateY(-6px)}.friend-code-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.friend-code{padding:8px 14px;border-radius:12px;background:#f1f3fb;color:var(--primary-dark);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:26px;font-weight:700;letter-spacing:4px}.friend-visibility{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:16px;padding-top:14px;border-top:1px dashed var(--line)}.friend-search-row{display:flex;gap:8px}.friend-search-row .input{flex:1;letter-spacing:2px}.friend-search-result{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:14px;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:#f8f9fd}.friend-search-info{flex:1;min-width:0;display:flex;flex-direction:column}.friend-tip{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:10px}.friend-request-list,.friend-list{display:flex;flex-direction:column}.friend-request,.friend-item{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:10px 0;border-bottom:1px dashed var(--line)}.friend-request:last-child,.friend-item:last-child{border-bottom:none}.friend-request-info,.friend-item-info{flex:1;min-width:0;display:flex;flex-direction:column}.friend-item-actions{display:flex;gap:6px}.friend-outgoing{margin-top:14px;padding-top:12px;border-top:1px dashed var(--line)}.friend-outgoing h3{margin-bottom:8px;font-size:12px;color:var(--muted)}.friend-outgoing-item{display:flex;align-items:center;gap:8px;padding:4px 0;font-size:13px}.friend-outgoing-item .tag{margin-left:auto}.friend-chat-list{max-height:320px}.friend-stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:18px}.friend-stats-cols{display:grid;grid-template-columns:1fr 1.3fr;gap:18px}.friend-stats-cols h3{margin-bottom:8px;font-size:13px;font-weight:600;color:var(--muted)}.friend-record-list{display:flex;flex-direction:column;max-height:240px;overflow:auto}.friend-record{display:flex;align-items:center;gap:8px;padding:6px 0;font-size:12px;border-bottom:1px dashed var(--line)}.friend-record:last-child{border-bottom:none}.friend-record-note{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}[data-theme=dark] .friend-code{background:#1b2440;color:#c7d2fe}[data-theme=dark] .friend-search-result{background:#151c2b;border-color:#26324a}@media (max-width: 900px){.friend-code{font-size:20px;letter-spacing:3px}.friend-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.friend-stats-cols{grid-template-columns:1fr}.friend-chat-list{max-height:260px}}.card.chat-shell{display:grid;grid-template-columns:300px minmax(0,1fr);height:min(640px,calc(100vh - 200px));min-height:460px;padding:0;overflow:hidden}.chat-side{display:flex;flex-direction:column;min-width:0;min-height:0;overflow:hidden;border-right:1px solid var(--line)}.chat-side-head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:14px 16px;border-bottom:1px solid var(--line)}.chat-convos{flex:1;overflow-y:auto}.chat-convo{display:flex;align-items:center;gap:10px;padding:12px 16px;border-bottom:1px dashed var(--line);cursor:pointer;transition:background .15s ease}.chat-convo:hover{background:#6366f10d}.chat-convo.active{background:#6366f11a}.chat-convo-info{flex:1;min-width:0}.chat-convo-top{display:flex;align-items:center;justify-content:space-between;gap:8px}.chat-convo-top strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-convo-preview{margin-top:2px;font-size:12px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-unread{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:var(--danger);color:#fff;font-size:11px;font-weight:600}.chat-main{display:flex;flex-direction:column;min-width:0;min-height:0;overflow:hidden}.chat-main-head{display:flex;align-items:center;gap:10px;padding:12px 16px;border-bottom:1px solid var(--line)}.chat-main-head strong{font-size:15px}.chat-main .chat-list{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;padding:14px 16px}.chat-main .chat-input{display:flex;gap:8px;padding:12px 16px;border-top:1px solid var(--line)}.chat-main .chat-input .input{flex:1}.chat-empty{flex:1;display:grid;place-items:center;color:var(--muted);font-size:13px}.mobile-back{display:none}.mobile-back svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}[data-theme=dark] .chat-convo:hover{background:#6c8bff14}[data-theme=dark] .chat-convo.active{background:#6c8bff29}@media (max-width: 900px){.card.chat-shell{grid-template-columns:1fr;height:calc(100vh - 170px);min-height:440px}.chat-side{border-right:none}.chat-main,.chat-shell.has-active .chat-side{display:none}.chat-shell.has-active .chat-main{display:flex;height:100%;min-height:0}.mobile-back{display:inline-flex}.chat-main .chat-list{min-height:0}}@media (max-width: 900px){.room-focus{display:flex;flex-direction:column;gap:0;padding:0;overflow:hidden}.room-focus .rf-side-toggle{display:none}.room-focus.side-collapsed .room-focus-side{display:flex}.room-focus-main{flex:1 1 auto;min-height:0;justify-content:center;gap:4px;padding:18px 16px 8px;overflow-y:auto}.room-focus .rf-close{top:10px;right:10px}.room-focus-main .focus-overlay-subject{max-width:calc(100% - 92px);font-size:12px;letter-spacing:.12em}.room-focus-main .focus-overlay-timer{font-size:clamp(42px,12.5vw,62px);letter-spacing:.01em}.room-focus-main .focus-overlay-hint,.room-focus-goal{font-size:11px}.room-focus-progress{width:100%;margin-top:10px}.room-focus-main .focus-overlay-actions{max-width:320px;margin-top:14px;gap:8px}.room-focus-main .focus-overlay-actions .focus-btn{flex:1 1 calc(50% - 4px);width:auto;min-height:40px;height:auto;padding:8px 10px;border-radius:12px;font-size:12px;font-weight:600;letter-spacing:.01em}.room-focus-main .focus-overlay-actions .focus-btn.primary{box-shadow:0 12px 24px -16px #6f7dffd9}.room-focus-main .focus-overlay-actions .focus-btn.ghost{flex:0 1 auto;min-height:0;height:32px;padding:0 13px;border-radius:999px;font-size:11px;font-weight:600}.room-focus-main .focus-overlay-tip{display:none}.room-focus .room-focus-side{flex:0 0 auto;min-height:0;padding:2px 14px calc(12px + env(safe-area-inset-bottom));background:transparent;box-shadow:none;color:#f7f9ff}.room-focus .room-focus-side-head{margin-bottom:6px}.room-focus .room-focus-side-head strong{font-size:13px;color:#ffffffc7}.room-focus .room-focus-side-head .tag{background:#ffffff24;border-color:#ffffff38;color:#fff;box-shadow:none}.room-focus .room-focus-members{display:none}.room-focus .room-focus-chat .chat-meta{color:#ffffffad;text-shadow:0 1px 2px rgba(0,0,0,.35)}.room-focus .room-focus-chat .chat-edited{color:#fff9}.room-focus .room-focus-chat .chat-msg-tools .link{color:#ffffffd1}.room-focus .room-focus-chat .chat-msg-tools .link:hover{color:#fff;background:#ffffff29}.room-focus .room-focus-chat .chat-recalled{background:#ffffff29;color:#ffffffe0}.room-focus .room-focus-chat .chat-edit .input{background:#ffffff29;border-color:#fff3;color:#fff}.room-focus .room-focus-side .chat-input{padding:8px;border-top:none;border-radius:14px;background:#0c101c52;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.room-focus .room-focus-side .chat-input .input{background:#ffffff29;border-color:#fff3;color:#fff}.room-focus .room-focus-side .chat-input .input::placeholder{color:#ffffff9e}}.sheet-mask{position:fixed;top:0;right:0;bottom:0;left:0;z-index:90;display:flex;align-items:flex-end;justify-content:center;background:#0f142073;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);animation:sheet-mask-in .18s ease}.price-sheet{width:min(500px,100%);padding:8px 20px calc(20px + env(safe-area-inset-bottom));background:var(--card);border-radius:22px 22px 0 0;box-shadow:0 -16px 44px #10182838;animation:sheet-up .24s cubic-bezier(.22,1,.36,1)}.sheet-handle{width:42px;height:4px;margin:4px auto 14px;border-radius:999px;background:#e2e6ef}.price-sheet-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.price-sheet-head h3{font-size:17px}.price-chips{display:flex;flex-wrap:wrap;gap:8px;margin:16px 0 12px}.price-chip{padding:8px 16px;border:1px solid var(--line);border-radius:999px;background:#f6f8fc;color:var(--muted);font-weight:600;cursor:pointer;transition:all .15s ease}.price-chip:hover{border-color:#c7d0ff;color:var(--primary-dark)}.price-chip.active{background:var(--primary-soft);border-color:#b9c4f9;color:var(--primary-dark);box-shadow:inset 0 0 0 1px #4c6ef529}.price-sheet-field{display:flex;align-items:center;gap:8px;padding:10px 14px;border:1px solid var(--line);border-radius:14px;background:#fbfcfe}.price-sheet-field input{flex:1;min-width:0;border:none;outline:none;background:transparent;font-size:22px;font-weight:650;font-variant-numeric:tabular-nums}.price-sheet-field em{font-style:normal;font-size:12px;color:var(--muted)}.sheet-actions{display:flex;gap:10px;margin-top:16px}.sheet-actions .btn{flex:1}@keyframes sheet-mask-in{0%{opacity:0}to{opacity:1}}@keyframes sheet-up{0%{transform:translateY(28px);opacity:.7}to{transform:translateY(0);opacity:1}}[data-theme=dark] .price-chip,[data-theme=dark] .price-sheet-field{background:#1a2133;border-color:#2c344a}.room-entry{position:relative;overflow:hidden;margin-bottom:16px;background:radial-gradient(120% 90% at 100% 0%,rgba(99,102,241,.07),transparent 52%),linear-gradient(180deg,#fff,#fbfcff)}.room-entry:before{content:"";position:absolute;inset:0 0 auto;height:3px;background:linear-gradient(90deg,#6366f1,#8b5cf6 45%,#06b6d4)}.room-entry:after{content:"";position:absolute;top:-70px;right:-60px;width:190px;height:190px;border-radius:50%;background:radial-gradient(circle,rgba(99,102,241,.12),transparent 66%);pointer-events:none}.room-entry-head{position:relative;z-index:1;display:flex;align-items:flex-start;justify-content:space-between;flex-wrap:wrap;gap:14px;margin-bottom:18px}.room-entry-title{display:flex;align-items:center;gap:12px;min-width:0}.room-entry-icon{display:grid;place-items:center;width:42px;height:42px;flex:none;border-radius:12px;background:var(--tone-bg, var(--soft));color:var(--tone-ink, var(--text))}.room-entry-icon svg{width:23px;height:23px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;opacity:.72}.room-entry-title-text{min-width:0}.room-entry-head h2{font-size:17px}.room-entry-head p{margin-top:2px}.room-entry-modules{display:flex;align-items:center;flex-wrap:wrap;gap:8px}.room-module-btn{display:inline-flex;align-items:center;gap:6px;padding:7px 12px;border:1px solid rgba(99,102,241,.2);border-radius:999px;background:#6366f10f;color:var(--primary-dark);font-size:12px;font-weight:600;white-space:nowrap;cursor:pointer;transition:transform .15s ease,border-color .15s ease,background .15s ease,box-shadow .15s ease}.room-module-btn svg{width:15px;height:15px;flex:none;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;opacity:.85}.room-module-btn i{min-width:18px;padding:0 5px;border-radius:999px;background:#6366f11f;color:inherit;font-size:10px;font-style:normal;font-weight:700;line-height:1.7;text-align:center}.room-module-btn:hover{transform:translateY(-1px);border-color:#6366f173;background:#6366f11a;box-shadow:0 6px 14px -8px #4f46e580}.room-module-btn:focus-visible{outline:none;box-shadow:0 0 0 3px #4f46e52e}.room-entry-switch{position:relative;display:grid;grid-template-columns:1fr 1fr;gap:4px;padding:4px;margin-bottom:16px;background:#eef1f8;border-radius:12px}.room-entry-switch-thumb{position:absolute;top:4px;left:4px;width:calc(50% - 6px);height:calc(100% - 8px);border-radius:9px;background:#fff;box-shadow:0 2px 8px #1018281a;transition:transform .28s cubic-bezier(.22,1,.36,1)}.room-entry-switch-thumb.right{transform:translate(calc(100% + 4px))}.room-entry-switch button{position:relative;z-index:1;display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:9px 12px;border:none;border-radius:9px;background:none;color:var(--muted);font-weight:600;cursor:pointer;transition:color .2s ease}.room-entry-switch button svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;opacity:.75;transition:opacity .2s ease}.room-entry-switch button.active{color:var(--primary-dark)}.room-entry-switch button.active svg{opacity:1}.room-pane-enter-active,.room-pane-leave-active{transition:opacity .18s ease,transform .18s ease}.room-pane-enter-from{opacity:0;transform:translate(10px)}.room-pane-leave-to{opacity:0;transform:translate(-10px)}.room-entry-pane{display:flex;flex-direction:column;gap:12px;min-width:0}.room-pane-title{display:flex;align-items:center;gap:8px}.room-pane-title strong{font-size:15px}.room-pane-title .tag{gap:4px;margin-left:auto}.room-pane-title .tag svg{width:12px;height:12px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.room-input-wrap{position:relative;display:flex;align-items:center}.room-input-wrap>svg{position:absolute;left:12px;width:16px;height:16px;fill:none;stroke:#9aa3b5;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;pointer-events:none;transition:stroke .15s ease}.room-input-wrap .input{padding-left:36px}.room-input-wrap.has-suffix .input{padding-right:54px}.room-input-wrap:focus-within>svg{stroke:var(--primary)}.room-input-suffix{position:absolute;right:12px;color:var(--muted);font-size:12px;font-weight:600;pointer-events:none}.chip-check{width:12px;height:12px;flex:none;fill:none;stroke:currentColor;stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round;animation:chip-check-in .18s ease}@keyframes chip-check-in{0%{opacity:0;transform:scale(.6)}to{opacity:1;transform:scale(1)}}.room-toggle{position:relative;display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:#fbfcfe;cursor:pointer;transition:border-color .15s ease,background .15s ease,box-shadow .15s ease}.room-toggle:hover{border-color:#c7d2fe}.room-toggle.on{border-color:#6366f159;background:#6366f10d}.room-toggle:focus-within{border-color:#b9c4f9;box-shadow:0 0 0 3px #4c6ef51f}.room-toggle input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.room-toggle-icon{display:grid;place-items:center;width:30px;height:30px;flex:none;border-radius:9px;background:#6366f11a;color:var(--primary-dark)}.room-toggle-icon svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.room-toggle-text{display:flex;flex-direction:column;gap:1px;min-width:0}.room-toggle-text b{font-size:12.5px;font-weight:600}.room-toggle-text em{color:var(--muted);font-size:11px;font-style:normal}.room-toggle-track{position:relative;width:38px;height:22px;flex:none;margin-left:auto;border-radius:999px;background:#dfe3ec;transition:background .2s ease}.room-toggle-track i{position:absolute;top:3px;left:3px;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #10182840;transition:transform .2s cubic-bezier(.22,1,.36,1)}.room-toggle.on .room-toggle-track{background:linear-gradient(135deg,#6366f1,#4f46e5)}.room-toggle.on .room-toggle-track i{transform:translate(16px)}.room-field-tip{display:flex;align-items:flex-start;gap:5px;margin:6px 0 0}.room-field-tip svg{width:13px;height:13px;flex:none;margin-top:2px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round;opacity:.75}.room-entry-submit{position:relative;gap:8px;min-height:42px}.room-entry-submit svg{width:16px;height:16px;flex:none;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.room-entry-submit .room-entry-submit-arrow{position:absolute;right:14px;opacity:.75;transition:transform .18s ease}.room-entry-submit:hover:not(:disabled) .room-entry-submit-arrow{transform:translate(3px)}.room-entry-submit.soft{border-color:#6366f147;background:linear-gradient(180deg,#fff,#f4f6ff);color:var(--primary-dark);box-shadow:0 1px 2px #1018280d}.room-entry-submit.soft:hover:not(:disabled){border-color:#6366f180;background:#eef1ff}.room-code-input{text-transform:uppercase;letter-spacing:.18em;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:16px;font-weight:600}[data-theme=dark] .room-entry{background:radial-gradient(120% 90% at 100% 0%,rgba(108,139,255,.14),transparent 52%),linear-gradient(180deg,#151b24,#131a24)}[data-theme=dark] .room-entry-switch{background:#1a2130}[data-theme=dark] .room-entry-switch-thumb{background:linear-gradient(180deg,#232c3b,#1e2634);box-shadow:0 2px 10px #00000059}[data-theme=dark] .room-entry-switch button.active{color:#a5b4fc}[data-theme=dark] .room-module-btn{background:#818cf81f;border-color:#818cf84d;color:#a5b4fc}[data-theme=dark] .room-module-btn i{background:#818cf82e}[data-theme=dark] .room-input-wrap>svg{stroke:#6b7688}[data-theme=dark] .room-input-wrap:focus-within>svg{stroke:#a5b4fc}[data-theme=dark] .room-toggle{background:#1a2133;border-color:#2c344a}[data-theme=dark] .room-toggle.on{background:#818cf81a;border-color:#818cf859}[data-theme=dark] .room-toggle-icon{background:#818cf829;color:#a5b4fc}[data-theme=dark] .room-toggle-track{background:#2c344a}[data-theme=dark] .room-entry-submit.soft{border-color:#818cf84d;background:linear-gradient(180deg,#1c2434,#19202e);color:#a5b4fc}[data-theme=dark] .room-entry-submit.soft:hover:not(:disabled){border-color:#818cf88c;background:#202a3d}@media (max-width: 760px){.room-entry-head{flex-direction:column}}.pop-skin-cartoon{--g0: linear-gradient(160deg, #ff8787, #e03131);--g1: linear-gradient(160deg, #69db7c, #2b8a3e);--g2: linear-gradient(160deg, #ffe066, #f59f00);--g3: linear-gradient(160deg, #faa2c1, #c2255c);--g4: linear-gradient(160deg, #74c0fc, #1864ab);--g5: linear-gradient(160deg, #ffb366, #d9480f);--pop-board-bg: radial-gradient(120% 90% at 50% 0%, rgba(255, 212, 59, .22), transparent 62%), #fff4d6;--pop-gem-radius: 30%}.pop-skin-cartoon .pop-gem,.pop-skin-cartoon .ps-gem{border:2px solid rgba(49,46,129,.5)}.pop-skin-toon{--pop-board-bg: radial-gradient(120% 90% at 50% 0%, rgba(255, 196, 120, .24), transparent 62%), #fff6e8;--pop-gem-radius: 24%}.pop-skin-toon .ps-preview .ps-gem{background-size:cover;background-position:center;border:2px solid rgba(255,255,255,.9);box-shadow:inset 0 0 0 1px #0f172a14,inset 0 -3px 6px #00000024,0 2px 5px #0f172a2e}.pop-skin-toon .ps-gem:after{opacity:.28;width:26%;height:16%}.pop-skin-toon .ps-gem.c0{border-color:#7c6cf9}.pop-skin-toon .ps-gem.c1{border-color:#12b886}.pop-skin-toon .ps-gem.c2{border-color:#f59f00}.pop-skin-toon .ps-gem.c3{border-color:#e64980}.pop-skin-toon .ps-gem.c4{border-color:#1c7ed6}.pop-skin-toon .ps-gem.c5{border-color:#f76707}.pop-skin-illust{--pop-board-bg: radial-gradient(120% 90% at 50% 0%, rgba(148, 163, 184, .16), transparent 62%), #f7f6f3;--pop-gem-radius: 26%}.pop-skin-illust .ps-preview .ps-gem{background-size:cover;background-position:center;border:2px solid rgba(255,255,255,.9);box-shadow:inset 0 0 0 1px #0f172a14,inset 0 -3px 6px #00000024,0 2px 5px #0f172a2e}.pop-skin-illust .ps-gem:after{opacity:.28;width:26%;height:16%}.pop-skin-illust .ps-gem.c0{border-color:#7c6cf9}.pop-skin-illust .ps-gem.c1{border-color:#12b886}.pop-skin-illust .ps-gem.c2{border-color:#f59f00}.pop-skin-illust .ps-gem.c3{border-color:#e64980}.pop-skin-illust .ps-gem.c4{border-color:#1c7ed6}.pop-skin-illust .ps-gem.c5{border-color:#f76707}.ps-section-title{display:flex;align-items:baseline;gap:10px;margin:14px 0 10px}.ps-section-title strong{font-size:13px}.ps-section-title span{color:var(--muted);font-size:11px}.ps-skin-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(158px,1fr));gap:10px}.ps-skin-card{display:flex;flex-direction:column;gap:8px;padding:10px;border:1px solid var(--line);border-radius:14px;background:#94a3b80a;text-align:left;cursor:pointer;transition:transform .15s ease,border-color .15s ease,box-shadow .15s ease}.ps-skin-card:hover{transform:translateY(-2px);border-color:#6366f173}.ps-skin-card.active{border-color:var(--primary);box-shadow:inset 0 0 0 1px var(--primary),0 16px 30px -24px #4f46e599}.ps-preview{display:grid;grid-template-columns:repeat(3,1fr);gap:5px;padding:8px;border-radius:10px;background:var(--pop-board-bg)}.ps-gem{position:relative;aspect-ratio:1;border-radius:var(--pop-gem-radius, 20%);background:var(--g0);box-shadow:inset 0 1px #ffffff73,inset 0 -3px 6px #00000029,0 2px 4px #0f172a1f;overflow:hidden}.ps-gem:after{content:"";position:absolute;top:12%;left:18%;width:32%;height:22%;border-radius:50%;background:#ffffff8c;filter:blur(1px)}.ps-gem.c0{background:var(--g0)}.ps-gem.c1{background:var(--g1)}.ps-gem.c2{background:var(--g2)}.ps-gem.c3{background:var(--g3)}.ps-gem.c4{background:var(--g4)}.ps-gem.c5{background:var(--g5)}.ps-skin-meta{display:flex;flex-direction:column;gap:2px}.ps-skin-meta strong{font-size:12.5px}.ps-skin-meta small{color:var(--muted);font-size:10.5px;line-height:1.5}.ps-skin-price{margin-top:2px;padding:5px 10px;border:1px solid rgba(79,70,229,.22);border-radius:9px;background:#6366f112;color:var(--primary-dark);font-size:10.5px;font-weight:700;text-align:center}.ps-skin-price.owned{border-color:var(--line);background:var(--soft);color:var(--muted)}[data-theme=dark] .ps-skin-price{border-color:#818cf84d;background:#818cf81f;color:#a5b4fc}[data-theme=dark] .ps-skin-price.owned{border-color:#2c344a;background:#1a2130;color:#6b7688}.ps-items{display:flex;flex-direction:column;gap:8px}.ps-item-row{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:#94a3b80a}.ps-item-icon{display:grid;place-items:center;flex:none;width:36px;height:36px;border-radius:11px;background:#6366f11f;color:var(--primary-dark)}.ps-item-icon svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.ps-item-main{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0}.ps-item-main strong{font-size:12.5px}.ps-item-main small{color:var(--muted);font-size:10.5px}.ps-item-qty{color:var(--muted);font-size:11px;white-space:nowrap}@media (max-width: 520px){.ps-item-qty{display:none}}@media (max-width: 900px){.room-focus .room-focus-side{border:1px solid color-mix(in srgb,currentColor 10%,transparent);background:color-mix(in srgb,currentColor 6%,transparent)}}
