/* CodeSolve 1.9.3 · Petrol & Creme */

/* Shared theme layer for public pages and the existing PHP portals. */
body{color-scheme:var(--theme-scheme);background:var(--cs-bg);color:var(--cs-text)}
.site-header,.site-header.scrolled,body.menu-open .site-header,.topbar{background:var(--theme-header);border-color:var(--cs-border)}
.site-footer,.footer{background:var(--cs-bg);color:var(--cs-subtle)}
.menu-panel,.user-dropdown,.notification-dropdown{background:var(--cs-surface);border-color:var(--cs-border-strong)}
.menu-nav>a,.submenu-toggle,.user-dropdown a{color:var(--cs-text)}
.menu-nav>a:hover,.menu-nav>a.active,.user-dropdown a:hover,.user-menu>a:hover{color:var(--cs-text);background:var(--theme-accent-soft)}
.desktop-nav a,.portal-nav{color:var(--cs-muted)}
.desktop-nav a:hover,.desktop-nav a[aria-current],.brand,.text-button{color:var(--cs-text)}
.desktop-nav a[aria-current]{box-shadow:0 2px var(--cs-accent)}
.brand-period,.eyebrow,.text-link,.table-action,.card-link,.portal-nav:hover,.text-button:hover,.text-link:hover{color:var(--theme-link)}
.solution-visual{background:radial-gradient(ellipse at 48% 40%,var(--theme-glow),transparent 60%),var(--theme-panel);border-color:var(--cs-border)}
.solution-grid{background-image:linear-gradient(var(--theme-grid) 1px,transparent 1px),linear-gradient(90deg,var(--theme-grid) 1px,transparent 1px)}
.solution-core{background:linear-gradient(135deg,var(--cs-surface-3),var(--cs-surface));border-color:var(--theme-accent-line);box-shadow:0 0 70px var(--theme-glow)}
.orbit-ring{border-color:var(--theme-accent-line)}.ring-two{border-color:var(--cs-border)}
.orbit-point,.point-two{background:var(--cs-accent);box-shadow:0 0 18px var(--theme-glow)}
.solution-node{background:var(--cs-surface);border-color:var(--cs-border-strong);color:var(--cs-text);box-shadow:var(--cs-shadow)}
.node-symbol{color:var(--theme-link)}
.solution-code{background:var(--theme-code);border-color:var(--cs-border-strong);box-shadow:var(--cs-shadow)}
.solution-code p{color:var(--cs-muted)}.solution-code b{color:var(--theme-link)}.solution-code em{color:var(--theme-string)}
.solution-caption,.solution-foot,.solution-code>div span,.solution-node small,.service-top .mono,.service-bottom{color:var(--cs-subtle)}
.solution-code>div{border-color:var(--cs-border)}.solution-code i{background:var(--cs-subtle)}
.process-section,.portal-section,.section-alt,.feature-band{background:var(--theme-band);border-color:var(--cs-border)}
.card,.service-card,.page-hero-card,.support-card,.trust-card,.contact-card,.form-card,.legal-card,.portal-feature-grid article,.case-study,.project-type-panel{background:var(--cs-surface);border-color:var(--cs-border);color:var(--cs-text)}
.card p,.service-card p,.support-card p,.trust-card p,.legal-card p,.legal-card li,.legal-card address{color:var(--cs-muted)}
.service-card:hover,.project-card:hover,.metric-link:hover,.case-study:hover{border-color:var(--cs-border-strong)}
.icon,.service-03 .icon,.portal-feature-grid article>span{color:var(--theme-link);background:var(--theme-accent-soft);border-color:var(--theme-accent-line)}
.service-bottom svg,.process-step>span{color:var(--theme-link)}
.tags span,.project-type-chip{color:var(--cs-muted);background:var(--theme-accent-soft);border-color:var(--cs-border)}
.cta-inner{background:radial-gradient(ellipse at 90% 60%,var(--theme-glow),transparent 55%),var(--cs-surface);border-color:var(--cs-border-strong)}
.cta p,.process-intro p:not(.eyebrow),.footer-col a,.footer-col address,.footer-intro p{color:var(--cs-muted)}
.footer-col h2,.footer-col a:hover,.footer-bottom a:hover{color:var(--cs-text)}
.button{background:var(--theme-button);border-color:transparent;color:var(--theme-on-button);box-shadow:none}
.button:hover,.button:focus-visible{background:var(--theme-button-hover);color:var(--theme-on-button);box-shadow:none}
.button-secondary,.button-secondary:hover,.button-secondary:focus-visible{color:var(--cs-text);background:var(--theme-accent-soft);border-color:var(--cs-border-strong);box-shadow:none}
.button-danger,.button-danger:hover,.button-danger:focus-visible{background:var(--theme-danger-button);color:#fff;border-color:transparent}
.button:disabled{background:var(--theme-button);color:var(--theme-on-button)}
input,textarea,select,.contact-form input,.contact-form textarea,.contact-form select,.task-upload-form input[type=file]{color-scheme:var(--theme-scheme);background:var(--theme-input);border-color:var(--cs-border-strong);color:var(--cs-text)}
input::placeholder,textarea::placeholder,.contact-form input::placeholder,.contact-form textarea::placeholder{color:var(--cs-subtle)}
input:focus,textarea:focus,select:focus,.contact-form input:focus,.contact-form textarea:focus,.contact-form select:focus{border-color:var(--cs-accent);box-shadow:0 0 0 3px var(--theme-accent-soft)}
.form-grid label,.filter-grid label,.task-submit-form label,.message-form label,.field-label,.contact-form label{color:var(--cs-text)}
.form-grid label small,.form-note,.char-count,.project-briefing-intro{color:var(--cs-subtle)}
.privacy-check{color:var(--cs-muted)!important}.privacy-check a,.legal-card a{color:var(--theme-link)}
.project-briefing,.project-briefing legend{border-color:var(--cs-border);color:var(--cs-text)}
.portal-sidebar{background:var(--theme-sidebar);border-color:var(--cs-border)}
.portal-nav a{color:var(--cs-muted)}.portal-nav a:hover{background:var(--theme-accent-soft);color:var(--cs-text)}
.portal-nav a[aria-current]{background:var(--theme-accent-soft);border-color:var(--theme-accent-line);color:var(--theme-link)}
.portal-nav a[aria-current] .cs-icon{color:var(--theme-link)}.portal-nav .cs-icon,.sidebar-caption,.sidebar-bottom,.workspace-heading{color:var(--cs-subtle)}
.avatar,.project-type-kicker{color:var(--theme-link)}.avatar{background:var(--theme-accent-soft);border-color:var(--theme-accent-line)}
.user-trigger,.user-name,.user-dropdown a,.notification-dropdown-head strong{color:var(--cs-text)}
.user-name small,.user-chevron,.notification-trigger{color:var(--cs-subtle)}
.notification-trigger:hover,.notification-trigger:focus-visible{background:var(--theme-accent-soft);color:var(--theme-link);border-color:var(--cs-accent)}
.notification-badge{background:var(--theme-danger-button);color:#fff;border-color:var(--cs-bg)}
.notification-item,.notification-center-item{background:transparent;border-color:var(--cs-border);color:var(--cs-text)}
.notification-item.unread,.notification-item:hover,.notification-center-item.unread,.notification-center-item:hover{background:var(--theme-accent-soft)}
.notification-item span,.notification-item small,.notification-empty,.notification-center-item small{color:var(--cs-muted)}
.page-heading p:not(.eyebrow),.auth-copy,.auth-help,.auth-links,.project-card>p:not(.project-type-kicker){color:var(--cs-muted)}
.progress-track,.mini-progress{background:var(--cs-border)}.progress-track span,.mini-progress span{background:linear-gradient(90deg,var(--cs-accent),var(--cs-accent-2));box-shadow:none}
.project-meta strong,.card-head strong{color:var(--cs-text)}.project-meta,.card-top,.metric-card span,.metric-card small{color:var(--cs-subtle)}
.billing-callout{background:var(--cs-surface)}
.admin-tabs,.sticky-save{background:var(--cs-surface);border-color:var(--cs-border)}.admin-tabs a{color:var(--cs-muted)}
.admin-tabs a.is-active,.admin-tabs a:hover{background:var(--theme-accent-soft);color:var(--theme-link);box-shadow:inset 0 0 0 1px var(--theme-accent-line)}
.admin-list strong,.admin-list b,.admin-list>a>span{color:var(--cs-text)}.admin-list span,.admin-list small{color:var(--cs-subtle)}
.admin-list a:hover strong,.next-steps .admin-list>a>span{color:var(--theme-link)}
.quick-link-grid a,.client-task,.edit-item,.document-list>div,.message,.task-comment,.crm-card{background:var(--theme-raised-soft);border-color:var(--cs-border);color:var(--cs-text)}
.quick-link-grid a:hover,.message.from-admin,.task-comment.from-admin{background:var(--theme-accent-soft);border-color:var(--theme-accent-line)}
.document-list p,.message p,.task-comment p{color:var(--cs-text)}.document-list small,.document-list a,.task-comment small{color:var(--cs-muted)}
.document-list>div>span,.task-document-link,.task-document-link span,.document-meta-extra,.preview-screen span{background:var(--theme-accent-soft);color:var(--theme-link)}
.table-toolbar{border-color:var(--cs-border)}.collection-toolbar .table-toolbar,.filter-card{background:var(--cs-surface)}
th{background:var(--theme-raised-soft);color:var(--cs-subtle)}td{color:var(--cs-text)}tbody tr:hover{background:var(--theme-accent-soft)}
.status{color:var(--cs-muted);border-color:var(--cs-border-strong);background:var(--theme-raised-soft)}
.status-live,.status-done,.status-paid,.status-accepted,.review-approved{color:var(--theme-positive);border-color:var(--theme-positive-line);background:var(--theme-positive-soft)}
.status-live i,.status-done i,.status-paid i{background:var(--theme-positive)}
.status-planning,.status-design,.status-development,.status-active,.status-in_progress,.status-review,.status-sent,.review-submitted{color:var(--theme-link);border-color:var(--theme-accent-line);background:var(--theme-accent-soft)}
.status-paused,.status-pending,.status-open,.status-overdue,.review-changes_requested{color:var(--theme-warning);border-color:var(--theme-warning-line);background:var(--theme-warning-soft)}
.status-danger,.status-cancelled{color:var(--theme-error);border-color:var(--theme-error-line);background:var(--theme-error-soft)}
.flash,.alert{background:var(--cs-surface)}.flash-success,.form-status.success{color:var(--theme-positive);border-color:var(--theme-positive-line);background:var(--theme-positive-soft)}
.flash-error,.alert-error,.form-status.error{color:var(--theme-error);border-color:var(--theme-error-line);background:var(--theme-error-soft)}
.flash-info,.info-box,.checklist-box{color:var(--theme-link);border-color:var(--theme-accent-line);background:var(--theme-accent-soft)}
.small-button{color:var(--theme-link);background:var(--theme-accent-soft);border-color:var(--cs-border-strong)}.small-button:hover{background:var(--theme-accent-line)}
.small-button.danger,.icon-button.danger,.danger-link{color:var(--theme-error)}
.danger-zone{border-color:var(--theme-error-line)}.confirmation-dialog{background:var(--cs-surface);color:var(--cs-text);border-color:var(--cs-border-strong)}
.auth-page{background:radial-gradient(ellipse at 20% 20%,var(--theme-glow),transparent 55%),var(--cs-bg)}.auth-card{background:var(--cs-surface);border-color:var(--cs-border-strong)}
.auth-card::before{background:linear-gradient(90deg,transparent,var(--cs-accent),transparent)}.password-toggle{color:var(--theme-link)}.password-toggle:hover{background:var(--theme-accent-soft)}
.preview-window,.preview-screen,.secret-box,.crm-column{background:var(--cs-surface);border-color:var(--cs-border)}
.preview-screen{background:radial-gradient(ellipse at 70% 20%,var(--theme-glow),transparent 65%),var(--cs-surface)}
.timeline-step>i{background:var(--cs-surface);color:var(--cs-muted);border-color:var(--cs-border-strong)}
.timeline-step.active>i,.timeline-step.done>i{background:var(--theme-accent-soft);border-color:var(--theme-accent-line);color:var(--theme-link);box-shadow:none}
.auth-card .text-link,.hero-note a,.sidebar-bottom a:hover{color:var(--theme-link)}
:where(a,button,input,textarea,select,summary,[tabindex]):focus-visible,.notification-trigger:focus-visible{outline:3px solid var(--cs-accent);outline-offset:4px}
@media(max-width:1000px){.topbar-actions{background:transparent!important}}

/* Public detail pages share the selected light palette. */
.feature-band-inner,.service-detail,.standard-item,.profile-card,.contact-form-wrap{background:var(--cs-surface);border-color:var(--cs-border);box-shadow:none}
.page-hero-card li{color:var(--cs-muted)}
.page-hero-card li::before,.support-card .number,.field-label em,.text-link-standalone,.card-link:hover{color:var(--theme-link)}
.profile-placeholder{background:radial-gradient(ellipse at 50% 25%,var(--theme-glow),transparent 65%),var(--theme-raised-soft)}
.service-jump a{color:var(--cs-muted);background:var(--cs-surface);border-color:var(--cs-border-strong)}
.service-jump a:hover,.service-jump a:focus-visible{color:var(--cs-text);background:var(--theme-accent-soft);border-color:var(--cs-accent)}
.project-browser{background:var(--cs-surface);border-color:var(--cs-border)}
.project-browser-screen{background:radial-gradient(ellipse at 65% 50%,var(--theme-glow),transparent 60%),var(--theme-raised-soft)}
.trust-card strong{border-color:var(--theme-accent-line);background:var(--theme-accent-soft)}
/* Briefings, account settings, documents and administration use the same surfaces. */
.credential-card{border-color:var(--theme-positive-line)}.credential-card code,.yes-mark,.feature-checklist li::before{color:var(--theme-positive)}
.status i{background:currentColor}
.details-list dd,.quick-link-grid strong,.role-card strong,.role-description-list strong,.template-nav strong,.mail-send-row strong,.briefing-progress-note strong,.onboarding-field legend,.answer-list p,.crm-card b{color:var(--cs-text)}
.notification-dropdown-head a,.notification-type-icon,.crm-column-head span,.answer-list span,.break-code,.hash-short,.link-button,.live-indicator,.briefing-section-heading .eyebrow,.briefing-settings-card summary{color:var(--theme-link)}
.notification-type-icon,.crm-column-head span{background:var(--theme-accent-soft);border-color:var(--theme-accent-line)}
.admin-task-item,.role-card,.compact-check,.dns-status-grid article,.item-editor-row,.reference-document-field>strong,.template-nav>a{background:var(--theme-raised-soft);border-color:var(--cs-border)}
.admin-task-item .edit-item{background:transparent}
.briefing-progress-note,.document-total-box,.total-row td,.admin-answer-section h3{background:var(--theme-accent-soft);border-color:var(--cs-border);color:var(--cs-text)}
.onboarding-field input[readonly],.onboarding-field textarea[readonly],.onboarding-field select:disabled{background:var(--theme-raised-soft);color:var(--cs-muted)}
.briefing-choice{background:var(--cs-surface);border-color:var(--cs-border-strong);color:var(--cs-text)!important}
.briefing-choice:hover,.briefing-choice:has(input:checked){background:var(--theme-accent-soft);border-color:var(--cs-accent);color:var(--theme-link)!important}
.template-nav>a:hover,.template-nav>a.active{background:var(--theme-accent-soft);border-color:var(--cs-accent)}
.template-token-list code,.recovery-code-grid code{background:var(--theme-raised-soft);color:var(--cs-text);border-color:var(--cs-border-strong)}
.document-summary-live .grand,.final-totals .grand{background:var(--theme-button);color:var(--theme-on-button)}
.finance-bar.income{background:linear-gradient(180deg,var(--cs-accent-2),var(--theme-button))}.income-dot{background:var(--theme-button)}
.finance-bar.expense{background:var(--theme-error)}.expense-dot{background:var(--theme-error)}
.message-list{scrollbar-color:var(--cs-border-strong) transparent}.message-list::-webkit-scrollbar-thumb{background:var(--cs-border-strong)}
.link-button.danger-link{color:var(--theme-error)}
/* Keep validation visible after hover/focus and protect narrow screens. */
input[aria-invalid=true],textarea[aria-invalid=true],select[aria-invalid=true],.contact-form [aria-invalid=true]{border-color:var(--theme-error)}
input[aria-invalid=true]:focus,textarea[aria-invalid=true]:focus,select[aria-invalid=true]:focus{border-color:var(--theme-error);box-shadow:0 0 0 3px var(--theme-error-soft)}
.filter-reset{white-space:nowrap;align-self:end;min-height:42px;padding:10px 14px;cursor:pointer;font:inherit;font-size:12px;border:1px solid var(--cs-border-strong)}
.no-results p{margin:0 0 18px;color:var(--cs-muted)}.no-results .button{display:inline-flex}
@media(max-width:560px){.filter-reset{width:100%}.contact-card a{overflow-wrap:anywhere}}

.service-request{min-height:44px;margin-top:14px;font-size:12px}
