/* NONE TELEFONE — UI 3.0.2
   Consolidated design layer, applied after legacy and v3.0.1 styles.
   Never overrides authorization or hides financial information; owner access remains server enforced.
   Layout changes are restricted to known interface modules. */
:root {
  --none-ui-bg:#f9f8f7;
  --none-ui-paper:#ffffff;
  --none-ui-line:#e8e6ec;
  --none-ui-text:#231931;
  --none-ui-subtle:#605472;
  --none-ui-primary:#3e236f;
  --none-ui-primary-hover:#3a177a;
  --none-ui-soft:#f6f3ed;
  --none-ui-success:#18794e;
  --none-ui-warning:#9a6200;
  --none-ui-danger:#b42318;
  --none-ui-elevation:0 1px 2px rgba(27, 17, 40,.035),0 8px 24px -17px rgba(27, 17, 40,.18);
  --none-ui-radius:13px;
  --none-ui-font:'Plus Jakarta Sans','Inter',ui-sans-serif,system-ui,-apple-system,'Segoe UI',sans-serif;
  --blue:var(--none-ui-primary);
  --primary:var(--none-ui-primary);
  --ink:var(--none-ui-text);
  --muted:var(--none-ui-subtle);
  --line:var(--none-ui-line);
  --surface:var(--none-ui-paper);
  --n-bg:var(--none-ui-bg);
  --shadow:var(--none-ui-elevation);
  --none-nav-text:var(--none-ui-subtle);
}
html {background:var(--none-ui-bg);color:var(--none-ui-text);scrollbar-gutter:stable}
body,#root,.admin-shell,.admin-content {font-family:var(--none-ui-font);color:var(--none-ui-text)}
html,body,#root,.admin-shell {background:var(--none-ui-bg)}
.admin-content {background:transparent}
.page,.attendance-page,.leads-page,.inventory-page,.cv,.settings-page-v13 {min-width:0;max-width:100%;overflow-wrap:anywhere}
.page :where(h1,h2,h3),.attendance-page :where(h1,h2,h3),.cv :where(h1,h2,h3) {letter-spacing:-.024em}
.page-heading h1,.attendance-heading h1,.leads-heading h1,.cv .page-heading h1 {color:var(--none-ui-text);font-weight:750;font-size:clamp(1.36rem,1.45vw + 1rem,1.74rem);line-height:1.25}
.page-heading p,.attendance-heading p,.cv-muted,.op-muted,.op-heading p,.op-row small,.op-device p,.op-device small,
.sidebar__account span,.cv-list small,.attendance-card__problem,.settings-sections button,
.customer-list small,.customer-orders small,.metric-definition,.op-history small {color:var(--none-ui-subtle)}
/* Surfaces: predictable white rather than mixed blue and gray surfaces. */
.panel,.form-panel,.cv-card,.op-modal,.modal-card,.inventory-modal,.customer-list-card,.customer-profile,
.attendance-column,.lead-card,.attendance-card,.analytics-card,.metric-card,.op-device,
.op-detail,.op-parts,.cv-stats button,.inventory-summary-grid article,.finance-private-grid article {
  border-color:var(--none-ui-line);
  box-shadow:var(--none-ui-elevation);
}
.panel,.form-panel,.cv-card,.op-modal,.modal-card,.inventory-modal,.customer-list-card,.customer-profile,
.attendance-card,.analytics-card,.metric-card,.op-device,.op-detail,.op-parts,.cv-stats button {
  background:var(--none-ui-paper);
  border-radius:var(--none-ui-radius);
}
.attendance-column {background:#fdfcfb;border-radius:var(--none-ui-radius);box-shadow:none}
/* Buttons/inputs: consistent touch targets, meaningful focus, no accidental horizontal growth. */
.button,.cv button,.inventory-page button,.attendance-stage-filter button,
.settings-sections button,.inventory-tabs button,.customer-list>button,.op-tabs button {
  font-family:var(--none-ui-font);
}
.button {min-height:42px;border-radius:10px;font-size:.875rem;font-weight:680;line-height:1.3}
.button--primary,.sidebar__nav .sidebar__new,.op-tabs button[aria-pressed=true] {
  background:var(--none-ui-primary);border-color:var(--none-ui-primary);color:#fff;
}
.button--primary:hover,.sidebar__nav .sidebar__new:hover {background:var(--none-ui-primary-hover);border-color:var(--none-ui-primary-hover)}
.button--secondary {color:var(--none-ui-primary);border-color:#d5cce4;background:#fff}
.button--secondary:hover {background:var(--none-ui-soft);border-color:#bbadd5}
:where(input,select,textarea,button,summary,[role="button"],a):focus-visible {
  outline:3px solid rgba(62, 35, 111,.46)!important;outline-offset:2px!important;
}
:where(input,select,textarea) {accent-color:var(--none-ui-primary)}
.cv :where(input,select,textarea),.inventory-page :where(input,select,textarea),.op-form :where(input,select,textarea),
.lead-form-grid :where(input,select,textarea),.settings-form :where(input,select,textarea) {
  border:1px solid #dcd5e6;border-radius:10px;min-height:42px;background:#fff;color:var(--none-ui-text);
  font-size:.9rem;line-height:1.45;
}
:where(input,textarea)::placeholder {color:#687689;opacity:1}
:where(button,[role="button"]):disabled {cursor:not-allowed;opacity:.62}
/* Sidebar/navigation */
.sidebar {background:#fff;border-right:1px solid var(--none-ui-line);box-shadow:none}
.sidebar__nav button {color:#554769;border-radius:10px;min-height:41px}
.sidebar__nav button:hover {background:#f7f5f3;color:var(--none-ui-text)}
.sidebar__nav button.active {background:var(--none-ui-soft);color:#351e5e;font-weight:740}
.sidebar__account {border-top:1px solid var(--none-ui-line)}
.sidebar__account strong {color:var(--none-ui-text)}
/* Compact status chips, semantic tone, standard size */
.cv-badge,.op-badge,.attendance-card .status-pill,.lead-card .status-pill {
  border-radius:999px;font-weight:700;letter-spacing:0;line-height:1.3;
}
.cv-badge--signed,.op-badge.available {background:#e7f6ef;color:#176849}
.cv-badge--pending {background:#fff4dc;color:#855400}
.cv-badge--cancelled {background:#fceceb;color:#a5271f}
/* Module: Atendimento */
.attendance-heading,.page-heading {gap:14px}
.attendance-summary {gap:10px}
.attendance-summary>button {background:#fff;border-color:var(--none-ui-line);border-radius:12px;box-shadow:var(--none-ui-elevation)}
.attendance-summary strong {color:var(--none-ui-text)}
.attendance-summary small {color:var(--none-ui-subtle);font-size:.76rem}
.attendance-toolbar {gap:10px}
.attendance-toolbar input {border-color:#dcd5e6;border-radius:10px;min-height:42px}
.attendance-stage-filter {gap:7px}
.attendance-stage-filter button {border-color:#dcd5e6;color:#554769;border-radius:9px;min-height:40px;background:#fff}
.attendance-stage-filter button[aria-pressed=true] {background:var(--none-ui-primary);border-color:var(--none-ui-primary);color:#fff}
.attendance-board {gap:12px}
.attendance-column {min-width:0}
.attendance-column>header {background:transparent;border-bottom-color:var(--none-ui-line)}
.attendance-column>header strong {color:#342846}
.attendance-column>header>span {color:#605472;background:#f3f2ef}
.attendance-card {border:1px solid var(--none-ui-line);padding:13px;min-height:116px;transition:border-color .15s ease,box-shadow .15s ease}
.attendance-card:hover {border-color:#bbadd7;box-shadow:0 5px 18px rgba(32, 17, 54,.09)}
.attendance-card__device {color:#3b285d;font-size:.8rem;font-weight:700}
.attendance-card__problem {font-size:.8rem;line-height:1.45}
.attendance-column__empty {color:var(--none-ui-subtle)}
/* Module: customers */
.customer-list>button {min-height:66px;padding-block:13px}
.customer-list>button.active {background:var(--none-ui-soft);color:#371c68}
.customer-orders>button {min-height:60px}
.customer-list strong,.customer-orders strong {color:var(--none-ui-text)}
.search-field {min-height:44px;border-radius:10px;border-color:#dcd5e6}
.search-field input {min-height:42px}
/* Module: Stock */
.inventory-page .inventory-tabs {gap:7px;overflow-x:auto;scrollbar-width:thin}
.inventory-page .inventory-tabs button {min-height:43px;padding:9px 15px;white-space:nowrap}
.inventory-tabs button.active {color:#351e5e;border-bottom-color:var(--none-ui-primary)}
.inventory-page .op-summary,.inventory-summary-grid {gap:10px}
.inventory-page .op-summary .panel,.inventory-summary-grid article {background:#fff;border:1px solid var(--none-ui-line);border-radius:12px;box-shadow:var(--none-ui-elevation);padding:16px}
.inventory-page .op-summary small,.inventory-summary-grid small {font-size:.8rem;color:var(--none-ui-subtle);line-height:1.45}
.inventory-page .op-summary strong,.inventory-summary-grid strong {font-variant-numeric:tabular-nums;color:var(--none-ui-text)}
.inventory-page .op-toolbar {gap:10px}
.inventory-page .op-toolbar>input,.inventory-page .op-toolbar>select {min-height:44px}
.op-table th {color:#554868;background:#f9f8f7;font-weight:700}
.op-table td,.op-table th {border-color:#ebeaed}
.op-table tr.selected {background:var(--none-ui-soft)}
.op-row {border-color:#edebef}
.op-empty {color:var(--none-ui-subtle)}
.op-modal {max-height:min(90dvh,900px);overscroll-behavior:contain}
.op-modal header button {min-width:44px;min-height:44px;border-radius:10px}
.op-tabs button[aria-pressed=true] {background:var(--none-ui-primary)}
/* Module: CV/BRiKES */
.cv .cv-card {padding:20px;border:1px solid var(--none-ui-line);border-radius:14px;background:#fff}
.cv .cv-list {margin-top:12px}
.cv .cv-list>button {border-color:#edecef;min-height:78px;padding:14px 12px}
.cv .cv-list>button:hover {background:#faf9f7}
.cv .cv-list strong {color:var(--none-ui-text)}
.cv .cv-list small {color:var(--none-ui-subtle);font-size:.8rem}
.cv .cv-stats {gap:10px;margin:16px 0}
.cv .cv-stats button {padding:17px;border:1px solid var(--none-ui-line);border-radius:12px}
.cv .cv-stats strong {color:var(--none-ui-text);font-size:1.5rem}
.cv .cv-toolbar {gap:10px}
.cv .cv-toolbar input,.cv .cv-toolbar select {min-height:44px}
.cv-step {border-radius:13px}
.cv-step>summary {cursor:pointer;min-height:65px;gap:9px}
.cv-step__content {padding-bottom:20px}
.cv .cv-grid {gap:15px}
.cv .cv-field {min-width:0}
.cv .cv-actions--sticky {background:rgba(255,255,255,.97);border-color:var(--none-ui-line);box-shadow:0 5px 28px rgba(42, 27, 63,.09);backdrop-filter:blur(6px)}
/* Finance labels and analytics */
.metric-grid article,.finance-private-grid article {background:#fff;border-color:var(--none-ui-line)}
.metric-grid small,.metric-grid article>small,.finance-private-grid article small {color:var(--none-ui-subtle)}
.finance-data-warning {color:#835600;background:#fff7e5;border-color:#f2dda9}
/* Settings */
.settings-sections {background:#f6f4f2;border:1px solid var(--none-ui-line);border-radius:11px;gap:3px}
.settings-sections button {color:#5a4c6e;min-height:42px;font-size:.83rem}
.settings-sections button.active {background:#fff;color:#3d1a7d;box-shadow:0 1px 4px rgba(32, 17, 54,.09)}
.form-section {border-color:#edebef}
.settings-owner-required {border-color:var(--none-ui-line);background:#fff}
/* Error banners always readable */
.op-error,.cv-alert--error {background:#fff0ef;border-color:#f4cbc7;color:#92271f}
.op-success {color:#176849;background:#e7f6ef}
/* Owner status toast is added only when corresponding RPC fails. */
.none-owner-network-notice {
  position:fixed;z-index:1500;top:max(14px,env(safe-area-inset-top));right:16px;
  width:min(400px,calc(100vw - 32px));display:flex;align-items:flex-start;justify-content:space-between;gap:12px;
  background:#fff8eb;color:#714800;border:1px solid #eddbb3;border-radius:13px;
  padding:13px 15px;box-shadow:0 10px 34px rgba(32, 17, 54,.15);
  font-size:13px;line-height:1.45;
}
.none-owner-network-notice strong {display:block;font-weight:750;margin-bottom:2px}
.none-owner-network-notice button {border:0;border-radius:7px;min-width:32px;min-height:32px;background:transparent;color:inherit;cursor:pointer}
/* Desktop: do not clip the fifth repair column or float the CV actions over fields. */
@media (min-width:901px) {
  .cv .cv-actions--sticky {position:static;bottom:auto}
}
@media (min-width:901px) and (max-width:1480px) {
  .attendance-board {grid-template-columns:repeat(5,minmax(155px,1fr));overflow-x:visible;scroll-snap-type:none}
  .attendance-column {min-width:0}
}
@media (min-width:901px) and (max-width:1180px) {
  .attendance-board {grid-template-columns:repeat(2,minmax(0,1fr))}
  .attendance-column {min-height:0}
}
@media (max-width:1100px) {
  .attendance-board {gap:10px}
  .attendance-column {min-height:290px}
}
@media (max-width:900px) {
  /* Restore comfortable safe-area and prevent fixed bottom nav obscuring actions. */
  .admin-content {padding-bottom:calc(100px + env(safe-area-inset-bottom))}
  .mobile-bar {background:#fff;border-bottom-color:var(--none-ui-line)}
  .mobile-nav {background:rgba(255,255,255,.985);border-top:1px solid var(--none-ui-line);padding-bottom:max(4px,env(safe-area-inset-bottom))}
  .mobile-nav button {color:#605472;min-height:55px}
  .mobile-nav button.active {color:#351e5e}
  .mobile-nav button span {font-size:.7rem}
  .mobile-nav__primary svg {background:var(--none-ui-primary);box-shadow:0 6px 16px rgba(62, 35, 111,.24)}
  .mobile-more-backdrop {background:rgba(27, 17, 40,.44)}
  .mobile-more-sheet {background:#fff;border-color:var(--none-ui-line);max-height:76dvh;overflow-y:auto;overscroll-behavior:contain}
  .mobile-more-sheet>button {min-height:48px}
  .cv-actions--sticky,.settings-form .form-actions--sticky,.form-actions--sticky {bottom:calc(82px + env(safe-area-inset-bottom))}
  .cv .cv-actions--sticky {z-index:19}
  /* Mobile kanban becomes a real vertical stage list instead of clipped columns. */
  .attendance-board {display:flex!important;flex-direction:column;align-items:stretch;gap:12px;overflow:visible!important;margin-right:0!important;padding:0 0 8px!important;scroll-snap-type:none!important}
  .attendance-column {flex:none;width:100%!important;max-width:100%!important;min-width:0!important;min-height:0!important;scroll-snap-align:none!important;overflow:visible}
  .attendance-column__cards {display:grid;grid-template-columns:repeat(auto-fit,minmax(min(245px,100%),1fr));gap:10px;padding:9px 11px 13px}
  .attendance-column__empty {padding:13px}
  .attendance-stage-filter {display:flex;flex-wrap:nowrap;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:thin;padding-bottom:5px}
  .attendance-stage-filter button {flex:0 0 auto;min-height:42px}
}
@media (max-width:720px) {
  .admin-content {padding-left:14px;padding-right:14px}
  .page,.attendance-page,.leads-page,.inventory-page,.cv {overflow-wrap:anywhere}
  .page-heading {align-items:flex-start;gap:12px}
  .page-heading p,.attendance-heading p {display:block;font-size:.84rem;color:var(--none-ui-subtle)}
  .page-heading .button,.attendance-heading .button {min-height:44px}
  .button,.cv button,.inventory-page button,.op-tabs button,.settings-sections button {min-height:44px}
  .attendance-summary {grid-template-columns:repeat(2,minmax(0,1fr))}
  .attendance-summary>button {padding:13px;min-width:0}
  .attendance-summary strong {font-size:1.45rem}
  .attendance-column__cards {grid-template-columns:1fr}
  .attendance-card {min-height:0;padding:14px}
  .customer-list>button {min-height:64px}
  .inventory-page .op-summary,.inventory-summary-grid,.finance-private-grid {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
  .inventory-page .op-summary .panel,.inventory-summary-grid article,.finance-private-grid article {min-width:0;padding:13px 12px;border:1px solid var(--none-ui-line);border-radius:12px}
  .inventory-page .op-summary strong,.inventory-summary-grid strong {font-size:clamp(1.04rem,4vw,1.28rem)}
  .inventory-page .op-summary small,.inventory-summary-grid small {font-size:.76rem}
  .inventory-summary-grid span {display:block}
  .inventory-tabs {display:flex;gap:6px;overflow-x:auto;scrollbar-width:thin;white-space:nowrap}
  .inventory-page .inventory-tabs button {flex:0 0 auto;min-height:44px}
  .op-modal {width:100%;max-width:calc(100vw - 20px);padding:16px;border-radius:14px}
  .op-backdrop {padding:10px;align-items:center}
  .op-device {padding:17px}
  .op-device h2 {font-size:1rem}
  .cv .cv-card {padding:15px}
  .cv .cv-stats {grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
  .cv .cv-stats button {padding:11px;min-width:0}
  .cv .cv-stats strong {font-size:1.23rem}
  .cv .cv-list>button {padding:14px 10px;min-height:72px}
  .cv-step>summary {min-height:64px}
  .cv-step__content {padding:0 14px 17px}
  .cv .cv-grid {grid-template-columns:1fr;gap:13px}
  .cv-actions--sticky {padding:10px}
  .settings-sections {overflow-x:auto;scrollbar-width:thin;scroll-snap-type:x proximity}
  .settings-sections button {white-space:nowrap;flex:0 0 auto;scroll-snap-align:start}
}
@media (max-width:430px) {
  .admin-content {padding-left:12px;padding-right:12px}
  .attendance-heading,.page-heading {gap:10px}
  .attendance-summary {gap:7px}
  .attendance-summary>button {padding:11px 9px}
  .attendance-summary small {font-size:.75rem}
  .mobile-nav button span {font-size:.66rem}
  .cv .cv-stats strong {font-size:1.12rem}
  .op-summary strong {font-size:1.1rem}
}
@media (prefers-reduced-motion:reduce) {
  .attendance-card,.button,.cv-list>button {transition:none!important;animation:none!important}
}
