*{box-sizing:border-box}body{color:#1f2937;background:#f3f4f6;margin:0;font-family:Malgun Gothic,맑은 고딕,sans-serif;font-size:13px}.center{text-align:center;background:#fff;border-radius:10px;max-width:560px;margin:80px auto;padding:40px;box-shadow:0 1px 4px #00000014}.center h1{margin-bottom:12px;font-size:20px}.center p{color:#4b5563;line-height:1.6}button{cursor:pointer;background:#fff;border:1px solid #d1d5db;border-radius:6px;padding:8px 14px;font-size:13px}button.primary{color:#fff;background:#2563eb;border-color:#2563eb}button.primary:hover{background:#1d4ed8}button:disabled{opacity:.5;cursor:not-allowed}.file-list{text-align:left;padding:0;list-style:none}.file-list li{margin:6px 0}.file-btn{text-align:left;width:100%;padding:10px 14px}.dropzone{color:#6b7280;border:2px dashed #cbd5e1;border-radius:8px;margin-top:20px;padding:30px}.dropzone.over{color:#2563eb;background:#eff6ff;border-color:#2563eb}.hint{color:#9ca3af;font-size:12px}.workspace{flex-direction:column;height:100vh;display:flex}.topbar{color:#fff;background:#111827;justify-content:space-between;align-items:center;gap:12px;padding:10px 16px;display:flex}.topbar-brand{flex-wrap:wrap;align-items:center;gap:8px;min-width:0;display:flex}.topbar-brand b{white-space:nowrap;font-size:14px}.topbar-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:6px;display:flex}.topbar-actions button,.topbar-actions .live-ad-count{white-space:nowrap;background:0 0;border:1px solid;border-radius:999px;justify-content:center;align-items:center;min-height:32px;margin:0;padding:0 12px;font-size:12px;font-weight:700;line-height:1;display:inline-flex}.topbar-actions #live-ad-count{color:#d1fae5;border-color:#34d399}.topbar-actions #published-ad-count{color:#bae6fd;border-color:#38bdf8}.live-ad-count.pending{color:#fde68a;border-color:#fbbf24}.pending-ad-control{position:relative}.topbar-actions #pending-ad-count{color:#fde68a;border-color:#fbbf24}.pending-ad-popover{z-index:20;color:#1f2937;background:#fff;border:1px solid #cbd5e1;border-radius:8px;width:min(340px,100vw - 24px);max-height:min(420px,70vh);padding:10px;position:absolute;top:calc(100% + 8px);right:0;overflow:auto;box-shadow:0 10px 30px #00000040}.pending-ad-popover[hidden]{display:none}.pending-ad-heading{justify-content:space-between;align-items:center;padding:0 2px 8px;font-weight:700;display:flex}.topbar-actions #pending-ad-close{color:#475569;border:0;min-height:24px;padding:2px 6px}.topbar-actions .pending-ad-item{color:#1f2937;text-align:left;white-space:normal;border:0;border-top:1px solid #e5e7eb;border-radius:0;flex-direction:column;align-items:flex-start;gap:3px;width:100%;min-height:0;margin:0;padding:8px;display:flex}.topbar-actions .pending-ad-item:hover{background:#fef9c3}.pending-ad-item small{color:#64748b;font-weight:400}.pending-ad-empty{color:#64748b;margin:6px}.xgrid tr.pending-ad-target td{outline-offset:-2px;outline:2px solid #f59e0b}.topbar-actions #save-btn,.topbar-actions #readonly-export-btn{color:#e2e8f0;border-color:#94a3b8}.topbar-actions #save-btn.needs-save{color:#fecaca;border-color:#f87171}.topbar-actions #commit-btn{color:#fff;background:#2563eb;border-color:#2563eb}.topbar-actions #commit-btn:hover{background:#1d4ed8}.topbar-actions #reset-btn{color:#cbd5e1;border-color:#64748b}.topbar-actions #switch-login-btn{color:#fff;background:#26364f;border-color:#94a3b8}.topbar-actions button:not(:disabled):hover{filter:brightness(1.18)}.save-status{white-space:nowrap;font-size:12px}.save-status.ok{color:#86efac}.save-status.saving{color:#fbbf24}.save-status.dirty{color:#fca5a5;font-weight:700}.banner-warn{color:#92400e;background:#fef3c7;padding:8px 16px;font-size:12px}.body{flex:1;display:flex;overflow:hidden}.main-col{flex-direction:column;flex:1;display:flex;overflow:hidden}.side-col{background:#fff;border-left:1px solid #e5e7eb;flex-shrink:0;width:320px;padding:12px;overflow-y:auto}.tabs{background:#e5e7eb;flex-wrap:wrap;align-items:center;gap:2px;padding:4px 4px 0;display:flex}.show-hidden-toggle{color:#4b5563;align-items:center;gap:4px;margin-left:auto;padding:4px 8px;font-size:12px;display:flex}.tab{background:#f3f4f6;border-bottom:none;border-radius:4px 4px 0 0}.tab.active{background:#fff;border-color:#9ca3af;font-weight:700}.region-annual-totals{color:#172033;background:#fff;border:1px solid #cbd5e1;border-radius:6px;flex-wrap:wrap;align-items:center;gap:8px 18px;margin:0 8px 4px 12px;padding:6px 12px;font-size:13px;display:flex}.region-annual-totals strong{color:#183a69}.region-annual-totals b{font-size:15px}.grid-holder{background:#fff;flex:1;overflow:auto}.rules-layout{align-items:flex-start;gap:24px;width:max-content;min-width:100%;display:flex}.rules-table{flex:none}.rules-memo{box-sizing:border-box;color:#172033;background:#fffdf7;border:1px solid #e7d6a4;border-left:5px solid #d9a226;border-radius:10px;flex:none;width:400px;margin:18px 24px 24px 0;padding:20px 22px;box-shadow:0 4px 16px #10213e12}.rules-memo h2{color:#10213e;margin:0 0 5px;font-size:19px}.rules-memo>p{color:#64748b;margin:0 0 16px;font-size:12px}.rules-memo ol{margin:0;padding-left:22px}.rules-memo li{white-space:normal;overflow-wrap:anywhere;padding:0 0 14px 4px;font-size:13px;line-height:1.5}.rules-memo li:last-child{padding-bottom:0}.rules-memo li strong{color:#183a69;margin-bottom:3px;display:block}.rules-memo li span{display:block}.rules-memo-note{color:#805710;margin-top:6px;font-size:12px;font-weight:600;display:block}.month-copy-toolbar{color:#334155;background:#f8fafc;border-bottom:1px solid #e5e7eb;flex:none;align-items:center;gap:8px;padding:8px 12px;font-size:12px;display:flex}.month-copy-toolbar select{background:#fff;border:1px solid #cbd5e1;border-radius:5px;padding:6px 8px;font-size:12px}.month-copy-toolbar button{padding:6px 12px;font-weight:600}.month-copy-toolbar #copy-month-status{color:#64748b}.month-copy-toolbar #copy-month-status.copy-success{color:#15803d}@media (width<=1250px){.topbar{flex-wrap:wrap}}@media (width<=700px){.workspace{height:auto;min-height:100vh}.topbar{flex-wrap:wrap;gap:8px}.topbar-actions{flex-wrap:wrap;gap:6px;display:flex}.body{display:block;overflow:visible}.main-col{width:100%;overflow:visible}.tabs{max-height:132px;overflow:auto}.grid-holder{flex:none;height:50vh;min-height:280px}.side-col{border-top:1px solid #e5e7eb;border-left:0;width:100%;overflow:visible}.month-copy-toolbar{flex-wrap:wrap}}table.xgrid{border-collapse:collapse;font-size:12px}table.xgrid td{white-space:nowrap;text-overflow:ellipsis;border:1px solid #e5e7eb;max-width:260px;padding:2px 6px;overflow:hidden}table.xgrid td.xsummary-title{z-index:1;text-overflow:clip;white-space:nowrap;background:#fff;max-width:none;position:relative;overflow:visible}.summary-region-content{justify-content:space-between;align-items:center;gap:10px;min-width:190px;display:flex}.summary-region-content small{color:#475569;white-space:nowrap;font-size:11px;font-weight:600}table.xgrid tr.excel-hidden-row{color:#9ca3af;background:#fafafa}table.xgrid tr.excel-hidden-row td{font-style:italic}table.xgrid td.xcell-editable{cursor:text}table.xgrid td.xcell-editable:hover{outline-offset:-1px;outline:1px solid #93c5fd}table.xgrid td.xcell-editing{padding:0}table.xgrid td.xcell-editing input{box-sizing:border-box;border:2px solid #2563eb;width:100%;padding:1px 5px;font-family:inherit;font-size:12px}table.xgrid td.xrow-delete-cell{text-align:center;background:#fff;border-color:#f3f4f6;padding:0}table.xgrid .xrow-delete-btn{color:#d1d5db;cursor:pointer;background:0 0;border:none;width:20px;height:20px;padding:0;font-size:12px;line-height:1}table.xgrid .xrow-delete-btn:hover{color:#dc2626;background:#fee2e2;border-radius:3px}table.xgrid td.xrow-move-cell{text-align:center;background:#fff;border-color:#f3f4f6;width:78px;min-width:78px;max-width:78px;padding:1px 2px;overflow:visible}table.xgrid .xrow-move-select{color:#334155;border:1px solid #d1d5db;border-radius:3px;width:74px;min-width:74px;padding:2px 0;font-size:11px}table.xgrid .xrow-move-select:hover{color:#1f2937;border-color:#93c5fd}table.xgrid td.xunclassified-move-cell{width:78px;min-width:78px;max-width:78px;padding:1px 2px;overflow:visible}table.xgrid .unclassified-inline-move{color:#172033;background:#fff;border:1px solid #94a3b8;border-radius:4px;width:74px;padding:3px 0;font-size:11px}.panel-box{border:1px solid #e5e7eb;border-radius:8px;margin-bottom:14px;padding:12px}.side-section{background:#fff;border:1px solid #e5e7eb;border-radius:8px;margin-bottom:8px}.side-section>summary{cursor:pointer;padding:11px 12px;font-size:14px;font-weight:700}.side-section>summary:hover{background:#f8fafc}.side-section>.panel-box{border:0;border-top:1px solid #e5e7eb;border-radius:0;margin:0;padding:10px 12px 12px}.panel-box h3{margin:0 0 8px;font-size:14px}.panel-box label{color:#4b5563;margin:8px 0 2px;font-size:12px;display:block}.panel-box input,.panel-box select{border:1px solid #d1d5db;border-radius:4px;width:100%;padding:6px 8px;font-size:13px}.panel-box button{width:100%;margin-top:10px}.success{color:#15803d}.error{color:#b91c1c}.change-list{color:#6b7280;max-height:160px;padding-left:16px;font-size:11px;overflow-y:auto}.bulk-dropzone{text-align:center;color:#6b7280;cursor:pointer;border:2px dashed #d1d5db;border-radius:8px;margin-top:8px;padding:20px;font-size:13px}.bulk-dropzone.drag-over{color:#2563eb;background:#eff6ff;border-color:#2563eb}.bulk-summary{padding-left:18px;font-size:13px}.panel-box details{margin:6px 0;font-size:12px}.panel-box details ul{max-height:200px;padding-left:18px;overflow-y:auto}#bulk-cancel-btn{background:#f3f4f6}.unclassified-row{border-bottom:1px solid #f3f4f6;align-items:center;gap:6px;padding:6px 0;display:flex}.unclassified-row-label{text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:12px;overflow:hidden}.unclassified-row .move-target{flex:0 0 110px;width:auto;padding:4px;font-size:12px}.unclassified-row .move-btn{width:auto;margin-top:0;padding:4px 10px;font-size:12px}#unclassified-rows{max-height:320px;overflow-y:auto}.log-list{padding:0;font-size:12px;list-style:none}.log-list li{border-bottom:1px solid #f3f4f6;padding:6px 0}.verification-list{max-height:340px;margin-top:8px;overflow-y:auto}.verification-row{border-top:1px solid #e5e7eb;flex-direction:column;gap:3px;padding:8px 0;font-size:12px;display:flex}.verification-row>span{color:#4b5563}.month-group{border:1px solid #cbd5e1;border-radius:5px;margin:10px 0;overflow:hidden}.month-group summary{cursor:pointer;background:#eef2f7;padding:12px 14px;font-weight:700}.month-group[open] summary{background:#dbeafe}.month-group .hint{padding:10px}.month-tabs{border-bottom:1px solid #cbd5e1;flex-wrap:wrap;align-items:center;gap:5px;margin-bottom:10px;padding:10px 0;display:flex}.month-tabs strong{color:#334155;margin-right:8px}.month-tabs .month-tab{color:#475569;background:#fff;border:1px solid #cbd5e1;border-radius:5px;min-width:48px;padding:7px 10px}.month-tabs .month-tab[aria-pressed=true]{color:#fff;background:#12366a;border-color:#12366a;font-weight:700}.month-panel[hidden]{display:none!important}.month-panel-heading{color:#12366a;padding:8px 0;font-size:15px;font-weight:700}.month-group-table{padding:0;overflow:auto}.month-groups .xgrid{width:max-content;min-width:100%}.invoice-month{flex-wrap:wrap;align-items:center;gap:12px;margin:4px 0 12px;display:flex}.invoice-month-button{padding:9px 12px}.invoice-month-status{color:#64748b;font-size:13px}.invoice-month-status.is-confirmed,.invoice-confirmed{color:#dc2626!important}.invoice-month-message{background:#eff6ff;flex-basis:100%;margin:0;padding:10px}.invoice-status-list p{margin:8px 0;font-size:13px}.pending-jump-notice{color:#12366a;background:#eff6ff;align-items:center;gap:12px;padding:8px 12px;display:flex}#readonly-export-btn{min-width:34px;padding:6px 9px;font-size:21px;line-height:1}#readonly-export-result{color:#cbd5e1;white-space:nowrap;font-size:12px}#readonly-export-btn,#readonly-export-result{transition:none!important;animation:none!important}#invoice-mail-draft{color:#172033;border:1px solid #cbd5e1;border-radius:10px;width:min(1100px,92vw);max-height:85vh;padding:24px}#invoice-mail-draft::backdrop{background:#0007}#invoice-mail-draft label{align-items:center;gap:12px;margin:12px 0;display:flex}#invoice-mail-draft input{flex:1;min-width:0;padding:8px}#invoice-mail-draft .draft-body{background:#fff;border:1px solid #e2e8f0;padding:12px;overflow:auto}#invoice-mail-draft .draft-actions{justify-content:flex-end;gap:8px;display:flex}
