/* Portal Sansky — Lapidação visual geral V60
   Camada global de consistência visual. Não altera regras de negócio.
   Tokens de design centralizados em /assets/css/core/tokens.css. */
@import url('/assets/css/core/tokens.css');
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;}
body{line-height:1.42;overflow-x:hidden;background:var(--paper,var(--sansky-paper));}
::selection{background:rgba(232,82,24,.18);color:var(--ink,#0B1825);}
button,a,input,select,textarea{-webkit-tap-highlight-color:transparent;}
button,a{touch-action:manipulation;}
img{max-width:100%;}

/* Acessibilidade e foco */
:where(a,button,input,select,textarea,[tabindex]):focus-visible{outline:3px solid rgba(232,82,24,.28)!important;outline-offset:2px!important;}
@media (prefers-reduced-motion: reduce){*,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.001ms!important;}}

/* Layout mobile seguro */
.topbar{box-shadow:0 1px 0 rgba(255,255,255,.05),0 8px 24px rgba(11,24,37,.10);}
main,.content{padding-left:max(16px,env(safe-area-inset-left));padding-right:max(16px,env(safe-area-inset-right));}
@media(max-width:640px){
  main,.content{padding-bottom:calc(72px + env(safe-area-inset-bottom));}
  .hero{padding-left:max(16px,env(safe-area-inset-left));padding-right:max(16px,env(safe-area-inset-right));}
}

/* Cards e painéis mais consistentes */
:where(.metric,.kpi,.card,.work,.vehicle,.pend,.alert,.item,.panel,.area-card,.runbox,.action-card,.tile,.tool,.empty){
  border:1px solid var(--line,var(--sansky-line));
  box-shadow:var(--sansky-shadow-soft);
}
:where(.metric,.kpi,.card,.work,.vehicle,.pend,.alert,.item,.panel,.area-card,.runbox){border-radius:var(--radius, var(--sansky-radius-card));}
:where(.metric,.kpi,.card,.work,.vehicle,.pend,.alert,.item,.panel,.area-card,.runbox,.action-card,.tile,.tool){transition:transform .14s ease,box-shadow .14s ease,border-color .14s ease,background-color .14s ease;}
@media(hover:hover){
  :where(.action-card,.tile,.tool,.vehicle,.work,.alert,.pend,.item):hover{transform:translateY(-1px);box-shadow:var(--sansky-shadow-card);border-color:rgba(232,82,24,.20);}
}
:where(.action-card,.tile,.tool,.btn,.primary,.refresh,.back,.m-btn,.sheet-action):active{transform:scale(.985);}

/* Controles: tamanho de toque e melhor leitura */
:where(input,select,textarea,.search,.select){min-height:44px;font-size:16px!important;border-radius:var(--sansky-radius-control);}
:where(button,.btn,.primary,.refresh,.back,.tab,.viewbtn,.m-btn,.sheet-action){min-height:42px;}
:where(.search,.select,input,select,textarea){box-shadow:0 1px 2px rgba(11,24,37,.04);}
:where(input,select,textarea,.search,.select):focus{border-color:rgba(232,82,24,.55)!important;box-shadow:0 0 0 3px rgba(232,82,24,.10)!important;}
textarea{resize:vertical;}

/* Abas e filtros */
.tabs{display:flex;gap:8px;overflow-x:auto;overscroll-behavior-x:contain;padding-bottom:4px;scrollbar-width:none;}
.tabs::-webkit-scrollbar{display:none;}
.tab{white-space:nowrap;flex:0 0 auto;}
.filters,.filter-row,.toolbar{align-items:stretch;gap:10px;}
@media(max-width:720px){
  .filters,.filter-row,.toolbar{display:grid!important;grid-template-columns:1fr!important;}
  .filters .search,.filters .select,.filter-row .search,.filter-row .select,.toolbar .search,.toolbar .select{width:100%!important;}
  .kpis,.metrics{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:10px!important;}
}
@media(max-width:380px){.kpis,.metrics{grid-template-columns:1fr!important;}}

/* Tipografia de rótulos */
:where(.eyebrow,.mlabel,.lbl,.card-title,.section-title,.cat-title){letter-spacing:.08em;}
:where(.mhint,.desc,.subtitle,.muted,.updated,.card-sub){color:var(--gray,var(--sansky-muted));}
:where(.mvalue,.val,.v,.count){font-variant-numeric:tabular-nums;}

/* Chips/badges */
.chips{display:flex;flex-wrap:wrap;gap:6px;}
.chip,.badge,.pill{display:inline-flex;align-items:center;gap:5px;min-height:26px;line-height:1.1;max-width:100%;}
.chip{white-space:nowrap;}

/* Estados vazios/carregando */
.empty{background:rgba(255,255,255,.74);border-style:dashed!important;color:var(--gray,var(--sansky-muted));}
.loader,.loading{color:var(--gray,var(--sansky-muted));}
.spin{border-top-color:var(--orange,var(--sansky-orange))!important;}

/* Home: cards compactos mais equilibrados */
.action-grid{align-items:stretch;}
.action-card .ac-title,.action-title,.tile-title{line-height:1.15;}
.action-card .ac-sub,.action-sub,.tile-sub{line-height:1.25;}
@media(max-width:720px){
  .action-card{min-height:74px;padding:14px 15px;}
  .action-card .ac-ico,.action-card .ico,.tile-ico{width:46px;height:46px;border-radius:14px;}
}

/* Tabelas/linhas quebram sem estourar a tela */
:where(.card,.work,.vehicle,.pend,.alert,.item,.metric,.kpi){overflow-wrap:anywhere;}
:where(.list,.grid){min-width:0;}

/* Print limpo */
@media print{.topbar,.tabs,.filters,.refresh,.back,.quick,.toolbar,.btn,.primary,.m-btn{display:none!important;}body{background:#fff!important;}main,.content{padding:0!important}.card,.metric,.kpi,.work,.vehicle,.pend,.alert,.item{box-shadow:none!important;break-inside:avoid;}}

/* V60.3 - UX profissional, mobile e consistencia visual */
:root{
  --sk-navy:#0B1825;
  --sk-orange:#E85218;
  --sk-paper:#F4F6F8;
  --sk-card:#FFFFFF;
  --sk-line:#DCE4EC;
  --sk-muted:#64748B;
  --sk-radius:8px;
  --sk-radius-control:8px;
  --sk-shadow-soft:0 2px 8px rgba(11,24,37,.06);
}
body{background:var(--sk-paper);}
.t-green{background:linear-gradient(135deg,#0E9F6E,#22B07D);color:#fff;}
.sk-card,.sk-panel{background:var(--sk-card);border:1px solid var(--sk-line);border-radius:var(--sk-radius);box-shadow:var(--sk-shadow-soft);}
.sk-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:42px;border-radius:var(--sk-radius-control);border:1px solid var(--sk-line);background:#fff;color:var(--sk-navy);font-weight:800;text-decoration:none;cursor:pointer;}
.sk-btn.primary{background:var(--sk-orange);border-color:var(--sk-orange);color:#fff;}
.sk-badge{display:inline-flex;align-items:center;min-height:24px;padding:4px 8px;border-radius:999px;background:#EEF3F8;color:#334155;font-weight:800;font-size:12px;}
.sk-badge.ok{background:#E7F7F0;color:#0E7A55}.sk-badge.warn{background:#FFF7ED;color:#9A3412}.sk-badge.err{background:#FDECEA;color:#991B1B}
.sk-empty,.sk-loading,.sk-alert{border:1px dashed var(--sk-line);border-radius:var(--sk-radius);padding:18px;background:#fff;color:var(--sk-muted);}
.sk-alert{border-style:solid;background:#FFF7ED;color:#9A3412;}
.sk-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;}
.sk-table-wrap{width:100%;overflow:auto;border:1px solid var(--sk-line);border-radius:var(--sk-radius);background:#fff;}
.sk-table{width:100%;border-collapse:collapse;min-width:720px;}
.sk-table th,.sk-table td{padding:10px 12px;border-bottom:1px solid var(--sk-line);text-align:left;vertical-align:top;}
.sk-table th{font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:var(--sk-muted);background:#F8FAFC;}

.home-group{margin-bottom:24px;}
.home-group .cat-head{align-items:center;margin-bottom:8px;}
.home-group .cat-ico,.home-group .action-ico{font-family:var(--font-display,'Sora',sans-serif);font-weight:900;letter-spacing:0;font-size:12px;}
.home-group .cat-ico{border:1px solid rgba(11,24,37,.08);}
.home-group .action-card{border-radius:var(--sk-radius);min-height:76px;border-color:var(--sk-line);}
.home-group .action-ico{border-radius:var(--sk-radius);box-shadow:none;}
.home-group .section-note{margin:0 4px 12px;color:var(--sk-muted);}
.home-group .action-title{text-transform:none;letter-spacing:0;}
.home-group .ext-dot{font-size:8px;font-weight:900;letter-spacing:0;}

:where(.card .ico,.force-pass-ico,.external-modal-ico,.pm-item .ico){font-size:0!important;position:relative;overflow:hidden;}
:where(.card .ico,.force-pass-ico,.external-modal-ico,.pm-item .ico)::before{content:"";width:18px;height:18px;border:2px solid currentColor;border-radius:5px;opacity:.95;}
:where(.card .ico,.force-pass-ico,.external-modal-ico,.pm-item .ico)::after{content:"";position:absolute;width:8px;height:8px;right:12px;bottom:12px;border-radius:50%;background:currentColor;opacity:.45;}

:where(.card,.panel,.side,.hero,.kpi,.metric,.item,.modal-card,.alert,.vehicle,.work,.pend,.area-card,.runbox){border-radius:var(--sk-radius)!important;}
:where(.btn,.tab,.back,input,select,textarea,.search,.select,.primary,.refresh,.m-btn,.sheet-action){border-radius:var(--sk-radius-control)!important;}
:where(.hero h2,.ttl h1,.card h3,.ct b,.action-title){letter-spacing:0!important;}
:where(.ct span,.muted,.sub,.desc,.section-note,.ttl p){line-height:1.38;}
:where(.card,.panel,.side,.kpi,.metric,.item){border-color:var(--sk-line)!important;box-shadow:var(--sk-shadow-soft)!important;}
:where(.card,.action-card,.btn,.tab,.mini){transition:background-color .14s ease,border-color .14s ease,box-shadow .14s ease,transform .14s ease;}

@media(max-width:760px){
  main,.content{padding-left:12px!important;padding-right:12px!important;}
  .topin{gap:10px!important;}
  .ttl h1{font-size:17px!important;line-height:1.15;}
  .hero{padding:16px!important;margin-bottom:14px!important;}
  .layout{grid-template-columns:1fr!important;display:block!important;}
  .panel,.side{padding:14px!important;}
  .grid,.action-grid{grid-template-columns:1fr!important;}
  .card,.action-card{min-height:64px!important;padding:12px!important;}
  .filters,.filter-row,.toolbar,.hero-actions,.modal-actions{display:grid!important;grid-template-columns:1fr!important;}
  .filters input,.filters select,.filter-row input,.filter-row select,.toolbar input,.toolbar select{min-width:0!important;width:100%!important;flex-basis:auto!important;}
  .kpis,.metrics{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;overflow:visible!important;}
  .kpi,.metric{min-width:0!important;}
  .modal{padding:10px!important;align-items:flex-end!important;}
  .modal-card{width:100%!important;max-height:92vh!important;overflow:auto!important;border-radius:12px 12px 0 0!important;}
  .sk-form-grid{grid-template-columns:1fr;}
}
@media(max-width:420px){
  .kpis,.metrics{grid-template-columns:1fr!important;}
  .card-head,.head{align-items:flex-start!important;}
  .actions,.detail-actions,.doc-actions{display:grid!important;grid-template-columns:1fr!important;}
}
