/* Shared visual rules for public, account, authentication and administration pages.
   This file loads last; component-specific geometry (icons, galleries, OTP, maps)
   remains in site.css. Keep common controls here instead of adding page overrides. */
:root{--ui-font:Vazirmatn,Tahoma,sans-serif;--ui-ink:#17334f;--ui-muted:#64758a;--ui-primary:#102b4c;--ui-primary-hover:#1b405e;--ui-accent:#efb526;--ui-border:#d9e2ec;--ui-surface:#fff;--ui-soft:#f4f7fa;--ui-danger:#b63f49;--ui-control-radius:8px;--ui-card-radius:14px;--ui-control-height:44px}
body{font-family:var(--ui-font)}
button,input,select,textarea{font-family:var(--ui-font);letter-spacing:normal}
input,select,textarea{font-size:.875rem;line-height:1.8}
button{line-height:1.8}button,a,input,select,textarea{touch-action:manipulation}
[hidden]{display:none!important}
/* Match link buttons and native buttons, including old page component names. */
:root body[class]:is(.public-route,.account-route,.auth-route,.admin-route,.failure-route) :is(.button,.ui-button,.admin-primary-link,.account-primary-button,.account-secondary-button,.users-edit-button,.admin-danger-link){display:inline-flex;align-items:center;justify-content:center;gap:8px;min-block-size:var(--ui-control-height);max-inline-size:100%;padding:9px 16px;border:1px solid var(--ui-primary);border-radius:var(--ui-control-radius);background:var(--ui-primary);color:#fff;font:600 .8125rem/1.8 var(--ui-font);text-align:center;text-decoration:none;white-space:normal;box-shadow:none;cursor:pointer;vertical-align:middle;transform:none;transition:background .15s,border-color .15s}
:root body[class]:is(.public-route,.account-route,.auth-route,.admin-route,.failure-route) :is(.button,.ui-button,.admin-primary-link,.account-primary-button):hover{background:var(--ui-primary-hover);border-color:var(--ui-primary-hover);color:#fff;box-shadow:none;transform:none}
:root body[class]:is(.public-route,.account-route,.auth-route,.admin-route,.failure-route) :is(.ui-button-secondary,.button-secondary,.account-secondary-button,.users-edit-button){border-color:#bdccda;background:#fff;color:var(--ui-ink)}
:root body[class]:is(.public-route,.account-route,.auth-route,.admin-route,.failure-route) :is(.ui-button-secondary,.button-secondary,.account-secondary-button,.users-edit-button):hover{background:var(--ui-soft);border-color:#879fb7;color:var(--ui-ink)}
:root body[class]:is(.public-route,.account-route,.auth-route,.admin-route,.failure-route) :is(.ui-button-danger,.admin-danger-link,.account-danger .button){border-color:#e4b4b9;background:#fff6f6;color:var(--ui-danger)}
:root body[class]:is(.public-route,.account-route,.auth-route,.admin-route,.failure-route) :is(.ui-button-danger,.admin-danger-link,.account-danger .button):hover{border-color:var(--ui-danger);background:#fdecef;color:#9f303a}
:root body[class]:is(.public-route,.account-route,.auth-route,.admin-route,.failure-route) :is(.button,.ui-button,.account-primary-button,.account-secondary-button,.admin-primary-link):disabled{opacity:.5;cursor:not-allowed;box-shadow:none;transform:none}
:root body[class] :is(.button,.ui-button,.admin-primary-link,.account-primary-button,.account-secondary-button,.users-edit-button):focus-visible{outline:3px solid var(--ui-accent);outline-offset:3px}
/* Explicit contrast variants on the dark home banner. */
:root body[class].public-route .home-hero-actions .home-consult{background:var(--ui-accent);border-color:var(--ui-accent);color:var(--ui-primary)}
:root body[class].public-route .home-hero-actions .home-consult:hover{background:#ffd064;border-color:#ffd064;color:var(--ui-primary)}
:root body[class].public-route .home-hero-actions .home-products-link{background:transparent;border-color:#b9ccdc;color:#fff}
:root body[class].public-route .home-hero-actions .home-products-link:hover{background:#ffffff12;border-color:#fff;color:#fff}
/* Consistent forms without disturbing checkbox/radio, OTP and image controls. */
:is(.admin-form,.admin-user-form,.portal-form,.account-form,.contact-message-form,.checkout-form,.checkout-layout,.repair-form,.account-profile-form,.auth-login-form,.product-buy-form,.consultation-assign-form,.consultation-reply-form,.admin-note-form,form:not([class])){min-inline-size:0;gap:10px}
:is(.admin-form,.admin-user-form,.portal-form,.account-form,.contact-message-form,.checkout-form,.checkout-layout,.repair-form,.account-profile-form,.auth-login-form,.product-buy-form,.consultation-assign-form,.consultation-reply-form,.admin-note-form,form:not([class])) :is(input:not([type=checkbox]):not([type=radio]):not([type=hidden]):not([type=range]):not([type=color]):not(.otp-input),select,textarea){max-inline-size:100%;min-inline-size:0;min-block-size:var(--ui-control-height);border:1px solid var(--ui-border);border-radius:var(--ui-control-radius);background:#fff;color:var(--ui-ink);padding:10px 12px;font:400 .875rem/1.8 var(--ui-font);box-sizing:border-box}
:is(.admin-form,.admin-user-form,.portal-form,.account-form,.contact-message-form,.checkout-form,.checkout-layout,.repair-form,.account-profile-form,.auth-login-form,.product-buy-form,.consultation-assign-form,.consultation-reply-form,.admin-note-form,form:not([class])) label{color:#42586e;font-size:.8125rem;line-height:1.8}
:is(.admin-form,.admin-user-form,.portal-form,.account-form,.contact-message-form,.checkout-form,.checkout-layout,.repair-form,.account-profile-form,.auth-login-form,.product-buy-form,.consultation-assign-form,.consultation-reply-form,.admin-note-form,form:not([class])) small{font-size:.75rem;line-height:1.9;color:var(--ui-muted)}
input::file-selector-button{border:1px solid #bdccda;border-radius:6px;padding:6px 10px;margin-inline-end:10px;background:var(--ui-soft);color:var(--ui-ink);font:500 .8125rem/1.8 var(--ui-font);cursor:pointer}
input[type=checkbox],input[type=radio]{accent-color:var(--ui-primary)}
:root .admin-form fieldset.content-link-settings,:root .admin-form fieldset.role-permission-fieldset{grid-template-columns:minmax(0,1fr);min-inline-size:0}
.admin-form fieldset legend{font-size:.875rem;font-weight:600;padding-inline:6px}
.admin-form>.admin-primary-link,.admin-form>.ui-button,.admin-form>.account-secondary-button{justify-self:start}
.admin-inline-form{vertical-align:middle}.admin-inline-form+.admin-inline-form{margin-inline-start:6px}
.admin-table-wrap{max-inline-size:100%;min-inline-size:0}
:root .admin-table :is(th,td){font-size:.78125rem;line-height:1.9}
:is(.portal-card,.portal-prose,.admin-user-card,.admin-form,.account-info-card,.account-security-card){border-radius:var(--ui-card-radius);border-color:var(--ui-border)}
:is(.admin-page-heading,.users-list-heading,.account-card-heading){gap:16px;flex-wrap:wrap}
:is(.admin-route,.account-route) main h1{font-family:var(--ui-font);line-height:1.7}
:is(.admin-route,.account-route) main :is(h2,h3){font-family:var(--ui-font);line-height:1.8}
@media(max-width:600px){.admin-form{padding:16px}.admin-page-heading{align-items:flex-start}.admin-form>.admin-primary-link,.admin-form>.ui-button,.admin-form>.account-secondary-button{justify-self:stretch}.ui-button{overflow-wrap:anywhere}}
@media(prefers-reduced-motion:reduce){.ui-button,.button,.account-primary-button,.account-secondary-button,.admin-primary-link{transition:none!important}}

.consultation-actions{margin-block-start:18px}
.consultation-chat-launch{background:var(--ui-primary);font:600 .8125rem/1.8 var(--ui-font);border-radius:12px}
.consultation-chat-compose button[type=submit]{background:var(--ui-primary);border-radius:var(--ui-control-radius);min-height:var(--ui-control-height)}
.auth-panel{min-inline-size:0;max-inline-size:100%}.auth-main{min-inline-size:0}
.admin-totp-secret{max-inline-size:100%;white-space:normal;overflow-wrap:anywhere;word-break:break-all;border-radius:var(--ui-control-radius);box-sizing:border-box}
/* Closed disclosures must not contribute popup geometry to the page. */
details:not([open])>:not(summary){display:none}
@media(max-width:650px){.admin-route .admin-notification-popover{position:fixed;inset-block-start:180px;inset-inline:12px;width:auto;max-height:calc(100dvh - 200px)}}
@media(max-width:380px){.admin-topbar{flex-wrap:wrap}.admin-topbar>strong{max-inline-size:none;flex-basis:100%}.admin-topbar-actions{width:100%;flex-wrap:wrap;justify-content:flex-start}.admin-route .admin-notification-popover{inset-block-start:220px;max-height:calc(100dvh - 240px)}}
@media(max-width:380px){.admin-sidebar-head{gap:6px}.admin-menu-toggle{gap:4px;padding-inline:6px}}
/* Approved navy header palette (option 3). Public header only. */
.public-route .compact-site-header{background:#102b4c;border-block-end-color:#284a6c;box-shadow:none}
.public-route .compact-header-main{background:#102b4c}
.public-route .compact-brand{color:#fff}
.public-route .compact-brand small{color:#b9cadd}
.public-route .compact-brand .brand-symbol{border:1px solid #b28b35;background:#102b4c}
.compact-site-header .compact-search{background:#fff;border-color:#dce4ed}
.compact-site-header .compact-search:focus-within{border-color:#efb526;box-shadow:0 0 0 3px #efb52626}
.compact-site-header .compact-account-button{background:transparent;border-color:#71869f;color:#fff}
.compact-site-header .compact-account-button:hover,.compact-site-header .compact-icon:hover{background:#244666;color:#fff}
.compact-site-header .compact-icon{color:#e9f0f8}
.compact-site-header .compact-cart{border-inline-start-color:#49627e}
.compact-site-header .compact-cart-count{border-color:#102b4c}
.compact-site-header .compact-nav-border{background:#173b5e;border-block-start-color:#284a6c}
.compact-site-header .compact-navigation>a,.compact-site-header .compact-more-menu>summary{color:#e4edf7}
.compact-site-header .compact-navigation>a:hover,.compact-site-header .compact-more-menu>summary:hover,.compact-site-header .compact-navigation>a.is-current{color:#fff}
.compact-site-header .compact-consultation{background:#efb526;border-color:#efb526;color:#102b4c}
.compact-site-header .compact-consultation svg{color:#102b4c}
.compact-site-header .compact-consultation:hover{background:#ffd064;border-color:#ffd064;color:#102b4c}
.compact-site-header .compact-mobile-shortcuts{background:#173b5e;border-block-start-color:#284a6c}
.compact-site-header .compact-mobile-shortcuts a{color:#e4edf7}
.compact-site-header .compact-mobile-shortcuts a+a{border-inline-start-color:#49627e}
@media(max-width:1150px){.compact-site-header .compact-account-button{border-color:transparent}.compact-site-header .compact-cart{border:0}.compact-site-header .compact-more-menu .compact-account-popover{background:#102b4c}.compact-site-header .compact-more-menu .compact-account-popover a{color:#e4edf7}.compact-site-header .compact-more-menu .compact-account-popover a:hover{background:#244666}}
.service-card{overflow:hidden}.service-card-image{display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:cover;border-radius:10px;margin-block-end:18px;background:var(--ui-soft)}
.service-image-preview{display:block;width:min(100%,520px);height:auto;aspect-ratio:16/9;object-fit:cover;border:1px solid var(--ui-border);border-radius:10px}
.service-image-thumb{display:block;width:100px;height:56px;object-fit:cover;border-radius:8px;background:var(--ui-soft)}
