:root{--navy:#313392;--navy-deep:#1c1d54;--navy-mid:#4245b0;--navy-soft:#8182da;--on-navy-dim:#9fa0d2;--brand:var(--navy);--brand-deep:var(--navy-deep);--ink:#1b1b32;--paper:#f8f8fb;--tint:#e9e9f6;--line:#dcdce5;--mut:#656581;--dim:#9a9aaf;--hair:#ececf4;--danger:#c0392b;--mono:"IBM Plex Mono", ui-monospace, Consolas, monospace}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--paper);color:var(--ink);word-break:keep-all;-webkit-font-smoothing:antialiased;font-family:Pretendard Variable,Pretendard,Malgun Gothic,Apple SD Gothic Neo,sans-serif;line-height:1.6}button{font:inherit;cursor:pointer}input,select{font:inherit}.shell{background:#fff;flex-direction:column;max-width:430px;min-height:100dvh;margin:0 auto;display:flex}.col{display:contents}.topbar{background:var(--cx-bg);color:#fff;z-index:5;align-items:center;gap:9px;padding:12px 18px;font-size:15px;font-weight:700;display:flex;position:sticky;top:0}.topbar .mark{flex-shrink:0;width:auto;height:15px;display:block}.topbar .sub{font-family:var(--mono);color:var(--on-navy-dim);margin-left:auto;font-size:11px;font-weight:500}.body{flex-direction:column;flex:1;gap:13px;padding:18px;display:flex}.bottom-nav{border-top:1px solid var(--line);background:#fff;display:flex;position:sticky;bottom:0}.bottom-nav a{text-align:center;color:var(--dim);white-space:nowrap;flex:1;padding:12px 0;font-size:12px;text-decoration:none}.bottom-nav a.on{color:var(--brand);font-weight:800}.dlg-overlay{z-index:100;background:#1b1b3273;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.dlg{background:#fff;border-radius:14px;flex-direction:column;gap:12px;width:min(92vw,420px);padding:22px 24px;display:flex;box-shadow:0 10px 40px #1c1d5440}.dlg h3{letter-spacing:-.01em;font-size:16.5px;font-weight:800}.dlg-msg{color:var(--mut);white-space:pre-line;font-size:13.5px}.dlg-field{flex-direction:column;gap:5px;display:flex}.dlg-field>span{color:var(--mut);font-size:12.5px;font-weight:600}.dlg-hint{color:var(--dim);font-size:11.5px;font-weight:400}.dlg-actions{gap:8px;margin-top:4px;display:flex}.dlg-actions .btn{flex:1;padding:11px}.btn.pri.danger{background:var(--danger)}.set-grid{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));align-items:start;gap:14px;margin-top:12px;display:grid}.set-grid .card{flex-direction:column;gap:10px;min-height:118px;padding:16px 18px;display:flex}.set-head{justify-content:space-between;align-items:center;gap:10px;display:flex}.set-head .lb{font-weight:700}.set-status{color:var(--mut);font-size:13px}.switch{flex-shrink:0;width:42px;height:24px;display:inline-block;position:relative}.switch input{opacity:0;cursor:pointer;margin:0;position:absolute;inset:0}.switch .knob{background:#c9cadb;border-radius:99px;transition:background .15s;position:absolute;inset:0}.switch .knob:after{content:"";background:#fff;border-radius:50%;width:18px;height:18px;transition:transform .15s;position:absolute;top:3px;left:3px;box-shadow:0 1px 3px #00000040}.switch input:checked+.knob{background:var(--navy)}.switch input:checked+.knob:after{transform:translate(18px)}.switch input:disabled+.knob{opacity:.5}.tip{background:var(--tint);width:16px;height:16px;color:var(--navy);cursor:help;vertical-align:1px;border-radius:50%;justify-content:center;align-items:center;font-size:11px;font-weight:700;display:inline-flex;position:relative}.tip-pop{z-index:30;background:var(--ink);color:#fff;white-space:normal;text-align:left;border-radius:9px;width:300px;padding:11px 13px;font-size:12.5px;font-weight:400;line-height:1.6;display:none;position:absolute;top:21px;left:-8px;box-shadow:0 8px 24px #1b1b324d}.tip-pop b{color:#ffd3cb}.tip:hover .tip-pop,.tip:focus .tip-pop{display:block}.empty{color:var(--mut);flex-direction:column;align-items:center;gap:7px;padding:34px 12px;font-size:13.5px;display:flex}.empty svg{opacity:.45}.empty .sub{color:var(--dim);font-size:12px}.done svg circle{stroke-dasharray:151;stroke-dashoffset:151px;animation:.5s ease-out forwards dlg-draw}.done svg path{stroke-dasharray:36;stroke-dashoffset:36px;animation:.35s ease-out .4s forwards dlg-draw}.done .big,.done .sum{animation:.4s ease-out .5s backwards dlg-rise}@keyframes dlg-draw{to{stroke-dashoffset:0}}@keyframes dlg-rise{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.login-brand{flex-direction:column;align-items:center;gap:9px;padding:30px 0 12px;display:flex}.login-brand img{width:150px;display:block}.login-brand .cap{color:var(--navy);letter-spacing:.01em;font-size:13px;font-weight:700}.info-row{border-bottom:1px solid var(--hair);justify-content:space-between;align-items:center;gap:10px;padding:8px 0;font-size:14px;display:flex}.info-row:last-child{border-bottom:0;padding-bottom:2px}.info-row>span{color:var(--mut)}.input{border:1px solid var(--line);background:#fff;border-radius:8px;width:100%;padding:12px 14px;font-size:15px}.input:focus{outline:2px solid var(--brand);border-color:#0000}.pw{position:relative}.pw .input{padding-right:62px}.pw-toggle{color:var(--mut);background:0 0;border:0;padding:8px;font-size:12.5px;font-weight:700;position:absolute;top:50%;right:6px;transform:translateY(-50%)}.check{color:var(--mut);cursor:pointer;align-items:center;gap:8px;font-size:13px;display:flex}.check input{width:16px;height:16px;accent-color:var(--navy)}.btn{text-align:center;white-space:nowrap;border:0;border-radius:8px;width:100%;padding:13px;font-size:15px;font-weight:700}a.btn{text-decoration:none;display:block}.btn.pri{background:var(--brand);color:#fff}.btn.pri:disabled{cursor:default;background:#b3b3d2}.btn.sec{border:1px solid var(--navy);color:var(--navy);background:#fff}.btn.ghost{color:var(--mut);background:0 0;border:0;font-size:13px;font-weight:500}.btn.mini{border-radius:6px;width:auto;padding:6px 12px;font-size:12.5px}.card{border:1px solid var(--line);background:#fff;border-radius:10px;padding:13px 16px}.card.hl{background:var(--tint);border-color:#0000}.card .lb{color:var(--mut);font-size:12px}.card .vl{font-size:22px;font-weight:800;font-family:var(--mono);letter-spacing:-.03em}.err{color:var(--danger);font-size:13px}.note{color:var(--dim);text-align:center;font-size:12px}.row{gap:10px;display:flex}.row>*{flex:1}.list-item{border-bottom:1px solid var(--hair);justify-content:space-between;align-items:center;gap:8px;padding:10px 2px;font-size:13.5px;display:flex}.list-item .meta{color:var(--dim);font-size:11.5px}.amt{font-family:var(--mono);white-space:nowrap;font-weight:600}.amt.p{color:var(--brand)}.tag{border:1px solid var(--line);color:var(--mut);white-space:nowrap;border-radius:4px;padding:1px 7px;font-size:10.5px}.tabs{gap:8px;display:flex}.tabs button{text-align:center;border:1px solid var(--line);color:var(--mut);white-space:nowrap;background:#fff;border-radius:8px;flex:1;padding:10px 0;font-size:14px}.tabs button.on{background:var(--navy-deep);color:#fff;border-color:var(--navy-deep);font-weight:700}.center{text-align:center}.spacer{flex:1}.amount-disp{border:1.5px solid var(--navy);text-align:right;font-size:26px;font-weight:700;font-family:var(--mono);background:#fff;border-radius:10px;padding:14px 16px}.amount-disp span{color:var(--mut);font-size:14px;font-weight:400}.keypad{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.keypad button{border:1px solid var(--line);text-align:center;font-size:18px;font-family:var(--mono);background:#fff;border-radius:8px;padding:14px 0}.keypad button:active{background:var(--tint)}.qrbox{background:#fff;border:2px dashed #bdbdda;border-radius:14px;flex-direction:column;align-items:center;gap:10px;padding:22px;display:flex}.qrbox canvas{width:220px!important;height:220px!important}.qrbox .ttl{color:var(--mut);font-size:12px}.scanbox{aspect-ratio:1;background:#14152e;border-radius:12px;position:relative;overflow:hidden}.scanbox video{object-fit:cover;width:100%;height:100%}.scanbox .guide{color:#fff;text-shadow:0 1px 4px #000000b3;text-align:center;justify-content:center;align-items:center;padding:12px;font-size:13px;display:flex;position:absolute;inset:0}.done{text-align:center;flex-direction:column;align-items:center;gap:10px;padding:28px 0 10px;display:flex}.done .big{font-size:21px;font-weight:800}.done .sum{font-family:var(--mono);font-size:30px;font-weight:700}.admin{min-height:100dvh;display:flex}.sidebar{background:var(--cx-bg);color:#b9bad8;flex-direction:column;flex-shrink:0;width:208px;padding:18px 0;display:flex}.sidebar .logo{border-bottom:1px solid #ffffff24;margin-bottom:10px;padding:0 22px 15px}.sidebar .logo img{width:104px;display:block}.sidebar .logo .cap{color:var(--on-navy-dim);letter-spacing:.02em;margin-top:7px;font-size:11.5px;font-weight:600}.side-user{border-bottom:1px solid #ffffff24;margin-bottom:10px;padding:11px 22px 12px}.side-user .who{color:#fff;align-items:center;gap:8px;font-size:13.5px;display:flex}.side-user .who b{font-weight:800}.side-user .who button{color:#e5604d;cursor:pointer;background:0 0;border:0;padding:2px;display:flex}.side-user .clock{font-family:var(--mono);color:#a9aabe;margin-top:5px;font-size:12px}.sidebar a{color:inherit;white-space:nowrap;padding:10px 22px;font-size:13.5px;text-decoration:none;display:block}.sidebar a.on{color:#fff;box-shadow:inset 3px 0 0 var(--cx-lav);background:#a9abe42e;font-weight:700}.main{flex:1;min-width:0;padding:26px 30px}.main h1{letter-spacing:-.02em;margin-bottom:18px;font-size:20px;font-weight:800}.statrow{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin-bottom:18px;display:grid}table.tbl{border-collapse:collapse;border:1px solid var(--line);background:#fff;border-radius:8px;width:100%;font-size:13px;overflow:hidden}table.tbl th{background:var(--tint);color:var(--brand-deep);text-align:left;white-space:nowrap;padding:9px 12px;font-size:12.5px;font-weight:700}table.tbl td{border-top:1px solid var(--hair);padding:8px 12px}table.tbl td.n{font-family:var(--mono);white-space:nowrap;font-size:12.5px}.filterbar{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:14px;display:flex}.filterbar .input,.filterbar select{width:auto;padding:8px 12px;font-size:13px}.filterbar .btn.mini{padding:8px 18px;font-size:13px}.filterbar .input,.filterbar select{text-align:center}.filterbar .input::-webkit-date-and-time-value{text-align:center}.tblwrap{overflow-x:auto}table.tbl.actlast th:last-child{width:1%}table.tbl.actlast td:last-child{white-space:nowrap}@media (width<=760px){.admin{flex-direction:column}.sidebar{flex-flow:wrap;width:100%;padding:0}.sidebar a{padding:10px 14px}.sidebar .logo{display:none}.side-user{justify-content:space-between;align-items:center;width:100%;margin-bottom:0;padding:8px 14px;display:flex}.side-user .clock{order:-1;margin-top:0}.side-user .who>span{display:none}.sidebar a.on{box-shadow:inset 0 -3px 0 var(--cx-lav)}.main{padding:16px}}:root{--cx-bg:#26286b;--cx-tile:#34367e;--cx-lav:#a9abe4;--cx-line:#ffffff29}.shell.cx{background:var(--cx-bg);color:#fff}.shell.cx .topbar{background:var(--cx-bg)}.shell.cx .topbar .mark{display:none}.shell.cx .body{gap:15px;padding:20px 22px 24px}.cx-greet{text-align:center;padding:16px 0 6px}.cx-greet img{width:128px;margin:0 auto;display:block}.cx-qr{background:#fff;border-radius:24px;flex-direction:column;align-items:center;padding:22px 0 0;display:flex;box-shadow:0 16px 36px #0a0b2859}.cx-qr canvas{width:min(56vw,210px)!important;height:min(56vw,210px)!important}.cx-qr .cap{color:var(--mut);padding:11px 0 15px;font-size:12.5px;font-weight:700}.cx-qr .cap b{color:#e2543a;font-family:var(--mono)}.cx-tear{border-top:2px dashed #d8d5e8;align-self:stretch;position:relative}.cx-tear:before,.cx-tear:after{content:"";background:var(--cx-bg);border-radius:50%;width:22px;height:22px;position:absolute;top:-11px}.cx-tear:before{left:-11px}.cx-tear:after{right:-11px}.cx-bal{justify-content:space-between;align-self:stretch;align-items:center;padding:14px 26px 16px;display:flex}.cx-bal .lb{color:var(--navy);letter-spacing:.03em;font-size:13.5px;font-weight:700}.cx-bal .vl{font-size:30px;font-weight:800;font-family:var(--mono);letter-spacing:-.02em;color:var(--navy-deep)}.cx-pill{border-radius:99px;align-items:center;gap:10px;padding:17px 21px;text-decoration:none;display:flex}.cx-pill b{letter-spacing:-.01em;font-size:15.5px;font-weight:800}.cx-pill .sub{margin-left:auto;font-size:12px;font-weight:600}.cx-pill .arr{border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:27px;height:27px;font-size:13px;display:flex}.cx-pill.lav{background:var(--cx-lav);color:var(--navy-deep)}.cx-pill.lav .arr{background:var(--navy-deep);color:var(--cx-lav)}.cx-pill.dark{background:var(--cx-tile);color:#fff;box-shadow:inset 0 0 0 1px var(--cx-line)}.cx-pill.dark .sub{color:var(--cx-lav)}.cx-pill.dark .arr{border:1.5px solid var(--cx-lav);color:var(--cx-lav)}.shell.cx .bottom-nav a{color:#7f81bc}.shell.cx .bottom-nav a.on{color:#fff}.shell.cx .card,.shell.cx .card.hl{color:var(--ink);background:#fff;border-color:#0000}.shell.cx .card .lb{color:var(--mut)}.shell.cx .card .input{border-color:var(--line)}.shell.cx .card .check{color:var(--mut)}.shell.cx .card .note{color:var(--dim)}.shell.cx .card .tabs button{border:1px solid var(--line)}.shell.cx .card .btn.sec{border:1px solid var(--navy)}.shell.cx .card .err{color:var(--danger)}.shell.cx .list-item .meta,.shell.cx .note{color:var(--on-navy-dim)}.shell.cx .list-item{border-bottom-color:var(--cx-line)}.shell.cx .amt.p{color:var(--cx-lav)}.shell.cx .tag{border-color:var(--cx-line);color:var(--on-navy-dim)}.shell.cx .tabs button{border-color:var(--cx-line);color:var(--on-navy-dim);background:0 0}.shell.cx .tabs button.on{background:var(--cx-lav);border-color:var(--cx-lav);color:var(--navy-deep)}.shell.cx .btn.pri{background:var(--cx-lav);color:var(--navy-deep)}.shell.cx .btn.pri:disabled{color:#b7b9e2;background:#55578f}.shell.cx .btn.sec{border-color:var(--cx-lav);color:var(--cx-lav);background:0 0}.shell.cx .btn.ghost{color:var(--on-navy-dim)}.shell.cx .err{color:var(--danger);text-align:center;background:#fff;border-radius:10px;padding:12px 16px;font-weight:700}.shell.cx .card .err,.shell.cx .dlg .err,.shell.cx .qrbox .err{text-align:left;background:0 0;border-radius:0;padding:0;font-weight:500}.shell.cx .qrbox{border:0;box-shadow:0 16px 36px #0a0b2859}.shell.cx .qrbox .note{color:var(--mut)}.shell.cx .qrbox .btn.sec{border-color:var(--navy);color:var(--navy)}.shell.cx .qrbox .btn.pri{background:var(--navy);color:#fff}.shell.cx .input{border-color:#0000}.shell.cx .check{color:var(--on-navy-dim)}.shell.cx .amount-disp{color:var(--navy-deep);background:#fff;border-color:#0000;border-radius:14px;box-shadow:0 10px 26px #0a0b284d}.shell.cx .amount-disp span{color:var(--mut)}.shell.cx .keypad button{background:var(--cx-tile);color:#fff;border-color:#0000}.shell.cx .keypad button:active{background:var(--navy-mid)}.shell.cx .scanbox{box-shadow:0 10px 26px #0a0b284d}.shell.cx{font-weight:500}.shell.cx .row .input[type=date]{text-align:left;align-items:center;min-width:0;height:42px;padding:0 6px 0 12px;font-size:14px;display:flex}.shell.cx .row .input[type=date]::-webkit-date-and-time-value{text-align:left;margin:0}.shell.cx .row .input[type=date]::-webkit-calendar-picker-indicator{margin:0 2px 0 auto;padding:4px}.shell.cx .row .btn.mini{border-radius:8px;height:42px;padding:0 22px;font-size:13.5px}.shell.cx .dlg{color:var(--ink);font-weight:400}.shell.cx .dlg .input{border-color:var(--line)}.shell.cx .dlg .btn.sec{border:1px solid var(--navy)}.shell.cx .dlg .btn.pri{background:var(--brand);color:#fff}.shell.cx .dlg .btn.pri.danger{background:var(--danger)}.shell.cx .dlg .err{color:var(--danger)}.shell.cx .bottom-nav{background:#fff;border-top:0}.shell.cx .bottom-nav a{color:var(--dim);font-weight:700}.shell.cx .bottom-nav a.on{color:var(--navy);font-weight:800}.shell.cx .tabs button{color:var(--navy);background:#fff;border-color:#0000;font-weight:700}.shell.cx .tabs button.on{background:var(--cx-lav);border-color:var(--cx-lav);color:var(--navy-deep);font-weight:800}.shell.cx .btn.sec{color:var(--navy);background:#fff;border-color:#fff}.shell.cx .topbar{color:var(--navy-deep);background:#fff}.shell.cx .topbar .sub{color:var(--mut)}.shell.desk{background:var(--paper);max-width:none}.shell.desk .body{align-items:center;padding-top:9vh}.shell.desk .body>*{width:100%;max-width:400px}
