:root{--ground:#eceff2;--surface:#fff;--ink:#14181d;--ink-2:#4f5a66;--ink-3:#697380;--muted:#8a95a1;--line:#dce2e7;--line-strong:#ccd5db;--line-soft:#eef1f4;--accent:#0e7c7b;--accent-ink:#0e5f5e;--accent-soft:#ddf1f0;--accent-line:#a9d8d6;--danger:#8e2424;--danger-soft:#fbe4e4;--gold-soft:#f7ecd2;--gold-ink:#7a5410;--radius:10px;--radius-card:12px;--col:520px;--font:"IBM Plex Sans", system-ui, -apple-system, "Segoe UI", sans-serif;--mono:"IBM Plex Mono", "SF Mono", Menlo, monospace;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}html,body{background:var(--ground);color:var(--ink);font-family:var(--font);-webkit-font-smoothing:antialiased;margin:0}body{overscroll-behavior-y:contain;font-size:17px;line-height:1.45}a{color:var(--accent);text-decoration:none}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer;background:0 0;border:0;padding:0}input,select,textarea{background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--radius);outline:none;width:100%;min-height:52px;padding:0 14px}input:focus,select:focus,textarea:focus,button:focus-visible,a:focus-visible{outline:2px solid var(--accent);outline-offset:1px}input::placeholder,textarea::placeholder{color:var(--ink-3)}textarea{resize:vertical;min-height:92px;padding:12px 14px;line-height:1.5}select{appearance:none;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%234F5A66' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M6 9l6 6 6-6'/></svg>");background-position:right 12px center;background-repeat:no-repeat;padding-right:36px}.mono{font-family:var(--mono);font-variant-numeric:tabular-nums}.app{max-width:var(--col);flex-direction:column;min-height:100dvh;margin:0 auto;display:flex;position:relative}.topbar{padding:12px 16px 10px;padding-top:calc(12px + env(safe-area-inset-top));background:var(--ground);z-index:5;justify-content:space-between;align-items:center;gap:10px;display:flex;position:sticky;top:0}.topbar h1{letter-spacing:-.01em;align-items:baseline;gap:8px;margin:0;font-size:22px;font-weight:600;display:flex}.topbar h1 .count{color:var(--ink-2);font-size:15px;font-weight:500}.topbar .title-sm{color:var(--ink-2);white-space:nowrap;text-overflow:ellipsis;flex:1;font-size:16px;font-weight:500;overflow:hidden}.topbar .page-title{color:var(--ink);flex:1;font-size:19px;font-weight:600}.icon-btn{border-radius:var(--radius);background:var(--surface);border:1px solid var(--line-strong);width:44px;height:44px;color:var(--ink);flex:none;justify-content:center;align-items:center;display:inline-flex}.icon-btn.quiet{color:var(--ink-2);background:0 0;border-color:#0000}.search{background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--radius);height:48px;color:var(--muted);align-items:center;gap:10px;margin:0 16px 10px;padding:0 12px;display:flex}.search input{height:100%;min-height:0;color:var(--ink);background:0 0;border:0;padding:0}.hscroll{scrollbar-width:none;gap:8px;padding:0 16px 10px;display:flex;overflow-x:auto}.hscroll.pinned{top:calc(66px + env(safe-area-inset-top));z-index:4;background:var(--ground);position:sticky}.hscroll::-webkit-scrollbar{display:none}.pill,.toggle{background:var(--surface);border:1px solid var(--line-strong);white-space:nowrap;height:42px;color:var(--ink);border-radius:21px;flex:none;align-items:center;gap:6px;padding:0 14px;font-size:15px;font-weight:500;display:inline-flex}.pill{padding-right:10px}.pill.on{background:var(--ink);border-color:var(--ink);color:#fff}.pill .n{min-width:18px;height:18px;font-size:12px;font-family:var(--mono);background:#ffffff3d;border-radius:9px;justify-content:center;align-items:center;padding:0 5px;display:inline-flex}.toggle{color:var(--ink-2)}.toggle.on{background:var(--accent-soft);border-color:var(--accent-line);color:var(--accent-ink)}.rowline{color:var(--ink-2);justify-content:space-between;align-items:center;gap:8px;padding:0 16px 8px;font-size:15px;display:flex}.rowline select{width:auto;height:44px;min-height:44px;color:var(--accent);background-color:#0000;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%230E7C7B' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M6 9l6 6 6-6'/></svg>");background-position:right 8px center;border:0;padding:0 30px 0 10px;font-size:15px;font-weight:500}.list{flex-direction:column;gap:8px;padding:0 12px 104px;display:flex}.card{background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--radius-card);text-align:left;flex-direction:column;gap:8px;width:100%;padding:12px 14px 12px 18px;display:flex;position:relative;overflow:hidden}.card:before{content:"";background:var(--rail,transparent);width:4px;position:absolute;top:0;bottom:0;left:0}.card-head{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.card-title{letter-spacing:-.005em;font-size:18px;font-weight:600;line-height:1.25}.card-sub{color:var(--ink-3);font-size:15px;line-height:1.35}.rating{color:var(--ink-2);flex:none;align-items:center;gap:4px;padding-top:1px;font-size:15px;display:inline-flex}.rating svg{color:#b7791f}.rating .c{color:var(--ink-3);font-size:14px}.meta{flex-wrap:wrap;align-items:center;gap:6px;font-size:15px;display:flex}.badge{letter-spacing:.02em;height:26px;color:var(--ink-2);background:#eef1f4;border-radius:6px;align-items:center;padding:0 9px;font-size:13px;font-weight:600;display:inline-flex}.badge.exo{background:var(--accent-soft);color:var(--accent-ink)}.badge.genkord{background:var(--gold-soft);color:var(--gold-ink)}.badge.due{background:var(--gold-ink);color:#fff}.status{letter-spacing:.02em;white-space:nowrap;border-radius:8px;flex:none;align-items:center;gap:6px;max-width:100%;height:34px;padding:0 11px;font-size:13px;font-weight:600;display:inline-flex}.status.none{background:var(--surface);color:var(--ink-3);border:1px dashed var(--line-strong)}.status svg{opacity:.7;flex:none}.status-select{flex:none;align-items:center;max-width:100%;min-height:44px;display:inline-flex;position:relative}.status-select .status{height:38px;padding:0 8px 0 11px}.status-select select{opacity:0;width:100%;height:100%;min-height:0;padding:0;position:absolute;inset:0}.actions{gap:8px;display:flex}.btn{border-radius:var(--radius);border:1px solid var(--line-strong);background:var(--surface);min-height:46px;color:var(--ink);white-space:nowrap;flex:1;justify-content:center;align-items:center;gap:6px;padding:0 12px;font-size:16px;font-weight:500;display:inline-flex}.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn.accent{color:var(--accent-ink);border-color:var(--accent-line);background:var(--surface)}.btn.danger{color:var(--danger)}.btn.quiet{color:var(--ink-2)}.btn:disabled,.btn[aria-disabled=true]{opacity:.5;pointer-events:none}.btn.block{width:100%;min-height:50px;font-size:17px}.nophone{color:var(--ink-3);flex:none;align-items:center;gap:6px;padding:0 10px 0 2px;font-size:15px;display:inline-flex}.nophone svg{color:var(--muted)}.fab{right:16px;bottom:calc(20px + env(safe-area-inset-bottom));background:var(--ink);color:#fff;z-index:4;border-radius:26px;align-items:center;gap:6px;height:52px;padding:0 20px 0 16px;font-size:15px;font-weight:500;display:inline-flex;position:fixed;box-shadow:0 6px 16px #14181d40}.section{background:var(--surface);flex-direction:column;gap:12px;padding:16px;display:flex}.section+.section{margin-top:8px}.eyebrow{letter-spacing:-.005em;color:var(--ink);font-size:16px;font-weight:600}.section-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.section-head .hint{color:var(--ink-3);font-size:14px}.field{flex-direction:column;gap:6px;display:flex}.field>label,.label{color:var(--ink-2);font-size:15px;font-weight:500}.grid2{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.switch-row{text-align:left;justify-content:space-between;align-items:center;gap:12px;min-height:52px;font-size:17px;display:flex}.switch{background:#b9c3cb;border-radius:14px;flex:none;width:48px;height:28px;transition:background .15s;position:relative}.switch:after{content:"";background:#fff;border-radius:11px;width:22px;height:22px;transition:left .15s;position:absolute;top:3px;left:3px}.switch.on{background:var(--accent)}.switch.on:after{left:23px}.help{color:var(--ink-3);font-size:14px;line-height:1.5}.chips{flex-wrap:wrap;gap:8px;display:flex}.chip{border:1px solid var(--line-strong);background:var(--surface);min-height:42px;color:var(--ink);border-radius:21px;align-items:center;gap:6px;padding:0 15px;font-size:16px;font-weight:500;display:inline-flex}.chip.on{background:var(--ink);border-color:var(--ink);color:#fff}.chip .n{font-size:14px;font-family:var(--mono);color:var(--ink-3)}.chip.on .n{color:#ffffffb8}.prod{letter-spacing:.02em;border:1.5px solid #0000;border-radius:8px;align-items:center;min-height:42px;padding:0 14px;font-size:14px;font-weight:600;display:inline-flex}.prod.off{background:var(--surface);border-color:var(--line-strong);color:var(--ink-2);letter-spacing:0;font-weight:500}.prod.add{border:1.5px dashed var(--line-strong);color:var(--ink-2);letter-spacing:0;background:0 0;font-weight:500}.info{align-items:center;gap:12px;min-height:44px;font-size:16px;display:flex}.info svg{color:var(--ink-2);flex:none}.info .tag{color:var(--ink-3);font-size:14px}.info a{align-items:center;min-height:40px;display:inline-flex}.source{color:var(--ink-3);margin-top:6px;font-size:14px}.hist{border-top:1px solid var(--line-soft);align-items:flex-start;gap:12px;padding:12px 0;display:flex}.hist:first-child{border-top:0}.hist .when{color:var(--ink-2);flex:none;width:58px;padding-top:3px;font-size:14px}.hist .what{font-size:16px;font-weight:500}.hist .note{color:var(--ink-3);font-size:15px;line-height:1.45}.svc{height:32px;color:var(--ink-2);background:#eef1f4;border-radius:16px;align-items:center;padding:0 12px;font-size:15px;font-weight:500;display:inline-flex}.svc.exo{background:var(--accent-soft);color:var(--accent-ink)}.empty{text-align:center;color:var(--ink-2);padding:40px 24px;font-size:16px;line-height:1.5}.banner{border-radius:var(--radius);background:var(--gold-soft);color:var(--gold-ink);margin:0 16px 10px;padding:12px 14px;font-size:15px}.banner.err{background:var(--danger-soft);color:var(--danger)}.savestate{white-space:nowrap;background:var(--accent-soft);height:28px;color:var(--accent-ink);border-radius:14px;flex:none;align-items:center;gap:5px;padding:0 10px;font-size:14px;font-weight:500;display:inline-flex}.savestate.err{background:var(--danger-soft);color:var(--danger)}.savestate.idle{color:var(--ink-3);background:0 0}.sheet-backdrop{z-index:20;background:#14181d73;position:fixed;inset:0}.sheet{max-width:var(--col);background:var(--surface);z-index:21;border-radius:20px 20px 0 0;flex-direction:column;max-height:88dvh;margin:0 auto;display:flex;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -8px 24px #14181d2e}.sheet-handle{justify-content:center;padding:10px 0 4px;display:flex}.sheet-handle span{background:var(--line-strong);border-radius:2px;width:36px;height:4px}.sheet-head{justify-content:space-between;align-items:center;padding:6px 12px 12px 16px;display:flex}.sheet-head h2{margin:0;font-size:19px;font-weight:600}.sheet-body{flex-direction:column;gap:20px;padding:0 16px 16px;display:flex;overflow-y:auto}.sheet-foot{padding:12px 16px calc(16px + env(safe-area-inset-bottom));border-top:1px solid var(--line-soft)}.check-list{flex-direction:column;display:flex}.check-row{text-align:left;align-items:center;gap:12px;width:100%;min-height:52px;font-size:17px;display:flex}.check-row+.check-row{border-top:1px solid var(--line-soft)}.check-row .dot{border-radius:5px;flex:none;width:10px;height:10px}.check-row .lab{flex:1;min-width:0}.check-row .n{font-size:15px;font-family:var(--mono);color:var(--ink-3);flex:none}.box{border:1.5px solid var(--line-strong);background:var(--surface);color:#fff;border-radius:6px;flex:none;justify-content:center;align-items:center;width:24px;height:24px;display:inline-flex}.box.on{background:var(--accent);border-color:var(--accent)}.linkbtn{color:var(--accent-ink);min-height:44px;padding:0 8px;font-size:16px;font-weight:500}.detail,.detail .col{display:contents}.detail .col+.col>.section:first-child{margin-top:8px}.detail-pad{padding-bottom:calc(84px + env(safe-area-inset-bottom))}.head-actions{display:none}.action-bar{max-width:var(--col);z-index:6;padding:10px 16px calc(10px + env(safe-area-inset-bottom));background:var(--surface);border-top:1px solid var(--line);margin:0 auto;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -4px 14px #14181d14}.login{min-height:100dvh;padding:32px 24px calc(28px + env(safe-area-inset-bottom));flex-direction:column;justify-content:center;gap:40px;display:flex}.login .brand{letter-spacing:.14em;color:var(--accent-ink);font-size:12px;font-weight:600}.login h1{letter-spacing:-.02em;margin:10px 0 8px;font-size:32px;font-weight:600;line-height:1.12}.login p{color:var(--ink-2);margin:0}.login .help{color:var(--ink-2)}.login input#pw{min-height:52px;font-size:18px}.tip{background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--radius-card);align-items:flex-start;gap:12px;padding:14px;display:flex}.tip .ic{background:var(--accent-soft);width:38px;height:38px;color:var(--accent-ink);border-radius:8px;flex:none;justify-content:center;align-items:center;display:flex}.tip b{margin-bottom:2px;font-size:16px;display:block}.tip span{color:var(--ink-2);font-size:15px;line-height:1.45}.toast{left:50%;bottom:calc(84px + env(safe-area-inset-bottom));background:var(--ink);color:#fff;z-index:30;border-radius:10px;max-width:90vw;padding:13px 17px;font-size:15px;position:fixed;transform:translate(-50%)}.stat{justify-content:space-between;align-items:center;gap:12px;min-height:50px;font-size:16px;display:flex}.stat+.stat{border-top:1px solid var(--line-soft)}.stat b{font-weight:500}@media (width>=760px){.app.wide{max-width:1080px}.app.wide .list{grid-template-columns:repeat(auto-fill,minmax(340px,1fr));align-items:stretch;gap:10px;padding-left:16px;padding-right:16px;display:grid}.app.wide .card .actions{margin-top:auto}.app.wide .fab{right:max(16px,50vw - 524px)}.detail{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;gap:8px;display:grid}.detail .col{flex-direction:column;gap:8px;display:flex}.detail .col>.section,.detail .col+.col>.section:first-child{margin-top:0}.detail .section{border-radius:var(--radius-card)}.app.wide .detail-pad,.app.wide.detail-pad{padding-bottom:24px}.action-bar{display:none}.action-bar.always,.head-actions{display:block}}@media (prefers-reduced-motion:reduce){*{transition:none!important}}
