:root{font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;line-height:1.5;font-weight:400;color:#111827;background-color:#f3f4f6;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}body{margin:0;min-height:100vh}h1,h2,h3{margin:0 0 6px}.page{min-height:100vh;background:linear-gradient(135deg,#e9f1ff,#fff 45%,#f4f8ff)}.page.auth{display:flex;align-items:center;justify-content:center;padding:24px;flex-direction:column;gap:20px}.page:not(.auth){padding:24px;max-width:1100px;margin:0 auto}.header{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:16px}.header-actions{display:flex;gap:10px}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px}.card{background:#ffffffe6;border:1px solid #e6e8ec;border-radius:16px;padding:20px;box-shadow:0 16px 40px #11182714;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.card.login{width:100%;max-width:420px;padding:28px 28px 24px}.brand{display:flex;align-items:center;gap:12px;margin-bottom:10px;justify-content:center;text-align:center}.logo{width:140px;height:80px;display:grid;place-items:center}.logo img{width:140px;height:80px;object-fit:contain}.brand-title{font-weight:700;color:#1e5dff;font-size:1.1rem;letter-spacing:-.2px}.brand-sub{color:#6b7280;font-size:.8rem}.title{margin:6px 0;font-size:1.25rem;text-align:center;color:#1e5dff}.form{display:grid;gap:10px}.label{font-size:.85rem;color:#4b5563}.input{padding:10px 12px;border:1px solid #d1d5db;border-radius:10px;font-size:.95rem;background:#fff}.input:focus{outline:none;border-color:#7aa7ff;box-shadow:0 0 0 3px #1e5dff1f}.btn{padding:10px 14px;border-radius:8px;border:1px solid #d1d5db;background:#fff;cursor:pointer;font-weight:600}.btn.primary{background:#1e5dff;color:#fff;border-color:#1e5dff}.input-wrap{position:relative;display:grid}.link-btn{position:absolute;right:10px;top:50%;transform:translateY(-50%);border:none;background:transparent;color:#1e5dff;font-weight:600;cursor:pointer;padding:0}.link{color:#1e5dff;font-size:.85rem;text-decoration:none;background:transparent;border:none;padding:0;text-align:left;cursor:pointer}.link.subtle{color:#6b7280;text-align:right}.alert.success{background:#dcfce7;color:#166534;border:1px solid #bbf7d0}.footer{text-align:center;color:#6b7280;font-size:.8rem;display:grid;gap:6px}.footer a{color:#1e5dff;text-decoration:none}.footer-muted{color:#9ca3af}.btn.ghost{background:transparent}.btn:disabled{opacity:.6;cursor:not-allowed}.btn.small{padding:8px 12px;font-size:.85rem}.alert{padding:10px 12px;border-radius:8px;margin:12px 0}.alert.error{background:#fee2e2;color:#991b1b;border:1px solid #fecaca}.muted{color:#6b7280;font-size:.9rem}.pass{display:grid;gap:10px}.pass-header{display:flex;justify-content:space-between;align-items:center;gap:12px}.name{font-weight:700;font-size:1.05rem}.badge{padding:6px 10px;border-radius:999px;font-size:.75rem;font-weight:700;letter-spacing:.5px}.badge.active{background:#dcfce7;color:#166534}.badge.invalid{background:#fee2e2;color:#991b1b}.pass-row{display:flex;justify-content:space-between;gap:12px;font-size:.9rem}.pass-row .label{color:#6b7280}.pass-row .value{font-weight:600}.notice{padding:8px 10px;background:#fff7ed;border:1px solid #fed7aa;color:#9a3412;border-radius:8px;font-size:.85rem}.pass-actions{display:flex;justify-content:flex-end;margin-top:6px;gap:8px}.btn.ghost{background:transparent;border-color:#d1d5db}.modal-backdrop{position:fixed;inset:0;background:#00000059;display:grid;place-items:center;padding:20px;z-index:50}.modal{width:100%;max-width:680px;background:#fff;border-radius:16px;border:1px solid #e5e7eb;padding:16px;box-shadow:0 18px 50px #11182733}.modal-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.modal-title{font-weight:700;font-size:1rem;color:#111827}.table-wrap{max-height:360px;overflow:auto;border:1px solid #e5e7eb;border-radius:10px}table{width:100%;border-collapse:collapse;font-size:.9rem}thead{background:#f9fafb}th,td{text-align:left;padding:10px 12px;border-bottom:1px solid #eef0f3}
