*{box-sizing:border-box}body{margin:0;background:#f4f6f7;color:#162e27;font-family:Arial,'Noto Sans KR','Malgun Gothic',sans-serif;font-size:16px;line-height:1.6}header{height:78px;background:#fff;border-bottom:1px solid #dee5e1;display:flex;align-items:center;justify-content:space-between;padding:0 4vw}.brand{display:flex;align-items:center;gap:14px;font-size:14px;letter-spacing:.03em}.brandmark{display:grid;place-items:center;background:#214b3c;color:#d4f893;border-radius:8px;width:32px;height:34px;font-weight:900;font-size:23px}.divider{height:18px;border-left:1px solid #c9d4ce}.badge{font-size:12px;background:#f0f5f2;border-radius:20px;padding:6px 13px;color:#4e6b5c}main{max-width:1440px;margin:auto;padding:36px 4vw}.title{display:flex;justify-content:space-between;align-items:center;margin-bottom:26px}.eyebrow{font-size:12px;letter-spacing:.16em;color:#6a8276;font-weight:bold;margin:0}h1{font-size:34px;letter-spacing:-.06em;margin:4px 0}h2{font-size:19px;margin:0;letter-spacing:-.03em}p{margin:4px 0;color:#6b7972;font-size:14px}button,input,select{font:inherit}button{border:1px solid #d5dfd9;background:white;color:#294738;padding:10px 17px;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer}button:hover{background:#edf4ee}button:disabled{opacity:.45;cursor:default}.primary{background:#214b3c;color:white;border-color:#214b3c}.primary:hover{background:#32634d}.upload{background:#edf3ee;border:1px dashed #a8bcb0;padding:20px 24px;border-radius:12px;display:flex;justify-content:space-between;align-items:center}.upload.drag{background:#dceccf}.upload b{font-size:15px}#status{font-size:13px;color:#708077;padding:10px 2px;white-space:pre-line}.controls{display:flex;align-items:end;gap:14px;padding:18px 0 28px;flex-wrap:wrap}.controls label{display:block;font-size:12px;color:#667c70;margin-bottom:5px}.controls input,.controls select{height:42px;border:1px solid #d6dfd9;border-radius:7px;padding:0 10px;background:#fff;color:#244033;min-width:150px;font-size:14px}.controls>span{align-self:center;padding-top:20px}.quiet{margin-left:auto;color:#798980}.period{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.period span{font-size:13px;color:#76857b}.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:26px}.kpis article{background:#fff;border:1px solid #e2e8e3;border-radius:12px;padding:22px}.kpis article>span{font-size:14px;color:#5a7164}.kpis strong{display:block;font-size:32px;line-height:1.4;margin:10px 0;letter-spacing:-.04em}.kpis small{font-size:12px;color:#7b8d81}.kpis .revenue{background:#214b3c;border-color:#214b3c;color:white}.revenue>span,.revenue small{color:#c3d8cb!important}.panel{background:white;border:1px solid #e1e7e2;border-radius:13px;padding:24px;margin-bottom:22px}.sectionhead{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:24px}.tabs{display:flex;background:#f2f5f2;padding:4px;border-radius:8px;gap:3px}.tabs button{border:0;background:none;padding:7px 12px}.tabs button.active{background:#214b3c;color:white;box-shadow:0 1px 3px #0001}.chart{height:260px;display:grid;grid-template-columns:repeat(14,minmax(30px,1fr));gap:12px;align-items:end;padding-top:22px;overflow-x:auto;background:repeating-linear-gradient(to top,transparent 0,transparent 51px,#eef2ef 52px,transparent 53px)}.barcol{height:100%;display:flex;align-items:center;justify-content:end;flex-direction:column;gap:7px;min-width:30px}.barvalue{font-size:12px;color:#506759;white-space:nowrap}.bar{width:70%;max-width:55px;background:#a9c8b8;border-radius:5px 5px 0 0;min-height:2px;transition:height .25s}.bar.hot{background:#284f3d}.bar.night{background:#c8dcac}.barlabel{font-size:12px;color:#6c7c71;background:white;width:100%;text-align:center}.chartfoot{display:flex;justify-content:space-between;font-size:12px;color:#89978d;border-top:1px solid #e3e9e4;padding-top:10px;margin-top:4px}.tablewrap{overflow:auto}table{width:100%;border-collapse:collapse;font-size:14px;white-space:nowrap}th{text-align:right;background:#f4f7f4;color:#637a69;font-size:12px;font-weight:600;padding:13px 12px;border-bottom:1px solid #dfe7df}td{text-align:right;padding:16px 12px;border-bottom:1px solid #edf1ec;font-variant-numeric:tabular-nums}th:first-child,td:first-child{text-align:left;position:sticky;left:0;background:#fff;z-index:1}th:first-child{background:#f4f7f4}td small{display:block;color:#829083;font-size:12px}.total td{font-weight:bold;background:#f1f6ee}summary{cursor:pointer;font-weight:600}summary span{font-size:13px;font-weight:normal;color:#7b8c7d;margin-left:12px}details[open] summary{margin-bottom:16px}.empty{text-align:center!important;color:#86968b;padding:30px}footer{font-size:13px;color:#758477;margin:28px 0}footer p{font-size:13px;max-width:1000px}.warnings{font-size:13px;color:#956d23;white-space:pre-line}button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #94ba59;outline-offset:2px}@media(max-width:850px){.kpis{grid-template-columns:repeat(2,1fr)}.sectionhead{align-items:start;flex-direction:column}.chart{gap:4px}.kpis strong{font-size:27px}.brand .divider,.brand>span:last-child{display:none}}@media(max-width:520px){header{height:65px}.badge{display:none}main{padding:24px 16px}h1{font-size:28px}.title{gap:8px}.title p{max-width:210px}.primary{font-size:12px;padding:10px}.upload{padding:16px;gap:14px}.upload button{white-space:nowrap}.controls{gap:10px}.controls select{max-width:100%}.controls>div:first-child{width:100%}.controls>div:first-child select{width:100%}.controls input{min-width:0;width:135px}.quiet{margin-left:0}.period{align-items:start;flex-direction:column;gap:5px}.kpis{gap:10px}.kpis article{padding:15px}.kpis strong{font-size:24px}.panel{padding:17px}.chart{min-width:650px}.panel:has(.chart){overflow:auto}.tabs{white-space:nowrap}.sectionhead p{font-size:12px}}

.download-actions{display:flex;gap:8px;flex-wrap:wrap}
