*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg: #0f1117;--bg-card: #1a1d27;--bg-hover: #242836;--border: #2a2e3a;--text: #e4e4e7;--text-muted: #9ca3af;--primary: #6366f1;--primary-hover: #818cf8;--success: #10b981;--warning: #f59e0b;--danger: #ef4444;--radius: 8px}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,system-ui,sans-serif;background:var(--bg);color:var(--text);line-height:1.5;min-height:100vh}a{color:var(--primary);text-decoration:none}a:hover{color:var(--primary-hover)}button{cursor:pointer;border:none;border-radius:var(--radius);padding:8px 16px;font-size:14px;font-weight:500;transition:background .15s}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover{background:var(--primary-hover)}.btn-danger{background:var(--danger);color:#fff}.btn-danger:hover{background:#dc2626}.btn-ghost{background:transparent;color:var(--text-muted);border:1px solid var(--border)}.btn-ghost:hover{background:var(--bg-hover);color:var(--text)}.btn-success{background:var(--success);color:#fff}.btn-success:hover{background:#059669}input,select,textarea{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);padding:8px 12px;font-size:14px;color:var(--text);width:100%;outline:none;transition:border-color .15s}input:focus,select:focus,textarea:focus{border-color:var(--primary)}.card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:20px}.layout{display:flex;min-height:100vh}.sidebar{width:240px;background:var(--bg-card);border-right:1px solid var(--border);padding:20px;display:flex;flex-direction:column;position:fixed;top:0;left:0;height:100vh}.sidebar h1{font-size:16px;margin-bottom:24px;color:var(--primary)}.sidebar nav{display:flex;flex-direction:column;gap:4px;flex:1}.sidebar nav a,.sidebar nav button{display:block;padding:8px 12px;border-radius:var(--radius);color:var(--text-muted);font-size:14px;text-align:left;width:100%;background:none;border:none}.sidebar nav a:hover,.sidebar nav button:hover{background:var(--bg-hover);color:var(--text)}.sidebar nav a.active{background:var(--bg-hover);color:var(--text)}.main-content{flex:1;margin-left:240px;padding:24px;max-width:1200px}.page-header{margin-bottom:24px}.page-header h2{font-size:24px;font-weight:600}.page-header p{color:var(--text-muted);margin-top:4px}.grid{display:grid;gap:16px}.grid-2{grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}.grid-3{grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}.grid-4{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.stat-card{text-align:center}.stat-card .value{font-size:32px;font-weight:700}.stat-card .label{font-size:13px;color:var(--text-muted);margin-top:4px}.score-positive{color:var(--success)}.score-neutral{color:var(--warning)}.score-negative{color:var(--danger)}.brand-card{cursor:pointer;transition:border-color .15s}.brand-card:hover{border-color:var(--primary)}.brand-card h3{font-size:16px;margin-bottom:4px}.brand-card .domain{color:var(--text-muted);font-size:13px}.form-group{margin-bottom:16px}.form-group label{display:block;font-size:13px;color:var(--text-muted);margin-bottom:4px}.login-container{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:20px}.login-box{width:100%;max-width:360px}.login-box h1{text-align:center;margin-bottom:24px;font-size:20px}.pill{display:inline-block;padding:2px 8px;border-radius:12px;font-size:12px;font-weight:500}.pill-success{background:#10b98120;color:var(--success)}.pill-warning{background:#f59e0b20;color:var(--warning)}.pill-danger{background:#ef444420;color:var(--danger)}.table{width:100%;border-collapse:collapse;font-size:14px}.table th{text-align:left;padding:8px 12px;color:var(--text-muted);border-bottom:1px solid var(--border);font-weight:500}.table td{padding:8px 12px;border-bottom:1px solid var(--border)}.flex{display:flex}.flex-between{justify-content:space-between;align-items:center}.gap-2{gap:8px}.gap-4{gap:16px}.mt-4{margin-top:16px}.mb-4{margin-bottom:16px}.empty-state{text-align:center;padding:48px 20px;color:var(--text-muted)}.empty-state p{margin-bottom:16px}.loading{text-align:center;padding:24px;color:var(--text-muted)}.error{color:var(--danger);font-size:14px;margin-top:8px}
