:root { color-scheme: dark; font-family: "Roboto", "Helvetica Neue", Arial, sans-serif; } * { box-sizing: border-box; } body { margin: 0; min-height: 100vh; color: #0f172a; background: linear-gradient(180deg, rgba(232, 241, 248, 0.22), rgba(17, 24, 39, 0.18)), url("/assets/auth/skyline.png") center center / cover no-repeat fixed; } .login-shell { min-height: 100vh; display: grid; place-items: start center; padding: 170px 24px 30px; position: relative; } .login-shell::before { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(255, 255, 255, 0.22), rgba(15, 23, 42, 0.18)), radial-gradient(circle at center, rgba(255, 255, 255, 0.04), rgba(10, 18, 28, 0.16) 100%); backdrop-filter: blur(18px) saturate(1.08); pointer-events: none; } .login-panel { width: min(420px, 100%); position: relative; z-index: 1; padding: 28px; border-radius: 30px; background: rgba(66, 74, 84, 0.38); border: 1px solid rgba(255, 255, 255, 0.20); box-shadow: 0 22px 60px rgba(15, 23, 42, 0.24); backdrop-filter: blur(22px) saturate(1.08); } .login-panel-wide { width: min(560px, 100%); } .login-panel-admin { width: min(1180px, 100%); padding: 28px; border-radius: 28px; background: rgba(9, 18, 12, 0.34); border: 1px solid rgba(255, 255, 255, 0.08); box-shadow: 0 24px 80px rgba(2, 6, 23, 0.42); backdrop-filter: blur(16px); } .login-panel-top { margin-bottom: 18px; text-align: center; } .login-kicker { margin: 0 0 12px; font-size: 0.76rem; letter-spacing: 0.22em; text-transform: uppercase; color: rgba(255, 255, 255, 0.82); font-weight: 700; } .login-panel h1 { margin: 0 0 10px; font-size: 2.2rem; line-height: 1.05; font-weight: 400; color: #f8fafc; } .login-copy { margin: 0; color: rgba(248, 250, 252, 0.94); line-height: 1.5; } .login-actions { display: grid; gap: 12px; margin-bottom: 0; } .login-button { display: inline-flex; align-items: center; justify-content: center; min-height: 48px; padding: 0 18px; border-radius: 999px; text-decoration: none; font-weight: 700; border: 0; cursor: pointer; font: inherit; transition: transform 160ms ease, filter 160ms ease; } .login-button-primary { color: #082f49; background: linear-gradient(180deg, #7dd3fc, #0ea5e9); box-shadow: 0 14px 30px rgba(14, 165, 233, 0.22); } .login-button-secondary { color: #f8fafc; background: rgba(255, 255, 255, 0.14); border: 1px solid rgba(255, 255, 255, 0.20); backdrop-filter: blur(8px); } .login-button-disabled { color: #cbd5e1; background: rgba(255, 255, 255, 0.08); border: 1px dashed rgba(255, 255, 255, 0.18); } .login-button-danger { color: #fff1f2; background: linear-gradient(180deg, #fb7185, #e11d48); } .login-button:hover { transform: translateY(-1px); filter: brightness(1.03); } .login-form { display: grid; gap: 16px; } .login-form-grid { display: grid; gap: 14px; grid-template-columns: repeat(2, minmax(0, 1fr)); } .login-field { display: grid; gap: 8px; } .login-field span { font-size: 0.88rem; color: rgba(248, 250, 252, 0.96); } .login-field input, .login-field textarea { width: 100%; min-height: 48px; padding: 0 18px; border-radius: 999px; border: 1px solid rgba(255, 255, 255, 0.24); background: rgba(255, 255, 255, 0.72); color: #111827; font: inherit; box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.22); backdrop-filter: blur(9px); outline: none; } .login-field textarea { min-height: 120px; resize: vertical; padding: 14px 18px; border-radius: 18px; } .login-field input::placeholder, .login-field textarea::placeholder { color: rgba(15, 23, 42, 0.68); } .login-field input:focus, .login-field textarea:focus { border-color: rgba(255, 255, 255, 0.26); background: rgba(255, 255, 255, 0.9); color: #111827; } .login-field input:not(:placeholder-shown), .login-field textarea:not(:placeholder-shown) { background: rgba(255, 255, 255, 0.88); color: #111827; } .login-field-span-2 { grid-column: span 2; } .login-notice { margin-bottom: 18px; padding: 16px 18px; border-radius: 18px; border: 1px solid rgba(255, 255, 255, 0.12); color: rgba(248, 250, 252, 0.94); backdrop-filter: blur(10px); } .login-notice strong { display: block; margin-bottom: 6px; } .login-notice p { margin: 0; line-height: 1.5; } .login-notice-success { background: rgba(20, 83, 45, 0.34); } .login-notice-error { background: rgba(127, 29, 29, 0.24); } .login-notice-info { background: rgba(255, 255, 255, 0.18); } .login-list { margin: 0; padding-left: 18px; } .login-list li + li { margin-top: 6px; } .login-meta-inline { margin-top: 8px !important; font-size: 0.92rem; color: #cbd5e1; } .login-meta { display: grid; gap: 14px; margin: 0; } .admin-layout { display: grid; gap: 24px; grid-template-columns: 320px minmax(0, 1fr); } .admin-sidebar h2, .admin-summary h2 { margin-top: 0; } .admin-request-list { display: grid; gap: 10px; max-height: 70vh; overflow: auto; } .admin-request-card { display: grid; gap: 6px; padding: 14px; border-radius: 16px; text-decoration: none; color: inherit; background: rgba(255, 255, 255, 0.06); border: 1px solid rgba(255, 255, 255, 0.08); } .admin-request-card.is-active { border-color: rgba(167, 243, 208, 0.56); background: rgba(16, 185, 129, 0.12); } .admin-request-card span { color: #cbd5e1; font-size: 0.92rem; } .admin-status { display: inline-flex; width: fit-content; padding: 4px 10px; border-radius: 999px; color: #e2e8f0 !important; background: rgba(255, 255, 255, 0.12); } .admin-detail { min-width: 0; } .admin-summary { margin-bottom: 20px; } .admin-summary p { margin: 0 0 10px; line-height: 1.5; } .login-pre { margin: 12px 0 0; padding: 14px; border-radius: 14px; overflow: auto; background: rgba(2, 6, 23, 0.65); color: #dbeafe; } @media (max-width: 900px) { .admin-layout { grid-template-columns: 1fr; } } @media (max-width: 640px) { .login-shell { padding: 110px 14px 24px; } .login-panel, .login-panel-wide { width: 100%; } .login-form-grid { grid-template-columns: 1fr; } .login-field-span-2 { grid-column: auto; } } .login-meta div { display: grid; gap: 4px; } .login-meta dt { font-size: 12px; text-transform: uppercase; letter-spacing: 0.12em; color: #94a3b8; } .login-meta dd { margin: 0; color: #e2e8f0; word-break: break-word; }