:root,:root[data-theme=dark]{--bg: #0a0c11;--surface: #12151c;--surface-raised: #171b24;--border: #242938;--text: #eceef2;--text-muted: #8890a0;--accent: #6366f1;--accent-fg: #ffffff;--ok: #22c55e;--warn: #f04747;--caution: #f5a524;--unknown: #8890a0;--shadow: 0 1px 2px rgba(0, 0, 0, .4), 0 4px 16px rgba(0, 0, 0, .24);--radius: 12px;--radius-sm: 8px;color-scheme:dark}:root[data-theme=light]{--bg: #f6f7fb;--surface: #ffffff;--surface-raised: #ffffff;--border: #e4e7ee;--text: #14161f;--text-muted: #656d80;--accent: #4f46e5;--accent-fg: #ffffff;--ok: #16a34a;--warn: #dc2626;--caution: #d97706;--unknown: #7d8698;--shadow: 0 1px 2px rgba(20, 22, 31, .06), 0 8px 24px rgba(20, 22, 31, .06);color-scheme:light}*{box-sizing:border-box}html,body{margin:0;height:100%}body{background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Inter,Roboto,sans-serif;-webkit-font-smoothing:antialiased}a{color:var(--accent);text-decoration:none}h1,h2,h3{letter-spacing:-.01em}.app-layout{display:flex;min-height:100vh}.sidebar{width:232px;flex-shrink:0;background:var(--surface);border-right:1px solid var(--border);display:flex;flex-direction:column;padding:20px 12px;position:sticky;top:0;height:100vh}.sidebar-brand{display:flex;align-items:center;gap:10px;padding:4px 10px 24px;font-weight:700;font-size:15px;color:var(--text)}.sidebar-brand-icon{width:30px;height:30px;border-radius:8px;background:var(--accent);color:var(--accent-fg);display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:800;flex-shrink:0}.sidebar-nav{display:flex;flex-direction:column;gap:2px}.sidebar-link{display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:var(--radius-sm);color:var(--text-muted);font-size:13.5px;font-weight:500}.sidebar-link:hover{background:var(--surface-raised);color:var(--text)}.sidebar-link.active{background:color-mix(in srgb,var(--accent) 14%,transparent);color:var(--accent)}.sidebar-link svg{flex-shrink:0}.sidebar-footer{margin-top:auto;display:flex;flex-direction:column;gap:4px;padding-top:12px;border-top:1px solid var(--border)}.sidebar-toggle{display:none}.main-content{flex:1;min-width:0;padding:28px 32px 64px;max-width:1180px}.mobile-topbar{display:none}@media (max-width: 860px){.sidebar{position:fixed;z-index:40;left:0;transform:translate(-100%);transition:transform .18s ease;box-shadow:var(--shadow)}.sidebar.open{transform:translate(0)}.sidebar-backdrop{display:none;position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;z-index:30}.sidebar-backdrop.open{display:block}.main-content{padding:16px 16px 48px}.mobile-topbar{display:flex;align-items:center;gap:12px;padding:4px 0 8px}.sidebar-toggle{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface);color:var(--text)}}.app-header{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:24px;flex-wrap:wrap}.app-header h1{font-size:21px;margin:0;font-weight:700}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px;box-shadow:var(--shadow)}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px}.bucket-card{display:flex;flex-direction:column;gap:8px;transition:border-color .15s ease,transform .15s ease}.bucket-card:hover{border-color:color-mix(in srgb,var(--accent) 40%,var(--border));transform:translateY(-1px)}.bucket-card.has-problem{border-color:color-mix(in srgb,var(--warn) 45%,var(--border))}.bucket-card-head{display:flex;align-items:center;gap:8px}.bucket-card h3{margin:0;font-size:13.5px;font-weight:600;word-break:break-all;flex:1}.bucket-type-icon{color:var(--text-muted);flex-shrink:0}.muted{color:var(--text-muted);font-size:12.5px}.row-icon{display:inline-flex;align-items:center;gap:6px}.badge{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600;padding:3px 9px;border-radius:999px;width:fit-content}.badge svg{flex-shrink:0}.badge-ok{background:color-mix(in srgb,var(--ok) 16%,transparent);color:var(--ok)}.badge-problema{background:color-mix(in srgb,var(--warn) 16%,transparent);color:var(--warn)}.badge-sem_dados{background:color-mix(in srgb,var(--unknown) 16%,transparent);color:var(--unknown)}button.primary{display:inline-flex;align-items:center;gap:8px;background:var(--accent);color:var(--accent-fg);border:none;border-radius:var(--radius-sm);padding:9px 16px;font-size:13.5px;font-weight:600;cursor:pointer;transition:filter .15s ease}button.primary:hover:not(:disabled){filter:brightness(1.08)}button.primary:disabled{opacity:.6;cursor:default}button.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface);color:var(--text-muted);cursor:pointer}button.icon-btn:hover{color:var(--text);border-color:color-mix(in srgb,var(--accent) 40%,var(--border))}.toggle-group{display:flex;gap:4px}.toggle-group button{background:var(--surface);border:1px solid var(--border);color:var(--text-muted);border-radius:var(--radius-sm);padding:5px 13px;font-size:13px;cursor:pointer}.toggle-group button.active{background:var(--accent);color:var(--accent-fg);border-color:var(--accent)}.alert-row{display:flex;flex-direction:column;gap:4px;padding:13px 0;border-bottom:1px solid var(--border)}.alert-row:last-child{border-bottom:none}.section-title{font-size:14.5px;font-weight:600;margin:26px 0 12px;display:flex;align-items:center;gap:8px}.loading,.error-box,.empty-box{padding:32px 16px;text-align:center;color:var(--text-muted);font-size:13.5px}.error-box{color:var(--warn)}.skeleton{background:linear-gradient(90deg,var(--surface-raised) 0%,color-mix(in srgb,var(--surface-raised) 60%,var(--border)) 50%,var(--surface-raised) 100%);background-size:200% 100%;animation:skeleton-shimmer 1.4s ease-in-out infinite;border-radius:var(--radius-sm)}@keyframes skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.spin{animation:spin .9s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}
