:root{--font-sans:"Noto Sans KR", -apple-system, system-ui, sans-serif;--font-en:"Noto Sans KR", -apple-system, system-ui, sans-serif;--font-mono:"Noto Sans KR", -apple-system, system-ui, sans-serif;--font-document-preview:"Malgun Gothic", Arial, sans-serif;--color-bg:#fff;--color-app-bg:#fafafa;--color-panel:#f9fafb;--color-panel-2:#f3f4f6;--color-archived:#f9fafb;--color-border:#e5e7eb;--color-fg:#111827;--color-fg-2:#374151;--color-fg-muted:#6b7280;--color-fg-faint:#9ca3af;--color-accent:#111827;--color-accent-2:#f3f4f6;--color-ok:#22c55e;--color-warn:#f97316;--color-bad:#ef4444;--color-focus:#111827;--control-font-size:13px;--control-font-size-compact:12px;--control-height:32px;--control-height-compact:28px;--control-padding-y:6px;--control-padding-x:12px;--control-padding-y-compact:4px;--control-padding-x-compact:8px;--color-border-soft:#eef0f3;--color-table-head:#f4f6fa;--color-info:#3b82f6;--color-info-soft:#eff6ff;--color-info-border:#bfdbfe;--color-info-strong:#1d4ed8;--color-success-soft:#ecfdf5;--color-success-border:#bbf7d0;--color-success-icon:#16a34a;--color-success-text:#15803d;--color-approval-ready-bg:#f6fdf9;--color-approval-ready-border:#d5f0e0;--color-warning-soft:#fff4ed;--color-warning-border:#fed7aa;--color-warning-text:#c2410c;--color-danger-soft:#fef2f2;--color-danger-border:#fecaca;--color-danger-text:#b91c1c}*{box-sizing:border-box}body{background:var(--color-app-bg);color:var(--color-fg);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;word-break:keep-all;margin:0;font-size:14px;line-height:1.6}:root{--side-rail:64px;--side-open:232px}.shell{min-height:100vh}.side{width:var(--side-rail);background:var(--color-panel);border-right:1px solid var(--color-border);z-index:20;flex-direction:column;gap:22px;padding:18px 12px;transition:width .16s,box-shadow .16s;display:flex;position:fixed;top:0;bottom:0;left:0;overflow:hidden}.side:hover,.side:focus-within{width:var(--side-open);box-shadow:4px 0 16px #1018281a}.side-nav{flex-direction:column;gap:2px;display:flex}.side-nav a{min-height:42px;color:var(--color-fg-muted);white-space:nowrap;border-radius:6px;align-items:center;gap:12px;padding:10px;font-size:14px;font-weight:600;text-decoration:none;display:flex;overflow:hidden}.side-nav a svg{flex:0 0 18px}.side-nav a:hover,.side-nav a.active{background:var(--color-panel-2);color:var(--color-fg)}.side-nav a.active svg{color:var(--color-accent)}.side .label{opacity:0;transition:opacity .12s 40ms}.side:hover .label,.side:focus-within .label{opacity:1}.side-account{opacity:0;visibility:hidden;transition:opacity .12s,visibility 0s linear .16s}.side:hover .side-account,.side:focus-within .side-account{opacity:1;visibility:visible;transition:opacity .12s 40ms,visibility}.side-account{border-top:1px solid var(--color-border);white-space:nowrap;flex-direction:column;gap:6px;margin-top:auto;padding:12px 8px 4px;font-size:13px;display:flex;overflow:hidden}.side-account strong{font-weight:600}.role-tag{background:var(--color-panel-2);color:var(--color-fg-2);border-radius:4px;align-self:flex-start;padding:2px 7px;font-size:11px;font-weight:700}.shell-body{margin-left:var(--side-rail);min-width:0;padding:20px 28px 40px}.page-lede{max-width:72ch}h1{letter-spacing:-.01em;margin:0 0 4px;font-size:24px;font-weight:700}.page-lede{color:var(--color-fg-muted);margin:0 0 18px;font-size:13px}@media (prefers-reduced-motion:reduce){.side,.side .label,.side-account{transition:none!important}}@media (width<=1000px){.side,.side:hover,.side:focus-within{border-right:none;border-bottom:1px solid var(--color-border);width:auto;box-shadow:none;flex-direction:row;align-items:center;padding:10px 16px;position:static;overflow:visible}.side .label{opacity:1}.side-nav{flex-direction:row}.side-nav a{min-height:34px;padding:7px 12px}.side-account{opacity:1;visibility:visible;border-top:none;flex-direction:row;align-items:center;gap:8px;margin:0 0 0 auto;padding:0}.shell-body{margin-left:0}}.type-picker{border-bottom:1px solid var(--color-border);flex-wrap:wrap;margin:0 0 18px;display:flex}.type-picker button{appearance:none;color:var(--color-fg-muted);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-1px;padding:8px 14px;font-family:inherit;font-size:13px;font-weight:600}.type-picker button:hover{color:var(--color-fg)}.type-picker button[aria-pressed=true]{color:var(--color-fg);border-bottom-color:var(--color-accent)}.group,.card,.table-wrap{background:var(--color-bg);border:1px solid var(--color-border);border-radius:8px}.group{margin:0 0 14px;padding:4px 20px 16px}.card{margin:0 0 14px;padding:14px 18px 16px}.group legend,.card h2{color:var(--color-fg);margin:14px 0 10px;padding:0;font-size:13px;font-weight:700}.card h2{margin-top:0}.field{border-top:1px solid var(--color-border-soft);grid-template-columns:172px minmax(0,380px);align-items:start;gap:2px 16px;padding:6px 0;display:grid}.group .field:first-of-type{border-top:none}.field>label{color:var(--color-fg-2);padding-top:7px;font-size:13px;font-weight:600}.field abbr{color:var(--color-bad);text-decoration:none}.field input[type=text],.field input[type=date],.field select,.field textarea,.note-input,.comment-form textarea{width:100%;min-height:var(--control-height);padding:var(--control-padding-y) var(--control-padding-x);border:1px solid var(--color-border);background:var(--color-bg);color:var(--color-fg);font-family:inherit;font-size:var(--control-font-size);border-radius:6px}.field textarea,.comment-form textarea{resize:vertical;line-height:1.5}.field input:focus-visible,.field select:focus-visible,.field textarea:focus-visible,.note-input:focus-visible,.comment-form textarea:focus-visible{outline:2px solid var(--color-focus);outline-offset:-1px;border-color:var(--color-focus)}.field input:disabled,.field select:disabled{background:var(--color-panel);color:var(--color-fg-muted);cursor:not-allowed}.field input[type=checkbox]{width:15px;height:15px;accent-color:var(--color-accent);justify-self:start;margin-top:9px}.field[data-invalid=true] input,.field[data-invalid=true] select,.field[data-invalid=true] textarea{border-color:var(--color-bad)}.field-hint,.field-error{grid-column:2;font-size:12px;line-height:1.5}.field-hint{color:var(--color-fg-faint)}.field-error{color:var(--color-bad);font-weight:600}.radio-row{gap:16px;padding-top:7px;font-size:13px;display:flex}.radio-row label{cursor:pointer;align-items:center;gap:6px;display:inline-flex}.radio-row input{accent-color:var(--color-accent)}.third-party{background:var(--color-bg);border:1px solid var(--color-border);cursor:pointer;border-radius:6px;align-items:center;gap:8px;margin:0 0 10px;padding:7px 12px;font-size:13px;font-weight:600;display:inline-flex}.third-party input{accent-color:var(--color-accent);width:15px;height:15px}.guide,.blockers{background:var(--color-warning-soft);border:1px solid var(--color-warning-border);max-width:660px;color:var(--color-warning-text);border-radius:6px;margin:0 0 14px;padding:10px 14px;font-size:13px}.guide strong,.blockers strong{margin-bottom:3px;display:block}.blockers ul{margin:0;padding-left:18px}button.primary,button.ghost{appearance:none;font-family:inherit;font-size:var(--control-font-size);min-height:var(--control-height);padding:var(--control-padding-y) 16px;cursor:pointer;border-radius:6px;font-weight:600}button.primary{background:var(--color-accent);border:1px solid var(--color-accent);color:#fff}button.primary:hover:not(:disabled){background:var(--color-fg-2);border-color:var(--color-fg-2)}button.ghost{background:var(--color-bg);border:1px solid var(--color-border);color:var(--color-fg-2)}button.ghost:hover:not(:disabled){background:var(--color-panel-2)}button:disabled{opacity:.5;cursor:not-allowed}.actions{background:var(--color-bg);border-top:1px solid var(--color-border);border-left:1px solid var(--color-border);align-items:center;gap:8px;margin:18px -28px -40px;padding:12px 20px;display:flex;position:sticky;bottom:0}.actions .meta{margin:0 auto 0 0}.filters{background:var(--color-bg);border:1px solid var(--color-border);border-radius:8px;flex-wrap:wrap;align-items:center;gap:10px;margin:0 0 12px;padding:10px 14px;display:flex}.filters label{align-items:center;gap:7px;display:inline-flex}.filters label span{color:var(--color-fg-muted);white-space:nowrap;font-size:12px;font-weight:700}.filters select{min-height:var(--control-height-compact);padding:var(--control-padding-y-compact) 26px var(--control-padding-y-compact) var(--control-padding-x-compact);border:1px solid var(--color-border);background:var(--color-bg);color:var(--color-fg);font-family:inherit;font-size:var(--control-font-size-compact);border-radius:6px;font-weight:600}.filters select:focus-visible{outline:2px solid var(--color-focus);outline-offset:-1px}.filters button.ghost{min-height:var(--control-height-compact);padding:var(--control-padding-y-compact) 12px;font-size:var(--control-font-size-compact)}.filter-count{color:var(--color-fg-muted);font-variant-numeric:tabular-nums;margin-left:auto;font-size:12px;font-weight:700}.table-wrap{overflow-x:auto}.grid{border-collapse:collapse;width:100%;min-width:880px}.grid th{text-align:center;color:var(--color-fg-muted);background:var(--color-table-head);border-bottom:1px solid var(--color-border);white-space:nowrap;padding:9px 14px;font-size:12px;font-weight:700}.grid td{border-bottom:1px solid var(--color-border-soft);text-align:center;padding:10px 14px;font-size:13px}.grid tbody tr:last-child td{border-bottom:none}.grid tbody tr:hover{background:var(--color-panel)}.grid .num{text-align:center;font-variant-numeric:tabular-nums;white-space:nowrap}.grid .no{color:var(--color-fg-muted);white-space:nowrap;font-size:12px}.grid .title{font-weight:600}.chip{white-space:nowrap;border:1px solid #0000;border-radius:4px;padding:2px 8px;font-size:12px;font-weight:700;display:inline-block}.chip[data-tone=idle]{background:var(--color-panel-2);color:var(--color-fg-muted);border-color:var(--color-border)}.chip[data-tone=active]{background:var(--color-info-soft);color:var(--color-info-strong);border-color:var(--color-info-border)}.chip[data-tone=done]{background:var(--color-success-soft);color:var(--color-success-text);border-color:var(--color-success-border)}.chip[data-tone=warn]{background:var(--color-warning-soft);color:var(--color-warning-text);border-color:var(--color-warning-border)}.chip[data-tone=stop]{background:var(--color-danger-soft);color:var(--color-danger-text);border-color:var(--color-danger-border)}.tag{color:var(--color-fg-muted);background:var(--color-panel-2);border-radius:4px;margin-left:5px;padding:2px 6px;font-size:11px;font-weight:600;display:inline-block}.empty,.loading{background:var(--color-bg);border:1px solid var(--color-border);text-align:center;color:var(--color-fg-muted);border-radius:8px;padding:40px 20px;font-size:13px}.empty strong{color:var(--color-fg);margin-bottom:4px;font-size:14px;display:block}.error{background:var(--color-danger-soft);border:1px solid var(--color-danger-border);color:var(--color-danger-text);border-radius:6px;margin:0 0 12px;padding:9px 14px;font-size:13px;font-weight:600}.meta{color:var(--color-fg-muted);font-size:12px}a{color:var(--color-info-strong)}:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}.crumb{margin:0 0 10px;font-size:12px}.crumb a{color:var(--color-fg-muted);text-decoration:none}.crumb a:hover{color:var(--color-fg)}.detail-head{border-bottom:1px solid var(--color-border);align-items:flex-start;gap:24px;margin:0 0 16px;padding:0 0 16px;display:flex}.detail-no{color:var(--color-fg-muted);align-items:center;gap:7px;margin:0 0 5px;font-size:12px;font-weight:700;display:flex}.detail-head h1{margin:0 0 5px}.detail-head .page-lede{margin:0}.detail-amount{text-align:right;background:var(--color-panel);border:1px solid var(--color-border);border-radius:8px;flex:none;margin-left:auto;padding:8px 16px}.detail-amount-label{color:var(--color-fg-muted);font-size:11px;display:block}.detail-amount strong{font-variant-numeric:tabular-nums;font-size:20px;font-weight:700}.action-bar{background:var(--color-info-soft);border:1px solid var(--color-info-border);border-radius:8px;flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 14px;padding:10px 14px;display:flex}.note-input{flex:220px;width:auto;min-width:180px}.detail-cols{grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:14px;display:grid}.card dl{margin:0}.card .row{border-top:1px solid var(--color-border-soft);grid-template-columns:124px minmax(0,1fr);gap:12px;padding:6px 0;font-size:13px;display:grid}.card .row:first-child{border-top:none}.card dt{color:var(--color-fg-muted);font-weight:600}.card dd{overflow-wrap:anywhere;margin:0}.files{gap:4px;margin:10px 0 0;padding:0;list-style:none;display:grid}.files li{align-items:center;gap:8px;font-size:13px;display:flex}.file-kind{color:var(--color-fg-2);background:var(--color-panel-2);border-radius:4px;flex:none;padding:2px 7px;font-size:11px;font-weight:600}.timeline{margin:0;padding:0 0 0 14px;list-style:none}.timeline li{border-left:2px solid var(--color-border);padding:0 0 14px 14px;position:relative}.timeline li:last-child{border-left-color:#0000;padding-bottom:0}.timeline li:before{content:"";background:var(--color-bg);border:2px solid var(--color-fg-faint);border-radius:50%;width:10px;height:10px;position:absolute;top:5px;left:-6px}.timeline li[data-tone=active]:before{border-color:var(--color-info)}.timeline li[data-tone=done]:before{border-color:var(--color-ok);background:var(--color-ok)}.timeline li[data-tone=warn]:before{border-color:var(--color-warn)}.timeline li[data-tone=stop]:before{border-color:var(--color-bad)}.t-status{font-size:13px;font-weight:700;display:block}.t-meta{color:var(--color-fg-muted);font-size:12px;display:block}.t-note{color:var(--color-fg-2);background:var(--color-panel);border-radius:4px;margin-top:3px;padding:5px 8px;font-size:12px;display:block}.comments{gap:10px;margin:0 0 10px;padding:0;list-style:none;display:grid}.comments p{white-space:pre-wrap;margin:2px 0 0;font-size:13px}.c-meta{color:var(--color-fg-muted);font-size:12px}.comment-form{justify-items:end;gap:8px;display:grid}@media (width<=900px){.detail-cols{grid-template-columns:1fr}.detail-head{flex-direction:column}.detail-amount{text-align:left;margin-left:0}}@media (width<=700px){.field{grid-template-columns:1fr}.field>label{padding-top:0}.field-hint,.field-error{grid-column:1}.shell-body{padding:16px}.actions{margin:18px -16px -40px;padding:12px 16px}}.campaign-create input[type=text],.campaign-create input[type=date]{min-height:var(--control-height-compact);padding:var(--control-padding-y-compact) var(--control-padding-x-compact);border:1px solid var(--color-border);background:var(--color-bg);color:var(--color-fg);font-family:inherit;font-size:var(--control-font-size-compact);border-radius:6px}.campaign-create input[type=text]{width:160px}.notice{background:var(--color-success-soft);border:1px solid var(--color-success-border);color:var(--color-success-text);border-radius:6px;margin:0 0 12px;padding:9px 14px;font-size:13px;font-weight:600}.table-wrap.borderless{border:none;border-radius:0}.send-row{align-items:center;gap:10px;margin:0 0 10px;display:flex}.send-row .note-input{max-width:280px}.invoice-list{gap:8px;margin:0;padding:0;list-style:none;display:grid}.invoice-list li{border:1px solid var(--color-border-soft);border-radius:6px;flex-wrap:wrap;align-items:center;gap:12px;padding:8px 10px;font-size:13px;display:flex}.invoice-list .no{font-size:12.5px;font-weight:700}.invoice-list .num{font-variant-numeric:tabular-nums;font-weight:600}.invoice-list a{margin-left:auto}.upload-row{flex-wrap:wrap;align-items:center;gap:8px;margin-top:10px;display:flex}.upload-row select,.upload-row input[type=file]{min-height:var(--control-height-compact);padding:var(--control-padding-y-compact) var(--control-padding-x-compact);border:1px solid var(--color-border);background:var(--color-bg);color:var(--color-fg);font-family:inherit;font-size:var(--control-font-size-compact);border-radius:6px}.files li a{margin-left:auto;font-size:12px}.files li button{color:var(--color-fg-muted);cursor:pointer;background:0 0;border:none;padding:2px 4px;font-size:12px}.files li button:hover{color:var(--color-bad)}.modal-backdrop{z-index:50;background:#10182873;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.modal{background:var(--color-bg);border:1px solid var(--color-border);border-radius:10px;width:100%;max-width:440px;padding:20px 22px;box-shadow:0 12px 32px #1018282e}.modal h2{margin:0 0 16px;font-size:16px;font-weight:700}.modal-field{gap:5px;margin:0 0 12px;display:grid}.modal-field.two{grid-template-columns:1fr 1fr;gap:12px}.modal-field.two>div{gap:5px;display:grid}.modal-field label{color:var(--color-fg-2);font-size:12.5px;font-weight:700}.modal-field input,.modal-field textarea{width:100%;min-height:var(--control-height);padding:var(--control-padding-y) var(--control-padding-x);border:1px solid var(--color-border);background:var(--color-bg);color:var(--color-fg);font-family:inherit;font-size:var(--control-font-size);border-radius:6px}.modal-field textarea{resize:vertical}.modal-field input:focus-visible,.modal-field textarea:focus-visible{outline:2px solid var(--color-focus);outline-offset:-1px}.modal-actions{justify-content:flex-end;gap:8px;margin-top:18px;display:flex}.filters button.primary{min-height:var(--control-height-compact);padding:var(--control-padding-y-compact) 14px;font-size:var(--control-font-size-compact);align-items:center;gap:6px;margin-left:auto;display:inline-flex}.filters .filter-count{margin-left:0}.filters input[type=text]{min-height:var(--control-height-compact);padding:var(--control-padding-y-compact) var(--control-padding-x-compact);border:1px solid var(--color-border);background:var(--color-bg);color:var(--color-fg);font-family:inherit;font-size:var(--control-font-size-compact);border-radius:6px;width:140px}.button-like{min-height:var(--control-height);padding:var(--control-padding-y) 16px;border:1px solid var(--color-border);background:var(--color-bg);color:var(--color-fg-2);font-size:var(--control-font-size);border-radius:6px;align-items:center;font-weight:600;text-decoration:none;display:inline-flex}.button-like:hover{background:var(--color-panel-2)}.workflow-strip{background:var(--color-bg);border:1px solid var(--color-border);border-radius:8px;flex-wrap:wrap;gap:10px 24px;margin:0 0 14px;padding:10px 14px;display:flex}.workflow-item{align-items:center;gap:8px;display:flex}.workflow-item .w-label{color:var(--color-fg-muted);font-size:12px;font-weight:700}.workflow-item button{min-height:var(--control-height-compact);padding:var(--control-padding-y-compact) 12px;font-size:var(--control-font-size-compact)}.roster-add{flex-wrap:wrap;gap:8px;margin:0 0 12px;display:flex}.roster-add input,.roster-add select{min-height:var(--control-height-compact);padding:var(--control-padding-y-compact) var(--control-padding-x-compact);border:1px solid var(--color-border);background:var(--color-bg);color:var(--color-fg);font-family:inherit;font-size:var(--control-font-size-compact);border-radius:6px}.roster-add input{width:170px}.roster{gap:6px;margin:0;padding:0;list-style:none;display:grid}.roster li{border:1px solid var(--color-border-soft);border-radius:6px;flex-wrap:wrap;align-items:center;gap:10px;padding:7px 10px;font-size:13px;display:flex}.roster li a{text-decoration:none}.roster-make{border:1px solid var(--color-border);background:var(--color-bg);color:var(--color-fg-2);cursor:pointer;border-radius:6px;margin-left:auto;padding:3px 10px;font-size:12px;font-weight:600}.roster-make:hover:not(:disabled){background:var(--color-panel-2)}.roster-remove{color:var(--color-fg-muted);cursor:pointer;background:0 0;border:none;font-size:12px}.roster-remove:hover{color:var(--color-bad)}.invite-row input,.invite-row select{min-height:var(--control-height-compact);padding:var(--control-padding-y-compact) var(--control-padding-x-compact);border:1px solid var(--color-border);background:var(--color-bg);color:var(--color-fg);font-family:inherit;font-size:var(--control-font-size-compact);border-radius:6px}.invite-row input{width:180px}.row-inactive td{color:var(--color-fg-faint)}.row-inactive .title{text-decoration:line-through}.grid td select{min-height:var(--control-height-compact);border:1px solid var(--color-border);background:var(--color-bg);color:var(--color-fg);font-family:inherit;font-size:var(--control-font-size-compact);border-radius:6px;padding:2px 6px}.stats-grid{grid-template-columns:repeat(auto-fit,minmax(340px,1fr));gap:14px;display:grid}.grid.mini{min-width:0}.grid.mini th,.grid.mini td{padding:7px 10px;font-size:12.5px}.login-page{place-items:center;min-height:100vh;padding:24px;display:grid}.login-card{width:min(420px,100%)}.link-button{color:inherit;cursor:pointer;text-align:left;background:0 0;border:0;padding:0}.combobox{position:relative}.field .combobox input[type=text]{padding-right:28px}.combobox-clear{width:20px;height:20px;color:var(--color-fg-muted);cursor:pointer;background:0 0;border:none;border-radius:4px;font-size:15px;line-height:1;position:absolute;top:50%;right:6px;transform:translateY(-50%)}.combobox-clear:hover{background:var(--color-panel);color:var(--color-fg)}.combobox-list{z-index:20;border:1px solid var(--color-border);background:var(--color-bg);border-radius:6px;max-height:260px;margin:0;padding:4px 0;list-style:none;position:absolute;top:calc(100% + 2px);left:0;right:0;overflow-y:auto;box-shadow:0 6px 18px #00000014}.combobox-list li{font-size:var(--control-font-size);cursor:pointer;justify-content:space-between;gap:12px;padding:6px 10px;display:flex}.combobox-list li[data-active=true]{background:var(--color-panel)}.combobox-list li[aria-selected=true]{font-weight:600}.combobox-empty{color:var(--color-fg-muted);cursor:default}.combobox-sub{color:var(--color-fg-faint);white-space:nowrap;font-size:12px}.field input.money{text-align:right;font-variant-numeric:tabular-nums}.field-with-action{align-items:flex-start;gap:8px;display:flex}.field-with-action textarea{flex:1}.field-action{min-height:var(--control-height);white-space:nowrap;flex:none}.upload-error{margin-top:6px;display:block}.modal-field .field-error{grid-column:auto;margin-top:4px;display:block}
