/* 관리자 PC 화면 추가 스타일. 기본 토큰·컴포넌트(.btn .card .table …)는 app.css 가 정의한다. */
.page-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; flex-wrap: wrap; margin-bottom: 16px; }
.page-head h1 { margin: 0; font-size: 1.35rem; display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.page-head h1 small { font-weight: 400; color: var(--c-muted, #6b7280); font-size: .85rem; }
.page-head .back { display: inline-block; font-size: .85rem; color: var(--c-muted, #6b7280); text-decoration: none; margin-bottom: 4px; }
.page-head .toolbar { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.toolbar .right { margin-left: auto; }
.muted { color: var(--c-muted, #6b7280); } .small { font-size: .82rem; } .nowrap { white-space: nowrap; } .center { text-align: center; }
.neg { color: var(--c-danger, #dc2626); } .pos { color: var(--c-ok, #059669); } .ok { color: var(--c-ok, #059669); } .err { color: var(--c-danger, #dc2626); }

/* 탭 */
.tabs { display: flex; gap: 2px; overflow-x: auto; border-bottom: 1px solid var(--c-border, #e5e7eb); margin-bottom: 16px; scrollbar-width: none; }
.tab { padding: 10px 14px; white-space: nowrap; text-decoration: none; color: var(--c-muted, #6b7280); border-bottom: 2px solid transparent; font-size: .9rem; }
.tab.active { color: var(--c-primary, #2563eb); border-color: var(--c-primary, #2563eb); font-weight: 600; }
.tab-body > .card + .card, .tab-body > .grid + .card { margin-top: 16px; }

/* KPI */
.kpis { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 12px; margin-bottom: 16px; }
.kpis.small { grid-template-columns: repeat(auto-fit, minmax(110px, 1fr)); }
.kpi { background: var(--c-surface, #fff); border: 1px solid var(--c-border, #e5e7eb); border-radius: 12px; padding: 12px 14px; text-align: left; font: inherit; color: inherit; cursor: default; }
button.kpi { cursor: pointer; } button.kpi.active { outline: 2px solid var(--c-primary, #2563eb); }
.kpi-label { font-size: .78rem; color: var(--c-muted, #6b7280); } .kpi-value { font-size: 1.4rem; font-weight: 700; margin-top: 2px; } .kpi-sub { font-size: .75rem; color: var(--c-muted, #6b7280); }
.kpi.warn { border-color: #f59e0b; background: color-mix(in srgb, #f59e0b 8%, var(--c-surface, #fff)); } .kpi.ok { border-color: #10b981; } .kpi.danger { border-color: #ef4444; } .kpi.info { border-color: #3b82f6; }

/* 그리드 레이아웃 */
.grid { display: grid; gap: 16px; } .grid-2 { grid-template-columns: repeat(auto-fit, minmax(380px, 1fr)); } .grid-3 { grid-template-columns: 1fr 2fr; }
.grid .col-2 { grid-column: span 2; }
@media (max-width: 900px) { .grid-3 { grid-template-columns: 1fr; } .grid .col-2 { grid-column: auto; } }
.card h3 { margin: 0 0 10px; font-size: 1rem; display: flex; align-items: center; gap: 8px; flex-wrap: wrap; } .card h3 small { font-weight: 400; font-size: .78rem; }
.card h4 { margin: 14px 0 8px; font-size: .9rem; }

/* 데이터 테이블 */
.dt-bar { display: flex; align-items: center; gap: 10px; margin-bottom: 8px; } .dt-q { max-width: 260px; } .dt-count { color: var(--c-muted, #6b7280); font-size: .82rem; }
.table-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.table { width: 100%; border-collapse: collapse; font-size: .88rem; }
.table th, .table td { padding: 8px 10px; border-bottom: 1px solid var(--c-border, #e5e7eb); text-align: left; vertical-align: middle; }
.table th { font-weight: 600; color: var(--c-muted, #6b7280); font-size: .78rem; white-space: nowrap; background: var(--c-surface, #fff); }
.table.sticky thead th { position: sticky; top: 0; z-index: 1; }
.table th.sortable { cursor: pointer; user-select: none; } .table th.sortable:hover { color: var(--c-text, #111); }
.table th.asc::after { content: ' ↑'; } .table th.desc::after { content: ' ↓'; }
.table.compact th, .table.compact td { padding: 6px 8px; font-size: .84rem; }
.table tr.clickable { cursor: pointer; } .table tr.clickable:hover td { background: var(--c-surface-2, #f3f4f6); }
.table tfoot td { font-weight: 600; background: var(--c-surface-2, #f3f4f6); }
.al-right { text-align: right !important; } .al-center { text-align: center !important; }
.row-warn td { background: color-mix(in srgb, #f59e0b 10%, transparent); } .row-danger td { background: color-mix(in srgb, #ef4444 10%, transparent); }
.dt-pager { display: flex; align-items: center; justify-content: center; gap: 12px; padding: 10px; font-size: .85rem; }
.table .empty { text-align: center; color: var(--c-muted, #6b7280); padding: 24px; }

/* 편집 가능한 그리드 */
.grid-edit .cell { width: 100%; min-width: 60px; padding: 5px 6px; border: 1px solid transparent; border-radius: 6px; background: transparent; font: inherit; font-size: .84rem; color: inherit; }
.grid-edit .cell:hover { border-color: var(--c-border, #e5e7eb); } .grid-edit .cell:focus { outline: none; border-color: var(--c-primary, #2563eb); background: var(--c-surface, #fff); }
.grid-edit .cell.num { text-align: right; } .grid-edit .cell[readonly], .grid-edit .cell:disabled { color: var(--c-text, #111); opacity: 1; }
.cell.low-conf { background: color-mix(in srgb, #f59e0b 22%, transparent) !important; border-color: #f59e0b !important; }
.qty-grid .qty { width: 72px; text-align: right; } .qty-grid .rowsum { font-weight: 700; text-align: right; }

/* 폼 */
.form { display: block; } .form-row { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 12px; margin-bottom: 10px; }
.field { display: flex; flex-direction: column; gap: 4px; font-size: .85rem; margin-bottom: 8px; } .form-row .field { margin-bottom: 0; }
.field-label { color: var(--c-muted, #6b7280); font-size: .78rem; } .field-label .req { color: var(--c-danger, #dc2626); font-style: normal; margin-left: 2px; }
.field-hint { color: var(--c-muted, #6b7280); font-size: .74rem; } .field-error { color: var(--c-danger, #dc2626); font-size: .76rem; }
.field-check { flex-direction: row; align-items: center; gap: 8px; } .field-check input { width: 18px; height: 18px; }
.checks { display: flex; flex-wrap: wrap; gap: 4px 16px; margin: 6px 0; }
.form-section { margin: 12px 0; } .inline-form { margin-top: 12px; padding-top: 12px; border-top: 1px dashed var(--c-border, #e5e7eb); }
fieldset { border: 0; padding: 0; margin: 0; min-width: 0; }
.actions { display: flex; justify-content: flex-end; gap: 8px; margin-top: 14px; }
.notice { padding: 10px 14px; border-radius: 10px; background: color-mix(in srgb, var(--c-primary, #2563eb) 8%, var(--c-surface, #fff)); border: 1px solid color-mix(in srgb, var(--c-primary, #2563eb) 30%, transparent); font-size: .85rem; margin-bottom: 12px; }
.notice.warn { background: color-mix(in srgb, #f59e0b 10%, var(--c-surface, #fff)); border-color: #f59e0b; } .notice.ok { background: color-mix(in srgb, #10b981 10%, var(--c-surface, #fff)); border-color: #10b981; }
.notice ul { margin: 6px 0 0 18px; }
.btn-sm { padding: 4px 10px; font-size: .8rem; min-height: 30px; } .btn-danger-text { color: var(--c-danger, #dc2626); }
.seg { display: inline-flex; gap: 4px; background: var(--c-surface-2, #f3f4f6); padding: 3px; border-radius: 10px; }
.chips { display: flex; flex-wrap: wrap; gap: 6px; } .chip { display: inline-flex; align-items: center; gap: 4px; padding: 3px 10px; border-radius: 999px; background: var(--c-surface-2, #f3f4f6); font-size: .8rem; }
.chip.ok { background: color-mix(in srgb, #10b981 15%, transparent); } .chip.link { text-decoration: none; color: var(--c-primary, #2563eb); }
.badge.ok { background: color-mix(in srgb, #10b981 18%, transparent); color: #047857; } .badge.warn { background: color-mix(in srgb, #f59e0b 20%, transparent); color: #b45309; } .badge.danger { background: color-mix(in srgb, #ef4444 18%, transparent); color: #b91c1c; } .badge.info { background: color-mix(in srgb, #3b82f6 18%, transparent); color: #1d4ed8; }

/* 차트 */
.chart.stacked { display: block; border-radius: 6px; overflow: hidden; }
.chart-legend { display: flex; flex-wrap: wrap; gap: 6px 14px; font-size: .78rem; margin-top: 6px; } .chart-legend i { display: inline-block; width: 10px; height: 10px; border-radius: 2px; margin-right: 4px; vertical-align: -1px; }
.progress { position: relative; height: 10px; background: var(--c-surface-2, #eef2f6); border-radius: 999px; overflow: hidden; } .progress-bar { height: 100%; border-radius: 999px; transition: width .3s; }
.progress-label { position: absolute; right: 6px; top: -1px; font-size: .68rem; font-weight: 700; }
.hbars { display: flex; flex-direction: column; gap: 6px; } .hbar { display: grid; grid-template-columns: 70px 1fr 70px; align-items: center; gap: 8px; font-size: .8rem; } .hbar-track { height: 10px; background: var(--c-surface-2, #eef2f6); border-radius: 999px; overflow: hidden; } .hbar-fill { height: 100%; border-radius: 999px; } .hbar-val { text-align: right; font-weight: 600; }
.vbars { display: flex; align-items: flex-end; gap: 6px; } .vbar { flex: 1; display: flex; flex-direction: column; justify-content: flex-end; align-items: center; height: 100%; } .vbar-fill { width: 100%; border-radius: 4px 4px 0 0; } .vbar-label { font-size: .68rem; color: var(--c-muted, #6b7280); margin-top: 4px; }

/* 주문 행·타임라인 */
.order-row { display: block; padding: 10px 0; border-bottom: 1px solid var(--c-border, #e5e7eb); text-decoration: none; color: inherit; } .order-row:last-child { border: 0; }
.order-row-head { display: flex; align-items: center; gap: 8px; margin-bottom: 6px; flex-wrap: wrap; } .order-row-head .right { margin-left: auto; }
.timeline { list-style: none; margin: 0; padding: 0; } .timeline li { display: grid; grid-template-columns: 110px 1fr auto; gap: 10px; padding: 8px 0; border-bottom: 1px solid var(--c-border, #e5e7eb); font-size: .86rem; }
.timeline .tl-time { color: var(--c-muted, #6b7280); font-size: .78rem; } .timeline li.reversed .tl-body { text-decoration: line-through; opacity: .6; } .timeline li.rev .tl-body { color: var(--c-danger, #dc2626); }
.att-row { display: flex; gap: 6px; margin-top: 6px; } .att-row img { width: 56px; height: 56px; object-fit: cover; border-radius: 6px; }
.quick-links { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 16px; }
.list { list-style: none; margin: 0; padding: 0; } .list-item { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 10px 0; border-bottom: 1px solid var(--c-border, #e5e7eb); font-size: .88rem; } .list-item:last-child { border: 0; }
.list-item a { color: inherit; text-decoration: none; display: flex; gap: 10px; align-items: center; min-width: 0; } .list-item.hl, .img-pins-list li.hl { background: color-mix(in srgb, var(--c-primary, #2563eb) 10%, transparent); }
.thumb { width: 40px; height: 40px; object-fit: cover; border-radius: 8px; background: var(--c-surface-2, #f3f4f6); display: inline-block; } .ph { background: repeating-linear-gradient(45deg, var(--c-surface-2, #f3f4f6) 0 6px, transparent 6px 12px); } .ph.big { width: 100%; aspect-ratio: 4/5; border-radius: 12px; }
.thumbs { display: flex; gap: 4px; } .thumbs img { width: 44px; height: 44px; object-fit: cover; border-radius: 6px; } .thumbs.big img { width: 120px; height: 120px; margin-top: 12px; }
.style-img img, .preview { width: 100%; border-radius: 12px; object-fit: contain; max-height: 420px; background: var(--c-surface-2, #f3f4f6); }

/* 업로드·첨부·핀 */
.dropzone { border: 2px dashed var(--c-border, #d1d5db); border-radius: 12px; padding: 18px; text-align: center; cursor: pointer; color: var(--c-muted, #6b7280); font-size: .85rem; margin: 8px 0; transition: border-color .15s, background .15s; }
.dropzone.over { border-color: var(--c-primary, #2563eb); background: color-mix(in srgb, var(--c-primary, #2563eb) 6%, transparent); } .dropzone.busy { opacity: .6; pointer-events: none; }
.dz-icon { font-size: 1.4rem; display: block; } .dz-progress { margin-top: 8px; }
.att-list { display: flex; flex-wrap: wrap; gap: 8px; } .att { display: flex; flex-direction: column; align-items: center; width: 92px; text-decoration: none; color: inherit; font-size: .72rem; position: relative; }
.att img, .att-file { width: 92px; height: 92px; object-fit: cover; border-radius: 8px; background: var(--c-surface-2, #f3f4f6); display: flex; align-items: center; justify-content: center; font-weight: 700; }
.att-name { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; width: 100%; text-align: center; } .att-x { position: absolute; top: 2px; right: 2px; }
.img-pins-wrap { position: relative; display: inline-block; max-width: 100%; } .img-pins-wrap img { max-width: 100%; display: block; border-radius: 10px; }
.img-pins-layer { position: absolute; inset: 0; cursor: crosshair; }
.pin { position: absolute; width: 24px; height: 24px; margin: -12px 0 0 -12px; border-radius: 50%; background: var(--c-danger, #dc2626); color: #fff; font-size: .72rem; font-weight: 700; display: flex; align-items: center; justify-content: center; border: 2px solid #fff; box-shadow: 0 1px 4px rgba(0,0,0,.3); cursor: pointer; }
.img-pins-list { font-size: .84rem; padding-left: 18px; margin: 8px 0; } .img-pins .hint { font-size: .76rem; color: var(--c-muted, #6b7280); }
.photo-tabs { display: flex; gap: 4px; margin-bottom: 8px; }
.flats { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 12px; } .flat-slot img { width: 100%; border-radius: 10px; background: var(--c-surface-2, #f3f4f6); }
.rounds { display: flex; gap: 6px; overflow-x: auto; margin-bottom: 14px; } .round { display: flex; flex-direction: column; padding: 6px 12px; border-radius: 10px; border: 1px solid var(--c-border, #e5e7eb); text-decoration: none; color: inherit; font-size: .8rem; min-width: 70px; } .round.active { border-color: var(--c-primary, #2563eb); background: color-mix(in srgb, var(--c-primary, #2563eb) 8%, transparent); } .round span { color: var(--c-muted, #6b7280); font-size: .72rem; }
.diff ul { margin: 4px 0 8px 18px; font-size: .82rem; } .diff-added b { color: #047857; } .diff-removed b { color: #b91c1c; } .diff-changed b { color: #b45309; }

/* 계획 그리드 */
.plan-grid td.has { background: color-mix(in srgb, var(--c-primary, #2563eb) 10%, transparent); text-align: center; } .plan-grid th.wk { color: #b91c1c; }
.move-line { padding: 10px; border: 1px dashed var(--c-border, #e5e7eb); border-radius: 10px; margin-bottom: 8px; }
.box { margin-bottom: 10px; } .box .table { margin-top: 6px; }
.slider { display: block; font-size: .8rem; margin: 8px 0; } .slider span { display: flex; justify-content: space-between; } .slider input { width: 100%; }

/* 디지털화 검토 */
.review { display: grid; grid-template-columns: minmax(320px, 45%) 1fr; gap: 16px; align-items: start; }
.review-src { position: sticky; top: 70px; } .zoom-wrap { overflow: auto; max-height: calc(100vh - 200px); border-radius: 10px; background: var(--c-surface-2, #f3f4f6); } .zoom-wrap img { display: block; max-width: 100%; transition: transform .15s; }
@media (max-width: 1000px) { .review { grid-template-columns: 1fr; } .review-src { position: static; } }

/* 매치메이킹 */
.match-layout { display: grid; grid-template-columns: 280px 1fr; gap: 16px; align-items: start; } @media (max-width: 900px) { .match-layout { grid-template-columns: 1fr; } }
.match-results { display: flex; flex-direction: column; gap: 12px; }
.match-card { display: grid; grid-template-columns: 36px 1fr 130px; gap: 14px; align-items: start; } .match-card .rank { font-size: 1.3rem; font-weight: 800; color: var(--c-muted, #9ca3af); }
.match-main h3 { margin: 0 0 4px; } .match-metrics { display: grid; grid-template-columns: repeat(auto-fit, minmax(110px, 1fr)); gap: 8px; margin: 10px 0; font-size: .82rem; } .match-metrics div { display: flex; flex-direction: column; } .match-metrics b { font-size: .95rem; }
.match-score { display: flex; flex-direction: column; gap: 8px; align-items: stretch; } .reasons { margin: 6px 0 0 16px; color: var(--c-muted, #6b7280); }
.pt-row { grid-template-columns: 2fr 1fr; }
pre { white-space: pre-wrap; word-break: break-all; font-size: .74rem; background: var(--c-surface-2, #f3f4f6); padding: 8px; border-radius: 8px; max-height: 240px; overflow: auto; }
details summary { cursor: pointer; color: var(--c-primary, #2563eb); }

/* ───── 생산계획 보드 (page-planning) · 빠른 입력 행(pick-row) */
.page-planning .plan-nav { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.page-planning .plan-range { font-weight: 700; font-size: 16px; padding: 0 6px; }
.page-planning .plan-unplanned .chip-lg { min-height: 48px; font-size: 15px; padding: 8px 16px; border: 1px dashed var(--brand, #2563eb); background: color-mix(in srgb, var(--brand, #2563eb) 6%, transparent); color: var(--text); }
.page-planning .plan-grid-wrap { overflow-x: auto; }
.page-planning .plan-grid { display: grid; grid-template-columns: 150px repeat(var(--cols, 7), minmax(150px, 1fr)); gap: 6px; min-width: 100%; }
.page-planning .plan-corner, .page-planning .plan-dayhead { padding: 8px 6px; text-align: center; font-size: 13px; color: var(--text-3); }
.page-planning .plan-dayhead b { display: block; font-size: 17px; color: var(--text); } .page-planning .plan-dayhead.wk b { color: #b91c1c; } .page-planning .plan-dayhead.today b { color: var(--brand, #2563eb); }
.page-planning .plan-rowhead { display: flex; flex-direction: column; justify-content: center; padding: 10px; background: var(--surface); border: 1px solid var(--line); border-radius: 14px; font-size: 16px; }
.page-planning .plan-rowhead small { color: var(--text-3); }
.page-planning .plan-cell { position: relative; min-height: 96px; background: var(--surface); border: 1px solid var(--line); border-radius: 14px; padding: 8px 8px 44px; display: flex; flex-direction: column; gap: 6px; }
.page-planning .plan-cell.today { border-color: var(--brand, #2563eb); box-shadow: inset 0 0 0 1px var(--brand, #2563eb); }
.page-planning .plan-cell.has { background: color-mix(in srgb, var(--brand, #2563eb) 5%, var(--surface)); }
.page-planning .plan-item { display: grid; grid-template-columns: 1fr auto; grid-template-areas: "order qty" "op qty"; gap: 0 8px; align-items: center; text-align: left; width: 100%; border: 1px solid var(--line); background: var(--surface); border-radius: 12px; padding: 8px 10px; cursor: pointer; min-height: 56px; font: inherit; color: inherit; }
.page-planning .plan-item:hover { border-color: var(--brand, #2563eb); }
.page-planning .plan-item.done { opacity: .6; }
.page-planning .plan-item-order { grid-area: order; font-weight: 800; font-size: 14px; } .page-planning .plan-item-op { grid-area: op; font-size: 12px; color: var(--text-3); }
.page-planning .plan-item-qty { grid-area: qty; font-size: 22px; font-weight: 800; line-height: 1; text-align: right; } .page-planning .plan-item-qty small { display: block; font-size: 12px; font-weight: 600; color: var(--text-3); }
.page-planning .plan-cell-sum { font-size: 13px; color: var(--text-2); } .page-planning .plan-cell-sum b { font-size: 16px; }
.page-planning .plan-add { position: absolute; left: 8px; right: 8px; bottom: 8px; height: 32px; border-radius: 10px; border: 1px dashed var(--line); background: transparent; color: var(--text-3); font-size: 18px; cursor: pointer; }
.page-planning .plan-add:hover { border-color: var(--brand, #2563eb); color: var(--brand, #2563eb); }
.page-planning .plan-day .plan-line h3 { margin-bottom: 8px; } .page-planning .plan-day .plan-cell { min-height: 80px; }
.page-planning .plan-day .plan-item { min-height: 64px; } .page-planning .plan-day .plan-item-qty { font-size: 26px; } .page-planning .plan-day .plan-add { height: 48px; font-size: 24px; }
@media (max-width: 1023px) { .page-planning .plan-grid { grid-template-columns: 110px repeat(var(--cols, 7), minmax(130px, 1fr)); } }

.pick-row { display: flex; align-items: center; gap: 12px; width: 100%; min-height: 64px; padding: 10px 14px; border: 1px solid var(--line); background: var(--surface); border-radius: 16px; text-align: left; cursor: pointer; font: inherit; color: inherit; margin-bottom: 8px; }
.pick-row:active { background: color-mix(in srgb, var(--brand, #2563eb) 8%, var(--surface)); }
.pick-ic { font-size: 22px; width: 30px; text-align: center; }
.pick-main { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.pick-label { font-size: 12px; color: var(--text-3); font-weight: 600; }
.pick-value { font-size: 18px; font-weight: 700; overflow-wrap: anywhere; }
.pick-row-input .input-lg { font-size: 18px; min-height: 44px; padding: 4px 8px; width: 100%; }
.plan-sheet .qstep { margin: 10px 0 4px; }
.sheet-actions { display: flex; gap: 10px; margin-top: 14px; } .sheet-actions .btn-primary { flex: 1; }
.btn-danger-text { color: #b91c1c; }
.sheet-form .field .input { min-height: 52px; font-size: 17px; } .sheet-form .field-label { font-size: 13px; }
.sheet-form .form-row { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 10px; }
.sheet-form .checks { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 6px; } .sheet-form .field-check { min-height: 44px; display: flex; align-items: center; gap: 10px; font-size: 15px; } .sheet-form .field-check input { width: 22px; height: 22px; }
.qty-grid { display: grid; grid-template-columns: 1fr; gap: 10px; } .qty-grid .qty-row { display: grid; grid-template-columns: minmax(90px, 1fr) auto; gap: 10px; align-items: center; padding: 8px 10px; border: 1px solid var(--line); border-radius: 14px; background: var(--surface); }
.qty-grid .qty-row-label { font-size: 17px; font-weight: 700; } .qty-grid .qty-row-label small { display: block; font-weight: 500; color: var(--text-3); font-size: 12px; }
.qty-grid .qstep-row { gap: 6px; }
.toolbar .btn-add-big { min-height: 48px; font-size: 16px; padding: 0 18px; }
.page-planning .plan-nav .qseg { display: inline-flex; flex-direction: row; }
.page-planning .plan-grid { grid-template-columns: 140px repeat(var(--cols, 7), minmax(120px, 1fr)); }
.page-planning .plan-item-order { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.page-planning .plan-grid { grid-template-columns: 140px repeat(var(--cols, 7), minmax(136px, 1fr)); }

/* W2: 지난번과 같게 · 반복 · 템플릿 · 최근 입력 칩 */
.same-as-last { width: 100%; justify-content: flex-start; gap: 10px; margin-bottom: 10px; border-style: dashed; }
.same-as-last small { font-weight: 500; }
.recent-block { margin: 10px 0 4px; }
.recent-block .chips { margin-top: 6px; }
.chips-lg .chip { min-height: 48px; padding: 0 16px; font-size: 16px; }
.chip.on { background: var(--brand); color: #fff; border-color: var(--brand); }
.plan-sheet .summary-box { margin: 10px 0; padding: 12px 14px; border-radius: 10px; background: var(--bg); }
.list-item .list-actions { display: flex; gap: 8px; margin-left: auto; }
.page-planning .toolbar .btn { white-space: nowrap; }
