:root{--brand-950: #021d25;--brand-900: #00303c;--brand-800: #0a4152;--brand-700: #135a70;--brand-600: #1d7391;--brand-500: #2e8fb0;--brand-300: #7cc0d8;--brand-100: #d9edf4;--amber-600: #c98200;--amber-500: #e8851f;--amber-300: #f4b25e;--danger: #b23341;--success: #1a7f37;--radius-sm: 6px;--radius: 10px;--radius-lg: 16px;--shadow-1: 0 1px 2px rgba(2, 29, 37, .08), 0 1px 6px rgba(2, 29, 37, .06);--shadow-2: 0 4px 12px rgba(2, 29, 37, .12), 0 2px 4px rgba(2, 29, 37, .08);--shadow-3: 0 12px 32px rgba(2, 29, 37, .18);--font: "Segoe UI", system-ui, -apple-system, "Helvetica Neue", Arial, sans-serif;--transition: .16s cubic-bezier(.4, 0, .2, 1)}:root,:root[data-theme=light]{color-scheme:light;--bg: #f2f5f7;--bg-elevated: #ffffff;--bg-sunken: #e7edf0;--text: #14232b;--text-secondary: #4a5b64;--text-muted: #7b8a92;--border: #d6dfe3;--border-strong: #b7c5cb;--interactive: var(--brand-700);--interactive-hover: var(--brand-800);--focus-ring: 0 0 0 3px rgba(29, 115, 145, .35);--header-bg: linear-gradient(135deg, #00303c 0%, #06455a 100%);--card-hover-border: var(--brand-500);--scrim: rgba(2, 29, 37, .45)}:root[data-theme=dark]{color-scheme:dark;--bg: #0b161b;--bg-elevated: #11212a;--bg-sunken: #081014;--text: #e4edf1;--text-secondary: #a5b6bd;--text-muted: #6f8188;--border: #1e3340;--border-strong: #2d4859;--interactive: var(--brand-300);--interactive-hover: #a3d4e6;--focus-ring: 0 0 0 3px rgba(124, 192, 216, .35);--header-bg: linear-gradient(135deg, #021d25 0%, #05303f 100%);--card-hover-border: var(--brand-500);--scrim: rgba(0, 0, 0, .6);--shadow-1: 0 1px 2px rgba(0, 0, 0, .3), 0 1px 6px rgba(0, 0, 0, .25);--shadow-2: 0 4px 12px rgba(0, 0, 0, .4), 0 2px 4px rgba(0, 0, 0, .3);--shadow-3: 0 12px 32px rgba(0, 0, 0, .5)}*,*:before,*:after{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:var(--font);font-size:15px;line-height:1.5;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;transition:background-color var(--transition),color var(--transition)}button,input,select,textarea{font:inherit;color:inherit}a{color:var(--interactive);text-decoration:none}a:hover{text-decoration:underline}:focus-visible{outline:none;box-shadow:var(--focus-ring);border-radius:var(--radius-sm)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:9px 18px;border:1px solid transparent;border-radius:var(--radius);font-weight:600;font-size:14px;cursor:pointer;transition:background var(--transition),border-color var(--transition),color var(--transition),transform var(--transition);-webkit-user-select:none;user-select:none;white-space:nowrap}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:var(--brand-700);color:#fff}.btn-primary:hover:not(:disabled){background:var(--brand-800)}:root[data-theme=dark] .btn-primary{background:var(--brand-600)}:root[data-theme=dark] .btn-primary:hover:not(:disabled){background:var(--brand-700)}.btn-secondary{background:transparent;border-color:var(--border-strong);color:var(--text)}.btn-secondary:hover:not(:disabled){border-color:var(--interactive);color:var(--interactive)}.btn-danger{background:transparent;border-color:var(--danger);color:var(--danger)}.btn-danger:hover:not(:disabled){background:var(--danger);color:#fff}.btn-ghost{background:transparent;color:var(--text-secondary);padding:8px 10px}.btn-ghost:hover:not(:disabled){color:var(--text);background:var(--bg-sunken)}.btn-sm{padding:5px 12px;font-size:13px}.field{display:flex;flex-direction:column;gap:6px;margin-bottom:14px}.field label{font-size:13px;font-weight:600;color:var(--text-secondary)}.field .hint{font-size:12px;color:var(--text-muted)}.field .error{font-size:12px;color:var(--danger)}.input,select.input,textarea.input{width:100%;padding:9px 12px;border:1px solid var(--border-strong);border-radius:var(--radius);background:var(--bg-elevated);transition:border-color var(--transition)}.input:focus{border-color:var(--interactive)}.input[aria-invalid=true]{border-color:var(--danger)}.badge{display:inline-flex;align-items:center;gap:4px;padding:2px 9px;border-radius:999px;font-size:11.5px;font-weight:600;letter-spacing:.02em}.badge-neutral{background:var(--bg-sunken);color:var(--text-secondary)}.badge-brand{background:color-mix(in srgb,var(--brand-500) 15%,transparent);color:var(--interactive)}.badge-amber{background:color-mix(in srgb,var(--amber-500) 18%,transparent);color:var(--amber-600)}:root[data-theme=dark] .badge-amber{color:var(--amber-300)}.badge-danger{background:color-mix(in srgb,var(--danger) 14%,transparent);color:var(--danger)}.badge-success{background:color-mix(in srgb,var(--success) 14%,transparent);color:var(--success)}.app-header{background:var(--header-bg);color:#fff;padding:0 clamp(16px,4vw,40px);height:64px;display:flex;align-items:center;gap:20px;box-shadow:var(--shadow-2);position:sticky;top:0;z-index:40}.app-header .logo{height:34px;display:block}.app-header .header-title{font-size:15px;font-weight:300;letter-spacing:.14em;text-transform:uppercase;color:#ffffffd9;border-left:1px solid rgba(255,255,255,.25);padding-left:16px;line-height:1.2}.app-header .spacer{flex:1}.header-btn{display:inline-flex;align-items:center;gap:7px;background:transparent;border:none;color:#ffffffd1;padding:8px 10px;border-radius:var(--radius);cursor:pointer;font-size:13.5px;transition:background var(--transition),color var(--transition)}.header-btn:hover{background:#ffffff1f;color:#fff}.header-user{display:flex;align-items:center;gap:10px;color:#ffffffe6;font-size:13.5px}.header-user .avatar{width:32px;height:32px;border-radius:50%;background:#ffffff29;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:13px;letter-spacing:.02em}.page{max-width:1280px;margin:0 auto;padding:clamp(16px,3vw,32px) clamp(16px,4vw,40px) 64px}.home-toolbar{display:flex;align-items:center;gap:16px;margin-bottom:28px;flex-wrap:wrap}.search-box{position:relative;flex:1;min-width:240px;max-width:480px}.search-box svg{position:absolute;left:13px;top:50%;transform:translateY(-50%);color:var(--text-muted);pointer-events:none}.search-box input{width:100%;padding:11px 14px 11px 42px;border:1px solid var(--border-strong);border-radius:12px;background:var(--bg-elevated);font-size:14.5px;box-shadow:var(--shadow-1)}.group-section{margin-bottom:30px}.group-heading{display:flex;align-items:center;gap:10px;width:100%;margin:0 0 14px;padding:6px 8px 6px 4px;background:none;border:none;border-radius:var(--radius);cursor:pointer;text-align:left;transition:background var(--transition)}.group-heading:hover{background:color-mix(in srgb,var(--brand-500) 7%,transparent)}.group-heading h2{font-size:14px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--text-secondary);margin:0;transition:color var(--transition)}.group-heading:hover h2{color:var(--text)}.group-heading .chevron{color:var(--text-muted);flex-shrink:0;transition:transform var(--transition),color var(--transition)}.group-heading[aria-expanded=false] .chevron{transform:rotate(-90deg)}.group-heading:hover .chevron{color:var(--interactive)}.group-heading .count{font-size:11.5px;font-weight:600;color:var(--text-muted);background:var(--bg-sunken);padding:2px 9px;border-radius:999px;white-space:nowrap}.group-heading .accent{flex:1;height:1px;background:linear-gradient(90deg,color-mix(in srgb,var(--amber-500) 55%,transparent),transparent 70%)}.group-body{display:grid;grid-template-rows:1fr;transition:grid-template-rows .26s cubic-bezier(.4,0,.2,1),opacity .2s ease;opacity:1}.group-body.collapsed{grid-template-rows:0fr;opacity:0}.group-body>div{overflow:hidden;min-height:0}.cards-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,268px),1fr));gap:14px;padding:2px}@keyframes card-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.cards-grid>*{animation:card-in .32s cubic-bezier(.2,.8,.25,1) both}@media (prefers-reduced-motion: reduce){.cards-grid>*,.group-body{animation:none;transition:none}}.home-actions{display:flex;align-items:center;gap:8px}.system-card{position:relative;display:flex;gap:14px;align-items:flex-start;padding:16px;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-1);cursor:pointer;text-align:left;width:100%;overflow:hidden;transition:border-color var(--transition),box-shadow var(--transition),transform var(--transition)}.system-card:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;opacity:0;background:radial-gradient(420px circle at 100% 0%,color-mix(in srgb,var(--card-accent, var(--brand-500)) 16%,transparent),transparent 60%);transition:opacity var(--transition)}.system-card:hover{border-color:var(--card-accent, var(--card-hover-border));box-shadow:var(--shadow-2);transform:translateY(-3px)}.system-card:hover:after{opacity:1}.system-card:active{transform:translateY(-1px)}.system-card .icon-wrap{width:46px;height:46px;border-radius:12px;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:16px;color:#fff;overflow:hidden;box-shadow:0 4px 12px color-mix(in srgb,var(--card-accent, var(--brand-700)) 35%,transparent);transition:transform var(--transition)}.system-card:hover .icon-wrap{transform:scale(1.05)}.system-card .go-hint{position:absolute;right:14px;bottom:14px;color:var(--card-accent, var(--interactive));opacity:0;transform:translate(-4px);transition:opacity var(--transition),transform var(--transition);pointer-events:none}.system-card:hover .go-hint{opacity:.9;transform:none}.system-card .icon-wrap img{width:100%;height:100%;object-fit:cover}.system-card .card-body{min-width:0;flex:1}.system-card h3{margin:0 0 3px;font-size:14.5px;font-weight:650;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.system-card p{margin:0;font-size:12.8px;color:var(--text-secondary);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.system-card .card-meta{display:flex;gap:6px;margin-top:8px;flex-wrap:wrap}.system-card .fav-btn{position:absolute;top:10px;right:10px;background:none;border:none;cursor:pointer;color:var(--text-muted);padding:4px;border-radius:6px;opacity:0;transition:opacity var(--transition),color var(--transition)}.system-card:hover .fav-btn,.system-card .fav-btn.active{opacity:1}.system-card .fav-btn.active{color:var(--amber-500)}.system-card.unavailable{opacity:.6;cursor:not-allowed}.login-shell{min-height:100%;display:grid;place-items:center;background:radial-gradient(1100px 500px at 85% -10%,rgba(46,143,176,.25),transparent 60%),radial-gradient(800px 400px at -10% 110%,rgba(232,133,31,.12),transparent 55%),linear-gradient(150deg,#021d25,#00303c 55%,#06455a);padding:24px}.login-card{width:100%;max-width:400px;background:var(--bg-elevated);border-radius:20px;box-shadow:var(--shadow-3);padding:40px 36px 32px;animation:rise .38s cubic-bezier(.2,.8,.25,1)}@keyframes rise{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}.login-logo-band{display:flex;justify-content:center;margin:-40px -36px 28px;padding:30px 0 26px;background:var(--header-bg);border-radius:20px 20px 0 0}.login-logo-band img{height:44px}.login-card h1{margin:0 0 4px;font-size:19px;font-weight:650;text-align:center}.login-card .subtitle{margin:0 0 26px;text-align:center;color:var(--text-secondary);font-size:13.5px}.login-footer{margin-top:22px;text-align:center;font-size:12px;color:var(--text-muted)}.alert{padding:11px 14px;border-radius:var(--radius);font-size:13.5px;margin-bottom:16px;border:1px solid}.alert-error{background:color-mix(in srgb,var(--danger) 8%,transparent);border-color:color-mix(in srgb,var(--danger) 35%,transparent);color:var(--danger)}.alert-info{background:color-mix(in srgb,var(--brand-500) 10%,transparent);border-color:color-mix(in srgb,var(--brand-500) 35%,transparent);color:var(--interactive)}.admin-shell{display:grid;grid-template-columns:232px 1fr;min-height:calc(100vh - 64px)}.admin-nav{background:var(--bg-elevated);border-right:1px solid var(--border);padding:20px 12px;display:flex;flex-direction:column;gap:2px}.admin-nav .nav-label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--text-muted);padding:14px 12px 6px}.admin-nav a{display:flex;align-items:center;gap:10px;padding:9px 12px;border-radius:var(--radius);color:var(--text-secondary);font-size:13.8px;font-weight:500;transition:background var(--transition),color var(--transition)}.admin-nav a:hover{background:var(--bg-sunken);color:var(--text);text-decoration:none}.admin-nav a.active{background:color-mix(in srgb,var(--brand-500) 14%,transparent);color:var(--interactive);font-weight:600}.admin-content{padding:clamp(18px,3vw,32px);min-width:0}.admin-content h1{font-size:21px;margin:0 0 4px}.admin-content .page-desc{color:var(--text-secondary);font-size:13.8px;margin:0 0 24px}.panel{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-1);overflow:hidden}.panel+.panel{margin-top:18px}.panel-head{display:flex;align-items:center;gap:12px;padding:14px 18px;border-bottom:1px solid var(--border);flex-wrap:wrap}.panel-head h2{font-size:15px;margin:0;flex:1}.table-wrap{overflow-x:auto}table.data{width:100%;border-collapse:collapse;font-size:13.5px}table.data th{text-align:left;padding:10px 16px;font-size:11.5px;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);border-bottom:1px solid var(--border);white-space:nowrap}table.data td{padding:11px 16px;border-bottom:1px solid var(--border);vertical-align:middle}table.data tr:last-child td{border-bottom:none}table.data tr:hover td{background:color-mix(in srgb,var(--brand-500) 4%,transparent)}.row-actions{display:flex;gap:6px;justify-content:flex-end}.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:14px;margin-bottom:18px}.stat-tile{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-lg);padding:16px 18px;box-shadow:var(--shadow-1)}.stat-tile .stat-label{font-size:12px;color:var(--text-muted);font-weight:600;text-transform:uppercase;letter-spacing:.05em}.stat-tile .stat-value{font-size:26px;font-weight:700;margin-top:4px;color:var(--text)}.stat-tile.accent .stat-value{color:var(--interactive)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--scrim);display:grid;place-items:center;z-index:100;padding:20px;animation:fade .14s ease}@keyframes fade{0%{opacity:0}}.modal{background:var(--bg-elevated);border-radius:var(--radius-lg);box-shadow:var(--shadow-3);width:100%;max-width:560px;max-height:90vh;display:flex;flex-direction:column;animation:rise .24s cubic-bezier(.2,.8,.25,1)}.modal.wide{max-width:760px}.modal-head{display:flex;align-items:center;padding:18px 22px 0}.modal-head h2{font-size:17px;margin:0;flex:1}.modal-body{padding:18px 22px;overflow-y:auto}.modal-foot{display:flex;justify-content:flex-end;gap:10px;padding:14px 22px 20px;border-top:1px solid var(--border)}.toast-stack{position:fixed;bottom:20px;right:20px;display:flex;flex-direction:column;gap:10px;z-index:200}.toast{background:var(--bg-elevated);color:var(--text);border:1px solid var(--border-strong);border-left:4px solid var(--interactive);border-radius:var(--radius);box-shadow:var(--shadow-2);padding:12px 18px;font-size:13.8px;max-width:360px;animation:rise .2s ease}.toast.error{border-left-color:var(--danger)}.toast.success{border-left-color:var(--success)}.empty-state{text-align:center;padding:56px 24px;color:var(--text-secondary)}.empty-state svg{color:var(--text-muted);margin-bottom:12px}.empty-state h3{margin:0 0 6px;font-size:16px;color:var(--text)}.empty-state p{margin:0;font-size:13.5px}.spinner{width:22px;height:22px;border:2.5px solid color-mix(in srgb,var(--interactive) 25%,transparent);border-top-color:var(--interactive);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.center-fill{display:grid;place-items:center;min-height:240px}.skeleton{background:linear-gradient(90deg,var(--bg-sunken) 25%,var(--border) 50%,var(--bg-sunken) 75%);background-size:200% 100%;animation:shimmer 1.3s infinite;border-radius:var(--radius)}@keyframes shimmer{to{background-position:-200% 0}}.pagination{display:flex;align-items:center;gap:12px;padding:12px 18px;font-size:13px;color:var(--text-secondary)}.icon-preview-card{border:1px dashed var(--border-strong);border-radius:var(--radius-lg);padding:14px;background:var(--bg-sunken)}.sso-box{border:1px solid var(--border);border-radius:var(--radius-lg);padding:14px 16px;background:var(--bg-sunken);margin-bottom:16px}.sso-head{display:flex;align-items:center;gap:8px;margin-bottom:8px;color:var(--text)}.sso-head svg{color:var(--interactive)}.sso-credenciais{margin-top:12px}.sso-linha{display:flex;align-items:center;gap:8px;padding:6px 0;border-bottom:1px solid var(--border)}.sso-linha:last-child{border-bottom:none}.sso-rotulo{font-size:11.5px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);min-width:118px;flex-shrink:0}.sso-linha code{flex:1;font-size:12.5px;word-break:break-all;background:var(--bg-elevated);padding:4px 8px;border-radius:var(--radius-sm);border:1px solid var(--border)}@media (max-width: 900px){.admin-shell{grid-template-columns:1fr}.admin-nav{flex-direction:row;overflow-x:auto;border-right:none;border-bottom:1px solid var(--border);padding:8px 12px}.admin-nav .nav-label{display:none}.admin-nav a{white-space:nowrap}}@media (max-width: 640px){.app-header{height:56px;gap:12px}.app-header .logo{height:26px}.app-header .header-title,.header-user .username{display:none}.cards-grid{grid-template-columns:1fr}.page{padding-bottom:40px}}
