:root{
  --ink:oklch(21% .018 265);--ink-2:oklch(28% .02 265);
  --paper:oklch(97.2% .008 85);--paper-2:oklch(99.3% .004 85);
  --line:oklch(88% .012 85);--line-soft:oklch(92.5% .008 85);
  --text:oklch(24% .015 265);--muted:oklch(52% .012 265);--faint:oklch(66% .01 265);
  --ao:oklch(45% .135 252);--ao-soft:oklch(95.5% .03 252);
  --koke:oklch(52% .11 152);--koke-soft:oklch(95% .04 152);
  --kin:oklch(68% .12 76);--kin-soft:oklch(96.5% .045 76);
  --aka:oklch(55% .18 27);--aka-soft:oklch(95.5% .035 27);
  --sans:-apple-system,"Hiragino Sans","PingFang SC","Noto Sans SC",system-ui,sans-serif;
  --sh:0 2px 6px oklch(20% .02 265/.07),0 14px 40px oklch(20% .02 265/.10);
}
*{box-sizing:border-box;margin:0}
html{background:var(--ink)}
body{min-height:100svh;background:oklch(93% .008 265);font:14px/1.6 var(--sans);color:var(--text)}
button,input{font:inherit}
button,a{-webkit-tap-highlight-color:transparent}
button{cursor:pointer}
a{color:inherit;text-decoration:none}
svg.i{stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex:none}
.flash-stack{position:fixed;z-index:40;top:0;left:50%;transform:translateX(-50%);width:min(100%,520px);padding-top:env(safe-area-inset-top);pointer-events:none}.flash-message{min-height:44px;display:flex;align-items:center;padding:10px 17px;background:var(--koke);color:var(--paper-2);font-size:12px;font-weight:800;box-shadow:var(--sh);overflow-wrap:anywhere}
.app-shell{width:min(100%,520px);min-height:100svh;margin:0 auto;background-color:var(--paper);padding:22px 17px calc(88px + env(safe-area-inset-bottom));background-image:radial-gradient(oklch(60% .03 85/.045) 1px,transparent 1px);background-size:18px 18px;box-shadow:var(--sh)}
.hd{display:flex;justify-content:space-between;align-items:baseline;border-bottom:1.5px solid var(--ink);padding:0 1px 11px;margin-bottom:13px}
.hd .t{font-size:18px;font-weight:800;letter-spacing:-.01em}.hd .s{font-size:10px;color:var(--faint);letter-spacing:.1em;font-weight:700}
.subpage-hd{justify-content:flex-start;align-items:center;gap:6px}.subpage-hd .t{min-width:0}.subpage-hd .s{margin-left:auto}.back-link{min-width:44px;min-height:44px;display:inline-flex;align-items:center;justify-content:center;gap:3px;padding:0 7px 0 3px;color:var(--ao);font-size:12px;font-weight:800;white-space:nowrap}
.header-actions{display:flex;align-items:center;gap:4px}.header-action{min-height:44px;padding:0 7px;display:inline-flex;align-items:center;justify-content:center;gap:4px;color:var(--ao);font-weight:800;font-size:12px}
.sect{font-size:11px;font-weight:800;letter-spacing:.08em;margin:14px 0 7px;display:flex;gap:7px;align-items:center}.sect.red{color:var(--aka)}.sect.amb{color:oklch(48% .11 76)}.sect.mut{color:var(--faint)}
.dot{width:7px;height:7px;border-radius:50%;display:inline-block;flex:none}.dot.bad{background:var(--aka)}.dot.warn{background:var(--kin)}.dot.mut{background:var(--faint)}
.overdue{border:1px solid color-mix(in oklch,var(--aka) 25%,var(--line));background:var(--aka-soft);color:var(--aka);border-radius:4px;padding:8px 10px;font-size:11.5px;font-weight:800;display:flex;align-items:center;gap:7px}
.card{background:var(--paper-2);border:1px solid var(--line-soft);border-radius:4px;box-shadow:0 1px 2px oklch(25% .02 265/.05);padding:11px 12px;margin-bottom:8px}.card.urgent{border-left:3px solid var(--aka)}.card.soon{border-left:3px solid var(--kin)}
.r1{display:flex;justify-content:space-between;align-items:baseline;gap:8px}.nm{font-size:14px;font-weight:700}.chip{font-size:9px;font-weight:800;letter-spacing:.06em;padding:2px 6px;border-radius:2px;border:1px solid var(--line);color:var(--muted);white-space:nowrap}.chip.az{color:var(--paper-2);background:var(--ink);border-color:var(--ink)}.chip.store{color:var(--ao);border-color:var(--ao)}
.meta{display:block;font-size:11px;color:var(--muted);margin-top:3px}.meta b{color:var(--aka);font-weight:700}.acts{display:flex;gap:7px;margin-top:9px}.b{flex:1;min-height:44px;display:flex;align-items:center;justify-content:center;gap:6px;padding:8px 6px;border-radius:3px;font-size:12.5px;font-weight:800;border:1px solid var(--line);background:var(--paper-2);color:var(--text)}.b.pri{background:var(--ao);border-color:var(--ao);color:var(--paper-2)}.b.ghost,.b.sub{color:var(--muted)}.dismiss-form{display:flex;flex:0 0 auto}.dismiss-form .b{padding-inline:10px}.rotate-form{display:flex;margin-top:8px}.rotate-form .b{flex:0 1 auto}
.empty-line{font-size:11px;color:var(--faint);padding:2px 10px 8px}
.navb{position:fixed;z-index:20;bottom:0;left:50%;transform:translateX(-50%);width:min(100%,520px);height:calc(67px + env(safe-area-inset-bottom));display:flex;border-top:1px solid var(--line);background:color-mix(in oklch,var(--paper) 94%,transparent);backdrop-filter:blur(15px);padding:9px 13px env(safe-area-inset-bottom);gap:4px}.navb a{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;font-size:10px;font-weight:700;color:var(--faint)}.navb a.on{color:var(--ao)}
.buy-dialog{width:min(calc(100% - 32px),430px);margin:auto;border:1px solid var(--line);border-radius:5px;background:var(--paper);color:var(--text);padding:18px;box-shadow:var(--sh)}.buy-dialog::backdrop{background:oklch(15% .02 265/.42)}.dialog-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.icon-button{width:44px;height:44px;border:0;background:transparent;color:var(--muted);display:grid;place-items:center}.dialog-label{font-size:10.5px;font-weight:800;letter-spacing:.06em;color:var(--faint)}.quantity-row{display:flex;align-items:center;gap:10px;margin:5px 0 15px}.quantity-row input{width:78px;border:1px solid var(--line);border-radius:3px;padding:10px;background:var(--paper-2)}.quantity-row span{font-size:11px;color:var(--muted)}
.tabs{display:flex;flex-wrap:wrap;gap:5px;margin-bottom:12px}.tabs a{flex:1 1 72px;min-height:44px;display:grid;place-items:center;text-align:center;font-size:12px;font-weight:800;padding:8px 4px;border:1px solid var(--line);border-radius:3px;color:var(--muted);background:var(--paper-2)}.tabs a.on{background:var(--ink);border-color:var(--ink);color:var(--paper-2)}
.g-item{background:var(--paper-2);border:1px solid var(--line-soft);border-radius:4px;padding:10px 11px;margin-bottom:8px}.g-item .nm{margin-bottom:7px}.gauges{display:grid;grid-template-columns:repeat(4,1fr);gap:5px}.gauges button{min-height:44px;padding:10px 2px;border-radius:3px;border:1px solid var(--line);background:var(--paper-2);font-size:11.5px;font-weight:800;color:var(--muted)}.gauges button.on{background:var(--ao);border-color:var(--ao);color:var(--paper-2)}.gauges button.on.low{background:var(--kin);border-color:var(--kin)}.gauges button.on.out{background:var(--aka);border-color:var(--aka)}
.item-list{display:grid;grid-template-columns:minmax(0,1fr);gap:7px}.item-row{min-width:0;display:flex;align-items:stretch;background:var(--paper-2);border:1px solid var(--line-soft);border-radius:4px;box-shadow:0 1px 2px oklch(25% .02 265/.04)}.item-main{min-width:0;flex:1;display:flex;flex-direction:column;padding:10px 11px}.item-main .nm{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.item-number{margin-right:5px;color:var(--muted);font-size:10px;font-weight:700;font-variant-numeric:tabular-nums}.manual-add,.pending-link{display:flex;align-items:center;flex:0 0 auto}.manual-add button,.pending-link{min-height:44px;border:0;border-left:1px solid var(--line-soft);padding:5px 9px;background:transparent;font-size:10px;font-weight:800;white-space:nowrap}.manual-add button{color:var(--ao)}.pending-link{color:var(--muted);background:var(--paper)}.seal-link{width:48px;min-height:44px;border-left:1px solid var(--line-soft);display:grid;place-items:center;color:var(--ao)}
.item-form{display:flex;flex-direction:column}.fld{margin:0 0 12px;border:0}.fld>label,.fld>legend{display:block;font-size:10.5px;font-weight:800;letter-spacing:.06em;color:var(--faint);margin-bottom:4px}.fld>input{width:100%;background:var(--paper-2);border:1px solid var(--line);border-radius:3px;padding:10px 11px;font-size:13.5px;color:var(--text)}.fld>input::placeholder{color:var(--faint)}
.seg{display:grid;grid-template-columns:repeat(4,1fr);gap:4px}.seg label{position:relative}.seg input{position:absolute;opacity:0;pointer-events:none}.seg span{display:block;text-align:center;font-size:11px;font-weight:800;padding:9px 2px;border:1px solid var(--line);border-radius:3px;color:var(--muted);background:var(--paper-2)}.seg input:checked+span{background:var(--ao);border-color:var(--ao);color:var(--paper-2)}.two{display:grid;grid-template-columns:1fr 1fr;gap:8px}.qty-box{display:flex!important;align-items:center!important;gap:7px;background:var(--paper-2);border:1px solid var(--line);border-radius:3px;padding:5px 9px!important;margin:0!important}.qty-box span{font-size:12px;color:var(--muted);font-weight:700}.qty-box input{min-width:0;width:100%;border:0;padding:5px 0;font-weight:800;background:transparent;color:var(--text)}.form-actions{margin-top:8px}
.place-create{padding:12px;background:var(--paper-2);border:1px solid var(--line-soft);border-radius:4px;margin-bottom:12px}.place-create>label{display:block;font-size:10.5px;font-weight:800;letter-spacing:.06em;color:var(--faint);margin-bottom:5px}.place-create-row{display:grid;grid-template-columns:minmax(0,1fr) 72px;gap:8px}.place-create input,.place-rename input{min-width:0;min-height:44px;border:1px solid var(--line);border-radius:3px;background:var(--paper-2);color:var(--text);padding:9px 10px}.place-create .form-error{margin:7px 0 0}.place-list{display:grid;grid-template-columns:minmax(0,1fr);gap:8px}.place-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px 10px;align-items:center;padding:11px 12px;background:var(--paper-2);border:1px solid var(--line-soft);border-radius:4px}.place-rename{grid-column:1/-1;display:grid;grid-template-columns:minmax(0,1fr) 72px;gap:8px}.place-meta{font-size:11px;color:var(--muted);font-variant-numeric:tabular-nums}.place-delete{display:flex}.place-delete .b{padding-inline:14px}.b.danger{color:var(--aka);border-color:color-mix(in oklch,var(--aka) 28%,var(--line))}.place-fixed-name{display:flex;align-items:center;gap:8px;min-height:44px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.empty-state{padding:30px 16px;text-align:center;color:var(--muted)}.empty-state .b{margin-top:12px}
.login-shell{display:flex;align-items:center;justify-content:center;padding:22px 17px}.login-card{width:100%;max-width:330px}.brand-mark{width:64px;height:64px;margin:0 auto 14px;border-radius:4px;background:var(--ink);color:var(--paper-2);display:grid;place-items:center;box-shadow:var(--sh)}.login-card h1{text-align:center;font-size:21px;letter-spacing:.03em;margin-bottom:28px}.login-form label{display:block;font-size:10.5px;font-weight:800;letter-spacing:.06em;color:var(--faint);margin-bottom:4px}.login-form input{width:100%;border:1px solid var(--line);border-radius:3px;background:var(--paper-2);padding:11px;margin-bottom:10px}.form-error{color:var(--aka);font-size:11px;font-weight:700;margin-bottom:10px}
.public-shell{display:flex;flex-direction:column;padding-bottom:calc(25px + env(safe-area-inset-bottom))}.okwrap{margin:auto 0;text-align:center}.okmark{width:94px;height:94px;border-radius:50%;background:var(--koke-soft);border:2.5px solid var(--koke);display:flex;align-items:center;justify-content:center;margin:0 auto 18px;color:var(--koke)}.okmark .i{stroke-width:2.6}.okwrap h1{font-size:21px;font-weight:800;line-height:1.35;letter-spacing:-.01em}.confirm-item{background:var(--paper-2);border:1px solid var(--line-soft);border-radius:4px;padding:13px;margin-top:18px}.confirm-item .nm{font-size:16px}.when{font-size:11px;color:var(--faint);margin-top:8px}.thanks{text-align:center;font-size:11px;color:var(--faint)}
@media (min-width:521px){body{padding:22px}.app-shell{min-height:calc(100svh - 44px);border-radius:22px}.navb{bottom:22px;border-radius:0 0 22px 22px}}
@media (prefers-reduced-motion:no-preference){.gauges button,.b{transition:background-color .14s,color .14s,border-color .14s,transform .1s}.b:active,.gauges button:active{transform:scale(.98)}}
