:root{--bg-dark: #090d16;--bg-surface: #0f172a;--bg-card: rgba(15, 23, 42, .75);--border-color: rgba(255, 255, 255, .08);--border-focus: rgba(99, 102, 241, .5);--text-primary: #f8fafc;--text-secondary: #94a3b8;--text-muted: #64748b;--accent-primary: #6366f1;--accent-primary-hover: #4f46e5;--accent-cyan: #0ea5e9;--accent-emerald: #10b981;--accent-amber: #f59e0b;--accent-rose: #ef4444;--badge-emerald-bg: rgba(16, 185, 129, .15);--badge-emerald-text: #34d399;--badge-amber-bg: rgba(245, 158, 11, .15);--badge-amber-text: #fbbf24;--badge-rose-bg: rgba(239, 68, 68, .15);--badge-rose-text: #f87171;--badge-indigo-bg: rgba(99, 102, 241, .15);--badge-indigo-text: #818cf8;--badge-cyan-bg: rgba(14, 165, 233, .15);--badge-cyan-text: #38bdf8;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 16px;--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, .05);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .3), 0 2px 4px -1px rgba(0, 0, 0, .2);--shadow-lg: 0 10px 25px -5px rgba(0, 0, 0, .5), 0 8px 10px -6px rgba(0, 0, 0, .4);--shadow-glow: 0 0 20px rgba(99, 102, 241, .25);--transition-fast: .15s ease;--transition-normal: .25s ease}*{box-sizing:border-box;margin:0;padding:0}body{font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif;background-color:var(--bg-dark);color:var(--text-primary);line-height:1.5;min-height:100vh;background-image:radial-gradient(at 15% 15%,rgba(99,102,241,.12) 0px,transparent 50%),radial-gradient(at 85% 85%,rgba(14,165,233,.1) 0px,transparent 50%);background-attachment:fixed}.app-layout{min-height:100vh;display:flex;flex-direction:column}.badge{display:inline-flex;align-items:center;gap:.3rem;padding:2px 7px;border-radius:4px;font-size:.7rem;font-weight:600;white-space:nowrap}.badge-emerald{background:var(--badge-emerald-bg);color:var(--badge-emerald-text);border:1px solid rgba(16,185,129,.3)}.badge-amber{background:var(--badge-amber-bg);color:var(--badge-amber-text);border:1px solid rgba(245,158,11,.3)}.badge-rose{background:var(--badge-rose-bg);color:var(--badge-rose-text);border:1px solid rgba(239,68,68,.3)}.badge-indigo{background:var(--badge-indigo-bg);color:var(--badge-indigo-text);border:1px solid rgba(99,102,241,.3)}.badge-cyan{background:var(--badge-cyan-bg);color:var(--badge-cyan-text);border:1px solid rgba(14,165,233,.3)}.glass-panel{background:var(--bg-card);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid var(--border-color);border-radius:var(--radius-md);box-shadow:var(--shadow-lg)}.app-header{position:sticky;top:0;z-index:50;background:#090d16d9;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--border-color);padding:.85rem 1.5rem}.header-container{max-width:1360px;margin:0 auto;display:flex;align-items:center;justify-content:space-between}.brand-section{display:flex;align-items:center;gap:.75rem}.brand-icon{width:40px;height:40px;border-radius:var(--radius-md);background:linear-gradient(135deg,var(--accent-primary),var(--accent-cyan));display:flex;align-items:center;justify-content:center;color:#fff;box-shadow:0 4px 12px #6366f166}.brand-title{font-size:1.15rem;font-weight:700;letter-spacing:-.02em;background:linear-gradient(to right,#fff,#cbd5e1);-webkit-background-clip:text;-webkit-text-fill-color:transparent}.brand-subtitle{font-size:.75rem;color:var(--text-secondary)}.main-content{max-width:1360px;width:100%;margin:1.5rem auto;padding:0 1.25rem 3rem}.nav-role-switcher{display:flex;background:#0f172ae6;padding:4px;border-radius:20px;border:1px solid var(--border-color)}.role-btn{display:flex;align-items:center;gap:.5rem;padding:.45rem 1rem;font-size:.825rem;font-weight:600;color:var(--text-secondary);border-radius:16px;border:none;background:transparent;cursor:pointer;transition:all var(--transition-fast)}.role-btn.active{background:var(--accent-primary);color:#fff;box-shadow:0 2px 8px #6366f166}.form-group{margin-bottom:1.15rem}.form-label{display:block;font-size:.8rem;font-weight:600;color:var(--text-secondary);margin-bottom:.35rem}.form-input,.form-select,.form-textarea{width:100%;padding:.55rem .8rem;background:#0f172acc;border:1px solid var(--border-color);border-radius:var(--radius-sm);color:var(--text-primary);font-size:.85rem;font-family:inherit;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.form-input:focus,.form-select:focus,.form-textarea:focus{outline:none;border-color:var(--accent-primary);box-shadow:0 0 0 3px #6366f133}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;padding:.5rem 1.1rem;font-size:.825rem;font-weight:600;border-radius:var(--radius-sm);border:none;cursor:pointer;transition:all var(--transition-fast);text-decoration:none}.btn-primary{background:linear-gradient(135deg,var(--accent-primary),var(--accent-primary-hover));color:#fff;box-shadow:0 4px 12px #6366f14d}.btn-secondary{background:#ffffff14;color:var(--text-primary);border:1px solid var(--border-color)}.btn-secondary:hover{background:#ffffff26}.btn-emerald{background:var(--accent-emerald);color:#fff}.btn-emerald:hover{background:#059669}.kpi-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:.85rem;margin-bottom:1.25rem}@media (max-width: 1080px){.kpi-grid{grid-template-columns:repeat(3,1fr)}}@media (max-width: 640px){.kpi-grid{grid-template-columns:repeat(1,1fr)}}.kpi-card{padding:.85rem 1rem;background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-md);display:flex;flex-direction:column;justify-content:space-between;min-height:104px}.kpi-title{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted)}.kpi-value{font-size:1.5rem;font-weight:800;color:var(--text-primary);line-height:1.2;margin:.2rem 0}.kpi-subtitle{font-size:.7rem;color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.custom-table{width:100%;border-collapse:collapse;text-align:left;font-size:.78rem}.custom-table th{background:#0f172af2;color:var(--text-muted);font-weight:700;font-size:.68rem;text-transform:uppercase;letter-spacing:.05em;padding:.6rem .65rem;border-bottom:1px solid var(--border-color);white-space:nowrap}.custom-table td{padding:.6rem .65rem;border-bottom:1px solid rgba(255,255,255,.04);vertical-align:middle;color:var(--text-secondary);font-size:.78rem}.custom-table tr:hover td{background:#ffffff08;color:var(--text-primary)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;background:#000000bf;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;padding:1rem}.modal-container{width:100%;max-width:680px;max-height:90vh;overflow-y:auto;background:var(--bg-surface);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:1.75rem;box-shadow:var(--shadow-lg);animation:modalFadeIn .2s ease-out}@keyframes modalFadeIn{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}.photo-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.75rem;margin-top:.75rem}.photo-thumb-card{position:relative;aspect-ratio:4 / 3;border-radius:var(--radius-sm);overflow:hidden;border:1px solid var(--border-color);background:#0f172a}.photo-thumb-img{width:100%;height:100%;object-fit:cover}.photo-thumb-remove{position:absolute;top:4px;right:4px;background:#ef4444e6;color:#fff;border:none;border-radius:50%;width:22px;height:22px;display:flex;align-items:center;justify-content:center;cursor:pointer}.banner-autodiscovery{background:linear-gradient(135deg,#6366f126,#0ea5e926);border:1px solid var(--accent-primary);border-radius:var(--radius-md);padding:1.25rem;display:flex;align-items:center;gap:1rem}.tooltip-container{position:relative;display:inline-flex;align-items:center;cursor:help;margin-left:4px}.tooltip-content{visibility:hidden;position:absolute;bottom:125%;left:50%;transform:translate(-50%);background:#0f172a;color:#f8fafc;border:1px solid var(--accent-cyan);padding:.75rem 1rem;border-radius:var(--radius-sm);font-size:.75rem;width:280px;z-index:50;opacity:0;transition:opacity .2s ease,visibility .2s ease;box-shadow:var(--shadow-lg);pointer-events:none}.tooltip-container:hover .tooltip-content{visibility:visible;opacity:1}
