:root{--bg:#0c1112;--panel:#101718;--panel-2:#151e1f;--line:rgba(255,255,255,.1);--text:#eef3f1;--muted:#8d9a97;--accent:#45c6ad;--accent-soft:#96dfca;--shadow:0 22px 60px rgba(0,0,0,.34);font-family:Inter,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;color-scheme:dark}
*{box-sizing:border-box}html{min-height:100%;background:var(--bg)}body{min-height:100vh;margin:0;color:var(--text);background:var(--bg)}button,input,a{font:inherit}a{color:inherit;text-decoration:none}button,a{touch-action:manipulation}svg{fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.portal-body{background:radial-gradient(circle at 84% 5%,rgba(69,198,173,.09),transparent 28rem),linear-gradient(145deg,#0c1112,#101718 58%,#0c1213)}
.portal-logo{display:flex;width:128px;height:46px;align-items:center;justify-content:center;padding:9px 12px;border:1px solid var(--line);border-radius:12px;background:rgba(5,9,10,.34)}.portal-logo img{display:block;width:100%;height:100%;object-fit:contain}.portal-eyebrow{display:block;margin-bottom:13px;color:var(--accent-soft);font-size:10px;font-weight:750;letter-spacing:.2em;text-transform:uppercase}
.login-layout{display:grid;grid-template-columns:minmax(360px,1fr) minmax(440px,.85fr);min-height:100dvh}.login-intro{position:relative;display:flex;flex-direction:column;justify-content:space-between;min-height:100%;padding:clamp(28px,5vw,70px);overflow:hidden;background:linear-gradient(145deg,rgba(7,11,12,.35),rgba(7,11,12,.88)),radial-gradient(circle at 25% 50%,rgba(69,198,173,.14),transparent 27rem)}.login-intro:before,.login-intro:after{content:"";position:absolute;pointer-events:none}.login-intro:before{right:-18vw;bottom:-40vh;width:70vw;height:70vw;border:1px solid rgba(150,223,202,.09);border-radius:50%;box-shadow:0 0 0 7vw rgba(150,223,202,.018),0 0 0 14vw rgba(150,223,202,.012)}.login-intro:after{right:8%;top:24%;width:9px;height:9px;border:1px solid var(--accent);border-radius:50%;box-shadow:0 0 0 8px rgba(69,198,173,.05)}.login-intro__copy{position:relative;z-index:1;max-width:660px;margin:80px 0}.login-intro h1{margin:0;font-size:clamp(44px,6vw,88px);font-weight:580;line-height:.98;letter-spacing:-.055em}.login-intro h1 em{color:var(--accent-soft);font-style:normal;font-weight:480}.login-intro__copy p{max-width:500px;margin:28px 0 0;color:var(--muted);font-size:15px;line-height:1.75}.login-intro__foot{position:relative;margin:0;color:#687370;font-size:9px;font-weight:700;letter-spacing:.16em;text-transform:uppercase}
.login-panel{display:grid;place-items:center;padding:40px;background:rgba(16,23,24,.72);border-left:1px solid var(--line);backdrop-filter:blur(18px)}.login-card{width:min(100%,420px)}.login-card__heading{margin-bottom:32px}.login-card__heading small{color:var(--accent);font-size:9px;font-weight:750;letter-spacing:.19em;text-transform:uppercase}.login-card__heading h2{margin:7px 0 8px;font-size:30px;font-weight:600;letter-spacing:-.03em}.login-card__heading p{margin:0;color:var(--muted);font-size:12px}.form-alert{margin:0 0 20px;padding:12px 14px;border:1px solid rgba(233,137,121,.28);border-radius:9px;background:rgba(150,61,48,.12);color:#efb2a8;font-size:11px;line-height:1.5}.form-field{display:block;margin:0 0 17px}.form-field>span:first-child{display:block;margin-bottom:8px;color:#c8d0ce;font-size:10px;font-weight:650}.form-field__control{display:grid;grid-template-columns:42px 1fr;height:49px;align-items:center;border:1px solid var(--line);border-radius:10px;background:#0d1314;transition:.18s}.form-field__control:focus-within{border-color:rgba(69,198,173,.65);box-shadow:0 0 0 3px rgba(69,198,173,.08)}.form-field__control svg{width:18px;height:18px;margin:auto;color:#64716e}.form-field input{width:100%;height:100%;padding:0 14px 0 0;border:0;outline:0;background:transparent;color:var(--text);font-size:13px}.primary-button{width:100%;height:50px;margin-top:8px;padding:0 15px 0 20px;display:flex;align-items:center;justify-content:space-between;border:0;border-radius:10px;background:var(--accent);color:#09201b;font-size:11px;font-weight:800;letter-spacing:.02em;cursor:pointer;box-shadow:0 10px 25px rgba(27,133,112,.18);transition:.18s}.primary-button:hover{background:#65d3bc;transform:translateY(-1px)}.primary-button svg{width:21px;height:21px}
.portal-header{height:78px;display:flex;align-items:center;justify-content:space-between;padding:0 clamp(20px,5vw,72px);border-bottom:1px solid var(--line);background:rgba(12,17,18,.82);backdrop-filter:blur(16px)}.portal-header .portal-logo{width:116px;height:42px}.account-menu{display:flex;align-items:center;gap:22px}.account-menu>span{display:flex;flex-direction:column;text-align:right}.account-menu small{color:#687572;font-size:8px;font-weight:700;letter-spacing:.1em;text-transform:uppercase}.account-menu strong{margin-top:3px;color:#dfe6e4;font-size:11px;font-weight:620}.account-menu>a{height:36px;display:flex;align-items:center;gap:7px;padding:0 11px;border:1px solid var(--line);border-radius:9px;color:var(--muted);font-size:9px;font-weight:650;transition:.18s}.account-menu>a:hover{border-color:rgba(150,223,202,.32);color:var(--text)}.account-menu svg{width:17px;height:17px}
.projects-layout{width:min(1420px,calc(100% - 48px));margin:0 auto;padding:clamp(42px,6vw,78px) 0 80px}.projects-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:30px;margin-bottom:36px}.projects-heading h1{margin:0;font-size:clamp(34px,4.2vw,58px);font-weight:580;letter-spacing:-.045em}.projects-heading p{margin:12px 0 0;color:var(--muted);font-size:13px}.projects-count{display:flex;align-items:baseline;gap:6px;padding-bottom:5px;color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.11em}.projects-count strong{color:var(--accent-soft);font-size:25px;font-weight:550;letter-spacing:-.04em}.projects-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.project-card{min-width:0;border:1px solid var(--line);border-radius:15px;background:var(--panel);overflow:hidden;box-shadow:0 14px 35px rgba(0,0,0,.16);transition:.2s}.project-card:hover{transform:translateY(-4px);border-color:rgba(150,223,202,.28);box-shadow:var(--shadow)}.project-card__link{display:block}.project-card__visual{position:relative;height:220px;overflow:hidden;background:#080c0d}.project-card__visual>img{width:100%;height:100%;display:block;object-fit:cover;transition:transform .5s}.project-card:hover .project-card__visual>img{transform:scale(1.025)}.project-card__visual:after{content:"";position:absolute;inset:45% 0 0;background:linear-gradient(transparent,rgba(8,12,13,.64))}.project-card__fallback{width:100%;height:100%;display:grid;place-items:center;background:radial-gradient(circle,rgba(69,198,173,.08),transparent 55%)}.project-card__fallback img{width:130px;opacity:.32}.project-status{position:absolute;z-index:2;left:13px;top:13px;padding:7px 9px;border:1px solid rgba(255,255,255,.12);border-radius:7px;background:rgba(9,14,15,.72);color:#d7dfdc;font-size:8px;font-weight:750;letter-spacing:.11em;text-transform:uppercase;backdrop-filter:blur(8px)}.project-status:before{content:"";display:inline-block;width:5px;height:5px;margin-right:6px;border-radius:50%;background:var(--accent)}.project-status--future:before{background:#879390}.project-status--complete:before{background:#b2bbb8}.project-card__open{position:absolute;z-index:2;right:13px;bottom:13px;width:35px;height:35px;display:grid;place-items:center;border:1px solid rgba(255,255,255,.18);border-radius:9px;background:rgba(9,14,15,.68);color:var(--accent-soft);backdrop-filter:blur(7px)}.project-card__open svg{width:19px;height:19px}.project-card__body{padding:19px 20px 21px}.project-card__title{min-height:52px;display:flex;justify-content:space-between;align-items:flex-start;gap:14px}.project-card__title h2{margin:0;font-size:18px;font-weight:620;letter-spacing:-.02em}.project-card__title p{margin:5px 0 0;color:var(--muted);font-size:10px}.project-card__title>span{flex:none;padding:6px 8px;border:1px solid var(--line);border-radius:7px;color:var(--accent-soft);font-size:8px;font-weight:680}.project-dates{display:grid;grid-template-columns:1fr 1fr;margin:18px 0;padding:14px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.project-dates div+div{padding-left:17px;border-left:1px solid var(--line)}.project-dates dt{color:#6f7c79;font-size:8px;font-weight:700;letter-spacing:.1em;text-transform:uppercase}.project-dates dd{margin:5px 0 0;color:#d9e0de;font-size:11px;font-weight:600}.project-progress>div{display:flex;justify-content:space-between;align-items:center;color:#778481;font-size:8px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.project-progress strong{color:#afbbb8;font-size:9px}.project-progress>i{height:3px;display:block;margin-top:9px;border-radius:3px;background:#273031;overflow:hidden}.project-progress>i b{height:100%;display:block;border-radius:inherit;background:linear-gradient(90deg,#2b907d,var(--accent))}.portal-empty{min-height:330px;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:35px;border:1px solid var(--line);border-radius:15px;background:var(--panel);text-align:center}.portal-empty>span{width:55px;height:43px;margin-bottom:16px;border:1px solid var(--line);border-radius:10px;position:relative}.portal-empty>span:after{content:"";position:absolute;width:14px;height:14px;inset:0;margin:auto;border:1px solid var(--accent);border-radius:50%}.portal-empty strong{font-size:14px}.portal-empty p{margin:7px 0 0;color:var(--muted);font-size:11px}
@media(max-width:1050px){.projects-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.login-layout{grid-template-columns:1fr 1fr}.login-intro h1{font-size:clamp(42px,6vw,64px)}}
@media(max-width:720px){.login-layout{display:block}.login-intro{min-height:290px;padding:25px 22px}.login-intro__copy{margin:44px 0 25px}.login-intro h1{font-size:43px}.login-intro__copy p,.login-intro__foot{display:none}.login-panel{min-height:calc(100dvh - 290px);padding:35px 22px;border-left:0;border-top:1px solid var(--line)}.portal-header{height:66px;padding:0 13px}.portal-header .portal-logo{width:101px;height:38px}.account-menu>span,.account-menu b{display:none}.account-menu{gap:0}.account-menu>a{width:38px;padding:0;justify-content:center}.projects-layout{width:calc(100% - 24px);padding:38px 0 55px}.projects-heading{display:block;margin:0 5px 27px}.projects-count{margin-top:18px}.projects-grid{grid-template-columns:1fr;gap:14px}.project-card__visual{height:210px}}
@media(max-width:390px){.login-intro h1{font-size:38px}.project-card__visual{height:190px}.project-card__body{padding:17px}.project-card__title{display:block}.project-card__title>span{display:inline-block;margin-top:10px}}
.login-intro .portal-logo{width:190px;height:72px;padding:12px 18px;border-color:#fff;background:#fff;box-shadow:0 12px 30px rgba(0,0,0,.18)}.login-intro:after{display:none}
.projects-toolbar{min-height:52px;display:flex;align-items:center;justify-content:space-between;gap:18px;margin:0 0 20px;padding:8px;border:1px solid var(--line);border-radius:12px;background:rgba(16,23,24,.72)}.project-search{width:min(390px,42vw);height:38px;display:grid;grid-template-columns:35px 1fr 32px;align-items:center;border:1px solid var(--line);border-radius:8px;background:#0c1213}.project-search:focus-within{border-color:rgba(69,198,173,.55);box-shadow:0 0 0 3px rgba(69,198,173,.07)}.project-search svg{width:16px;height:16px;margin:auto;color:#65716f}.project-search input{min-width:0;height:100%;padding:0 6px;border:0;outline:0;background:transparent;color:var(--text);font-size:11px}.project-search input::-webkit-search-cancel-button{display:none}.project-search button{height:30px;border:0;background:transparent;color:var(--muted);cursor:pointer}.project-size-switch{display:flex;align-items:center;gap:3px}.project-size-switch>span{margin:0 7px;color:#74807e;font-size:8px;font-weight:700;letter-spacing:.1em;text-transform:uppercase}.project-size-switch button{height:32px;padding:0 10px;border:1px solid transparent;border-radius:7px;background:transparent;color:var(--muted);font-size:9px;font-weight:650;cursor:pointer}.project-size-switch button:hover{color:var(--text)}.project-size-switch button.is-active{border-color:rgba(69,198,173,.28);background:rgba(69,198,173,.11);color:var(--accent-soft)}
.projects-grid--large{grid-template-columns:repeat(3,minmax(0,1fr))}.projects-grid--medium{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.projects-grid--small{grid-template-columns:repeat(6,minmax(0,1fr));gap:12px}.projects-grid--medium .project-card__visual{height:170px}.projects-grid--small .project-card__visual{height:125px}.projects-grid--medium .project-card__body{padding:15px}.projects-grid--small .project-card__body{padding:12px}.projects-grid--medium .project-card__title,.projects-grid--small .project-card__title{display:block;min-height:66px}.projects-grid--medium .project-card__title h2{font-size:15px}.projects-grid--small .project-card__title h2{font-size:12px}.projects-grid--small .project-card__title p{font-size:8px}.projects-grid--medium .project-card__title>span,.projects-grid--small .project-card__title>span{display:inline-block;margin-top:8px}.projects-grid--small .project-card__open{width:29px;height:29px}.projects-grid--small .project-status{left:8px;top:8px;padding:5px 6px}.projects-grid--small .project-dates{display:block;margin:11px 0;padding:9px 0}.projects-grid--small .project-dates div+div{margin-top:7px;padding:7px 0 0;border-left:0;border-top:1px solid var(--line)}.projects-grid--small .project-progress span{display:none}.portal-empty--search{min-height:180px;margin-top:15px}
@media(max-width:1250px){.projects-grid--medium{grid-template-columns:repeat(3,minmax(0,1fr))}.projects-grid--small{grid-template-columns:repeat(5,minmax(0,1fr))}}
@media(max-width:1050px){.projects-grid--large{grid-template-columns:repeat(2,minmax(0,1fr))}.projects-grid--medium{grid-template-columns:repeat(3,minmax(0,1fr))}.projects-grid--small{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:720px){.login-intro .portal-logo{width:158px;height:59px;padding:10px 15px}.projects-toolbar{align-items:stretch;flex-direction:column;padding:8px}.projects-toolbar>span:empty{display:none}.project-search{width:100%}.project-size-switch{justify-content:space-between}.project-size-switch>span{margin-right:auto}.projects-grid--large,.projects-grid--medium,.projects-grid--small{grid-template-columns:1fr;gap:14px}.projects-grid--large .project-card__visual,.projects-grid--medium .project-card__visual,.projects-grid--small .project-card__visual{height:210px}.projects-grid--medium .project-card__body,.projects-grid--small .project-card__body{padding:17px}.projects-grid--medium .project-card__title,.projects-grid--small .project-card__title{display:flex;min-height:52px}.projects-grid--medium .project-card__title h2,.projects-grid--small .project-card__title h2{font-size:18px}.projects-grid--small .project-card__title p{font-size:10px}.projects-grid--medium .project-card__title>span,.projects-grid--small .project-card__title>span{display:block;margin-top:0}.projects-grid--small .project-dates{display:grid;margin:18px 0;padding:14px 0}.projects-grid--small .project-dates div+div{margin:0;padding:0 0 0 17px;border-top:0;border-left:1px solid var(--line)}.projects-grid--small .project-progress span{display:inline}}
.projects-grid--small .project-card__title{min-height:0}.projects-grid--small .project-card__title>span,.projects-grid--small .project-dates,.projects-grid--small .project-progress{display:none}
