:root{--bg:oklch(93% .015 70);--card-bg:oklch(97% .015 70);--card-bg-alt:oklch(99% .008 70);--ink:oklch(25% .02 60);--ink-soft:oklch(40% .02 60);--ink-softer:oklch(48% .02 60);--ink-label:oklch(50% .03 60);--border:oklch(90% .02 60);--border-soft:oklch(88% .02 60);--accent:oklch(60% .09 165);--accent-dark:oklch(42% .09 165);--accent-darker:oklch(38% .09 165);--danger:oklch(55% .19 25);--danger-soft:oklch(50% .19 25);--danger-bg:oklch(60% .19 25/.12);--danger-border:oklch(85% .1 25);--warn-bg:oklch(94% .03 70);--warn-label:oklch(45% .06 60);--warn-text:oklch(35% .03 60);--cert-bg:oklch(60% .09 165/.15);--open:var(--accent);--soon:oklch(62% .12 65);--late:var(--danger);--far:oklch(55% .06 240);--cert:oklch(55% .12 290);--open-bg:oklch(60% .09 165/.12);--open-text:var(--accent-dark);--soon-bg:oklch(62% .12 65/.12);--soon-text:oklch(42% .12 65);--far-bg:oklch(55% .06 240/.12);--far-text:oklch(35% .06 240);--none-bg:oklch(50% .02 60/.09);--none-text:var(--ink-softer);--ink-2:var(--ink-soft);--ink-3:var(--ink-softer);--paper:var(--bg);--card:var(--card-bg);--line:var(--border);--r:16px}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased;padding-bottom:88px;font-family:-apple-system,system-ui,sans-serif}.wrap{max-width:480px;margin:0 auto;padding:0 16px}code,.mono{font-family:ui-monospace,SF Mono,monospace}header{background:var(--bg);border-bottom:1px solid var(--border);padding:18px 0 16px}header .wrap{flex-direction:column;gap:8px;display:flex}.h-top{letter-spacing:.06em;text-transform:uppercase;color:var(--ink-label);justify-content:space-between;align-items:baseline;font-size:11px;font-weight:700;display:flex}.h-name{cursor:pointer}.h-name:hover{color:var(--accent-dark)}h1{letter-spacing:-.01em;color:var(--ink);font-size:26px;font-weight:700;line-height:1.15}.h-mse{color:var(--ink-soft);font-size:13px}.h-mse strong{color:var(--ink);font-weight:600}.h-tiles{grid-template-columns:1fr 1fr;gap:10px;margin-top:4px;display:grid}.h-tile{background:var(--card-bg);border:1px solid var(--border);border-radius:14px;padding:12px 13px;overflow:hidden}.h-tile-val{white-space:nowrap;margin-bottom:3px;font-size:18px;font-weight:700;line-height:1.1}.h-tile-sub{letter-spacing:.06em;text-transform:uppercase;color:var(--ink-label);margin-bottom:2px;font-size:10.5px;font-weight:700}.h-tile-name{color:var(--ink-soft);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:11.5px;line-height:1.3;display:-webkit-box;overflow:hidden}.nav{background:var(--card-bg);border-top:1px solid var(--border);padding:0 0 env(safe-area-inset-bottom,0);z-index:100;justify-content:space-around;align-items:stretch;display:flex;position:fixed;bottom:0;left:0;right:0}.nav-btn{cursor:pointer;color:var(--ink-softer);letter-spacing:.03em;text-transform:uppercase;background:0 0;border:none;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:3px;padding:10px 12px 12px;font-size:10.5px;font-weight:600;transition:color .15s;display:flex}.nav-btn svg{flex-shrink:0;width:22px;height:22px}.nav-btn.active{color:var(--accent-dark)}.nav-btn:hover{color:var(--ink)}.nav-btn-quiet{color:oklch(70% .01 55)}.nav-btn-quiet.active{color:var(--accent-dark)}.nav-more-sheet{background:var(--card-bg);border:1px solid var(--border);z-index:101;border-radius:18px;min-width:200px;padding:8px;position:fixed;bottom:65px;left:50%;transform:translate(-50%);box-shadow:0 8px 32px #00000024}.nav-more-item{cursor:pointer;color:var(--ink);text-align:left;background:0 0;border:none;border-radius:12px;align-items:center;gap:10px;width:100%;padding:10px 14px;font-size:14px;font-weight:500;display:flex}.nav-more-item:hover{background:var(--bg)}.nav-more-item.active{color:var(--accent-dark);background:var(--open-bg)}.section{margin-top:22px}.s-head{margin:0 2px 10px}.s-pill{letter-spacing:.04em;border-radius:100px;align-items:center;gap:6px;padding:4px 9px;font-size:11px;font-weight:600;display:inline-flex}.card{background:var(--card-bg);border:1px solid var(--border);border-radius:var(--r);cursor:pointer;margin-bottom:9px;padding:14px 15px;transition:border-color .15s,transform .1s}.card:hover{border-color:var(--border-soft);box-shadow:0 2px 10px #0000000f}.card:active{transform:scale(.995)}.card.danger-card{border-color:var(--danger-border);background:var(--danger-bg)}.c-top{align-items:flex-start;gap:10px;display:flex}.c-code{color:var(--ink-softer);letter-spacing:.02em;padding-top:2px;font-size:11px}.c-name{flex:1;font-size:13.5px;font-weight:600;line-height:1.35}.c-when{white-space:nowrap;padding-top:1px;font-size:13px;font-weight:600}.c-meta{color:var(--ink-soft);flex-wrap:wrap;align-items:center;gap:14px;margin-top:8px;font-size:12px;display:flex}.c-meta b{color:var(--ink);font-weight:500}.c-actions{gap:6px;margin-left:auto;display:flex}.icon-btn{border:1px solid var(--border-soft);background:var(--card-bg-alt);cursor:pointer;width:32px;height:32px;color:var(--ink-soft);border-radius:9px;flex:none;justify-content:center;align-items:center;padding:0;display:flex}.icon-btn:hover{border-color:var(--ink-softer)}.icon-btn svg{flex:none;width:15px;height:15px}.icon-btn.confirm{color:var(--accent-dark)}.icon-btn.remind{color:var(--ink-softer)}.icon-btn:disabled{opacity:.4;cursor:not-allowed}.track{background:var(--border);border-radius:4px;height:4px;margin-top:10px;position:relative;overflow:hidden}.track .win{opacity:.25;border-radius:4px;position:absolute;top:0;bottom:0;right:0}.track .now{background:var(--ink);border-radius:1px;width:2px;position:absolute;top:-4px;bottom:-4px}.track .fill{opacity:.6;border-radius:4px;position:absolute;top:0;bottom:0;left:0}.badge{border-radius:20px;padding:2px 7px;font-size:11px;font-weight:500;display:inline-block}.b-part{color:var(--ink-soft);background:oklch(92% .04 70)}.sheet-bg{opacity:0;pointer-events:none;z-index:20;background:oklch(20% .02 60/.4);transition:opacity .2s;position:fixed;inset:0}.sheet-bg.on{opacity:1;pointer-events:auto}.sheet{background:var(--card-bg);z-index:21;box-sizing:border-box;border-radius:20px 20px 0 0;max-height:88vh;padding:20px 18px 34px;transition:transform .24s cubic-bezier(.3,.8,.4,1);position:fixed;bottom:0;left:0;right:0;overflow:hidden auto;transform:translateY(101%)}.sheet.on{transform:translateY(0)}.sheet-grip{background:var(--border);border-radius:2px;width:38px;height:4px;margin:0 auto 16px}.sheet h2{margin-bottom:4px;font-size:19px;font-weight:600;line-height:1.3}.sheet .sub{color:var(--ink-softer);margin-bottom:18px;font-size:12px}.row{border-bottom:1px solid var(--border);justify-content:space-between;gap:16px;min-width:0;padding:11px 0;font-size:14px;display:flex}.row span:first-child{color:var(--ink-soft);flex-shrink:0}.row span:last-child{text-align:right;overflow-wrap:break-word;min-width:0;font-weight:500}.note{background:var(--warn-bg);border:1px solid var(--border);color:var(--warn-text);border-radius:12px;margin-top:14px;padding:11px 12px;font-size:13px;line-height:1.5}label{color:var(--ink-soft);margin:16px 0 6px;font-size:12px;display:block}input,select,textarea{width:100%;font:inherit;border:1px solid var(--border-soft);background:var(--card-bg-alt);color:var(--ink);border-radius:12px;padding:11px 12px;font-size:15px}input[type=checkbox],input[type=radio]{border:revert;background:revert;border-radius:0;flex-shrink:0;width:auto;padding:0}input:focus,select:focus,textarea:focus{outline:2px solid var(--accent);outline-offset:1px;border-color:#0000}textarea{resize:vertical;min-height:80px}button{font:inherit;cursor:pointer;background:var(--ink);color:#fff;border:none;border-radius:12px;flex:1;padding:11px 16px;font-size:14px;font-weight:500}button.ghost{color:var(--ink);border:1px solid var(--border);background:0 0}button.ghost:hover{border-color:var(--border-soft)}button.danger{background:var(--danger);color:#fff}button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.btns{flex-wrap:wrap;gap:9px;margin-top:18px;display:flex}.alert-banner{border-radius:var(--r);flex-direction:column;gap:4px;margin-top:14px;padding:12px 14px;font-size:13px;line-height:1.5;display:flex}.alert-banner strong{letter-spacing:.07em;text-transform:uppercase;font-size:10.5px;font-weight:700}.alert-stale{color:var(--warn-text);background:oklch(93% .04 70);border:1px solid oklch(85% .04 70)}.alert-stale strong{color:var(--warn-label)}.ipra-banner{border-radius:var(--r);background:var(--warn-bg);margin-top:14px;padding:12px 14px}.ipra-banner-label{letter-spacing:.08em;text-transform:uppercase;color:var(--warn-label);margin-bottom:5px;font-size:10.5px;font-weight:700}.ipra-banner-text{color:var(--warn-text);font-size:13px;line-height:1.5}.backup-banner{background:var(--card-bg);border:1px solid var(--border);border-radius:var(--r);color:var(--ink-soft);align-items:center;gap:10px;margin-top:14px;padding:12px 14px;font-size:13px;display:flex}.backup-banner button{background:var(--accent-dark);color:#fff;white-space:nowrap;border-radius:100px;flex:none;padding:6px 14px;font-size:12px;font-weight:600}.profile-item{background:var(--card-bg);border:1px solid var(--border);border-radius:var(--r);cursor:pointer;align-items:center;gap:12px;margin-bottom:9px;padding:14px 15px;transition:border-color .15s;display:flex}.profile-item:hover{border-color:var(--border-soft)}.profile-item.active{border-color:var(--accent)}.profile-avatar{background:var(--ink);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;font-size:18px;font-weight:700;display:flex}.profile-info{flex:1}.profile-name{font-size:15px;font-weight:600}.profile-meta{color:var(--ink-softer);margin-top:2px;font-size:12px}.add-form{background:var(--card-bg);border:1px solid var(--border);border-radius:var(--r);margin-top:16px;padding:16px}.add-form h3{margin-bottom:4px;font-size:16px;font-weight:600}.autocomplete-list{z-index:10;background:var(--card-bg);border:1px solid var(--border);border-radius:12px;width:100%;max-height:240px;position:absolute;overflow-y:auto;box-shadow:0 8px 24px #0000001a}.autocomplete-item{cursor:pointer;border-bottom:1px solid var(--border);padding:10px 12px;font-size:14px}.autocomplete-item:last-child{border-bottom:none}.autocomplete-item:hover{background:var(--bg)}.autocomplete-code{color:var(--ink-softer);font-family:ui-monospace,monospace;font-size:11px}.input-wrap{position:relative}footer{border-top:1px solid var(--border);margin-top:34px;padding-top:18px}.f-note{color:var(--ink-softer);margin-bottom:14px;font-size:12px;line-height:1.55}.f-btns{gap:8px;display:flex}.f-btns button{flex:1;padding:10px;font-size:13px}@media (prefers-reduced-motion:reduce){*{transition:none!important}}@media print{body{padding-bottom:0}.nav,header,.backup-banner,.alert-banner,.ipra-banner{display:none!important}}
