:root{--primary:#0b4f8a;--primary-2:#1976d2;--bg:#f3f6fb;--panel:#fff;--text:#172033;--muted:#667085;--line:#e6ebf2;--ok:#139b5c;--warn:#d99000;--danger:#c83b3b;--shadow:0 18px 40px rgba(16,24,40,.08);--radius:18px}*{box-sizing:border-box}body{margin:0;font-family:Segoe UI,Roboto,Arial,sans-serif;color:var(--text);background:var(--bg)}a{text-decoration:none;color:inherit}.login-page{min-height:100vh;background:radial-gradient(circle at top left,#e8f3ff,#f7f9fc 45%,#dbe9f7);display:flex;align-items:center;justify-content:center;padding:28px}.login-shell{width:min(1120px,100%);display:grid;grid-template-columns:1.1fr .85fr;border-radius:28px;overflow:hidden;box-shadow:var(--shadow);background:white}.login-brand-panel{position:relative;min-height:560px;padding:56px;background:linear-gradient(145deg,#073f70,#0b4f8a 55%,#1976d2);color:#fff;display:flex;flex-direction:column;justify-content:center}.brand-watermark{position:absolute;right:35px;bottom:25px;font-size:120px;font-weight:900;opacity:.07}.login-logo{width:170px;max-height:135px;object-fit:contain;background:rgba(255,255,255,.94);border-radius:24px;padding:18px;margin-bottom:28px}.login-brand-panel h1{font-size:42px;margin:0 0 12px}.login-brand-panel p{font-size:18px;line-height:1.5;opacity:.95}.login-badges{display:flex;flex-wrap:wrap;gap:10px;margin-top:28px}.login-badges span{background:rgba(255,255,255,.14);padding:10px 14px;border-radius:999px}.login-card{padding:56px;display:flex;flex-direction:column;justify-content:center}.login-card h2{font-size:30px;margin:0 0 8px}.muted{color:var(--muted)}label{display:block;font-weight:700;margin:18px 0 7px}input,select,textarea{width:100%;border:1px solid var(--line);border-radius:12px;padding:13px 14px;font-size:15px;background:#fff}input:focus,select:focus,textarea:focus{outline:2px solid rgba(25,118,210,.18);border-color:var(--primary-2)}button,.btn-primary{border:0;border-radius:12px;background:linear-gradient(135deg,var(--primary),var(--primary-2));color:white;font-weight:800;padding:13px 18px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center}.full{width:100%;margin-top:24px}.alert{padding:12px 14px;border-radius:12px;margin:15px 0}.alert-danger{background:#fff1f1;color:#a62626;border:1px solid #ffd1d1}.app-layout{display:flex;min-height:100vh}.sidebar{width:284px;background:#082f54;color:white;display:flex;flex-direction:column;position:fixed;inset:0 auto 0 0;z-index:20}.sidebar-brand{padding:22px;display:flex;gap:14px;align-items:center;border-bottom:1px solid rgba(255,255,255,.1)}.sidebar-brand img{width:58px;height:58px;object-fit:contain;background:#fff;border-radius:14px;padding:7px}.sidebar-brand strong{display:block;font-size:18px}.sidebar-brand span{font-size:13px;opacity:.75}.sidebar-nav{padding:14px;overflow:auto}.nav-item{display:flex;gap:12px;align-items:center;padding:11px 13px;border-radius:13px;color:rgba(255,255,255,.83);font-weight:650;margin:2px 0}.nav-item:hover,.nav-item.active{background:rgba(255,255,255,.13);color:#fff}.nav-icon{width:22px;text-align:center}.sidebar-footer{padding:14px;border-top:1px solid rgba(255,255,255,.1)}.logout{color:#ffdcdc}.main-content{margin-left:284px;flex:1;min-width:0}.topbar{height:74px;background:rgba(255,255,255,.88);backdrop-filter:blur(12px);border-bottom:1px solid var(--line);display:flex;align-items:center;gap:18px;padding:0 28px;position:sticky;top:0;z-index:10}.topbar strong{display:block;font-size:20px}.topbar span{display:block;color:var(--muted);font-size:13px}.topbar-user{margin-left:auto;background:#eef5ff;color:var(--primary);padding:10px 14px;border-radius:999px;font-weight:800}.menu-toggle{display:none;background:white;color:var(--primary);border:1px solid var(--line);padding:9px 12px}.content{padding:28px}.hero{background:linear-gradient(135deg,#0b4f8a,#1976d2);border-radius:var(--radius);padding:28px;color:white;box-shadow:var(--shadow);display:flex;justify-content:space-between;gap:20px;align-items:center;margin-bottom:24px}.hero h1{margin:0 0 6px}.hero p{opacity:.9;margin:0}.badge{display:inline-flex;border-radius:999px;padding:8px 12px;background:rgba(255,255,255,.16);font-weight:800}.grid{display:grid;gap:18px}.cards{grid-template-columns:repeat(4,minmax(0,1fr))}.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:20px;box-shadow:0 10px 25px rgba(16,24,40,.04)}.metric-title{color:var(--muted);font-weight:750;font-size:14px}.metric-value{font-size:34px;font-weight:900;margin:8px 0}.metric-foot{font-size:13px;color:var(--muted)}.metric.ok .metric-value{color:var(--ok)}.metric.warn .metric-value{color:var(--warn)}.metric.danger .metric-value{color:var(--danger)}.two-col{grid-template-columns:1.2fr .8fr;margin-top:18px}.section-title{font-size:18px;font-weight:900;margin:0 0 14px}.ops-list{display:flex;flex-direction:column;gap:10px}.ops-item{display:flex;gap:12px;align-items:flex-start;padding:13px;border:1px solid var(--line);border-radius:14px;background:#fbfcff}.dot{width:11px;height:11px;border-radius:50%;margin-top:5px}.dot.ok{background:var(--ok)}.dot.warn{background:var(--warn)}.dot.danger{background:var(--danger)}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:12px;border-bottom:1px solid var(--line);vertical-align:top}th{color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.04em}.status{display:inline-flex;border-radius:999px;padding:5px 10px;font-size:12px;font-weight:800}.status.ok{background:#e8f7ef;color:#087344}.status.warn{background:#fff7df;color:#8a5b00}.status.danger{background:#ffecec;color:#a62626}.placeholder{text-align:center;padding:55px 20px;color:var(--muted)}.placeholder h2{color:var(--text)}.actions{display:flex;gap:10px;flex-wrap:wrap}.btn-light{border:1px solid var(--line);background:white;color:var(--primary);padding:10px 12px;border-radius:12px;font-weight:800}.app-footer{padding:18px 28px;color:var(--muted);display:flex;justify-content:space-between;border-top:1px solid var(--line)}@media(max-width:1100px){.cards{grid-template-columns:repeat(2,1fr)}.two-col{grid-template-columns:1fr}.login-shell{grid-template-columns:1fr}.login-brand-panel{min-height:360px}}@media(max-width:780px){.sidebar{transform:translateX(-100%);transition:.25s}.sidebar-open .sidebar{transform:translateX(0)}.main-content{margin-left:0}.menu-toggle{display:inline-flex}.topbar{padding:0 16px}.content{padding:18px}.cards{grid-template-columns:1fr}.hero{flex-direction:column;align-items:flex-start}.login-card,.login-brand-panel{padding:32px}.app-footer{flex-direction:column;gap:8px}}


/* Sprint 3 */
.toolbar{display:flex;justify-content:space-between;gap:14px;align-items:center;margin-bottom:18px;flex-wrap:wrap}.filters{display:grid;grid-template-columns:2fr 1fr 1fr 1fr auto;gap:10px;margin-bottom:18px}.btn-danger{border:0;background:#c83b3b;color:#fff;padding:10px 12px;border-radius:12px;font-weight:800}.btn-success{border:0;background:#139b5c;color:#fff;padding:10px 12px;border-radius:12px;font-weight:800}.form-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.form-grid .span-2{grid-column:span 2}.form-grid .span-3{grid-column:span 3}.checkbox-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:10px}.check-card{border:1px solid var(--line);border-radius:12px;padding:12px;background:#fbfcff;display:flex;gap:8px;align-items:center}.page-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 18px}.page-tabs a{padding:10px 13px;border:1px solid var(--line);border-radius:999px;background:#fff;color:var(--primary);font-weight:800}.page-tabs a.active{background:var(--primary);color:#fff}.table-actions{display:flex;gap:7px;flex-wrap:wrap}.mini{font-size:12px;padding:7px 9px}.status.disponivel,.status.proprio{background:#e8f7ef;color:#087344}.status.em_uso,.status.alugado{background:#eef5ff;color:#0b4f8a}.status.manutencao,.status.cedido{background:#fff7df;color:#8a5b00}.status.extraviado,.status.inativo{background:#ffecec;color:#a62626}.status.outro{background:#f2f4f7;color:#344054}.label-preview{width:360px;max-width:100%;border:2px solid #172033;border-radius:14px;padding:18px;text-align:center;background:#fff}.label-preview img.logo{width:95px;max-height:70px;object-fit:contain}.label-code{font-size:42px;font-weight:950;margin:8px 0}.qrbox{width:145px;height:145px;border:2px dashed #98a2b3;margin:12px auto;display:flex;align-items:center;justify-content:center;color:#667085;border-radius:8px}.subcard{border:1px solid var(--line);border-radius:14px;padding:14px;background:#fbfcff;margin-bottom:12px}@media(max-width:1000px){.filters,.form-grid{grid-template-columns:1fr}.form-grid .span-2,.form-grid .span-3{grid-column:span 1}.checkbox-grid{grid-template-columns:1fr}}


/* Sprint 3.1 - páginas de produção */
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.form-grid .full{grid-column:1/-1}.form-field label{display:block;font-weight:700;margin-bottom:6px;color:#26384d}.form-field input,.form-field select,.form-field textarea,.filters input,.filters select{width:100%;padding:10px 12px;border:1px solid #d8e1ec;border-radius:10px;background:#fff;color:#1d2b3a}.form-field textarea{min-height:90px}.actions-row{display:flex;gap:10px;align-items:center;margin-top:18px;flex-wrap:wrap}.btn-danger{background:#b91c1c;color:#fff;padding:10px 14px;border-radius:10px;text-decoration:none;border:0;cursor:pointer}.btn-success{background:#15803d;color:#fff;padding:10px 14px;border-radius:10px;text-decoration:none;border:0;cursor:pointer}.btn-warning{background:#d97706;color:#fff;padding:10px 14px;border-radius:10px;text-decoration:none;border:0;cursor:pointer}.message{padding:12px 14px;border-radius:12px;margin:0 0 14px 0}.message.ok{background:#dcfce7;color:#166534;border:1px solid #bbf7d0}.message.err{background:#fee2e2;color:#991b1b;border:1px solid #fecaca}.status.ativo,.status.ativa,.status.ok,.status.disponivel,.status.bom,.status.excelente{background:#dcfce7;color:#166534}.status.inativo,.status.inativa,.status.extraviado,.status.critico,.status.danificado{background:#fee2e2;color:#991b1b}.status.atencao,.status.manutencao,.status.regular,.status.ruim{background:#fef3c7;color:#92400e}.status.em_uso,.status.alugado,.status.proprio,.status.cedido{background:#dbeafe;color:#1e40af}.two-cols{display:grid;grid-template-columns:1.1fr .9fr;gap:18px}.timeline{border-left:3px solid #cbd5e1;margin-left:10px;padding-left:16px}.timeline-item{margin-bottom:14px}.timeline-item strong{display:block}.quick-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.public-page{min-height:100vh;background:linear-gradient(135deg,#0b4f8a,#153e75);display:flex;align-items:center;justify-content:center;padding:20px}.public-card{max-width:560px;width:100%;background:white;border-radius:22px;padding:28px;box-shadow:0 30px 90px rgba(0,0,0,.25);text-align:left}.public-card img{max-width:180px;display:block;margin:0 auto 18px}.public-card h1{text-align:center;margin:0 0 10px}.public-card p{text-align:center;color:#64748b}.label-inline{display:flex;gap:8px;align-items:center;margin:8px 0}@media(max-width:900px){.form-grid,.two-cols,.quick-cards{grid-template-columns:1fr}}

/* Sprint 3.2 Real - Administração e RBAC */
.nav-group-title{padding:14px 18px 6px;color:#9ca3af;font-size:11px;text-transform:uppercase;letter-spacing:.08em;font-weight:700}.permission-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px}.permission-group{border:1px solid #e5e7eb;border-radius:14px;padding:14px;background:#fff}.permission-group h3{margin:0 0 10px;color:#0B4F8A}.check-line{display:flex;gap:8px;align-items:flex-start;padding:7px 0;border-bottom:1px dashed #edf2f7}.check-line:last-child{border-bottom:0}.check-line small{display:block;color:#64748b;margin-top:2px}.admin-tabs{display:flex;gap:10px;flex-wrap:wrap;margin:0 0 18px}.admin-tabs a{padding:9px 12px;border-radius:10px;background:#eef2f7;color:#0B4F8A;text-decoration:none;font-weight:700}.admin-tabs a.active{background:#0B4F8A;color:#fff}.badge-soft{display:inline-block;padding:4px 8px;border-radius:999px;background:#eef6ff;color:#0B4F8A;font-size:12px;font-weight:700}.danger-text{color:#b91c1c}.success-text{color:#166534}.form-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:14px}.help-box{background:#f8fafc;border:1px solid #e2e8f0;border-left:4px solid #0B4F8A;border-radius:12px;padding:14px;margin:12px 0}.inline-actions{display:flex;gap:8px;flex-wrap:wrap}.mini-form{display:inline}.mini-form button{border:0;cursor:pointer}

/* Release 0.5.0 - Cadastro e fotos de rádios */
.section-separator{border:0;border-top:1px solid var(--line);margin:26px 0}.photo-upload-grid{display:grid;grid-template-columns:minmax(220px,.75fr) minmax(280px,1.25fr);gap:22px;align-items:center}.radio-photo-preview-wrap{display:flex;justify-content:flex-start}.radio-photo-preview{width:100%;max-width:360px;height:260px;object-fit:contain;border:1px solid var(--line);border-radius:16px;background:#f8fafc;padding:8px}.radio-photo-placeholder{width:100%;max-width:360px;height:260px;border:2px dashed #cbd5e1;border-radius:16px;background:#f8fafc;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;font-size:58px;color:#64748b}.radio-photo-placeholder span{font-size:14px;font-weight:700}.radio-photo-placeholder.large{max-width:none;height:320px}.radio-profile-grid{grid-template-columns:.75fr 1.35fr .9fr}.radio-profile-photo{width:100%;height:320px;object-fit:contain;border:1px solid var(--line);border-radius:16px;background:#f8fafc;padding:8px}.radio-list-thumb,.radio-list-placeholder{width:64px;height:64px;border-radius:12px;border:1px solid var(--line);background:#f8fafc}.radio-list-thumb{object-fit:cover}.radio-list-placeholder{display:flex;align-items:center;justify-content:center;font-size:28px}.table-scroll{overflow-x:auto}.radio-photo-card{min-width:0}@media(max-width:1100px){.radio-profile-grid{grid-template-columns:1fr 1fr}.radio-profile-grid>.card:last-child{grid-column:1/-1}}@media(max-width:800px){.photo-upload-grid,.radio-profile-grid{grid-template-columns:1fr}.radio-profile-grid>.card:last-child{grid-column:auto}.radio-photo-preview,.radio-photo-placeholder{max-width:none}}

/* Release 0.5.1 - Responsável atual + Timeline */
.responsible-head,.timeline-header{display:flex;justify-content:space-between;gap:18px;align-items:flex-start}.responsible-head .section-title,.timeline-header .section-title{margin-bottom:4px}.responsible-grid{display:grid;grid-template-columns:64px 1fr;gap:16px;align-items:center;margin-top:16px;padding:18px;border:1px solid var(--border,#e5e7eb);border-radius:14px;background:rgba(127,127,127,.035)}.responsible-avatar{width:64px;height:64px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:25px;font-weight:800;background:#eef2ff;color:#3730a3}.responsible-name{font-size:1.2rem;font-weight:800;margin-bottom:4px}.responsible-meta{display:flex;gap:22px;flex-wrap:wrap;margin-top:10px;font-size:.92rem}.responsible-note{margin:12px 0 0;padding:10px 12px;border-left:3px solid #94a3b8;background:rgba(148,163,184,.08);border-radius:0 8px 8px 0}.empty-responsible{display:flex;flex-direction:column;gap:5px;margin-top:14px;padding:20px;border:1px dashed #cbd5e1;border-radius:12px}.history-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.history-summary>div{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:90px;border:1px solid var(--border,#e5e7eb);border-radius:12px}.history-summary strong{font-size:1.6rem}.history-summary span{font-size:.85rem;opacity:.72}.timeline-count{white-space:nowrap;font-size:.85rem;padding:6px 10px;border-radius:999px;background:rgba(127,127,127,.1)}.radio-timeline{position:relative;margin-top:18px}.timeline-item{position:relative;display:grid;grid-template-columns:28px 1fr;gap:10px;padding-bottom:20px}.timeline-item:not(:last-child):before{content:"";position:absolute;left:7px;top:15px;bottom:0;width:2px;background:#e2e8f0}.timeline-dot{width:16px;height:16px;border-radius:50%;margin-top:3px;background:#64748b;border:3px solid #fff;box-shadow:0 0 0 2px #cbd5e1;z-index:1}.type-entrega .timeline-dot{background:#2563eb}.type-devolucao .timeline-dot{background:#16a34a}.type-prova_vida .timeline-dot{background:#7c3aed}.type-cadastro .timeline-dot{background:#475569}.timeline-body{padding:0 0 2px}.timeline-top{display:flex;justify-content:space-between;gap:12px;margin-bottom:5px}.timeline-top time{font-size:.82rem;opacity:.7;white-space:nowrap}.timeline-note{margin-top:7px;padding:8px 10px;background:rgba(127,127,127,.07);border-radius:8px;font-size:.9rem}@media(max-width:760px){.responsible-head,.timeline-header,.timeline-top{flex-direction:column}.responsible-grid{grid-template-columns:1fr}.responsible-avatar{width:52px;height:52px}.history-summary{grid-template-columns:1fr}.timeline-top time{white-space:normal}}

/* Release 0.6.0 — QR Code + Prova de Vida */
.label-page-card{display:grid;grid-template-columns:minmax(360px,420px) 1fr;gap:28px;align-items:start}.qr-label{width:380px}.qr-real{width:184px;min-height:184px;margin:14px auto;padding:8px;background:#fff;border:1px solid #d7dee8;border-radius:10px;display:flex;align-items:center;justify-content:center}.qr-real img,.qr-real canvas{display:block!important;margin:auto!important;max-width:168px}.qr-error{font-size:12px;color:#a62626;text-align:center}.label-data{margin-top:5px}.label-help{font-size:11px;font-weight:700;margin-top:10px;color:#344054}.label-info{padding:10px 4px}.url-code{display:block;max-width:100%;padding:12px;border-radius:10px;background:#f5f7fa;border:1px solid #e3e8ef;overflow-wrap:anywhere;font-size:12px}.proof-kicker{text-align:center;text-transform:uppercase;letter-spacing:.1em;font-size:11px;font-weight:900;color:#0b4f8a}.proof-card{max-width:610px}.proof-card h2{text-align:center}.proof-success-icon{width:72px;height:72px;border-radius:50%;display:flex;align-items:center;justify-content:center;margin:18px auto;background:#dcfce7;color:#166534;font-size:38px;font-weight:900}.proof-radio-code{font-size:28px;margin:12px 0}.proof-radio-summary{display:grid;grid-template-columns:64px 1fr;gap:14px;align-items:center;padding:15px;border:1px solid #dce5ef;border-radius:14px;background:#f8fbff;margin:20px 0 12px}.proof-radio-summary strong,.proof-radio-summary span,.proof-radio-summary small{display:block}.proof-radio-summary strong{font-size:22px;color:#0b4f8a}.proof-radio-summary span{font-weight:700}.proof-radio-summary small{color:#667085;margin-top:3px}.proof-radio-icon{width:58px;height:58px;border-radius:14px;background:#e9f3ff;display:flex;align-items:center;justify-content:center;font-size:30px}.proof-owner{padding:14px;border-left:4px solid #1976d2;background:#f4f9ff;border-radius:0 12px 12px 0;margin-bottom:18px}.proof-owner span,.proof-owner strong,.proof-owner small{display:block}.proof-owner span{font-size:12px;text-transform:uppercase;letter-spacing:.05em;color:#667085;font-weight:800}.proof-owner strong{font-size:18px;margin:3px 0}.proof-owner small{color:#667085}.proof-form{margin-top:18px}.proof-question{border:0;padding:0;margin:0 0 15px}.proof-question legend{font-weight:800;margin-bottom:8px}.choice-card{display:flex;gap:10px;align-items:center;border:1px solid #d8e1ec;border-radius:12px;padding:12px 14px;margin:8px 0;cursor:pointer;background:#fff}.choice-card input{width:auto;margin:0}.proof-two-cols{display:grid;grid-template-columns:1fr 1fr;gap:14px}.proof-submit{font-size:16px}.proof-privacy{font-size:11px!important;margin-top:16px!important}.proof-alert{margin-top:18px}.proof-metrics{margin-top:0}.table-scroll{overflow-x:auto}.row-attention{background:#fff8f2}.proof-inline{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:14px;padding-top:14px;border-top:1px solid #e5eaf0}.proof-inline>div{display:flex;flex-direction:column;gap:2px}.proof-dashboard-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:14px}.proof-dashboard-grid>div{padding:16px;border:1px solid #e5eaf0;border-radius:14px;text-align:center;background:#fbfcff}.proof-dashboard-grid strong{display:block;font-size:28px;color:#139b5c}.proof-dashboard-grid span{display:block;color:#667085;font-size:12px;font-weight:800;margin-top:3px}.proof-dashboard-grid .warn strong{color:#d99000}.proof-dashboard-grid .danger strong{color:#c83b3b}
@media(max-width:900px){.label-page-card{grid-template-columns:1fr}.qr-label{width:100%;max-width:380px;margin:auto}.proof-dashboard-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:620px){.proof-two-cols{grid-template-columns:1fr}.proof-dashboard-grid{grid-template-columns:1fr}.public-card.proof-card{padding:22px 17px}.proof-radio-summary{grid-template-columns:52px 1fr}.proof-radio-icon{width:48px;height:48px;font-size:25px}}
@media print{.no-print,.sidebar,.topbar,.app-footer{display:none!important}.main-content{margin-left:0!important}.content{padding:0!important}.label-page-card{display:block;border:0!important;box-shadow:none!important;padding:0!important}.label-preview.qr-label{margin:0 auto;border:2px solid #111!important;box-shadow:none!important;break-inside:avoid}.qr-real{border:0}.body{background:#fff}}
.inline-resolve{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.inline-resolve input{min-width:190px;padding:8px 10px;border:1px solid #dbe4ee;border-radius:9px}.actions.compact{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.row-attention{background:#fffaf0}.proof-two-cols{grid-template-columns:repeat(2,minmax(0,1fr))}@media(max-width:700px){.proof-two-cols{grid-template-columns:1fr}.inline-resolve input{min-width:100%;width:100%}}


/* =========================================================
   USM UI 0.7.8 — Cards modernos / profundidade visual
   ========================================================= */
.card.metric,
.os-status-card{
    position:relative;
    overflow:hidden;
    isolation:isolate;
    box-shadow:0 8px 22px rgba(15,43,72,.055);
    transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.card.metric::after,
.os-status-card::after{
    content:"";
    position:absolute;
    width:150px;
    height:90px;
    right:-38px;
    bottom:-50px;
    border-radius:50%;
    background:linear-gradient(135deg,rgba(25,118,210,.08),rgba(25,118,210,.015));
    z-index:-1;
    transform:rotate(-9deg);
}
.card.metric:hover,
.os-status-card:hover{
    transform:translateY(-4px);
    box-shadow:0 16px 34px rgba(15,43,72,.12);
}
.metric-modern{
    min-height:138px;
    padding-right:72px !important;
    border-color:#e1e9f1 !important;
}
.metric-modern .metric-title{
    font-size:12px;
    text-transform:uppercase;
    letter-spacing:.025em;
    font-weight:850;
}
.metric-modern .metric-value{
    font-size:36px;
    letter-spacing:-1px;
    margin:10px 0 7px;
}
.metric-modern .metric-foot{
    line-height:1.35;
}
.metric-icon{
    position:absolute;
    right:17px;
    top:17px;
    width:46px;
    height:46px;
    border-radius:50%;
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:21px;
    background:#edf5ff;
    color:#1769aa;
    box-shadow:inset 0 0 0 1px rgba(23,105,170,.05);
}
.metric-blue{border-color:#d8e7f7 !important}
.metric-blue .metric-icon{background:#eaf3ff;color:#1769aa}
.metric-blue::after{background:linear-gradient(135deg,rgba(23,105,170,.12),rgba(23,105,170,.01)) !important}
.metric-green{border-color:#d8efe5 !important}
.metric-green .metric-icon{background:#e7f8f0;color:#129461}
.metric-green::after{background:linear-gradient(135deg,rgba(18,148,97,.12),rgba(18,148,97,.01)) !important}
.metric-orange{border-color:#f2e5cf !important}
.metric-orange .metric-icon{background:#fff3df;color:#d88a13}
.metric-orange::after{background:linear-gradient(135deg,rgba(216,138,19,.13),rgba(216,138,19,.01)) !important}
.metric-red{border-color:#f4dede !important}
.metric-red .metric-icon{background:#fff0f0;color:#d34e4e}
.metric-red::after{background:linear-gradient(135deg,rgba(211,78,78,.12),rgba(211,78,78,.01)) !important}
.metric-purple{border-color:#e8dcf7 !important}
.metric-purple .metric-icon{background:#f3eaff;color:#8156c7}
.metric-purple::after{background:linear-gradient(135deg,rgba(129,86,199,.13),rgba(129,86,199,.01)) !important}
.metric-cyan{border-color:#d8edf1 !important}
.metric-cyan .metric-icon{background:#e7f8fb;color:#16879b}
.metric-cyan::after{background:linear-gradient(135deg,rgba(22,135,155,.12),rgba(22,135,155,.01)) !important}

/* destaque para links-card / filtros */
.radio-metric-link.active .card,
.os-status-card.active{
    outline:none !important;
    border-color:#77aedd !important;
    box-shadow:0 13px 31px rgba(20,91,151,.14), inset 0 0 0 1px rgba(23,105,170,.12);
}
.radio-metric-link:hover .card{
    transform:translateY(-4px) !important;
    box-shadow:0 16px 34px rgba(15,43,72,.12) !important;
}

/* Cards internos do dashboard do inventário */
.proof-dashboard-grid > div{
    position:relative;
    overflow:hidden;
    border:1px solid #e2eaf1;
    box-shadow:0 7px 18px rgba(15,43,72,.045);
    transition:.18s ease;
}
.proof-dashboard-grid > div:hover{
    transform:translateY(-3px);
    box-shadow:0 13px 26px rgba(15,43,72,.09);
}

/* Contêineres de análise */
.chart-card{
    border-color:#dfe8f0 !important;
    box-shadow:0 14px 34px rgba(15,43,72,.075) !important;
}
.chart-wrap{
    border-radius:16px;
    background:linear-gradient(180deg,#ffffff 0%,#fbfdff 100%);
    padding:10px 4px 4px;
}
.chart-tooltip{
    position:absolute;
    z-index:30;
    min-width:190px;
    max-width:260px;
    pointer-events:none;
    background:rgba(255,255,255,.98);
    border:1px solid #dde6ef;
    border-radius:13px;
    box-shadow:0 14px 38px rgba(20,43,67,.16);
    padding:12px 14px;
    opacity:0;
    transform:translateY(6px);
    transition:opacity .12s ease,transform .12s ease;
    color:#26384d;
    font-size:13px;
}
.chart-tooltip.show{opacity:1;transform:translateY(0)}
.chart-tooltip strong{display:block;font-size:14px;margin-bottom:8px;color:#16283a}
.chart-tooltip-row{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:5px 0}
.chart-tooltip-dot{width:9px;height:9px;border-radius:50%;display:inline-block;margin-right:7px}
.chart-tooltip-value{font-weight:900;color:#12243a}
.chart-legend .legend-item{
    padding:7px 10px;
    border:1px solid #e4ebf2;
    border-radius:10px;
    background:#fff;
    box-shadow:0 4px 12px rgba(15,43,72,.035);
}
