:root { --brand: #f2d20b; /* warm yellow */ --brand-hover: #f6dd3d; --ink: #111111; --muted: #6b7280; --border: #e5e7eb; --surface: #ffffff; --surface-alt: #f7f7f7; --shadow: 0 10px 30px rgba(17, 17, 17, 0.08); --radius: 14px; } html, body { height: 100%; } body { background: var(--surface); color: var(--ink); -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; } /* Layout */ .app-navbar { background: var(--surface) !important; border-bottom: 1px solid var(--border) !important; } .app-main { padding-top: 6.25rem; /* fixed navbar offset */ padding-bottom: 4rem; } @media (min-width: 992px) { .app-main { padding-top: 6.75rem; } } .container { max-width: 1120px; } /* Branding */ .brand-mark { width: 34px; height: 34px; border-radius: 999px; background: var(--brand); color: var(--ink); display: inline-flex; align-items: center; justify-content: center; font-weight: 800; letter-spacing: -0.02em; } .navbar-brand { font-weight: 700; } .navbar .nav-link { color: var(--ink) !important; font-weight: 500; } .navbar .nav-link:hover { text-decoration: underline; text-underline-offset: 4px; } /* Typography */ h1, h2, h3, .display-1, .display-2, .display-3 { font-family: ui-serif, Georgia, Cambria, "Times New Roman", Times, serif; letter-spacing: -0.02em; } .page-title { font-size: clamp(2rem, 4vw, 3rem); margin-bottom: 1.25rem; } /* Cards / surfaces */ .card { border-radius: var(--radius); border-color: var(--border); box-shadow: 0 1px 0 rgba(0,0,0,0.02); } .card.card-elevated { box-shadow: var(--shadow); } .card-header { background: var(--surface); border-bottom: 1px solid var(--border); } /* Tables */ .table { border-color: var(--border); } .table thead th { background: var(--surface-alt); color: var(--muted); font-weight: 600; border-bottom: 1px solid var(--border); } .table td, .table th { vertical-align: middle; } /* Prevent tables from breaking layouts on long tokens/URLs */ .table td, .table th { overflow-wrap: anywhere; word-break: break-word; } .table-responsive { border-radius: var(--radius); } /* Forms */ .form-control, .form-select { border-radius: 12px; border-color: var(--border); padding: .75rem .9rem; } .form-control:focus, .form-select:focus { border-color: rgba(242, 210, 11, 0.9); box-shadow: 0 0 0 .25rem rgba(242, 210, 11, 0.18); } /* Buttons */ .btn { border-radius: 12px; font-weight: 600; } .btn-brand { background: var(--brand); border-color: var(--brand); color: var(--ink); } .btn-brand:hover, .btn-brand:focus { background: var(--brand-hover); border-color: var(--brand-hover); color: var(--ink); } .btn-ink { background: var(--ink); border-color: var(--ink); color: #fff; } .btn-ink:hover, .btn-ink:focus { background: #000; border-color: #000; color: #fff; } .btn-outline-ink { border-color: var(--ink); color: var(--ink); } .btn-outline-ink:hover, .btn-outline-ink:focus { background: var(--ink); color: #fff; } /* Bootstrap outline-primary -> match brand */ .btn-outline-primary { border-color: var(--ink); color: var(--ink); } .btn-check:checked + .btn-outline-primary, .btn-outline-primary:hover, .btn-outline-primary:focus { background: var(--brand); border-color: var(--brand); color: var(--ink); } .btn-outline-secondary { border-color: var(--border); color: var(--ink); } .btn-outline-secondary:hover, .btn-outline-secondary:focus { background: var(--surface-alt); border-color: var(--border); color: var(--ink); } /* Alerts */ .alert { border-radius: var(--radius); } /* Auth pages */ .auth-shell { max-width: 520px; margin: 0 auto; } .auth-card { border-radius: var(--radius); box-shadow: var(--shadow); } /* Playlist gallery cards (used in company/playlist_detail.html) */ .playlist-card { border-radius: var(--radius) !important; border-color: var(--border) !important; } .playlist-card .card-top { border-bottom-color: var(--border) !important; } .playlist-card .drag-handle { color: var(--muted) !important; } /* Nice monospace blocks */ .monospace { font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; } /* Company display gallery */ .display-gallery-card { border-radius: var(--radius); border-color: var(--border); } .display-gallery-grid { display: grid; grid-template-columns: 1.4fr 0.8fr 1.1fr 0.9fr; gap: 12px; align-items: center; } .display-preview { width: 100%; aspect-ratio: 16 / 9; border-top-left-radius: var(--radius); border-top-right-radius: var(--radius); border-bottom-left-radius: 0; border-bottom-right-radius: 0; overflow: hidden; border-bottom: 1px solid var(--border); background: #000; } .display-preview iframe { width: 100%; height: 100%; border: 0; background: #000; } @media (max-width: 768px) { .display-gallery-grid { grid-template-columns: 1fr; gap: 10px; } } .toast { border-radius: var(--radius); }