.access-body { margin:0; min-height:100vh; background:var(--bg); color:var(--text); font-family:Inter,system-ui,sans-serif; }
.signin-card { width:calc(100% - 32px); max-width:500px; margin:9vh auto; padding:36px; background:var(--panel); border:1px solid var(--line); border-radius:16px; box-shadow:0 12px 35px #0003; }
.signin-card .brand { color:inherit; padding:0 0 24px; min-height:0; margin-bottom:32px; text-decoration:none; }
.signin-card h1 { font-size:28px; letter-spacing:-.6px; }
.signin-card p { line-height:1.6; }
.signin-card .field { margin:20px 0; }
.access-shell { max-width:1100px; margin:auto; padding:32px 24px 90px; }
.access-header { display:flex; align-items:center; justify-content:space-between; gap:18px; margin-bottom:28px; }
.access-header h1 { margin:8px 0; }
.access-grid { display:grid; grid-template-columns:minmax(300px, .85fr) minmax(0, 1.35fr); gap:24px; align-items:start; }
.access-grid .panel { padding:24px; }
.access-grid .field { margin:16px 0; }
.project-checklist { display:grid; gap:10px; margin:16px 0; max-height:240px; overflow:auto; }
.project-checklist label { display:flex; gap:10px; align-items:start; }
.project-checklist label span { min-width:0; overflow-wrap:anywhere; }
.project-checklist label small { display:block; color:var(--muted); margin-top:4px; }
.project-checklist input { width:16px; height:16px; min-height:16px; margin:2px 0; accent-color:var(--teal); }
.access-person { border-top:1px solid var(--line); padding:20px 0; overflow-wrap:anywhere; }
.access-person small { display:block; margin:6px 0; }
.access-actions { display:flex; flex-wrap:wrap; gap:8px; margin-top:12px; }
.access-message, .upload-message { padding:14px 16px; margin:16px 0; border:1px solid #28505a; border-radius:8px; background:#132d31; color:#b4f4e9; overflow-wrap:anywhere; line-height:1.6; }
.access-message[data-tone="error"], .upload-message[data-tone="error"] { border-color:#713d45; background:#301c25; color:#ffc5c8; }
.access-message[data-tone="warning"], .upload-message[data-tone="warning"] { border-color:#695329; background:#292518; color:#f5d997; }
.test-notice { padding:10px; background:var(--panel-2); border-radius:8px; font-size:13px; color:#a2bdc7; }
.invite-result input { width:100%; box-sizing:border-box; margin:10px 0; }
.invite-result { margin-top:24px; border-top:1px solid var(--line); padding-top:12px; }
.access-person-heading { display:flex; align-items:baseline; justify-content:space-between; gap:12px; }
.access-badge { font-size:12px; line-height:1.5; white-space:nowrap; color:#b4f4e9; border:1px solid #28505a; border-radius:99px; padding:3px 9px; }
.access-badge.pending { color:#f5d997; border-color:#695329; }
.access-badge.inactive { color:var(--muted); border-color:var(--line); }
.access-count { color:var(--muted); font-size:13px; font-weight:500; margin-left:6px; }
.access-scope { line-height:1.6; font-size:14px; color:var(--text); margin:10px 0; }
.access-empty { color:var(--muted); border-top:1px solid var(--line); padding:20px 0; line-height:1.6; }
.access-person summary { cursor:pointer; padding:8px 0; color:var(--teal); }
[hidden] { display:none !important; }
.access-body a { color:var(--teal); }
.access-body a.button { display:inline-flex; align-items:center; justify-content:center; text-decoration:none; }
.access-body h2 { font-size:18px; margin-bottom:14px; }
.access-body .subtle, .access-person small { color:#a8bfc9; font-size:14px; line-height:1.6; }
.access-body .field > span { font-size:14px; color:#c0d2da; }
.access-body fieldset { border:1px solid var(--line); border-radius:7px; }
.access-body .button { font-size:14px; min-height:42px; }
.access-body .field input, .access-body .field select { width:100%; }
.access-body .field, .access-grid > *, .access-header > * { min-width:0; }
.access-header .field { max-width:100%; }
.upload-steps { list-style:none; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; margin:0 0 28px; padding:0 0 20px; border-bottom:1px solid var(--line); }
.upload-steps li { border-top:3px solid var(--line); padding-top:12px; min-width:0; }
.upload-steps li[aria-current="step"] { border-color:var(--teal); }
.upload-steps b { display:block; font-size:14px; line-height:1.5; }
.upload-steps span { display:block; margin-top:4px; font-size:13px; line-height:1.5; color:var(--muted); }
.upload-help { margin-top:24px; padding-top:16px; border-top:1px solid var(--line); color:var(--muted); line-height:1.6; font-size:14px; }
.upload-help summary { cursor:pointer; color:var(--text); }
.upload-body #progressLabel { min-width:0; overflow-wrap:anywhere; }
.upload-body #progressPercent { flex-shrink:0; }
.upload-body .progress-meta { gap:12px; }
.upload-body #transferBytes { line-height:1.6; }
.upload-body .drop-zone[aria-disabled="true"] { opacity:.65; }
.upload-body .success-card .subtle { max-width:580px; margin:12px auto 24px; }
@media(max-width:760px) { .access-grid { grid-template-columns:1fr; } .access-header { align-items:start; flex-direction:column; } .signin-card { margin:28px auto; padding:24px; } }
@media(max-width:480px) { .access-shell { padding:24px 16px 100px; } .access-grid .panel { padding:20px; } .access-person-heading { flex-wrap:wrap; gap:8px; } .upload-steps { grid-template-columns:1fr; gap:10px; } .upload-steps li { display:flex; flex-wrap:wrap; gap:4px 12px; padding-top:8px; } .upload-steps span { margin:0; } }
@media(max-width:480px) { .upload-body .upload-actions { align-items:stretch; flex-direction:column; } .upload-body .upload-actions > div { justify-content:flex-end; } .upload-body #uploadButton { white-space:nowrap; } }

.signin-page{background:radial-gradient(ellipse at 15% 30%,#174b53 0,transparent 55%),#0b1720;display:grid;align-items:center;min-height:100dvh;padding:32px;box-sizing:border-box;}
.signin-layout{display:grid;grid-template-columns:1fr 1fr;width:min(1040px,100%);margin:auto;border:1px solid #315058;border-radius:24px;overflow:hidden;box-shadow:0 30px 90px #0005;background:#10212c;}
.signin-story{position:relative;min-height:600px;background:linear-gradient(145deg,#17494e,#102e37);color:#a7d1cb;overflow:hidden;display:flex;align-items:flex-end;}
.signin-terrain{position:absolute;inset:0;width:100%;height:100%;opacity:.55;}
.signin-story-copy{position:relative;padding:48px;max-width:400px;background:linear-gradient(transparent,#102e37dd);}
.signin-story h2{font-size:clamp(28px,3.2vw,40px);line-height:1.13;letter-spacing:-1px;color:#f0f6ef;margin:18px 0;}
.signin-story p{line-height:1.7;max-width:290px;color:#c2d7d5;}
.signin-story-foot{display:block;margin-top:40px;color:#f6bf73;font-size:13px;letter-spacing:.04em;}
.signin-page .signin-card{box-sizing:border-box;width:100%;max-width:none;margin:0;padding:48px;border:0;border-radius:0;box-shadow:none;align-self:center;background:transparent;}
.signin-page .signin-card .brand{margin-bottom:40px;}.signin-page .brand-mark{background:#0fa598;color:#092a30;box-shadow:0 0 0 5px #0fa5981c;border-radius:10px;}
.signin-page .signin-card h1{font-size:30px;line-height:1.2;}.signin-page .signin-card .button.primary{min-height:46px;}
@media(max-width:720px){.signin-page{padding:16px;align-items:start;}.signin-layout{grid-template-columns:1fr;}.signin-story{min-height:210px;}.signin-story-copy{padding:24px;max-width:none;}.signin-story h2{font-size:28px;margin:12px 0;}.signin-story p,.signin-story-foot{display:none;}.signin-page .signin-card{padding:28px 24px;}.signin-page .signin-card .brand{margin-bottom:24px;}}
