:root{--ground:#edf1ec;--paper:#fff;--ink:#16171a;--sub:#555c57;--line:#cfd6ce;--line-soft:#e6ebe5;--field:#aab3a9;--green:#17603f;--green-deep:#0e4a2f;--green-soft:#e2efe7;--on-green:#dcece2;--red:#c4201f;--red-soft:#fbe9e7;--blue:#1d4fb0;--blue-soft:#e5ebf8;--amber:#7d5200;--amber-soft:#fbefc8;--r:6px;--r-sheet:10px;--nav-h:62px;--ease:cubic-bezier(.16, 1, .3, 1);--display:"Jua", "Gowun Dodum", "Malgun Gothic", sans-serif;--body:"Gowun Dodum", "Malgun Gothic", "Apple SD Gothic Neo", sans-serif}*{box-sizing:border-box}html{scrollbar-color:var(--field) var(--ground);scrollbar-width:thin}body{background:var(--ground);color:var(--ink);font-family:var(--body);caret-color:var(--green);word-break:keep-all;margin:0;font-size:16px;line-height:1.5}::selection{background:var(--green);color:#fff}:focus-visible{outline:2px solid var(--green);outline-offset:2px}h1,h2,h3,strong,b,th,.btn,.seg button,.badge,.name,.rail nav button{font-family:var(--display);font-weight:400}.num{font-variant-numeric:tabular-nums;white-space:nowrap}.sub{color:var(--sub);font-size:14px}.grow{flex:1;min-width:0}.low{color:var(--red)}.icon{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;flex:none;width:20px;height:20px}.app{grid-template-columns:216px minmax(0,1fr);min-height:100dvh;display:grid}.rail{z-index:5;background:var(--green-deep);height:100dvh;color:var(--on-green);flex-direction:column;padding:20px 12px 16px;display:flex;position:sticky;top:0}.brand{color:#fff;margin:6px 10px 24px;font-size:26px;line-height:1}.rail nav{flex-direction:column;gap:2px;display:flex}.rail nav button,.logout{border-radius:var(--r);min-height:44px;color:inherit;cursor:pointer;text-align:left;transition:background-color .15s var(--ease);background:0 0;border:0;align-items:center;gap:10px;padding:0 12px;font-size:16px;display:flex}.rail nav button:hover,.logout:hover{background:#ffffff1f}.rail nav button.on{background:var(--paper);color:var(--ink)}.rail :focus-visible{outline-color:#fff}.logout{font-family:var(--body);margin-top:auto;font-size:14px}.short{display:none}main{width:100%;max-width:1180px;margin:0 auto;padding:28px 32px 96px}main.narrow{max-width:400px;padding-top:12vh}section.form{max-width:720px}h2{text-wrap:balance;margin:0 0 16px;font-size:24px;line-height:1.25}h3{margin:0 0 12px;font-size:17px}.page-head{flex-wrap:wrap;align-items:center;gap:8px 12px;margin-bottom:16px;display:flex}.page-head h2{margin:0}.sheet{background:var(--paper);border:1px solid var(--line);border-radius:var(--r-sheet)}.sheet.pad{padding:16px}.sheet+.sheet,.sheet+.btn.wide{margin-top:12px}.sheet+h2,.facts+h2{margin-top:32px}.empty{text-align:center;color:var(--sub);padding:32px 16px}.empty p{margin:0 0 12px}.empty p:last-child{margin:0}.error{color:var(--red);background:var(--red-soft);border-radius:var(--r);margin:12px 0;padding:8px 12px;font-size:14px}code{background:var(--ground);border-radius:4px;padding:1px 4px;font-size:13px}label,.label{color:var(--sub);margin-bottom:4px;font-size:13px;display:block}input,select,textarea{width:100%;min-height:44px;font:inherit;color:inherit;background:var(--paper);border:1px solid var(--field);border-radius:var(--r);padding:9px 12px}input::placeholder,textarea::placeholder{color:#6b736c}input:focus-visible,select:focus-visible,textarea:focus-visible{outline-offset:0;border-color:var(--green)}input[type=month]{width:auto}input[type=date]{appearance:none;text-align:left;min-width:0}input[type=date]::-webkit-date-and-time-value{text-align:left}textarea.auto{resize:none;min-height:clamp(64px,12vh,160px);display:block;overflow:hidden}.row{grid-template-columns:1fr 1fr;gap:12px;margin-bottom:12px;display:grid}.row.tight{margin:12px 0 0}.row>*{min-width:0}.field{margin-bottom:12px}.inline{gap:8px;display:flex}.inline .unit{flex:none;width:88px}.search{flex:1;max-width:420px;position:relative}.search .icon{color:var(--sub);position:absolute;top:12px;left:12px}.search input{padding-left:40px}.btn{white-space:nowrap;cursor:pointer;border:1px solid var(--field);border-radius:var(--r);background:var(--paper);min-height:44px;color:var(--ink);transition:background-color .15s var(--ease), transform .15s var(--ease);flex:none;justify-content:center;align-items:center;gap:6px;padding:0 16px;font-size:16px;display:inline-flex}.btn:hover{background:var(--ground)}.btn:active{transform:translateY(1px)}.btn.primary{background:var(--green);border-color:var(--green);color:#fff}.btn.primary:hover{background:var(--green-deep)}.btn.small{min-height:36px;padding:0 12px;font-size:14px}.btn.small .icon,.btn.icon-only .icon{width:18px;height:18px}.btn.icon-only{width:44px;padding:0}.btn.small.icon-only{width:36px}.btn.danger{color:var(--red)}.btn.danger:hover{background:var(--red-soft)}.btn.wide{width:100%}.btn.dashed{color:var(--green);border-style:dashed}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.actions{justify-content:flex-end;gap:8px;display:flex}.seg{gap:6px;display:flex}.seg button{cursor:pointer;border:1px solid var(--field);border-radius:var(--r);background:var(--paper);min-height:44px;color:var(--sub);flex:1;padding:0 12px;font-size:16px}.seg button:hover{background:var(--ground)}.seg button.on{background:var(--ink);border-color:var(--ink);color:#fff}.seg button[data-v=A].on{background:var(--amber-soft);border-color:var(--amber);color:var(--amber);box-shadow:inset 0 0 0 1px var(--amber)}.seg button[data-v=B].on{background:var(--green-soft);border-color:var(--green);color:var(--green);box-shadow:inset 0 0 0 1px var(--green)}.seg.filter{flex:1;max-width:360px}.page-head .search{flex:240px}.page-head .seg.filter{flex:280px}.badge{white-space:nowrap;border-radius:4px;padding:0 8px;font-size:13px;line-height:1.5;display:inline-block}.badge.A{background:var(--amber-soft);color:var(--amber)}.badge.B,.badge.in{background:var(--green-soft);color:var(--green)}.badge.out{background:var(--blue-soft);color:var(--blue)}.badge.waste{background:var(--red-soft);color:var(--red)}.badge.mood{box-shadow:inset 0 0 0 1px var(--line);color:var(--sub)}.dot{vertical-align:middle;border:1px solid #0003;border-radius:50%;width:10px;height:10px;margin-right:4px;display:inline-block}.order{padding:14px 16px}.order+.order{border-top:1px solid var(--line-soft)}.order-head{flex-wrap:wrap;align-items:baseline;gap:4px 10px;display:flex}.order-head .name{font-size:17px}.order-head .price{margin-left:auto;font-size:17px}.order-head .sub{flex-basis:100%;order:1}.items-line{flex-wrap:wrap;gap:2px 14px;margin-top:6px;display:flex}.product-name{color:var(--ink)}.product-price{margin-left:auto}.memo{background:var(--ground);border-radius:var(--r);margin:8px 0 0;padding:6px 10px;font-size:14px}.order-foot{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin-top:10px;display:flex}.authors{font-size:12px}.plan{grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);align-items:start;gap:24px;display:grid}.daysheet{background:var(--paper);border:1px solid var(--line);border-radius:var(--r-sheet);box-shadow:0 1px 0 var(--line), 0 16px 28px -20px #0e4a2f73;animation:tear .36s var(--ease);overflow:hidden}@keyframes tear{0%{clip-path:inset(0 0 55%);transform:translateY(-6px)}to{clip-path:inset(0);transform:none}}.ds-band{background:var(--green);color:#fff;min-height:44px;font-family:var(--display);justify-content:space-between;align-items:center;padding:0 16px;font-size:16px;display:flex}.ds-band .btn{border-color:#0000;min-height:32px;padding:0 12px;font-size:14px;position:relative}.ds-band .btn:after{content:"";position:absolute;inset:-6px -8px}.ds-date{text-align:center;grid-template-columns:44px 1fr 44px;align-items:center;padding:16px 16px 4px;display:grid}.ds-num{margin:0;font-size:6rem;line-height:1}.ds-dow{font-family:var(--display);font-size:20px}.daysheet.sun .ds-num,.daysheet.sun .ds-dow{color:var(--red)}.daysheet.sat .ds-num,.daysheet.sat .ds-dow{color:var(--blue)}.ds-sum{text-align:center;border-bottom:1px solid var(--line);margin:0;padding:4px 16px 16px}.ds-sum strong{color:var(--ink);font-size:17px}.side h3{margin:0 0 8px}.week{margin:0 0 24px;padding:0;list-style:none;overflow:hidden}.wk{border:0;border-top:1px solid var(--line-soft);width:100%;min-height:52px;font:inherit;color:inherit;text-align:left;cursor:pointer;background:0 0;grid-template-columns:84px minmax(0,1fr) auto;align-items:center;gap:12px;padding:8px 14px;display:grid}.week li:first-child .wk{border-top:0}.wk:hover{background:var(--ground)}.wk:focus-visible{outline-offset:-2px}.wk-d{align-items:baseline;gap:5px;display:flex}.wk-d b{font-size:22px;line-height:1}.wk-d em{color:var(--green);font-size:12px;font-style:normal}.wk.sun .wk-d{color:var(--red)}.wk.sat .wk-d{color:var(--blue)}.wk-line{white-space:nowrap;text-overflow:ellipsis;font-size:14px;display:block;overflow:hidden}.wk-line b{margin-right:6px}.wk-line .dot{margin:0 0 0 4px}.wk-order{display:block}.wk-order+.wk-order{margin-top:4px}.wk-memo{color:var(--sub);font-size:13px}.wk-none{color:var(--sub);font-size:14px}.wk-cnt{font-family:var(--display);color:var(--green);font-size:14px}.wk.sel,.wk.sel:hover{background:var(--ink);color:#fff}.wk.sel .wk-none,.wk.sel .wk-memo{color:#c5cbc5}.wk.sel .wk-cnt,.wk.sel .wk-d em{color:#fff}.wk.sel.sun .wk-d{color:#ff9a92}.wk.sel.sat .wk-d{color:#a8c0ff}.month-head{align-items:center;gap:8px;margin-bottom:8px;display:flex}.month-head h3{text-align:center;min-width:104px;margin:0}.cal-grid{grid-template-columns:repeat(7,1fr);gap:2px;padding:8px;display:grid}.cal-week{text-align:center;color:var(--sub);padding:4px 0;font-size:12px}.cal-day{border-radius:var(--r);min-height:48px;color:inherit;cursor:pointer;font:inherit;background:0 0;border:0;flex-direction:column;align-items:center;gap:3px;padding:4px 0;display:flex}.cal-day .d{font-family:var(--display);font-size:15px;line-height:1.2}.cal-day .cnt{background:var(--green-soft);color:var(--green);border-radius:99px;padding:2px 6px;font-size:11px;line-height:1}.cal-week.sun,.cal-day.sun .d{color:var(--red)}.cal-week.sat,.cal-day.sat .d{color:var(--blue)}.cal-day:hover{background:var(--ground)}.cal-day.today{box-shadow:inset 0 0 0 2px var(--green)}.cal-day.sel,.cal-day.sel:hover{background:var(--ink)}.cal-day.sel .d{color:#fff}.cal-day.sel .cnt{color:var(--ink);background:#fff}.rowbtn{width:100%;min-height:56px;font:inherit;color:inherit;text-align:left;cursor:pointer;background:0 0;border:0;align-items:center;gap:12px;padding:10px 16px;display:flex}.rowbtn:hover{background:var(--ground)}.rowbtn:focus-visible{outline-offset:-2px}.rowbtn .name,.rowbtn strong{font-size:17px}.rows>*+*{border-top:1px solid var(--line-soft)}.rows{overflow:hidden}.detail{padding:4px 16px 16px}.detail .btn.wide{margin:12px 0}.move{border-top:1px solid var(--line-soft);align-items:center;gap:8px;padding:8px 0;display:flex}.facts{grid-template-columns:repeat(4,1fr);margin:0 0 20px;display:grid}.facts>div{min-width:0;padding:12px 16px}.facts>div+div{border-left:1px solid var(--line-soft)}.facts dt{color:var(--sub);font-size:13px}.facts dd{font-family:var(--display);margin:0;font-size:19px}.facts dd.small{font-size:15px;line-height:1.9}.color-chip{white-space:nowrap;margin-right:8px}table{border-collapse:collapse;table-layout:fixed;width:100%}th,td{text-align:right;white-space:nowrap;padding:10px 16px}th:first-child{width:22%}th:nth-child(2){width:18%}th{color:var(--sub);font-size:13px}td{border-top:1px solid var(--line-soft)}th:first-child,td:first-child{text-align:left}.hint{border-radius:var(--r);margin-bottom:12px;padding:8px 12px;font-size:14px}.hint.known{background:var(--green-soft);color:var(--green)}.hint.new{background:var(--ground);color:var(--sub)}.product-head{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.product-head h3{margin:0}.item-block{margin-bottom:10px}.item{grid-template-columns:2fr 1.2fr 44px;gap:8px;margin-bottom:4px;display:grid}.stock-link{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.stock-link select,.stock-link input{min-height:36px;padding:4px 10px;font-size:14px}.stock-link .stock-pick{width:auto;max-width:60%}.stock-link .qty{text-align:right;width:56px}.price-line{border-top:1px dashed var(--line);align-items:center;gap:12px;margin-top:12px;padding-top:12px;display:flex}.price-line label{white-space:nowrap;margin:0}.price-line input{text-align:right;flex:1;min-width:0}.savebar{z-index:4;background:var(--paper);border:1px solid var(--line);border-radius:var(--r-sheet);align-items:center;gap:8px;margin-top:16px;padding:10px 10px 10px 16px;display:flex;position:sticky;bottom:16px;box-shadow:0 12px 24px -14px #16171a80}.savebar-total{flex:1;min-width:0;line-height:1.25}.savebar{flex-wrap:wrap}.savebar .error{flex:0 0 100%;margin:0}.sheet+h2{margin-top:24px}.date-filter{white-space:nowrap;align-items:center;gap:8px;margin:0;display:flex}.date-filter input{width:auto;min-width:150px}.day-head{background:var(--ground);border-bottom:1px solid var(--line-soft);justify-content:space-between;align-items:baseline;gap:8px;margin:0;padding:10px 16px;font-size:15px;display:flex}.savebar-total strong{font-size:22px;display:block}.sheet-body{padding:20px 16px 16px}h1.ds-band{margin:0}.sub-line{display:block}.btn.wide+.sheet{margin-top:12px}@media (width<=860px){.app{display:block}.rail{flex-direction:row;align-items:center;height:auto;padding:6px 8px 6px 16px}.brand{margin:0;font-size:22px}.logout{margin:0 0 0 auto}.rail nav{z-index:5;padding:4px 4px calc(4px + env(safe-area-inset-bottom));background:var(--green-deep);flex-direction:row;gap:0;position:fixed;bottom:0;left:0;right:0}.rail nav button{white-space:nowrap;flex-direction:column;flex:1;justify-content:center;gap:2px;min-height:54px;padding:0;font-size:12px}.long{display:none}.short{display:inline}main{padding:16px 16px calc(var(--nav-h) + 40px + env(safe-area-inset-bottom))}.plan{grid-template-columns:1fr;gap:20px}.ds-date{padding:8px 12px 0}.ds-date>div{justify-content:center;align-items:baseline;gap:8px;display:flex}.ds-num{font-size:3.25rem}.ds-sum{padding:0 16px 10px}.savebar{bottom:calc(var(--nav-h) + 8px + env(safe-area-inset-bottom))}.facts{grid-template-columns:repeat(2,1fr)}.facts>div:nth-child(odd){border-left:0}.facts>div:nth-child(n+3){border-top:1px solid var(--line-soft)}th,td{padding:10px 8px}th:first-child,td:first-child{padding-left:16px}th:last-child,td:last-child{padding-right:16px}}@media (width<=520px){.row{grid-template-columns:1fr}.item{grid-template-columns:1.6fr 1fr 44px}.wk{grid-template-columns:64px minmax(0,1fr) auto;gap:8px}}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
