
:root{--bg:#0b0f14;--panel:#121923;--panel2:#18212d;--line:#293442;--text:#edf3f8;--muted:#93a2b2;--accent:#39d98a;--accent2:#70a5ff;--danger:#ff6b6b;--warn:#f6c85f;--shadow:0 16px 40px rgba(0,0,0,.28)}
*{box-sizing:border-box}html,body{margin:0;background:var(--bg);color:var(--text);font-family:Inter,Pretendard,"Noto Sans KR",system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}body{min-width:1120px}
button,input,select{font:inherit}.app{display:grid;grid-template-columns:248px 1fr;min-height:100vh}.side{background:#0d131b;border-right:1px solid var(--line);padding:26px 18px;position:sticky;top:0;height:100vh}.brand{font-weight:900;font-size:20px;letter-spacing:.4px}.version{display:inline-block;margin-top:7px;padding:4px 8px;border-radius:999px;background:#1c2a38;color:#a9c2d9;font-size:11px}.side p{color:var(--muted);font-size:13px;line-height:1.6;margin-top:20px}.nav{margin-top:26px;display:grid;gap:8px}.nav button{border:1px solid transparent;background:transparent;color:#b9c5d0;text-align:left;padding:11px 12px;border-radius:10px;cursor:pointer}.nav button.active{background:#162230;border-color:#29415a;color:#fff}.privacy{position:absolute;left:18px;right:18px;bottom:22px;padding:12px;border:1px solid #234a3a;background:#10251d;border-radius:10px;font-size:12px;color:#aee3c9;line-height:1.5}.main{padding:30px 34px 70px}.top{display:flex;justify-content:space-between;align-items:flex-start;gap:20px}.top h1{margin:0;font-size:26px}.top .sub{color:var(--muted);margin-top:7px;font-size:14px}.actions{display:flex;gap:8px}.btn{border:1px solid var(--line);background:#17212c;color:#e9f0f6;padding:10px 14px;border-radius:9px;cursor:pointer}.btn:hover{border-color:#4a5c70}.btn.primary{background:var(--accent);border-color:var(--accent);color:#052015;font-weight:800}.btn.blue{background:#1b63d8;border-color:#2a75ee}.btn.danger{color:#ffb1b1;border-color:#63343a;background:#24171a}.btn:disabled{opacity:.45;cursor:not-allowed}
.notice{margin-top:20px;padding:12px 14px;border:1px solid #29415a;border-radius:10px;background:#101a24;color:#afc1d2;font-size:13px}.drop{margin-top:18px;border:1.5px dashed #42566b;background:#111923;border-radius:14px;padding:32px;text-align:center;cursor:pointer;transition:.15s}.drop.drag{border-color:var(--accent);background:#10241c}.drop .big{font-size:18px;font-weight:800}.drop .small{margin-top:8px;color:var(--muted);font-size:13px}.drop input{display:none}.settings{display:flex;align-items:center;gap:16px;margin-top:12px;color:#b7c3cf;font-size:13px}.settings label{display:flex;align-items:center;gap:7px}.progressbox{display:none;margin-top:15px;padding:13px;border:1px solid var(--line);background:#101720;border-radius:10px}.progressrow{display:flex;justify-content:space-between;font-size:13px}.bar{height:7px;background:#202a35;border-radius:999px;margin-top:8px;overflow:hidden}.bar>div{height:100%;width:0;background:linear-gradient(90deg,var(--accent),#5dd7ff);transition:width .2s}
.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:20px}.card{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:16px;box-shadow:var(--shadow)}.card .k{font-size:12px;color:var(--muted)}.card .v{font-size:24px;font-weight:850;margin-top:6px}.card .u{font-size:12px;color:#b9c4cf;margin-left:4px}
.section{display:none}.section.active{display:block}.toolbar{display:flex;justify-content:space-between;align-items:center;margin:24px 0 12px}.toolbar h2{font-size:18px;margin:0}.muted{color:var(--muted)}
.receipts{display:grid;gap:14px}.receipt{border:1px solid var(--line);background:var(--panel);border-radius:14px;overflow:hidden}.receipt-head{display:grid;grid-template-columns:96px 1fr auto;gap:16px;padding:16px;align-items:center}.thumb{width:96px;height:96px;border-radius:9px;object-fit:cover;background:#0b0f14;border:1px solid #2e3b49}.r-title{font-weight:800}.r-meta{color:var(--muted);font-size:12px;margin-top:5px}.receipt-body{border-top:1px solid var(--line);padding:16px;display:grid;grid-template-columns:1fr 1fr;gap:16px}.formgrid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.field label{display:block;color:var(--muted);font-size:11px;margin:0 0 5px}.field input,.field select{width:100%;background:#0e151e;border:1px solid #344354;color:#fff;border-radius:8px;padding:9px 10px}.field.wide{grid-column:1/-1}.ocrraw{height:133px;overflow:auto;white-space:pre-wrap;background:#0b1118;border:1px solid #2d3844;border-radius:8px;padding:10px;color:#9eb0c0;font:12px/1.5 ui-monospace,SFMono-Regular,Consolas,monospace}.itembox{grid-column:1/-1}.minirow{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.itemtable,.globaltable{width:100%;border-collapse:collapse}.itemtable th,.itemtable td,.globaltable th,.globaltable td{border-bottom:1px solid #27323e;padding:8px 7px;text-align:left;font-size:12px}.itemtable th,.globaltable th{color:#9eacb9;font-weight:600;background:#101720;position:sticky;top:0}.itemtable input{width:100%;border:1px solid #324252;background:#0e151e;color:#fff;border-radius:6px;padding:7px}.money{text-align:right!important;font-variant-numeric:tabular-nums}.sumwarn{margin-top:8px;font-size:12px;color:var(--warn)}.ok{color:var(--accent)}
.tablewrap{background:var(--panel);border:1px solid var(--line);border-radius:12px;overflow:auto;max-height:65vh}.empty{padding:50px;text-align:center;color:var(--muted);border:1px dashed #334253;border-radius:12px;background:#0e151e}.pill{display:inline-block;padding:3px 7px;border-radius:999px;background:#182735;color:#a8c5df;font-size:11px}.right{text-align:right}.iconbtn{border:0;background:transparent;color:#aebccb;cursor:pointer;padding:7px}.iconbtn:hover{color:#fff}.filename{max-width:520px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media print{body{min-width:0;background:#fff;color:#000}.side,.top,.drop,.settings,.progressbox,.actions,.notice,.toolbar .screenonly{display:none!important}.app{display:block}.main{padding:0}.card,.receipt,.tablewrap{box-shadow:none;border-color:#aaa;background:#fff;color:#000}.muted,.r-meta{color:#555}.section{display:block!important}.receipt-body{display:block}.ocrraw{display:none}.itemtable input,.field input,.field select{border:0;color:#000;background:transparent;padding:0}.itemtable th,.globaltable th{color:#000;background:#eee}.nav{display:none}}
/* Keep borders and grid children inside their available space. */
body{min-width:0;line-height:1.5}
.app{grid-template-columns:228px minmax(0,1fr)}
.main{min-width:0;width:100%;max-width:1600px;margin:0 auto;padding:30px clamp(18px,3vw,42px) 60px}
.side{display:flex;flex-direction:column;overflow:auto}
.privacy{position:static;margin-top:auto;padding-top:14px}
.side .nav{margin-bottom:30px}
.top{flex-wrap:wrap;align-items:center}
.top h1{font-size:clamp(22px,2.4vw,30px);letter-spacing:-.8px}
.actions,.settings{flex-wrap:wrap}
.btn{min-height:42px;white-space:nowrap;transition:background .15s,border-color .15s}
button:focus-visible,.drop:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.drop{display:flex;position:relative;flex-direction:column;align-items:center;justify-content:center;width:100%;min-height:180px;gap:8px;padding:30px 20px}
.drop:hover{border-color:var(--accent);background:#13231f}
.drop .small{margin-top:0;line-height:1.7}
.drop .big{line-height:1.6}
.cards{grid-template-columns:repeat(4,minmax(0,1fr))}
.card{min-width:0;box-shadow:none}
.card .v{overflow-wrap:anywhere;font-size:clamp(20px,2.1vw,28px);font-variant-numeric:tabular-nums}
.toolbar{gap:12px;flex-wrap:wrap}.toolbar .muted{font-size:13px}
.receipt-head{grid-template-columns:80px minmax(0,1fr) auto}
.thumb{width:80px;height:96px;object-fit:contain}
.r-title{overflow-wrap:anywhere}.filename{max-width:100%}
.receipt-body{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.receipt-body>div,.field{min-width:0}
.formgrid{grid-template-columns:repeat(2,minmax(0,1fr))}
.itembox{overflow-x:auto}
.itemtable{table-layout:fixed;min-width:560px}
.itemtable input{min-width:0}
.globaltable{min-width:700px}.globaltable td{overflow-wrap:anywhere}
.empty{padding:48px 20px;line-height:1.8}
.help{margin-top:28px;border-top:1px solid var(--line);padding-top:18px;color:var(--muted);font-size:13px;line-height:1.8}
.help summary{cursor:pointer;color:var(--text);font-weight:600}
.help ol{padding-left:22px}.help p{margin-bottom:0}
@media(max-width:1100px){.app{grid-template-columns:200px minmax(0,1fr)}.main{padding:24px 20px 40px}.cards{grid-template-columns:repeat(2,minmax(0,1fr))}.receipt-body{grid-template-columns:minmax(0,1fr)}.top{gap:16px}}
@media(max-width:700px){.app{display:block}.side{position:static;height:auto;padding:18px;border-right:0;border-bottom:1px solid var(--line)}.side p,.privacy,.version{display:none}.nav{display:flex;margin-top:14px;gap:8px}.side .nav{margin-bottom:0}.nav button{flex:1;text-align:center}.main{padding:22px 14px 40px}.top .sub{line-height:1.7}.actions{width:100%}.actions .btn{flex:1;padding:9px}.drop{min-height:170px}.drop .big{font-size:16px}.settings{gap:8px}.receipt-head{grid-template-columns:54px minmax(0,1fr) auto;gap:10px;padding:12px}.thumb{width:54px;height:72px}.receipt-body{padding:12px}.formgrid{grid-template-columns:minmax(0,1fr)}.cards{gap:10px}.card{padding:14px}.notice{line-height:1.8}}
@media print{.help{display:none}.side{display:none}.main{max-width:none;padding:0}.tablewrap{max-height:none;overflow:visible}.itembox{overflow:visible}}
.site-links{display:flex;gap:18px;flex-wrap:wrap;margin-bottom:24px;font-size:14px}.site-links a,.site-footer a{color:#adc5da;text-decoration:none}.site-links a:hover,.site-footer a:hover{text-decoration:underline}.site-footer{border-top:1px solid var(--line);margin-top:32px;padding-top:22px;color:var(--muted);font-size:13px}.site-footer nav{display:flex;flex-wrap:wrap;gap:16px;margin-top:12px}.ocrraw{width:100%;height:190px;resize:vertical;font:13px/1.7 Consolas,monospace}.small-note{font-size:12px;color:var(--muted);margin-top:8px}.review-note{color:var(--warn);font-size:13px;margin-top:8px}.receipt-head .thumb{cursor:zoom-in}.field label{font-size:13px}.itemtable th,.itemtable td,.globaltable th,.globaltable td{font-size:14px}.version{align-self:flex-start}.modal-image{max-width:min(90vw,900px);max-height:80vh}.image-dialog{background:var(--panel);color:var(--text);border:1px solid var(--line);border-radius:14px}.image-dialog::backdrop{background:#000b}@media print{.site-links,.site-footer{display:none!important}}
body{font-size:16px;line-height:1.85}.content-layout{max-width:920px;margin:auto;padding:24px}.content-header{display:flex;gap:20px;justify-content:space-between;align-items:center;padding-bottom:22px;border-bottom:1px solid var(--line)}a{color:#9dc4ff}.content-header a{color:var(--text);text-decoration:none}.content-header nav{display:flex;flex-wrap:wrap;gap:16px;font-size:14px}.content-article{margin-top:38px}.content-article h1{font-size:clamp(25px,4vw,36px);line-height:1.4;letter-spacing:-1px}.content-article h2{font-size:21px;margin-top:32px}.content-article p{color:#c1ced9}.lead{font-size:18px}.content-article table{border-collapse:collapse;width:100%;font-size:14px}.content-article th,.content-article td{border:1px solid var(--line);padding:10px;text-align:left}.content-article th{background:var(--panel)}.back-tool{display:inline-block;margin-top:28px;text-decoration:none}.ad-slot{margin:56px 0;min-height:280px;border-top:1px solid var(--line);padding-top:20px;text-align:center;color:var(--muted);font-size:12px}.site-footer a{color:#adc5da}@media(max-width:600px){.content-header{align-items:flex-start;flex-direction:column}.content-layout{padding:18px}.content-article table{font-size:12px}.content-article td,.content-article th{padding:6px}}