:root{--bg:#F9FAFB;--bg2:#FFFFFF;--bg3:#EEF0F4;--border:#E5E8EB;--text:#191F28;--text2:#6B7684;--text3:#8B95A1;--blue:#0064FF;--green:#00C773;--red:#FF5A5F;--warn:#FFB020;--radius:14px;}
*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent;}
::-webkit-scrollbar{display:none;}
html,body{overscroll-behavior-y:none;}
body{background:var(--bg);color:var(--text);font-family:-apple-system,'Noto Sans KR',sans-serif;min-height:100vh;font-size:16px;}
#app{max-width:520px;margin:0 auto;min-height:100vh;display:flex;flex-direction:column;position:relative;z-index:1;overflow-x:hidden;}
#header{background:var(--bg2);border-bottom:1px solid var(--border);padding:14px 18px 12px;display:flex;align-items:center;gap:10px;position:sticky;top:0;z-index:50;}
.h-title{font-size:20px;font-weight:800;color:var(--text);letter-spacing:-0.5px;}
.h-sub{font-size:12px;color:var(--text3);margin-top:1px;}
#content{flex:1;overflow-y:auto;padding:16px 16px 120px;-webkit-overflow-scrolling:touch;}
#nav{position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:100%;max-width:520px;background:var(--bg2);border-top:1px solid var(--border);display:flex;z-index:50;padding:8px 16px 0;padding-bottom:calc(10px + env(safe-area-inset-bottom,0));}
.nav-btn{flex:1;background:none;border:none;padding:8px 0;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:3px;color:var(--text3);transition:color .2s;font-family:inherit;min-width:0;}
.nav-btn.active{color:var(--blue);}
.nav-btn svg{width:22px;height:22px;flex-shrink:0;}
.nav-btn span{font-size:10px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;}
.tab{display:none;}.tab.active{display:block;}
.card{background:var(--bg2);border-radius:var(--radius);border:1px solid var(--border);margin-bottom:14px;overflow:hidden;box-shadow:0 1px 3px rgba(0,0,0,.04);}
.ch{padding:12px 16px 10px;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:8px;}
.ca{width:3px;height:16px;border-radius:2px;flex-shrink:0;}
.ct{font-size:18px;font-weight:700;}
.cs{font-size:12px;color:var(--text2);margin-top:1px;}
.cb{padding:14px;}
.btn-p{width:100%;background:var(--blue);border:none;border-radius:var(--radius);padding:14px;font-size:16px;font-weight:700;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px;font-family:inherit;margin-bottom:16px;}
.btn-p:active{opacity:.85;}
.btn-b{background:#3B5BDB!important;color:#fff!important;}
.btn-sm{padding:6px 12px;border:none;border-radius:6px;font-size:14px;cursor:pointer;font-family:inherit;font-weight:600;}
.lbl{font-size:14px;color:var(--text2);display:block;margin-bottom:5px;font-weight:500;}
input,select{width:100%;max-width:100%;background:var(--bg3);border:1px solid var(--border);border-radius:10px;color:var(--text);padding:12px 14px;font-size:16px;font-family:inherit;outline:none;box-sizing:border-box;}
input[type=date]{padding:10px 8px;font-size:14px;-webkit-appearance:none;appearance:none;min-height:44px;}
input:focus,select:focus{border-color:var(--blue);}
select option{background:var(--bg2);}
.af{background:var(--bg);border:1px solid var(--border);border-radius:10px;padding:12px 14px;font-size:16px;font-weight:600;}
.item{background:var(--bg2);border-radius:12px;border:1px solid var(--border);padding:12px 14px;display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px;box-shadow:0 1px 2px rgba(0,0,0,.03);}
.item:last-child{margin-bottom:0;}
.in{font-size:16px;font-weight:600;}
.is{font-size:12px;color:var(--text3);margin-top:2px;}
.badge{border-radius:20px;padding:4px 10px;font-size:13px;font-weight:700;white-space:nowrap;flex-shrink:0;}
.bg{background:#E8F7EF;color:var(--green);}
.br{background:#FFF0F0;color:var(--red);}
.bo{background:#FFF8E8;color:#E88B00;}
.sg{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:14px;}
.sb{background:var(--bg2);border-radius:12px;padding:16px;border:1px solid var(--border);box-shadow:0 1px 2px rgba(0,0,0,.03);}
.sl{font-size:12px;color:var(--text2);margin-bottom:4px;}
.sv{font-size:24px;font-weight:800;}
.ti{background:var(--bg2);border-radius:10px;padding:12px 14px;display:flex;align-items:center;gap:10px;margin-bottom:7px;border:1px solid var(--border);}
.li{background:#FFF0F0;border:1px solid rgba(255,90,95,.2);border-radius:10px;padding:10px 12px;display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px;}
.modal-bg{display:none;position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:200;align-items:flex-end;justify-content:center;}
@media(min-width:768px){.modal-bg{justify-content:flex-start;padding-left:calc(50% - 60px);}}
.modal-bg.open{display:flex;}
.modal{background:var(--bg2);border-radius:20px 20px 0 0;width:100%;max-width:520px;max-height:90vh;overflow-y:auto;overflow-x:hidden;padding:20px;padding-bottom:40px;border:1px solid var(--border);}
.mh{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px;}
.mt{font-size:20px;font-weight:700;}
.mc{background:var(--bg3);border:none;border-radius:8px;padding:6px 10px;cursor:pointer;color:var(--text2);font-size:16px;}
.fr{margin-bottom:14px;overflow:hidden;}
.f2{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:14px;}
.stabs{display:flex;background:var(--bg3);border-radius:12px;padding:4px;margin-bottom:14px;}
.stab{flex:1;padding:8px 4px;border:none;border-radius:9px;cursor:pointer;font-size:14px;font-family:inherit;font-weight:600;background:transparent;color:var(--text3);}
.stab.active{background:var(--bg2);color:var(--text);box-shadow:0 1px 3px rgba(0,0,0,.08);}
.dbtns{display:grid;grid-template-columns:1fr 1fr;gap:8px;}
.dbtn{padding:12px;border-radius:10px;border:none;cursor:pointer;font-family:inherit;font-size:16px;font-weight:600;background:var(--bg3);color:var(--text3);}
.dbtn.plus.active{background:#E8F7EF;color:var(--green);}
.dbtn.minus.active{background:#FFF0F0;color:var(--red);}
.vmw{background:var(--bg2);border-radius:16px;border:1px solid var(--border);padding:14px;box-shadow:0 1px 4px rgba(0,0,0,.06);}
.vmh{text-align:center;padding:8px;background:rgba(0,100,255,.05);border:1px solid rgba(0,100,255,.12);border-radius:10px;margin-bottom:12px;font-size:16px;color:var(--blue);font-weight:700;letter-spacing:2px;}
.vmch{display:grid;gap:4px;margin-bottom:6px;}
.vmchd{text-align:center;font-size:12px;color:var(--blue);font-weight:700;}
.vmr{display:grid;gap:4px;margin-bottom:4px;}
.vmc{background:var(--bg);border:1px solid var(--border);border-radius:8px;padding:5px 3px;text-align:center;min-height:58px;display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative;}
.vmc.hp{border-color:rgba(0,100,255,.25);background:rgba(0,100,255,.04);}
.vmc.ls{border-color:rgba(255,90,95,.35);background:rgba(255,90,95,.05);}
.vml{display:flex;gap:12px;justify-content:center;margin-top:10px;}
.vmli{display:flex;align-items:center;gap:4px;font-size:11px;color:var(--text3);}
.vmld{width:10px;height:10px;border-radius:2px;}
.pc{background:var(--bg2);border-radius:12px;border:1px solid var(--border);overflow:hidden;margin-bottom:10px;box-shadow:0 1px 2px rgba(0,0,0,.03);}
.pch{padding:14px 16px;display:flex;align-items:center;justify-content:space-between;}
.pm{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;padding:8px 16px 14px;}
.pmb{background:var(--bg);border-radius:8px;padding:8px 10px;}
.pml{font-size:12px;color:var(--text3);}
.pmv{font-size:16px;font-weight:600;}
input[type=date]{color-scheme:light;}
.low-stock-grid{display:grid;grid-template-columns:1fr;gap:12px;}
.low-stock-card{background:var(--bg2);border-radius:12px;padding:14px;border:1px solid var(--border);}
.inv-type-btn:hover{background:var(--border)!important;}
.empty{text-align:center;padding:24px 0;color:var(--text3);}
.ei{font-size:32px;margin-bottom:8px;}
.et{font-size:16px;}
#toast{position:fixed;top:70px;left:50%;transform:translateX(-50%);background:#E8F7EF;border:1px solid #A3E4C1;border-radius:12px;padding:10px 18px;font-size:16px;color:#00875A;z-index:300;display:none;white-space:nowrap;pointer-events:none;}
#loading{position:fixed;inset:0;background:var(--bg);display:flex;align-items:center;justify-content:center;z-index:999;flex-direction:column;gap:12px;}
/* ─── 화면 잠금 ─── */
#lock-screen{display:none;}
#lock-screen.active{display:flex!important;}
.lock-dot{width:16px;height:16px;border-radius:50%;background:var(--bg3);border:2px solid var(--border);transition:background .15s;}
.lock-dot.filled{background:var(--blue);border-color:var(--blue);}
.pin-btn{width:72px;height:52px;border-radius:12px;border:1px solid var(--border);background:var(--bg2);color:var(--text);font-size:22px;font-weight:600;cursor:pointer;font-family:inherit;touch-action:manipulation;-webkit-tap-highlight-color:transparent;}
.pin-btn:active{background:var(--bg3);}

/* ─── 로딩 애니메이션 (3패널 겹침/펼침) ─── */
.loading-logo{position:relative;width:80px;height:60px;}
.ll-panel{position:absolute;width:28px;height:50px;border-radius:8px;top:50%;transform:translateY(-50%);}
.ll-1{background:#B8D8FA;animation:ll1 1.4s ease-in-out infinite;}
.ll-2{background:#3BA0F6;animation:ll2 1.4s ease-in-out infinite .12s;}
.ll-3{background:#1B5FD6;animation:ll3 1.4s ease-in-out infinite .24s;}
@keyframes ll1{0%,100%{left:26px;opacity:.5;}50%{left:4px;opacity:.7;}}
@keyframes ll2{0%,100%{left:26px;opacity:.6;}50%{left:26px;opacity:.85;}}
@keyframes ll3{0%,100%{left:26px;opacity:.7;}50%{left:48px;opacity:1;}}

/* ─── 다크 모드 (토스 스타일) ─── */
@media(prefers-color-scheme:dark){
  :root{--bg:#0F172A;--bg2:#1E293B;--bg3:#334155;--border:#374151;--text:#F9FAFB;--text2:#9CA3AF;--text3:#6B7280;--blue:#3B82F6;--green:#22C55E;--red:#EF4444;--warn:#F59E0B;}
  input[type=date]{color-scheme:dark;}
  input,select{background:#1E293B;border-color:#4B5563;}
  select option{background:var(--bg2);}
  .bg{background:rgba(34,197,94,.12);color:var(--green);}
  .br{background:rgba(239,68,68,.12);color:var(--red);}
  .bo{background:rgba(245,158,11,.12);color:var(--warn);}
  .dbtn.plus.active{background:rgba(34,197,94,.15);color:var(--green);}
  .dbtn.minus.active{background:rgba(239,68,68,.15);color:var(--red);}
  .li{background:rgba(239,68,68,.08);border-color:rgba(239,68,68,.2);}
  #toast{background:rgba(34,197,94,.15);border-color:rgba(34,197,94,.3);color:var(--green);}
  .modal-bg{background:rgba(0,0,0,.7);}
  .vmc.hp{border-color:rgba(59,130,246,.3);background:rgba(59,130,246,.08);}
  .vmc.ls{border-color:rgba(239,68,68,.35);background:rgba(239,68,68,.08);}
  .vmh{background:rgba(59,130,246,.1);border-color:rgba(59,130,246,.2);}
  .item{background:var(--bg2);box-shadow:none;}
  .sb{background:var(--bg2);border-color:var(--border);box-shadow:none;}
  .ti{background:var(--bg2);border-color:var(--border);}
  .pc{background:var(--bg2);box-shadow:none;}
  .card{box-shadow:none;}
  .low-stock-card{background:var(--bg2);}
  .btn-p{color:#fff;}
}

/* ─── 맨 위로 버튼 ─── */
#scroll-top-btn{position:fixed;bottom:80px;right:12px;width:40px;height:40px;border-radius:50%;background:var(--text3);color:#fff;border:none;font-size:16px;cursor:pointer;z-index:100;display:flex;align-items:center;justify-content:center;opacity:.7;-webkit-tap-highlight-color:transparent;touch-action:manipulation;}
@media(min-width:768px){#scroll-top-btn{left:calc(50% - 60px + 520px - 52px);right:auto;}}

/* ─── PC 사이드 배너 (768px 이상) ─── */
.pc-side-banner{display:none;}
@media(min-width:768px){
  body{background:#EEF1F6;}
  #app{margin:0 auto 0 calc(50% - 60px);box-shadow:-2px 0 20px rgba(0,0,0,.06);position:relative;z-index:1;}
  #nav{left:calc(50% - 60px);transform:none;max-width:520px;}
  .pc-side-banner.left{display:flex;align-items:center;justify-content:flex-end;position:fixed;top:0;bottom:0;left:0;width:calc(50% - 60px);background:#EEF1F6;color:var(--text);overflow:hidden;z-index:0;}
  .side-content{padding:40px 60px 40px 40px;max-width:420px;}
  .side-logo{font-size:16px;font-weight:700;color:var(--text2);margin-bottom:36px;}
  .side-slogan{font-size:42px;font-weight:800;color:var(--text);line-height:1.3;margin-bottom:20px;letter-spacing:-1.5px;}
  .side-desc{font-size:16px;color:var(--text3);line-height:1.8;}
  #auth-form-area{margin:0 auto 0 calc(50% - 60px)!important;box-shadow:-2px 0 20px rgba(0,0,0,.06);background:var(--bg2);}
  #auth-left-panel{display:flex!important;}
}
@media(min-width:768px) and (prefers-color-scheme:dark){
  body{background:#0B1120;}
  .pc-side-banner.left{background:#0B1120;}
  #auth-left-panel{background:#0F172A!important;}
  #auth-form-area{background:var(--bg2)!important;}
}
