@font-face{font-family:Caslon Text;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/caslon-400.woff2)format("woff2")}@font-face{font-family:Caslon Text;font-style:italic;font-weight:400;font-display:swap;src:url(/fonts/caslon-400i.woff2)format("woff2")}@font-face{font-family:Caslon Text;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/caslon-700.woff2)format("woff2")}@font-face{font-family:Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/plexmono-400.woff2)format("woff2")}@font-face{font-family:Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/plexmono-500.woff2)format("woff2")}@font-face{font-family:Plex Mono;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/plexmono-600.woff2)format("woff2")}:root{--bg:#0b0b0d;--surface:#131317;--surface-2:#1a1a20;--text:#eceae4;--muted:#7d7a72;--line:#eceae41f;--line-strong:#eceae447;--zone-red:#d15a4e;--lcd:#cbd9b4;--lcd-warn:#e8a79b;--font-body:"Caslon Text", Georgia, "Times New Roman", serif;--font-mono:"Plex Mono", ui-monospace, "SF Mono", Menlo, monospace;--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px)}*{box-sizing:border-box}html,body{background:var(--bg);min-height:100%;color:var(--text);font-family:var(--font-body);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;touch-action:manipulation;margin:0;padding:0}button,input{touch-action:manipulation}body.locked{overscroll-behavior:none;overflow:hidden}::selection{background:var(--text);color:var(--bg)}:focus-visible{outline:2px solid var(--text);outline-offset:2px}#app{max-width:460px;min-height:100dvh;padding:calc(26px + var(--safe-top)) 20px calc(72px + var(--safe-bottom));margin:0 auto}@media (width>=520px){#app{border-left:1px solid var(--line);border-right:1px solid var(--line);margin:0 auto}}.btn{border:1px solid var(--line-strong);color:var(--text);font-family:var(--font-body);letter-spacing:.16em;text-transform:uppercase;cursor:pointer;background:0 0;border-radius:4px;justify-content:center;align-items:center;gap:6px;min-height:42px;padding:10px 20px;font-size:12px;font-weight:400;text-decoration:none;display:inline-flex}.btn:active{background:#eceae40f;transform:scale(.97)}.btn-solid{background:var(--text);border-color:var(--text);color:var(--bg)}.btn-solid:active{background:var(--muted);border-color:var(--muted);color:var(--bg)}.btn-lg{width:100%;padding:15px;font-size:13px}.btn-link{color:var(--muted);font-family:var(--font-body);letter-spacing:.12em;text-transform:uppercase;border:none;border-bottom:1px solid var(--line-strong);background:0 0;border-radius:0;min-height:0;padding:4px 2px;font-size:12px;font-weight:400;text-decoration:none}.btn-link:active{color:var(--text);border-color:var(--text);transform:none}.page-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:10px;padding-bottom:18px;display:flex}.brand{letter-spacing:.3em;text-transform:uppercase;color:var(--text);margin:0;font-size:13px;font-weight:400}.detail-head{border-bottom:none;padding-bottom:4px}.detail-head .brand{text-align:center;letter-spacing:.2em;flex:1;font-size:15px}.btn-icon{color:var(--muted);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:8px;display:flex}.btn-icon:active{color:var(--text)}.btn-back{font-family:var(--font-body);color:var(--muted);cursor:pointer;background:0 0;border:none;min-height:0;padding:6px 2px;font-size:20px;line-height:1}.btn-back:active{color:var(--text)}.rows{margin-top:4px}.row{border:none;border-bottom:1px solid var(--line);text-align:left;cursor:pointer;width:100%;color:inherit;background:0 0;align-items:center;gap:14px;padding:18px 0;font-family:inherit;display:flex}.row:last-child{border-bottom:none}.row:active{background:#eceae408}.row-accent{border-radius:2px;flex-shrink:0;width:3px;height:36px}.row-main{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.row-name{font-family:var(--font-body);color:var(--text);font-size:16px;font-weight:400}.row-sub{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--muted);font-size:9.5px;font-weight:400}.row-right{flex-shrink:0;align-items:center;gap:12px;display:flex}.row-readout{font-family:var(--font-body);font-variant-numeric:tabular-nums;color:var(--text);font-size:21px;font-weight:400}.row-max{font-family:var(--font-mono);color:var(--muted);font-size:11px}.lamp{border-radius:50%;flex-shrink:0;width:8px;height:8px}.lamp-green{background:#6fae7f}.lamp-red{background:var(--zone-red)}.lamp-off{border:1px solid var(--line-strong)}.quota-wrap{flex-direction:column;align-items:center;padding:28px 0 0;display:flex}.quota{align-items:center;gap:9px;padding:8px 0;display:flex}.quota-cell{border:1px solid var(--line-strong);background:#eceae40f;border-radius:7px;width:28px;height:28px}.quota-last{border-color:var(--zone-red)}.quota-new{animation:.45s cubic-bezier(.34,1.56,.64,1) pop}@keyframes pop{0%{transform:scale(.4)}to{transform:scale(1)}}.quota-kick{animation:.14s ease-out kick}@keyframes kick{0%{transform:translateY(2px)}to{transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.quota-new,.quota-kick{animation:none}}.quota-num{gap:12px}.quota-count{font-family:var(--font-body);font-variant-numeric:tabular-nums;color:var(--text);font-size:54px;font-weight:400;line-height:1}.quota-over{color:var(--zone-red)}.quota-max{font-family:var(--font-mono);color:var(--muted);font-size:14px;font-weight:400}.plate{font-family:var(--font-mono);letter-spacing:.2em;text-transform:uppercase;color:var(--muted);margin:12px 0;font-size:9.5px;font-weight:400}.lcd{background:var(--surface);border:1px solid var(--line);width:min(100%,300px);color:var(--lcd);font-family:var(--font-mono);border-radius:4px;justify-content:space-between;align-items:baseline;gap:10px;padding:14px 18px;display:flex}.lcd-main{letter-spacing:.04em;font-variant-numeric:tabular-nums;font-size:20px;font-weight:500}.lcd-side{letter-spacing:.14em;text-transform:uppercase;opacity:.75;font-size:9.5px;font-weight:400}.lcd-warn{color:var(--lcd-warn);opacity:1}.record-area{flex-direction:column;align-items:center;gap:16px;margin:32px 0 4px;display:flex}.record{border:1px solid var(--line-strong);width:100%;min-height:64px;color:var(--text);font-family:var(--font-body);letter-spacing:.24em;text-transform:uppercase;cursor:pointer;background:0 0;border-radius:4px;font-size:13px;font-weight:400;transition:transform 80ms,background 80ms}.record:active{background:#eceae40f;transform:scale(.99)}.record-limit{border-color:var(--zone-red);color:var(--zone-red)}.record-limit:active{background:#d15a4e14}.last-row{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--muted);align-items:center;gap:14px;font-size:9.5px;font-weight:400;display:flex}.sec{margin-top:42px}.sec-head{justify-content:space-between;align-items:baseline;gap:10px;margin-bottom:16px;display:flex}.sec-title{font-family:var(--font-mono);letter-spacing:.22em;text-transform:uppercase;color:var(--muted);margin:0;font-size:9.5px;font-weight:500}.hm{scrollbar-width:none;flex-direction:column;gap:6px;padding-bottom:4px;display:flex;overflow-x:auto}.hm::-webkit-scrollbar{display:none}.hm-months{grid-template-columns:repeat(12,1fr);gap:3px;margin-left:28px;display:grid}.hm-months span{font-family:var(--font-mono);letter-spacing:.04em;color:var(--muted);white-space:nowrap;font-size:8.5px;overflow:visible}.hm-body{gap:4px;display:flex}.hm-days{font-family:var(--font-mono);color:var(--muted);flex-direction:column;flex-shrink:0;justify-content:space-between;width:24px;font-size:8.5px;display:flex}.hm-days span{height:14px;line-height:14px}.hm-grid{flex:1;grid-template-columns:repeat(12,1fr);gap:3px;display:grid}.hm-cell{aspect-ratio:1;border-radius:3px;flex-shrink:0}button.hm-cell{border:none;padding:0}.hm-cell[data-date]{cursor:pointer;transition:transform 80ms}.hm-cell[data-date]:active{transform:scale(.82)}.hm-cell-selected{box-shadow:inset 0 0 0 2px var(--bg), inset 0 0 0 3.5px var(--text)}.hm-info{font-family:var(--font-mono);letter-spacing:.02em;color:var(--muted);margin-top:16px;font-size:11px}.hm-info strong{color:var(--text);font-weight:500}.hm-legend{font-family:var(--font-mono);letter-spacing:.08em;color:var(--muted);align-items:center;gap:4px;font-size:9px;display:flex}.hm-legend .hm-cell{border-radius:2px;width:8px;height:8px}.log{margin:0;padding:0;list-style:none}.log li{border-bottom:1px solid var(--line);font-family:var(--font-mono);letter-spacing:.02em;text-transform:uppercase;color:var(--text);align-items:baseline;gap:12px;padding:11px 0;font-size:10.5px;display:flex}.log li:last-child{border-bottom:none}.log-no{font-weight:500}.log-clock,.log-date,.log-rel{color:var(--muted)}.log-rel{margin-left:auto}.log-empty{color:var(--muted);font-size:13px}.danger{color:var(--zone-red)}.danger.btn-link{border-color:#d15a4e66}.dashboard-new{margin-top:40px}.settings-rows{margin-bottom:26px}.settings-links{gap:20px;margin:4px 0 26px;display:flex}.settings-row{border-bottom:1px solid var(--line);justify-content:space-between;align-items:baseline;padding:12px 0;display:flex}.settings-label{color:var(--muted);font-size:13px}.settings-value{font-family:var(--font-mono);color:var(--text);font-variant-numeric:tabular-nums;font-size:14px}.form-danger{border-top:1px solid var(--line);justify-content:space-between;gap:12px;margin-top:28px;padding-top:18px;display:flex}.btn-link:disabled{opacity:.35;cursor:default}.overlay{z-index:20;background:#000000bf;justify-content:center;align-items:flex-end;padding:16px;animation:.18s ease-out fade-in;display:flex;position:fixed;inset:0}.overlay.closing{pointer-events:none;animation:.2s ease-in forwards fade-out}.form-card{background:var(--surface);border:1px solid var(--line);padding:24px 20px calc(20px + var(--safe-bottom));border-radius:4px;width:100%;max-width:460px;animation:.34s cubic-bezier(.32,1.4,.55,1) modal-in}.form-card.closing{animation:.2s ease-in forwards modal-out}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes fade-out{0%{opacity:1}to{opacity:0}}@keyframes modal-in{0%{opacity:0;transform:translateY(32px)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes modal-out{0%{opacity:1;transform:translateY(0)scale(1)}to{opacity:0;transform:translateY(18px)scale(.98)}}@media (prefers-reduced-motion:reduce){.overlay,.form-card,.overlay.closing,.form-card.closing{animation:none}}.form-title{color:var(--text);margin:0 0 22px;font-size:18px;font-weight:400}.form-card form{flex-direction:column;display:flex}.form-card label{letter-spacing:.14em;text-transform:uppercase;color:var(--muted);flex-direction:column;gap:6px;margin-bottom:18px;font-size:11px;font-weight:400;display:flex}.form-card input[type=text],.form-card input[type=number]{border:none;border-bottom:1px solid var(--line-strong);width:100%;font-family:var(--font-body);color:var(--text);background:0 0;border-radius:0;min-height:44px;padding:9px 0;font-size:16px;font-weight:400}.form-card input[type=number]{font-family:var(--font-mono);font-size:15px}.form-card input:focus{border-bottom:1px solid var(--text);outline:none}.form-card input::placeholder{color:var(--muted);opacity:.6}.form-row{gap:16px;display:flex}.form-row label{flex:1}.swatches{flex-wrap:wrap;gap:12px;padding-top:10px;display:flex}.swatch{cursor:pointer;border:1px solid #0000;border-radius:50%;width:30px;height:30px;padding:0}.swatch:hover{border-color:var(--line-strong)}.swatch-selected{border-color:var(--text);transform:scale(1.1)}.form-actions{justify-content:flex-end;gap:12px;margin-top:12px;display:flex}.landing{max-width:460px;min-height:100dvh;padding:calc(26px + var(--safe-top)) 20px calc(16px + var(--safe-bottom));text-align:center;flex-direction:column;margin:0 auto;display:flex}.landing-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding-bottom:18px;display:flex}.landing-hero{padding:60px 0 52px}.landing-quota{justify-content:center;padding:0 0 30px}.landing-eyebrow{font-family:var(--font-mono);letter-spacing:.22em;text-transform:uppercase;margin:0 0 20px;font-size:10px;font-weight:500}.landing-eyebrow a{color:var(--muted);border-bottom:1px solid var(--line-strong);padding-bottom:3px;text-decoration:none}.landing-eyebrow a:hover{color:var(--text);border-color:var(--text)}.landing-hero h1{color:var(--text);margin:0;font-size:34px;font-weight:400;line-height:1.3}.hero-italic{color:var(--muted);font-style:italic}.landing-sub{max-width:380px;color:var(--muted);margin:18px auto 0;font-size:14px;line-height:1.9}.landing-steps{border-top:1px solid var(--line);flex-direction:column;gap:26px;padding:28px 0;display:flex}.landing-step{flex-direction:column;align-items:center;gap:10px;display:flex}.landing-step-no{font-family:var(--font-mono);letter-spacing:.14em;color:var(--muted);font-size:10px}.landing-step p{max-width:340px;color:var(--text);margin:0;font-size:14px;line-height:1.8}.landing-principles{border-top:1px solid var(--line);color:var(--muted);padding:28px 0;font-size:14px;font-style:italic;line-height:1.9}.landing-foot{text-align:center;flex-direction:column;align-items:center;gap:16px;padding-top:32px;display:flex}.landing-hint{color:var(--muted);margin:0;font-size:12px;line-height:1.8}.landing-links{border-top:1px solid var(--line);justify-content:center;gap:20px;width:100%;margin-top:28px;padding-top:16px;display:flex}.landing-credit{color:var(--muted);font-size:12px}.landing-credit .btn-link{text-transform:none;letter-spacing:0;font-size:12px}.empty{text-align:center;flex-direction:column;align-items:center;gap:0;padding-top:20vh;display:flex}.empty .brand{font-size:15px}.empty-lead{color:var(--text);margin:26px 0 0;font-size:17px;font-style:italic;font-weight:400}.empty-sub{max-width:320px;color:var(--muted);margin:14px 0 34px;font-size:14px;line-height:1.9}@media (width>=720px){#app{max-width:680px;padding:44px 36px calc(64px + var(--safe-bottom))}.landing{max-width:600px}.landing-hero{padding:80px 0 64px}.landing-hero h1{font-size:42px}.landing-sub{max-width:440px;font-size:15px}.landing-step p,.landing-principles{font-size:15px}.row{padding:22px 0}.row-name{font-size:17px}.row-readout{font-size:24px}.quota-cell{border-radius:8px;width:34px;height:34px}.quota-count{font-size:64px}.lcd{width:min(100%,340px)}.record{min-height:72px;font-size:14px}.overlay{align-items:center}.form-card{margin-bottom:0}}@media (width>=960px){.detail-head{padding-bottom:28px}.detail-grid{grid-template-columns:minmax(280px,5fr) 6fr;align-items:start;gap:48px;display:grid}.detail-grid .detail-col:nth-child(3){grid-column:1/-1}.detail-grid .sec{margin-top:0}.detail-grid .detail-col:nth-child(3) .sec{margin-top:42px}.detail-grid .quota-wrap{padding-top:0}.detail-grid .record-area{margin-top:44px}.detail-grid .plate{margin-top:14px}}@media (width>=1024px){#app{max-width:1120px;padding:56px 48px calc(72px + var(--safe-bottom))}.rows{grid-template-columns:1fr 1fr;column-gap:56px;display:grid}.rows .row:last-child{border-bottom:1px solid var(--line)}.dashboard-new .btn-lg,.empty .btn-lg{width:auto;padding:15px 40px}.quota-cell{width:38px;height:38px}.quota{gap:12px}.detail-grid{grid-template-columns:minmax(280px,4fr) 5fr 4fr;gap:48px}.detail-grid .detail-col:nth-child(3){grid-column:auto}.detail-grid .detail-col:nth-child(3) .sec{margin-top:0}.landing{max-width:800px}.landing-hero{padding:100px 0 72px}.landing-hero h1{font-size:52px}.landing-sub{max-width:460px;font-size:15px}.landing-steps{grid-template-columns:repeat(3,1fr);gap:28px;display:grid}.landing-principles{max-width:520px;margin:0 auto}.landing-foot .btn-lg{max-width:520px}.landing-links{justify-content:center}}
