:root { font-family: "Segoe UI", "SF Pro Text", "Helvetica Neue", sans-serif; color: #eef4ff; background: radial-gradient(circle at 12% 10%, rgba(50, 196, 167, 0.2), transparent 24%), radial-gradient(circle at 90% 18%, rgba(89, 133, 255, 0.16), transparent 22%), linear-gradient(180deg, #07101c 0%, #0c1524 100%); } * { box-sizing: border-box; } html, body, #root { height: 100vh; } body { margin: 0; overflow: hidden; } button, input { font: inherit; } .client-shell { height: 100vh; padding: 12px; overflow: hidden; } .app-frame { width: min(920px, 100%); height: calc(100vh - 24px); margin: 0 auto; display: grid; grid-template-rows: auto 1fr; gap: 10px; overflow: hidden; } .top-strip { display: flex; align-items: center; justify-content: space-between; gap: 12px; } .brand-lockup { display: flex; align-items: center; gap: 10px; } .brand-lockup img { width: 44px; height: 44px; border-radius: 12px; box-shadow: 0 18px 48px rgba(0, 0, 0, 0.28); } .brand-copy { display: grid; gap: 2px; } .eyebrow { margin: 0; color: #75e3ba; letter-spacing: 0.18em; text-transform: uppercase; font-size: 0.68rem; } .brand-copy h1, .status-panel h3 { margin: 0; line-height: 1.1; } .brand-copy h1 { font-size: 2rem; } .brand-copy p { font-size: 0.98rem; } .brand-copy p, .hero-copy p, .status-panel p, .surface-header p, .detail-card span, .profile-card span { margin: 0; color: #9eb1d1; } .top-actions { display: flex; gap: 8px; flex-wrap: wrap; } .shell-button, .shell-button-secondary { border: 0; border-radius: 999px; padding: 9px 15px; font-weight: 700; cursor: pointer; transition: 160ms ease; } .shell-button { background: linear-gradient(135deg, #74e0b8 0%, #1fb67a 100%); color: #04131a; } .shell-button-secondary { background: rgba(255, 255, 255, 0.04); color: #eef4ff; border: 1px solid rgba(177, 197, 229, 0.16); } .shell-button:disabled, .shell-button-secondary:disabled { opacity: 0.58; cursor: default; } .surface, .status-panel, .login-panel { background: rgba(11, 20, 35, 0.78); border: 1px solid rgba(177, 197, 229, 0.12); box-shadow: 0 24px 70px rgba(2, 8, 18, 0.32); backdrop-filter: blur(18px); } .body-grid { display: grid; grid-template-columns: minmax(0, 1fr) 250px; gap: 12px; min-height: 0; overflow: hidden; } .login-panel, .status-panel { border-radius: 28px; padding: 14px; display: grid; gap: 10px; min-height: 0; overflow: hidden; } .status-panel > p { margin: 0; color: #9eb1d1; line-height: 1.5; } .status-top { display: flex; align-items: center; justify-content: space-between; gap: 10px; } .status-state { display: inline-flex; align-items: center; gap: 8px; padding: 6px 10px; border-radius: 999px; background: rgba(255, 255, 255, 0.04); color: #c8d6ee; } .status-dot { width: 10px; height: 10px; border-radius: 999px; background: #ff8a7d; } .status-dot.online { background: #74e0b8; } .surface { border-radius: 24px; padding: 12px; display: grid; gap: 10px; } .surface-header { display: flex; align-items: center; justify-content: space-between; gap: 12px; } .surface-header h4 { margin: 0; font-size: 0.95rem; } .status-grid, .profile-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; } .detail-card, .profile-card { padding: 10px 12px; border-radius: 16px; background: rgba(255, 255, 255, 0.03); border: 1px solid rgba(177, 197, 229, 0.1); display: grid; gap: 4px; min-height: 72px; } .detail-card strong, .profile-card strong { font-size: 0.92rem; word-break: break-word; } .detail-card span { font-size: 0.9rem; } .resource-stack { margin: 0; padding: 0; list-style: none; display: grid; gap: 6px; align-content: start; } .resource-stack li { padding: 10px 12px; border-radius: 14px; background: rgba(255, 255, 255, 0.03); border: 1px solid rgba(177, 197, 229, 0.1); color: #eef4ff; word-break: break-word; min-height: 44px; display: flex; align-items: center; font-size: 0.94rem; } .login-panel form { display: grid; gap: 16px; } .login-panel label { display: grid; gap: 8px; color: #c2cfe5; } .login-panel input { border: 1px solid rgba(177, 197, 229, 0.16); background: rgba(7, 14, 27, 0.9); color: #f5f7fb; border-radius: 16px; padding: 15px 16px; } .login-card-actions { display: flex; gap: 12px; flex-wrap: wrap; } .error { padding: 10px 12px; border-radius: 16px; background: rgba(255, 115, 115, 0.08); border: 1px solid rgba(255, 115, 115, 0.16); color: #ffc3c3; white-space: pre-wrap; font-size: 0.95rem; } @media (max-width: 960px) { .body-grid { grid-template-columns: 1fr; } .top-strip, .status-top, .surface-header { align-items: flex-start; flex-direction: column; } .status-grid, .profile-grid { grid-template-columns: 1fr; } }