:root{--bg:#fff;--fg:#111827;--muted:#6b7280;--line:#e5e7eb;--soft:#f3f4f6;--accent:#0f766e;--accent-fg:#fff;--bad:#b91c1c;--bad-soft:#fee2e2;--ok:#15803d;--warn:#b45309;--warn-soft:#fef3c7;--btn:#e2e8f0;--photo-bg:#dbeafe;--photo-fg:#1e40af;--ok-bg:#bbf7d0;--ok-fg:#14532d;--bad-bg:#fecaca;--bad-fg:#7f1d1d;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--bg:#0b0f14;--fg:#e5e7eb;--muted:#9ca3af;--line:#273040;--soft:#151b24;--accent:#2dd4bf;--accent-fg:#042f2e;--bad:#f87171;--bad-soft:#3b1515;--ok:#4ade80;--warn:#fbbf24;--warn-soft:#3a2a08;--btn:#2b3443;--photo-bg:#1e3a8a;--photo-fg:#dbeafe;--ok-bg:#14532d;--ok-fg:#dcfce7;--bad-bg:#7f1d1d;--bad-fg:#fee2e2}}*{box-sizing:border-box}html,body{background:var(--bg);color:var(--fg);margin:0;overflow-x:clip}main{overflow-wrap:anywhere}body{-webkit-text-size-adjust:100%;font:16px/1.45 system-ui,-apple-system,Apple SD Gothic Neo,Noto Sans KR,sans-serif}main{max-width:860px;margin:0 auto;padding:0 16px 48px}main.center{text-align:center;place-items:center;gap:12px;min-height:80vh;display:grid}a{color:var(--accent)}h1{margin:0;font-size:1.15rem}h2{font-size:1.1rem}h3{margin:20px 0 8px;font-size:1rem}h4{margin:0 0 8px}header{z-index:5;background:var(--bg);border-bottom:1px solid var(--line);align-items:center;gap:10px;margin:0 -16px 8px;padding:12px 16px;display:flex;position:sticky;top:0}header h1{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}header .back{padding:0 6px;font-size:1.8rem;line-height:1;text-decoration:none}header .who{color:var(--muted);font-size:.85rem}.tabs{gap:4px;margin-bottom:12px;display:flex;overflow-x:auto}.tabs a{text-align:center;white-space:nowrap;background:var(--soft);color:var(--fg);border-radius:10px;flex:1;padding:10px 6px;font-size:.9rem;text-decoration:none}.tabs a.on{background:var(--accent);color:var(--accent-fg);font-weight:600}label{color:var(--muted);margin:10px 0;font-size:.9rem;display:block}label>input,label>textarea,label>select,label>.row{margin-top:4px}label.inline{align-items:center;gap:6px;margin:0;display:flex}.fieldhead{justify-content:flex-start;align-items:center;gap:12px;margin-bottom:4px;display:flex}.fieldhead>span{color:var(--muted);font-size:.9rem}.fieldhead label.inline{font-size:.85rem}.qtyrow{flex-wrap:nowrap}.qtyrow input.qty{flex:0 0 32%;width:32%;min-width:0}.qtyrow .toggle{flex:1;min-width:0;padding:6px 4px;line-height:1.15}.toggle small{opacity:.8;font-size:.72rem;display:block}.field{margin:10px 0}.field>span{color:var(--muted);margin-bottom:4px;font-size:.9rem;display:block}input,textarea,select,button,.button{font:inherit;color:var(--fg);border:1px solid var(--line);background:var(--bg);border-radius:10px}input,textarea,select{width:100%;padding:10px 12px;font-size:max(16px,1rem)}html{touch-action:manipulation}input[type=checkbox]{width:20px;height:20px}input.big{padding:12px;font-size:1.15rem}input.qty{text-align:right;font-size:1.5rem}button,.button{cursor:pointer;background:var(--soft);text-align:center;min-height:44px;padding:10px 14px;text-decoration:none;display:inline-block}button:disabled{opacity:.5}button.primary,.button.primary{background:var(--accent);color:var(--accent-fg);border-color:var(--accent);font-weight:600}button.bad{color:var(--bad);border-color:var(--bad)}button.on,button.toggle.on{background:var(--accent);color:var(--accent-fg);border-color:var(--accent)}form.entry .actions{margin-top:12px}form.entry .actions button.primary{width:100%;min-height:54px;font-size:1.1rem}form.entry .actions.recount{justify-content:space-between;gap:12px;display:flex}form.entry .actions.recount button{min-height:54px;font-size:1.05rem}form.entry .actions.recount button.primary{flex:0 0 40%;width:auto}.scanbtn{flex:none;min-width:72px;font-weight:600}.row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.row>input,.row>select{flex:1;min-width:0}.row.end{justify-content:flex-end}.toggle{flex:1}.badbox{background:var(--bad-soft);border-radius:10px;margin-top:8px;padding:10px}.hint{margin:4px 0 8px;font-size:.9rem}.muted{color:var(--muted)}.small{font-size:.82rem}.warn{color:var(--warn);background:var(--warn-soft);border-radius:8px;padding:6px 10px}.pre{white-space:pre-line}.suggest{border-radius:10px;margin:0;padding:0;list-style:none;overflow:hidden}.suggest li{border:1px solid var(--line);cursor:pointer;border-top:0;padding:10px 12px}.suggest li:first-child{border-top:1px solid var(--line);border-radius:10px 10px 0 0}.suggest li:last-child{border-radius:0 0 10px 10px}.thumbs{flex-wrap:wrap;gap:6px;margin-top:6px;display:flex}.thumb{object-fit:cover;border:1px solid var(--line);border-radius:8px;width:72px;height:72px}.result{border:2px solid var(--ok);border-radius:12px;margin:12px 0;padding:12px}.nums{gap:12px;margin-top:6px;display:flex}.nums>div{background:var(--soft);border-radius:10px;flex:1;padding:8px 10px}.nums span{color:var(--muted);font-size:.8rem;display:block}.nums b{font-variant-numeric:tabular-nums;font-size:1.4rem}table.grid{border-collapse:collapse;table-layout:fixed;width:100%;font-size:.9rem}.grid td{overflow-wrap:anywhere}.grid th.num,.grid td.num{width:5.8em;font-size:.82rem}.grid.entries th:first-child{width:3.9em}.grid.entries th:nth-child(2){width:6em}.grid.entries th.num,.grid.entries td.num{width:3.4em;font-size:.85rem}.grid.entries td:nth-child(3){overflow-wrap:break-word;word-break:keep-all}.grid td.nowrap{white-space:nowrap}.grid td.ellipsis{text-overflow:ellipsis;overflow-wrap:normal;overflow:hidden}.row.filter{flex-wrap:nowrap;margin:6px 0}.row.filter input[type=search]{flex:1;min-width:0}.row.filter label.inline,.row.filter .muted{white-space:nowrap;flex:none}.grid th,.grid td{border-bottom:1px solid var(--line);text-align:left;vertical-align:top;padding:8px 6px}.grid th{color:var(--muted);font-size:.8rem;font-weight:500}.grid .num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.grid .strong{font-weight:700}.grid tr.short .strong{color:var(--bad)}.grid tr.over .strong{color:var(--warn)}.grid tbody tr{cursor:pointer}.grid.compact td,.grid.compact th{padding:4px 6px}.badge{background:var(--soft);color:var(--muted);vertical-align:middle;border-radius:99px;margin-left:6px;padding:1px 8px;font-size:.75rem;display:inline-block}.badge.bad{background:var(--bad-soft);color:var(--bad)}.badge.counting{background:var(--accent);color:var(--accent-fg)}.chip{background:var(--soft);color:var(--fg);border-radius:99px;align-items:center;gap:4px;margin:2px;padding:4px 8px;font-size:.85rem;display:inline-flex}.chip.warn{background:var(--warn-soft);color:var(--warn)}.chips{flex-wrap:wrap;display:flex}.cards{grid-template-columns:repeat(2,1fr);gap:8px;margin-bottom:12px;display:grid}@media (width>=640px){.cards{grid-template-columns:repeat(4,1fr)}}.card{background:var(--soft);border-radius:12px;padding:10px 12px}.card span{color:var(--muted);font-size:.8rem;display:block}.card b{font-variant-numeric:tabular-nums;font-size:1.4rem}.card small{color:var(--muted);display:block}a.item{border:1px solid var(--line);color:var(--fg);border-radius:12px;margin:8px 0;padding:12px;text-decoration:none;display:block}.team,.card-form{border:1px solid var(--line);border-radius:12px;margin:10px 0;padding:12px}dialog.dlg{border:1px solid var(--line);background:var(--bg);width:min(520px,100vw - 32px);color:var(--fg);border-radius:14px;padding:16px}dialog.dlg::backdrop{background:#00000080}dialog.dlg h3{margin-top:0}.toast{z-index:50;color:#fff;opacity:0;pointer-events:none;background:#111827;border-radius:10px;max-width:calc(100vw - 32px);padding:10px 16px;transition:all .2s;position:fixed;bottom:24px;left:50%;transform:translate(-50%,40px)}.toast.show{opacity:1;transform:translate(-50%)}.toast.ok{background:#166534}.toast.bad{background:#991b1b}.scan{z-index:40;background:#000;position:fixed;inset:0}.scan-video{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.scan-shade{pointer-events:none;place-items:center;display:grid;position:absolute;inset:0}.scan-box{border:3px solid #2dd4bf;border-radius:10px;box-shadow:0 0 0 100vmax #0000008c}.scan-top{padding:max(16px, env(safe-area-inset-top)) 16px 12px;color:#fff;text-align:center;position:absolute;top:0;left:0;right:0}.scan-top strong{font-size:1.1rem;display:block}.scan-status{margin-top:4px;font-size:.95rem}.scan-bottom{padding:16px 16px max(24px, env(safe-area-inset-bottom));justify-content:center;gap:12px;display:flex;position:absolute;bottom:0;left:0;right:0}.scan-btn{color:#111;background:#ffffffe6;border:0;min-width:110px}.scan-btn.on{background:#fde047}.diffitem{border-bottom:1px solid var(--line);cursor:pointer;padding:10px 0}.diffhead{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.diffhead>strong{overflow-wrap:anywhere;min-width:0}.diffhead>.dnums,.diffhead>.badge{flex:none}.diffhead .dnums{white-space:nowrap;font-variant-numeric:tabular-nums;font-size:.85rem}.diffhead .dnums b{font-size:1rem}.diffitem.short b{color:var(--bad)}.diffitem.over b{color:var(--warn)}.diffitem .detail{background:var(--soft);border-radius:8px;margin-top:6px;padding:8px}.diffitem .detail button{width:100%;margin-top:8px}.grid.teams td:first-child{overflow-wrap:anywhere}dialog.dlg{max-height:calc(100dvh - 32px);overflow-y:auto}dialog.dlg:focus{outline:none}dl.kv{grid-template-columns:4em 1fr;gap:6px 12px;margin:8px 0 12px;display:grid}dl.kv dt{color:var(--muted);font-size:.9rem}dl.kv dd{overflow-wrap:anywhere;margin:0;font-weight:600}.thumb{cursor:zoom-in;background:var(--soft)}.thumb.defect{border:2px solid var(--bad)}dialog.lightbox{touch-action:pinch-zoom;background:#000000eb;border:0;width:100vw;max-width:none;height:100dvh;max-height:none;margin:0;padding:0}dialog.lightbox[open]{place-items:center;display:grid}dialog.lightbox::backdrop{background:#0009}.lightbox img{object-fit:contain;max-width:100vw;max-height:92dvh}.lb-bar{bottom:max(12px, env(safe-area-inset-bottom));color:#ddd;justify-content:center;align-items:center;gap:12px;font-size:.85rem;display:flex;position:absolute;left:0;right:0}.lb-bar button{background:#fff}.netbar{flex-wrap:wrap;align-items:center;gap:8px;margin:-4px 0 8px;font-size:.85rem;display:flex}.netbar .dot{font-weight:600}.netbar.online .dot{color:var(--ok)}.netbar.shadow .dot{color:var(--warn)}.netbar.offline .dot{color:var(--bad)}.netbar .toggle{flex:none;min-height:34px;margin-left:auto;padding:4px 10px;font-size:.85rem}.netbar a.warnlink{color:var(--bad);font-weight:600}.outitem{border-bottom:1px solid var(--line);padding:10px 0}.outitem.needs,.outitem.error{cursor:pointer}.badge.pending,.badge.sending{background:var(--warn-soft);color:var(--warn)}.badge.needs,.badge.error{background:var(--bad-soft);color:var(--bad)}.result .ok{color:var(--ok);margin-top:6px;font-weight:600}.note{background:var(--warn-soft);color:var(--warn);border-radius:8px;padding:8px 10px}.row>.push{margin-left:auto}.roundhead{background:var(--soft);border-radius:6px;margin:14px 0 4px;padding:4px 8px;font-size:.9rem}ol.history{margin:0;padding:0;list-style:none}ol.history li{border-bottom:1px solid var(--line);padding:8px 0}.evhead{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.evact{font-size:.9rem;font-weight:700}.ev.delete .evact,.ev.photo_delete .evact,.ev.overwrite .evact{color:var(--bad)}.ev.edit .evact,.ev.merge .evact{color:var(--warn)}.ev.add .evact,.ev.photo_add .evact{color:var(--ok)}.photorow{flex-wrap:nowrap}.photorow>button{flex:none}.sizes{flex:1;gap:4px;min-width:0;display:flex}.sizes .toggle.size{flex:1;min-width:0;padding:6px 2px}.calcbtn{min-height:32px;padding:4px 12px;font-size:.85rem;font-weight:600}.calcline-sum{color:var(--muted);margin-top:4px}.calcline-sum.warn{color:var(--warn);background:var(--warn-soft);border-radius:8px;padding:6px 8px}button.linkish{min-height:0;color:var(--accent);font-size:inherit;background:0 0;border:0;padding:0;text-decoration:underline}dialog.dlg.calc{width:min(560px,100vw - 16px);padding:12px}.calchead{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.calchead h3{overflow-wrap:anywhere;margin:0;font-size:1rem}.calctotal{font-variant-numeric:tabular-nums;font-size:1.6rem}.calclines{max-height:58dvh;margin:8px 0;overflow-y:auto}.calcline{border-bottom:1px solid var(--line);padding:8px 0}.calcline.removed{color:var(--muted)}.calcrow{flex-wrap:nowrap;align-items:center;gap:6px;display:flex}.calcrow .kind{flex:0 0 2.4em;font-weight:700}.calcrow input{text-align:right;flex:none;width:4.2em;padding:8px 6px;font-size:1.1rem}.calcrow .sub{font-variant-numeric:tabular-nums;white-space:nowrap;margin-left:auto;font-weight:700}.calcbtns{flex-wrap:nowrap;margin-top:6px}.calcbtns>button{flex:none;min-width:44px;padding:6px 8px}.calcbtns .calcnote{flex:1;min-width:0;padding:6px 8px}.calcline .hist{margin-top:4px}.calcfoot{justify-content:space-between;margin-top:8px}.calcfoot .primary{min-width:40%}.calcrow input:disabled{background:var(--soft);color:var(--muted);border-style:dashed}.teampick{background:var(--soft);border-radius:12px;margin:4px 0 10px;padding:8px}.teamrow{flex-wrap:nowrap}.teamrow .teamarrow{flex:0 0 56px;font-size:1.6rem;font-weight:700;line-height:1}.teamrow .teamname,.teamrow select{flex:1;min-width:0;font-size:1.05rem;font-weight:700}.teammembers{text-align:center;margin-top:4px}.flabel,.field>span.flabel,.fieldhead>span.flabel{color:var(--fg);font-weight:700}.scanbtn{background:var(--btn);border-color:var(--btn)}.photorow .photobtn{background:var(--photo-bg);color:var(--photo-fg);border-color:var(--photo-bg);white-space:nowrap;flex:0 auto;min-width:0;font-weight:600}.photorow .sizes{flex:none;gap:4px;margin-left:2.6em}.sizes .toggle.size{border-radius:99px;flex:0 0 2.6em;width:2.6em;min-width:0;padding:6px 0}.toggle.okbtn{background:var(--ok-bg);color:var(--ok-fg);border-color:var(--ok-bg)}.toggle.badbtn{background:var(--bad-bg);color:var(--bad-fg);border-color:var(--bad-bg)}.toggle.okbtn.on{color:#fff;background:#15803d;border-color:#15803d}.toggle.badbtn.on{color:#fff;background:#b91c1c;border-color:#b91c1c}.evhead{white-space:nowrap;flex-wrap:nowrap;justify-content:flex-start;overflow:hidden}.evhead .evact{flex:none}.evhead .evinfo{text-overflow:ellipsis;min-width:0;color:var(--muted);flex:0 auto;font-size:.8rem;overflow:hidden}body.adminmode{--bg:#eef2ff}body.adminmode input,body.adminmode textarea,body.adminmode select{background:#fff}body.adminmode header{background:#e0e7ff}@media (prefers-color-scheme:dark){body.adminmode{--bg:#151a33}body.adminmode input,body.adminmode textarea,body.adminmode select{background:#0b0f14}body.adminmode header{background:#1c2244}}.people{border:1px solid var(--line);background:#fff;border-radius:10px;max-height:260px;margin:6px 0;padding:4px 8px;overflow-y:auto}.person{border-bottom:1px solid var(--line);color:var(--fg);align-items:center;gap:8px;margin:0;padding:6px 0;display:flex}.person .pname{min-width:3.5em;font-weight:600}.person .muted{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.chip.taken{background:var(--warn-soft)}.whlist .chip{font-size:.85rem}@media (prefers-color-scheme:dark){.people{background:#0b0f14}}.grid tr.open td{background:var(--soft)}.grid tr.detailrow td{border-bottom:1px solid var(--line);cursor:default;padding:0 4px 10px}.grid tr.detailrow .detail{background:var(--soft);border-radius:8px;padding:8px}.grid tr.detailrow .detail>div{padding:2px 0}.grid tr.detailrow .detail button{width:100%;margin-top:8px}.assignedhead{color:var(--bad)}.logfilters{grid-template-columns:1fr 1fr;gap:6px;margin:8px 0;display:grid}.logfilters input{grid-column:1/-1}.ev .small a{font-weight:600}.grid tr.deleted td{color:var(--muted);text-decoration:line-through}.grid tr.deleted td:last-child{font-size:.75rem;text-decoration:none}.thumbwrap{display:inline-block;position:relative}.thumbwrap.deleted .thumb{opacity:.45;filter:grayscale()}.thumbwrap.deleted:after{content:"";pointer-events:none;background:linear-gradient(to top right, transparent calc(50% - 1.5px), var(--bad) calc(50% - 1.5px), var(--bad) calc(50% + 1.5px), transparent calc(50% + 1.5px));border-radius:8px;position:absolute;inset:0}.thumbtag{background:var(--bad);color:#fff;pointer-events:none;border-radius:6px;padding:0 5px;font-size:.7rem;position:absolute;bottom:4px;left:4px}
