:root { color-scheme: light; font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; background: #f6f8fb; color: #102033; } * { box-sizing: border-box; } body { min-height: 100vh; margin: 0; background: radial-gradient(circle at top left, rgba(76, 111, 255, 0.2), transparent 34rem), radial-gradient(circle at bottom right, rgba(14, 165, 233, 0.16), transparent 30rem), #f7f9fc; } button, input { font: inherit; } button { cursor: pointer; } .app-shell, .signin-layout, .dashboard-shell, .loading-shell { min-height: 100vh; } .signin-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(360px, 470px); gap: 48px; align-items: center; width: min(1180px, calc(100% - 40px)); margin: 0 auto; padding: 54px 0; } .signin-brand { padding: 48px; color: #f8fbff; border: 1px solid rgba(255, 255, 255, 0.2); border-radius: 34px; background: linear-gradient(145deg, rgba(13, 33, 90, 0.96), rgba(37, 99, 235, 0.9)), #132965; box-shadow: 0 28px 80px rgba(37, 99, 235, 0.24); } .brand-mark { display: grid; width: 58px; height: 58px; place-items: center; border-radius: 18px; color: #1d4ed8; background: #ffffff; font-size: 28px; font-weight: 900; box-shadow: 0 18px 46px rgba(15, 23, 42, 0.18); } .brand-mark-small { width: 44px; height: 44px; border-radius: 14px; color: #ffffff; background: linear-gradient(135deg, #2563eb, #06b6d4); font-size: 22px; } .brand-eyebrow, .section-kicker { margin: 0; color: #2563eb; font-size: 12px; font-weight: 800; letter-spacing: 0.12em; text-transform: uppercase; } .signin-brand .brand-eyebrow, .signin-brand .section-kicker { color: #bfdbfe; } .signin-brand h1 { max-width: 760px; margin: 28px 0 18px; font-size: clamp(38px, 6vw, 76px); line-height: 0.95; letter-spacing: -0.06em; } .brand-copy { max-width: 640px; margin: 0; color: rgba(248, 251, 255, 0.78); font-size: 18px; line-height: 1.65; } .pill-row { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 34px; } .pill { display: inline-flex; align-items: center; min-height: 34px; padding: 6px 12px; color: #dbeafe; border: 1px solid rgba(255, 255, 255, 0.2); border-radius: 999px; background: rgba(255, 255, 255, 0.08); font-size: 12px; font-weight: 700; } .signin-card { padding: 34px; border: 1px solid #e4e9f2; border-radius: 30px; background: rgba(255, 255, 255, 0.94); box-shadow: 0 30px 90px rgba(15, 23, 42, 0.12); backdrop-filter: blur(16px); } .signin-header h2 { margin: 8px 0 8px; color: #0f172a; font-size: 30px; letter-spacing: -0.03em; } .signin-header p { margin: 0; color: #667085; line-height: 1.6; } .signin-actions, .ly-form { display: grid; gap: 14px; margin-top: 26px; } .auth-btn { display: inline-flex; align-items: center; justify-content: center; width: 100%; min-height: 48px; padding: 12px 18px; border: 0; border-radius: 999px; font-weight: 800; transition: transform 160ms ease, box-shadow 160ms ease, opacity 160ms ease; } .auth-btn:hover:not(:disabled) { transform: translateY(-1px); } .auth-btn:disabled { cursor: not-allowed; opacity: 0.55; } .auth-btn-primary { color: #ffffff; background: linear-gradient(135deg, #2563eb, #0ea5e9); box-shadow: 0 16px 38px rgba(37, 99, 235, 0.24); } .auth-btn-secondary { color: #0f172a; background: #eef4ff; border: 1px solid #dbe7ff; } .google-box { display: flex; justify-content: center; min-height: 48px; margin-top: 14px; } .ly-form label { display: grid; gap: 8px; color: #344054; font-weight: 700; } .ly-form input { width: 100%; min-height: 48px; padding: 12px 14px; color: #101828; border: 1px solid #d0d5dd; border-radius: 14px; outline: none; } .ly-form input:focus { border-color: #2563eb; box-shadow: 0 0 0 4px rgba(37, 99, 235, 0.1); } .signin-tip, .signin-footer, .message { color: #667085; font-size: 13px; line-height: 1.55; } .signin-footer { display: grid; gap: 2px; margin-top: 28px; padding-top: 18px; border-top: 1px solid #edf2f7; } .error { color: #b42318; } .dashboard-shell { width: min(1440px, calc(100% - 32px)); margin: 0 auto; padding: 18px 0 28px; } .topbar { position: sticky; top: 0; z-index: 10; display: flex; align-items: center; justify-content: space-between; gap: 18px; min-height: 76px; padding: 14px 18px; border: 1px solid rgba(226, 232, 240, 0.92); border-radius: 24px; background: rgba(255, 255, 255, 0.9); box-shadow: 0 18px 50px rgba(15, 23, 42, 0.08); backdrop-filter: blur(14px); } .topbar-left, .topbar-right { display: flex; align-items: center; gap: 14px; } .topbar h1 { margin: 2px 0 0; font-size: 20px; letter-spacing: -0.02em; } .tabbar { display: inline-flex; gap: 6px; padding: 5px; border: 1px solid #e2e8f0; border-radius: 999px; background: #f8fafc; } .tab { min-height: 38px; padding: 0 16px; color: #475569; border: 0; border-radius: 999px; background: transparent; font-weight: 800; } .tab.is-active { color: #ffffff; background: #2563eb; box-shadow: 0 10px 24px rgba(37, 99, 235, 0.18); } .profile-menu { position: relative; } .profile-menu summary { display: inline-flex; align-items: center; gap: 10px; min-height: 44px; padding: 4px 12px 4px 4px; border: 1px solid #e2e8f0; border-radius: 999px; background: #ffffff; list-style: none; cursor: pointer; } .profile-menu summary::-webkit-details-marker { display: none; } .avatar, .avatar-image { display: grid; width: 36px; height: 36px; place-items: center; border-radius: 999px; color: #ffffff; background: linear-gradient(135deg, #0f172a, #2563eb); font-weight: 900; } .avatar-image { object-fit: cover; } .profile-name { max-width: 140px; overflow: hidden; color: #0f172a; font-size: 14px; font-weight: 800; text-overflow: ellipsis; white-space: nowrap; } .profile-panel { position: absolute; top: calc(100% + 10px); right: 0; display: grid; gap: 14px; width: 310px; padding: 18px; border: 1px solid #e2e8f0; border-radius: 22px; background: #ffffff; box-shadow: 0 24px 70px rgba(15, 23, 42, 0.16); } .profile-block { display: grid; gap: 4px; color: #667085; font-size: 13px; } .profile-block strong { overflow-wrap: anywhere; color: #0f172a; } .profile-grid { grid-template-columns: 1fr auto; } .dashboard-grid { display: grid; grid-template-columns: 340px minmax(0, 1fr); gap: 18px; margin-top: 18px; } .side-panel { display: grid; align-content: start; gap: 18px; } .info-card, .embed-card { border: 1px solid #e2e8f0; border-radius: 24px; background: rgba(255, 255, 255, 0.94); box-shadow: 0 18px 50px rgba(15, 23, 42, 0.07); } .info-card { padding: 22px; } .info-card h2 { margin: 8px 0 4px; font-size: 22px; letter-spacing: -0.03em; } .info-card p { margin: 0; color: #667085; } .stat-list { display: grid; gap: 12px; margin-top: 20px; } .stat-item { display: grid; gap: 4px; padding: 12px; border-radius: 16px; background: #f8fafc; } .stat-item span, .plain-list { color: #667085; font-size: 13px; } .stat-item strong { overflow-wrap: anywhere; color: #0f172a; font-size: 13px; } .plain-list { display: grid; gap: 10px; padding-left: 18px; } .workspace-panel { min-width: 0; } .embed-card { overflow: hidden; } .embed-header { display: flex; align-items: center; justify-content: space-between; gap: 18px; min-height: 76px; padding: 18px 22px; border-bottom: 1px solid #e2e8f0; } .embed-header h2 { margin: 4px 0 0; font-size: 24px; } .embed-header a { color: #2563eb; font-size: 14px; font-weight: 800; text-decoration: none; } iframe { display: block; width: 100%; height: calc(100vh - 150px); min-height: 680px; border: 0; background: #f8fafc; } .loading-shell { display: grid; place-items: center; align-content: center; gap: 16px; color: #475569; } .loader { width: 44px; height: 44px; border: 4px solid #dbeafe; border-top-color: #2563eb; border-radius: 999px; animation: spin 900ms linear infinite; } .toast { position: fixed; right: 24px; bottom: 24px; max-width: 420px; padding: 14px 18px; border: 1px solid #fecaca; border-radius: 18px; background: #fff1f2; box-shadow: 0 18px 50px rgba(15, 23, 42, 0.1); } .is-hidden { display: none !important; } @keyframes spin { to { transform: rotate(360deg); } } @media (max-width: 1020px) { .signin-layout, .dashboard-grid { grid-template-columns: 1fr; } .signin-brand { padding: 34px; } .topbar { align-items: stretch; flex-direction: column; } .topbar-right { justify-content: space-between; } } @media (max-width: 680px) { .signin-layout, .dashboard-shell { width: min(100% - 20px, 100%); } .signin-card, .signin-brand, .info-card { border-radius: 22px; padding: 22px; } .topbar-right { align-items: stretch; flex-direction: column-reverse; } .tabbar, .profile-menu summary, .profile-panel { width: 100%; } .profile-panel { position: static; margin-top: 10px; } iframe { min-height: 560px; } }