:root{
  --bg:#0d0d12;--s1:#16161f;--s2:#1e1e2a;--s3:#252534;
  --border:rgba(255,255,255,0.07);--border2:rgba(255,255,255,0.13);
  --text:#eeeae0;--muted:rgba(238,234,224,0.45);--dim:rgba(238,234,224,0.25);
  --moon:#8b7fe8;--moon2:rgba(139,127,232,0.15);--moon3:rgba(139,127,232,0.3);
  --sun:#e8ac52;--sun2:rgba(232,172,82,0.13);--sun3:rgba(232,172,82,0.3);
  --rose:#e07878;--rose2:rgba(224,120,120,0.12);--rose3:rgba(224,120,120,0.3);
  --green:#5cb88a;--green2:rgba(92,184,138,0.12);--green3:rgba(92,184,138,0.3);
  --r:14px;--r2:20px;
  --mono:"JetBrains Mono",monospace;--serif:"Noto Serif SC",serif;
}
[data-theme="light"]{
  --bg:#f2f0eb;--s1:#e8e6de;--s2:#dddbd3;--s3:#d2d0c8;
  --border:rgba(0,0,0,0.10);--border2:rgba(0,0,0,0.18);
  --text:#0f0f18;--muted:rgba(15,15,24,0.62);--dim:rgba(15,15,24,0.42);
  --moon:#4a3ec0;--moon2:rgba(74,62,192,0.13);--moon3:rgba(74,62,192,0.28);
  --sun:#8c5e00;--sun2:rgba(140,94,0,0.12);--sun3:rgba(140,94,0,0.30);
  --rose:#b03030;--rose2:rgba(176,48,48,0.12);--rose3:rgba(176,48,48,0.30);
  --green:#1e7a4e;--green2:rgba(30,122,78,0.12);--green3:rgba(30,122,78,0.30);
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent;}
html{height:100%;overflow-y:auto;background:var(--bg);overscroll-behavior:none;}
body{min-height:100%;color:var(--text);font-family:var(--mono);background:var(--bg);max-width:480px;margin:0 auto;position:relative;box-shadow:0 0 60px rgba(0,0,0,0.8);}
[data-theme="light"] body{box-shadow:0 0 40px rgba(0,0,0,0.15);}
[data-theme="light"] input[type=time],[data-theme="light"] input[type=date],[data-theme="light"] input[type=number]{color-scheme:light;}
[data-theme="light"] select{color-scheme:light;}
[data-theme="light"] .sinput{color-scheme:light;}
[data-theme="light"] .modal-field-input{color-scheme:light;}
input[type=time],input[type=date],input[type=number]{
  background:var(--s2);border:1px solid var(--border2);border-radius:8px;
  color:var(--text) !important;font-family:var(--mono);font-size:14px;
  padding:6px 10px;color-scheme:dark;-webkit-text-fill-color:var(--text) !important;
}
input[type=text]:not(.list-input){
  background:var(--s2);border:1px solid var(--border2);border-radius:8px;
  color:var(--text) !important;font-family:var(--mono);font-size:14px;
  padding:6px 10px;color-scheme:dark;-webkit-text-fill-color:var(--text) !important;
}
input:not(.list-input):focus{outline:none;border-color:var(--moon);}
select{background:var(--s2);border:1px solid var(--border2);border-radius:8px;color:var(--text);font-family:var(--mono);font-size:14px;padding:6px 10px;color-scheme:dark;}

/* HEADER */
.app-header{position:sticky;top:0;z-index:10;background:var(--bg);border-bottom:1px solid var(--border);padding:13px 1rem 12px;display:flex;align-items:center;justify-content:space-between;}
.app-header-title{font-family:var(--serif);font-size:16px;color:var(--text);letter-spacing:.03em;}
.app-header-why{font-size:11px;color:var(--dim);background:none;border:none;cursor:pointer;padding:0;white-space:nowrap;}

/* NAV — bottom tab bar */
.nav{display:flex;border-top:1px solid var(--border);border-bottom:none;background:var(--bg);position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:100%;max-width:480px;z-index:10;padding-bottom:env(safe-area-inset-bottom);}
.nav-btn{flex:1;padding:12px 0 14px;font-family:var(--serif);font-size:14px;color:var(--muted);background:none;border:none;cursor:pointer;border-top:2px solid transparent;transition:color .2s,border-color .2s;}
.nav-btn.active{color:var(--text);border-top-color:var(--moon);}
.page{display:none;padding:0 1rem 5.5rem;}
.page.active{display:block;}

/* GREETING */
.greeting-card{margin:1.25rem 0 1rem;background:var(--s1);border:1px solid var(--border);border-radius:var(--r2);padding:1.1rem 1.25rem;}
.greeting-time{font-size:11px;letter-spacing:.08em;color:var(--dim);text-transform:uppercase;margin-bottom:6px;}
.greeting-text{font-family:var(--serif);font-size:16px;line-height:1.7;color:var(--text);}
.greeting-plan{margin-top:10px;padding-top:10px;border-top:1px solid var(--border);font-size:12px;color:var(--muted);line-height:1.8;}
.greeting-plan strong{color:var(--text);font-weight:500;}
.greeting-checklist{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px;}
.greeting-check-item{display:inline-flex;align-items:center;gap:5px;font-size:12px;padding:4px 10px 4px 6px;border-radius:99px;background:var(--s2);border:1px solid var(--border2);color:var(--muted);transition:all .2s;cursor:pointer;white-space:nowrap;}
.gci-box{width:14px;height:14px;border-radius:3px;border:1.5px solid var(--border2);background:var(--s3);display:inline-flex;align-items:center;justify-content:center;font-size:9px;flex-shrink:0;transition:all .2s;}
.gci-done{background:var(--moon2);border-color:var(--moon3);color:var(--moon);}
.gci-done .gci-box{background:var(--moon);border-color:var(--moon);color:white;}
.hl{color:var(--moon);}.hl-sun{color:var(--sun);}.hl-rose{color:var(--rose);}.hl-green{color:var(--green);}

/* LT PROGRESS */
.lt-card{background:var(--s1);border:1px solid var(--border);border-radius:var(--r);padding:.8rem 1rem;margin-bottom:.75rem;}
.lt-row{display:flex;align-items:center;gap:10px;margin-bottom:6px;}
.lt-label{font-size:11px;color:var(--dim);flex-shrink:0;}
.lt-time-now{font-size:14px;font-weight:500;color:var(--moon);font-family:var(--mono);}
.lt-sep{font-size:11px;color:var(--dim);}
.lt-time-goal{font-size:13px;color:var(--muted);}
.lt-mode-badge{font-size:10px;padding:2px 8px;border-radius:99px;background:var(--green2);color:var(--green);border:1px solid var(--green3);margin-left:auto;}
.lt-progress-track{height:4px;background:var(--s3);border-radius:99px;overflow:hidden;margin-bottom:5px;}
.lt-progress-fill{height:100%;background:linear-gradient(90deg,var(--moon),var(--green));border-radius:99px;transition:width .6s;}
.lt-meta{font-size:11px;color:var(--muted);line-height:1.6;}
.lt-meta .accent{color:var(--sun);}

/* TIMELINE */
.htl{display:flex;align-items:flex-start;margin:.5rem 0 .75rem;}
.htl-item{flex:1;display:flex;flex-direction:column;align-items:center;position:relative;}
.htl-item:not(:last-child)::after{content:"";position:absolute;top:5px;left:50%;width:100%;height:2px;background:var(--border);z-index:0;}
.htl-item:not(:last-child).line-done::after{background:var(--moon);}
.htl-dot{width:12px;height:12px;border-radius:50%;background:var(--s3);border:2px solid var(--border2);position:relative;z-index:1;transition:background .3s,border-color .3s,box-shadow .3s;}
.htl-dot.done{background:var(--moon);border-color:var(--moon);}
.htl-dot.active{background:var(--sun);border-color:var(--sun);box-shadow:0 0 0 4px rgba(232,172,82,.2);}
.htl-dot.alarm{background:var(--rose);border-color:var(--rose);box-shadow:0 0 0 4px rgba(224,120,120,.2);}
.htl-body{margin-top:7px;text-align:center;padding:0 2px;}
.htl-time{font-size:12px;font-weight:500;color:var(--muted);}
.htl-time.done{color:var(--moon);}.htl-time.active{color:var(--sun);}.htl-time.alarm{color:var(--rose);}
.htl-name{font-size:10px;color:var(--dim);margin-top:2px;}
.htl-actual{font-size:10px;color:var(--green);margin-top:2px;}

/* CHECKLIST */
.checklist-wrap{background:var(--s1);border:1px solid var(--border);border-radius:var(--r);padding:.8rem 1rem;margin-bottom:.75rem;}
.checklist-header{font-size:12px;letter-spacing:.05em;color:var(--muted);font-weight:500;margin-bottom:10px;}
.checklist-items{display:flex;flex-direction:column;gap:8px;}
.checklist-item{display:flex;align-items:center;gap:10px;cursor:pointer;}
.check-box{width:20px;height:20px;border-radius:6px;border:1.5px solid var(--border2);background:var(--s2);flex-shrink:0;display:flex;align-items:center;justify-content:center;transition:background .2s,border-color .2s;}
.check-box.checked{background:var(--moon2);border-color:var(--moon3);}
.check-box.checked::after{content:"✓";font-size:11px;color:var(--moon);}
.check-label{font-size:14px;color:var(--text);transition:color .2s;}
.check-label.checked{color:var(--muted);text-decoration:line-through;}
.checklist-done-msg{font-family:var(--serif);font-size:14px;color:var(--moon);margin-top:10px;display:none;}

/* MAIN BUTTONS */
.btn-group{display:flex;flex-direction:column;gap:10px;margin-bottom:1rem;}
.main-btn{position:relative;width:100%;padding:1.1rem 3.6rem;background:var(--s1);border:1px solid var(--border2);border-radius:var(--r2);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:transform .12s,background .2s;text-align:center;}
.main-btn:active{transform:scale(.97);}
.main-btn.disabled{/* 视觉保持正常，点击由 doStamp 内的提示拦截 */}
.main-btn.done-moon{background:var(--moon2);border-color:var(--moon3);}
.main-btn.done-sun{background:var(--sun2);border-color:var(--sun3);}
.main-btn.done-green{background:var(--green2);border-color:var(--green3);}
.btn-icon{font-size:24px;flex-shrink:0;position:absolute;left:1.25rem;top:50%;transform:translateY(-50%);}
.btn-body{min-width:0;}
.btn-label{font-family:var(--serif);font-size:17px;color:var(--text);}
.btn-sub{font-size:11px;color:var(--muted);margin-top:3px;}
.btn-stamp{font-size:15px;font-weight:500;flex-shrink:0;font-family:var(--mono);position:absolute;right:1.25rem;top:50%;transform:translateY(-50%);}
.edit-row{display:flex;align-items:center;gap:8px;margin-top:8px;flex-wrap:wrap;}
.edit-save{font-size:12px;color:var(--moon);background:none;border:none;cursor:pointer;padding:4px 8px;border-radius:6px;}
.edit-cancel{font-size:12px;color:var(--muted);background:none;border:none;cursor:pointer;padding:4px 8px;}
.edit-toggle{font-size:11px;color:var(--dim);background:none;border:none;cursor:pointer;padding:2px 0;text-decoration:underline;text-underline-offset:3px;margin-top:4px;display:block;}
.notif-req{background:rgba(232,172,82,0.1);border:1px solid rgba(232,172,82,0.22);border-radius:var(--r);padding:.8rem 1rem;margin-bottom:1rem;font-size:13px;color:var(--sun);display:none;cursor:pointer;}
.prep-start-btn{font-size:11px;color:var(--moon);background:var(--moon2);border:1px solid var(--moon3);border-radius:99px;padding:4px 14px;cursor:pointer;white-space:nowrap;font-family:var(--mono);}
.prep-cancel-btn{font-size:10px;color:var(--muted);background:none;border:1px solid var(--border2);border-radius:99px;padding:2px 10px;cursor:pointer;white-space:nowrap;font-family:var(--mono);}

/* ALARM */
.alarm-overlay{display:none;position:fixed;top:0;bottom:0;left:50%;transform:translateX(-50%);width:100%;max-width:480px;background:rgba(13,13,18,.92);z-index:100;align-items:center;justify-content:center;padding:2rem;}
.alarm-overlay.show{display:flex;}
.alarm-card{background:var(--s1);border:1px solid var(--rose3);border-radius:var(--r2);padding:2rem 1.5rem;text-align:center;max-width:320px;width:100%;animation:alarmPulse 1.2s ease-in-out infinite;}
@keyframes alarmPulse{0%,100%{box-shadow:0 0 0 0 transparent}50%{box-shadow:0 0 0 16px rgba(224,120,120,.12)}}
.alarm-emoji{font-size:48px;margin-bottom:1rem;}
.alarm-title{font-family:var(--serif);font-size:20px;margin-bottom:.5rem;color:var(--rose);}
.alarm-body{font-size:14px;color:var(--muted);line-height:1.6;margin-bottom:1.5rem;}
.alarm-dismiss{width:100%;padding:.9rem;background:var(--s2);border:1px solid var(--border2);border-radius:var(--r);color:var(--text);font-family:var(--serif);font-size:16px;cursor:pointer;}

/* TOAST */
.toast{position:fixed;bottom:2rem;left:50%;transform:translateX(-50%) translateY(20px);max-width:360px;background:var(--s2);border:1px solid var(--border2);border-radius:var(--r);padding:.7rem 1.2rem;font-size:13px;color:var(--text);opacity:0;transition:opacity .3s,transform .3s;pointer-events:none;white-space:nowrap;z-index:200;}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0);}

/* MODAL */
.modal-overlay{display:none;position:fixed;top:0;bottom:0;left:50%;transform:translateX(-50%);width:100%;max-width:480px;background:rgba(13,13,18,.92);z-index:50;align-items:flex-end;justify-content:center;}
.modal-overlay.show{display:flex;}
.modal-card{background:var(--s1);border:1px solid var(--border2);border-radius:var(--r2) var(--r2) 0 0;padding:1.5rem 1.25rem 2.5rem;width:100%;max-width:480px;animation:slideUp .25s ease;max-height:88vh;overflow-y:auto;}
@keyframes slideUp{from{transform:translateY(40px);opacity:0}to{transform:translateY(0);opacity:1}}
.modal-title{font-family:var(--serif);font-size:17px;margin-bottom:4px;}
.modal-sub{font-size:12px;color:var(--muted);margin-bottom:1.25rem;line-height:1.6;}
.modal-fields{display:flex;flex-direction:column;gap:12px;margin-bottom:1.25rem;}
.modal-field{display:flex;align-items:center;justify-content:space-between;}
.modal-field-label{font-size:14px;color:var(--text);}
.modal-field-right{display:flex;align-items:center;gap:4px;}
.modal-field-input{background:var(--s2);border:1px solid var(--border2);border-radius:8px;color:var(--text) !important;font-family:var(--mono);font-size:14px;padding:7px 12px;width:130px;text-align:center;-webkit-text-fill-color:var(--text) !important;color-scheme:dark;}
.modal-field-input:focus{outline:none;border-color:var(--moon);}
.modal-clear{font-size:11px;color:var(--rose);background:none;border:none;cursor:pointer;padding:0 2px;}
.modal-btns{display:flex;gap:10px;}
.modal-save{flex:1;padding:.85rem;background:var(--moon2);border:1px solid var(--moon3);border-radius:var(--r);color:var(--moon);font-family:var(--serif);font-size:15px;cursor:pointer;}
.modal-cancel{padding:.85rem 1.25rem;background:var(--s2);border:1px solid var(--border);border-radius:var(--r);color:var(--muted);font-family:var(--serif);font-size:15px;cursor:pointer;}
.radio-option{display:flex;align-items:flex-start;gap:12px;padding:1rem;background:var(--s2);border:1px solid var(--border2);border-radius:var(--r);cursor:pointer;margin-bottom:8px;transition:border-color .2s;}
.radio-option.selected{border-color:var(--moon3);background:var(--moon2);}
.radio-dot{width:18px;height:18px;border-radius:50%;border:2px solid var(--border2);flex-shrink:0;margin-top:2px;transition:border-color .2s,background .2s;}
.radio-option.selected .radio-dot{border-color:var(--moon);background:var(--moon);}
.radio-text{font-family:var(--serif);font-size:14px;color:var(--text);line-height:1.5;}
.radio-sub{font-size:11px;color:var(--muted);margin-top:3px;}

/* ONSET MODAL */
.onset-options{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:1rem;}
.onset-opt{padding:8px 16px;border-radius:99px;border:1px solid var(--border2);background:var(--s2);font-size:13px;color:var(--muted);cursor:pointer;transition:all .2s;}
.onset-opt.selected{background:var(--moon2);border-color:var(--moon3);color:var(--moon);}
.onset-custom{display:none;margin-bottom:1rem;gap:10px;align-items:center;flex-wrap:wrap;}
.onset-custom.show{display:flex;}

/* REASON tags */
.reason-tags-row{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:1.25rem;}
.reason-tag{padding:7px 14px;border-radius:99px;border:1px solid var(--border2);background:var(--s2);font-size:13px;color:var(--muted);cursor:pointer;transition:all .2s;}
.reason-tag.selected{background:var(--rose2);border-color:var(--rose3);color:var(--rose);}

/* ONBOARDING */
.onboard-overlay{display:none;position:fixed;top:0;bottom:0;left:50%;transform:translateX(-50%);width:100%;max-width:480px;background:var(--bg);z-index:200;flex-direction:column;}
.onboard-overlay.show{display:flex;}
.onboard-slides{flex:1;overflow:hidden;position:relative;}
.onboard-slide{position:absolute;inset:0;padding:3rem 2rem 1rem;display:flex;flex-direction:column;justify-content:center;opacity:0;transition:opacity .4s,transform .4s;transform:translateX(30px);}
.onboard-slide.active{opacity:1;transform:translateX(0);}
.onboard-slide.prev{opacity:0;transform:translateX(-30px);}
.onboard-emoji{font-size:52px;margin-bottom:1.5rem;}
.onboard-title{font-family:var(--serif);font-size:24px;margin-bottom:1rem;color:var(--text);line-height:1.4;}
.onboard-body{font-size:15px;color:var(--muted);line-height:1.8;}
.onboard-body .hl{color:var(--moon);}
.onboard-nav{padding:1.5rem;display:flex;align-items:center;justify-content:space-between;}
.onboard-dots{display:flex;gap:6px;}
.onboard-dot{width:6px;height:6px;border-radius:50%;background:var(--s3);transition:background .3s,width .3s;}
.onboard-dot.active{background:var(--moon);width:18px;border-radius:3px;}
.onboard-next{padding:.9rem 2rem;background:var(--moon2);border:1px solid var(--moon3);border-radius:var(--r);color:var(--moon);font-family:var(--serif);font-size:16px;cursor:pointer;}
.onboard-left-btn{font-size:13px;color:var(--dim);background:none;border:none;cursor:pointer;min-width:48px;text-align:left;}

/* HISTORY */
.hist-header{padding:1rem 0 .75rem;display:flex;justify-content:space-between;align-items:center;}
.hist-title{font-family:var(--serif);font-size:16px;font-weight:400;}
.fab-add{position:fixed;bottom:72px;right:1.25rem;z-index:9;width:48px;height:48px;border-radius:50%;background:var(--moon);border:none;color:white;font-size:24px;cursor:pointer;box-shadow:0 4px 16px rgba(139,127,232,0.45);display:none;align-items:center;justify-content:center;transition:transform .12s;}
.fab-add.show{display:flex;}
.fab-add:active{transform:scale(.92);}
.add-record-btn{padding:7px 14px;background:var(--moon2);border:1px solid var(--moon3);border-radius:99px;color:var(--moon);font-size:13px;cursor:pointer;}
.encourage{background:var(--moon2);border:1px solid var(--moon3);border-radius:var(--r);padding:.85rem 1rem;margin-bottom:1rem;font-family:var(--serif);font-size:14px;color:var(--moon);line-height:1.6;display:none;}
.trend-cards{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:1rem;}
.metric-card{background:var(--s1);border:1px solid var(--border);border-radius:var(--r);padding:.9rem 1rem;}
.metric-label{font-size:11px;letter-spacing:.05em;color:var(--muted);margin-bottom:6px;font-weight:500;}
.metric-val{font-size:20px;font-weight:500;color:var(--text);}
.metric-sub{font-size:11px;color:var(--dim);margin-top:3px;}
.metric-val.good{color:var(--green);}.metric-val.bad{color:var(--rose);}
.compare-wrap{background:var(--s1);border:1px solid var(--border);border-radius:var(--r);padding:.9rem 1rem;margin-bottom:1rem;}
.compare-label{font-size:12px;color:var(--muted);font-weight:500;margin-bottom:10px;}
.compare-chips{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:10px;}
.compare-chip{padding:5px 12px;border-radius:99px;border:1px solid var(--border2);background:var(--s2);font-size:12px;color:var(--muted);cursor:pointer;transition:all .2s;}
.compare-chip.sel{background:var(--moon2);border-color:var(--moon3);color:var(--moon);}
.compare-result{font-family:var(--serif);font-size:14px;color:var(--text);line-height:1.6;}
.compare-result .good{color:var(--green);}.compare-result .bad{color:var(--rose);}
.chart-section{margin-bottom:1rem;}
.chart-section-label{font-size:12px;color:var(--muted);font-weight:500;margin-bottom:8px;}
.chart-wrap{background:var(--s1);border:1px solid var(--border);border-radius:var(--r);padding:1rem;overflow:hidden;}
.dev-chart svg{width:100%;display:block;}
.bar-chart{display:flex;align-items:flex-end;gap:6px;height:80px;position:relative;}
.bar-col{flex:1;display:flex;flex-direction:column;align-items:center;gap:4px;height:100%;}
.bar-inner{width:100%;display:flex;flex-direction:column;justify-content:flex-end;flex:1;}
.bar-fill{width:100%;border-radius:4px 4px 0 0;background:var(--moon2);border:1px solid var(--moon3);min-height:2px;transition:height .4s;}
.bar-fill.good{background:var(--green2);border-color:var(--green3);}
.bar-fill.bad{background:var(--rose2);border-color:var(--rose3);}
.bar-val{font-size:11px;color:var(--muted);white-space:nowrap;}
.bar-date{font-size:11px;color:var(--dim);white-space:nowrap;}
.reason-stats{background:var(--s1);border:1px solid var(--border);border-radius:var(--r);padding:.9rem 1rem;margin-bottom:1rem;}
.reason-stats-label{font-size:12px;color:var(--muted);font-weight:500;margin-bottom:10px;}
.reason-bar-row{display:flex;align-items:center;gap:8px;margin-bottom:6px;}
.reason-bar-name{font-size:12px;color:var(--muted);width:64px;flex-shrink:0;}
.reason-bar-track{flex:1;height:6px;background:var(--s3);border-radius:99px;overflow:hidden;}
.reason-bar-fill{height:100%;background:var(--rose2);border-radius:99px;transition:width .4px;}
.reason-bar-count{font-size:11px;color:var(--dim);width:24px;text-align:right;}
.hist-meta{font-size:12px;color:var(--muted);margin-bottom:1rem;}
.hist-record{background:var(--s1);border:1px solid var(--border);border-radius:var(--r);padding:.9rem 1rem;margin-bottom:8px;}
.hist-record-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;}
.hist-record-top-left{display:flex;align-items:center;gap:5px;flex:1;min-width:0;flex-wrap:wrap;}
.hist-date{font-size:13px;color:var(--muted);flex-shrink:0;}
.hist-badge{font-size:10px;padding:2px 7px;border-radius:99px;white-space:nowrap;flex-shrink:0;}
.badge-good{background:var(--green2);color:var(--green);border:1px solid var(--green3);}
.badge-bad{background:var(--rose2);color:var(--rose);border:1px solid var(--rose3);}
.badge-neu{background:var(--s2);color:var(--muted);border:1px solid var(--border2);}
.hist-record-actions{display:flex;gap:6px;flex-shrink:0;}
.hist-edit-btn,.hist-del-btn,.hist-reset-btn{font-size:11px;color:var(--dim);background:none;border:1px solid var(--border);border-radius:6px;padding:3px 8px;cursor:pointer;white-space:nowrap;}
.hist-edit-btn,.hist-reset-btn{color:var(--muted);border-color:var(--border2);}
.rec-top{display:flex;align-items:center;padding:10px 0 8px;border-bottom:1px solid var(--border);}
.rec-top-item{flex:1;text-align:center;}
.rec-top-val{font-size:17px;font-weight:500;font-family:var(--mono);margin-bottom:3px;}
.rec-top-val.moon{color:var(--moon);}.rec-top-val.sun{color:var(--sun);}.rec-top-val.green{color:var(--green);}
.rec-top-arrow{font-size:11px;color:var(--dim);flex-shrink:0;padding:0 2px;}
.rec-top-label{font-size:10px;color:var(--muted);}
.rec-bot{display:flex;align-items:flex-start;padding:8px 0 2px;}
.rec-bot-item{flex:1;text-align:center;}
.rec-bot-val{font-size:13px;font-weight:500;color:var(--text);margin-bottom:2px;}
.rec-bot-label{font-size:10px;color:var(--muted);}
.rec-bot-sep{font-size:11px;color:var(--border2);flex-shrink:0;padding-top:3px;}
.hist-reason{font-size:12px;color:var(--rose);}
.hist-bottom-row{display:flex;align-items:center;justify-content:space-between;margin-top:8px;padding-top:6px;border-top:1px solid var(--border);gap:8px;min-height:22px;font-size:12px;}
.reason-edit-btn{font-size:11px;color:var(--muted);background:none;border:1px solid var(--border2);border-radius:99px;padding:2px 8px;cursor:pointer;white-space:nowrap;vertical-align:middle;}
.rec-badge{font-size:12px;color:var(--muted);cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.reset-target-btn{font-size:11px;color:var(--muted);background:none;border:none;cursor:pointer;text-decoration:underline;text-underline-offset:3px;white-space:nowrap;}
.empty-state{text-align:center;padding:3rem 1rem;font-size:14px;color:var(--dim);line-height:2;}

/* SETTINGS */
.settings-header{padding:1.5rem 0 1rem;}
.settings-title{font-family:var(--serif);font-size:20px;}
.settings-section-card{background:var(--s1);border:1px solid var(--border);border-radius:var(--r2);padding:1.1rem 1.1rem .8rem;margin-bottom:1rem;overflow:hidden;}
.settings-section-title{font-size:13px;font-weight:500;color:var(--text);letter-spacing:.02em;margin-bottom:.85rem;display:flex;align-items:center;gap:8px;cursor:pointer;user-select:none;}
.settings-section-arrow{margin-left:auto;color:var(--dim);font-size:12px;transition:transform .2s;}
.settings-section-card.collapsed .settings-section-arrow{transform:rotate(-90deg);}
.settings-section-card.collapsed .settings-section-body{display:none;}
.settings-section-card.collapsed .settings-section-title{margin-bottom:0;}
.settings-section-card.collapsed{padding-bottom:1.1rem;}
.settings-section-title .ico{font-size:15px;}
.settings-row{display:flex;align-items:center;justify-content:space-between;gap:8px 12px;padding:.7rem 0;border-bottom:1px solid var(--border);flex-wrap:wrap;}
.settings-row:last-child{border-bottom:none;padding-bottom:0;}
.settings-row>div:first-child{min-width:0;flex:1 1 120px;}
.settings-row-nowrap{flex-wrap:nowrap;}
.settings-row-text{min-width:0;flex:1 1 0;}
.settings-row-label{font-size:14px;color:var(--text);}
.settings-row-sub{font-size:11px;color:var(--dim);margin-top:2px;line-height:1.4;}
.settings-save-btn{width:100%;padding:.85rem;background:var(--moon2);border:1px solid var(--moon3);border-radius:var(--r);color:var(--moon);font-family:var(--serif);font-size:14px;cursor:pointer;margin-top:.75rem;}
.settings-save-btn:active{transform:scale(.98);}
.sinput{background:var(--s2);border:1px solid var(--border2);border-radius:8px;color:var(--text) !important;font-family:var(--mono);font-size:14px;padding:6px 8px;text-align:center;color-scheme:dark;-webkit-text-fill-color:var(--text) !important;}
.sinput:focus{outline:none;border-color:var(--moon);}
.sinput.w90{width:115px;}.sinput.w70{width:70px;}
.target-row{display:flex;align-items:center;gap:8px;margin-left:auto;flex-shrink:0;}
.target-update-btn{padding:6px 12px;background:var(--moon2);border:1px solid var(--moon3);border-radius:8px;color:var(--moon);font-size:12px;cursor:pointer;white-space:nowrap;}
.toggle{position:relative;width:44px;height:26px;flex-shrink:0;}
.toggle input{opacity:0;width:0;height:0;}
.toggle-slider{position:absolute;inset:0;background:var(--s3);border-radius:99px;cursor:pointer;transition:background .25s;}
.toggle-slider::before{content:"";position:absolute;width:18px;height:18px;left:4px;top:4px;background:var(--muted);border-radius:50%;transition:transform .25s,background .25s;}
.toggle input:checked+.toggle-slider{background:var(--moon);}
.toggle input:checked+.toggle-slider::before{transform:translateX(18px);background:white;}
.chips{display:flex;gap:6px;flex-wrap:wrap;}
.chip{padding:5px 12px;border-radius:99px;border:1px solid var(--border2);background:var(--s2);font-size:12px;color:var(--muted);cursor:pointer;transition:all .2s;}
.chip.sel{background:var(--moon2);border-color:var(--moon3);color:var(--moon);}
.list-items{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px;}
.list-item{display:inline-flex;align-items:center;gap:0px;background:var(--s2);border:1px solid var(--border2);border-radius:99px;padding:5px 6px 5px 7px;cursor:grab;transition:opacity .2s,box-shadow .2s;max-width:100%;}
.list-item.dragging{opacity:.4;cursor:grabbing;}
.list-item.drag-over{box-shadow:0 0 0 2px var(--moon);}
.list-input{background:transparent;border:none !important;box-shadow:none !important;color:var(--text) !important;font-family:var(--mono);font-size:13px;padding:0;width:auto;min-width:20px;max-width:160px;-webkit-text-fill-color:var(--text) !important;}
.list-input:focus{outline:none !important;border:none !important;}
.del-btn{font-size:14px;color:var(--rose);background:none;border:none;cursor:pointer;padding:4px 8px;}
.add-item-btn{font-size:12px;color:var(--moon);background:none;border:1px dashed var(--moon3);border-radius:8px;padding:7px 14px;cursor:pointer;width:100%;}
.about-link{font-size:12px;color:var(--dim);background:none;border:none;cursor:pointer;text-decoration:underline;text-underline-offset:3px;display:block;text-align:center;}
.login-hint{background:var(--moon2,rgba(124,108,224,0.1));border:1px solid var(--moon3,rgba(124,108,224,0.22));border-radius:var(--r);padding:.8rem 1rem;margin-bottom:1rem;font-size:13px;color:var(--moon);display:none;cursor:pointer;align-items:center;gap:8px;}
/* CELEBRATE — 夜空主题，不随浅色/深色主题变化 */
.celebrate-overlay{position:fixed;inset:0;background:radial-gradient(ellipse 120% 90% at 50% 18%,#232352 0%,#15152f 45%,#0a0a1a 100%);z-index:120;display:none;align-items:center;justify-content:center;text-align:center;cursor:pointer;overflow:hidden;}
.celebrate-overlay.show{display:flex;animation:celebFade .6s ease-out;}
@keyframes celebFade{from{opacity:0}to{opacity:1}}
.celebrate-stars{position:absolute;inset:0;pointer-events:none;}
.celebrate-star{position:absolute;background:#fff;border-radius:50%;animation:twinkle var(--tw,2.4s) var(--td,0s) infinite ease-in-out;}
@keyframes twinkle{0%,100%{opacity:.12;transform:scale(.8)}50%{opacity:.95;transform:scale(1.15)}}
.celebrate-inner{padding:2rem;position:relative;z-index:1;}
.celebrate-moonwrap{position:relative;display:inline-block;}
.celebrate-moonwrap::before{content:"";position:absolute;inset:-46px;border-radius:50%;background:radial-gradient(circle,rgba(255,219,128,.28) 0%,rgba(255,219,128,.08) 45%,transparent 70%);animation:haloBreath 3.2s 1s infinite ease-in-out;}
@keyframes haloBreath{0%,100%{opacity:.7;transform:scale(1)}50%{opacity:1;transform:scale(1.12)}}
.celebrate-moon{font-size:76px;position:relative;filter:drop-shadow(0 0 22px rgba(255,219,128,.5));animation:moonRise 1.2s cubic-bezier(.22,1,.36,1);}
@keyframes moonRise{from{transform:translateY(60px) scale(.65) rotate(-14deg);opacity:0}60%{transform:translateY(-8px) scale(1.06) rotate(2deg);opacity:1}to{transform:translateY(0) scale(1) rotate(0)}}
.celebrate-title{font-family:var(--serif);font-size:23px;color:#f2edde;margin-top:1.6rem;letter-spacing:.06em;animation:celebUp .8s .35s ease-out both;}
.celebrate-sub{font-size:14px;color:#b3a6f5;margin-top:.7rem;font-family:var(--mono);animation:celebUp .8s .6s ease-out both;}
.celebrate-extra{font-size:12px;color:rgba(242,237,222,.55);margin-top:.55rem;font-family:var(--serif);animation:celebUp .8s .85s ease-out both;}
.celebrate-hint{font-size:11px;color:rgba(242,237,222,.3);margin-top:2.6rem;animation:celebUp .8s 1.6s ease-out both;}
@keyframes celebUp{from{transform:translateY(14px);opacity:0}to{transform:translateY(0);opacity:1}}
/* REASON ADD (modal inline) */
.reason-add-row{display:flex;gap:8px;margin:2px 0 14px;}
.reason-add-input{flex:1;min-width:0;background:var(--s2);border:1px solid var(--border2);border-radius:99px;color:var(--text);font-family:var(--mono);font-size:13px;padding:7px 14px;}
.reason-add-input:focus{outline:none;border-color:var(--moon);}
.reason-add-btn{flex-shrink:0;background:var(--moon2);border:1px solid var(--moon3);border-radius:99px;color:var(--moon);font-size:13px;padding:7px 16px;cursor:pointer;}
/* INFO DOT */
.info-dot{font-size:13px;color:var(--dim);cursor:pointer;margin-left:2px;}
.info-expand{color:var(--moon);margin-top:2px;}
