/* ==========================================================================
   Cayman Client Portal — app styles (front end + wp-admin console)
   ========================================================================== */

.cecp-app, .cecp-modal, .cecp-toasts, .cecp-form {
	--cecp-navy: var(--c-navy, #0B1F3A);
	--cecp-teal: var(--c-teal, #0E8C8C);
	--cecp-lagoon: #2EC4B6;
	--cecp-coral: var(--c-coral, #F27059);
	--cecp-sand: #F7F1E6;
	--cecp-ink: #13233A;
	--cecp-text: #3C4A5C;
	--cecp-muted: #6B7A8C;
	--cecp-line: #E3E8EF;
	--cecp-soft: #F5F8FB;
	--cecp-ok: #1F9D6B;
	--cecp-warn: #C98A12;
	--cecp-bad: #D64545;
	--cecp-radius: 14px;
	--cecp-shadow: 0 1px 2px rgba(11,31,58,.05), 0 6px 20px -10px rgba(11,31,58,.18);
	font-family: Inter, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
	color: var(--cecp-text);
	font-size: 15px;
	line-height: 1.55;
}
.cecp-app *, .cecp-modal *, .cecp-form * { box-sizing: border-box; }
.cecp-app h1, .cecp-app h2, .cecp-app h3, .cecp-modal h2 { font-family: "Plus Jakarta Sans", Inter, sans-serif; color: var(--cecp-ink); letter-spacing: -.01em; line-height: 1.25; margin: 0; }
.cecp-app a { color: var(--cecp-teal); }
.cecp-i { flex: none; vertical-align: -3px; }
.cecp-muted { color: var(--cecp-muted); }
.cecp-small { font-size: 13px; }
.cecp-center { text-align: center; }
.cecp-right { text-align: right; }
.cecp-nowrap { white-space: nowrap; }
.cecp-pad { padding: 12px 14px; }
.cecp-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; opacity: 0; }
.cecp-boot, .cecp-loading { display: flex; align-items: center; gap: 10px; justify-content: center; padding: 48px; color: var(--cecp-muted); }

.cecp-spinner { display: inline-block; width: 16px; height: 16px; border: 2px solid currentColor; border-right-color: transparent; border-radius: 50%; animation: cecp-spin .7s linear infinite; vertical-align: -3px; }
@keyframes cecp-spin { to { transform: rotate(360deg); } }

/* ---------- Buttons ---------- */
.cecp-btn {
	display: inline-flex; align-items: center; justify-content: center; gap: 6px;
	padding: 9px 16px; border-radius: 999px; border: 1.5px solid var(--cecp-line); background: #fff;
	color: var(--cecp-ink); font-family: inherit; font-weight: 600; font-size: 14px; line-height: 1.2; font-family: inherit; text-decoration: none; cursor: pointer; white-space: nowrap;
	transition: background .15s, border-color .15s, color .15s, transform .15s;
}
.cecp-btn:hover { border-color: var(--cecp-teal); color: var(--cecp-teal); }
.cecp-app a.cecp-btn { color: var(--cecp-ink); }
.cecp-app a.cecp-btn:hover { color: var(--cecp-teal); }
.cecp-app a.cecp-btn--primary, .cecp-app a.cecp-btn--primary:hover, .cecp-app a.cecp-btn--danger { color: #fff; }
.cecp-app a.cecp-btn--ghost { color: var(--cecp-muted); }
.cecp-btn:disabled { opacity: .6; cursor: progress; }
.cecp-btn--primary { background: var(--cecp-teal); border-color: var(--cecp-teal); color: #fff; }
.cecp-btn--primary:hover { background: var(--cecp-navy); border-color: var(--cecp-navy); color: #fff; }
.cecp-btn--danger { background: var(--cecp-bad); border-color: var(--cecp-bad); color: #fff; }
.cecp-btn--danger:hover { background: #b93636; color: #fff; }
.cecp-btn--ghost { background: transparent; border-color: transparent; color: var(--cecp-muted); }
.cecp-btn--ghost:hover { background: var(--cecp-soft); border-color: transparent; }
.cecp-btn--sm { padding: 6px 12px; font-size: 13px; }
.cecp-btn--lg { padding: 13px 22px; font-size: 15px; }
.cecp-btn--block { width: 100%; }
.cecp-iconbtn { display: inline-grid; place-items: center; width: 34px; height: 34px; border-radius: 10px; border: 0; background: transparent; color: var(--cecp-muted); cursor: pointer; }
.cecp-iconbtn:hover { background: var(--cecp-soft); color: var(--cecp-ink); }
.cecp-link { background: none; border: 0; padding: 0; color: var(--cecp-teal); font: inherit; font-weight: 600; cursor: pointer; text-decoration: none; }
.cecp-link:hover { text-decoration: underline; }
.cecp-actions { display: flex; gap: 8px; justify-content: flex-end; flex-wrap: wrap; margin-top: 12px; }
.cecp-actions--left { justify-content: flex-start; }
.cecp-stack { display: grid; gap: 8px; }

/* ---------- Forms ---------- */
.cecp-form { display: grid; gap: 14px; }
.cecp-form label { display: grid; gap: 6px; font-weight: 600; font-size: 13.5px; color: var(--cecp-ink); }
.cecp-form input:not([type=checkbox]):not([type=radio]):not([type=file]), .cecp-form select, .cecp-form textarea,
.cecp-app input:not([type=checkbox]):not([type=radio]):not([type=file]), .cecp-app select, .cecp-app textarea {
	width: 100%; padding: 10px 12px; border: 1.5px solid var(--cecp-line); border-radius: 10px; background: #fff;
	font-family: inherit; font-weight: 400; font-size: 14.5px; line-height: 1.4; font-family: inherit; color: var(--cecp-ink); max-width: none; min-height: 0; box-shadow: none;
}
.cecp-app input:focus, .cecp-app select:focus, .cecp-app textarea:focus, .cecp-form input:focus, .cecp-form textarea:focus, .cecp-form select:focus { outline: none; border-color: var(--cecp-teal); box-shadow: 0 0 0 3px rgba(14,140,140,.15); }
.cecp-app :focus-visible, .cecp-modal :focus-visible { outline: 3px solid var(--cecp-lagoon); outline-offset: 2px; }
.cecp-check { display: flex !important; grid-template-columns: none; align-items: flex-start; gap: 8px !important; font-weight: 500 !important; }
.cecp-check input { margin-top: 3px; accent-color: var(--cecp-teal); }
.cecp-form fieldset { border: 0; padding: 0; margin: 0 0 8px; display: grid; gap: 14px; }
.cecp-form legend { font: 700 16px/1.3 "Plus Jakarta Sans", Inter, sans-serif; color: var(--cecp-ink); margin-bottom: 10px; }
.cecp-form__error { color: var(--cecp-bad); margin: 0; min-height: 1em; font-size: 14px; }
.cecp-form__status { margin: 0; font-weight: 600; color: var(--cecp-teal); }
.cecp-grid-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.cecp-grid-3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
.cecp-row { display: flex; justify-content: space-between; align-items: center; gap: 12px; font-size: 14px; }
.cecp-code { font-size: 24px !important; letter-spacing: .4em; text-align: center; font-variant-numeric: tabular-nums; }

/* ---------- Badges & chips ---------- */
.cecp-badge { display: inline-flex; align-items: center; padding: 3px 10px; border-radius: 999px; font-family: inherit; font-weight: 600; font-size: 12px; line-height: 1.4; white-space: nowrap; vertical-align: middle; text-transform: none; letter-spacing: 0; }
.cecp-badge--ok { background: #E3F5EE; color: #12704C; }
.cecp-badge--warn { background: #FDF3DC; color: #8A5D00; }
.cecp-badge--bad { background: #FDE6E6; color: #A32B2B; }
.cecp-badge--info { background: #E2F3F3; color: #0A6A6A; }
.cecp-badge--muted { background: #EEF1F5; color: #55657A; }
.cecp-chip { display: inline-block; padding: 2px 9px; border-radius: 6px; background: var(--cecp-soft); border: 1px solid var(--cecp-line); font-size: 12px; font-weight: 600; color: var(--cecp-text); margin: 0 2px 4px 0; }
.cecp-chip--accent { background: #FFF1EE; border-color: #FBD3CB; color: #B44530; }
.cecp-chip--ai { background: linear-gradient(135deg, #E2F3F3, #EDE9FE); color: #4C3BA8; border-color: #D8D2FA; }
.cecp-count { display: inline-grid; place-items: center; min-width: 20px; height: 20px; padding: 0 6px; border-radius: 999px; background: var(--cecp-coral); color: #fff; font-size: 11px; font-weight: 700; }
.cecp-dot { width: 10px; height: 10px; border-radius: 50%; flex: none; margin-top: 6px; }
.cecp-dot--ai { background: var(--cecp-lagoon); } .cecp-dot--human { background: var(--cecp-coral); box-shadow: 0 0 0 4px rgba(242,112,89,.2); } .cecp-dot--closed { background: #C3CBD6; }

/* ---------- Shell ---------- */
.cecp-shell { display: grid; grid-template-columns: 260px 1fr; min-height: 70vh; background: var(--cecp-soft); border-radius: 18px; overflow: hidden; border: 1px solid var(--cecp-line); }
.cecp-shell--admin { border-radius: 12px; margin-top: 12px; min-height: calc(100vh - 120px); }
.cecp-side { background: var(--cecp-navy); color: rgba(255,255,255,.75); display: flex; flex-direction: column; padding: 20px 14px; gap: 18px; }
.cecp-side__brand { display: flex; gap: 10px; align-items: center; padding: 0 8px; }
.cecp-side__brand strong { display: block; color: #fff; font-size: 15px; }
.cecp-side__brand small { color: rgba(255,255,255,.55); font-size: 12px; }
.cecp-logo { display: grid; place-items: center; width: 38px; height: 38px; border-radius: 11px; background: linear-gradient(135deg, var(--cecp-teal), var(--cecp-lagoon)); color: #fff; font: 800 18px/1 "Plus Jakarta Sans", sans-serif; flex: none; }
.cecp-nav { list-style: none; margin: 0; padding: 0; display: grid; gap: 2px; }
.cecp-nav a { display: flex; align-items: center; gap: 10px; padding: 10px 12px; border-radius: 10px; color: rgba(255,255,255,.78); text-decoration: none; font-weight: 500; font-size: 14.5px; }
.cecp-nav a:hover { background: rgba(255,255,255,.07); color: #fff; }
.cecp-nav a.is-active { background: rgba(46,196,182,.18); color: #fff; box-shadow: inset 3px 0 0 var(--cecp-lagoon); }
.cecp-side__foot { margin-top: auto; display: grid; gap: 10px; border-top: 1px solid rgba(255,255,255,.1); padding-top: 14px; }
.cecp-side__foot .cecp-btn--ghost { color: rgba(255,255,255,.7); justify-content: flex-start; }
.cecp-side__foot .cecp-btn--ghost:hover { background: rgba(255,255,255,.07); color: #fff; }
.cecp-me { display: flex; gap: 10px; align-items: center; padding: 0 8px; }
.cecp-me img { border-radius: 50%; }
.cecp-me strong { display: block; color: #fff; font-size: 14px; }
.cecp-me small { display: block; font-size: 12px; color: rgba(255,255,255,.55); overflow: hidden; text-overflow: ellipsis; max-width: 160px; white-space: nowrap; }
.cecp-main { min-width: 0; display: flex; flex-direction: column; }
.cecp-top { display: flex; align-items: center; gap: 12px; padding: 18px 26px; background: #fff; border-bottom: 1px solid var(--cecp-line); flex-wrap: wrap; }
.cecp-title { font-size: 21px !important; flex: 1; display: flex; align-items: center; gap: 10px; flex-wrap: wrap; min-width: 0; }
.cecp-top__actions { display: flex; gap: 8px; flex-wrap: wrap; }
.cecp-menu { display: none; }
.cecp-content { padding: 24px 26px 40px; display: grid; gap: 20px; align-content: start; }

/* ---------- Cards & layout ---------- */
.cecp-card { background: #fff; border: 1px solid var(--cecp-line); border-radius: var(--cecp-radius); padding: 20px 22px; box-shadow: var(--cecp-shadow); min-width: 0; }
.cecp-card + .cecp-card { margin-top: 0; }
.cecp-card--accent { border: 2px solid var(--cecp-teal); }
.cecp-card__title { font-size: 16px !important; margin-bottom: 14px !important; display: flex; align-items: center; gap: 8px; }
.cecp-card__head { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; margin-bottom: 12px; flex-wrap: wrap; }
.cecp-card__head .cecp-card__title { margin-bottom: 0 !important; }
.cecp-cols { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; align-items: start; }
.cecp-cols--wide { grid-template-columns: minmax(0, 1fr) 340px; }
.cecp-cols > div { display: grid; gap: 20px; align-content: start; min-width: 0; }
.cecp-cols--flush { gap: 20px; }
.cecp-prose { white-space: normal; color: var(--cecp-text); }
.cecp-alert { display: flex; gap: 10px; align-items: center; padding: 12px 16px; border-radius: 12px; font-weight: 500; }
.cecp-alert--ok { background: #E3F5EE; color: #12704C; }
.cecp-alert--info { background: #E2F3F3; color: #0A5E5E; }
.cecp-alert--warn { background: #FDF3DC; color: #7A5200; }
.cecp-callout { display: flex; gap: 12px; align-items: flex-start; background: var(--cecp-sand); padding: 14px 16px; border-radius: 12px; }
.cecp-callout p { margin: 0; }
.cecp-callout .cecp-i { color: var(--cecp-coral); margin-top: 2px; }

/* Stats */
.cecp-stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 14px; }
.cecp-stat { display: grid; gap: 4px; padding: 18px; border-radius: var(--cecp-radius); background: #fff; border: 1px solid var(--cecp-line); text-decoration: none; color: inherit; box-shadow: var(--cecp-shadow); transition: transform .15s; }
a.cecp-stat:hover { transform: translateY(-2px); }
.cecp-stat__label { font-size: 13px; color: var(--cecp-muted); font-weight: 500; }
.cecp-stat__value { font: 800 24px/1.2 "Plus Jakarta Sans", Inter, sans-serif; color: var(--cecp-ink); }
.cecp-stat--teal { background: linear-gradient(135deg, var(--cecp-navy), #12305A); border: 0; }
.cecp-stat--teal .cecp-stat__label { color: rgba(255,255,255,.7); }
.cecp-stat--teal .cecp-stat__value { color: #fff; }
.cecp-stat--coral { border-color: #FBD3CB; background: #FFF6F4; }
.cecp-stat--coral .cecp-stat__value { color: #C1462F; }
.cecp-queues { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 10px; }
.cecp-queue { display: flex; gap: 10px; align-items: center; padding: 12px 14px; background: #fff; border: 1px solid var(--cecp-line); border-radius: 12px; text-decoration: none; color: var(--cecp-text); font-size: 13px; }
.cecp-queue strong { font: 800 20px/1 "Plus Jakarta Sans", sans-serif; color: var(--cecp-muted); }
.cecp-queue.has-items { border-color: var(--cecp-coral); background: #FFF8F6; }
.cecp-queue.has-items strong { color: var(--cecp-coral); }

/* Bars */
.cecp-bars { display: grid; grid-template-columns: repeat(6, 1fr); gap: 10px; align-items: end; height: 200px; }
.cecp-bars__col { display: grid; grid-template-rows: auto 1fr auto; height: 100%; text-align: center; gap: 4px; }
.cecp-bars__bar { align-self: end; background: linear-gradient(180deg, var(--cecp-lagoon), var(--cecp-teal)); border-radius: 6px 6px 2px 2px; min-height: 3px; }
.cecp-bars__val { font-size: 11px; color: var(--cecp-muted); }
.cecp-bars__label { font-size: 12px; font-weight: 600; }
.cecp-kv { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.cecp-kv li { display: flex; justify-content: space-between; align-items: center; }
.cecp-kv a { text-decoration: none; }

/* Todo / lists / timeline */
.cecp-todo { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.cecp-todo a { display: flex; align-items: center; gap: 10px; padding: 12px 14px; border-radius: 10px; background: var(--cecp-soft); color: var(--cecp-ink); text-decoration: none; font-weight: 500; }
.cecp-todo a:hover { background: #E8F5F5; }
.cecp-todo .is-overdue a { background: #FFF1EE; }
.cecp-todo span:nth-child(2) { flex: 1; }
.cecp-arrow { color: var(--cecp-teal); }
.cecp-list { list-style: none; padding: 0; margin: 0; display: grid; gap: 8px; }
.cecp-timeline { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; position: relative; }
.cecp-timeline li { display: grid; grid-template-columns: 14px 1fr; gap: 10px; font-size: 13.5px; }
.cecp-timeline strong { text-transform: capitalize; color: var(--cecp-ink); }
.cecp-timeline__dot { width: 10px; height: 10px; border-radius: 50%; background: var(--cecp-teal); margin-top: 5px; box-shadow: 0 0 0 3px #E2F3F3; }
.cecp-timeline__details { color: var(--cecp-muted); font-size: 13px; }
.cecp-dl { margin: 0; display: grid; gap: 8px; }
.cecp-dl > div { display: flex; justify-content: space-between; gap: 12px; border-bottom: 1px dashed var(--cecp-line); padding-bottom: 6px; }
.cecp-dl dt { color: var(--cecp-muted); text-transform: capitalize; }
.cecp-dl dd { margin: 0; font-weight: 600; text-align: right; color: var(--cecp-ink); }
.cecp-dl--inline { display: flex; flex-wrap: wrap; gap: 8px 22px; }
.cecp-dl--inline > div { display: block; border: 0; padding: 0; }
.cecp-dl--inline dd { text-align: left; }

/* Filters / tabs */
.cecp-filters { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; justify-content: space-between; }
.cecp-pills, .cecp-tabs { display: flex; flex-wrap: wrap; gap: 6px; }
.cecp-pill, .cecp-tab { padding: 6px 12px; border-radius: 999px; background: #fff; border: 1px solid var(--cecp-line); color: var(--cecp-text) !important; text-decoration: none; font-size: 13px; font-weight: 600; }
.cecp-pill.is-active, .cecp-tab.is-active { background: var(--cecp-navy); border-color: var(--cecp-navy); color: #fff !important; }
.cecp-search input { min-width: 240px; border-radius: 999px !important; }

/* Tables */
.cecp-table-wrap { overflow-x: auto; border: 1px solid var(--cecp-line); border-radius: 12px; background: #fff; }
.cecp-table { width: 100%; border-collapse: collapse; font-size: 14px; }
.cecp-table th { text-align: left; font-size: 11.5px; letter-spacing: .06em; text-transform: uppercase; color: var(--cecp-muted); background: var(--cecp-soft); padding: 10px 14px; font-weight: 700; white-space: nowrap; }
.cecp-table td { padding: 12px 14px; border-top: 1px solid var(--cecp-line); vertical-align: top; }
.cecp-table tr[data-href] { cursor: pointer; }
.cecp-table tbody tr:hover td { background: #FAFCFD; }
.cecp-table code, .cecp-table .cecp-nowrap { white-space: nowrap; }
.cecp-table .num { text-align: right; white-space: nowrap; font-variant-numeric: tabular-nums; }
.cecp-table tfoot td { border-top: 1px solid var(--cecp-line); background: #FBFCFD; }
.cecp-table tfoot td:first-child { text-align: right; color: var(--cecp-muted); }
.cecp-total td { font-weight: 800; font-size: 16px; color: var(--cecp-navy) !important; }
.cecp-doc-type { display: inline-block; font-size: 10px; text-transform: uppercase; letter-spacing: .08em; padding: 2px 6px; border-radius: 4px; background: var(--cecp-soft); color: var(--cecp-muted); font-weight: 700; margin-right: 4px; }
.cecp-doc-type--invoice { background: #FFF1EE; color: #B44530; }
.cecp-doc-type--estimate { background: #E2F3F3; color: #0A6A6A; }
.cecp-doc__head { display: flex; justify-content: space-between; gap: 20px; flex-wrap: wrap; margin-bottom: 16px; }
.cecp-doc__head h2 { font-size: 20px !important; margin-bottom: 4px !important; }
.cecp-notes { white-space: normal; background: var(--cecp-sand); padding: 14px 16px; border-radius: 10px; margin-top: 16px; }
.cecp-terms { font-size: 12.5px; color: var(--cecp-muted); margin-top: 16px; }

/* Projects */
.cecp-project-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 14px; }
.cecp-project { display: grid; gap: 10px; padding: 16px; border-radius: 12px; border: 1px solid var(--cecp-line); background: #fff; text-decoration: none; color: inherit; transition: box-shadow .15s, transform .15s; }
.cecp-project:hover { box-shadow: var(--cecp-shadow); transform: translateY(-2px); }
.cecp-project__head { display: flex; justify-content: space-between; gap: 8px; align-items: flex-start; }
.cecp-project__head h3 { font-size: 15.5px !important; }
.cecp-project__meta { display: flex; justify-content: space-between; font-size: 12.5px; color: var(--cecp-muted); }
.cecp-project p { margin: 0; }
.cecp-progress { height: 8px; background: #EAF0F5; border-radius: 999px; overflow: hidden; }
.cecp-progress span { display: block; height: 100%; background: linear-gradient(90deg, var(--cecp-teal), var(--cecp-lagoon)); border-radius: inherit; transition: width .4s; }
.cecp-project-hero .cecp-progress { height: 10px; margin: 10px 0 6px; }

/* Uploads / artefacts */
.cecp-upload { display: grid; gap: 10px; margin-bottom: 18px; }
.cecp-upload__fields { display: grid; grid-template-columns: 1fr 180px auto; gap: 10px; }
.cecp-drop { display: flex !important; align-items: center; gap: 12px !important; padding: 16px; border: 2px dashed #C9D6E2; border-radius: 12px; background: var(--cecp-soft); cursor: pointer; font-weight: 500 !important; color: var(--cecp-text) !important; position: relative; }
.cecp-drop:hover, .cecp-drop:focus-within { border-color: var(--cecp-teal); background: #EEF8F8; }
.cecp-drop .cecp-i { color: var(--cecp-teal); width: 26px; height: 26px; }
.cecp-drop input[type=file] { position: absolute; inset: 0; opacity: 0; cursor: pointer; }
.cecp-artefacts { display: grid; gap: 12px; }
.cecp-artefact { display: grid; grid-template-columns: 96px 1fr; gap: 14px; padding: 12px; border: 1px solid var(--cecp-line); border-radius: 12px; }
.cecp-artefact__head { display: flex; gap: 8px; justify-content: space-between; align-items: flex-start; }
.cecp-artefact__head h3 { font-size: 15px !important; }
.cecp-artefact p { margin: 4px 0; font-size: 12.5px; }
.cecp-artefact__actions { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }
.cecp-thumb { display: grid; place-items: center; width: 96px; height: 96px; border-radius: 10px; background: var(--cecp-soft) repeating-conic-gradient(#EEF2F6 0 25%, #fff 0 50%) 50%/16px 16px; overflow: hidden; text-decoration: none; color: var(--cecp-muted); border: 1px solid var(--cecp-line); }
.cecp-thumb img { width: 100%; height: 100%; object-fit: contain; }
.cecp-thumb--doc { background: #F0F4F8; gap: 2px; font-size: 11px; font-weight: 700; }
.cecp-thumb--doc .cecp-i { width: 28px; height: 28px; }
.cecp-feedback { margin: 8px 0 0; padding: 8px 12px; border-left: 3px solid var(--cecp-coral); background: #FFF6F4; border-radius: 0 8px 8px 0; font-size: 13.5px; }
.cecp-feedback cite { display: block; font-size: 12px; color: var(--cecp-muted); font-style: normal; margin-top: 4px; }

/* Quote form */
.cecp-svc-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 10px; }
.cecp-svc { display: block !important; position: relative; cursor: pointer; }
.cecp-svc input { position: absolute; opacity: 0; }
.cecp-svc__box { display: grid; gap: 4px; padding: 14px; height: 100%; border: 1.5px solid var(--cecp-line); border-radius: 12px; background: #fff; font-weight: 400; transition: border-color .15s, box-shadow .15s; }
.cecp-svc__box strong { color: var(--cecp-ink); font-size: 14.5px; }
.cecp-svc__box small { color: var(--cecp-muted); font-size: 12.5px; }
.cecp-svc__box em { font-style: normal; font-weight: 700; color: var(--cecp-teal); font-size: 13px; }
.cecp-svc input:checked + .cecp-svc__box { border-color: var(--cecp-teal); box-shadow: 0 0 0 3px rgba(14,140,140,.15); background: #F4FBFB; }
.cecp-svc input:focus-visible + .cecp-svc__box { outline: 3px solid var(--cecp-lagoon); outline-offset: 2px; }

/* Payment */
.cecp-gateways { display: grid; gap: 10px; margin-bottom: 14px; }
.cecp-gw { display: block; cursor: pointer; position: relative; }
.cecp-gw input { position: absolute; opacity: 0; }
.cecp-gw__box { display: flex; gap: 12px; align-items: flex-start; padding: 14px; border: 1.5px solid var(--cecp-line); border-radius: 12px; }
.cecp-gw__box > .cecp-i { color: var(--cecp-teal); width: 24px; height: 24px; }
.cecp-gw__box strong { display: block; color: var(--cecp-ink); }
.cecp-gw__box small { display: block; color: var(--cecp-muted); }
.cecp-gw input:checked + .cecp-gw__box { border-color: var(--cecp-teal); background: #F4FBFB; box-shadow: 0 0 0 3px rgba(14,140,140,.12); }
.cecp-gw input:focus-visible + .cecp-gw__box { outline: 3px solid var(--cecp-lagoon); }
.cecp-cards { display: flex; gap: 6px; margin-top: 6px; }
.cecp-cardmark { font-family: inherit; font-weight: 800; font-size: 10.5px; line-height: 1; letter-spacing: .04em; padding: 4px 7px; border-radius: 4px; border: 1px solid var(--cecp-line); color: var(--cecp-navy); background: #fff; }
.cecp-bank { margin-top: 18px; padding: 16px; border-radius: 12px; background: var(--cecp-soft); display: grid; gap: 12px; }
.cecp-bank h3 { font-size: 15px !important; display: flex; gap: 8px; align-items: center; }
.cecp-ref { font-size: 15px; font-weight: 700; color: var(--cecp-navy); background: #fff; padding: 2px 8px; border-radius: 6px; }
.cecp-decide { border: 2px solid var(--cecp-teal); background: linear-gradient(180deg, #F4FBFB, #fff); }

/* Orders */
.cecp-orders { display: grid; gap: 14px; }
.cecp-order__head { display: flex; justify-content: space-between; gap: 12px; }
.cecp-order__total { font: 800 18px/1.3 "Plus Jakarta Sans", sans-serif; color: var(--cecp-navy); margin-top: 4px; }
.cecp-order__items { list-style: none; margin: 12px 0; padding: 0; border-top: 1px solid var(--cecp-line); }
.cecp-order__items li { display: flex; justify-content: space-between; gap: 12px; padding: 8px 0; border-bottom: 1px solid var(--cecp-line); font-size: 14px; }
.cecp-order footer { margin-top: 8px; }

/* Threads */
.cecp-conv { display: grid; gap: 14px; }
.cecp-thread { display: grid; grid-template-columns: minmax(0, 1fr); gap: 12px; max-height: 60vh; overflow-y: auto; padding: 4px; }
.cecp-msg { max-width: 82%; padding: 12px 14px; border-radius: 14px 14px 14px 4px; background: var(--cecp-soft); border: 1px solid var(--cecp-line); }
.cecp-msg.is-mine { margin-left: auto; background: #E8F5F5; border-color: #CBE7E7; border-radius: 14px 14px 4px 14px; }
.cecp-msg--ai { background: linear-gradient(135deg, #F4FBFB, #F4F2FF); }
.cecp-msg--system { max-width: 100%; text-align: center; background: transparent; border: 1px dashed var(--cecp-line); font-size: 13px; color: var(--cecp-muted); }
.cecp-msg.is-internal { background: #FFF8E6; border-color: #F3DFA7; }
.cecp-msg__meta { font-size: 12px; color: var(--cecp-muted); margin-bottom: 4px; display: flex; gap: 6px; flex-wrap: wrap; align-items: center; }
.cecp-msg__meta strong { color: var(--cecp-ink); }
.cecp-msg__body { word-wrap: break-word; }
.cecp-msg__file { display: flex; align-items: center; gap: 10px; margin-top: 8px; font-size: 13px; }
.cecp-msg__file .cecp-thumb { width: 56px; height: 56px; }
.cecp-msg__actions { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }
.cecp-msg__actions .cecp-btn { white-space: normal; text-align: left; }
.cecp-msg { min-width: 0; overflow-wrap: anywhere; }
.cecp-reply { display: grid; gap: 8px; border-top: 1px solid var(--cecp-line); padding-top: 14px; }
.cecp-reply__bar { display: flex; gap: 10px; align-items: center; justify-content: flex-end; flex-wrap: wrap; }
.cecp-attach { display: inline-flex !important; align-items: center; gap: 6px !important; color: var(--cecp-muted) !important; cursor: pointer; position: relative; margin-right: auto; font-weight: 600; font-size: 13px; }
.cecp-attach input { position: absolute; inset: 0; opacity: 0; cursor: pointer; }

/* Split inbox */
.cecp-split { display: grid; grid-template-columns: 300px minmax(0, 1fr); gap: 20px; align-items: start; }
.cecp-inbox { background: #fff; border: 1px solid var(--cecp-line); border-radius: var(--cecp-radius); max-height: 75vh; overflow-y: auto; }
.cecp-inbox__item { display: flex; gap: 10px; padding: 12px 14px; border-top: 1px solid var(--cecp-line); text-decoration: none; color: inherit; }
.cecp-inbox__item img { border-radius: 50%; flex: none; }
.cecp-inbox__item small { display: block; color: var(--cecp-muted); font-size: 12.5px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 210px; }
.cecp-inbox__item strong { color: var(--cecp-ink); font-size: 14px; }
.cecp-inbox__item:hover { background: var(--cecp-soft); }
.cecp-inbox__item.is-active { background: #E8F5F5; box-shadow: inset 3px 0 0 var(--cecp-teal); }

/* Insights */
.cecp-insights { background: #fff; border: 1px solid var(--cecp-line); border-radius: var(--cecp-radius); padding: 18px; display: grid; gap: 10px; box-shadow: var(--cecp-shadow); align-content: start; }
.cecp-insights h3 { font-size: 16px !important; display: flex; gap: 6px; align-items: center; }
.cecp-insights h4 { margin: 6px 0 0; font-size: 12px; text-transform: uppercase; letter-spacing: .08em; color: var(--cecp-muted); }
.cecp-insights p { margin: 0; }

/* Team */
.cecp-team { list-style: none; margin: 0 0 12px; padding: 0; display: grid; gap: 10px; }
.cecp-team li { display: flex; gap: 10px; align-items: center; }
.cecp-team img { border-radius: 50%; }
.cecp-team div { flex: 1; min-width: 0; }
.cecp-team small { display: block; color: var(--cecp-muted); font-size: 12.5px; }
.cecp-team select { width: auto !important; }

/* Empty */
.cecp-empty { text-align: center; padding: 40px 20px; display: grid; gap: 8px; justify-items: center; }
.cecp-empty__icon { width: 56px; height: 56px; display: grid; place-items: center; border-radius: 50%; background: #E8F5F5; color: var(--cecp-teal); }
.cecp-empty__icon .cecp-i { width: 26px; height: 26px; }
.cecp-empty h3 { font-size: 17px !important; }
.cecp-empty p { margin: 0; color: var(--cecp-muted); }

/* Auth */
.cecp-auth { display: grid; grid-template-columns: minmax(0, 480px) 1fr; border-radius: 20px; overflow: hidden; background: #fff; border: 1px solid var(--cecp-line); box-shadow: var(--cecp-shadow); max-width: 1040px; margin: 0 auto; }
.cecp-auth__card { padding: 40px; display: grid; gap: 14px; align-content: start; }
.cecp-auth__card h1 { font-size: 26px !important; }
.cecp-auth__card p { margin: 0; }
.cecp-auth__brand { display: flex; gap: 10px; align-items: center; font-weight: 700; color: var(--cecp-navy); margin-bottom: 8px; }
.cecp-auth__aside { background: radial-gradient(500px 300px at 100% 0, rgba(46,196,182,.35), transparent 60%), linear-gradient(160deg, var(--cecp-navy), #12305A); color: rgba(255,255,255,.85); padding: 40px; display: grid; align-content: center; gap: 16px; }
.cecp-auth__aside h2 { color: #fff !important; font-size: 24px !important; }
.cecp-auth__aside ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; }
.cecp-auth__aside li { display: flex; gap: 10px; align-items: center; }
.cecp-auth__aside .cecp-i { color: var(--cecp-lagoon); }

/* Modal */
.cecp-modal { position: fixed; inset: 0; z-index: 100000; display: grid; place-items: center; padding: 16px; }
.cecp-modal__backdrop { position: absolute; inset: 0; background: rgba(11,31,58,.55); backdrop-filter: blur(2px); }
.cecp-modal__dialog { position: relative; background: #fff; border-radius: 16px; width: min(560px, 100%); max-height: calc(100vh - 32px); overflow: auto; box-shadow: 0 30px 60px -20px rgba(11,31,58,.45); animation: cecp-pop .18s ease-out; }
.cecp-modal__dialog--wide { width: min(940px, 100%); }
@keyframes cecp-pop { from { transform: translateY(8px) scale(.98); opacity: 0; } }
.cecp-modal__head { display: flex; justify-content: space-between; align-items: center; padding: 16px 20px; border-bottom: 1px solid var(--cecp-line); position: sticky; top: 0; background: #fff; z-index: 1; }
.cecp-modal__head h2 { font-size: 18px; }
.cecp-modal__body { padding: 20px; }
.cecp-modal-open { overflow: hidden; }
.cecp-edit-table td { padding: 8px; }
.cecp-edit-table td:first-child { min-width: 280px; display: grid; gap: 6px; }
.cecp-edit-table input { min-width: 80px; }
.cecp-editor__total { text-align: right; font-size: 16px; margin: 0; }
.cecp-editor__total strong { font-size: 20px; color: var(--cecp-navy); }

/* Toasts */
.cecp-toasts { position: fixed; bottom: 20px; left: 50%; transform: translateX(-50%); z-index: 100001; display: grid; gap: 8px; width: min(420px, calc(100% - 32px)); }
.cecp-toast { padding: 12px 16px; border-radius: 12px; background: var(--cecp-navy); color: #fff; box-shadow: 0 10px 30px -10px rgba(0,0,0,.4); font-weight: 500; transition: opacity .3s, transform .3s; }
.cecp-toast--bad { background: #A32B2B; }
.cecp-toast--warn { background: #8A5D00; }
.cecp-toast.is-out { opacity: 0; transform: translateY(8px); }

/* Contact form (theme) */
.cecp-contact { max-width: 720px; }
.cecp-contact .cecp-btn { justify-self: start; }

/* wp-admin tweaks */
.cecp-admin-wrap { margin: 0 20px 0 0; }
.cecp-app--admin .cecp-content { padding: 20px; }

/* ---------- Responsive ---------- */
@media (max-width: 1180px) {
	.cecp-cols--wide { grid-template-columns: 1fr; }
	.cecp-split { grid-template-columns: 1fr; }
	.cecp-inbox { max-height: 300px; }
}
@media (max-width: 900px) {
	.cecp-shell { grid-template-columns: 1fr; border-radius: 0; border-left: 0; border-right: 0; }
	.cecp-side { position: fixed; inset: 0 auto 0 0; width: 280px; z-index: 99999; transform: translateX(-100%); transition: transform .25s; overflow-y: auto; }
	.cecp-shell.is-nav-open .cecp-side { transform: none; box-shadow: 0 0 0 100vw rgba(11,31,58,.45); }
	.cecp-menu { display: inline-grid; }
	.cecp-cols, .cecp-auth { grid-template-columns: 1fr; }
	.cecp-auth__aside { display: none; }
	.cecp-content { padding: 16px; }
	.cecp-top { padding: 14px 16px; }
}
@media (max-width: 600px) {
	.cecp-grid-2, .cecp-grid-3, .cecp-upload__fields { grid-template-columns: 1fr; }
	.cecp-artefact { grid-template-columns: 64px 1fr; }
	.cecp-thumb { width: 64px; height: 64px; }
	.cecp-msg { max-width: 94%; }
	.cecp-auth__card { padding: 24px; }
	.cecp-search input { min-width: 0; }
	.cecp-title { font-size: 18px !important; }
	.cecp-bars { height: 160px; gap: 6px; }
}
@media (prefers-reduced-motion: reduce) {
	.cecp-app *, .cecp-modal * { animation: none !important; transition: none !important; }
}
.cecp-form__note { margin: 0; font-size: 12.5px; color: var(--cecp-muted); }
.cecp-privacy-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; }
