/* ---------- Design tokens ---------- */
.icp-dashboard, .icp-auth-form, .icp-signup-upsell, .icp-guest {
	--icp-primary: #1a73e8;
	--icp-primary-dark: #0f5bc4;
	--icp-text: #1d2327;
	--icp-muted: #6b7280;
	--icp-border: #e5e7eb;
	--icp-bg: #f7f8fa;
	--icp-card: #ffffff;
	--icp-radius: 10px;
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
	color: var(--icp-text);
}

/* ---------- Auth screens ---------- */
.icp-auth-form { max-width: 380px; margin: 40px auto; background: var(--icp-card); border: 1px solid var(--icp-border); border-radius: var(--icp-radius); padding: 32px; box-shadow: 0 1px 3px rgba(0,0,0,0.04); }
.icp-auth-form label { display: block; margin-bottom: 14px; font-weight: 600; font-size: 14px; }
.icp-auth-form input { width: 100%; padding: 10px 12px; margin-top: 6px; font-weight: normal; border: 1px solid var(--icp-border); border-radius: 6px; box-sizing: border-box; font-size: 14px; }
.icp-auth-form input:focus { outline: none; border-color: var(--icp-primary); box-shadow: 0 0 0 3px rgba(26,115,232,0.12); }
.icp-auth-form button { padding: 11px 22px; cursor: pointer; background: var(--icp-primary); color: #fff; border: none; border-radius: 6px; font-weight: 600; font-size: 14px; width: 100%; transition: background .15s ease; }
.icp-auth-form button:hover { background: var(--icp-primary-dark); }
.icp-error { color: #c0392b; background: #fdecea; padding: 10px 12px; border-radius: 6px; font-size: 14px; }
.icp-notice { color: #8a6d3b; background: #fcf8e3; padding: 10px 12px; border-radius: 6px; font-size: 14px; }
.icp-credit-banner { color: #065f46; background: #d1fae5; padding: 12px 16px; border-radius: 6px; font-size: 14px; margin-bottom: 16px; }

/* ---------- Dashboard shell ---------- */
.icp-dashboard { display: flex; align-items: flex-start; gap: 28px; max-width: 1100px; margin: 24px auto; }

.icp-sidebar { width: 240px; flex-shrink: 0; background: var(--icp-card); border: 1px solid var(--icp-border); border-radius: var(--icp-radius); overflow: hidden; position: sticky; top: 24px; }
.icp-account-card { display: flex; align-items: center; gap: 12px; padding: 18px 16px; border-bottom: 1px solid var(--icp-border); }
.icp-avatar { border-radius: 50%; flex-shrink: 0; }
.icp-account-card-name { display: flex; flex-direction: column; min-width: 0; }
.icp-account-card-name strong { font-size: 14px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.icp-account-card-name span { font-size: 12px; color: var(--icp-muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

.icp-sidenav { display: flex; flex-direction: column; padding: 8px; }
.icp-sidenav-link { display: flex; align-items: center; gap: 10px; padding: 10px 12px; border-radius: 8px; text-decoration: none; color: var(--icp-text); font-size: 14px; font-weight: 500; }
.icp-sidenav-link .dashicons { font-size: 18px; width: 18px; height: 18px; color: var(--icp-muted); }
.icp-sidenav-link:hover { background: var(--icp-bg); }
.icp-sidenav-link.active { background: rgba(26,115,232,0.1); color: var(--icp-primary); }
.icp-sidenav-link.active .dashicons { color: var(--icp-primary); }
.icp-sidenav-logout { margin-top: 6px; border-top: 1px solid var(--icp-border); border-radius: 0; padding-top: 14px; color: var(--icp-muted); }

.icp-main { flex: 1; min-width: 0; background: var(--icp-card); border: 1px solid var(--icp-border); border-radius: var(--icp-radius); padding: 28px 32px; }
.icp-section-title { font-size: 22px; margin: 0 0 20px; padding-bottom: 16px; border-bottom: 1px solid var(--icp-border); }
.icp-subhead { font-size: 16px; margin: 28px 0 12px; }

/* ---------- Overview / stat cards ---------- */
.icp-stat-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; margin-bottom: 24px; }
.icp-stat-card { background: var(--icp-bg); border: 1px solid var(--icp-border); border-radius: var(--icp-radius); padding: 18px; display: flex; flex-direction: column; gap: 4px; }
.icp-stat-card-alert { background: #fff4f2; border-color: #ffd7cf; }
.icp-stat-number { font-size: 26px; font-weight: 700; line-height: 1; }
.icp-stat-label { font-size: 13px; color: var(--icp-muted); }

.icp-quick-links { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; margin-bottom: 8px; }
.icp-quick-link { display: flex; flex-direction: column; align-items: center; gap: 8px; text-decoration: none; color: var(--icp-text); background: var(--icp-card); border: 1px solid var(--icp-border); border-radius: var(--icp-radius); padding: 18px 10px; font-size: 13px; font-weight: 600; text-align: center; transition: border-color .15s ease, transform .1s ease; }
.icp-quick-link:hover { border-color: var(--icp-primary); transform: translateY(-1px); }
.icp-quick-link .dashicons { font-size: 22px; width: 22px; height: 22px; color: var(--icp-primary); }

/* ---------- Tables ---------- */
.icp-table { width: 100%; border-collapse: collapse; font-size: 14px; }
.icp-table th { text-align: left; padding: 10px 12px; border-bottom: 2px solid var(--icp-border); color: var(--icp-muted); font-size: 12px; text-transform: uppercase; letter-spacing: .03em; }
.icp-table td { text-align: left; padding: 12px; border-bottom: 1px solid var(--icp-border); }
.icp-table tbody tr:hover { background: var(--icp-bg); }

/* ---------- Status badges ---------- */
.icp-badge { display: inline-block; padding: 4px 10px; border-radius: 999px; font-size: 12px; font-weight: 600; white-space: nowrap; }
.icp-badge-default  { background: #eef0f2; color: #4b5563; }
.icp-badge-pending  { background: #fef3c7; color: #92400e; }
.icp-badge-progress { background: #dbeafe; color: #1e40af; }
.icp-badge-success  { background: #d1fae5; color: #065f46; }
.icp-badge-alert    { background: #fee2e2; color: #991b1b; }

/* ---------- Empty states ---------- */
.icp-empty-state { text-align: center; padding: 48px 20px; color: var(--icp-muted); }
.icp-empty-state .dashicons { font-size: 40px; width: 40px; height: 40px; color: #cbd5e1; margin-bottom: 12px; }
.icp-empty-state p { margin: 4px auto; max-width: 420px; }
.icp-empty-state strong { color: var(--icp-text); font-size: 15px; }

/* ---------- Forms inside sections ---------- */
.icp-profile-form label { display: block; margin-bottom: 14px; font-size: 14px; font-weight: 600; }
.icp-profile-form input { width: 100%; max-width: 340px; padding: 9px 10px; margin-top: 6px; border: 1px solid var(--icp-border); border-radius: 6px; box-sizing: border-box; font-weight: normal; }
.icp-profile-form button { padding: 10px 20px; cursor: pointer; background: var(--icp-primary); color: #fff; border: none; border-radius: 6px; font-weight: 600; }
.icp-profile-form button:hover { background: var(--icp-primary-dark); }
.icp-save-message { margin-left: 10px; font-size: 13px; color: var(--icp-muted); }

.icp-signup-upsell { max-width: 480px; margin: 20px auto 0; text-align: left; }
.icp-signup-fields { display: flex; gap: 8px; }
.icp-signup-fields input { flex: 1; padding: 8px; border: 1px solid var(--icp-border); border-radius: 6px; }
.icp-signup-fields button { padding: 8px 16px; cursor: pointer; background: var(--icp-primary); color: #fff; border: none; border-radius: 6px; font-weight: 600; }

.icp-shipping-purchase label { display: block; margin-bottom: 10px; font-weight: 600; font-size: 14px; }
.icp-shipping-purchase input { padding: 8px; margin-right: 8px; border: 1px solid var(--icp-border); border-radius: 6px; }
.icp-ship-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px 20px; margin-bottom: 16px; }
.icp-ship-grid label { font-size: 13px; font-weight: 600; }
.icp-ship-grid input { width: 100%; padding: 8px; font-weight: normal; margin-top: 4px; box-sizing: border-box; border: 1px solid var(--icp-border); border-radius: 6px; }

.icp-dashboard button, .icp-signup-upsell button {
	background: #1a73e8; color: #fff; border: none; border-radius: 6px; padding: 9px 16px; font-weight: 600; cursor: pointer; font-size: 14px;
}
.icp-dashboard button:hover, .icp-signup-upsell button:hover { background: #0f5bc4; }
.icp-dashboard button:disabled { opacity: .6; cursor: default; }

.icp-detail-table { width: 100%; }
.icp-detail-table th { text-align: left; padding: 10px 16px 10px 0; color: var(--icp-muted); font-size: 12px; font-weight: 600; text-transform: uppercase; letter-spacing: .03em; white-space: nowrap; vertical-align: top; border-bottom: 1px solid var(--icp-border); width: 220px; }
.icp-detail-table td { padding: 10px 0; font-size: 14px; border-bottom: 1px solid var(--icp-border); word-break: break-word; }

.icp-detail-card { background: var(--icp-bg); border: 1px solid var(--icp-border); border-radius: var(--icp-radius); padding: 20px 24px; margin-bottom: 20px; }
.icp-detail-card h3 { margin: 0 0 16px; font-size: 12px; text-transform: uppercase; letter-spacing: .05em; color: var(--icp-muted); font-weight: 700; }
.icp-device-heading { font-size: 18px; margin: 0 0 20px; }
.icp-field-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px 24px; }
.icp-field { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.icp-field-label { font-size: 12px; color: var(--icp-muted); }
.icp-field-value { font-size: 14px; font-weight: 600; word-break: break-word; }

@media (max-width: 900px) {
	.icp-field-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 500px) {
	.icp-field-grid { grid-template-columns: 1fr; }
}

.icp-ticket-card { background: var(--icp-bg); border: 1px solid var(--icp-border); border-radius: var(--icp-radius); padding: 16px 20px; margin-bottom: 14px; }
.icp-ticket-card h4 { margin: 0 0 10px; font-size: 14px; }
.icp-ticket-card .icp-detail-table th { width: 180px; }

.icp-view-link { color: var(--icp-primary); font-weight: 600; text-decoration: none; font-size: 13px; }
.icp-view-link:hover { text-decoration: underline; }
.icp-back-link { display: inline-block; margin-bottom: 16px; color: var(--icp-muted); text-decoration: none; font-size: 13px; font-weight: 600; }
.icp-back-link:hover { color: var(--icp-primary); }
.icp-muted { color: var(--icp-muted); font-size: 13px; }

.icp-quote-detail-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; margin-bottom: 20px; }
.icp-quote-detail-header h2 { margin: 0 0 4px; font-size: 19px; }
.icp-quote-items td { vertical-align: top; }
.icp-quote-labor-row td { color: var(--icp-muted); background: var(--icp-bg); font-size: 13px; }

.icp-quote-totals { max-width: 320px; margin: 20px 0 0 auto; }
.icp-quote-totals > div { display: flex; justify-content: space-between; padding: 6px 0; font-size: 14px; border-bottom: 1px solid var(--icp-border); }
.icp-quote-total-row { font-weight: 700; font-size: 16px; border-bottom: none !important; border-top: 2px solid var(--icp-text); margin-top: 4px; padding-top: 10px !important; }

.icp-dashboard .icp-download-pdf-btn { display: inline-block; margin-top: 24px; background: #1a73e8; color: #fff; text-decoration: none; padding: 10px 18px; border-radius: 6px; font-weight: 600; font-size: 14px; }
.icp-dashboard .icp-download-pdf-btn:hover { background: #0f5bc4; }

/* ---------- New: account type badge, search, Q&A, decisions, emails ---------- */
.icp-account-type-badge { margin-top: 4px; width: fit-content; }
.icp-notice-success { color: #065f46; background: #d1fae5; }

.icp-order-search { display: flex; gap: 8px; align-items: center; margin-bottom: 16px; }
.icp-order-search input[type="text"] { flex: 1; max-width: 340px; padding: 8px 10px; border: 1px solid var(--icp-border); border-radius: 6px; }

.icp-quote-decision { margin-top: 20px; display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.icp-quote-disapprove-btn { background: #fff !important; color: var(--icp-text) !important; border: 1px solid var(--icp-border) !important; }
.icp-quote-decision-message, .icp-add-email-message, .icp-add-dentist-message, .icp-ask-message { font-size: 13px; color: var(--icp-muted); margin-left: 4px; }

.icp-ask-question textarea { width: 100%; box-sizing: border-box; padding: 10px; border: 1px solid var(--icp-border); border-radius: 6px; font-family: inherit; margin-bottom: 10px; }

.icp-email-list { list-style: none; margin: 0 0 16px; padding: 0; }
.icp-email-list li { display: flex; align-items: center; gap: 10px; padding: 8px 0; border-bottom: 1px solid var(--icp-border); font-size: 14px; }
.icp-email-list button { padding: 4px 10px; font-size: 12px; background: #fff !important; color: #991b1b !important; border: 1px solid var(--icp-border) !important; }
.icp-add-email-form { display: flex; gap: 8px; align-items: center; max-width: 420px; }
.icp-add-email-form input { flex: 1; padding: 8px 10px; border: 1px solid var(--icp-border); border-radius: 6px; }

.icp-add-dentist { margin: 12px 0 24px; }
.icp-add-dentist summary { cursor: pointer; font-weight: 600; color: var(--icp-primary); margin-bottom: 12px; }

/* ---------- Responsive ---------- */
@media (max-width: 760px) {
	.icp-dashboard { flex-direction: column; margin: 12px; }
	.icp-sidebar { width: 100%; position: static; }
	.icp-sidenav { flex-direction: row; overflow-x: auto; }
	.icp-sidenav-link { flex-shrink: 0; }
	.icp-sidenav-logout { border-top: none; margin-top: 0; }
	.icp-main { padding: 20px; width: 100%; box-sizing: border-box; }
	.icp-stat-grid, .icp-quick-links { grid-template-columns: repeat(2, 1fr); }
}


/* ---------- Guest order status (no login) ---------- */
.icp-guest { max-width: 760px; margin: 24px auto; }
.icp-guest * { box-sizing: border-box; }
.icp-guest-card { background: var(--icp-card); border: 1px solid var(--icp-border); border-radius: var(--icp-radius); padding: 28px; margin-bottom: 20px; box-shadow: 0 1px 3px rgba(0,0,0,0.04); }
.icp-guest-title { font-size: 24px; margin: 0 0 8px; line-height: 1.25; }
.icp-guest-lead { color: var(--icp-muted); margin: 0 0 18px; font-size: 15px; line-height: 1.5; }
.icp-guest-eyebrow { display: block; font-size: 12px; text-transform: uppercase; letter-spacing: .06em; color: var(--icp-muted); margin-bottom: 4px; }
.icp-guest-eyebrow-accent { color: var(--icp-primary); font-weight: 700; }
.icp-guest-form label { display: block; margin-bottom: 16px; font-weight: 600; font-size: 14px; }
.icp-guest-form input[type=email], .icp-guest-form input[type=text], .icp-guest-form input[type=password] { width: 100%; padding: 11px 12px; margin-top: 6px; font-weight: normal; border: 1px solid var(--icp-border); border-radius: 6px; font-size: 15px; background: #fff; }
.icp-guest-form input:focus { outline: none; border-color: var(--icp-primary); box-shadow: 0 0 0 3px rgba(26,115,232,0.12); }
.icp-guest-form input[readonly] { background: var(--icp-bg); color: var(--icp-text); }
.icp-guest-hp { position: absolute !important; left: -9999px !important; height: 0; overflow: hidden; }
.icp-guest-btn { display: inline-block; padding: 12px 26px; cursor: pointer; background: var(--icp-primary); color: #fff !important; border: none; border-radius: 6px; font-weight: 600; font-size: 15px; text-decoration: none; transition: background .15s ease; }
.icp-guest-btn:hover { background: var(--icp-primary-dark); }
.icp-guest-btn:disabled { opacity: .6; cursor: default; }
.icp-guest-btn-link { margin-top: 4px; }
.icp-guest-status-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 16px; flex-wrap: wrap; margin-bottom: 20px; padding-bottom: 16px; border-bottom: 1px solid var(--icp-border); }
.icp-guest-status-head h2 { margin: 0; font-size: 22px; }
.icp-guest-status .icp-badge { font-size: 14px; padding: 6px 14px; }
.icp-guest .icp-field-grid { grid-template-columns: repeat(2, 1fr); }
.icp-guest-signup { border-color: #bfdbfe; background: linear-gradient(180deg, #f5f9ff 0%, #ffffff 40%); }
.icp-benefits { list-style: none; counter-reset: icp-b; margin: 0 0 24px; padding: 0; }
.icp-benefits li { counter-increment: icp-b; display: flex; gap: 12px; align-items: flex-start; padding: 10px 0; border-bottom: 1px dashed var(--icp-border); font-size: 15px; line-height: 1.45; }
.icp-benefits li:last-child { border-bottom: none; }
.icp-benefits li::before { content: counter(icp-b); flex: 0 0 26px; height: 26px; border-radius: 50%; background: var(--icp-primary); color: #fff; font-size: 13px; font-weight: 700; display: flex; align-items: center; justify-content: center; margin-top: 1px; }
.icp-pw-wrap { position: relative; display: block; }
.icp-pw-wrap input { padding-right: 46px !important; }
.icp-pw-wrap .icp-eye { position: absolute; right: 4px; top: 50%; transform: translateY(-50%); margin-top: 3px; width: 38px; height: 38px; padding: 0; background: transparent; border: none; cursor: pointer; color: var(--icp-muted); border-radius: 6px; display: flex; align-items: center; justify-content: center; }
.icp-pw-wrap .icp-eye:hover, .icp-pw-wrap .icp-eye.on { color: var(--icp-primary); }
.icp-gs-hint { min-height: 20px; margin: -6px 0 14px; font-size: 13px; }
.icp-gs-hint.ok { color: #065f46; font-weight: 600; }
.icp-gs-hint.bad { color: #b45309; }
.icp-gs-msg { margin: 12px 0 0; padding: 10px 12px; border-radius: 6px; font-size: 14px; color: #c0392b; background: #fdecea; }
.icp-gs-msg.ok { color: #065f46; background: #d1fae5; }
.icp-guest-account-exists h3 { margin: 0 0 6px; }
@media (max-width: 600px) {
	.icp-guest-card { padding: 20px 16px; }
	.icp-guest .icp-field-grid { grid-template-columns: 1fr; }
	.icp-guest-btn { width: 100%; text-align: center; }
}

/* Guest page: devices & tickets */
.icp-guest-tickets .icp-guest-title { font-size: 20px; }
.icp-guest-ticket { margin-top: 16px; }
.icp-guest-ticket-head { display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; }
.icp-guest-ticket-head h3 { margin: 0; font-size: 17px; }
.icp-guest-ticket-name { margin: 4px 0 14px; color: var(--icp-muted); font-size: 14px; }
.icp-guest .icp-field-value a { color: var(--icp-primary); word-break: break-all; }
