/* Patent/IP styles split from app.css. Keep this loaded after app.css. */

/* ══════════════════════════════════════════════════════════════
   IP-manage 이식 CSS (ip-*, pc-*, cin-*, cev-*)
   ══════════════════════════════════════════════════════════════ */

/* ── KPI 카드 ── */
.ip-kpi-grid { display:grid;grid-template-columns:repeat(6,minmax(108px,1fr));gap:12px;width:100%;max-width:100%;margin-bottom:16px;padding:2px 2px 8px;overflow-x:auto;overscroll-behavior-inline:contain;scrollbar-gutter:stable;-webkit-overflow-scrolling:touch }
.ip-kpi-card { display:flex;min-width:108px;min-height:68px;border-radius:8px!important;padding:9px 12px!important;text-align:center!important;border-width:2px!important;border-style:solid!important;border-color:transparent!important;transition:transform .15s,box-shadow .15s;cursor:default;align-items:center;justify-content:center;vertical-align:middle!important }
a.ip-kpi-card { text-decoration:none;color:inherit;cursor:pointer }
.ip-kpi-card.is-current { outline:2px solid var(--accent);outline-offset:-4px }
.ip-kpi-card:hover { transform:translateY(-1px);box-shadow:0 4px 14px rgba(16,32,51,.2) }
.ip-kpi-card-body { display:flex;min-width:0;flex-direction:column;align-items:center;justify-content:center }
.ip-kpi-label { font-size:10.5px;font-weight:700;letter-spacing:0;text-transform:uppercase;margin:0 0 5px;opacity:.9;white-space:nowrap;word-break:keep-all }
.ip-kpi-num { font-size:28px;font-weight:900;line-height:1;margin:0 }
.ip-kpi-accent  { background:#163e3c!important;border-color:#2dd4bf!important }
.ip-kpi-purple  { background:#231656!important;border-color:#a78bfa!important }
.ip-kpi-blue    { background:#142550!important;border-color:#3b82f6!important }
.ip-kpi-amber   { background:#2c1f00!important;border-color:#f59e0b!important }
.ip-kpi-green   { background:#073a1a!important;border-color:#10b981!important }
.ip-kpi-orange  { background:#2d1000!important;border-color:#f97316!important }
.ip-kpi-red     { background:#320606!important;border-color:#ef4444!important }
.ip-kpi-slate   { background:#1a2840!important;border-color:#64748b!important }
.ip-kpi-accent .ip-kpi-label,.ip-kpi-accent .ip-kpi-num { color:#5eead4!important }
.ip-kpi-purple .ip-kpi-label,.ip-kpi-purple .ip-kpi-num { color:#c4b5fd!important }
.ip-kpi-blue   .ip-kpi-label,.ip-kpi-blue   .ip-kpi-num { color:#93c5fd!important }
.ip-kpi-amber  .ip-kpi-label,.ip-kpi-amber  .ip-kpi-num { color:#fcd34d!important }
.ip-kpi-green  .ip-kpi-label,.ip-kpi-green  .ip-kpi-num { color:#6ee7b7!important }
.ip-kpi-orange .ip-kpi-label,.ip-kpi-orange .ip-kpi-num { color:#fdba74!important }
.ip-kpi-red    .ip-kpi-label,.ip-kpi-red    .ip-kpi-num { color:#fca5a5!important }
.ip-kpi-slate  .ip-kpi-label,.ip-kpi-slate  .ip-kpi-num { color:#cbd5e1!important }

/* ── IP 데이터 테이블 ── */
table.ip-data-table { width:100%!important;min-width:1164px!important;table-layout:fixed!important;border-collapse:collapse!important;font-size:13px }
table.ip-data-table th { position:sticky;top:0;z-index:2;background:var(--panel-soft)!important;color:var(--ink)!important;font-size:10.5px!important;font-weight:700!important;padding:10px 14px!important;text-align:left!important;border-bottom:1.5px solid var(--line)!important;white-space:nowrap;letter-spacing:0;text-transform:uppercase }
table.ip-data-table td { padding:11px 14px!important;border-bottom:1px solid var(--line-soft)!important;vertical-align:middle!important;color:var(--ink)!important }
table.ip-data-table tbody tr:last-child td { border-bottom:none!important }
table.ip-data-table tbody tr:hover td { background:var(--accent-soft)!important }
table.ip-data-table th:nth-child(1),table.ip-data-table td:nth-child(1){width:80px}
table.ip-data-table th:nth-child(2),table.ip-data-table td:nth-child(2){width:105px}
table.ip-data-table th:nth-child(3),table.ip-data-table td:nth-child(3){width:135px}
table.ip-data-table th:nth-child(4),table.ip-data-table td:nth-child(4){width:260px;word-break:keep-all;overflow-wrap:anywhere;line-height:1.4}
table.ip-data-table th:nth-child(5),table.ip-data-table td:nth-child(5){width:64px}
table.ip-data-table th:nth-child(6),table.ip-data-table td:nth-child(6){width:118px}
table.ip-data-table th:nth-child(7),table.ip-data-table td:nth-child(7){width:82px}
table.ip-data-table th:nth-child(8),table.ip-data-table td:nth-child(8){width:118px}
table.ip-data-table th:nth-child(9),table.ip-data-table td:nth-child(9){width:82px}
table.ip-data-table th:nth-child(10),table.ip-data-table td:nth-child(10){width:60px}
table.ip-data-table th:nth-child(11),table.ip-data-table td:nth-child(11){width:60px}
.ip-table-scroll { overflow:auto;border-radius:8px;border:1px solid var(--line);max-height:min(620px,calc(100dvh - 290px));min-height:0;scrollbar-gutter:stable both-edges;overscroll-behavior:contain;-webkit-overflow-scrolling:touch }
.ip-overseas-row td { background:var(--panel-soft) }
.ip-category-chip { display:inline-block;font-size:10px;padding:1px 5px;border-radius:6px;background:var(--accent-soft);border:1px solid var(--line);color:var(--accent-strong);white-space:nowrap }
.ip-country-code { font-size:11px;color:#6d4bc3 }
:root[data-theme="dark"] .ip-country-code { color:#c4b5fd }

/* ── 섹션 헤더 ── */
.ip-section-hd { display:flex!important;align-items:center;justify-content:space-between;flex-wrap:nowrap;gap:12px;margin-bottom:14px;padding:0 2px 12px;border-bottom:1.5px solid var(--line) }
.ip-section-hd h2 { margin:0!important;padding:0!important;border:none!important;font-size:15px }
.ip-section-title { display:flex;align-items:center;gap:8px;min-width:max-content;white-space:nowrap }
.ip-section-tools { margin-left:auto;display:flex;align-items:center;justify-content:flex-end;gap:8px;min-width:0;flex:1 1 auto }
.ip-section-tools form { margin:0;flex:0 1 260px;min-width:180px }
.ip-filter-group { display:flex;align-items:center;gap:4px;flex:0 0 auto;white-space:nowrap }

/* ── 필터 버튼 ── */
.ip-filter-btn { padding:5px 12px;border-radius:8px!important;font-size:11.5px;font-weight:600;text-decoration:none;display:inline-block;border:1.5px solid var(--line);background:var(--panel);color:var(--ink);transition:all .15s;white-space:nowrap }
.ip-filter-btn:hover { border-color:var(--accent);color:var(--accent-strong) }
.ip-filter-btn.on { border-color:#2dd4bf!important;background:#163e3c!important;color:#5eead4!important }

/* ── 검색 입력 ── */
.ip-search { border:1.5px solid var(--line)!important;border-radius:8px!important;padding:6px 10px!important;font-size:12px;background:var(--panel)!important;color:var(--ink);width:100%;max-width:260px;outline:none }
.ip-search:focus { border-color:var(--accent)!important }
.ip-count { font-size:11.5px;color:var(--muted);margin-top:10px }

/* ── 셀 클래스 ── */
.ip-mono    { font-family:monospace;font-size:12px;font-weight:700;color:var(--accent-strong)!important }
.ip-mono-sm { font-family:monospace;font-size:11px;color:var(--muted)!important }
.ip-date    { font-size:11.5px;color:var(--muted)!important }
.ip-title   { font-weight:600;max-width:220px }
.ip-r       { text-align:right }
.ip-c       { text-align:center }
.ip-muted   { color:var(--muted) }
.ip-empty   { text-align:center;padding:28px;color:var(--muted);font-size:13px }
.ip-tbl-wrap{ overflow-x:auto }
.ip-wrap    { width:100% }
tr.ip-ovs-hidden { display:none!important }

@media (max-width: 980px) {
  .ip-section-hd { align-items:flex-start;flex-wrap:wrap }
  .ip-section-tools { width:100%;justify-content:flex-start;flex-wrap:wrap }
  .ip-section-tools form { flex:1 1 220px }
  .ip-filter-group { flex-wrap:wrap;white-space:normal }
  .ip-table-scroll { max-height:calc(100vh - 260px) }
}

/* ── 배지 ── */
.ip-sbadge { display:inline-block;padding:3px 8px;border-radius:8px;font-size:10.5px;font-weight:700;border:1px solid;white-space:nowrap }
.ip-sbadge.is-registered { background:#e4f7ef;color:#087344;border-color:#91d6b6 }
.ip-sbadge.is-rejected { background:#fdecec;color:#a32727;border-color:#e6a5a5 }
.ip-sbadge.is-provisional { background:#f0eafb;color:#6540a5;border-color:#c6b4e7 }
.ip-sbadge.is-exam { background:#f2f3f5;color:#525b66;border-color:#c8cdd3 }
.ip-sbadge.is-default { background:#e8f1fb;color:#185fa5;border-color:#a8c8e8 }
:root[data-theme="dark"] .ip-sbadge.is-registered { background:#064e3b;color:#6ee7b7;border-color:#17865f }
:root[data-theme="dark"] .ip-sbadge.is-rejected { background:#450a0a;color:#fca5a5;border-color:#7f1d1d }
:root[data-theme="dark"] .ip-sbadge.is-provisional { background:#2e1065;color:#c4b5fd;border-color:#5d35a0 }
:root[data-theme="dark"] .ip-sbadge.is-exam { background:#292524;color:#d6d3d1;border-color:#57534e }
:root[data-theme="dark"] .ip-sbadge.is-default { background:#102a44;color:#93c5fd;border-color:#28537b }

/* ── 버튼 ── */
.ip-add-btn { display:inline-flex!important;align-items:center!important;gap:4px!important;padding:6px 14px!important;background:var(--accent)!important;color:var(--on-accent)!important;border-radius:8px!important;font-size:12px!important;font-weight:700!important;text-decoration:none!important;border:none!important;cursor:pointer!important;white-space:nowrap!important }
.ip-add-btn:hover { background:var(--accent-strong)!important;color:var(--on-accent)!important }
.ip-edit-btn { display:inline-block!important;padding:3px 9px!important;font-size:11px!important;border-radius:7px!important;border:1px solid var(--line)!important;color:var(--muted)!important;text-decoration:none!important;background:var(--panel)!important;white-space:nowrap!important }
.ip-edit-btn:hover { border-color:var(--accent)!important;color:var(--accent)!important }
button.ip-edit-btn { cursor:pointer!important;font-family:inherit!important;line-height:normal!important;appearance:none!important;-webkit-appearance:none!important }
.pc-btn-sm { padding:4px 10px;background:var(--accent-soft);border:1px solid var(--accent);border-radius:6px;color:var(--accent-strong);font-size:12px;cursor:pointer }

/* ── 비용 KPI 그리드 ── */
.pc-wrap { width:100% }
.pc-kpi-grid { display:grid;grid-template-columns:repeat(7,1fr);gap:8px;margin-bottom:16px }
.pc-kpi-box { background:var(--panel);border-radius:8px;padding:14px;text-align:center;border-width:1.5px;border-style:solid }
.pc-kpi-label { font-size:10.5px;font-weight:700;margin-bottom:4px }
.pc-kpi-val { font-size:18px;font-weight:900 }
.pc-kpi-sub { font-size:10px;color:var(--muted);margin-top:3px }
.pc-kpi-teal { border-color:var(--accent);color:var(--accent-strong) }
.pc-kpi-blue { border-color:#5c93c7;color:#205f99 }
.pc-kpi-amber { border-color:#c89835;color:#815b00 }
.pc-kpi-purple { border-color:#9a7ac9;color:#604095 }
.pc-kpi-red { border-color:#d77d84;color:#a52f39 }
:root[data-theme="dark"] .pc-kpi-blue { color:#8bc4f7 }
:root[data-theme="dark"] .pc-kpi-amber { color:#f2c864 }
:root[data-theme="dark"] .pc-kpi-purple { color:#c4b5fd }
:root[data-theme="dark"] .pc-kpi-red { color:#fca5a5 }
.pc-two-col { display:grid;grid-template-columns:1fr 260px;gap:14px;margin-bottom:14px }
.pc-sect { background:var(--panel);border-radius:8px;padding:18px }
.pc-bar-grid { display:grid;grid-template-columns:repeat(12,1fr);gap:4px;align-items:end;height:80px }
.pc-bar-col { display:flex;flex-direction:column;align-items:center;gap:3px;text-decoration:none }
.pc-bar-label-top { font-size:8px;font-weight:700;text-align:center;line-height:1.2;color:var(--accent-strong) }
.pc-bar-label-top-e { font-size:8px;color:transparent }
.pc-bar-bar { width:100%;border-radius:4px 4px 0 0;min-height:6px;transition:opacity .15s }
.pc-bar-bar:hover { opacity:.7 }
.pc-bar-mon { font-size:9.5px }
.pc-bar-bg-teal { background:#2dd4bf;border:none }
.pc-bar-bg-dim { background:#163e3c;border:1px solid #2dd4bf }
.pc-bar-bg-amber { background:#f59e0b;border:none }
.pc-bar-bg-empty { background:var(--panel-soft);border:1px solid var(--line) }
.pc-note { margin-top:8px;font-size:10.5px;color:var(--muted) }
.pc-sim-row { display:flex;flex-direction:column;gap:6px }
.pc-sim-item { display:flex;justify-content:space-between;padding:7px 10px;background:var(--panel-soft);border-radius:7px;font-size:12.5px }
.pc-sim-item span { color:var(--muted) }
.pc-sim-item strong { color:var(--ink) }
.pc-sim-total { display:flex;justify-content:space-between;padding:8px 12px;background:var(--accent-soft);border:1px solid var(--accent);border-radius:8px;font-size:13px }
.pc-sim-total span { font-weight:700;color:var(--accent-strong) }
.pc-sim-total strong { font-weight:900;color:var(--accent) }
.pc-sim-note { margin-top:10px;font-size:10.5px;color:var(--muted);line-height:1.7 }
.pc-alert-panel { background:var(--panel);border-radius:8px;padding:18px;margin-bottom:14px;border:1.5px solid #b85a5a }
.pc-alert-title { margin-bottom:12px;font-size:14px;color:#f87171 }
.pc-stage-panel { background:var(--panel);border-radius:8px;padding:18px;margin-bottom:14px;overflow-x:auto }
.pc-stage-hd { display:flex;align-items:center;gap:10px;margin-bottom:14px;flex-wrap:wrap }
.pc-stage-tbl { min-width:900px;border-collapse:collapse;width:100% }
.pc-stage-th { background:var(--panel-soft);color:var(--muted);font-size:11px;font-weight:600;padding:8px 10px;text-align:left;border-bottom:1.5px solid var(--line) }
.pc-stage-th-c { text-align:center;padding:6px 4px;min-width:110px;font-size:11px;color:var(--muted) }
.pc-stage-th-s { font-size:10px;font-weight:400;color:var(--muted);padding:2px 4px 6px;text-align:center }
.pc-stage-td { padding:8px 10px;border-bottom:1px solid var(--line-soft);font-size:13px;vertical-align:middle }
.pc-stage-td-c { padding:5px 6px;border-bottom:1px solid var(--line-soft);vertical-align:middle }
.pc-stage-td-auto { background:var(--accent-soft) }
.pc-stage-dt { font-size:10px;color:var(--muted);margin-bottom:3px;text-align:center }
.pc-stage-auto-val { font-size:12px;font-weight:700;color:var(--accent-strong);text-align:right;padding:3px 7px;border:1px solid var(--accent);border-radius:5px }
.pc-stage-auto-note { font-size:9.5px;color:var(--accent-strong);text-align:center;margin-top:2px;opacity:.8 }
.pc-stage-input { border:1px solid var(--line);border-radius:5px;padding:3px 6px;font-size:11.5px;background:var(--panel);color:var(--ink);width:90px;text-align:right }
.pc-stage-foot { background:var(--accent-soft);border-top:2px solid var(--accent) }
.pc-stage-foot td { font-weight:700;color:var(--ink);padding:8px 6px;font-size:12.5px }
.pc-ovs-panel { background:var(--panel);border-radius:8px;padding:18px }
.pc-ovs-hd { display:flex;align-items:center;gap:12px;margin-bottom:12px;flex-wrap:wrap }
.pc-ovs-total { background:var(--panel-soft);border-top:2px solid var(--accent) }
.pc-form-inline { margin:0;display:flex;gap:6px;align-items:center }
.pc-select { border:1px solid var(--line);border-radius:6px;padding:3px 7px;font-size:12px;background:var(--panel);color:var(--ink) }
.pc-sim-ctrl { display:flex;align-items:center;gap:8px;margin-bottom:16px }
.pc-sim-input { width:70px;border:1px solid var(--line);border-radius:6px;padding:5px 8px;font-size:13px;background:var(--panel);color:var(--ink) }
.pc-mgmt-mono { font-family:monospace;font-size:12px;font-weight:700;color:var(--accent-strong);white-space:nowrap }
.pc-file-mono { font-family:monospace;font-size:11.5px;color:var(--muted) }
.pc-filter-label { font-size:12px;font-weight:600;white-space:nowrap;color:var(--muted) }

/* ── 비용 이벤트 테이블 (cev-*) ── */
.cev-panel { background:var(--panel);border-radius:8px;border:1px solid var(--line-soft);margin-bottom:16px;overflow:hidden }
.cev-panel-hd { display:flex;align-items:center;gap:10px;padding:14px 18px;border-bottom:1px solid var(--line-soft);background:var(--panel-soft) }
.cev-panel-title { font-size:14px;font-weight:700;color:var(--ink) }
.cev-panel-sub { font-size:12px;color:var(--muted) }
.cev-tbl { width:100%;border-collapse:collapse;font-size:13px }
.cev-tbl th { padding:8px 12px;text-align:left;font-size:11px;font-weight:600;color:var(--muted);border-bottom:1px solid var(--line-soft);white-space:nowrap }
.cev-tbl td { padding:9px 12px;border-bottom:1px solid var(--line-soft);vertical-align:middle }
.cev-tbl tbody tr:last-child td { border-bottom:none }
.cev-tbl tbody tr:hover { background:var(--panel-soft) }
.cev-stage-badge { display:inline-block;padding:2px 9px;border-radius:100px;font-size:11px;font-weight:600;background:var(--accent-soft);color:var(--accent) }
.cev-stage-annual { background:#fef3c7;color:#92400e }
.cev-stage-oa { background:#fee2e2;color:#991b1b }
.cev-amt { font-variant-numeric:tabular-nums;text-align:right }
.cev-total { font-weight:700;color:var(--ink) }
.cev-del-btn { padding:3px 8px;border-radius:5px;border:1px solid var(--line);background:transparent;color:var(--muted);font-size:11px;cursor:pointer }
.cev-del-btn:hover { border-color:var(--danger);color:var(--danger) }
.cev-edit-btn { padding:3px 8px;border-radius:5px;border:1px solid var(--line);background:transparent;color:var(--accent);font-size:11px;cursor:pointer }
.cev-edit-btn:hover { border-color:var(--accent);background:var(--accent-soft) }
.cev-add-form { display:flex;flex-wrap:wrap;gap:8px;align-items:flex-end;padding:14px 18px;border-top:1px solid var(--line-soft);background:var(--panel-soft) }
.cev-add-form label { font-size:11px;font-weight:600;color:var(--muted);display:flex;flex-direction:column;gap:3px }
.cev-add-form input,.cev-add-form select { border:1px solid var(--line);border-radius:7px;padding:6px 10px;font-size:13px;background:var(--panel);color:var(--ink) }
.cev-add-btn { padding:7px 18px;border-radius:8px;background:var(--accent);color:var(--on-accent);border:none;font-size:13px;font-weight:600;cursor:pointer;white-space:nowrap }
.cev-sum-row { display:flex;gap:16px;flex-wrap:wrap;padding:12px 18px;font-size:13px;border-top:1px solid var(--line-soft) }
.cev-sum-item { display:flex;flex-direction:column;gap:2px }
.cev-sum-label { font-size:11px;color:var(--muted);font-weight:500 }
.cev-sum-val { font-weight:700;color:var(--ink) }
.cev-sum-accent { color:var(--accent) }
.cev-empty { padding:24px 18px;color:var(--muted);font-size:13px;text-align:center }
.pc-collapse-btn { margin-left:auto;font-size:11px;color:var(--muted);user-select:none;padding:2px 6px }
.pc-kpi-active { outline:2px solid var(--accent)!important;outline-offset:2px }

/* ── 특허비용 입력 레이아웃 (cin-*) ── */
.cin-wrap { display:grid;grid-template-columns:280px 1fr;gap:0;height:calc(100vh - 110px);min-height:500px;background:var(--panel);border-radius:8px;border:1px solid var(--line-soft);overflow:hidden }
@media(max-width:720px){ .cin-wrap { grid-template-columns:1fr;height:auto } }
.cin-list-panel { display:flex;flex-direction:column;border-right:1px solid var(--line-soft);background:var(--panel-soft);overflow:hidden }
.cin-list-hd { display:flex;align-items:center;justify-content:space-between;padding:12px 14px;border-bottom:1px solid var(--line-soft);flex-shrink:0 }
.cin-search-form { padding:8px 10px;border-bottom:1px solid var(--line-soft);flex-shrink:0 }
.cin-search-input { width:100%;padding:6px 10px;border:1px solid var(--line);border-radius:8px;font-size:12px;background:var(--panel);color:var(--ink);box-sizing:border-box }
.cin-list-body { flex:1;overflow-y:auto;overscroll-behavior:contain }
.cin-pat-item { display:block;padding:9px 14px;border-bottom:1px solid var(--line-soft);text-decoration:none;color:inherit;cursor:pointer;transition:background .1s }
.cin-pat-item:hover { background:var(--panel) }
.cin-pat-sel { background:var(--accent-soft)!important;border-left:3px solid var(--accent) }
.cin-pat-mgmt { font-size:12px;font-weight:700;color:var(--accent);font-variant-numeric:tabular-nums;font-family:monospace }
.cin-pat-title { font-size:12px;color:var(--ink);margin:2px 0;line-height:1.3 }
.cin-pat-meta { display:flex;gap:5px;align-items:center;flex-wrap:wrap;margin-top:4px }
.cin-pat-amt { font-size:10px;color:var(--muted);background:var(--panel);border:1px solid var(--line);border-radius:100px;padding:1px 6px }
.cin-pat-cnt { font-size:10px;color:var(--accent);background:var(--accent-soft);border-radius:100px;padding:1px 6px }
.cin-entry-panel { display:flex;flex-direction:column;overflow:hidden;background:var(--panel) }
.cin-entry-top { display:flex;align-items:center;justify-content:space-between;padding:12px 18px;border-bottom:1px solid var(--line-soft);flex-shrink:0 }
.cin-entry-hd { padding:12px 18px;border-bottom:1px solid var(--line-soft);flex-shrink:0 }
.cin-entry-info { display:flex;gap:10px;align-items:baseline;margin-bottom:6px;flex-wrap:wrap }
.cin-entry-mgmt { font-family:monospace;font-size:14px;font-weight:800;color:var(--accent) }
.cin-entry-title { font-size:13px;color:var(--ink);font-weight:600 }
.cin-entry-badges { display:flex;gap:6px;flex-wrap:wrap;align-items:center }
.cin-meta-chip { font-size:10px;padding:2px 7px;border-radius:100px;background:var(--panel-soft);border:1px solid var(--line);color:var(--muted) }
.cin-meta-reg { background:#d1fae5;color:#065f46;border-color:#6ee7b7 }
.cin-tbl-wrap { flex:1;overflow-y:auto;min-height:0 }
.cin-add-wrap { border-top:2px solid var(--accent);background:var(--panel-soft);flex-shrink:0;padding:14px 18px }
.cin-add-title { font-size:12px;font-weight:700;color:var(--accent);margin-bottom:10px }
.cin-add-form { display:block }
.cin-form-row { display:flex;gap:10px;flex-wrap:wrap;align-items:flex-end }
.cin-form-field { display:flex;flex-direction:column;gap:4px;font-size:11px;font-weight:600;color:var(--muted) }
.cin-form-field input,.cin-form-field select { border:1px solid var(--line);border-radius:7px;padding:7px 10px;font-size:13px;background:var(--panel);color:var(--ink);min-width:100px }
.cin-add-btn { padding:8px 22px;border-radius:8px;background:var(--accent);color:var(--on-accent);border:none;font-size:13px;font-weight:700;cursor:pointer;white-space:nowrap;align-self:flex-end }
.cin-add-btn:hover { opacity:.88 }
.cin-empty { flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px;color:var(--muted);text-align:center }
.cin-outer { display:flex;flex-direction:column;gap:0;height:calc(100vh - 70px);overflow:hidden }
.cin-outer .cin-wrap { flex:1;min-height:0 }
.cin-new-wrap { background:var(--panel);border:1.5px solid var(--line);border-radius:8px;margin-bottom:10px;flex-shrink:0;overflow:hidden }
.cin-new-toggle { display:block;padding:10px 16px;font-size:13px;font-weight:700;color:var(--accent-strong);cursor:pointer;list-style:none;user-select:none }
.cin-new-toggle::-webkit-details-marker { display:none }
.cin-new-toggle::before { content:"▶ ";font-size:11px;opacity:.7 }
details[open].cin-new-wrap > .cin-new-toggle::before { content:"▼ " }
.cin-new-form { padding:0 16px 14px }
.cin-deadline-wrap { background:var(--panel-soft);border-top:1px solid var(--line-soft);flex-shrink:0 }
.cin-deadline-toggle { display:block;padding:9px 18px;font-size:12px;font-weight:600;color:var(--muted);cursor:pointer;list-style:none;user-select:none }
.cin-deadline-toggle::-webkit-details-marker { display:none }
.cin-deadline-toggle::before { content:"▶ ";font-size:10px }
details[open].cin-deadline-wrap > .cin-deadline-toggle::before { content:"▼ " }
.cin-deadline-form { border-top:1px solid var(--line-soft) }

/* ── 특허 현황보드 대시보드 ─────────────────────────────────────────── */
.stat-two-col { display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:16px }
.stat-sect { background:var(--card);border:1px solid var(--line-soft);border-radius:8px;padding:16px }
.stat-sect h2 { font-size:14px;font-weight:700;color:var(--ink);margin:0 0 12px }
.stat-tbl { width:100%;border-collapse:collapse;font-size:12px }
.stat-tbl th { padding:6px 8px;text-align:left;color:var(--muted);font-weight:600;border-bottom:1px solid var(--line-soft);white-space:nowrap }
.stat-tbl td { padding:6px 8px;border-bottom:1px solid var(--line-soft);vertical-align:middle }
.stat-tbl tr:last-child td { border-bottom:none }
.stat-tbl .num { text-align:right }
.stat-badge { display:inline-block;padding:2px 7px;border-radius:4px;font-size:11px;font-weight:600;background:var(--card-2);color:var(--ink) }
.stat-badge-danger { background:#450a0a;color:#fca5a5 }
.stat-badge-warn   { background:#431407;color:#fdba74 }
.dash-urgent { color:#fca5a5;font-weight:700 }
.dash-warn   { color:#fcd34d;font-weight:700 }
/* 달력 */
.dash-cal-sect { overflow-x:auto }
.dash-cal-table { width:100%;border-collapse:collapse;font-size:12px }
.dash-cal-table thead th { padding:4px 2px;text-align:center;color:var(--muted);font-weight:600;font-size:11px }
.dash-cal-sun { color:#f87171 }
.dash-cal-sat { color:#93c5fd }
.dash-cal-cell { padding:4px 3px;vertical-align:top;min-width:36px;border-radius:4px }
.dash-cal-empty { opacity:0 }
.dash-cal-today { background:var(--accent);border-radius:4px }
.dash-cal-today .dash-cal-day { color:var(--on-accent);font-weight:700 }
.dash-cal-today .dash-cal-day span { background:var(--on-accent);color:var(--accent);border-radius:50%;display:inline-block;width:20px;height:20px;line-height:20px;text-align:center }
.dash-cal-day { text-align:center;font-size:12px;color:var(--ink);margin-bottom:2px }
.dash-cal-dot { font-size:9px;color:var(--accent-strong);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:50px }

/* ── 특허 할일메모 (서버 저장) ────────────────────────────────────────── */
.memo-grid { display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:16px;padding:16px }
.workspace-inner { padding:0 }
.memo-card { border-radius:8px;padding:14px;display:flex;flex-direction:column;gap:8px;box-shadow:var(--shadow-soft) }
.memo-add-card { border-style:dashed }
.memo-card-hd { display:flex;justify-content:space-between;align-items:center }
.memo-ts { font-size:10px;color:var(--muted);letter-spacing:.3px }
.memo-del-btn { background:none;border:none;cursor:pointer;color:var(--muted);font-size:13px;padding:2px 5px;border-radius:3px;line-height:1;transition:color .15s }
.memo-del-btn:hover { color:#f87171 }
.memo-textarea { width:100%;box-sizing:border-box;background:transparent;border:none;outline:none;resize:vertical;font-size:13px;line-height:1.6;color:var(--ink);font-family:inherit;min-height:110px }
.memo-card-ft { display:flex;justify-content:flex-end;margin-top:4px }
.memo-save-btn { padding:5px 14px;border-radius:6px;border:none;background:var(--accent);color:var(--on-accent);font-size:12px;font-weight:700;cursor:pointer;transition:background .15s }
.memo-save-btn:hover { background:var(--accent-strong) }
@media (max-width:700px) {
  .stat-two-col { grid-template-columns:1fr }
  .memo-grid { grid-template-columns:1fr 1fr }
}
.mono { font-family:monospace;font-size:12px }
