:root{color-scheme:dark;--bg: #0f0f13;--surface: #1a1a22;--surface-2: #22222e;--surface-3: #2a2a38;--surface-4: rgba(255, 255, 255, .03);--accent: #7c6af7;--accent-2: #a594f9;--accent-glow: rgba(124, 106, 247, .25);--green: #4ade80;--amber: #fbbf24;--red: #f87171;--blue: #60a5fa;--text: #f0eeff;--text-2: #a09ab8;--text-3: #6b6487;--border: rgba(255, 255, 255, .07);--border-strong: rgba(124, 106, 247, .3);--radius-lg: 20px;--radius: 16px;--radius-sm: 10px;--radius-xs: 6px;--shadow-card: 0 16px 36px rgba(0, 0, 0, .24);--shadow-pop: 0 18px 44px rgba(0, 0, 0, .32);--shadow-fab: 0 12px 30px rgba(124, 106, 247, .38);--safe-top: max(16px, env(safe-area-inset-top));--safe-bottom: max(20px, env(safe-area-inset-bottom));--content-width: 480px;--font-main: "Noto Sans SC", "Segoe UI", sans-serif;--font-mono: "Space Mono", "SFMono-Regular", "Consolas", monospace}*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}html,body,#app{min-height:100%;background:var(--bg)}html{overflow:hidden}body{min-width:320px;overflow:hidden;color:var(--text);font-family:var(--font-main);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button{border:none;outline:none}button:disabled,input:disabled,select:disabled,textarea:disabled{cursor:not-allowed;opacity:.55}button,.task-card,.calendar-cell,.subtask-row,.group-card,.nav-btn,.tab-btn,.choice-chip,.color-choice,.icon-btn,.fab,.mini-fab{transition:transform .18s ease,opacity .18s ease,border-color .2s ease,background .2s ease,color .2s ease,box-shadow .2s ease,filter .2s ease}button:active,.nav-btn:active,.tab-btn:active,.secondary-btn:active,.primary-btn:active,.ghost-btn:active,.success-btn:active,.danger-btn:active,.choice-chip:active,.icon-btn:active,.task-card:active,.group-card:active,.calendar-cell:active,.subtask-row:active{transform:scale(.97)}.fab:active{transform:translate(calc(50% + 142px)) scale(.97)}.mini-fab:active{transform:translate(calc(50% + 102px)) scale(.97)}button:hover,.task-card:hover,.group-card:hover,.calendar-cell:hover,.nav-btn:hover,.tab-btn:hover,.secondary-btn:hover,.ghost-btn:hover,.success-btn:hover,.danger-btn:hover,.icon-btn:hover,.choice-chip:hover{border-color:var(--border-strong)}input::placeholder,textarea::placeholder{color:var(--text-3)}input[type=date]::-webkit-calendar-picker-indicator{filter:invert(.6);cursor:pointer}#app{position:relative}.app-shell{min-height:100dvh;position:relative;overflow:hidden}.app-frame,.auth-page,.loading-screen{width:100%;max-width:var(--content-width);min-height:100dvh;margin:0 auto;position:relative;overflow:hidden}.app-frame:before,.app-frame:after,.auth-page:before,.auth-page:after{content:"";position:absolute;border-radius:999px;filter:blur(90px);pointer-events:none;z-index:0}.app-frame:before,.auth-page:before{width:320px;height:320px;top:-100px;left:-80px;opacity:.12;background:var(--accent)}.app-frame:after,.auth-page:after{width:220px;height:220px;right:-70px;bottom:96px;opacity:.1;background:var(--accent-2)}.loading-screen,.auth-page{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:32px 24px}.brand{font-family:var(--font-mono);font-size:28px;font-weight:700;color:var(--accent-2);letter-spacing:-1px}.brand span{color:var(--text-3)}.loading-dots{display:flex;gap:6px;margin-top:14px}.loading-dots span{width:6px;height:6px;border-radius:50%;background:var(--accent);animation:pulse 1.2s ease-in-out infinite}.loading-dots span:nth-child(2){animation-delay:.2s;background:var(--accent-2)}.loading-dots span:nth-child(3){animation-delay:.4s;background:var(--text-2)}.auth-brand{text-align:center;margin-bottom:6px}.auth-subtitle{font-size:13px;color:var(--text-3);margin-bottom:36px;text-align:center}.auth-card,.main-panel,.group-card,.settings-card,.calendar-panel,.task-card,.stat-card,.modal-sheet{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-card)}.auth-card{width:100%;max-width:360px;border-radius:20px;padding:28px 24px;position:relative;z-index:1}.helper-text,.topbar-subtitle,.muted-label,.empty-box,.empty-inline,.task-meta,.task-meta-text,.progress-row,.detail-meta,.invite-link-preview,.group-card p,.settings-row span,.auth-note,.section-copy,.calendar-meta,.shared-hero-copy,.done-card-meta{color:var(--text-2)}.invite-note{font-size:11px;color:var(--amber);background:#fbbf2414;border:1px solid rgba(251,191,36,.2);border-radius:var(--radius-xs);padding:8px 10px;line-height:1.5}.tab-switch{display:flex;gap:4px;padding:3px;margin-bottom:12px;background:var(--surface-2);border-radius:var(--radius-sm)}.tab-switch.slim{width:100%}.tab-btn,.nav-btn{flex:1;min-height:38px;padding:7px 12px;background:transparent;border:1px solid transparent;border-radius:var(--radius-xs);color:var(--text-3);font-size:13px;text-align:center;white-space:nowrap;cursor:pointer}.tab-btn.active,.nav-btn.router-link-active,.nav-btn.active{background:var(--surface-3);border-color:var(--border-strong);color:var(--text);font-weight:500}.page-shell{width:100%;max-width:var(--content-width);min-height:100dvh;margin:0 auto;position:relative;z-index:1}.topbar{position:relative;z-index:10;padding:var(--safe-top) 18px 12px;background:linear-gradient(180deg,rgba(15,15,19,.98) 85%,transparent)}.topbar-head,.topbar-actions,.inline-row,.section-header-row,.task-headline,.group-card-head,.calendar-header,.settings-row,.progress-row,.form-actions,.shared-hero,.shared-hero-main,.user-area{display:flex;align-items:center;gap:10px}.topbar-head,.section-header-row,.task-headline,.calendar-header,.settings-row,.shared-hero,.group-card-head{justify-content:space-between}.topbar-head{align-items:flex-start;margin-bottom:14px}.brand.logo{font-size:17px;line-height:1.1}.topbar-subtitle{font-size:12px;margin-top:4px}.topbar-actions{align-items:center;justify-content:space-between}.user-area{gap:8px}.status-pill,.count-chip,.tag-chip,.group-chip,.calendar-chip,.meta-pill{display:inline-flex;align-items:center;gap:5px;border-radius:999px;padding:2px 8px;font-size:11px;font-family:var(--font-mono)}.status-pill,.count-chip,.calendar-detail-count,.calendar-chip.more{color:var(--accent-2);background:var(--accent-glow);border:1px solid var(--border-strong)}.avatar,.group-icon,.task-dot,.checkbox,.page-icon-btn{display:grid;place-items:center}.avatar{width:30px;height:30px;border-radius:50%;background:linear-gradient(135deg,var(--accent),var(--accent-2));color:#fff;font-size:11px;font-weight:700}.page-icon-btn,.ghost-btn,.secondary-btn,.primary-btn,.success-btn,.danger-btn,.icon-btn,.choice-chip,.color-choice{cursor:pointer}.page-icon-btn,.icon-btn{width:30px;height:30px;border-radius:50%;background:var(--surface-2);border:1px solid var(--border);color:var(--text-2)}.secondary-btn,.primary-btn,.success-btn,.danger-btn{min-height:42px;padding:11px 16px;border-radius:var(--radius-sm);border:1px solid transparent}.ghost-btn{font-size:13px;padding:6px 12px;border-radius:var(--radius-sm);border:1px solid transparent}.primary-btn{background:linear-gradient(135deg,var(--accent),var(--accent-2));color:#fff;font-weight:700}.secondary-btn,.ghost-btn,.choice-chip,.icon-chip,.subtask-row,.calendar-cell,.calendar-task-item,.calendar-nav-btn{background:var(--surface-2);color:var(--text);border:1px solid var(--border)}.ghost-btn{color:var(--text-2)}.auth-note{margin-top:14px;text-align:center;font-size:12px;line-height:1.6}.auth-note-link{padding:0;background:transparent;color:var(--accent-2);border:none;min-height:auto}.success-btn{background:#4ade8026;border-color:#4ade8059;color:var(--green)}.danger-btn{background:#f871711a;border-color:#f8717159;color:var(--red)}.view-stack,.section-stack,.detail-stack,.form-grid,.card-list,.group-list,.subtask-list,.subtask-edit-list,.calendar-chip-list,.calendar-task-list{display:grid;gap:10px}.view-stack{gap:18px}.view-toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px}.main-panel{position:relative;z-index:1;min-height:calc(100dvh - 72px - var(--safe-top));padding:0 16px calc(88px + var(--safe-bottom));overflow-y:auto;overflow-x:hidden;background:transparent;border:none;box-shadow:none}.main-panel::-webkit-scrollbar,.modal-sheet::-webkit-scrollbar{display:none}.section-header-row{padding:14px 0 8px;align-items:flex-end}.section-header-row h2,.shared-hero-title,.calendar-title,.detail-title{color:var(--text)}.section-header-row h2,.shared-hero-title,.calendar-title{font-size:17px;font-weight:700}.muted-label,.section-caption,.section-eyebrow,.calendar-detail-title{font-size:11px;font-weight:500;color:var(--text-3);text-transform:uppercase;letter-spacing:1.2px;font-family:var(--font-mono)}.field-label,label span{display:block;margin-bottom:6px;font-size:11px;font-weight:500;color:var(--text-3);letter-spacing:.8px;text-transform:uppercase;font-family:var(--font-mono)}.field,.field-select{width:100%;min-height:44px;padding:12px 14px;color:var(--text);background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);outline:none;transition:border-color .2s ease,box-shadow .2s ease}.field:focus,.field-select:focus{border-color:var(--border-strong);box-shadow:0 0 0 3px #7c6af714}.textarea{min-height:96px;resize:vertical;line-height:1.6}.split-grid,.stats-grid{display:grid;gap:10px}.split-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.stats-grid{grid-template-columns:repeat(3,minmax(0,1fr));margin-top:12px;margin-bottom:16px}.choice-row{display:flex;gap:8px;flex-wrap:wrap}.choice-chip{min-height:34px;padding:6px 12px;border-radius:20px;font-size:12px;color:var(--text-3)}.choice-chip.active,.color-choice.active,.icon-chip.active,.calendar-cell.selected,.calendar-cell.today{border-color:var(--border-strong)}.choice-chip.active,.icon-chip.active{background:#7c6af71f;color:var(--accent-2)}.color-choice{width:28px;height:28px;border-radius:50%;border:2px solid transparent;position:relative}.color-choice.active:after{content:"✓";position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;color:#fff;font-size:13px;font-weight:700}.color-choice.indigo{background:#818cf8}.color-choice.violet{background:#a78bfa}.color-choice.blue{background:#60a5fa}.color-choice.teal{background:#2dd4bf}.color-choice.green{background:#4ade80}.color-choice.amber{background:#fbbf24}.color-choice.rose{background:#fb7185}.color-choice.pink{background:#f472b6}.task-card{position:relative;overflow:hidden;border-radius:var(--radius);padding:15px 16px;cursor:pointer}.task-card:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;border-radius:2px 0 0 2px;background:var(--task-accent, var(--accent))}.task-card:after,.group-card:after,.fab:after,.mini-fab:after,.secondary-btn:after,.primary-btn:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(circle,rgba(255,255,255,.18) 0%,transparent 62%);opacity:0;transition:opacity .22s ease;pointer-events:none}.task-card:hover,.group-card:hover,.calendar-cell:hover,.calendar-task-item:hover{transform:translateY(-1px)}.task-card:hover:after,.group-card:hover:after,.secondary-btn:hover:after,.primary-btn:hover:after,.fab:hover:after,.mini-fab:hover:after{opacity:1}.task-card.is-done{opacity:.76}.task-card.is-done:before{background:var(--green)}.task-headline{align-items:flex-start;margin-bottom:10px}.task-title{font-size:15px;font-weight:500;line-height:1.4;word-break:break-word}.task-title.done{text-decoration:line-through}.task-meta{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-top:4px;font-size:11px}.group-chip{background:#7c6af71f;color:var(--accent-2);border:1px solid var(--border-strong);max-width:100%}.group-chip.muted{background:#ffffff0a;color:var(--text-3);border-color:var(--border)}.group-chip-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tag-chip{border:1px solid transparent}.task-dot{width:11px;height:11px;border-radius:50%;box-shadow:0 0 0 4px #ffffff08}.progress-area{margin-top:8px}.progress-row{justify-content:space-between;margin-bottom:5px;font-size:11px;font-family:var(--font-mono)}.progress-bar{width:100%;height:4px;overflow:hidden;border-radius:999px;background:var(--surface-3)}.progress-fill{height:100%;border-radius:999px;background:linear-gradient(90deg,var(--accent),var(--accent-2));transition:width .45s ease}.progress-fill.done{background:linear-gradient(90deg,var(--green),#86efac)}.empty-box,.empty-inline,.done-banner,.detail-note,.invite-link-preview,.muted-card,.shared-hero-card,.calendar-detail,.calendar-task-item,.subtask-edit-item{background:var(--surface-2);border:1px solid var(--border)}.empty-box,.empty-inline{border-radius:var(--radius);text-align:center}.empty-box{padding:32px 18px;line-height:1.7}.empty-inline{padding:14px}.fab,.mini-fab{position:fixed;left:50%;z-index:25;display:inline-flex;align-items:center;justify-content:center;overflow:hidden}.fab{bottom:calc(28px + var(--safe-bottom));width:52px;height:52px;border-radius:50%;background:linear-gradient(135deg,var(--accent),var(--accent-2));color:#fff;font-size:24px;box-shadow:var(--shadow-fab);transform:translate(calc(50% + 142px))}.mini-fab{bottom:calc(28px + var(--safe-bottom));min-width:132px;height:46px;padding:0 18px;border-radius:999px;background:linear-gradient(135deg,#7c6af7f5,#a594f9f5);color:#fff;box-shadow:var(--shadow-fab);transform:translate(calc(50% + 102px));font-size:13px;font-weight:700}.shared-hero-card{position:relative;overflow:hidden;border-radius:18px;padding:16px}.shared-hero-card:before{content:"";position:absolute;right:-22px;top:-18px;width:96px;height:96px;border-radius:50%;background:radial-gradient(circle,rgba(124,106,247,.22),transparent 70%)}.shared-hero-main{align-items:flex-start;justify-content:space-between;position:relative;z-index:1}.shared-hero-icon{width:44px;height:44px;border-radius:14px;background:#7c6af726;color:var(--accent-2);font-size:22px}.shared-hero-copy{margin-top:8px;font-size:13px;line-height:1.7}.group-card{position:relative;overflow:hidden;border-radius:18px;padding:15px 16px;display:grid;gap:12px}.group-card-head{align-items:flex-start}.group-icon{width:46px;height:46px;flex-shrink:0;border-radius:14px;background:var(--surface-2);font-size:24px}.group-name{font-size:15px;font-weight:600;color:var(--text)}.group-meta{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-top:4px;font-size:12px}.invite-link-preview,.detail-note,.done-banner,.muted-card,.calendar-detail,.calendar-task-item,.subtask-edit-item{border-radius:14px;padding:12px}.calendar-panel,.settings-card,.stat-card{border-radius:18px}.calendar-panel,.settings-card{padding:14px}.calendar-header{margin-bottom:14px}.calendar-nav{display:flex;align-items:center;gap:8px}.calendar-nav-btn{width:32px;height:32px;border-radius:50%;color:var(--text-2)}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}.weekday{padding-bottom:4px;text-align:center;font-size:10px;color:var(--text-3);letter-spacing:.6px;font-family:var(--font-mono)}.calendar-cell{min-height:84px;padding:8px 7px;border-radius:14px;text-align:left;cursor:pointer}.calendar-cell.muted{opacity:.32}.calendar-cell.today{box-shadow:inset 0 0 0 1px var(--border-strong)}.calendar-cell.selected{background:#7c6af714}.calendar-day-num{font-size:12px;font-family:var(--font-mono)}.calendar-chip-list{margin-top:6px}.calendar-chip{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#fff;background:#7c6af747}.calendar-detail{margin-top:16px}.calendar-detail-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:10px}.calendar-task-item{cursor:pointer}.calendar-task-top{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:7px}.calendar-task-name{font-size:14px;font-weight:500;line-height:1.45}.calendar-task-date{font-size:11px;color:var(--text-3);font-family:var(--font-mono)}.stat-card{padding:12px;text-align:center}.stat-card strong{display:block;font-size:22px;color:var(--accent-2);font-family:var(--font-mono)}.stat-card span{font-size:11px;color:var(--text-3)}.done-banner,.success-note{color:#86efac;border-color:#4ade804d;background:#4ade801a}.detail-title{font-size:20px;font-weight:700;line-height:1.3}.detail-meta{font-size:12px;font-family:var(--font-mono)}.subtask-row{width:100%;justify-content:flex-start;padding:11px 14px;border-radius:var(--radius-sm);text-align:left}.subtask-row.done{opacity:.45}.checkbox{width:20px;height:20px;flex-shrink:0;border-radius:50%;border:1.5px solid var(--border-strong);font-size:10px}.subtask-row.done .checkbox{background:var(--green);border-color:var(--green);color:#0f1f12}.subtask-row-text.done{text-decoration:line-through;color:var(--text-3)}.subtask-edit-item{display:flex;align-items:center;justify-content:space-between;gap:12px}.settings-card{display:grid;gap:2px}.settings-row{padding:8px 0}.settings-row strong{color:var(--text)}.section-copy{margin-top:6px;font-size:13px;line-height:1.7}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;display:flex;align-items:flex-end;justify-content:center;padding:0;background:linear-gradient(180deg,#00000075,#000000b3);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}.modal-sheet{position:relative;width:100%;max-width:var(--content-width);max-height:92dvh;overflow-y:auto;border-radius:24px 24px 0 0;padding:18px 20px calc(36px + var(--safe-bottom))}.modal-handle{width:36px;height:4px;background:var(--surface-3);border-radius:999px;margin:0 auto 18px}.modal-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:18px}.modal-header h3{font-size:17px}.modal-body{display:grid;gap:16px}.form-actions{justify-content:space-between;margin-top:6px}.form-actions>*{flex:1}.toast{position:fixed;top:calc(20px + env(safe-area-inset-top));left:50%;transform:translate(-50%);z-index:999;border-radius:30px;padding:10px 20px;background:var(--surface-3);color:var(--text);font-size:13px;white-space:nowrap;border:1px solid var(--border-strong);box-shadow:0 12px 28px #00000047}.toast.success{color:var(--green);border-color:#4ade8066}.toast.error{color:var(--red);border-color:#f8717166}.fade-enter-active,.fade-leave-active{transition:opacity .24s ease}.fade-enter-from,.fade-leave-to{opacity:0}.route-slide-enter-active,.route-slide-leave-active{transition:opacity .26s ease,transform .26s ease}.route-slide-enter-from{opacity:0;transform:translate(14px)}.route-slide-leave-to{opacity:0;transform:translate(-10px)}.sheet-enter-active,.sheet-leave-active{transition:opacity .25s ease}.sheet-enter-active .modal-sheet,.sheet-leave-active .modal-sheet{transition:transform .3s cubic-bezier(.32,.72,0,1),opacity .25s ease}.sheet-enter-from,.sheet-leave-to{opacity:0}.sheet-enter-from .modal-sheet,.sheet-leave-to .modal-sheet{opacity:0;transform:translateY(40px) scale(.98)}.list-enter-active,.list-leave-active{transition:all .26s ease}.list-enter-from,.list-leave-to{opacity:0;transform:translateY(10px)}.list-move{transition:transform .28s ease}@keyframes pulse{0%,to{opacity:.2;transform:scale(.8)}50%{opacity:1;transform:scale(1)}}@media (min-width: 481px){.app-shell{background:radial-gradient(circle at 18% 12%,rgba(124,106,247,.14),transparent 28%),radial-gradient(circle at 84% 82%,rgba(165,148,249,.12),transparent 22%),var(--bg)}.page-shell,.auth-page,.loading-screen,.app-frame{box-shadow:0 0 0 1px #ffffff08}.modal-backdrop{align-items:center;padding:20px}.modal-sheet{border-radius:24px;padding-bottom:28px}.sheet-enter-from .modal-sheet,.sheet-leave-to .modal-sheet{transform:translateY(14px) scale(.98)}}@media (max-width: 480px){.fab{left:auto;right:16px;transform:none}.fab:active{transform:scale(.97)}.mini-fab{left:auto;right:16px;transform:none}.mini-fab:active{transform:scale(.97)}.auth-card{padding:24px 20px}}@media (max-width: 640px){.split-grid,.stats-grid{grid-template-columns:1fr}.topbar-head{align-items:stretch}.topbar-actions{align-items:stretch;flex-direction:column}.user-area{justify-content:space-between;flex-wrap:wrap}.section-header-row,.calendar-header,.shared-hero,.shared-hero-main,.group-card-head,.form-actions,.inline-row,.view-toolbar{align-items:stretch;flex-direction:column}.calendar-nav,.task-headline,.progress-row{width:100%}}
