body{margin:0}*{box-sizing:border-box;margin:0;padding:0}:root{--bg:#fafaf8;--bg-rgb:250, 250, 248;--surface:#fff;--surface-rgb:255, 255, 255;--surface-alt:#fbfaf7;--surface-hover:#f5f5f4;--surface-input:#faf8f6;--border:#e7e5e4;--border-hover:#fed7aa;--border-focus:#f97316;--text:#0a0a0a;--text-body:#1c1917;--text-secondary:#57534e;--text-tertiary:#a8a29e;--text-on-dark:#fff;--accent-orange:#f97316;--accent-orange-rgb:249, 115, 22;--accent-orange-light:#ffedd5;--accent-orange-text:#c2410c;--accent-amber:#fbbf24;--accent-amber-rgb:251, 191, 36;--accent-amber-light:#fef3c7;--accent-amber-text:#b45309;--stone-light:#f5f5f4;--stone-text:#44403c;--stone-900:#1c1917;--action:#0a0a0a;--action-rgb:10, 10, 10;--action-hover:#1f1f1f;--action-active:#000;--success:#10b981;--success-light:#d1fae5;--success-rgb:16, 185, 129;--error:#f43f5e;--error-light:#ffe4e6;--error-rgb:244, 63, 94;--warning:#fbbf24;--shadow-sm:0 1px 2px #00000008;--shadow-md:0 12px 32px -12px rgba(var(--accent-orange-rgb), .18);--shadow-lg:0 8px 24px -8px #00000014;--shadow-action:0 10px 30px -10px rgba(var(--action-rgb), .4);--shadow-action-hover:0 14px 36px -10px rgba(var(--action-rgb), .5);--shadow-action-pressed:0 6px 20px -8px rgba(var(--action-rgb), .4);--shadow-accent:0 6px 14px rgba(var(--accent-orange-rgb), .35);--ease-out-soft:cubic-bezier(.16, 1, .3, 1);--ease-out-back:cubic-bezier(.34, 1.56, .64, 1);--ease-in-out:cubic-bezier(.4, 0, .2, 1);--radius-sm:12px;--radius-md:16px;--radius-lg:20px;--radius-xl:28px;--radius-full:9999px}body{background:var(--bg);color:var(--text-body);-webkit-font-smoothing:antialiased;letter-spacing:.02em;min-height:100vh;font-family:-apple-system,BlinkMacSystemFont,PingFang SC,Noto Sans SC,Segoe UI,sans-serif;line-height:1.7;position:relative}.login-page{justify-content:center;align-items:center;min-height:100vh;padding:20px;display:flex}.login-card{text-align:center;width:100%;max-width:320px}.login-title{color:var(--text);margin-bottom:8px;font-size:32px;font-weight:900}.login-subtitle{color:var(--text-tertiary);margin-bottom:32px;font-size:13px}.login-input{text-align:center;letter-spacing:2px;border:1.5px solid var(--border);border-radius:var(--radius-md);background:var(--surface);width:100%;color:var(--text);outline:none;padding:14px 16px;font-size:18px;font-weight:600;transition:border-color .2s}.login-input:focus{border-color:var(--accent-orange)}.login-error{color:var(--error);margin-top:8px;font-size:12px}.login-btn{border-radius:var(--radius-md);background:var(--action);width:100%;color:var(--text-on-dark);cursor:pointer;transition:all .2s var(--ease-out-soft);border:none;margin-top:16px;padding:14px;font-size:15px;font-weight:700}.login-btn:hover:not(:disabled){background:var(--action-hover);box-shadow:var(--shadow-action);transform:translateY(-1px)}.login-btn:disabled{opacity:.4;cursor:not-allowed}body:before{content:"";pointer-events:none;z-index:0;background-image:radial-gradient(circle at 1px 1px,#94a3b840 1px,#0000 0);background-size:22px 22px;position:fixed;inset:0}.app{z-index:1;max-width:480px;min-height:100vh;margin:0 auto;padding-bottom:32px;position:relative}.all-done-banner{animation:slideDown .4s var(--ease-out-soft) both;background:linear-gradient(135deg,#ecfdf5,#d1fae5);border-bottom:1px solid #a7f3d0;align-items:center;gap:12px;padding:14px 20px;display:flex}.all-done-emoji{font-size:28px;animation:1.5s ease-in-out infinite celebratePulse}.all-done-text{flex-direction:column;gap:2px;display:flex}.all-done-text strong{color:#065f46;font-size:14px}.all-done-text span{color:#047857;font-size:12px}@keyframes slideDown{0%{opacity:0;transform:translateY(-100%)}to{opacity:1;transform:translateY(0)}}@keyframes celebratePulse{0%,to{transform:scale(1)}50%{transform:scale(1.15)}}.app-header{text-align:center;padding:20px 20px 8px}.app-header h1{color:var(--text);letter-spacing:-.02em;font-size:24px;font-weight:900;line-height:1}.header-date{color:var(--text-tertiary);margin-top:4px;font-size:12px;font-weight:500}.date-switcher{justify-content:center;align-items:center;gap:6px;margin-top:4px;display:flex}.date-advance-btn,.date-reset-btn{border-radius:var(--radius-full);border:1px solid var(--border);color:var(--text-tertiary);cursor:pointer;transition:all .2s var(--ease-out-soft);opacity:.5;background:0 0;padding:2px 8px;font-size:10px;font-weight:500}.date-advance-btn:hover,.date-reset-btn:hover{opacity:1;color:var(--text-secondary)}.date-offset-badge{color:var(--text-tertiary);opacity:.6;font-size:10px;font-weight:600}.tab-bar{background:rgba(var(--surface-rgb), .85);-webkit-backdrop-filter:blur(12px);border-radius:var(--radius-full);border:1px solid var(--border);box-shadow:var(--shadow-lg);gap:4px;margin:0 20px 12px;padding:4px;display:flex}.tab-item{color:var(--text-secondary);border-radius:var(--radius-full);cursor:pointer;transition:all .32s var(--ease-out-soft);background:0 0;border:none;flex:1;justify-content:center;align-items:center;gap:5px;padding:8px 0;font-size:13px;font-weight:500;display:flex}.tab-item:hover{color:var(--text-body)}.tab-item.active{background:var(--action);color:var(--text-on-dark);font-weight:700}.tab-item:focus-visible{outline:2px solid var(--accent-orange);outline-offset:2px}.tab-icon{font-size:16px}.tab-content{padding:0 20px}.habit-section{margin-bottom:14px}.section-title{color:var(--text-secondary);text-transform:uppercase;letter-spacing:2px;align-items:center;gap:6px;margin-bottom:8px;font-size:11px;font-weight:600;display:flex}.section-icon{font-size:16px}.section-count{color:var(--text-tertiary);font-variant-numeric:tabular-nums;margin-left:auto;font-size:11px;font-weight:600}@keyframes fadeInUp{0%{opacity:0;filter:blur(4px);transform:translateY(16px)}to{opacity:1;filter:blur();transform:translateY(0)}}@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes bounceCheck{0%{transform:scale(1)}30%{transform:scale(1.12)}50%{transform:scale(.96)}70%{transform:scale(1.04)}to{transform:scale(1)}}@keyframes sparkleFloat{0%,to{opacity:.5;transform:translateY(0)rotate(0)}50%{opacity:1;transform:translateY(-6px)rotate(8deg)}}@keyframes pulseGlow{0%,to{opacity:.5;box-shadow:0 0 8px rgba(var(--accent-orange-rgb), .3)}50%{opacity:1;box-shadow:0 0 16px rgba(var(--accent-orange-rgb), .6)}}.habit-card-mini{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);cursor:pointer;transition:all .25s var(--ease-out-soft);animation:collapseIn .3s var(--ease-out-soft) both;align-items:center;gap:8px;margin-bottom:6px;padding:10px 14px;display:flex}.habit-card-mini:hover{background:var(--surface-hover);border-color:var(--border-hover)}.habit-card-mini.success{border-left:3px solid var(--success)}.habit-card-mini.failed{border-left:3px solid var(--error)}.mini-emoji{font-size:18px}.mini-name{color:var(--text-body);flex:1;font-size:13px;font-weight:600}.mini-streak{color:var(--text-secondary);font-size:11px}.mini-status{font-size:14px;font-weight:700}.mini-status.success{color:var(--success)}.mini-status.failed{color:var(--error)}@keyframes collapseIn{0%{opacity:0;transform:scaleY(.8)}to{opacity:1;transform:scaleY(1)}}.habit-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);transition:all .25s var(--ease-out-soft);animation:fadeInUp .5s var(--ease-out-soft) both;margin-bottom:8px;padding:12px 14px;position:relative;overflow:hidden}.habit-card:first-child{animation-delay:0s}.habit-card:nth-child(2){animation-delay:70ms}.habit-card:nth-child(3){animation-delay:.14s}.habit-card:nth-child(4){animation-delay:.21s}.habit-card:before{content:"";background:radial-gradient(300px circle at var(--mx,50%) var(--my,50%), rgba(var(--accent-orange-rgb), .06), transparent 40%);opacity:0;pointer-events:none;transition:opacity .3s;position:absolute;inset:0}.habit-card:hover:before{opacity:1}.habit-card:hover{border-color:var(--border-hover);box-shadow:var(--shadow-md);transform:translateY(-2px)}.habit-card.good{border-left:3.5px solid var(--success-light)}.habit-card.good.required{border-left:3.5px solid var(--success)}.habit-card.bad{border-left:3.5px solid var(--error)}.habit-card.established{background:var(--accent-amber-light);border-color:rgba(var(--accent-amber-rgb), .3)}.habit-card.established.good,.habit-card.established.bad{border-left-color:var(--accent-amber)}.habit-header{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.habit-info{align-items:center;gap:10px;display:flex}.habit-emoji{background:var(--accent-orange-light);border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;font-size:18px;display:flex}.bad .habit-emoji{background:var(--error-light)}.established .habit-emoji{background:var(--accent-amber-light)}.habit-text{flex-direction:column;gap:3px;display:flex}.habit-name{color:var(--text);font-size:15px;font-weight:700}.habit-badge{border-radius:var(--radius-full);letter-spacing:.2px;align-items:center;gap:4px;width:fit-content;padding:2px 10px;font-size:11px;font-weight:600;display:inline-flex}.habit-badge.required{background:var(--accent-orange-light);color:var(--accent-orange-text)}.habit-badge.optional{background:var(--stone-light);color:var(--text-secondary)}.habit-badge.nextday{color:#6d28d9;background:#ede9fe}.habit-actions{gap:4px;display:flex;position:relative}.btn-icon{width:36px;height:36px;color:var(--text-tertiary);cursor:pointer;border-radius:var(--radius-sm);transition:all .2s var(--ease-out-soft);background:0 0;border:none;justify-content:center;align-items:center;font-size:18px;display:flex}.btn-icon:hover{background:var(--stone-light);color:var(--text-secondary)}.btn-icon:active{transform:scale(.9)}.btn-icon:focus-visible{outline:2px solid var(--accent-orange)}.skill-btn:hover{color:var(--accent-orange);background:var(--accent-orange-light)}.dropdown-menu{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:var(--shadow-lg);z-index:10;min-width:120px;animation:fadeIn .15s var(--ease-out-soft);position:absolute;top:100%;right:0;overflow:hidden}.dropdown-menu button{width:100%;color:var(--text-body);cursor:pointer;text-align:left;background:0 0;border:none;padding:12px 16px;font-size:14px;font-weight:500;transition:background .15s}.dropdown-menu button:hover{background:var(--surface-hover)}.dropdown-menu button.danger{color:var(--error);font-weight:600}.dropdown-menu button.danger:hover{background:var(--error-light)}.habit-footer{justify-content:space-between;align-items:center;display:flex}.streak-info{flex-direction:column;gap:2px;display:flex}.streak-count{color:var(--text-tertiary);font-size:13px;font-weight:500}.established-badge{color:var(--accent-amber-text);font-size:13px;font-weight:800}.checkin-buttons{gap:8px;display:flex}.checkin-btn{border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;transition:all .25s var(--ease-out-soft);background:var(--surface);color:var(--text-body);box-shadow:var(--shadow-sm);padding:6px 14px;font-size:12px;font-weight:700}.success-btn:hover{border-color:var(--border-hover);color:var(--accent-orange-text);background:var(--accent-orange-light);box-shadow:0 10px 28px -10px rgba(var(--accent-orange-rgb), .2);transform:translateY(-2px)}.fail-btn:hover{border-color:var(--error);color:var(--error);background:var(--error-light);box-shadow:0 10px 28px -10px rgba(var(--error-rgb), .2);transform:translateY(-2px)}.checked-success{background:var(--action);border-color:var(--action);color:var(--text-on-dark);box-shadow:var(--shadow-action)}.checked-success:hover{background:var(--action-hover);box-shadow:var(--shadow-action-hover);transform:translateY(-1px)}.checked-fail{background:var(--error);border-color:var(--error);color:var(--text-on-dark);box-shadow:0 6px 14px rgba(var(--error-rgb), .35)}.checked-fail:hover{opacity:.9;transform:translateY(-1px)}.checkin-btn.bounce{animation:bounceCheck .5s var(--ease-out-back)}.checkin-btn:active{box-shadow:var(--shadow-action-pressed)!important;transform:translateY(0)scale(.98)!important}.reminder-bar{background:var(--error-light);color:var(--error);text-align:center;border-radius:8px;margin-top:6px;padding:5px 12px;font-size:11px;font-weight:600}.add-btn{border:2px dashed var(--border);border-radius:var(--radius-md);width:100%;color:var(--text-tertiary);cursor:pointer;transition:all .25s var(--ease-out-soft);background:0 0;margin-top:8px;padding:12px;font-size:15px;font-weight:600}.add-btn:hover{border-color:var(--border-hover);color:var(--text-secondary);background:var(--surface);transform:translateY(-1px);box-shadow:0 6px 20px -8px #0000000f}.add-btn.good:hover{border-color:var(--accent-orange);color:var(--accent-orange);background:var(--accent-orange-light)}.add-btn.bad:hover{border-color:var(--error);color:var(--error);background:var(--error-light)}.add-btn:active{transform:translateY(0)scale(.98)}.add-btn:focus-visible{outline:2px solid var(--accent-orange);outline-offset:2px}.empty-state{text-align:center;color:var(--text-tertiary);padding:56px 20px}.empty-icon{margin-bottom:12px;font-size:48px;display:block}.empty-state p{color:var(--text-secondary);margin-bottom:4px;font-size:16px;font-weight:600}.empty-hint{color:var(--text-tertiary)!important;font-size:13px!important;font-weight:400!important}.modal-overlay{z-index:100;animation:fadeIn .2s var(--ease-out-soft);background:#0a0a0a80;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.modal{background:var(--surface);border-radius:var(--radius-xl) var(--radius-xl) 0 0;width:100%;max-width:480px;max-height:85vh;animation:slideUp .35s var(--ease-out-soft);overflow-y:auto;box-shadow:0 -8px 30px #00000026}.modal-header{justify-content:space-between;align-items:center;padding:24px 24px 0;display:flex}.modal-header h3{color:var(--text);font-size:22px;font-weight:900}.modal-body{padding:20px 24px}.form-label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:1.5px;margin-top:20px;margin-bottom:8px;font-size:11px;font-weight:600;display:block}.form-label:first-child{margin-top:0}.form-input{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface-input);width:100%;color:var(--text);transition:all .2s var(--ease-out-soft);box-shadow:var(--shadow-sm);outline:none;padding:16px 18px;font-size:16px;font-weight:500}.form-input:hover{border-color:var(--border-hover)}.form-input:focus{border-color:var(--border-focus);box-shadow:0 0 0 4px var(--accent-orange-light);background:var(--surface)}.form-input::placeholder{color:var(--text-tertiary);font-weight:400}.emoji-grid{grid-template-columns:repeat(10,1fr);gap:4px;display:grid}.emoji-option{aspect-ratio:1;border-radius:var(--radius-sm);cursor:pointer;width:100%;transition:all .2s var(--ease-out-soft);background:0 0;border:2px solid #0000;justify-content:center;align-items:center;font-size:20px;display:flex}.emoji-option:hover{background:var(--stone-light);transform:scale(1.12)}.emoji-option:active{transform:scale(.95)}.emoji-option.selected{border-color:var(--accent-orange);background:var(--accent-orange-light)}.subtype-selector{gap:10px;display:flex}.subtype-btn{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);color:var(--text-body);cursor:pointer;transition:all .2s var(--ease-out-soft);box-shadow:var(--shadow-sm);flex:1;padding:16px;font-size:14px;font-weight:600;position:relative}.subtype-btn:hover:not(.disabled){border-color:var(--border-hover);box-shadow:0 10px 28px -10px rgba(var(--accent-orange-rgb), .15);transform:translateY(-2px)}.subtype-btn:active:not(.disabled){transform:translateY(0)scale(.98)}.subtype-btn.active{border-color:var(--accent-orange);background:var(--accent-orange-light);color:var(--accent-orange-text)}.subtype-btn.disabled{opacity:.5;cursor:not-allowed}.limit-hint{color:var(--text-tertiary);margin-top:2px;font-size:11px;display:block}.limit-warning{color:var(--error);margin-top:12px;font-size:13px;font-weight:600}.modal-footer{gap:10px;padding:16px 24px 32px;display:flex}.btn{border-radius:var(--radius-md);cursor:pointer;transition:all .25s var(--ease-out-soft);border:none;flex:1;padding:16px;font-size:15px;font-weight:700}.btn.secondary{background:var(--surface);color:var(--text-body);border:1px solid var(--border);box-shadow:var(--shadow-sm)}.btn.secondary:hover{border-color:var(--border-hover);transform:translateY(-1px);box-shadow:0 6px 20px -8px #00000014}.btn.secondary:active{transform:translateY(0)scale(.98)}.btn.primary{background:var(--action);color:var(--text-on-dark);box-shadow:var(--shadow-action)}.btn.primary:hover{background:var(--action-hover);box-shadow:var(--shadow-action-hover);transform:translateY(-2px)}.btn.primary:active{background:var(--action-active);box-shadow:var(--shadow-action-pressed);transform:translateY(0)scale(.98)}.btn.disabled{opacity:.3;cursor:not-allowed;box-shadow:none;transform:none}.btn.disabled:hover{box-shadow:none;transform:none}.stats-overview{grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:24px;display:grid}.stat-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);text-align:center;box-shadow:var(--shadow-sm);transition:all .25s var(--ease-out-soft);flex-direction:column;gap:4px;padding:16px 8px;display:flex}.stat-card:hover{border-color:var(--border-hover);box-shadow:var(--shadow-md);transform:translateY(-2px)}.stat-card.highlight{background:var(--accent-amber-light);border-color:rgba(var(--accent-amber-rgb), .3)}.stat-number{color:var(--text);font-variant-numeric:tabular-nums;font-size:24px;font-weight:900}.stat-card.highlight .stat-number{color:var(--accent-amber-text)}.stat-label{color:var(--text-tertiary);letter-spacing:.5px;font-size:11px;font-weight:600}.streak-ranking{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);overflow:hidden}.ranking-item{border-bottom:1px solid var(--border);transition:all .2s var(--ease-out-soft);align-items:center;gap:10px;padding:14px 16px;display:flex}.ranking-item:hover{background:var(--surface-alt)}.ranking-item:last-child{border-bottom:none}.ranking-pos{text-align:center;width:28px;font-size:18px}.ranking-emoji{background:var(--accent-orange-light);border-radius:10px;justify-content:center;align-items:center;width:36px;height:36px;font-size:20px;display:flex}.ranking-name{color:var(--text-body);flex:1;font-size:14px;font-weight:600}.ranking-streak{color:var(--accent-orange);font-variant-numeric:tabular-nums;font-size:14px;font-weight:900}.heatmap-row{margin-bottom:16px}.heatmap-label{color:var(--text-body);align-items:center;gap:6px;margin-bottom:8px;font-size:13px;font-weight:600;display:flex}.heatmap-rate{color:var(--accent-orange);font-variant-numeric:tabular-nums;margin-left:auto;font-size:12px;font-weight:900}.heatmap-grid{grid-template-columns:repeat(30,1fr);gap:3px;display:grid}.heatmap-cell{aspect-ratio:1;background:var(--stone-light);border:1px solid var(--border);border-radius:3px;transition:all .2s}.heatmap-cell.filled-success{background:var(--accent-orange);border-color:var(--accent-orange);box-shadow:0 0 6px rgba(var(--accent-orange-rgb), .3)}.heatmap-cell.filled-failed{background:var(--error);border-color:var(--error);box-shadow:0 0 6px rgba(var(--error-rgb), .3)}.note-area{animation:fadeInUp .3s var(--ease-out-soft) both;margin-top:12px}.note-input{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-input);width:100%;color:var(--text-body);resize:none;outline:none;padding:10px 14px;font-family:inherit;font-size:16px;line-height:1.6;transition:border-color .2s,box-shadow .2s}.note-input:focus{border-color:var(--border-focus);box-shadow:0 0 0 3px var(--accent-orange-light)}.note-input::placeholder{color:var(--text-tertiary)}.ai-result{background:var(--surface-alt);border:1px solid var(--border);border-radius:var(--radius-md);animation:fadeInUp .3s var(--ease-out-soft) both;margin-top:12px;padding:14px 16px}.ai-result-header{color:var(--accent-orange-text);text-transform:uppercase;letter-spacing:1px;justify-content:space-between;align-items:center;margin-bottom:8px;font-size:12px;font-weight:700;display:flex}.ai-result-header .btn-icon{width:24px;height:24px;font-size:14px}.ai-result-body{color:var(--text-body);font-size:13px;line-height:1.7}.ai-markdown h4{color:var(--text);margin:12px 0 6px;font-size:14px;font-weight:700}.ai-markdown h4:first-child{margin-top:0}.ai-markdown p{margin:6px 0}.ai-markdown strong{color:var(--accent-orange-text);font-weight:600}.ai-markdown ul{margin:6px 0;padding-left:16px}.ai-markdown li{margin:4px 0}.ai-loading{color:var(--text-tertiary);animation:pulseGlow 1.6s var(--ease-in-out) infinite}.skill-btn.loading{animation:1.2s ease-in-out infinite sparkleFloat}.data-buttons{gap:8px;display:flex}.data-btn{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--text-secondary);cursor:pointer;transition:all .2s var(--ease-out-soft);flex:1;padding:8px 0;font-size:12px;font-weight:600}.data-btn:hover{border-color:var(--accent-orange);color:var(--accent-orange-text)}.streak-progress{margin-bottom:8px}.streak-progress-label{color:var(--text-secondary);justify-content:space-between;align-items:center;margin-bottom:4px;font-size:11px;font-weight:600;display:flex}.streak-progress-num{color:var(--accent-orange);font-weight:800}.streak-progress-bar{background:var(--stone-light);border-radius:3px;height:6px;overflow:hidden}.streak-progress-fill{background:linear-gradient(90deg, var(--accent-orange), var(--accent-amber));height:100%;transition:width .4s var(--ease-out-soft);border-radius:3px;min-width:2px}.streak-stages{justify-content:space-between;margin-top:3px;display:flex}.stage-dot{color:var(--text-tertiary);font-size:9px;font-weight:500}.stage-dot.done{color:var(--accent-orange);font-weight:700}.milestone-banner{background:linear-gradient(135deg, var(--accent-amber-light), var(--accent-orange-light));color:var(--accent-orange-text);text-align:center;animation:bounceCheck .6s var(--ease-out-back);border-radius:8px;margin-bottom:8px;padding:6px 10px;font-size:12px;font-weight:700}.miss-twice-warning{background:var(--error-light);color:var(--error);text-align:center;border-radius:8px;margin-bottom:8px;padding:6px 10px;font-size:11px;font-weight:600}.identity-vote{color:var(--success);text-align:center;margin-bottom:8px;padding:4px 10px;font-size:11px;font-weight:600}.form-hint{color:var(--text-tertiary);margin:4px 0 12px;font-size:11px;line-height:1.5}.toggle-option{border:1px solid var(--border);border-radius:var(--radius-md);cursor:pointer;align-items:center;gap:10px;padding:10px 14px;transition:all .2s;display:flex}.toggle-option:hover{border-color:var(--border-hover)}.toggle-option.active{border-color:var(--accent-orange);background:var(--accent-orange-light)}.toggle-switch{background:var(--border);border-radius:10px;flex-shrink:0;width:36px;height:20px;transition:background .2s;position:relative}.toggle-switch:after{content:"";background:#fff;border-radius:50%;width:16px;height:16px;transition:transform .2s;position:absolute;top:2px;left:2px;box-shadow:0 1px 3px #00000026}.toggle-option.active .toggle-switch{background:var(--accent-orange)}.toggle-option.active .toggle-switch:after{transform:translate(16px)}.toggle-label{color:var(--text-body);font-size:13px;font-weight:500}.ai-save-tip-btn{border:1px solid var(--border);border-radius:var(--radius-full);background:var(--surface);color:var(--text-secondary);cursor:pointer;transition:all .2s var(--ease-out-soft);margin-top:8px;padding:5px 12px;font-size:12px;font-weight:600}.ai-save-tip-btn:hover{border-color:var(--accent-amber);color:var(--accent-amber-text);background:var(--accent-amber-light)}.expanded-panel{border-top:1px solid var(--border);margin-top:10px;padding-top:8px}.tips-section{margin-bottom:10px}.tips-header{color:var(--text-secondary);margin-bottom:6px;font-size:12px;font-weight:700}.tips-list{margin:0;padding:0;list-style:none}.tip-item{background:var(--accent-amber-light);border-radius:8px;align-items:center;gap:6px;margin-bottom:4px;padding:5px 8px;display:flex}.tip-item:before{content:"•";color:var(--accent-orange);flex-shrink:0;font-weight:700}.tip-text{color:var(--text-body);flex:1;font-size:12px;line-height:1.4}.tip-remove{color:var(--text-tertiary);cursor:pointer;background:0 0;border:none;flex-shrink:0;padding:2px;font-size:11px}.tip-remove:hover{color:var(--error)}.history-section{margin-top:8px}.history-panel{background:var(--surface-alt);border-radius:var(--radius-sm);border:1px solid var(--border);margin-top:10px;padding:10px 12px}.history-header{color:var(--text);justify-content:space-between;align-items:center;margin-bottom:8px;font-size:13px;font-weight:700;display:flex}.history-list{max-height:200px;overflow-y:auto}.history-item{border-bottom:1px solid var(--border);padding:6px 0}.history-item:last-child{border-bottom:none}.history-date{color:var(--text-tertiary);font-size:11px;font-weight:600}.history-note{color:var(--text-body);margin:2px 0 0;font-size:13px;line-height:1.5}.history-empty{color:var(--text-tertiary);text-align:center;padding:12px 0;font-size:12px}.graveyard .section-title{color:var(--text-tertiary)}.graveyard-card{background:var(--surface-alt);border:1px solid var(--border);border-radius:var(--radius-sm);opacity:.7;justify-content:space-between;align-items:center;margin-bottom:6px;padding:10px 12px;display:flex}.graveyard-info{align-items:center;gap:10px;display:flex}.graveyard-emoji{background:var(--stone-light);filter:grayscale(.6);border-radius:8px;justify-content:center;align-items:center;width:32px;height:32px;font-size:16px;display:flex}.graveyard-text{flex-direction:column;gap:1px;display:flex}.graveyard-name{color:var(--text-secondary);font-size:13px;font-weight:600;text-decoration:line-through}.graveyard-date{color:var(--text-tertiary);font-size:11px}.graveyard-actions{align-items:center;gap:6px;display:flex}.graveyard-revive-btn{border-radius:var(--radius-full);border:1px solid var(--border);background:var(--surface);color:var(--text-secondary);cursor:pointer;transition:all .2s var(--ease-out-soft);padding:4px 10px;font-size:11px;font-weight:600}.graveyard-revive-btn:hover{border-color:var(--success);color:var(--success);background:var(--success-light)}.graveyard-delete{color:var(--text-tertiary);font-size:12px}@media (width<=400px){.stats-overview{grid-template-columns:repeat(2,1fr)}.emoji-grid{grid-template-columns:repeat(8,1fr)}.heatmap-grid{grid-template-columns:repeat(15,1fr)}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
