:root{--text:#1b1f23;--muted:#6b7280;--line:#d1d5db;--line-strong:#111827;--pink:#fde2e7;--yellow:#fff2cc;--sky:#e6f4ff;--green:#e7f6ec;--total-bg:#e5e7eb;--memo-bg:#f3f4f6;--danger:#c53030;--ui-page:#f4f5f7;--ui-surface:#ffffff;--ui-surface-2:#fafbfc;--ui-border:#e6e8ec;--ui-border-2:#d8dbe2;--ui-border-3:#c2c7d0;--ui-text:#16181d;--ui-dim:#6a7280;--ui-placeholder:#a6acb8;--ui-hover:#f1f2f5;--ui-chip:#eef0f4;--ui-accent:#2f62f4;--ui-accent-hover:#2452d8;--ui-accent-weak:#edf2ff;--ui-ring:rgba(47,98,244,0.16);--ui-danger:#c8372b;--ui-danger-weak:#fdf1f0;--ui-danger-border:#e8b4ae;--ui-warn-text:#8a5a08;--ui-warn-weak:#fdf5e4;--ui-warn-border:#e5c67f;--ui-h:34px;--ui-radius:10px;--ui-radius-lg:14px;--ui-shadow-sm:0 1px 2px rgba(16,24,40,0.04);--ui-shadow-lg:0 18px 48px rgba(16,24,40,0.18)}*{box-sizing:border-box}body,html{margin:0;padding:0;background:var(--ui-page);color:var(--text);font-family:Pretendard,Noto Sans KR,system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,Apple SD Gothic Neo,Malgun Gothic,sans-serif;font-size:14px}button,input,select,textarea{font-family:inherit;font-size:14px}.container{max-width:1200px;margin:0 auto;padding:20px 16px 56px}.boot{padding:48px 0;text-align:center;color:var(--ui-dim);font-size:13px}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:var(--ui-h);padding:0 12px;border:1px solid var(--ui-border-2);border-radius:var(--ui-radius);background:var(--ui-surface);color:var(--ui-text);font-size:13px;font-weight:600;line-height:1;white-space:nowrap;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;transition:background .12s ease,border-color .12s ease,color .12s ease}.btn:hover{background:var(--ui-hover);border-color:var(--ui-border-3)}.btn--primary{background:var(--ui-accent);border-color:var(--ui-accent);color:#fff}.btn--primary:hover{background:var(--ui-accent-hover);border-color:var(--ui-accent-hover)}.btn--ghost{background:transparent;border-color:transparent;color:var(--ui-dim)}.btn--ghost:hover{background:var(--ui-hover);color:var(--ui-text)}.btn--danger{color:var(--ui-danger);border-color:var(--ui-danger-border)}.btn--danger:hover{background:var(--ui-danger-weak);border-color:var(--ui-danger)}.btn input[type=file]{display:none}.icon-btn{display:inline-grid;place-items:center;width:30px;height:30px;padding:0;border:1px solid transparent;border-radius:8px;background:transparent;color:var(--ui-dim);cursor:pointer;transition:background .12s ease,color .12s ease}.icon-btn:hover{background:var(--ui-hover);color:var(--ui-text)}.icon-btn--danger:hover{background:var(--ui-danger-weak);color:var(--ui-danger)}.icon{flex:none;display:block}.btn:focus-visible,.icon-btn:focus-visible,.rec-close:focus-visible,.rec-item-main:focus-visible,.rec-main:focus-visible,.rec-more:focus-visible,.row-add:focus-visible{outline:2px solid var(--ui-accent);outline-offset:2px}.inp{width:100%;min-width:0;height:var(--ui-h);padding:0 10px;border:1px solid var(--ui-border-2);border-radius:8px;background:var(--ui-surface);color:var(--ui-text);font-size:13px;transition:border-color .12s ease,box-shadow .12s ease}.inp:hover{border-color:var(--ui-border-3)}.inp:focus{outline:none;border-color:var(--ui-accent);box-shadow:0 0 0 3px var(--ui-ring)}.inp::placeholder{color:var(--ui-placeholder)}.inp--num{text-align:right;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.inp.is-warn{border-color:var(--ui-warn-border);background:var(--ui-warn-weak)}textarea.inp{height:auto;padding:8px 10px;line-height:1.55;resize:vertical}select.inp{-moz-appearance:none;appearance:none;-webkit-appearance:none;padding-right:26px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='%236a7280'%3E%3Cpath fill-rule='evenodd' d='M5.23 7.21a.75.75 0 011.06.02L10 10.94l3.71-3.71a.75.75 0 111.08 1.04l-4.25 4.25a.75.75 0 01-1.08 0L5.25 8.27a.75.75 0 01-.02-1.06z' clip-rule='evenodd'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 6px center;background-size:15px 15px}.inp-adorn{position:relative;min-width:0}.inp-adorn .inp{padding-right:24px}.inp-adorn-suffix{position:absolute;right:9px;top:50%;transform:translateY(-50%);font-size:12px;color:var(--ui-dim);pointer-events:none}input[type=checkbox]{width:15px;height:15px;margin:0;accent-color:var(--ui-accent);cursor:pointer}.chip{display:inline-flex;align-items:center;height:22px;padding:0 8px;border-radius:999px;font-size:11.5px;font-weight:600;white-space:nowrap;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.chip--plain{background:var(--ui-chip);color:var(--ui-dim)}.chip--warn{background:var(--ui-warn-weak);color:var(--ui-warn-text)}.app-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px 16px;flex-wrap:wrap;margin-bottom:14px}.app-head h1{margin:0;font-size:17px;font-weight:800;letter-spacing:-.01em}.app-head p{margin:0;font-size:12px;color:var(--ui-dim)}.recordbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:12px}.recordbar-strip{flex:1 1 320px;min-width:0}.recordbar-actions,.recordbar-strip{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.rec{display:inline-flex;align-items:stretch;max-width:240px;height:36px;border:1px solid var(--ui-border);border-radius:var(--ui-radius);background:var(--ui-surface);overflow:hidden;transition:border-color .12s ease,background .12s ease}.rec:hover{border-color:var(--ui-border-3)}.rec-main{display:flex;align-items:center;gap:7px;min-width:0;padding:0 4px 0 11px;border:0;background:transparent;color:var(--ui-text);font-size:13px;cursor:pointer}.rec-date{flex:none;font-weight:700;color:var(--ui-dim);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.rec-title{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600}.rec-close{flex:none;display:grid;place-items:center;width:26px;padding:0;border:0;background:transparent;color:inherit;opacity:0;cursor:pointer;transition:opacity .12s ease}.rec-close:focus-visible,.rec.is-active .rec-close,.rec:hover .rec-close{opacity:.7}.rec-close:hover{opacity:1}.rec.is-active{background:var(--ui-accent);border-color:var(--ui-accent)}.rec.is-active .rec-close,.rec.is-active .rec-main{color:#fff}.rec.is-active .rec-date{color:rgba(255,255,255,.72)}.rec-more{flex:none;display:inline-grid;place-items:center;height:36px;min-width:40px;padding:0 10px;border:1px dashed var(--ui-border-2);border-radius:var(--ui-radius);background:transparent;color:var(--ui-dim);font-size:12.5px;font-weight:700;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;cursor:pointer;transition:border-color .12s ease,background .12s ease,color .12s ease}.rec-more:hover{border-color:var(--ui-accent);background:var(--ui-accent-weak);color:var(--ui-accent)}@media (hover:none){.rec-close{opacity:.7}}.modal-overlay{position:fixed;inset:0;z-index:60;display:grid;place-items:start center;padding:clamp(16px,9vh,96px) 16px 16px;background:rgba(17,24,39,.42)}.modal{display:flex;flex-direction:column;width:min(640px,100%);max-height:min(640px,calc(100vh - 32px));overflow:hidden;background:var(--ui-surface);border:1px solid var(--ui-border);border-radius:16px;box-shadow:var(--ui-shadow-lg)}.modal-search{display:flex;align-items:center;gap:8px;padding:10px 10px 10px 13px;border-bottom:1px solid var(--ui-border);color:var(--ui-dim)}.modal-search .inp{height:30px;padding:0;border:0;background:transparent}.modal-search .inp:focus{box-shadow:none}.modal-list{display:grid;grid-gap:2px;gap:2px;padding:8px;overflow-y:auto}.modal-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border-top:1px solid var(--ui-border);background:var(--ui-surface-2)}.modal-hint{font-size:11.5px}.modal-empty,.modal-hint{margin:0;color:var(--ui-dim)}.modal-empty{padding:28px 12px;text-align:center;font-size:13px}.rec-item{display:flex;align-items:center;gap:4px;padding-right:6px;border-radius:var(--ui-radius)}.rec-item.is-cursor{background:var(--ui-hover)}.rec-item.is-active{background:var(--ui-accent-weak);box-shadow:inset 0 0 0 1px var(--ui-accent)}.rec-item-main{flex:1 1;min-width:0;display:grid;grid-gap:5px;gap:5px;padding:9px 10px;border:0;background:transparent;text-align:left;cursor:pointer}.rec-item-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:700;color:var(--ui-text)}.rec-item-meta{display:flex;gap:4px;flex-wrap:wrap}.panel{margin-bottom:14px;border:1px solid var(--ui-border);border-radius:var(--ui-radius-lg);background:var(--ui-surface);box-shadow:var(--ui-shadow-sm);overflow:hidden}.panel-head{display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap;padding:12px 14px;background:var(--ui-surface-2);border-bottom:1px solid var(--ui-border)}.panel-toggle{margin-left:auto}.panel-toggle .icon{transition:transform .15s ease}.panel-toggle[aria-expanded=false] .icon{transform:rotate(-90deg)}.panel-body{padding:14px}.panel-body,.panel-row{display:grid;grid-gap:14px;gap:14px}.field,.panel-row{min-width:0}.field{display:grid;grid-gap:5px;gap:5px}.field>span{font-size:11.5px;font-weight:700;color:var(--ui-dim)}.field--date{flex:none;width:168px}.field--title{flex:1 1 260px}.card{display:flex;flex-direction:column;min-width:0;border:1px solid var(--ui-border);border-radius:12px;background:var(--ui-surface)}.card-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:10px 12px 8px}.card-title{margin:0;font-size:13px;font-weight:800}.card-chips{display:flex;gap:4px;flex-wrap:wrap;margin-left:auto}.card-body{display:flex;flex-direction:column;flex:1 1;min-width:0;padding:0 12px 12px}.card-hint{margin:0;padding:8px 12px 10px;border-top:1px solid var(--ui-border);font-size:11.5px;line-height:1.55;color:var(--ui-dim)}.card--memo .card-body{display:grid}.card--memo textarea{height:100%;min-height:152px}.rows-wrap{display:flex;flex-direction:column;min-width:0}.rows{grid-gap:4px;gap:4px}.row,.rows{display:grid;min-width:0}.row{grid-gap:6px;gap:6px;align-items:center;border-radius:8px}.row--head{font-size:11px;font-weight:700;color:var(--ui-dim)}.row--head>span{padding:0 11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.row--head-dup{display:none}.row.is-drag-over{outline:2px dashed var(--ui-accent);outline-offset:2px}.row.is-muted .inp{background:var(--ui-chip)}.row--income{grid-template-columns:18px minmax(0,1fr) 142px 92px 30px}.row--incentive{grid-template-columns:18px minmax(0,1fr) 118px minmax(88px,.75fr) 30px}.row--penalty{grid-template-columns:18px minmax(0,1fr) 104px minmax(84px,.7fr) minmax(96px,.85fr) 30px}.row--member{grid-template-columns:18px minmax(0,1fr) minmax(0,1fr) 84px 30px}.row--head.row--incentive>span:nth-child(3),.row--head.row--income>span:nth-child(3),.row--head.row--income>span:nth-child(4),.row--head.row--penalty>span:nth-child(3){text-align:right;padding-right:10px}.row--head.row--income>span:nth-child(4){padding-right:24px}.row--head.row--member>span:nth-child(4){text-align:center}.row-check{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:var(--ui-h);cursor:pointer}.row-check-text{display:none;font-size:12px;color:var(--ui-dim)}.rows-empty{margin:0;padding:4px 2px 2px}.row-add,.rows-empty{font-size:12.5px;color:var(--ui-dim)}.row-add{align-self:flex-start;justify-self:start;display:inline-flex;align-items:center;gap:6px;height:30px;margin-top:6px;padding:0 10px;border:1px dashed var(--ui-border-2);border-radius:8px;background:transparent;font-weight:600;cursor:pointer;transition:border-color .12s ease,color .12s ease,background .12s ease}.row-add:hover{border-color:var(--ui-accent);background:var(--ui-accent-weak);color:var(--ui-accent)}.drag-handle{width:14px;height:26px;justify-self:center;align-self:center;border-radius:4px;background:radial-gradient(circle at 30% 28%,#9ca3af 1.4px,transparent 0),radial-gradient(circle at 70% 28%,#9ca3af 1.4px,transparent 0),radial-gradient(circle at 30% 50%,#9ca3af 1.4px,transparent 0),radial-gradient(circle at 70% 50%,#9ca3af 1.4px,transparent 0),radial-gradient(circle at 30% 72%,#9ca3af 1.4px,transparent 0),radial-gradient(circle at 70% 72%,#9ca3af 1.4px,transparent 0);opacity:.4;cursor:-webkit-grab;cursor:grab;-webkit-user-select:none;-moz-user-select:none;user-select:none;touch-action:none;transition:opacity .12s ease}.row:hover .drag-handle{opacity:1}.drag-handle:active{cursor:-webkit-grabbing;cursor:grabbing}.toolbar{gap:8px;margin-bottom:16px}.toolbar,.toolbar-group{display:flex;align-items:center;flex-wrap:wrap}.toolbar-group{gap:6px}.toolbar-group--end{margin-left:auto}.toolbar-note{flex-basis:100%;margin:0;font-size:11.5px;color:var(--ui-dim)}.toast-layer{position:fixed;left:0;right:0;bottom:24px;z-index:80;display:grid;place-items:center;padding:0 16px;pointer-events:none}.toast{max-width:min(540px,100%);padding:10px 16px;border-radius:999px;background:#1f2430;color:#fff;font-size:13px;font-weight:600;box-shadow:var(--ui-shadow-lg);animation:toast-in .18s ease-out}.toast--error{background:#ad2f22}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@media (min-width:1100px){.rows--split{grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:16px}.rows--split .row--head-dup{display:grid}}@media (min-width:981px){.panel-row--income{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.panel-row--penalty{grid-template-columns:minmax(0,1.35fr) minmax(0,1fr)}}@media (max-width:700px){.row--head{display:none}.rows{gap:6px}.row--incentive,.row--income,.row--member,.row--penalty{grid-template-columns:minmax(0,1fr) minmax(0,1fr) 30px;padding:8px;border:1px solid var(--ui-border);border-radius:10px;background:var(--ui-surface-2)}.row .drag-handle{display:none}.row .inp--label{grid-area:1/1/2/3}.row>.icon-btn{grid-area:1/3/2/4}.row--penalty select.inp:last-of-type{grid-column:1/-1}.row-check{justify-content:flex-start}.row-check-text{display:inline}.app-head{display:grid}}.sheet-card{padding:18px 20px 22px;border:1px solid var(--ui-border);border-radius:var(--ui-radius-lg);box-shadow:var(--ui-shadow-sm);overflow-x:auto}#printArea,.sheet-card{background:#fff}.header{text-align:center;font-weight:800;font-size:24px;margin:12px 0 8px}.sheet{display:grid;grid-template-columns:1fr;grid-gap:12px;gap:12px;align-items:start}@media (max-width:1024px){.sheet{grid-template-columns:1fr}}table{width:100%;border-collapse:collapse;background:#fff}td,th{border:1px solid var(--line);padding:8px 10px;vertical-align:middle}th{background:#f9fafb;text-align:center;font-weight:700}td.num{text-align:right;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}td.name{white-space:nowrap}td .note{color:var(--muted);font-size:12px;margin-left:6px}tr.total-row td,tr.total-row th{border-top:2px solid var(--line-strong);border-bottom:2px solid var(--line-strong);background:var(--total-bg);font-weight:800}tr.total-row td.mismatch{color:var(--danger)}.badge{display:inline-block;border:1px solid #9ca3af;color:#374151;background:#f3f4f6;font-size:11px;padding:1px 6px;border-radius:999px;margin-left:6px}.group-pink{background:var(--pink)}.group-yellow{background:var(--yellow)}.group-sky{background:var(--sky)}.group-green{background:var(--green)}.memo-box{border:2px solid var(--line-strong);border-radius:8px;background:var(--memo-bg);padding:10px}.memo-box h4{margin:0 0 8px;font-size:14px}.memo-content{white-space:pre-wrap}.footer{margin-top:10px;display:grid;grid-template-columns:1fr 1fr;grid-gap:12px;gap:12px}@media (max-width:1024px){.footer{grid-template-columns:1fr}}.summary-table td,.summary-table th{text-align:right}.summary-table td:first-child,.summary-table th:first-child{text-align:left}.kpi{margin-top:8px;display:grid;grid-template-columns:repeat(4,1fr);grid-gap:8px;gap:8px}.kpi .tile{border:1px solid var(--line);border-radius:8px;padding:10px;background:#fff;text-align:center}.kpi .tile .label{color:var(--muted);font-size:12px}.kpi .tile .value{font-size:18px;font-weight:800}.sheet-capture{font-size:14px;text-size-adjust:100%}.sheet-capture .sheet{grid-template-columns:1fr}.sheet-capture .footer{grid-template-columns:1fr 1fr}.sheet-capture .kpi{grid-template-columns:repeat(4,1fr)}@media print{.chrome,.no-print,.toast-layer{display:none!important}body{background:#fff;-webkit-print-color-adjust:exact;print-color-adjust:exact}.container{max-width:none;margin:0;padding:0}.sheet-card{padding:0;border:0;border-radius:0;box-shadow:none;overflow:visible}@page{size:A4 landscape;margin:12mm}.footer,.header,.sheet{break-inside:avoid;page-break-inside:avoid}}