:root{--bg:#191b22;--bg-elev:#22252f;--bg-elev-2:#2b2f3b;--bg-input:#2f3340;--border:#363b49;--border-strong:#4a5063;--text:#f4f6fb;--text-dim:#b6bdcd;--text-faint:#8d95a8;--accent:#9aaaff;--accent-strong:#7c8fff;--accent-soft:#9aaaff29;--danger:#ff7b7b;--danger-soft:#ff7b7b24;--ok:#5bd99b;--warn:#f4c04a;--warn-soft:#f4c04a24;--radius:14px;--radius-sm:10px;--radius-lg:20px;--shadow:0 8px 24px #0000004d;--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px);--sans:-apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", Roboto, sans-serif;font-family:var(--sans);color:var(--text);background:var(--bg);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;font-size:16px;line-height:1.5}*{box-sizing:border-box}html,body{background:var(--bg);overscroll-behavior-y:none;margin:0;padding:0}body,#app{min-height:100svh}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:none}button:disabled{opacity:.55;cursor:default}input,select,textarea{font:inherit;color:inherit}a{color:var(--accent);text-decoration:none}h1,h2,h3,p{margin:0}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.app-shell{width:100%;max-width:860px;min-height:100svh;padding:0 16px calc(104px + var(--safe-bottom));margin:0 auto}.page{padding-top:calc(20px + var(--safe-top));animation:.18s ease-out page-in}.app-header{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:18px;display:flex}.app-title{letter-spacing:-.02em;font-size:28px;line-height:1.15}.app-subtitle{color:var(--text-faint);margin-top:4px;font-size:13px}.icon-btn{border:1px solid var(--border);min-width:44px;height:40px;color:var(--text-dim);background:var(--bg-elev);border-radius:999px;justify-content:center;align-items:center;padding:0 14px;font-size:13px;transition:border-color .12s,color .12s,background .12s;display:inline-flex}.icon-btn:hover{color:var(--text);border-color:var(--border-strong)}.notice{text-align:left;border-radius:var(--radius);background:var(--accent-soft);border:1px solid #9aaaff59;flex-direction:column;align-items:flex-start;gap:2px;width:100%;margin-bottom:16px;padding:12px 14px;display:flex}.notice strong{font-size:14px}.notice span{color:var(--text-dim);font-size:12px}.notice-warn{background:var(--danger-soft);border-color:#ff7b7b61}.tabs{border:1px solid var(--border);background:var(--bg-elev);border-radius:999px;gap:6px;margin-bottom:18px;padding:4px;display:flex}.tab{height:38px;color:var(--text-dim);border-radius:999px;flex:1;justify-content:center;align-items:center;gap:7px;font-size:14px;transition:background .12s,color .12s;display:inline-flex}.tab.active{color:var(--text);background:var(--bg-elev-2);box-shadow:0 1px 3px #00000040}.tab-count{background:#ffffff14;border-radius:999px;min-width:20px;padding:0 6px;font-size:11px;line-height:20px}.list-section{margin-bottom:22px}.section-title{color:var(--text-faint);letter-spacing:.08em;margin:0 0 8px 4px;font-size:12px;font-weight:600}.card-list{flex-direction:column;gap:8px;display:flex}.reminder-card{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-elev);border-left:3px solid #0000;grid-template-columns:58px minmax(0,1fr);gap:14px;padding:14px;transition:border-color .12s,transform .12s,opacity .12s;display:grid;box-shadow:0 2px 8px #00000024}.reminder-card:hover{border-color:var(--border-strong)}.reminder-card.is-overdue{border-left-color:var(--danger);background:linear-gradient(90deg, var(--danger-soft), transparent 42%), var(--bg-elev)}.reminder-card.is-fired{border-left-color:var(--warn);background:linear-gradient(90deg, var(--warn-soft), transparent 42%), var(--bg-elev)}.reminder-card.is-done{opacity:.62}.card-date{border-radius:var(--radius-sm);background:var(--bg-elev-2);flex-direction:column;justify-content:center;align-items:center;gap:2px;min-height:52px;display:flex}.card-day{color:var(--text-faint);font-size:11px}.card-time{font-variant-numeric:tabular-nums;letter-spacing:-.01em;font-size:13px}.card-body{min-width:0}.card-head{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.card-title{overflow-wrap:anywhere;min-width:0;font-size:16px;font-weight:600;line-height:1.35}.chip{white-space:nowrap;border-radius:999px;flex-shrink:0;padding:2px 8px;font-size:11px;line-height:18px}.chip-blue{color:var(--accent);background:var(--accent-soft)}.chip-red{color:var(--danger);background:var(--danger-soft)}.chip-amber{color:var(--warn);background:var(--warn-soft)}.chip-green{color:var(--ok);background:#5bd99b24}.card-note{color:var(--text-dim);overflow-wrap:anywhere;white-space:pre-wrap;margin-top:5px;font-size:13px}.card-meta{color:var(--text-faint);font-variant-numeric:tabular-nums;margin-top:6px;font-size:11px}.card-actions{flex-wrap:wrap;gap:4px 14px;margin-top:10px;display:flex}.link-btn{color:var(--accent);padding:0;font-size:12px;line-height:22px}.link-btn:hover{text-decoration:underline}.link-btn.danger{color:var(--danger)}.empty{text-align:center;flex-direction:column;align-items:center;gap:8px;padding:48px 16px;display:flex}.empty-icon{border:1px dashed var(--border-strong);width:56px;height:56px;color:var(--text-faint);border-radius:50%;place-items:center;margin-bottom:4px;font-size:28px;font-weight:300;display:grid}.empty-title{font-size:16px;font-weight:600}.empty-text{max-width:300px;color:var(--text-faint);font-size:13px}.empty .btn{margin-top:8px}.fab{right:max(18px,50vw - 414px);bottom:calc(20px + var(--safe-bottom));color:#151722;background:linear-gradient(180deg, #b3beff, var(--accent-strong));z-index:20;border-radius:50%;place-items:center;width:58px;height:58px;font-size:30px;font-weight:300;line-height:1;transition:transform .12s,box-shadow .12s;display:grid;position:fixed;box-shadow:0 10px 28px #7c8fff6b}.fab:hover{transform:translateY(-1px);box-shadow:0 14px 32px #7c8fff80}.fab:active{transform:scale(.96)}.btn{border-radius:var(--radius-sm);border:1px solid #0000;justify-content:center;align-items:center;gap:6px;min-height:42px;padding:0 18px;font-size:14px;font-weight:600;transition:background .12s,border-color .12s,transform .12s;display:inline-flex}.btn:active{transform:scale(.985)}.btn-primary{color:#151722;background:linear-gradient(180deg, #b3beff, var(--accent-strong))}.btn-primary:hover{background:linear-gradient(#c0c9ff,#8b9cff)}.btn-ghost{color:var(--text-dim);border-color:var(--border);background:var(--bg-elev)}.btn-ghost:hover{color:var(--text);border-color:var(--border-strong)}.btn-danger{color:var(--danger);background:var(--danger-soft);border-color:#ff7b7b47}.btn-danger:hover{border-color:#ff7b7b80}.btn-sm{min-height:34px;padding:0 12px;font-size:12px}.full-width{width:100%}.button-row{gap:8px;display:flex}.button-row .btn{flex:1}.form-page{max-width:620px;margin:0 auto}.sub-header{justify-content:space-between;align-items:center;gap:10px;margin-bottom:22px;display:flex}.sub-title{text-align:center;flex:1;font-size:18px;font-weight:600}.sub-spacer{width:44px}.form{flex-direction:column;gap:18px;display:flex}.field{flex-direction:column;gap:7px;display:flex}.label{color:var(--text-dim);font-size:12px;font-weight:600}.input{border:1px solid var(--border);border-radius:var(--radius-sm);width:100%;min-height:44px;color:var(--text);background:var(--bg-input);outline:none;padding:10px 13px;font-size:16px;transition:border-color .12s,background .12s}.input:focus{border-color:var(--accent);background:#343948}.textarea{resize:vertical;min-height:96px;line-height:1.55}input[type=date]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}.datetime-fields{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-elev);flex-direction:column;gap:10px;padding:12px;display:flex}.time-row{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.time-cell{flex-direction:column;gap:4px;display:flex}.time-cell span{color:var(--text-faint);text-align:center;font-size:11px}.time-cell .input{text-align:center;font-variant-numeric:tabular-nums}.quick-row{flex-wrap:wrap;gap:6px;display:flex}.chip-btn{border:1px solid var(--border);color:var(--text-dim);background:var(--bg-elev-2);border-radius:999px;padding:7px 11px;font-size:12px;transition:color .12s,border-color .12s}.chip-btn:hover{color:var(--text);border-color:var(--border-strong)}.hint{color:var(--text-faint);font-size:12px;line-height:1.5}.form-submit{margin-top:2px}.form-delete{margin-top:-6px}.settings-page{max-width:620px;margin:0 auto}.panel{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-elev);margin-bottom:14px;padding:16px}.panel-title{margin-bottom:8px;font-size:14px;font-weight:600}.panel-text{color:var(--text-faint);font-size:12px;line-height:1.6}.panel-text+.panel-text,.panel-text+.button-row,.button-row+.panel-text,.panel-text+.settings-row,.settings-row+.panel-text,.settings-row+.btn,.panel-text+.btn,.button-row+.compact-field,.compact-field+.btn{margin-top:12px}.warn-text{color:var(--warn)}.settings-row{justify-content:space-between;align-items:center;gap:12px;margin-top:12px;display:flex}.row-title{font-size:14px}.row-sub{color:var(--text-faint);margin-top:2px;font-size:12px}.switch{border:1px solid var(--border);background:var(--bg-input);border-radius:999px;flex-shrink:0;width:50px;height:30px;padding:3px;transition:background .14s,border-color .14s;position:relative}.switch.on{background:var(--accent-strong);border-color:#0000}.switch-knob{background:#f4f6fb;border-radius:50%;width:22px;height:22px;transition:transform .14s;display:block;box-shadow:0 1px 3px #00000059}.switch.on .switch-knob{transform:translate(20px)}.compact-field,.clear-all-btn{margin-top:12px}.hidden-input{display:none}.modal-backdrop{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:120;background:#08090dad;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.confirm-card{border:1px solid var(--border-strong);border-radius:var(--radius-lg);background:var(--bg-elev);width:100%;max-width:360px;box-shadow:var(--shadow);padding:22px}.confirm-title{font-size:17px;font-weight:600}.confirm-message{color:var(--text-dim);margin-top:8px;font-size:13px;line-height:1.6}.confirm-actions{justify-content:flex-end;gap:8px;margin-top:20px;display:flex}.alarm-overlay{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:150;background:radial-gradient(circle at 50% 20%,#7c8fff2e,#0000 60%),#08090de6;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.alarm-card{text-align:center;border:1px solid var(--border-strong);background:var(--bg-elev);border-radius:26px;width:100%;max-width:430px;padding:30px 24px 24px;animation:.22s cubic-bezier(.2,.9,.3,1.15) alarm-in;position:relative;box-shadow:0 24px 80px #0000008c}.alarm-close{width:34px;height:34px;color:var(--text-faint);border-radius:50%;font-size:22px;line-height:1;position:absolute;top:12px;right:14px}.alarm-close:hover{color:var(--text);background:var(--bg-elev-2)}.alarm-icon{background:var(--accent-soft);border-radius:50%;place-items:center;width:74px;height:74px;margin:0 auto 16px;display:grid}.alarm-ring{border:3px solid var(--accent);border-radius:50%;width:34px;height:34px;animation:1.4s ease-in-out infinite alarm-pulse;display:block}.alarm-ring:after{content:"";background:var(--accent);transform-origin:bottom;border-radius:2px;width:3px;height:11px;margin:5px auto 0;animation:1.4s ease-in-out infinite alarm-hand;display:block}.alarm-kicker{color:var(--accent);letter-spacing:.08em;font-size:12px;font-weight:600}.alarm-title{overflow-wrap:anywhere;margin-top:6px;font-size:24px;line-height:1.3}.alarm-time{color:var(--text-dim);font-variant-numeric:tabular-nums;margin-top:8px;font-size:14px}.alarm-relative{color:var(--text-faint);margin-top:2px;font-size:12px}.alarm-note{border-radius:var(--radius-sm);color:var(--text-dim);background:var(--bg-elev-2);white-space:pre-wrap;overflow-wrap:anywhere;margin-top:16px;padding:12px;font-size:13px;line-height:1.6}.alarm-actions{flex-direction:column;gap:8px;margin-top:22px;display:flex}.alarm-actions .btn-primary{order:-1}.toast-host{left:50%;bottom:calc(92px + var(--safe-bottom));pointer-events:none;z-index:200;flex-direction:column;align-items:center;gap:8px;width:min(92vw,420px);display:flex;position:fixed;transform:translate(-50%)}.toast{border:1px solid var(--border-strong);max-width:100%;color:var(--text);box-shadow:var(--shadow);pointer-events:auto;background:#22252ff5;border-radius:999px;padding:10px 16px;font-size:13px}.toast-success{border-color:#5bd99b66}.toast-error{border-color:#ff7b7b73}.app-state{min-height:70svh;color:var(--text-faint);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:10px;display:flex}.app-state-title{color:var(--text);font-size:18px;font-weight:600}.app-state-text{max-width:320px;font-size:13px}.loading-dot{background:var(--accent);border-radius:50%;width:12px;height:12px;animation:1s ease-in-out infinite loading-pulse}.fade-enter-active,.fade-leave-active{transition:opacity .14s}.fade-enter-from,.fade-leave-to{opacity:0}.toast-enter-active,.toast-leave-active{transition:opacity .16s,transform .16s}.toast-enter-from,.toast-leave-to{opacity:0;transform:translateY(6px)}@keyframes page-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}@keyframes alarm-in{0%{opacity:0;transform:scale(.94)translateY(8px)}to{opacity:1;transform:none}}@keyframes alarm-pulse{0%,to{box-shadow:0 0 #9aaaff5c}50%{box-shadow:0 0 0 14px #9aaaff00}}@keyframes alarm-hand{0%,to{transform:rotate(-18deg)}50%{transform:rotate(22deg)}}@keyframes loading-pulse{0%,to{opacity:.35;transform:scale(.85)}50%{opacity:1;transform:scale(1)}}@media (width<=480px){.app-shell{padding-left:12px;padding-right:12px}.app-title{font-size:25px}.reminder-card{grid-template-columns:50px minmax(0,1fr);gap:11px;padding:12px}.card-actions{gap:4px 12px}.alarm-actions{gap:7px}.fab{right:16px;bottom:calc(16px + var(--safe-bottom))}.toast-host{bottom:calc(88px + var(--safe-bottom))}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
