:root{--bg:#f4f7f7;--card:#fff;--ink:#172522;--muted:#6e7d79;--line:#e4ebe9;--brand:#0e766e;--brand2:#0b5f59;--danger:#c33e3e;--warning:#b47a16;--success:#14865b;--info:#2e6f9d;--sidebar:#102522;--radius:16px;--shadow:0 8px 30px rgba(16,37,34,.07)}*{box-sizing:border-box}body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:var(--bg);color:var(--ink)}a{color:var(--brand);text-decoration:none}.app-shell{min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;width:255px;background:var(--sidebar);color:#dce9e6;padding:22px 16px;display:flex;flex-direction:column;z-index:20}.brand{display:flex;gap:12px;align-items:center;padding:4px 8px 22px}.brand-mark{width:42px;height:42px;border-radius:12px;display:grid;place-items:center;background:linear-gradient(135deg,#1db4a6,#0e766e);color:#fff;font-weight:800;font-size:20px;box-shadow:0 8px 20px rgba(14,118,110,.28)}.brand strong{display:block;color:#fff;font-size:15px}.brand span{font-size:12px;color:#90aaa5}.sidebar nav{overflow:auto}.sidebar nav a,.sidebar-foot a{display:flex;align-items:center;gap:10px;padding:10px 11px;border-radius:10px;color:#b8cbc7;font-size:14px;margin:2px 0}.sidebar nav a:hover,.sidebar nav a.active{background:#183833;color:#fff}.nav-label{padding:17px 11px 6px;text-transform:uppercase;letter-spacing:.11em;font-size:10px;color:#64847e}.sidebar-foot{margin-top:auto;border-top:1px solid #21433d;padding-top:12px}.main{margin-left:255px;min-height:100vh}.topbar{height:84px;background:rgba(255,255,255,.88);backdrop-filter:blur(8px);border-bottom:1px solid var(--line);display:flex;align-items:center;padding:0 28px;position:sticky;top:0;z-index:10}.topbar h1{margin:0;font-size:23px}.topbar p{margin:3px 0 0;color:var(--muted);font-size:12px}.menu-btn{display:none;background:none;border:0;font-size:24px}.content{padding:26px;max-width:1550px;margin:auto}.toolbar{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:18px;flex-wrap:wrap}.inline-form{display:flex;gap:8px;flex-wrap:wrap}.btn{border:1px solid var(--line);background:#fff;color:var(--ink);padding:9px 13px;border-radius:10px;font-weight:650;cursor:pointer;line-height:1.2}.btn:hover{border-color:#c7d6d2}.btn-primary{background:var(--brand);border-color:var(--brand);color:#fff}.btn-primary:hover{background:var(--brand2)}.btn-block{width:100%;padding:12px}.btn-sm{padding:7px 9px;font-size:12px}input,select,textarea{width:100%;border:1px solid #d7e1df;background:#fff;border-radius:10px;padding:10px 11px;color:var(--ink);font:inherit;outline:none}input:focus,select:focus{border-color:#77b9b2;box-shadow:0 0 0 3px rgba(14,118,110,.08)}.inline-form input,.inline-form select{width:auto;min-width:110px}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:20px;margin-bottom:18px}.card-head{display:flex;justify-content:space-between;gap:10px;align-items:flex-start;margin-bottom:16px}.card-head h2{margin:0;font-size:17px}.card-head p{margin:5px 0 0;color:var(--muted);font-size:12px}.kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:18px}.kpi{background:#fff;border:1px solid var(--line);border-radius:14px;padding:17px;box-shadow:var(--shadow)}.kpi span{display:block;color:var(--muted);font-size:12px;margin-bottom:9px}.kpi strong{display:block;font-size:22px;letter-spacing:-.03em}.kpi small{display:block;color:#91a09c;margin-top:6px}.compact .kpi strong{font-size:18px}.grid-2{display:grid;grid-template-columns:1.45fr 1fr;gap:18px}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;font-size:13px}th{color:#73817e;text-align:left;font-weight:700;font-size:11px;text-transform:uppercase;letter-spacing:.04em;padding:10px;border-bottom:1px solid var(--line);white-space:nowrap}td{padding:11px 10px;border-bottom:1px solid #edf2f1;vertical-align:middle}td small{display:block;color:var(--muted);margin-top:3px}.right{text-align:right}.empty{text-align:center;color:var(--muted);padding:28px}.row-actions{display:flex;gap:8px;justify-content:flex-end;align-items:center;white-space:nowrap}.row-actions form,.subline form{display:inline}.link{background:none;border:0;color:var(--brand);cursor:pointer;padding:0;font:inherit}.danger,.text-danger{color:var(--danger)!important}.badge{display:inline-flex;padding:5px 8px;border-radius:999px;font-size:11px;font-weight:750;background:#eef3f2}.badge-success{background:#e3f5ed;color:#0a7049}.badge-danger{background:#fde8e8;color:#a72e2e}.badge-warning{background:#fff2d8;color:#8d5b06}.badge-info{background:#e5f0f8;color:#245d85}.badge-muted{background:#eff2f2;color:#65716f}.type-dot{display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:7px}.type-dot.entrada{background:#27a36f}.type-dot.saida{background:#d75858}.form-card{border-top:3px solid var(--brand)}.form-grid{display:grid;gap:13px}.form-grid.cols-2{grid-template-columns:repeat(2,1fr)}.form-grid.cols-3{grid-template-columns:repeat(3,1fr)}label{font-size:12px;font-weight:650;color:#53615e}label input,label select{margin-top:6px;font-weight:400}.span-2{grid-column:span 2}.span-3{grid-column:span 3}.actions{display:flex;justify-content:flex-end}.section-row td,.section-row{background:#163a35!important;color:#fff!important;font-weight:800!important;text-transform:uppercase;letter-spacing:.04em}.total-row td{font-weight:800;border-top:2px solid #9fb8b3}.result-row td{font-weight:850;background:#e8f5f2;border-top:2px solid var(--brand)}.dre-table td,.dre-table th{white-space:nowrap}.goals-table input{min-width:95px;text-align:right;padding:8px}.health-mini h3{margin:12px 0 6px}.health-mini p{color:var(--muted);font-size:13px;line-height:1.55}.gauge{height:110px;display:grid;place-items:center}.gauge-value{width:180px;height:90px;border-radius:180px 180px 0 0;background:conic-gradient(from 270deg at 50% 100%,#db5353 0 25%,#e4a539 25% 50%,#67a7aa 50% 75%,#2e9b6e 75% 100%);position:relative;overflow:hidden}.gauge-value:after{content:"";position:absolute;left:22px;right:22px;bottom:-1px;height:68px;background:#fff;border-radius:100px 100px 0 0}.gauge-value strong{position:absolute;z-index:2;bottom:5px;left:0;right:0;text-align:center;font-size:21px}.health-full{padding:28px}.health-header{display:flex;justify-content:space-between;align-items:center;gap:30px}.health-header h2{font-size:25px;margin:12px 0 8px}.health-header p{max-width:720px;color:var(--muted);line-height:1.6}.score-ring{width:150px;height:150px;border-radius:50%;display:grid;place-items:center;align-content:center;background:conic-gradient(var(--brand) calc(var(--score)*1%),#e5ecea 0);position:relative;flex:0 0 auto}.score-ring:after{content:"";position:absolute;inset:15px;background:#fff;border-radius:50%}.score-ring strong,.score-ring span{z-index:1}.score-ring strong{font-size:30px}.score-ring span{font-size:11px;color:var(--muted)}.health-scale{display:grid;grid-template-columns:repeat(4,1fr);margin-top:20px;border-radius:12px;overflow:hidden}.health-scale div{padding:12px;text-align:center;font-weight:800}.health-scale div:nth-child(1){background:#fbe1e1}.health-scale div:nth-child(2){background:#fff0cf}.health-scale div:nth-child(3){background:#dfefef}.health-scale div:nth-child(4){background:#dff2e9}.health-scale small{display:block;font-weight:500;margin-top:3px}.kpi-list{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--line);border:1px solid var(--line);border-radius:12px;overflow:hidden}.kpi-list div{background:#fff;padding:20px}.kpi-list span{display:block;color:var(--muted);font-size:12px}.kpi-list strong{display:block;margin-top:8px;font-size:20px}.alert{padding:12px 14px;border-radius:11px;margin-bottom:16px;font-size:13px}.alert-success{background:#e5f5ed;color:#0b6847;border:1px solid #bde2cf}.alert-danger{background:#fdeaea;color:#9b2d2d;border:1px solid #f4c6c6}.alert-warning{background:#fff3d9;color:#7a540b}.hint,.muted{color:var(--muted);font-size:12px}.cadastro-layout{grid-template-columns:380px 1fr}.subline{display:flex;gap:5px;align-items:center;color:var(--muted);font-size:12px;margin-top:5px}.mini-form{display:flex;gap:6px;margin-top:8px}.mini-form input{max-width:220px;padding:7px 9px}.auth-body{min-height:100vh;background:radial-gradient(circle at top left,#d6f0eb,transparent 42%),#f3f7f6;display:grid;place-items:center;padding:24px}.login-card,.install-card{width:min(460px,100%);background:#fff;border:1px solid var(--line);border-radius:20px;box-shadow:0 22px 60px rgba(16,37,34,.12);padding:28px}.install-card{width:min(650px,100%)}.install-head{display:flex;gap:13px;align-items:center;margin-bottom:22px}.install-head h1{margin:0;font-size:22px}.install-head p{margin:4px 0 0;color:var(--muted);font-size:12px}.install-card h3{margin:12px 0 0;font-size:14px}.small{font-size:11px;line-height:1.5}@media(max-width:1050px){.kpi-grid{grid-template-columns:repeat(2,1fr)}.grid-2{grid-template-columns:1fr}.cadastro-layout{grid-template-columns:1fr}}@media(max-width:780px){.sidebar{transform:translateX(-100%);transition:.2s}.sidebar.open{transform:translateX(0)}.main{margin-left:0}.menu-btn{display:block;margin-right:12px}.content{padding:16px}.topbar{padding:0 16px}.kpi-grid{grid-template-columns:1fr}.form-grid.cols-3,.form-grid.cols-2{grid-template-columns:1fr}.span-2,.span-3{grid-column:span 1}.health-header{flex-direction:column;align-items:flex-start}.health-scale{grid-template-columns:1fr 1fr}.inline-form{width:100%}.inline-form input,.inline-form select,.inline-form .btn{flex:1;min-width:0}.toolbar>.btn{width:100%;text-align:center}}
.feature-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.feature-card{border:1px solid var(--line);background:#f9fbfa;border-radius:13px;padding:15px}.feature-card strong{display:block;margin-bottom:6px}.feature-card span{font-size:12px;color:var(--muted);line-height:1.45}.stock-low{background:#fff5f5}.stock-ok{background:#f7fbfa}.metric-positive{color:var(--success)}.metric-negative{color:var(--danger)}.tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px}.tabs a{padding:8px 11px;border:1px solid var(--line);border-radius:9px;background:#fff}.tabs a.active{background:var(--brand);color:#fff;border-color:var(--brand)}.form-help{font-size:11px;color:var(--muted);margin-top:4px}.split-title{display:flex;justify-content:space-between;gap:12px;align-items:center}.warning-box{padding:12px;border:1px solid #efd69e;background:#fff7e7;border-radius:11px;color:#77520a;font-size:12px}.pill-group{display:flex;gap:6px;flex-wrap:wrap}.stock-summary{font-size:12px;color:var(--muted)}
@media(max-width:1050px){.feature-grid{grid-template-columns:1fr 1fr}}@media(max-width:780px){.feature-grid{grid-template-columns:1fr}}
.check-row{display:flex!important;align-items:center;gap:8px}.check-row input[type=checkbox]{width:auto!important;margin:0!important}.sidebar nav{padding-bottom:18px}

/* SNARY VISUAL V3.7 */
:root{--bg:#f5f5f3;--card:#fff;--ink:#111;--muted:#6c6c68;--line:#e5e5e1;--brand:#111;--brand2:#333;--sidebar:#090909;--shadow:0 8px 28px rgba(0,0,0,.07)}
body{background:var(--bg);color:var(--ink)}a{color:#111}.sidebar{background:#090909}.sidebar nav a,.sidebar-foot a{color:#cfcfcb}.sidebar nav a:hover,.sidebar nav a.active{background:#252525;color:#fff}.nav-label{color:#888}.sidebar-foot{border-top-color:#2e2e2e}.brand{padding-top:2px}.brand-logo-wrap{width:58px;height:48px;border-radius:10px;background:#fff;display:grid;place-items:center;overflow:hidden;flex:0 0 auto}.brand-logo{width:100%;height:100%;object-fit:contain;background:#fff;padding:2px}.brand strong{font-size:16px}.brand span{color:#aaa}.btn-primary{background:#111;border-color:#111}.btn-primary:hover{background:#333;border-color:#333}.tabs a.active{background:#111;border-color:#111}.form-card{border-top-color:#111}input:focus,select:focus,textarea:focus{border-color:#777;box-shadow:0 0 0 3px rgba(0,0,0,.07)}.topbar{background:rgba(255,255,255,.94)}.topbar-title{flex:1}.print-btn{margin-left:auto;background:#111;color:#fff;border-color:#111}.print-btn:hover{background:#333;color:#fff}.section-row td,.section-row{background:#1d1d1d!important}.result-row td{border-top-color:#111}.report-brand-strip{display:flex;align-items:center;gap:16px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:14px 18px;margin-bottom:18px;box-shadow:var(--shadow)}.report-brand-strip img{width:90px;height:58px;object-fit:contain}.report-brand-strip div{display:flex;flex-direction:column;gap:3px;flex:1}.report-brand-strip strong{font-size:16px}.report-brand-strip span{font-size:13px;color:var(--muted)}.report-brand-strip small{color:var(--muted);font-size:11px}.auth-body{background:radial-gradient(circle at top left,#ececea,transparent 44%),#f5f5f3}.login-card{width:min(440px,100%);padding:34px;border-radius:22px}.login-brand{text-align:center;margin-bottom:26px}.login-brand img{display:block;width:min(255px,80%);height:145px;object-fit:contain;margin:0 auto 10px}.login-brand h1{margin:0;font-size:24px;letter-spacing:-.02em}.login-brand p{margin:6px 0 0;color:var(--muted);font-size:12px}.login-card .btn-primary{padding:13px}.badge-success{background:#e9f2ed;color:#125f42}.badge-danger{background:#f6e8e8}.badge-warning{background:#f5efe1}.badge-info{background:#e9edf0;color:#394b57}
@media(max-width:780px){.brand-logo-wrap{width:52px;height:44px}.report-brand-strip{align-items:flex-start;flex-wrap:wrap}.report-brand-strip small{width:100%}.print-btn{padding:8px 10px;font-size:12px}}
@media print{
  @page{size:A4;margin:12mm}
  body{background:#fff!important;color:#000!important;font-size:11px}
  .sidebar,.topbar,.toolbar,.btn,.row-actions,.tabs,.sidebar-foot,.menu-btn,.print-btn{display:none!important}
  .main{margin-left:0!important}.content{padding:0!important;max-width:none!important;margin:0!important}
  .report-brand-strip{display:flex!important;border:0!important;border-bottom:2px solid #111!important;border-radius:0!important;box-shadow:none!important;padding:0 0 10px!important;margin:0 0 14px!important;break-inside:avoid}
  .report-brand-strip img{width:100px!important;height:64px!important}.report-brand-strip strong{font-size:17px!important}.report-brand-strip span{font-size:13px!important}.report-brand-strip small{font-size:10px!important}
  .card,.kpi{box-shadow:none!important;border-color:#d5d5d5!important;break-inside:avoid}.card{padding:12px!important;margin-bottom:10px!important}.kpi{padding:10px!important}
  .kpi-grid{gap:8px!important;margin-bottom:10px!important}.grid-2{gap:10px!important}table{font-size:10px!important}th,td{padding:6px!important}
  canvas{max-height:210px!important}.health-mini,.health-full{break-inside:avoid}.alert{display:none!important}
  a{color:#000!important;text-decoration:none!important}.badge{border:1px solid #bbb!important;background:#fff!important;color:#000!important}
  .no-print{display:none!important}
}


/* ORDENS DE SERVIÇO V3.8 */
.os-items-table input{min-width:80px}.os-items-table .os-model{min-width:180px}.os-items-table .os-ref{min-width:110px}.os-items-table .os-size{min-width:75px}.os-items-table .os-qty{min-width:90px}.os-items-table .os-price{min-width:105px}.os-order-head{display:flex;justify-content:space-between;gap:18px;align-items:flex-start}.os-code{font-size:24px;font-weight:850;letter-spacing:-.03em}.os-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:14px}.os-summary div{border:1px solid var(--line);border-radius:10px;padding:10px;background:#fafafa}.os-summary span{display:block;font-size:11px;color:var(--muted);margin-bottom:5px}.os-summary strong{font-size:16px}.os-row-remove{white-space:nowrap}.os-instructions{line-height:1.55;white-space:pre-wrap}.os-model-total{font-weight:750}.os-print-links{display:flex;gap:8px;flex-wrap:wrap}
@media(max-width:900px){.os-summary{grid-template-columns:1fr 1fr}.os-order-head{flex-direction:column}.os-items-table{min-width:900px}}
@media(max-width:600px){.os-summary{grid-template-columns:1fr}}

/* GRADE DE SERVIÇOS V4.0 */
.service-models-wrap{border:1px solid var(--line);border-radius:14px;padding:16px;background:#fafafa}.service-models-title{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;margin-bottom:14px}.service-models-title h3{margin:0 0 4px;font-size:15px}.service-models-title p{margin:0;color:var(--muted);font-size:12px;line-height:1.45}.service-model-block{border:1px solid #deded9;border-radius:13px;background:#fff;padding:14px;margin-top:12px}.service-model-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}.service-model-head strong{font-size:14px}.service-model-remove{border:0;background:transparent;color:var(--danger);font-weight:700;cursor:pointer;padding:4px 0}.service-model-meta{display:grid;grid-template-columns:minmax(220px,1.4fr) minmax(180px,1fr) 150px;gap:10px;align-items:end}.service-model-meta label{margin:0}.service-model-total{border:1px solid var(--line);border-radius:10px;background:#f7f7f5;padding:9px 12px;min-height:42px;display:grid;grid-template-columns:1fr auto;gap:2px 7px;align-items:center}.service-model-total span{font-size:10px;color:var(--muted);grid-column:1/-1}.service-model-total strong{font-size:18px;line-height:1}.service-model-total small{font-size:11px;color:var(--muted)}.service-sizes{display:grid;grid-template-columns:repeat(11,minmax(58px,1fr));gap:7px;margin-top:12px}.service-size-field{display:block!important;margin:0!important}.service-size-field span{display:block;text-align:center;font-size:11px;font-weight:800;margin-bottom:4px}.service-size-field input{width:100%;min-width:0;text-align:center;padding:9px 5px}.service-grand-total{display:flex;justify-content:flex-end;align-items:baseline;gap:5px;margin-top:13px;padding-top:11px;border-top:1px dashed #d4d4cf;font-size:12px}.service-grand-total strong{font-size:20px}.service-grade-details{margin-top:6px}.service-grade-details summary{cursor:pointer;font-size:11px;font-weight:800;color:#333}.service-grade-line{margin-top:7px;padding:7px 8px;border:1px solid var(--line);border-radius:8px;background:#fafafa;font-size:11px;min-width:260px}.service-grade-line small{display:block;margin-top:4px;line-height:1.45}.service-models-title .btn:disabled{opacity:.55;cursor:not-allowed}
@media(max-width:1150px){.service-sizes{grid-template-columns:repeat(6,minmax(58px,1fr))}}
@media(max-width:780px){.service-models-title{flex-direction:column}.service-models-title .btn{width:100%}.service-model-meta{grid-template-columns:1fr}.service-sizes{grid-template-columns:repeat(4,minmax(55px,1fr))}.service-grand-total{justify-content:flex-start}}
@media print{.service-model-remove,#addModelBtn{display:none!important}.service-models-wrap{break-inside:avoid}}
