:root{
  --bg:#061518;
  --bg-deep:#031012;
  --surface:#0b2024;
  --surface-2:#102a2f;
  --line:#244149;
  --line-soft:rgba(129,180,184,.16);
  --text:#edf8f6;
  --muted:#a6bfbc;
  --quiet:#789592;
  --aqua:#66dfca;
  --aqua-2:#39b9bc;
  --blue:#64aee8;
  --mint:#a4e6c6;
  --amber:#e9bd73;
  --danger:#ef7f82;
  --shadow:0 24px 60px rgba(0,0,0,.28);
  --radius:20px;
}
*{box-sizing:border-box}
html{min-height:100%;background:var(--bg-deep);font-size:16px}
body{margin:0;min-height:100vh;background:
  radial-gradient(circle at 8% 8%,rgba(57,185,188,.13),transparent 32rem),
  radial-gradient(circle at 92% 5%,rgba(100,174,232,.10),transparent 34rem),
  linear-gradient(180deg,#081b1f 0,#061518 46%,#041113 100%);
  color:var(--text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  font-size:16px;line-height:1.55;letter-spacing:.005em;
}
a{color:inherit}
button,input,select{font:inherit}
button,a,input{outline-offset:3px}
:focus-visible{outline:2px solid var(--aqua)}
.ambient{position:fixed;inset:0;pointer-events:none;overflow:hidden;z-index:0;opacity:.9}
.ambient:before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.018) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.014) 1px,transparent 1px);background-size:56px 56px;mask-image:linear-gradient(to bottom,rgba(0,0,0,.55),transparent 72%)}
.ambient i{position:absolute;border-radius:999px;filter:blur(2px)}
.ambient i:nth-child(1){width:28rem;height:28rem;left:-12rem;top:8rem;border:1px solid rgba(102,223,202,.09)}
.ambient i:nth-child(2){width:42rem;height:42rem;right:-22rem;top:-12rem;border:1px solid rgba(100,174,232,.08)}
.ambient i:nth-child(3){width:16rem;height:16rem;right:18%;bottom:-8rem;border:1px solid rgba(164,230,198,.06)}

/* Shared brand */
.brand-mark{width:48px;height:48px;display:grid;place-items:center;border:1px solid rgba(102,223,202,.34);border-radius:14px;background:linear-gradient(145deg,rgba(102,223,202,.14),rgba(100,174,232,.06));box-shadow:inset 0 1px 0 rgba(255,255,255,.06),0 12px 28px rgba(0,0,0,.18)}
.brand-mark svg{width:29px;height:29px;fill:none;stroke:var(--aqua);stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}

/* Login */
.login-page{display:grid;place-items:center;overflow-x:hidden}
.login-shell{position:relative;z-index:1;width:min(1240px,calc(100vw - 64px));min-height:720px;display:grid;grid-template-columns:minmax(0,1.08fr) minmax(420px,.72fr);border-top:1px solid rgba(160,222,217,.22);border-bottom:1px solid rgba(160,222,217,.14);background:rgba(4,16,18,.28);backdrop-filter:blur(10px)}
.login-story{position:relative;padding:72px 78px;display:flex;flex-direction:column;justify-content:space-between;border-right:1px solid rgba(136,190,191,.18);overflow:hidden}
.login-story:after{content:"";position:absolute;width:480px;height:480px;left:160px;top:52px;border-radius:50%;border:1px solid rgba(102,223,202,.12);box-shadow:0 0 0 74px rgba(102,223,202,.025),0 0 0 148px rgba(100,174,232,.018)}
.login-story>*{position:relative;z-index:1}
.story-brand{display:flex;align-items:center;gap:15px}
.story-brand strong{font-size:23px;letter-spacing:.03em;font-weight:760}
.story-brand span{display:block;color:var(--muted);font-size:14px;margin-top:1px;letter-spacing:.09em;text-transform:uppercase}
.story-copy{max-width:650px;margin-top:50px}
.story-kicker,.eyebrow{margin:0 0 16px;color:var(--aqua);font-size:14px;font-weight:750;text-transform:uppercase;letter-spacing:.16em}
.story-copy h1{font-size:clamp(46px,5vw,72px);line-height:.99;letter-spacing:-.045em;margin:0;max-width:720px;font-weight:760}
.story-copy p{max-width:580px;margin:28px 0 0;color:#b5ccc9;font-size:19px;line-height:1.55}
.story-foot{display:flex;gap:26px;color:var(--quiet);font-size:14px}
.story-foot span{display:flex;align-items:center;gap:9px}
.story-foot span:before{content:"";width:7px;height:7px;border-radius:50%;background:var(--aqua);box-shadow:0 0 0 5px rgba(102,223,202,.08)}
.login-panel{padding:76px 66px;display:flex;flex-direction:column;justify-content:center}
.login-panel h2{font-size:34px;line-height:1.12;margin:0 0 11px;letter-spacing:-.025em}
.login-panel .intro{font-size:17px;color:var(--muted);margin:0 0 36px}
.form-field{margin:0 0 22px}
.form-field label{display:block;font-size:14px;font-weight:720;color:#c6d9d7;margin-bottom:8px}
.input{width:100%;height:54px;border-radius:12px;border:1px solid #2a474d;background:rgba(4,16,18,.72);color:var(--text);padding:0 16px;font-size:17px;transition:.18s ease}
.input:hover{border-color:#3a5e64}.input:focus{border-color:var(--aqua);box-shadow:0 0 0 4px rgba(102,223,202,.10)}
.primary-btn{width:100%;min-height:54px;border:0;border-radius:12px;background:linear-gradient(135deg,var(--aqua),#4ac6c3);color:#062126;font-size:16px;font-weight:820;letter-spacing:.025em;cursor:pointer;box-shadow:0 12px 28px rgba(47,181,177,.17);transition:transform .18s ease,filter .18s ease}
.primary-btn:hover{transform:translateY(-1px);filter:brightness(1.04)}
.login-note{margin:22px 0 0;color:var(--quiet);font-size:14px;line-height:1.5}
.form-error{padding:12px 14px;border-left:3px solid var(--danger);background:rgba(239,127,130,.08);color:#ffd5d6;margin:0 0 22px;font-size:15px}

/* Top bar */
.topbar{position:sticky;top:0;z-index:20;background:rgba(5,18,21,.91);backdrop-filter:blur(18px);border-bottom:1px solid rgba(139,191,191,.14)}
.topbar-inner{width:min(1560px,calc(100vw - 64px));height:82px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:28px}
.topbar-brand{display:flex;align-items:center;gap:12px;text-decoration:none}
.topbar-brand .brand-mark{width:42px;height:42px;border-radius:12px}.topbar-brand .brand-mark svg{width:25px;height:25px}
.topbar-brand b{display:block;font-size:19px;letter-spacing:.02em}.topbar-brand small{display:block;color:var(--quiet);font-size:12px;letter-spacing:.12em;text-transform:uppercase;margin-top:-1px}
.topbar-actions{display:flex;align-items:center;gap:9px}
.quiet-link,.signout{display:inline-flex;align-items:center;min-height:42px;padding:0 14px;border-radius:10px;text-decoration:none;color:#bdd0ce;font-size:15px;font-weight:680}
.quiet-link:hover,.quiet-link.active{background:rgba(102,223,202,.07);color:var(--text)}
.signout{border:1px solid #29454b;margin-left:6px;color:#c6d9d7}.signout:hover{border-color:#3a6269;background:rgba(255,255,255,.025)}

/* Workspace */
.workspace-main,.admin-main,.account-main{position:relative;z-index:1;width:min(1560px,calc(100vw - 64px));margin:0 auto;padding:64px 0 54px}
.workspace-hero{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(280px,.5fr);gap:80px;align-items:end;padding:18px 0 50px;border-bottom:1px solid var(--line-soft)}
.workspace-hero h1{font-size:clamp(44px,5vw,70px);line-height:1.02;letter-spacing:-.045em;margin:0;max-width:900px}
.workspace-hero .lead{font-size:19px;color:var(--muted);max-width:760px;margin:22px 0 0}
.hero-meta{justify-self:end;text-align:right;padding-bottom:5px}.hero-meta strong{display:block;font-size:42px;line-height:1;color:var(--aqua);font-weight:760}.hero-meta span{display:block;color:var(--quiet);margin-top:8px;font-size:15px;letter-spacing:.08em;text-transform:uppercase}
.section-title-row{display:flex;justify-content:space-between;align-items:end;gap:24px;margin:44px 0 18px}
.section-title-row h2{font-size:23px;margin:0;letter-spacing:-.01em}.section-title-row p{margin:0;color:var(--quiet);font-size:15px}
.project-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.project-launch{position:relative;min-height:250px;display:flex;flex-direction:column;justify-content:space-between;padding:30px 32px;text-decoration:none;border:1px solid #244249;border-radius:18px;background:linear-gradient(135deg,rgba(14,42,47,.82),rgba(7,25,29,.80));overflow:hidden;transition:transform .2s ease,border-color .2s ease,background .2s ease;box-shadow:0 16px 46px rgba(0,0,0,.12)}
.project-launch:before{content:"";position:absolute;inset:0 auto 0 0;width:5px;background:var(--project-accent,var(--aqua))}
.project-launch:after{content:"";position:absolute;width:280px;height:280px;border-radius:50%;right:-80px;top:-90px;background:radial-gradient(circle,rgba(102,223,202,.14),rgba(102,223,202,0) 68%);opacity:.7}
.project-launch.project-obub:after{background:radial-gradient(circle,rgba(100,174,232,.15),rgba(100,174,232,0) 68%)}
.project-launch:hover{transform:translateY(-3px);border-color:#3c6269;background:linear-gradient(135deg,rgba(17,49,54,.92),rgba(8,28,32,.86))}
.project-launch>*{position:relative;z-index:1}
.project-topline{display:flex;align-items:flex-start;justify-content:space-between;gap:24px}
.project-icon{width:52px;height:52px;display:grid;place-items:center;border-radius:14px;border:1px solid rgba(255,255,255,.1);background:rgba(255,255,255,.035);color:var(--project-accent,var(--aqua))}
.project-icon svg{width:30px;height:30px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.project-status{font-size:14px;color:#afd6ce;text-transform:uppercase;letter-spacing:.13em;font-weight:730}
.project-copy h3{font-size:27px;margin:0 0 8px;letter-spacing:-.025em}.project-copy p{font-size:17px;color:var(--muted);margin:0;max-width:560px}
.project-open{display:flex;align-items:center;justify-content:space-between;margin-top:30px;padding-top:18px;border-top:1px solid rgba(255,255,255,.07);font-size:16px;font-weight:760;color:#dcebe8}.project-open span:last-child{font-size:20px;color:var(--project-accent,var(--aqua));transition:transform .18s ease}.project-launch:hover .project-open span:last-child{transform:translateX(4px)}
.project-pending{--project-accent:var(--aqua)}.project-obub{--project-accent:var(--blue)}
.empty-projects{padding:38px 0;color:var(--muted);font-size:17px;border-top:1px solid var(--line-soft);border-bottom:1px solid var(--line-soft)}

/* Admin and account */
.page-heading{display:flex;align-items:end;justify-content:space-between;gap:30px;padding-bottom:30px;border-bottom:1px solid var(--line-soft)}
.page-heading h1{font-size:44px;line-height:1.05;margin:0;letter-spacing:-.035em}.page-heading p{margin:13px 0 0;color:var(--muted);font-size:17px;max-width:760px}.heading-actions{display:flex;gap:10px}
.btn,.btn-danger{display:inline-flex;align-items:center;justify-content:center;min-height:44px;border-radius:10px;padding:0 15px;text-decoration:none;border:1px solid #2b4b51;background:#0d272b;color:var(--text);font-size:15px;font-weight:740;cursor:pointer}
.btn:hover{border-color:#3f666e;background:#102e33}.btn.primary{background:var(--aqua);border-color:var(--aqua);color:#062126}.btn.primary:hover{filter:brightness(1.04)}
.btn-danger{border-color:rgba(239,127,130,.38);background:rgba(239,127,130,.07);color:#ffc5c7}.btn-danger:hover{background:rgba(239,127,130,.12)}
.member-summary{display:flex;gap:34px;padding:24px 0 18px;color:var(--muted);font-size:15px}.member-summary b{font-size:20px;color:var(--text);margin-right:7px}
.member-table{width:100%;border-collapse:collapse;margin-top:12px}
.member-table th{text-align:left;font-size:14px;text-transform:uppercase;letter-spacing:.13em;color:var(--quiet);font-weight:780;padding:13px 14px;border-bottom:1px solid #28454c}
.member-table td{padding:18px 14px;border-bottom:1px solid rgba(137,190,191,.10);vertical-align:middle;font-size:16px}
.member-table tr:hover td{background:rgba(255,255,255,.012)}
.member-name b{display:block;font-size:17px}.member-name span{display:block;color:var(--quiet);font-size:14px;margin-top:2px}
.role-badge,.state-badge,.access-badge{display:inline-flex;align-items:center;min-height:30px;padding:0 10px;border-radius:999px;font-size:13px;font-weight:760;letter-spacing:.035em;border:1px solid #2b4a50;color:#c4d9d6;background:rgba(255,255,255,.02)}
.role-badge.admin{color:#c8efe7;border-color:rgba(102,223,202,.30);background:rgba(102,223,202,.06)}
.state-badge.off{color:#ffb9bb;border-color:rgba(239,127,130,.28);background:rgba(239,127,130,.05)}
.access-stack{display:flex;flex-wrap:wrap;gap:6px}.access-badge.pending{color:#b8eee2;border-color:rgba(102,223,202,.23)}.access-badge.obub{color:#c7e1f7;border-color:rgba(100,174,232,.26)}
.manage-link{color:var(--aqua);font-weight:760;text-decoration:none}.manage-link:hover{text-decoration:underline}
.editor{margin:34px 0 16px;padding:30px 0;border-top:1px solid var(--line-soft);border-bottom:1px solid var(--line-soft)}
.editor h2{font-size:27px;margin:0 0 6px}.editor .editor-intro{color:var(--muted);margin:0 0 24px}
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 22px;max-width:980px}.form-grid .full{grid-column:1/-1}
.checkbox-row{display:flex;flex-wrap:wrap;gap:14px;margin-top:6px}.check{display:flex;align-items:center;gap:9px;color:#d5e4e1;font-size:15px}.check input{width:19px;height:19px;accent-color:var(--aqua)}
.form-actions{display:flex;gap:10px;margin-top:24px}.hint{display:block;color:var(--quiet);font-size:14px;margin-top:7px}.danger-zone{margin-top:22px;padding-top:18px;border-top:1px solid rgba(239,127,130,.13)}
.flash{margin:24px 0 0;padding:13px 15px;border-left:3px solid var(--aqua);background:rgba(102,223,202,.06);font-size:15px}.flash.error{border-color:var(--danger);background:rgba(239,127,130,.07);color:#ffd2d4}.flash.success{border-color:var(--mint)}
.account-card{max-width:760px;padding-top:34px}.account-card h2{font-size:25px;margin:0 0 8px}.account-card>p{color:var(--muted);margin:0 0 26px}.password-form{max-width:620px}.first-login{margin:0 0 26px;padding:16px 18px;border-left:3px solid var(--aqua);background:rgba(102,223,202,.06);color:#cfe8e3}

/* Setup */
.setup-page{display:grid;place-items:center}.setup-shell{position:relative;z-index:1;width:min(1050px,calc(100vw - 64px));padding:56px 0}.setup-head{display:flex;align-items:center;gap:16px;padding-bottom:28px;border-bottom:1px solid var(--line-soft)}.setup-head h1{margin:0;font-size:34px}.setup-head p{margin:4px 0 0;color:var(--muted)}
.preflight{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:26px 0 34px}.preflight-item{padding:15px;border:1px solid #26454b;border-radius:12px;background:rgba(8,28,31,.55)}.preflight-item b{display:block;font-size:15px}.preflight-item span{display:block;color:var(--quiet);font-size:14px;margin-top:4px}.preflight-item.good b{color:var(--mint)}.preflight-item.warn b{color:var(--amber)}
.setup-form{max-width:760px}.setup-form h2{font-size:27px;margin:0 0 8px}.setup-form>p{color:var(--muted);margin:0 0 26px}

.portal-footer{position:relative;z-index:1;width:min(1560px,calc(100vw - 64px));margin:10px auto 0;padding:22px 0 30px;border-top:1px solid var(--line-soft);display:flex;justify-content:space-between;color:#627e7b;font-size:12px;text-transform:uppercase;letter-spacing:.12em}

/* Private project placeholder, served through project router */
.slot-page{min-height:100vh;display:grid;place-items:center;background:#061518;color:#edf8f6;font-family:ui-sans-serif,system-ui,sans-serif}.slot-shell{width:min(880px,calc(100vw - 64px));padding:54px 0;border-top:1px solid #2c4a50;border-bottom:1px solid #243e44}.slot-kicker{color:#66dfca;text-transform:uppercase;letter-spacing:.15em;font-size:13px;font-weight:800}.slot-shell h1{font-size:52px;line-height:1.05;letter-spacing:-.04em;margin:14px 0}.slot-shell p{font-size:18px;color:#a6bfbc;max-width:650px}.slot-shell a{display:inline-flex;margin-top:22px;color:#66dfca;font-weight:800;text-decoration:none}

@media(max-width:980px){
  .login-shell{grid-template-columns:1fr;width:min(760px,calc(100vw - 34px));margin:30px 0}.login-story{min-height:420px;padding:48px 42px;border-right:0;border-bottom:1px solid var(--line-soft)}.login-panel{padding:48px 42px}.story-copy h1{font-size:50px}
  .workspace-hero{grid-template-columns:1fr;gap:24px}.hero-meta{justify-self:start;text-align:left}.project-list{grid-template-columns:1fr}.preflight{grid-template-columns:repeat(2,1fr)}.form-grid{grid-template-columns:1fr}.form-grid .full{grid-column:auto}.member-table{display:block;overflow-x:auto}
}
@media(max-width:640px){
  body{font-size:15px}.topbar-inner,.workspace-main,.admin-main,.account-main,.portal-footer{width:calc(100vw - 28px)}.topbar-inner{height:72px}.topbar-brand small{display:none}.quiet-link{display:none}.signout{padding:0 11px}
  .workspace-main,.admin-main,.account-main{padding-top:40px}.workspace-hero h1{font-size:42px}.workspace-hero .lead{font-size:17px}.project-launch{min-height:230px;padding:25px 24px}.project-copy h3{font-size:24px}.page-heading{align-items:flex-start;flex-direction:column}.page-heading h1{font-size:38px}.heading-actions{width:100%}.heading-actions .btn{flex:1}
  .login-shell{width:calc(100vw - 22px);margin:11px 0}.login-story{padding:34px 26px;min-height:360px}.story-copy h1{font-size:40px}.story-copy p{font-size:17px}.story-foot{display:none}.login-panel{padding:38px 26px}.preflight{grid-template-columns:1fr}.setup-shell{width:calc(100vw - 28px)}
}
