/* Tally · contract screens — payments-style table, invoice builder, customer-page project */
.t-pill.ct-draft{background:#eceff3;color:var(--muted)}.t-pill.ct-wait{background:var(--warn-soft);color:#9a5205}.t-pill.ct-review{background:var(--info-soft);color:#1e4fb3}.t-pill.ct-done{background:var(--ok-soft);color:#0b7a55}
.ct-search{display:flex;align-items:center;gap:8px;height:30px;padding:0 10px;border:1px solid var(--line2);border-radius:7px;background:#fff;color:var(--muted)}.ct-search input{border:0;background:none;outline:0;font-size:13px;width:200px;color:var(--text)}.ct-search .icon{width:14px;height:14px}
.t-filter-count b{color:var(--ink);font-weight:600}
.ct-table{min-width:1180px}
.ct-check{width:36px!important;text-align:center}.ct-check input{accent-color:var(--accent);width:14px;height:14px;margin:0}
.ct-balance{color:var(--accent-deep);font-weight:600}
.ct-prog{display:inline-block;width:64px;height:6px;border-radius:3px;background:#eceff3;overflow:hidden;vertical-align:middle;margin-right:6px}.ct-prog i{display:block;height:100%;width:var(--p);background:var(--accent);border-radius:3px}.ct-prog.full{width:100%;margin:0}
.t-table tbody tr.selected td{background:var(--accent-soft)}
.ct-table tfoot td{background:#fafbfc;font-weight:600;font-size:12.5px;border-top:1px solid var(--line);white-space:nowrap}
.ct-panel-title{margin-top:10px;font-size:15px;font-weight:600;color:var(--ink)}
.ct-kv{margin-top:14px}
/* entry */
.ct-lead{margin-top:6px;font-size:13px;color:var(--muted)}.ct-lead b{color:var(--ink)}
.ct-steps{display:grid;grid-template-columns:repeat(6,1fr);gap:6px;margin-bottom:18px}.ct-steps li{display:flex;align-items:center;gap:8px;padding:9px 12px;border-radius:8px;background:#fff;box-shadow:var(--shadow-sm);font-size:12px;color:var(--muted)}.ct-steps li i{width:8px;height:8px;border-radius:50%;background:var(--line2);flex-shrink:0}.ct-steps li.done{color:var(--ink)}.ct-steps li.done i{background:var(--ok)}.ct-steps li.now{color:var(--accent-deep);font-weight:600;box-shadow:0 0 0 1px var(--accent),var(--shadow-sm)}.ct-steps li.now i{background:var(--accent)}
.ct-entry-grid{display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:20px;align-items:start}
.ct-entry-main{display:grid;gap:16px}.ct-entry-main .t-card+.t-card{margin-top:0}
.ct-three{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.ct-lines{width:100%;border-collapse:collapse;margin-bottom:10px}.ct-lines th{text-align:left;font-size:11.5px;font-weight:600;color:var(--muted);padding:8px 6px;border-bottom:1px solid var(--line)}.ct-lines th.r,.ct-lines td.r{text-align:right}.ct-lines td{padding:5px 4px;border-bottom:1px solid var(--line);font-size:13px}
.ct-lines input{width:100%;height:34px;padding:0 10px;border:1px solid var(--line2);border-radius:6px;font-size:13px;color:var(--text)}.ct-lines input:focus{outline:0;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.ct-lines input[type=number]{text-align:right}
.ct-upload{display:grid;grid-template-columns:auto 1fr;gap:2px 12px;align-items:center;padding:14px 16px;border:1px dashed var(--line2);border-radius:8px;cursor:pointer;position:relative;margin-top:4px}.ct-upload .icon{grid-row:span 2;color:var(--accent)}.ct-upload strong{font-size:13px;color:var(--ink)}.ct-upload span{font-size:12px;color:var(--muted)}.ct-upload input{position:absolute;inset:0;opacity:0;cursor:pointer}
.ct-files{display:grid;gap:4px;margin-top:8px;font-size:12.5px}.ct-files li{display:flex;align-items:center;gap:6px}.ct-files .icon{width:14px;height:14px;color:var(--muted)}
.ct-actions{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.ct-confirm{display:flex;align-items:center;gap:8px;font-size:13px}.ct-confirm input{accent-color:var(--accent)}
.ct-preview{position:sticky;top:76px}
.ct-invoice{padding:24px 24px 20px;border-radius:12px;background:#fff;box-shadow:var(--shadow-md);font-size:13px;color:var(--text)}
.ct-inv-head{display:flex;align-items:flex-start;justify-content:space-between;padding-bottom:14px;border-bottom:1px solid var(--line)}.ct-inv-head b{display:block;font-size:16px;color:var(--ink)}.ct-inv-head small{display:block;color:var(--muted);font-size:11.5px;margin-top:3px}
.ct-inv-mark{display:grid;place-items:center;width:34px;height:34px;border-radius:9px;background:var(--ink);color:#fff;font-weight:600}
.ct-inv-parties{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:14px 0;border-bottom:1px solid var(--line)}.ct-inv-parties small{display:block;font-size:11px;color:var(--muted);margin-bottom:3px}.ct-inv-parties b{font-weight:600;color:var(--ink)}
.ct-inv-lines{width:100%;border-collapse:collapse;margin-top:6px}.ct-inv-lines td{padding:9px 0;border-bottom:1px solid var(--line);vertical-align:top}.ct-inv-lines td small{display:block;font-size:11px;color:var(--muted);margin-top:2px}.ct-inv-lines td.r{text-align:right;font-weight:500;color:var(--ink);white-space:nowrap}
.ct-inv-sum{display:grid;gap:6px;margin:12px 0 0;padding-top:4px}.ct-inv-sum div{display:flex;justify-content:space-between}.ct-inv-sum dt{color:var(--muted)}.ct-inv-sum dd{margin:0;font-weight:500;color:var(--ink)}.ct-inv-sum .total{margin-top:6px;padding-top:10px;border-top:2px solid var(--ink);font-size:15px}.ct-inv-sum .total dt{color:var(--ink);font-weight:600}.ct-inv-sum .total dd{font-weight:700}
.ct-inv-meta{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:16px 0 0;padding:12px 14px;border-radius:8px;background:#f6f8fa}.ct-inv-meta div{display:grid;gap:2px}.ct-inv-meta dt{font-size:11px;color:var(--muted)}.ct-inv-meta dd{margin:0;font-size:12.5px;font-weight:500;color:var(--ink)}
.ct-inv-prog{margin-top:14px;font-size:12px;color:var(--muted)}.ct-inv-prog b{color:var(--ink)}.ct-inv-prog i{display:block;height:6px;border-radius:3px;background:#eceff3;margin-top:6px;overflow:hidden}.ct-inv-prog em{display:block;height:100%;width:var(--p);background:var(--accent);border-radius:3px}
.ct-inv-foot{margin-top:14px;padding-top:12px;border-top:1px dashed var(--line2);font-size:11.5px;color:var(--muted)}
/* project */
.ct-neg{color:var(--danger)!important}
.ct-eyebrow{font-size:12px;color:var(--muted);margin-bottom:4px}
.ct-project .t-tabs{margin:18px 0 16px}
.ct-general{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(300px,1fr);gap:16px;align-items:start}.ct-side{display:grid;gap:16px}.ct-side .t-card+.t-card{margin-top:0}
.ct-fields{display:grid;grid-template-columns:repeat(3,1fr);gap:0 12px}.ct-fields .s-field:has(.wide){grid-column:1/-1}
.ct-partners{display:grid;gap:12px}.ct-partners li{display:grid;gap:6px}
.ct-partner-top{display:flex;align-items:center;gap:8px}.ct-partner-row{display:flex;align-items:center;gap:6px}.ct-partner-row span{font-size:12px;color:var(--muted)}
.ct-inline{height:32px;padding:0 9px;border:1px solid var(--line2);border-radius:6px;font-size:13px;min-width:0;width:100%;background:#fff;color:var(--text)}.ct-inline:focus{outline:0;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.ct-inline.num{text-align:right;width:90px;flex:0 0 auto}
.ct-share{margin-top:12px;font-size:13px;color:var(--muted)}.ct-share b{font-size:18px;font-weight:600;color:var(--ink);margin:0 4px}
.ct-wrap{box-shadow:none;border:1px solid var(--line)}
.ct-table.ct-edit{min-width:1500px}.ct-table th.ct-group{text-align:center;border-left:1px solid var(--line)}.ct-edit td{padding:6px 6px}
.ct-edit input:not([type=checkbox]),.ct-edit select{height:32px;padding:0 8px;border:1px solid var(--line2);border-radius:6px;font-size:12.5px;min-width:110px;width:100%;background:#fff;color:var(--text)}.ct-edit input:focus,.ct-edit select:focus{outline:0;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.ct-edit input.num{text-align:right;min-width:120px}.ct-edit input[type=date]{min-width:136px}
.ct-total td{color:var(--accent-deep)}
.ct-round-no{font-size:15px;font-weight:600;color:var(--accent-deep)}.ct-round-no small{font-size:10px;color:var(--muted);font-weight:500;margin-left:2px}
.ct-docs{display:grid;gap:8px}.ct-docs li{display:grid;grid-template-columns:auto 90px 1.2fr 1fr 1fr auto;gap:8px;align-items:center}
.ct-file{display:flex;align-items:center;justify-content:space-between;gap:8px;height:32px;padding:0 10px;border:1px dashed var(--line2);border-radius:6px;position:relative;cursor:pointer;font-size:12px;min-width:0}.ct-file::after{content:'선택';font-size:11.5px;color:var(--accent-deep);font-weight:500}.ct-file input{position:absolute;inset:0;opacity:0;cursor:pointer}.ct-file span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ct-check-all{display:flex;align-items:center;gap:6px;font-size:12.5px;color:var(--muted);margin-right:6px}.ct-check-all input{accent-color:var(--accent)}
.ct-savebar{margin-top:14px;font-size:12px;color:var(--muted)}
@media (max-width:1200px){.ct-entry-grid{grid-template-columns:1fr}.ct-preview{position:static}.ct-general{grid-template-columns:1fr}.ct-steps{grid-template-columns:repeat(3,1fr)}}
@media (max-width:860px){.ct-three{grid-template-columns:1fr}.ct-fields{grid-template-columns:1fr 1fr}.ct-docs li{grid-template-columns:auto 1fr 1fr}.ct-steps{grid-template-columns:1fr 1fr}.ct-search input{width:120px}.ct-inv-parties,.ct-inv-meta{grid-template-columns:1fr}}

.t-page .t-kpis{grid-template-columns:repeat(4,minmax(0,1fr))}.t-kpi{min-width:0}.t-kpi strong{overflow-wrap:anywhere}
@media (max-width:1200px){.t-page .t-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:520px){.t-page .t-kpis{grid-template-columns:minmax(0,1fr)}}
