:root{--riptide-brand: #0f6f6a;--riptide-brand-dark: #0a4f4b;--riptide-brand-contrast: #ffffff;--riptide-accent: #d97a1f;--riptide-bg: #f4f7f7;--riptide-surface: #ffffff;--riptide-border: #dde5e4;--riptide-text: #12211f;--riptide-text-muted: #5b6b69;--riptide-danger: #b3261e;--riptide-radius: 8px;--riptide-font: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--riptide-module-ssp: #0f6f6a;--riptide-module-dsp: #2b5f8a;--riptide-module-adserver: #8a4f9e}*{box-sizing:border-box}body{margin:0;font-family:var(--riptide-font);background:var(--riptide-bg);color:var(--riptide-text)}.app-shell{display:flex;flex-direction:column;min-height:100vh}.app-shell-body{display:flex;flex:1;min-height:0}.app-nav{width:220px;flex:none;background:var(--riptide-surface);border-right:1px solid var(--riptide-border);padding:16px;display:flex;flex-direction:column}.app-nav h1{font-size:16px;color:var(--riptide-brand-dark);margin:0 0 4px}.app-nav .app-tagline{font-size:11px;color:var(--riptide-text-muted);margin:0 0 16px}.nav-group{margin-bottom:14px}.nav-group-label{font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--riptide-text-muted);padding:0 10px 6px;border-left:3px solid var(--riptide-module-color, var(--riptide-brand));margin-left:-3px}.app-nav a{display:block;padding:8px 10px;border-radius:var(--riptide-radius);color:var(--riptide-text);text-decoration:none;font-size:14px;margin-bottom:2px}.app-nav a.active,.app-nav a:hover{background:var(--riptide-brand);color:var(--riptide-brand-contrast)}.app-nav .tenant-switcher{margin-top:auto;padding-top:12px;border-top:1px solid var(--riptide-border);font-size:12px}.app-main{flex:1;padding:24px 32px;max-width:1040px}.card{background:var(--riptide-surface);border:1px solid var(--riptide-border);border-radius:var(--riptide-radius);padding:16px;margin-bottom:16px}.badge{display:inline-block;font-size:11px;font-weight:600;padding:2px 8px;border-radius:999px;background:var(--riptide-bg);color:var(--riptide-text-muted);border:1px solid var(--riptide-border)}.badge-ssp{color:var(--riptide-module-ssp);border-color:var(--riptide-module-ssp)}.badge-dsp{color:var(--riptide-module-dsp);border-color:var(--riptide-module-dsp)}.badge-adserver{color:var(--riptide-module-adserver);border-color:var(--riptide-module-adserver)}table{width:100%;border-collapse:collapse;font-size:14px}th,td{text-align:left;padding:8px 10px;border-bottom:1px solid var(--riptide-border)}th{color:var(--riptide-text-muted);font-weight:600}input,select,textarea{font-family:inherit;font-size:14px;padding:8px 10px;border:1px solid var(--riptide-border);border-radius:var(--riptide-radius);width:100%}label{display:block;font-size:13px;color:var(--riptide-text-muted);margin-bottom:4px;margin-top:12px}button{font-family:inherit;font-size:14px;font-weight:600;padding:8px 16px;border:none;border-radius:var(--riptide-radius);background:var(--riptide-brand);color:var(--riptide-brand-contrast);cursor:pointer;margin-top:16px}button.secondary{background:transparent;color:var(--riptide-brand);border:1px solid var(--riptide-brand)}button:disabled{opacity:.6;cursor:not-allowed}.error-banner{background:#fdf1ef;border:1px solid var(--riptide-danger);color:var(--riptide-danger);border-radius:var(--riptide-radius);padding:10px 12px;margin-bottom:12px;font-size:13px}.empty-banner{background:var(--riptide-bg);border:1px dashed var(--riptide-border);color:var(--riptide-text-muted);border-radius:var(--riptide-radius);padding:14px 16px;margin-bottom:12px;font-size:13px}.sandbox-banner{background:#fff8e6;border-bottom:1px solid #e6c65c;color:#7a5c00;padding:8px 16px;font-size:12px;font-weight:600;text-align:center}.app-nav .sandbox-toggle{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--riptide-text-muted);margin-bottom:12px}.muted{color:var(--riptide-text-muted);font-size:13px}pre{background:var(--riptide-bg);border:1px solid var(--riptide-border);border-radius:var(--riptide-radius);padding:12px;overflow-x:auto;font-size:12px}.auth-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px}.auth-card{width:100%;max-width:420px;margin-bottom:0}.auth-card h2{margin-top:0}.auth-card a{color:var(--riptide-brand-dark)}.app-nav .nav-signout{margin-top:12px;padding-top:12px;border-top:1px solid var(--riptide-border)}.app-nav .nav-signout button{width:100%;margin-top:0}
