.cp-card { border:1px solid var(--line); border-radius:14px; padding:20px; margin:18px 0; background:var(--card); min-width:0; }
.cp-card h2 { margin:0 0 14px; font-size:18px; }
.cp-card a,.cp-card a:visited { color:var(--accent); display:inline-flex; align-items:center; min-height:44px; text-underline-offset:3px; }
.cp-muted { color:var(--muted); font-size:13px; }
.cp-eyebrow { color:var(--accent); font-size:12px; font-weight:700; letter-spacing:.08em; }
.cp-actions,.cp-form { display:flex; flex-wrap:wrap; gap:12px; align-items:end; }
.cp-actions button,.cp-card button { border:1px solid var(--line); border-radius:8px; padding:10px 14px; min-height:44px; color:var(--ink); background:var(--bg); cursor:pointer; font:inherit; font-size:13px; }
.cp-card button:hover { border-color:var(--accent); }
.cp-field { display:flex; flex:1 1 180px; flex-direction:column; gap:6px; min-width:0; color:var(--ink); font-size:13px; }
.cp-field input,.cp-field select,.cp-field textarea { min-width:0; width:100%; box-sizing:border-box; border:1px solid var(--line); border-radius:8px; background:var(--bg); color:var(--ink); padding:10px; min-height:44px; font:inherit; }
.cp-field input[type=checkbox] { width:22px; height:22px; min-height:22px; }
.cp-groups { flex-basis:100%; display:flex; flex-wrap:wrap; gap:12px; border:1px solid var(--line); border-radius:8px; padding:14px; }
.cp-metrics { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; margin:18px 0; }
.cp-metrics div { border:1px solid var(--line); border-radius:10px; padding:14px; display:flex; flex-direction:column; gap:6px; }
.cp-metrics strong { font-size:24px; }
.cp-scroll { overflow-x:auto; max-width:100%; }
.cp-scroll table { width:100%; border-collapse:collapse; font-size:13px; }
.cp-scroll th,.cp-scroll td { text-align:left; padding:11px 8px; border-bottom:1px solid var(--line); }
.cp-scroll th { color:var(--muted); }
.cp-notice { border:1px solid var(--accent); border-radius:8px; padding:12px; }
.cp-warning { color:var(--ink); background:color-mix(in srgb, var(--accent) 12%, var(--bg)); padding:8px; }
.cp-month { margin:10px 0; border:1px solid var(--line); border-radius:8px; padding:12px; }
.cp-month>summary { cursor:pointer; font-weight:700; padding:6px; }
.cp-entry { display:flex; flex-direction:column; gap:7px; padding:14px 0; border-top:1px solid var(--line); }
.cp-entry small { color:var(--muted); }
.cp-entry button { align-self:flex-start; }
.cp-cancelled { opacity:.7; }
.cp-mapping { display:grid; grid-template-columns:repeat(auto-fit,minmax(230px,1fr)); gap:12px; margin:12px 0; }
.cp-card :focus-visible,.cp-field :focus-visible { outline:2px solid var(--accent); outline-offset:3px; }
@media(max-width:650px) { .cp-card { padding:14px; } .cp-metrics { grid-template-columns:repeat(2,minmax(0,1fr)); } .cp-field { flex-basis:100%; } .cp-actions button { width:100%; } .cp-scroll { max-width:calc(100vw - 66px); } }
.cp-group-code { display: block; font-size: 18px; color: var(--ink); overflow-wrap: anywhere; }
