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;overflow-x:hidden}.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)}}.sync-error-banner{border-radius:var(--radius-sm);background:var(--error-light);color:#9f1239;margin:12px 20px 0;padding:10px 14px;font-size:12px;font-weight:600;line-height:1.5}.app-header{text-align:center;padding:14px 16px 4px}.app-header h1{color:var(--text);letter-spacing:-.02em;font-size:20px;font-weight:900;line-height:1}.header-date{color:var(--text-tertiary);margin-top:3px;font-size:11.5px;font-weight:500}.header-pulse{justify-content:center;margin:4px auto 0;display:flex}.header-stars{flex-wrap:wrap;justify-content:center;align-items:center;gap:5px 6px;max-width:240px;padding:2px 4px 0;display:flex}.header-star-wrap{line-height:0;display:block;position:relative}.header-star{fill:none;stroke:#d6d3d1;stroke-width:1.6px;width:11px;height:11px;display:block}.header-star.ok{fill:#fbbf24;stroke:#fbbf24}.header-star.no{fill:#d6d3d1;stroke:#d6d3d1}.header-star-count{color:#fff;text-align:center;background:#a8a29e;border-radius:999px;min-width:10px;height:10px;padding:0 2px;font-size:8px;font-style:normal;font-weight:700;line-height:10px;position:absolute;top:-5px;right:-6px}.header-star-wrap:has(.header-star.ok) .header-star-count{background:#d97706}.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 16px 8px;padding:3px;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(--surface)}.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-orange-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}.monument-wall{flex-direction:column;gap:10px;display:flex}.monument-card{border-radius:var(--radius-lg);background:linear-gradient(135deg,#fffbeb,#fef3c7);border:1px solid #fde68a;align-items:center;gap:12px;padding:16px;display:flex;box-shadow:0 1px 3px #fbbf2426}.monument-emoji{background:#ffffffb3;border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;width:48px;height:48px;font-size:28px;display:flex}.monument-info{flex:1;min-width:0}.monument-name{color:var(--text-body);font-size:15px;font-weight:700}.monument-meta{color:var(--accent-amber-text);margin-top:2px;font-size:12px}.monument-badge{flex-shrink:0;font-size:22px}.export-section{border-top:1px solid var(--border);gap:10px;margin-top:32px;padding-top:16px;display:flex}.export-btn{border-radius:var(--radius-sm);color:var(--text-tertiary);cursor:pointer;background:0 0;border:none;flex:1;padding:8px 12px;font-size:12px;font-weight:500;transition:color .2s}.export-btn:hover{color:var(--text-secondary)}.export-btn:active{opacity:.7}.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-rank{text-align:center;flex-shrink:0;width:24px;font-size:15px}.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:#22c55e;border-color:#22c55e;box-shadow:0 0 6px #22c55e4d}.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}.milestone-banner.milestone-super{animation:bounceCheck .6s var(--ease-out-back), shimmer 3s ease infinite;box-shadow:0 2px 12px rgba(var(--accent-orange-rgb), .25);background:linear-gradient(135deg,#fef3c7,#ffedd5,#fee2e2) 0 0/200% 200%;padding:10px 12px;font-size:13px}@keyframes shimmer{0%,to{background-position:0%}50%{background-position:100%}}.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-item-row{align-items:center;gap:8px;display:flex}.history-date{color:var(--text-tertiary);flex-shrink:0;font-size:11px;font-weight:600}.history-status{flex-shrink:0;font-size:14px;font-weight:700}.history-status.success{color:var(--success)}.history-status.failed{color:var(--error)}.history-status.none{color:var(--text-tertiary)}.history-note-inline{color:var(--text-secondary);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:12px;overflow:hidden}.history-edit-btn{color:var(--text-tertiary);cursor:pointer;background:0 0;border:none;border-radius:4px;flex-shrink:0;padding:2px 6px;font-size:13px;transition:all .15s}.history-edit-btn:hover{color:var(--accent-orange);background:var(--accent-orange-light)}.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}.backfill-trigger-btn{color:var(--accent-orange);background:var(--accent-orange-light);border:1px dashed var(--accent-orange);border-radius:var(--radius-full);cursor:pointer;margin:10px auto 0;padding:6px 16px;font-size:12px;font-weight:600;transition:all .15s;display:block}.backfill-trigger-btn:hover{background:var(--accent-orange);color:#fff}.backfill-date-grid{grid-template-columns:repeat(4,1fr);gap:6px;display:grid}.backfill-date-item{border:1.5px solid var(--border);background:var(--surface);cursor:pointer;border-radius:8px;flex-direction:column;align-items:center;padding:8px 4px;transition:all .15s;display:flex}.backfill-date-item:hover{border-color:var(--accent-orange);background:var(--accent-orange-light)}.backfill-date-item.done{border-color:var(--success-light);background:var(--success-light)}.backfill-date-item.fail{border-color:var(--error-light);background:var(--error-light)}.bfd-date{color:var(--text-body);font-size:12px;font-weight:600}.bfd-status{margin-top:2px;font-size:14px}.backfill-date-item.done .bfd-status{color:var(--success)}.backfill-date-item.fail .bfd-status{color:var(--error)}.backfill-date-item.empty .bfd-status{color:var(--text-tertiary)}.backfill-modal .backfill-date-label{color:var(--text);margin-bottom:10px;font-size:14px;font-weight:600}.backfill-status-buttons{gap:8px;margin-bottom:12px;display:flex}.backfill-btn{border-radius:var(--radius-sm);border:1.5px solid var(--border);background:var(--surface);cursor:pointer;flex:1;padding:8px 12px;font-size:13px;font-weight:600;transition:all .15s}.backfill-btn.success{color:var(--success);border-color:var(--success-light)}.backfill-btn.success.active,.backfill-btn.success:hover{background:var(--success-light);border-color:var(--success)}.backfill-btn.fail{color:var(--error);border-color:var(--error-light)}.backfill-btn.fail.active,.backfill-btn.fail:hover{background:var(--error-light);border-color:var(--error)}.backfill-btn.clear{color:var(--text-tertiary);flex:.6}.backfill-btn.clear:hover{background:var(--surface-hover)}.backfill-note{resize:none;min-height:48px}.heatmap-legend{color:var(--text-secondary);gap:14px;margin-bottom:10px;padding:6px 0;font-size:12px;display:flex}.legend-item{align-items:center;gap:5px;display:flex}.legend-item .heatmap-cell{width:12px;height:12px}.heatmap-legend .legend-hint{color:var(--text-tertiary);margin-left:auto;font-size:11px}.celebration-overlay{z-index:9999;cursor:pointer;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#000000bf;justify-content:center;align-items:center;animation:.4s ease-out celebrationFadeIn;display:flex;position:fixed;inset:0}.celebration-overlay.mega{background:#000000d1}@keyframes celebrationFadeIn{0%{opacity:0}to{opacity:1}}.celebration-canvas{pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.celebration-content{z-index:1;opacity:0;flex-direction:column;align-items:center;gap:20px;transition:all .6s cubic-bezier(.34,1.56,.64,1);display:flex;position:relative;transform:scale(.8)}.celebration-content.show{opacity:1;transform:scale(1)}.celebration-trophy{opacity:0;justify-content:center;align-items:center;width:120px;height:120px;transition:all .8s cubic-bezier(.34,1.56,.64,1);display:flex;position:relative;transform:scale(0)rotate(-20deg)}.celebration-trophy.bounce-in{opacity:1;transform:scale(1)rotate(0)}.celebration-trophy.mega-trophy{width:150px;height:150px}.trophy-glow{background:radial-gradient(circle,#ffd70066 0%,#0000 70%);border-radius:50%;animation:2s ease-in-out infinite trophyGlow;position:absolute;inset:-20px}.mega-trophy .trophy-glow{background:radial-gradient(circle,#ffd70099 0%,#ff6b354d 40%,#0000 70%);inset:-40px}@keyframes trophyGlow{0%,to{opacity:.6;transform:scale(1)}50%{opacity:1;transform:scale(1.3)}}.trophy-emoji{z-index:2;filter:drop-shadow(0 4px 20px #ffd70080);font-size:64px;animation:3s ease-in-out infinite trophyFloat}.mega-trophy .trophy-emoji{filter:drop-shadow(0 8px 30px #ffd700b3);font-size:80px}@keyframes trophyFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}.trophy-ring{border:3px solid #ffd70080;border-radius:50%;animation:2s ease-out infinite ringExpand;position:absolute;inset:0}.trophy-ring.ring-2{border-color:#f9731666;animation-delay:.7s}.trophy-ring.ring-3{border-color:#e91e634d;animation-delay:1.4s}@keyframes ringExpand{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(2.5)}}.celebration-text{text-align:center;opacity:0;transition:all .6s cubic-bezier(.16,1,.3,1) .2s;transform:translateY(20px)}.celebration-text.show{opacity:1;transform:translateY(0)}.celebration-title{color:gold;text-shadow:0 2px 20px #ffd70080;letter-spacing:-.02em;margin-bottom:12px;font-size:28px;font-weight:900}.mega .celebration-title{background:linear-gradient(135deg,gold,#ff6b35,#e91e63,gold) 0 0/300% 300%;-webkit-text-fill-color:transparent;text-shadow:none;filter:drop-shadow(0 2px 10px #ffd70066);-webkit-background-clip:text;background-clip:text;font-size:32px;animation:3s infinite gradientShift}@keyframes gradientShift{0%,to{background-position:0%}50%{background-position:100%}}.celebration-subtitle{flex-direction:column;gap:4px;margin-bottom:8px;display:flex}.celebration-habit-name{color:#fff;font-size:18px;font-weight:700}.celebration-days{color:#ffffffb3;font-size:15px;font-weight:600}.celebration-message{color:#fff9;max-width:280px;font-size:14px;line-height:1.6}.celebration-badge{opacity:0;background:#ffd70026;border:1.5px solid #ffd70066;border-radius:999px;align-items:center;gap:8px;padding:10px 20px;transition:all .5s cubic-bezier(.34,1.56,.64,1);display:flex;transform:translateY(10px)scale(.9)}.celebration-badge.show{opacity:1;transform:translateY(0)scale(1)}.celebration-badge.mega-badge{background:linear-gradient(135deg,#ffd70033,#e91e6326);border-color:#ffd70099;animation:2s ease-in-out infinite megaBadgePulse;box-shadow:0 0 30px #ffd70033}@keyframes megaBadgePulse{0%,to{box-shadow:0 0 20px #ffd70033}50%{box-shadow:0 0 40px #ffd70066}}.badge-icon{font-size:20px}.badge-text{color:gold;letter-spacing:.5px;font-size:13px;font-weight:700}.celebration-archive-hint{color:#fffc;opacity:0;background:#ffffff1a;border-radius:8px;padding:8px 16px;font-size:13px;font-weight:600;transition:all .5s cubic-bezier(.16,1,.3,1);transform:translateY(10px)}.celebration-archive-hint.show{opacity:1;transform:translateY(0)}.celebration-dismiss{color:#fff6;opacity:0;margin-top:24px;font-size:12px;transition:opacity .5s .3s}.celebration-dismiss.show{opacity:1}.archived-section{border-top:1px dashed var(--border);margin-top:24px;padding-top:16px}.archived-header{cursor:pointer;justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.archived-title{color:var(--text-tertiary);text-transform:uppercase;letter-spacing:1.5px;align-items:center;gap:6px;font-size:12px;font-weight:700;display:flex}.archived-toggle{color:var(--text-tertiary);font-size:11px;transition:transform .3s}.archived-toggle.open{transform:rotate(180deg)}.archived-list{flex-direction:column;gap:6px;display:flex}.archived-card{border-radius:var(--radius-md);opacity:.85;background:linear-gradient(135deg,#fffbeb,#fef3c7);border:1px solid #fbbf244d;align-items:center;gap:10px;padding:10px 14px;display:flex}.archived-card .mini-emoji{font-size:20px}.archived-card-info{flex:1}.archived-card-name{color:var(--text);font-size:13px;font-weight:700}.archived-card-meta{color:var(--text-tertiary);font-size:11px}.archived-badge{color:var(--accent-amber-text);background:#fbbf2433;border-radius:999px;padding:3px 10px;font-size:11px;font-weight:700}@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)}}.weight-bar{border-radius:var(--radius-full);border:1px solid var(--border);background:var(--surface);cursor:pointer;width:100%;height:28px;margin-bottom:12px;padding:0;display:flex;overflow:hidden}.weight-seg{color:var(--text);white-space:nowrap;justify-content:center;align-items:center;min-width:0;font-size:10px;font-weight:700;display:flex;overflow:hidden}.weight-seg.area-career{background:var(--accent-orange-light);color:var(--accent-orange-text)}.weight-seg.area-personal{background:var(--accent-amber-light);color:var(--accent-amber-text)}.weight-seg.area-family{background:var(--success-light);color:#047857}.month-film{-webkit-overflow-scrolling:touch;scroll-snap-type:x mandatory;gap:8px;margin:0 -20px;padding:2px 20px 12px;display:flex;overflow-x:auto}.month-film::-webkit-scrollbar{display:none}.month-chip{scroll-snap-align:center;border-radius:var(--radius-full);border:1px solid var(--border);background:var(--surface);min-width:64px;min-height:44px;color:var(--text-secondary);cursor:pointer;flex-direction:column;flex:none;justify-content:center;align-items:center;gap:1px;padding:8px 14px;font-size:14px;font-weight:600;display:flex}.month-chip.active{background:var(--action);color:var(--text-on-dark);border-color:var(--action)}.month-now{opacity:.7;font-size:9px;font-weight:600}.area-chips{gap:8px;margin-bottom:14px;display:flex;overflow-x:auto}.area-chip{border-radius:var(--radius-full);border:1px solid var(--border);background:var(--surface);min-height:36px;color:var(--text-secondary);cursor:pointer;flex:none;padding:6px 14px;font-size:13px;font-weight:600}.area-chip.active{background:var(--accent-orange-light);border-color:var(--accent-orange);color:var(--accent-orange-text)}.today-hint,.review-nudge{color:var(--text-secondary);background:var(--accent-amber-light);border-radius:var(--radius-md);margin-bottom:14px;padding:10px 14px;font-size:13px}.today-cleared{text-align:center;color:#047857;background:var(--success-light);border-radius:var(--radius-md);margin-bottom:14px;padding:10px;font-size:13px;font-weight:600}.today-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);animation:fadeInUp .4s var(--ease-out-soft) both;margin-bottom:10px;padding:16px}.today-kr-title{color:var(--text);font-size:16px;font-weight:800}.today-kr-meta{color:var(--text-tertiary);margin-top:2px;font-size:12px}.today-actions{gap:8px;margin-top:14px;display:flex}.check-btn{border-radius:var(--radius-md);cursor:pointer;border:none;flex:1;min-height:44px;font-size:14px;font-weight:700}.check-btn.success{background:var(--action);color:var(--text-on-dark)}.check-btn.fail{background:var(--error-light);color:var(--error)}.today-done{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);align-items:flex-start;gap:10px;margin-bottom:8px;padding:12px;display:flex}.today-done.success{border-color:#a7f3d0}.today-done.failed{border-color:#fecdd3}.today-done-mark{border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;font-weight:800;display:flex}.today-done-mark.success{background:var(--success-light);color:#047857}.today-done-mark.failed{background:var(--error-light);color:var(--error)}.today-done-body{flex:1;min-width:0}.today-done-title{font-size:14px;font-weight:700}.today-note{border:none;border-bottom:1px solid var(--border);width:100%;color:var(--text-body);background:0 0;outline:none;margin-top:6px;padding:4px 0;font-size:13px}.milestone-row{text-align:left;background:var(--surface);border:1px dashed var(--border);border-radius:var(--radius-md);cursor:pointer;width:100%;min-height:44px;margin-bottom:8px;padding:14px 16px}.milestone-row-title{color:var(--text);font-size:14px;font-weight:700;display:block}.milestone-row-meta{color:var(--text-tertiary);margin-top:2px;font-size:12px;display:block}.obj-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);margin-bottom:12px;padding:16px}.obj-card.strong{border-color:#a7f3d0}.obj-card.weak{border-color:#fecdd3}.obj-head{align-items:flex-start;gap:10px;display:flex}.obj-head-main{text-align:left;cursor:pointer;background:0 0;border:none;flex:1;min-width:0;padding:0}.obj-kicker{color:var(--text-tertiary);letter-spacing:.04em;font-size:11px;font-weight:600}.obj-weight{color:var(--accent-orange-text);margin-left:6px}.obj-title{color:var(--text);margin-top:2px;font-size:17px;font-weight:800;line-height:1.35}.obj-rate-row{align-items:center;gap:8px;margin-top:10px;display:flex}.obj-rate-bar{background:var(--stone-light);border-radius:var(--radius-full);flex:1;height:6px;overflow:hidden}.obj-rate-bar span{background:var(--accent-orange);border-radius:var(--radius-full);height:100%;display:block}.obj-rate-num{color:var(--text-tertiary);font-variant-numeric:tabular-nums;text-align:right;width:32px;font-size:11px;font-weight:700}.obj-actions{gap:12px;margin-top:10px;display:flex}.text-btn{min-height:44px;color:var(--accent-orange-text);cursor:pointer;background:0 0;border:none;padding:8px 0;font-size:13px;font-weight:600}.text-btn.danger{color:var(--error)}.obj-krs{margin-top:8px}.kr-row{border-top:1px solid var(--border);padding:12px 0 4px}.kr-row-head{cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:8px;width:100%;min-height:44px;padding:4px 0;display:flex}.kr-row-titles{flex:1;min-width:0}.kr-title{color:var(--text);font-size:14px;font-weight:700}.kr-type{color:var(--text-tertiary);border:1px solid var(--border);border-radius:999px;margin-left:6px;padding:1px 6px;font-size:10px;font-weight:600}.kr-month-count{gap:6px;font-size:12px;font-weight:800;display:flex}.kr-month-count .ok{color:#047857;font-style:normal}.kr-month-count .bad{color:var(--error);font-style:normal}.film-wrap{margin-top:6px}.film-neighbors{gap:12px;margin-bottom:6px;display:flex}.film-neighbor{color:var(--text-tertiary);align-items:center;gap:6px;font-size:11px;display:flex}.film-neighbor-dots{gap:3px;display:flex}.film-neighbor-dots i{background:var(--border);border-radius:50%;width:6px;height:6px;display:block}.film-neighbor-dots i.on{background:var(--success)}.film-neighbor.bad .film-neighbor-dots i.on{background:var(--error)}.film-neighbor.ok .film-neighbor-dots i.on{background:var(--accent-orange)}.film-strip{-webkit-overflow-scrolling:touch;gap:3px;padding-bottom:4px;display:flex;overflow-x:auto}.film-strip::-webkit-scrollbar{height:0}.film-cell{background:var(--stone-light);border-radius:6px;flex-direction:column;flex:0 0 24px;justify-content:center;align-items:center;width:24px;height:36px;line-height:1;display:flex}.film-day{color:var(--text-tertiary);font-size:8px}.film-mark{height:14px;font-size:11px;font-weight:800}.film-cell.success{background:var(--success-light);color:#047857}.film-cell.failed{background:var(--error-light);color:var(--error)}.film-cell.progress{background:var(--accent-amber-light);color:var(--accent-amber-text)}.film-cell.is-today{outline:2px solid var(--accent-orange);outline-offset:1px}.kr-steps{flex-wrap:wrap;gap:6px;margin-top:8px;display:flex}.kr-step{background:var(--stone-light);color:var(--text-secondary);border-radius:999px;padding:2px 8px;font-size:11px}.kr-timeline{margin-top:8px}.timeline-item{text-align:left;border:none;border-bottom:1px solid var(--border);cursor:pointer;background:0 0;flex-wrap:wrap;align-items:baseline;gap:8px;width:100%;min-height:44px;padding:10px 0;display:flex}.timeline-date{color:var(--text-secondary);font-size:12px;font-weight:700}.timeline-mark{font-weight:800}.timeline-mark.success{color:#047857}.timeline-mark.failed{color:var(--error)}.timeline-text{color:var(--text-body);flex:100%;font-size:13px}.kr-delete{width:100%;color:var(--error);cursor:pointer;background:0 0;border:none;padding:12px 0;font-size:12px;display:block}.grade-badge{background:var(--stone-light);color:var(--text-tertiary);border-radius:999px;flex-shrink:0;align-items:center;gap:4px;padding:4px 8px;font-size:11px;font-weight:800;display:inline-flex}.grade-badge.md{padding:6px 10px;font-size:13px}.grade-badge-label{font-weight:600}.grade-badge.grade-E{background:var(--accent-amber-light);color:var(--accent-amber-text)}.grade-badge.grade-M{background:var(--success-light);color:#047857}.grade-badge.grade-Mm{background:var(--accent-orange-light);color:var(--accent-orange-text)}.grade-badge.grade-I{background:var(--error-light);color:var(--error)}.grade-picker{grid-template-columns:repeat(4,1fr);gap:8px;display:grid}.grade-pick{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);cursor:pointer;flex-direction:column;justify-content:center;align-items:center;gap:2px;min-height:64px;display:flex}.grade-pick strong{font-size:16px}.grade-pick span{color:var(--text-tertiary);font-size:11px}.grade-pick.active.grade-E{border-color:var(--accent-amber);background:var(--accent-amber-light)}.grade-pick.active.grade-M{border-color:var(--success);background:var(--success-light)}.grade-pick.active.grade-Mm{border-color:var(--accent-orange);background:var(--accent-orange-light)}.grade-pick.active.grade-I{border-color:var(--error);background:var(--error-light)}.review-obj-name{margin-bottom:8px;font-size:15px;font-weight:700}.ai-review-btn{border:1px dashed var(--border);border-radius:var(--radius-md);width:100%;min-height:44px;color:var(--text-secondary);cursor:pointer;background:0 0;margin-top:16px;font-weight:600}.ai-comment-text{white-space:pre-wrap;font-size:14px;line-height:1.7}.status-pills{gap:8px;display:flex}.status-pill{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);cursor:pointer;flex:1;min-height:44px;font-weight:600}.status-pill.active.success{background:var(--success-light);border-color:var(--success)}.status-pill.active.failed{background:var(--error-light);border-color:var(--error)}.status-pill.active.progress{background:var(--accent-amber-light);border-color:var(--accent-amber)}.review-stats{grid-template-columns:repeat(3,1fr)}.review-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);margin-bottom:12px;padding:16px}.review-card-head{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.review-summary{color:var(--text-body);margin-top:10px;font-size:14px}.review-ai{color:var(--text-secondary);border-top:1px dashed var(--border);margin-top:8px;padding-top:8px;font-size:13px}textarea.form-input{resize:vertical;font-family:inherit;line-height:1.6}@media (width<=400px){.review-stats,.grade-picker{grid-template-columns:repeat(2,1fr)}}.header-today-count{color:#047857;font-weight:700}.header-today-toggle{font:inherit;color:var(--text-secondary);cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:none;border-radius:6px;margin:0;padding:0 2px;font-weight:700;display:inline}.header-today-toggle:hover,.header-today-toggle.is-open{color:var(--text)}.header-today-toggle .ok{color:#047857}.header-today-toggle .bad{color:#be123c}.header-today-toggle .chev{transition:transform .22s var(--ease-out-soft);margin-left:3px;font-size:9px;display:inline-block}.header-today-toggle.is-open .chev{transform:rotate(180deg)}.today-review-wrap{transition:grid-template-rows .32s var(--ease-out-soft);grid-template-rows:0fr;padding:0 16px;display:grid}.today-review-wrap.is-open{grid-template-rows:1fr;margin-bottom:2px}.today-review-clip{min-height:0;overflow:hidden}.today-review{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);margin-top:10px;padding:12px 12px 10px}.today-review-head{justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:6px;padding:0 2px;display:flex}.today-review-head strong{color:var(--text);font-size:13px;font-weight:800}.today-review-head span{color:var(--text-tertiary);font-size:11px;font-weight:600}.today-review-head i{font-style:normal}.today-review-head .ok{color:#047857}.today-review-head .bad{color:#be123c}.today-review-list{-webkit-overflow-scrolling:touch;max-height:min(46vh,360px);overflow-y:auto}.today-review-group{margin-top:8px}.today-review-o{color:var(--text-tertiary);margin:0 0 4px 2px;font-size:11px;font-weight:700}.today-review-item{border-radius:var(--radius-sm);align-items:flex-start;gap:8px;margin:2px 0;padding:8px;display:flex}.today-review-item.ok{background:rgba(var(--success-rgb), .06)}.today-review-item.no{background:rgba(var(--error-rgb), .06)}.today-review-mark{flex-shrink:0;font-size:13px;line-height:1.5}.today-review-body{flex-direction:column;flex:1;gap:1px;min-width:0;display:flex}.today-review-kr{color:var(--text-tertiary);text-overflow:ellipsis;white-space:nowrap;font-size:11px;font-weight:600;overflow:hidden}.today-review-text{color:var(--text-body);word-break:break-word;font-size:13px}.today-review-text em{color:var(--text-tertiary);font-style:normal}.period-nav{align-items:center;gap:6px;margin-bottom:10px;display:flex}.period-arrow{border-radius:var(--radius-full);border:1px solid var(--border);background:var(--surface);width:44px;height:44px;color:var(--text-secondary);cursor:pointer;flex-shrink:0;font-size:22px;line-height:1}.period-label{cursor:pointer;background:0 0;border:none;flex-direction:column;flex:1;align-items:center;min-height:44px;line-height:1.2;display:flex}.period-label strong{color:var(--text);letter-spacing:-.01em;font-size:17px;font-weight:900}.period-label span{color:var(--text-tertiary);margin-top:2px;font-size:11px}.month-toggle{grid-template-columns:1fr 1fr;gap:8px;margin-bottom:12px;display:grid}.month-toggle-item{border-radius:var(--radius-md);border:1px solid var(--border);background:var(--surface);cursor:pointer;text-align:left;min-height:56px;transition:all .2s var(--ease-out-soft);flex-direction:column;justify-content:center;align-items:flex-start;gap:2px;padding:8px 14px;display:flex}.month-toggle-item.active{background:var(--action);border-color:var(--action);color:var(--text-on-dark)}.month-toggle-name{align-items:center;gap:6px;font-size:15px;font-weight:800;display:flex}.month-toggle-name em{color:var(--accent-orange);border:1px solid;border-radius:999px;padding:0 6px;font-size:10px;font-style:normal;font-weight:700}.month-toggle-item.active .month-toggle-name em{color:var(--accent-amber)}.month-toggle-counts{gap:10px;font-size:12px;font-weight:700;display:flex}.month-toggle:has(>:nth-child(3)) .month-toggle-item{min-height:52px;padding:8px 10px}.month-toggle:has(>:nth-child(3)) .month-toggle-name{font-size:13px}.month-toggle:has(>:nth-child(3)) .month-toggle-name em{display:none}.month-toggle:has(>:nth-child(3)) .month-toggle-counts{gap:6px;font-size:11px}.month-toggle:has(>:nth-child(4)) .month-toggle-item{padding:8px 6px}.month-toggle:has(>:nth-child(4)) .month-toggle-name{font-size:12px}.month-toggle:has(>:nth-child(4)) .month-toggle-counts{gap:4px;font-size:10px}.month-toggle-counts i{font-style:normal}.month-toggle-counts .ok{color:#047857}.month-toggle-counts .bad{color:var(--error)}.month-toggle-item.active .month-toggle-counts .ok{color:#6ee7b7}.month-toggle-item.active .month-toggle-counts .bad{color:#fda4af}.review-nudge-card{text-align:left;border-radius:var(--radius-lg);border:none;border-left:4px solid var(--accent-orange);cursor:pointer;width:100%;animation:fadeInUp .4s var(--ease-out-soft) both;background:linear-gradient(135deg,#fff7ed,#ffedd5);flex-direction:column;gap:2px;margin-bottom:12px;padding:14px 16px;display:flex}.review-nudge-card strong{color:var(--accent-orange-text);font-size:15px}.review-nudge-card span{color:var(--text-secondary);font-size:12px}.weight-wrap{margin-bottom:14px}.weight-wrap .weight-bar{margin-bottom:4px}.weight-obj-total{color:var(--text-tertiary);text-align:right;font-size:11px;display:block}.weight-obj-total.off{color:var(--accent-amber-text)}.form-grid-2{grid-template-columns:1fr 1fr;gap:12px;display:grid}.form-grid-2 .form-label{margin-top:16px}.okr-kr-drafts{flex-direction:column;gap:10px;display:flex}.okr-kr-draft{background:var(--surface-alt);border:1px solid var(--border);border-radius:12px;padding:10px 12px}.okr-kr-draft-head{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.okr-kr-draft-idx{color:var(--accent-orange-text);font-size:11px;font-weight:800}.okr-kr-draft .form-input{padding:10px 12px;font-size:14px}.okr-kr-draft .form-input+.form-input{margin-top:8px}.form-danger-zone{border-top:1px dashed var(--border);margin-top:20px;padding-top:12px}.form-danger-confirm{color:var(--text-secondary);flex-wrap:wrap;align-items:center;gap:4px 14px;font-size:13px;display:flex}.obj-index{background:var(--stone-light);color:var(--stone-text);border-radius:6px;margin-right:6px;padding:0 6px;font-weight:800;display:inline-block}.obj-rate-counts{flex-shrink:0;gap:8px;font-size:12px;font-weight:800;display:flex}.obj-rate-counts i{font-style:normal}.obj-rate-counts .ok{color:#047857}.obj-rate-counts .bad{color:var(--error)}.obj-review-line{color:var(--text-secondary);background:var(--surface-alt);border-radius:var(--radius-sm);margin-top:10px;padding:8px 10px;font-size:13px}.obj-review-line b{color:var(--text);margin-right:6px}.obj-actions{flex-wrap:wrap;gap:4px 14px}.text-btn.muted{color:var(--text-tertiary)}.obj-toggle{margin-left:auto}.kr-empty{color:var(--text-tertiary);padding:8px 0;font-size:13px}.kr-row-head{cursor:default}.kr-index{color:var(--accent-orange-text);background:var(--accent-orange-light);border-radius:6px;flex-shrink:0;padding:1px 6px;font-size:10px;font-weight:800}.kr-row-titles{text-align:left;cursor:pointer;background:0 0;border:none;min-height:36px;padding:4px 0}.kr-row-titles .kr-title{line-height:1.45}.kr-step{cursor:pointer;border:1px solid #0000;min-height:28px}.kr-step.done{background:var(--success-light);color:#047857;border-color:#a7f3d0}.log-list{margin-top:6px;list-style:none}.log-item{border-radius:var(--radius-sm);text-align:left;cursor:pointer;background:0 0;border:none;align-items:baseline;gap:8px;width:100%;min-height:36px;margin:2px 0;padding:7px 8px;transition:background .15s;display:flex}.log-item:hover{background:var(--surface-hover)}.log-item.ok{background:rgba(var(--success-rgb), .06)}.log-item.no{background:rgba(var(--error-rgb), .06)}.log-item.is-today{box-shadow:inset 0 0 0 1.5px var(--accent-orange)}.log-mark{flex-shrink:0;font-size:13px}.log-date{color:var(--text-secondary);font-variant-numeric:tabular-nums;flex-shrink:0;min-width:34px;font-size:12px;font-weight:800}.log-text{color:var(--text-body);word-break:break-word;flex:1;min-width:0;font-size:13px}.log-text em{color:var(--text-tertiary);font-style:normal}.log-more{color:var(--text-tertiary);cursor:pointer;background:0 0;border:none;min-height:32px;padding:6px 8px;font-size:12px;font-weight:600}.log-input-row{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface-input);align-items:center;gap:6px;margin-top:8px;padding:4px;display:flex}.log-input-row:focus-within{border-color:var(--border-focus);box-shadow:0 0 0 3px var(--accent-orange-light);background:var(--surface)}.log-mark-toggle{background:var(--surface);cursor:pointer;width:40px;height:40px;box-shadow:var(--shadow-sm);border:none;border-radius:10px;flex-shrink:0;font-size:16px}.log-mark-toggle.no{background:var(--error-light)}.log-date-pick{min-width:44px;height:40px;color:var(--text-secondary);font-variant-numeric:tabular-nums;cursor:pointer;border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;padding:0 6px;font-size:12px;font-weight:800;display:flex;position:relative}.log-date-pick input{opacity:0;cursor:pointer;width:100%;height:100%;position:absolute;inset:0}.log-text-input{min-width:0;height:40px;color:var(--text);background:0 0;border:none;outline:none;flex:1;font-size:14px}.log-text-input::placeholder{color:var(--text-tertiary)}.log-submit{background:var(--action);min-width:44px;height:40px;color:var(--text-on-dark);cursor:pointer;border:none;border-radius:10px;flex-shrink:0;padding:0 12px;font-size:14px;font-weight:800}.grade-badge.clickable{cursor:pointer;border:none;font-family:inherit}.review-stat-line{color:var(--text-secondary);margin-bottom:4px;font-size:13px}.review-stat-line b{margin-right:4px;font-weight:800}.review-stat-line .ok{color:#047857}.review-stat-line .bad{color:var(--error)}.review-suggest{color:var(--text-tertiary)}.review-suggest em{color:var(--accent-orange-text);font-style:normal;font-weight:800}.grade-picker.five{grid-template-columns:repeat(5,1fr)}.grade-picker.five .grade-pick{min-height:60px;padding:4px 2px}.grade-picker.five .grade-pick span{font-size:10px}.ai-review-btn:disabled{opacity:.6;cursor:wait}.ai-comment-box{border-radius:var(--radius-md);background:var(--surface-alt);border:1px solid var(--border);margin-top:12px;padding:12px 14px}.crash-detail{word-break:break-word;margin-top:8px;color:var(--text-tertiary)!important;font-size:11px!important;font-weight:400!important}.lb-obj-picker{margin-bottom:8px}.lb-period-group{align-items:center;gap:8px;margin:0 -20px;padding-bottom:8px;padding-left:20px;padding-right:20px;display:flex;overflow-x:auto}.lb-period-group::-webkit-scrollbar{display:none}.lb-period-tag{color:var(--text-tertiary);letter-spacing:.04em;flex:none;font-size:11px;font-weight:700}.lb-period-group .area-chip{white-space:nowrap}.lb-title{color:var(--text);margin:4px 0 10px;font-size:17px;font-weight:800;line-height:1.4}.lb-kr-chips{margin-bottom:10px}.lb-compare{border-radius:var(--radius-sm);margin-bottom:12px;padding:8px 12px;font-size:13px;font-weight:600}.lb-compare.up{background:var(--success-light);color:#047857}.lb-compare.down{background:var(--accent-amber-light);color:var(--accent-amber-text)}.lb-strip{-webkit-overflow-scrolling:touch;scroll-snap-type:x mandatory;gap:10px;margin:0 -20px;padding:2px 20px 12px;display:flex;overflow-x:auto}.lb-strip::-webkit-scrollbar{display:none}.lb-col{scroll-snap-align:center;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);max-width:320px;min-height:220px;box-shadow:var(--shadow-sm);flex-direction:column;flex:0 0 78%;padding:14px;display:flex}.lb-col.good{border-color:#a7f3d0}.lb-col.bad{border-color:#fecdd3}.lb-col.is-now{box-shadow:0 0 0 2px var(--accent-orange);border-color:#0000}.lb-col-head{justify-content:space-between;align-items:center;display:flex}.lb-col-month{color:var(--text);align-items:center;gap:6px;font-size:15px;font-weight:900;display:flex}.lb-col-month em{color:var(--accent-orange);border:1px solid;border-radius:999px;padding:0 6px;font-size:10px;font-style:normal}.lb-col-counts{border-bottom:1px dashed var(--border);gap:14px;margin:8px 0 10px;padding-bottom:10px;display:flex}.lb-col-counts span{align-items:baseline;gap:3px;font-size:12px;display:flex}.lb-col-counts b{font-variant-numeric:tabular-nums;font-size:26px;font-weight:900;line-height:1}.lb-col-counts .ok b{color:#047857}.lb-col-counts .bad b{color:var(--error)}.lb-col-logs{flex-direction:column;flex:1;gap:4px;list-style:none;display:flex}.lb-col-empty{color:var(--text-tertiary);text-align:center;padding:24px 0}.lb-log{border-radius:6px;align-items:baseline;gap:6px;padding:3px 4px;font-size:12.5px;line-height:1.5;display:flex}.lb-log.ok{background:rgba(var(--success-rgb), .06)}.lb-log.no{background:rgba(var(--error-rgb), .06)}.lb-log-mark{flex-shrink:0;font-size:11px}.lb-log-date{color:var(--text-secondary);font-variant-numeric:tabular-nums;flex-shrink:0;font-weight:800}.lb-log-kr{color:var(--accent-orange-text);flex-shrink:0;font-size:10px;font-weight:700}.lb-log-kr-badge{color:var(--accent-orange-text);background:var(--accent-orange-light);border-radius:4px;flex-shrink:0;padding:1px 5px;font-size:10px;font-weight:800;line-height:1.2}.lb-log-text{color:var(--text-body);word-break:break-word}.lb-col-review{border-top:1px dashed var(--border);color:var(--text-secondary);margin-top:10px;padding-top:10px;font-size:12.5px}.lb-col-review b{color:var(--text);margin-right:4px}.lb-trail{color:var(--text-secondary);flex-wrap:wrap;align-items:center;gap:6px;padding:4px 0 8px;font-size:12px;display:flex}.lb-trail-label{color:var(--text-tertiary);letter-spacing:.08em;margin-right:4px;font-size:11px;font-weight:600}.lb-trail-item{align-items:center;gap:4px;display:inline-flex}.lb-trail-item i{color:var(--text-tertiary);margin-right:2px;font-style:normal}.lb-log.is-clickable{cursor:pointer;transition:transform .1s,background-color .15s}.lb-log.is-clickable:active{opacity:.85;transform:scale(.98)}.vision-tab{flex-direction:column;gap:12px;display:flex}.vision-top-bar{justify-content:space-between;align-items:center;gap:12px;padding:2px 2px 0;display:flex}.vision-period-wrap{align-items:center;gap:8px;display:flex}.vision-return-now-btn{color:var(--accent-orange-text);background:var(--accent-orange-light);border:1px solid var(--accent-orange-border);cursor:pointer;border-radius:999px;padding:2px 8px;font-size:11px;font-weight:700;transition:all .15s}.vision-return-now-btn:active{transform:scale(.95)}.vision-carousel-indicator-inline{align-items:center;gap:8px;display:flex}.period-menu-divider{background:var(--border-subtle);height:1px;margin:2px 4px}.edit-period-action .p-title{color:var(--text-tertiary);font-size:11.5px;font-weight:600}.vision-carousel-indicator{justify-content:space-between;align-items:center;padding:0 4px;display:flex}.vision-indicator-meta{align-items:center;gap:8px;display:flex}.vision-counter-pill{background:var(--text);color:var(--text-on-dark);letter-spacing:.04em;border-radius:999px;padding:2px 8px;font-size:11px;font-weight:900}.vision-counter-title{color:var(--text-secondary);font-size:13px;font-weight:700}.vision-dots{align-items:center;gap:6px;display:flex}.vision-dot{background:var(--border);cursor:pointer;border:none;border-radius:999px;width:7px;height:7px;padding:0;transition:all .25s cubic-bezier(.16,1,.3,1)}.vision-dot.active{background:var(--accent-orange);border-radius:999px;width:18px}.vision-dot-chat{background:var(--accent-orange-light)}.vision-dot-chat.active{background:var(--action)}.vision-carousel{scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;align-items:flex-start;gap:14px;margin:0 -16px;padding:4px 16px 20px;display:flex;overflow-x:auto}.vision-carousel::-webkit-scrollbar{display:none}.vision-slide{scroll-snap-align:center;flex-direction:column;flex:0 0 88%;max-width:360px;display:flex}.vision-slide-add{justify-content:center;align-items:center;display:flex}.vision-add-card{border:2px dashed var(--border);background:var(--surface-alt);width:100%;min-height:380px;color:var(--text-secondary);cursor:pointer;text-align:center;border-radius:20px;flex-direction:column;justify-content:center;align-items:center;gap:10px;padding:24px;transition:all .2s;display:flex}.vision-add-card:active{background:var(--surface);border-color:var(--action);color:var(--action)}.vision-add-card .add-icon{color:var(--text-tertiary);font-size:32px;font-weight:300}.vision-add-card h4{color:var(--text);margin:0;font-size:16px;font-weight:800}.vision-add-card p{color:var(--text-tertiary);margin:0;font-size:12px}.vision-slide-chat{min-height:calc(100dvh - 168px)}.okr-chat-card{gap:10px;min-height:calc(100dvh - 168px)}.okr-chat-header-right{align-items:center;gap:10px;display:flex}.okr-chat-month{color:var(--text-tertiary);font-size:11px;font-weight:700}.okr-chat-new-btn{color:var(--accent-orange-text);cursor:pointer;background:0 0;border:none;padding:0;font-size:11px;font-weight:800}.okr-chat-new-btn:disabled{opacity:.45;cursor:default}.okr-chat-thread{overscroll-behavior:contain;flex-direction:column;flex:1;gap:10px;min-height:0;padding:2px 2px 0;display:flex;overflow-y:auto}.okr-chat-empty{text-align:center;color:var(--text-tertiary);margin:auto 0;font-size:12px}.okr-chat-bubble{flex-direction:column;gap:4px;max-width:100%;display:flex}.okr-chat-bubble.user{align-items:flex-end}.okr-chat-bubble.assistant{align-items:flex-start}.okr-chat-who{letter-spacing:.04em;color:var(--text-tertiary);font-size:10px;font-weight:800}.okr-chat-bubble p,.okr-chat-md{word-break:break-word;border-radius:14px;margin:0;padding:10px 12px;font-size:13px;line-height:1.65}.okr-chat-bubble.user p{background:var(--action);color:var(--text-on-dark);white-space:pre-wrap;border-bottom-right-radius:6px}.okr-chat-md{background:var(--accent-orange-light);color:var(--text-body);border-bottom-left-radius:6px}.okr-chat-md.is-gpt{background:var(--stone-light)}.okr-chat-md.is-gpt strong,.okr-chat-bubble.gpt .okr-chat-who{color:var(--stone-text)}.okr-chat-bubble.pending.gpt p{background:var(--stone-light)}.okr-chat-bubble.failed .okr-chat-md,.okr-chat-bubble.failed .okr-chat-md.is-gpt{background:var(--error-light);color:#9f1239}.okr-chat-md p{background:0 0;border-radius:0;margin:0 0 8px;padding:0}.okr-chat-md p:last-child{margin-bottom:0}.okr-chat-md strong{color:var(--accent-orange-text);font-weight:800}.okr-chat-md em{font-style:italic}.okr-chat-md code{background:#ffffff8c;border-radius:4px;padding:0 4px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px}.okr-chat-md h3,.okr-chat-md h4{color:var(--text);margin:0 0 8px;font-size:13px;font-weight:800;line-height:1.45}.okr-chat-md h3:last-child,.okr-chat-md h4:last-child{margin-bottom:0}.okr-chat-md ul,.okr-chat-md ol{margin:0 0 8px;padding-left:1.2em}.okr-chat-md ul:last-child,.okr-chat-md ol:last-child{margin-bottom:0}.okr-chat-md li{margin:4px 0}.okr-chat-bubble.pending p{background:var(--accent-orange-light);color:var(--text-secondary);border-bottom-left-radius:6px}.okr-chat-error{color:#9f1239;margin:0;font-size:12px;font-weight:600}.okr-chat-start-btn{background:var(--action);width:100%;color:var(--text-on-dark);cursor:pointer;border:none;border-radius:14px;padding:12px 16px;font-size:14px;font-weight:800}.okr-chat-start-btn:disabled{opacity:.55;cursor:default}.okr-chat-composer{gap:8px;display:flex}.okr-chat-composer input{border:1px solid var(--border);background:var(--surface-input);min-width:0;color:var(--text);border-radius:12px;flex:1;padding:10px 12px;font-size:13px}.okr-chat-composer input:focus{border-color:var(--border-focus);outline:none}.okr-chat-composer button{background:var(--action);color:var(--text-on-dark);cursor:pointer;border:none;border-radius:12px;flex-shrink:0;padding:10px 14px;font-size:13px;font-weight:800}.okr-chat-composer button:disabled{opacity:.45;cursor:default}.vision-card{background:var(--surface);border:1px solid var(--border);border-radius:20px;flex-direction:column;gap:14px;height:100%;padding:18px;display:flex;position:relative;overflow:hidden;box-shadow:0 4px 16px #0000000a}.vision-card-header{justify-content:space-between;align-items:center;display:flex}.vision-card-meta{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.vision-badge-index{background:var(--text);color:var(--text-on-dark);letter-spacing:.04em;border-radius:999px;padding:2px 7px;font-size:11px;font-weight:900}.vision-badge-cat{color:var(--accent-orange-text);background:var(--accent-orange-light);border-radius:999px;padding:2px 8px;font-size:11px;font-weight:600}.vision-badge-weight{color:var(--text-tertiary);font-size:11px;font-weight:800}.vision-card-actions{align-items:center;gap:8px;display:flex}.btn-icon-subtle{color:var(--text-tertiary);cursor:pointer;border-radius:var(--radius-sm);background:0 0;border:none;justify-content:center;align-items:center;padding:4px;font-size:15px;display:flex}.btn-icon-subtle:active{background:var(--surface-alt);color:var(--text)}.vision-title{color:var(--text);letter-spacing:-.01em;margin:0;font-size:18px;font-weight:900;line-height:1.35}.vision-gallery{-webkit-overflow-scrolling:touch;align-items:center;gap:10px;padding:2px 0 6px;display:flex;overflow-x:auto}.vision-gallery::-webkit-scrollbar{display:none}.vision-photo-wrap{cursor:pointer;border-radius:14px;flex:0 0 100px;height:100px;position:relative;overflow:hidden;box-shadow:0 2px 8px #00000014}.vision-photo{object-fit:cover;width:100%;height:100%;transition:transform .25s;display:block}.vision-photo:hover{transform:scale(1.04)}.vision-photo-del{color:#fff;cursor:pointer;background:#0009;border:none;border-radius:999px;justify-content:center;align-items:center;width:22px;height:22px;font-size:11px;display:flex;position:absolute;top:4px;right:4px}.vision-photo-add{border:1.5px dashed var(--border);background:var(--surface-alt);height:100px;color:var(--text-tertiary);cursor:pointer;border-radius:14px;flex-direction:column;flex:0 0 100px;justify-content:center;align-items:center;gap:4px;transition:all .2s;display:flex}.vision-photo-add:active{background:var(--surface);border-color:var(--action);color:var(--action)}.vision-photo-add .add-icon{font-size:20px}.vision-photo-add .add-label{font-size:10.5px;font-weight:700}.vision-block{border-radius:12px;padding:12px 14px;transition:padding .15s}.vision-block.collapsed{padding:8px 14px}.vision-block.motivation{background:#fffbeb;border:1px solid #fde68a}.vision-block.feedback{background:#ecfdf5;border:1px solid #a7f3d0}.vision-block-tag{text-align:left;cursor:pointer;background:0 0;border:none;align-items:center;gap:6px;width:100%;margin-bottom:0;padding:0;font-family:inherit;font-size:11px;font-weight:800;display:flex}.vision-block.open .vision-block-tag{margin-bottom:6px}.vision-block.motivation .vision-block-tag{color:#b45309}.vision-block.feedback .vision-block-tag{color:#047857}.vision-fold-chevron{opacity:.55;margin-left:auto;font-size:10px;font-weight:700}.tag-dot{background:#b45309;border-radius:999px;flex-shrink:0;width:6px;height:6px}.tag-sparkle{font-size:12px}.vision-block-text{color:var(--text);cursor:pointer;margin:0;font-size:13.5px;font-weight:500;line-height:1.5}.vision-krs-section{background:var(--surface-alt);border-radius:12px;flex-direction:column;gap:8px;padding:12px;display:flex}.vision-krs-head{justify-content:space-between;align-items:center;display:flex}.vision-krs-head .section-label{color:var(--text-tertiary);letter-spacing:.04em;font-size:11px;font-weight:700}.vision-counts-pill{color:var(--text-secondary);font-size:11.5px;font-weight:700}.vision-counts-pill b{color:var(--text);margin:0 1px;font-size:13px}.vision-kr-list{flex-direction:column;gap:8px;list-style:none;display:flex}.vision-kr-item{background:var(--surface);border:1px solid var(--border);border-radius:8px;flex-direction:column;gap:5px;padding:8px 10px;display:flex}.vision-kr-title-row{align-items:baseline;gap:6px;display:flex}.vision-kr-title-row .kr-idx{color:var(--accent-orange-text);font-size:11px;font-weight:900}.vision-kr-title-row .kr-text{color:var(--text);font-size:13px;font-weight:600;line-height:1.35}.vision-kr-empty{color:var(--text-tertiary);margin:0;font-size:12.5px;line-height:1.45}.vision-kr-steps{flex-wrap:wrap;gap:5px;margin-top:2px;display:flex}.vision-step-chip{background:var(--surface-alt);border:1px solid var(--border);color:var(--text-secondary);cursor:pointer;border-radius:999px;align-items:center;gap:4px;padding:2px 8px;font-size:11px;font-weight:600;transition:all .15s;display:flex}.vision-step-chip.done{color:#047857;background:#ecfdf5;border-color:#a7f3d0}.vision-card-footer{margin-top:auto;padding-top:4px}.vision-go-record-btn{background:var(--surface-alt);border:1px solid var(--border);width:100%;color:var(--text);cursor:pointer;border-radius:12px;justify-content:space-between;align-items:center;padding:10px 14px;font-size:13px;font-weight:800;transition:all .2s;display:flex}.vision-go-record-btn:active{background:var(--action);color:var(--text-on-dark);border-color:var(--action)}.vision-go-record-btn .arrow{font-size:14px;font-weight:900;transition:transform .2s}.vision-go-record-btn:hover .arrow{transform:translate(3px)}.record-tab-clean{padding-bottom:calc(108px + env(safe-area-inset-bottom,0px));flex-direction:column;gap:10px;display:flex;position:relative}.record-top-nav{align-items:center;gap:8px;display:flex}.period-pill-wrapper{flex-shrink:0;position:relative}.period-switch-pill{background:var(--surface-alt);border:1px solid var(--border-subtle);color:var(--text-secondary);cursor:pointer;border-radius:999px;align-items:center;gap:3px;padding:3px 8px;font-size:11px;font-weight:600;transition:all .15s;display:inline-flex}.period-switch-pill:active{background:var(--surface)}.period-switch-pill .arrow-down{color:var(--text-tertiary);font-size:10px}.period-dropdown-menu{background:var(--surface);border:1px solid var(--border);z-index:100;border-radius:12px;flex-direction:column;gap:4px;min-width:140px;padding:6px;display:flex;position:absolute;top:calc(100% + 6px);left:0;box-shadow:0 8px 24px #0000001f}.period-dropdown-item{cursor:pointer;text-align:left;background:0 0;border:none;border-radius:8px;justify-content:space-between;align-items:center;padding:8px 10px;display:flex}.period-dropdown-item:active,.period-dropdown-item.active{background:var(--surface-alt)}.period-dropdown-item .p-title{color:var(--text);font-size:12.5px;font-weight:700}.period-dropdown-item .p-count{color:var(--text-tertiary);font-size:11px}.record-focus-o-strip{justify-content:space-between;align-items:center;gap:8px;display:flex}.o-strip-left{flex:1;align-items:center;gap:8px;min-width:0;display:flex}.o-main-badge{background:var(--surface);border:1px solid var(--border);border-radius:999px;flex-shrink:0;align-items:center;gap:5px;padding:4px 10px;font-size:12.5px;display:inline-flex}.o-main-badge .o-num{color:var(--text);font-weight:900}.o-main-badge .o-category-name{color:var(--text-secondary);font-weight:700}.o-main-badge .o-weight-val{color:var(--accent-orange-text);background:var(--accent-orange-light);border-radius:999px;padding:0 6px;font-size:10.5px;font-weight:900}.o-switch-next-btn{background:var(--surface-alt);border:1px solid var(--border);color:var(--text-secondary);cursor:pointer;border-radius:999px;flex-shrink:0;align-items:center;gap:3px;padding:4px 9px 4px 10px;font-size:11.5px;font-weight:700;transition:all .15s;display:inline-flex}.o-switch-next-btn:active{background:var(--surface);transform:scale(.96)}.o-switch-next-btn .o-page-count{color:var(--text-tertiary);margin-left:2px;font-size:10px;font-weight:800}.o-switch-next-btn .arrow-next{color:var(--accent-orange);font-size:13px;font-weight:900}.record-o-brief-line{color:var(--text-secondary);align-items:center;gap:6px;padding:1px 2px 2px;font-size:12px;display:flex}.record-o-brief-line .brief-symbol{opacity:.85;font-size:12px}.record-o-brief-line .brief-title-text{white-space:nowrap;text-overflow:ellipsis;min-width:0;color:var(--text-secondary);flex:1;font-weight:600;overflow:hidden}.record-focus-kr-card{background:var(--surface);border:1.5px solid var(--border);border-radius:16px;flex-direction:column;gap:8px;padding:14px 16px;display:flex;box-shadow:0 4px 16px #00000008}.kr-card-header-bar{justify-content:space-between;align-items:center;display:flex}.kr-badge-box{align-items:center;display:flex}.kr-tag-pill{background:var(--text);color:var(--accent-orange);letter-spacing:.02em;border-radius:999px;padding:2px 8px;font-size:11px;font-weight:900}.kr-switch-next-btn{background:var(--surface-alt);border:1px solid var(--border);color:var(--text-secondary);cursor:pointer;border-radius:999px;align-items:center;gap:3px;padding:3px 8px 3px 10px;font-size:11.5px;font-weight:700;transition:all .15s;display:inline-flex}.kr-switch-next-btn:active{background:var(--surface);transform:scale(.96)}.kr-switch-next-btn .kr-page-count{color:var(--text-tertiary);margin-left:2px;font-size:10px;font-weight:800}.kr-switch-next-btn .arrow-next{color:var(--accent-orange);font-size:13px;font-weight:900}.record-kr-card-container{touch-action:pan-y;flex-direction:column;gap:12px;display:flex;position:relative}.slide-left-anim{animation:.22s cubic-bezier(.2,.8,.2,1) slideLeft}.slide-right-anim{animation:.22s cubic-bezier(.2,.8,.2,1) slideRight}@keyframes slideLeft{0%{opacity:.6;transform:translate(20px)}to{opacity:1;transform:translate(0)}}@keyframes slideRight{0%{opacity:.6;transform:translate(-20px)}to{opacity:1;transform:translate(0)}}.kr-title-text{color:var(--text);margin:0;font-size:16px;font-weight:900;line-height:1.4}.kr-steps-row{flex-wrap:wrap;gap:6px;margin-top:2px;display:flex}.record-single-month-card{background:var(--surface);border:1.5px solid var(--accent-orange-border);border-radius:16px;flex-direction:column;gap:12px;padding:14px 16px;display:flex;box-shadow:0 4px 16px #f973160d}.month-card-nav-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.month-counts-hero{align-items:baseline;gap:16px;display:flex}.count-item b{font-size:24px;font-weight:900;line-height:1}.count-item.ok b{color:#16a34a}.count-item.bad b{color:#dc2626}.month-right-actions{align-items:center;gap:8px;display:flex}.month-single-switch-btn{background:var(--surface-alt);border:1px solid var(--border-subtle);color:var(--text-secondary);cursor:pointer;border-radius:999px;align-items:center;gap:3px;padding:3px 8px;font-size:11px;font-weight:600;transition:all .15s;display:inline-flex}.month-single-switch-btn:hover{background:var(--surface);color:var(--text);border-color:var(--border)}.month-single-switch-btn:active{transform:scale(.96)}.month-single-switch-btn .subtle-current-text{color:var(--text-tertiary);font-size:9.5px;font-weight:500}.month-single-switch-btn .arrow-next{color:var(--accent-orange);margin-left:1px;font-size:11px;font-weight:800}.month-single-label{color:var(--text-tertiary);align-items:center;gap:3px;font-size:11px;font-weight:600;display:inline-flex}.count-item{align-items:baseline;gap:4px;font-size:14px;font-weight:700;display:inline-flex}.count-item.ok{color:#059669}.count-item.ok b{font-size:32px;font-weight:900;line-height:1}.count-item.bad{color:#e11d48}.count-item.bad b{font-size:32px;font-weight:900;line-height:1}.month-logs-list-wrap{flex-direction:column;gap:6px;display:flex}.month-logs-ul{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.month-log-empty{color:var(--text-tertiary);text-align:center;background:var(--surface-alt);border-radius:10px;padding:16px 8px;font-size:12.5px}.month-log-week{letter-spacing:.04em;color:var(--text-tertiary);opacity:.72;margin:2px 2px -2px;padding:0;font-size:10px;font-weight:600;list-style:none}.month-log-week:not(:first-child){margin-top:10px}.month-log-item{background:var(--surface-alt);cursor:pointer;border-radius:10px;align-items:center;gap:8px;padding:8px 10px;font-size:13px;transition:all .15s;display:flex}.month-log-item:active{background:var(--border);transform:scale(.99)}.log-mark-icon{flex-shrink:0;font-size:13px}.log-date-str{color:var(--text-tertiary);flex-shrink:0;font-size:11px;font-weight:700}.log-body-text{white-space:nowrap;text-overflow:ellipsis;min-width:0;color:var(--text);flex:1;font-weight:500;overflow:hidden}.month-review-box{background:var(--surface-alt);border-left:3px solid var(--accent-orange);color:var(--text-secondary);border-radius:0 8px 8px 0;margin-top:4px;padding:8px 10px;font-size:12px;line-height:1.45}.month-review-box b{color:var(--accent-orange-text)}.record-deepseek-section{flex-direction:column;gap:10px;margin-top:4px;display:flex}.ds-section-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;padding:0 2px;display:flex}.ds-head-title{align-items:center;gap:6px;min-width:0;display:flex}.ds-head-right{flex-shrink:0;align-items:center;gap:6px;margin-left:auto;display:flex}.ds-coach-switch{background:var(--surface-alt);border:1px solid var(--border);border-radius:999px;gap:2px;padding:2px;display:inline-flex}.ds-coach-chip{color:var(--text-tertiary);cursor:pointer;background:0 0;border:none;border-radius:999px;padding:3px 9px;font-size:11px;font-weight:800;transition:all .15s}.ds-coach-chip.is-on{color:#fff;background:#111827}.record-gemini-section .ds-coach-chip.is-on{background:var(--accent-orange);color:#fff}.ds-head-title .ds-icon{font-size:15px}.ds-head-title .ds-name{color:#111827;letter-spacing:-.01em;font-size:13.5px;font-weight:900}.ds-global-badge{color:#dc2626;background:#fee2e2;border:1px solid #fecaca;border-radius:999px;padding:1px 6px;font-size:9.5px;font-weight:900}.ds-time-tag{color:#7f1d1d;background:#fee2e2;border-radius:999px;padding:2px 8px;font-size:11px;font-weight:800}.ds-summon-card{background:#fff5f5;border:1.5px dashed #fecaca;border-radius:14px;flex-direction:column;gap:10px;padding:12px 14px;display:flex}.ds-summon-text{color:#7f1d1d;margin:0;font-size:12px;font-weight:700;line-height:1.45}.ds-summon-btn{color:#fff;cursor:pointer;white-space:nowrap;background:#111827;border:none;border-radius:8px;flex-shrink:0;padding:7px 14px;font-size:12px;font-weight:800;transition:all .15s}.ds-summon-btn:hover{background:#dc2626}.ds-summon-btn:active{transform:scale(.96)}.ds-dismiss-btn{border:1px solid var(--border);color:var(--text-tertiary);cursor:pointer;background:0 0;border-radius:8px;flex-shrink:0;padding:7px 10px;font-size:11px;transition:all .15s}.ds-dismiss-btn:hover{color:var(--text);background:var(--surface-alt)}.ds-status-input-block{background:var(--surface);border:1px solid var(--border);border-radius:14px;flex-direction:column;gap:6px;padding:10px 12px;display:flex}.ds-input-row{align-items:center;gap:8px;display:flex}.ds-status-input{border:1px solid var(--border);background:var(--surface-alt);min-width:0;color:var(--text);border-radius:8px;outline:none;flex:1;padding:7px 10px;font-size:12.5px;transition:border-color .15s}.ds-status-input:focus{border-color:var(--accent-orange);background:#fff}.ds-submit-btn{background:var(--text);color:var(--text-on-dark);cursor:pointer;border:none;border-radius:8px;flex-shrink:0;padding:7px 12px;font-size:12px;font-weight:800;transition:all .15s}.ds-submit-btn:hover{background:#000}.ds-submit-btn:active{transform:scale(.96)}.ds-submit-btn:disabled{opacity:.6}.ds-quick-tags{-webkit-overflow-scrolling:touch;align-items:center;gap:6px;padding-bottom:2px;display:flex;overflow-x:auto}.ds-quick-tags::-webkit-scrollbar{display:none}.ds-tags-label{color:var(--text-tertiary);flex-shrink:0;font-size:10.5px;font-weight:700}.ds-tag-chip{background:var(--surface-alt);border:1px solid var(--border-subtle);color:var(--text-secondary);cursor:pointer;border-radius:999px;flex-shrink:0;padding:2px 8px;font-size:11px;transition:all .15s}.ds-tag-chip:hover{border-color:var(--accent-orange);color:var(--accent-orange-text)}.ds-tag-chip:active{transform:scale(.95)}.ds-cards-carousel{scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;gap:10px;padding:2px 2px 8px;display:flex;overflow-x:auto}.ds-cards-carousel::-webkit-scrollbar{display:none}.ds-loading-box{color:#92400e;background:#fffbeb;border:1px dashed #fcd34d;border-radius:14px;justify-content:center;align-items:center;gap:8px;width:100%;padding:24px 12px;font-size:12px;font-weight:700;display:flex}.ds-action-card{scroll-snap-align:start;background:linear-gradient(145deg,#fff 0%,#fef2f2 100%);border:1.5px solid #fecaca;border-radius:14px;flex-direction:column;flex:0 0 86%;gap:8px;max-width:320px;padding:12px 14px;display:flex;position:relative;box-shadow:0 4px 14px #dc26260f}.ds-card-head{justify-content:space-between;align-items:center;display:flex}.ds-card-tag{color:#991b1b;letter-spacing:.02em;background:#fee2e2;border-radius:999px;padding:2px 8px;font-size:11px;font-weight:900}.ds-card-num{color:#dc2626;opacity:.8;font-size:11px;font-weight:900}.ds-card-text{color:#1f2937;margin:0;font-size:13px;font-weight:700;line-height:1.52}.ds-card-adopt-btn{color:#fff;cursor:pointer;background:#111827;border:1px solid #111827;border-radius:999px;align-self:flex-end;align-items:center;gap:4px;margin-top:2px;padding:4px 10px;font-size:11px;font-weight:800;transition:all .15s;display:inline-flex}.ds-card-adopt-btn:hover{background:#dc2626;border-color:#dc2626}.ds-card-adopt-btn:active{transform:scale(.95)}.ds-card-adopt-btn .arrow{font-size:11px}.record-gemini-section{margin-top:4px}.record-gemini-section .ds-global-badge{color:var(--accent-orange-text);background:var(--accent-orange-light);border-color:#fed7aa}.record-gemini-section .ds-time-tag{color:var(--accent-orange-text);background:var(--accent-orange-light)}.record-gemini-section .ds-summon-card{background:#fff7ed;border-color:#fed7aa}.record-gemini-section .ds-summon-text{color:var(--accent-orange-text)}.record-gemini-section .ds-summon-btn:hover{background:var(--accent-orange)}.record-gemini-section .ds-loading-box{color:var(--accent-orange-text);background:#fff7ed;border-color:#fdba74}.record-gemini-section .ds-action-card{background:linear-gradient(145deg,#fff 0%,#fff7ed 100%);border-color:#fed7aa;box-shadow:0 4px 14px #f9731614}.record-gemini-section .ds-card-tag{color:var(--accent-orange-text);background:var(--accent-orange-light)}.record-gemini-section .ds-card-num{color:var(--accent-orange)}.record-gemini-section .ds-card-adopt-btn:hover{background:var(--accent-orange);border-color:var(--accent-orange)}.gm-affirmation{background:linear-gradient(145deg,#fff7ed 0%,#ffedd5 100%);border:1.5px solid #fed7aa;border-radius:14px;padding:12px 14px}.gm-affirmation p{color:#9a3412;margin:0;font-size:13.5px;font-weight:700;line-height:1.6}.col-kr-pill{color:var(--accent-orange-text);background:var(--accent-orange-light);border-radius:999px;padding:1px 6px;font-size:10px;font-weight:800}.lb-col-kr-groups{flex-direction:column;flex:1;gap:12px;display:flex}.lb-kr-group-block{flex-direction:column;gap:4px;display:flex}.lb-kr-group-header{background:var(--surface-alt);cursor:pointer;border-radius:6px;align-items:center;gap:6px;padding:4px 6px;transition:background-color .15s;display:flex}.lb-kr-group-header:active{background:var(--border)}.group-kr-idx{color:var(--accent-orange-text);flex-shrink:0;font-size:10px;font-weight:900}.group-kr-title{color:var(--text);white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;font-size:11.5px;font-weight:700;overflow:hidden}.group-kr-count{color:var(--text-tertiary);flex-shrink:0;font-size:10.5px}.group-kr-count b{font-size:11px}.lb-group-empty{color:var(--text-tertiary);padding:4px 6px;font-size:11.5px;font-style:italic;list-style:none}.lb-kr-review-text{color:var(--text-secondary);margin:0 0 4px;padding:0 6px;font-size:11.5px;line-height:1.45}.review-kr-grades{flex-direction:column;gap:6px;margin:8px 0 0;padding:0;list-style:none;display:flex}.review-kr-grades li{color:var(--text-secondary);align-items:flex-start;gap:6px;font-size:12.5px;line-height:1.4;display:flex}.review-kr-grades li b{color:var(--accent-orange-text);font-weight:800}.record-momentum-badge{color:#047857;background:#ecfdf5;border:1px solid #a7f3d0;border-radius:8px;padding:6px 10px;font-size:12px;font-weight:600;display:inline-block}.clean-strip{margin-top:2px}.floating-quick-bar{bottom:calc(24px + env(safe-area-inset-bottom,0px));-webkit-backdrop-filter:blur(20px);z-index:80;background:#fffffff5;border:1.5px solid #0000001a;border-radius:999px;align-items:center;gap:10px;width:calc(100% - 24px);max-width:440px;padding:7px 10px;transition:box-shadow .2s,border-color .2s;display:flex;position:fixed;left:50%;transform:translate(-50%);box-shadow:0 12px 36px -4px #00000029,0 3px 10px #0000000f}.floating-quick-bar:focus-within{border-color:#00000038;box-shadow:0 14px 40px #0003,0 3px 10px #00000014}.quick-toggle-mark{border:1.5px solid var(--border);background:var(--surface);cursor:pointer;border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;width:42px;height:42px;font-size:20px;transition:transform .15s,background-color .15s,border-color .15s;display:flex}.quick-toggle-mark:active{transform:scale(.92)}.quick-toggle-mark.ok{background:#ecfdf5;border-color:#6ee7b7;box-shadow:0 2px 8px #10b9812e}.quick-toggle-mark.no{background:#fef2f2;border-color:#fca5a5;box-shadow:0 2px 8px #ef44442e}.quick-kr-selector-wrap{flex-shrink:0;position:relative}.quick-kr-pill-btn{color:#c2410c;cursor:pointer;background:#fff7ed;border:1.5px solid #fdba74;border-radius:999px;align-items:center;gap:4px;height:38px;padding:6px 11px;font-size:12.5px;font-weight:800;transition:all .15s;display:inline-flex}.quick-kr-pill-btn:active{background:#ffedd5;transform:scale(.96)}.quick-kr-pill-btn .pill-arrow{color:#ea580c;font-size:10px}.quick-kr-popup-menu{background:var(--surface);border:1px solid var(--border);z-index:120;border-radius:16px;flex-direction:column;gap:4px;width:270px;padding:8px;display:flex;position:absolute;bottom:calc(100% + 12px);left:0;box-shadow:0 12px 36px #0000002e}.popup-menu-title{color:var(--text-tertiary);border-bottom:1px solid var(--border);margin-bottom:2px;padding:4px 6px 6px;font-size:11.5px;font-weight:700}.popup-menu-item{cursor:pointer;text-align:left;background:0 0;border:none;border-radius:10px;align-items:baseline;gap:8px;padding:9px 8px;transition:background-color .15s;display:flex}.popup-menu-item:active,.popup-menu-item.active{background:#fffbeb}.item-kr-idx{color:var(--accent-orange-text);flex-shrink:0;font-size:12px;font-weight:900}.item-kr-title{color:var(--text);font-size:13px;font-weight:600;line-height:1.35}.quick-input-box{flex:1;align-items:center;min-width:0;display:flex}.quick-text-field{width:100%;min-width:0;color:var(--text);background:0 0;border:none;outline:none;padding:6px 4px;font-size:15px}.quick-text-field::placeholder{color:var(--text-tertiary);font-size:13.5px}.quick-send-btn{background:var(--action);color:#fff;cursor:pointer;letter-spacing:.5px;border:none;border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;height:42px;padding:0 18px;font-size:14.5px;font-weight:800;transition:all .15s;display:flex;box-shadow:0 4px 14px #00000038}.quick-send-btn:active{background:var(--action-hover);transform:scale(.95);box-shadow:0 2px 6px #00000026}.quick-send-btn:disabled{opacity:.35;cursor:not-allowed;box-shadow:none}.image-lightbox{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:1000;background:#000000e0;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.lightbox-content{max-width:95vw;max-height:85vh;position:relative}.lightbox-content img{border-radius:12px;max-width:100%;max-height:80vh;display:block;box-shadow:0 8px 32px #0006}.lightbox-close{color:#fff;cursor:pointer;background:#fff3;border:none;border-radius:999px;justify-content:center;align-items:center;width:32px;height:32px;font-size:16px;display:flex;position:absolute;top:-40px;right:0}@media (width<=400px){.grade-picker.five{grid-template-columns:repeat(5,1fr)}.grade-picker.five .grade-pick strong{font-size:14px}.lb-col{flex-basis:84%}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
