/* Meridian · contract screens (외주계약 대장 · 기성 신청서 · 사업 상세) in the chart language */
.m-nav-sep{width:1px;height:18px;background:var(--line-strong);margin:0 4px;align-self:center}
.ct-draft{--c:#8a9aa6}.ct-wait{--c:var(--amber)}.ct-review{--c:var(--blue)}.ct-done{--c:var(--green)}
.m-tag.ct-draft{background:#eef2f4;color:#5c6f7d}.m-tag.ct-wait{background:#f8ecd3;color:#7a4f0c}.m-tag.ct-review{background:#e0ecf5;color:#164869}.m-tag.ct-done{background:#dcefe5;color:#1f5b43}
.m-pill-dot.ct-draft{background:#8a9aa6}.m-pill-dot.ct-wait{background:var(--amber)}.m-pill-dot.ct-review{background:var(--blue)}.m-pill-dot.ct-done{background:var(--green)}
.ct-strip{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--line);border-radius:12px;background:var(--surface);margin:16px 0;overflow:hidden}
.ct-strip .m-kpi{border-right:1px solid var(--line)}.ct-strip .m-kpi:last-child{border-right:0}
.ct-voyage .m-row{grid-template-columns:150px 1fr}.ct-voyage .m-gantt-head{grid-template-columns:150px 1fr}.ct-voyage .m-lane{height:68px;background:repeating-linear-gradient(90deg,transparent 0 calc(100% / 12 - 1px),var(--line) calc(100% / 12 - 1px) calc(100% / 12))}
.ct-voyage .m-row.focus{background:#fbe9f2}
.ct-zone{text-align:left;width:100%;cursor:pointer}.ct-zone:hover{background:#f2f6f8}
.ct-voyage .m-bar{height:24px;padding:0 8px;font-size:11px;border-color:var(--c);background:#fff;color:var(--text);overflow:hidden}
.ct-voyage .m-bar i{position:absolute;inset:0 auto 0 0;width:var(--p);background:color-mix(in srgb,var(--c) 28%,transparent)}
.ct-voyage .m-bar span{position:relative;font-weight:500}
.ct-voyage .m-bar.ct-done{background:color-mix(in srgb,var(--c) 12%,#fff)}
.m-legend-row i.ct-done{background:var(--green)}.m-legend-row i.ct-review{background:var(--blue)}.m-legend-row i.ct-wait{background:var(--amber)}.m-legend-row i.ct-draft{background:#8a9aa6}
.ct-ledger-head{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin:28px 0 12px}
.ct-ledger-head h2{font-size:18px}.ct-ledger-head h2 span{font-size:13px;color:var(--muted);font-weight:500;margin-left:6px}
.ct-density{display:flex;align-items:center;gap:6px;font-size:12.5px;color:var(--muted)}.ct-density input{accent-color:var(--magenta)}
.ct-table{min-width:1380px}.ct-table th.ct-group{text-align:center;border-left:1px solid var(--line)}.ct-table thead tr:first-child th{border-bottom:1px solid var(--line)}
.ct-table.dense td{padding:7px 12px;font-size:12.5px}
.ct-check{width:36px;text-align:center}.ct-check input{accent-color:var(--magenta);width:14px;height:14px;margin:0}
.ct-sticky{position:sticky;left:0;background:var(--surface);z-index:1;box-shadow:1px 0 0 var(--line);min-width:280px}
.m-table thead th.ct-sticky{background:#f4f7f9;z-index:2}
.m-table tbody tr:hover td.ct-sticky{background:#f7fafb}
.ct-link{display:flex;align-items:center;gap:6px;text-align:left;color:var(--text);width:100%}.ct-link .icon{width:14px;height:14px;color:var(--muted);flex-shrink:0}
.ct-link strong{display:block;font-weight:600}.ct-link small{display:block;font-size:11px;color:var(--muted)}
.ct-table td small{display:block;color:var(--muted);font-size:11px;margin-top:2px}
.ct-table td.r,.ct-table th.r{text-align:right}
.ct-balance{color:var(--magenta);font-weight:600}
.ct-progress{width:72px;height:6px;border-radius:3px;background:#e5ecf0;overflow:hidden}.ct-progress i{display:block;height:100%;width:var(--p);background:var(--blue);border-radius:3px}
.ct-table tr.selected td{background:#fbe9f2}
.ct-expanded td{background:#f4f7f9!important;padding:12px 14px 14px 50px!important}
.ct-expanded div{display:flex;flex-wrap:wrap;gap:12px 28px;align-items:center}
.ct-expanded span{display:grid;gap:2px;font-size:13px}.ct-expanded small{font-size:11px;color:var(--muted)}.ct-expanded button:first-of-type{margin-left:auto}
.ct-table tfoot td{background:#f4f7f9;font-weight:600;font-size:12.5px;padding:11px 14px;border-top:1px solid var(--line)}
.ct-total td{color:var(--magenta)}
.ct-pager{display:flex;align-items:center;justify-content:space-between;margin-top:12px;font-size:12.5px;color:var(--muted)}
.ct-gauge{width:150px;height:auto}.ct-gauge .track{fill:none;stroke:#e5ecf0;stroke-width:9;stroke-linecap:round}.ct-gauge .bar{fill:none;stroke:var(--magenta);stroke-width:9;stroke-linecap:round}.ct-gauge .val{font:600 18px var(--font-display),sans-serif;fill:var(--text)}.ct-gauge .lbl{font:500 8.5px var(--font-mono),monospace;fill:var(--muted);letter-spacing:.08em}
.ct-gauge-wrap{display:grid;grid-template-columns:auto 1fr;gap:18px;align-items:center;margin-top:18px;padding:14px;border:1px solid var(--line);border-radius:10px;background:#f7fafb}
/* entry */
.ct-fairway{position:relative;height:96px;margin:6px 0 22px}
.ct-fairway svg{position:absolute;inset:0;width:100%;height:60px}.ct-fairway path{fill:none;stroke:var(--magenta);stroke-width:1.6;stroke-dasharray:10 8;opacity:.7}
.ct-buoy{position:absolute;top:18px;transform:translateX(-50%);display:grid;justify-items:center;gap:4px;text-align:center;width:120px}
.ct-buoy i{width:14px;height:14px;background:#fff;border:2px solid var(--line-strong);transform:rotate(45deg);border-radius:2px}
.ct-buoy span{font:500 10px var(--font-mono),monospace;color:var(--muted);letter-spacing:.08em}.ct-buoy b{font-size:12px;font-weight:500;color:var(--muted)}
.ct-buoy.past i{background:var(--magenta);border-color:var(--magenta)}.ct-buoy.now i{background:#fff;border-color:var(--magenta);box-shadow:0 0 0 4px rgba(200,35,122,.18)}.ct-buoy.now b{color:var(--text);font-weight:600}.ct-buoy.past b{color:var(--text)}
.ct-entry-grid{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:20px;align-items:start}
.ct-entry-main{display:grid;gap:16px;min-width:0}
.ct-card{padding:20px 22px 22px;border:1px solid var(--line);border-radius:12px;background:var(--surface)}
.ct-card.wide{grid-column:1/-1}
.ct-card-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:16px}
.ct-card-head h2{font-size:16px;flex:1}.ct-card-head h2 b{font-size:12px;color:var(--muted);font-weight:500;margin-left:6px}.ct-card-head .s-eyebrow{width:100%;margin:0}
.ct-info-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:6px 0 14px}.ct-info-grid div{display:grid;gap:3px;padding:10px 12px;border-radius:8px;background:#f4f7f9}.ct-info-grid small{font-size:11px;color:var(--muted)}.ct-info-grid b{font-size:13px;font-weight:600}
.ct-money-row{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:14px 16px;border-radius:8px;border:1px dashed var(--line-strong)}.ct-money-row div{display:grid;gap:2px}.ct-money-row small{font-size:11px;color:var(--muted)}.ct-money-row b{font:600 16px var(--font-display),sans-serif}.ct-money-row i{font-style:normal;color:var(--muted)}.ct-money-row div:last-child b{color:var(--magenta)}
.ct-three{grid-template-columns:1fr 1fr 1fr}
.ct-lines{min-width:0}.ct-lines input{width:100%;border:1px solid var(--line);border-radius:6px;padding:8px 10px;font-size:13px;background:#fff}.ct-lines input[type=number]{text-align:right}.ct-lines td{padding:8px 10px}
.ct-upload{display:grid;grid-template-columns:auto 1fr;gap:2px 12px;align-items:center;padding:14px 16px;border:1px dashed var(--line-strong);border-radius:8px;cursor:pointer;position:relative;margin-top:6px}.ct-upload .icon{grid-row:span 2;color:var(--magenta)}.ct-upload strong{font-size:13px}.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-dash{position:sticky;top:calc(var(--top) + 16px);padding:20px 22px 22px;border-radius:12px;background:#16242e;color:#e6eef3;display:grid;justify-items:center;gap:8px;text-align:center}
.ct-dash .s-eyebrow{color:#8fa4b2}.ct-dash .ct-gauge .track{stroke:#2a3b47}.ct-dash .ct-gauge .val{fill:#fff}.ct-dash .ct-gauge .lbl{fill:#8fa4b2}
.ct-dash-total{display:grid;gap:2px}.ct-dash-total small{font-size:11px;color:#8fa4b2}.ct-dash-total strong{font:600 26px var(--font-display),sans-serif;letter-spacing:-.02em}
.ct-dash .m-kv{width:100%;text-align:left;font-size:12.5px;margin-top:6px;padding-top:12px;border-top:1px solid #2a3b47}.ct-dash .m-kv dt{color:#8fa4b2}.ct-dash .m-kv dd{text-align:right}.ct-dash .ct-balance{color:#ff8fc4}
.ct-dash-note{font-size:12px;color:#8fa4b2}.ct-dash-note b{color:#fff}
.ct-dash .s-form-error{color:#ffb4b4;min-height:0}
.ct-confirm{display:flex;align-items:center;gap:8px;font-size:12.5px;text-align:left;width:100%}.ct-confirm input{accent-color:var(--magenta)}
.ct-dash-actions{display:grid;gap:8px;width:100%;margin-top:4px}.ct-dash .m-btn{justify-content:center;border-color:#3a4c58;color:#fff;background:transparent}.ct-dash .m-btn.primary{background:var(--magenta);border-color:var(--magenta)}.ct-dash small{font-size:11px;color:#8fa4b2}
/* project */
.ct-station{display:grid;grid-template-columns:220px 1fr auto;gap:22px;align-items:center;padding:18px 22px 18px 18px;border:1px solid var(--line);border-radius:12px;background:var(--surface);margin-bottom:18px}
.ct-minimap{width:220px;height:100px;border-radius:8px;overflow:hidden;border:1px solid var(--line)}
.ct-station-body h2{font-size:20px;margin-top:8px}
.ct-station-stats{display:flex;gap:26px;flex-wrap:wrap;margin-top:12px}.ct-station-stats div{display:grid;gap:2px}.ct-station-stats small{font-size:11px;color:var(--muted)}.ct-station-stats b{font:600 15px var(--font-display),sans-serif}
.ct-neg{color:var(--danger)!important}
.ct-tabs{width:max-content;margin-bottom:16px}.ct-tabs button{display:flex;align-items:center;gap:6px;font-family:var(--font-ui)}.ct-tabs .icon{width:14px;height:14px}.ct-tabs b{font-size:11px;color:var(--muted);font-weight:500}
.ct-general{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(300px,1fr);gap:16px;align-items:start}
.ct-fields{display:grid;grid-template-columns:repeat(3,1fr);gap:0 14px}.ct-fields .s-field:has(.wide){grid-column:1/-1}.ct-fields.three{grid-template-columns:repeat(3,1fr)}
.ct-partners{display:grid;gap:8px}.ct-partner{display:grid;grid-template-columns:1.4fr 110px 80px auto 1fr auto;gap:8px;align-items:center}.ct-partner input,.ct-partner select{border:1px solid var(--line);border-radius:6px;padding:8px 10px;font-size:13px;background:#fff;min-width:0}.ct-partner input[type=number]{text-align:right}.ct-partner span{font-size:12px;color:var(--muted)}
.ct-share{display:flex;align-items:baseline;gap:10px;margin-top:14px;font-size:13px;color:var(--muted)}.ct-share b{font:600 18px var(--font-display),sans-serif;color:var(--text)}
.ct-edit input:not([type=checkbox]),.ct-edit select{border:1px solid var(--line);border-radius:6px;padding:7px 9px;font-size:12.5px;background:#fff;min-width:110px;width:100%}.ct-edit input.num{text-align:right;min-width:120px}.ct-edit input[type=date]{min-width:136px}.ct-edit td{padding:7px 8px}
.ct-round-no{font:600 16px var(--font-display),sans-serif;color:var(--magenta)}.ct-round-no small{font-size:10px;font-weight:500;color:var(--muted);margin-left:2px}
.ct-docs{min-width:900px}.ct-docs td:nth-child(3){width:26%}.ct-docs td:nth-child(4){width:30%}
.ct-file{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:7px 10px;border:1px dashed var(--line-strong);border-radius:6px;position:relative;cursor:pointer;font-size:12px}.ct-file::after{content:'선택';font:500 10px var(--font-mono),monospace;color:var(--magenta)}.ct-file input{position:absolute;inset:0;opacity:0;cursor:pointer}.ct-file span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ct-savebar{margin-top:14px;font-size:12px;color:var(--muted)}
.ct-project .ct-card+.ct-card{margin-top:16px}
@media (max-width:1180px){.ct-entry-grid{grid-template-columns:minmax(0,1fr)}.ct-entry-main,.ct-card{min-width:0}.ct-dash{position:static}.ct-general{grid-template-columns:1fr}.ct-info-grid{grid-template-columns:1fr 1fr}.ct-strip{grid-template-columns:1fr 1fr}.ct-strip .m-kpi:nth-child(2n){border-right:0}.ct-strip .m-kpi{border-bottom:1px solid var(--line)}}
@media (max-width:980px){.m-nav-sep{display:none}.m-nav{flex-wrap:wrap}.m-nav a.ct-nav{flex:1 1 30%}.ct-voyage .m-row,.ct-voyage .m-gantt-head{grid-template-columns:78px 1fr}.ct-zone small{display:none}.ct-station{grid-template-columns:1fr}.ct-minimap{width:100%;height:auto}.ct-station-gauge{display:none}.ct-fields{grid-template-columns:1fr 1fr}.ct-fields.three{grid-template-columns:1fr}.ct-three{grid-template-columns:1fr}.ct-partner{grid-template-columns:1fr 1fr}.ct-partner .ct-progress{grid-column:1/-1;width:100%}.ct-fairway{height:auto;position:static;display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.ct-fairway svg{display:none}.ct-buoy{position:static;transform:none;width:auto}}
