*{box-sizing:border-box}:root{--yellow:#ffd83d;--black:#171717;--bg:#f4f5f7;--line:#e4e4e4;--muted:#6d6d6d;--red:#cc3636;--green:#17813b}body{margin:0;background:var(--bg);color:var(--black);font-family:Pretendard,"Noto Sans KR",Arial,sans-serif}button,input,select,textarea{font:inherit}.app{max-width:780px;min-height:100vh;margin:auto}.topbar,.admin-head{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:22px 18px}.topbar{background:var(--black);color:white}.eyebrow{margin:0 0 4px;color:var(--yellow);font-size:13px;font-weight:900}h1,h2,h3,p{margin-top:0}h1{font-size:24px;margin-bottom:0}h2{margin-bottom:5px}main{padding:16px 14px 40px}.page,.tab-page{display:none}.page.active,.tab-page.active{display:block}.card,.summary-card{background:white;border:1px solid var(--line);border-radius:18px;box-shadow:0 7px 20px rgba(0,0,0,.04)}.intro{display:flex;gap:14px;align-items:center;padding:18px;margin-bottom:14px}.intro p{margin:0;color:var(--muted);line-height:1.45}.intro-icon{display:grid;place-items:center;width:55px;height:55px;border-radius:16px;background:var(--yellow);font-size:27px}.form-card,.card{padding:18px;margin-bottom:14px}.field{display:block;margin-bottom:15px}.field span{display:block;margin-bottom:7px;font-size:14px;font-weight:800}.field em{font-style:normal;color:var(--muted);font-weight:400}input,select,textarea{width:100%;padding:13px 14px;border:1px solid #d3d3d3;border-radius:12px;background:#fff;outline:none}input:focus,select:focus,textarea:focus{border-color:#e4b900;box-shadow:0 0 0 3px rgba(255,216,61,.22)}.upload{position:relative;display:grid;min-height:230px;margin-bottom:14px;place-items:center;overflow:hidden;border:2px dashed #ccc;border-radius:16px;background:#fafafa;text-align:center}.upload input{position:absolute;opacity:0}.upload small{display:block;margin-top:8px;color:var(--muted)}#preview{width:100%;max-height:440px;object-fit:contain}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:10px}.yellow-btn,.black-btn,.outline{border:0;border-radius:12px;padding:12px 14px;font-weight:900;cursor:pointer}.yellow-btn{width:100%;background:var(--yellow);color:var(--black)}.black-btn{width:100%;background:var(--black);color:white}.outline{width:100%;background:white;border:1px solid var(--line);color:var(--black)}.outline.dark{width:auto;background:transparent;border-color:#777;color:white}.gap-top{margin-top:10px}.message{margin:10px 0 0;font-size:14px;font-weight:750;line-height:1.45}.message.success{color:var(--green)}.message.error{color:var(--red)}.tabs{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:14px}.tab{padding:11px;border:1px solid var(--line);border-radius:12px;background:white;font-weight:900}.tab.active{background:var(--black);color:white}.summary{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:14px}.summary-card{padding:15px}.summary-card span{display:block;margin-bottom:7px;color:var(--muted);font-size:12px}.summary-card strong{font-size:18px}.filter-card{margin-bottom:14px}.meal-list{display:grid;gap:12px}.meal-card{background:white;border:1px solid var(--line);border-radius:17px;padding:16px}.meal-top{display:flex;justify-content:space-between;gap:10px}.meal-card h3{margin-bottom:4px}.amount{font-weight:950;font-size:20px;white-space:nowrap}.meta{font-size:13px;color:var(--muted)}.badge{display:inline-block;margin-top:10px;padding:5px 9px;border-radius:999px;font-size:12px;font-weight:900}.badge.대기{background:#fff4c2}.badge.승인{background:#dff7e6;color:var(--green)}.badge.반려{background:#fde1e1;color:var(--red)}.reason{padding:10px;margin:10px 0 0;background:#f7f7f7;border-radius:10px;font-size:13px}.actions{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin-top:12px}.actions button{padding:9px;border-radius:10px;border:1px solid var(--line);background:white;font-weight:800}.actions .reject{color:var(--red)}.empty{text-align:center;color:var(--muted);padding:42px}.inline{display:grid;grid-template-columns:1fr 100px;gap:9px}.worker-list{display:grid;gap:9px}.worker-row{display:flex;justify-content:space-between;align-items:center;padding:12px;border:1px solid var(--line);border-radius:12px}.worker-row button{border:1px solid #efb7b7;background:white;color:var(--red);padding:8px 11px;border-radius:9px;font-weight:900}dialog{width:min(92vw,410px);border:0;border-radius:18px;padding:0}dialog::backdrop{background:rgba(0,0,0,.58)}.dialog-card{padding:22px}.hidden{display:none!important}@media(max-width:560px){.two-col{grid-template-columns:1fr}.summary-card{padding:12px}.summary-card strong{font-size:15px}.actions{grid-template-columns:1fr 1fr}.inline{grid-template-columns:1fr}}
.setup-banner{margin-bottom:14px;padding:15px 16px;border-radius:14px;background:#fff4c2;border:1px solid #efd66c;line-height:1.5}.setup-banner.configured{background:#e6f6eb;border-color:#9bd3aa;color:#176b31}
