@import"https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@500;600;700&display=swap";:root{font-family:DM Sans,sans-serif;color:#19312d;background:#f4f6f2;font-synthesis:none;text-rendering:optimizeLegibility;--ink: #17332e;--forest: #112b27;--green: #2b6c5c;--lime: #c8d95b;--paper: #f7f8f4;--line: #dfe5de;--muted: #697a76}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh}button,input{font:inherit}button,a{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}h1,h2,p{margin-top:0}h1,h2,.brand{font-family:Manrope,sans-serif}.eyebrow{color:var(--green);font-size:.72rem;font-weight:700;letter-spacing:.15em;text-transform:uppercase}.brand{align-items:center;display:flex;font-size:.9rem;gap:.7rem;letter-spacing:.06em}.brand__mark{align-items:center;background:var(--lime);border-radius:10px;color:var(--forest);display:flex;height:34px;justify-content:center;width:34px}.brand__mark svg{height:19px;width:19px}.brand--light{color:#fff}.screen-center{align-items:center;display:flex;flex-direction:column;gap:1rem;justify-content:center;min-height:100vh}.loader{animation:spin .8s linear infinite;border:3px solid #dce4df;border-radius:50%;border-top-color:var(--green);height:32px;width:32px}@keyframes spin{to{transform:rotate(360deg)}}.login-page{display:grid;min-height:100vh;grid-template-columns:minmax(360px,.85fr) 1.15fr}.login-brand{background:var(--forest);color:#fff;display:flex;flex-direction:column;justify-content:space-between;overflow:hidden;padding:3rem 4rem;position:relative}.login-brand:after{background:radial-gradient(circle,rgba(200,217,91,.28),transparent 62%);content:"";height:650px;left:-230px;position:absolute;top:25%;width:650px}.login-brand__message{max-width:530px;position:relative;z-index:1}.login-brand__message h1{font-size:clamp(2.3rem,4vw,4.7rem);letter-spacing:-.055em;line-height:1.04;margin-bottom:1.7rem}.login-brand__message>p:last-child{color:#b7c5c1;font-size:1.05rem;max-width:420px}.login-brand small{color:#91a6a0;position:relative;z-index:1}.login-panel{align-items:center;background:var(--paper);display:flex;justify-content:center;padding:3rem}.login-card{max-width:420px;width:100%}.login-card__icon{align-items:center;background:#e6ece7;border-radius:14px;color:var(--green);display:flex;height:52px;justify-content:center;margin-bottom:2rem;width:52px}.login-card h2{color:var(--ink);font-size:2.4rem;letter-spacing:-.04em;margin-bottom:.6rem}.login-card>p:not(.eyebrow):not(.form-error){color:var(--muted);margin-bottom:2.2rem}.login-card label{color:var(--ink);display:block;font-size:.85rem;font-weight:600;margin:1.1rem 0}.login-card input{background:#fff;border:1px solid var(--line);border-radius:9px;color:var(--ink);display:block;margin-top:.5rem;outline:none;padding:.9rem 1rem;transition:.2s;width:100%}.login-card input:focus{border-color:var(--green);box-shadow:0 0 0 3px #2b6c5c1f}.notice{background:#f7f4dc;border:1px solid #e4d98d;border-radius:8px;color:#625a23;font-size:.84rem;padding:.8rem 1rem}.form-error{color:#a43e38;font-size:.85rem;margin-bottom:.5rem}.primary-button{align-items:center;background:var(--green);border:0;border-radius:9px;color:#fff;cursor:pointer;display:flex;font-weight:700;gap:.7rem;justify-content:center;margin-top:1.5rem;min-height:48px;padding:.8rem 1.2rem;width:100%}.primary-button:hover:not(:disabled){background:#205c4e}.primary-button:disabled{cursor:not-allowed;opacity:.5}.primary-button--link{display:inline-flex;width:auto}.app-shell{display:flex;min-height:100vh}.sidebar{background:var(--forest);color:#fff;display:flex;flex-direction:column;padding:1.4rem 1rem;position:fixed;inset:0 auto 0 0;width:270px;z-index:20}.sidebar__header{align-items:center;display:flex;justify-content:space-between;padding:.4rem .5rem 2.2rem}.sidebar nav{flex:1}.nav-label{color:#718c85;font-size:.65rem;font-weight:700;letter-spacing:.15em;margin:1.3rem .8rem .5rem;text-transform:uppercase}.nav-item{align-items:center;border-radius:8px;color:#aebfba;display:flex;font-size:.88rem;gap:.8rem;margin-bottom:.25rem;padding:.72rem .8rem}.nav-item svg{height:18px;width:18px}.nav-item:hover{background:#173c35;color:#fff}.nav-item--active{background:#20483f;color:var(--lime)}.sidebar__footer{align-items:center;border-top:1px solid #29463f;display:flex;gap:.7rem;padding:1.1rem .3rem 0}.user-summary{align-items:center;display:flex;flex:1;gap:.65rem;min-width:0}.user-summary>span:last-child{min-width:0}.user-summary strong,.user-summary small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-summary strong{font-size:.75rem}.user-summary small{color:#8da39d;font-size:.64rem;margin-top:.15rem}.avatar{align-items:center;background:var(--lime);border-radius:50%;color:var(--forest);display:flex;font-weight:700;height:32px;justify-content:center;width:32px}.logout-button,.icon-button{background:transparent;border:0;color:inherit;cursor:pointer;padding:.35rem}.logout-button svg,.icon-button svg{height:19px;width:19px}.app-content{margin-left:270px;min-width:0;width:100%}.topbar{align-items:center;background:#f7f8f4e0;border-bottom:1px solid var(--line);color:var(--muted);display:flex;font-size:.75rem;gap:1rem;height:64px;justify-content:flex-end;padding:0 3rem;position:sticky;top:0;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:10}.environment-pill{background:#e8eee9;border-radius:99px;color:var(--green);font-weight:600;padding:.35rem .7rem}.page-content{padding:clamp(2rem,4vw,4.5rem)}.page-heading{margin-bottom:3rem;max-width:680px}.page-heading h1{font-size:clamp(2.5rem,5vw,4.6rem);letter-spacing:-.06em;line-height:1;margin-bottom:1.2rem}.page-heading>p:last-child{color:var(--muted);font-size:1.05rem}.module-grid{display:grid;gap:1px;grid-template-columns:repeat(3,minmax(0,1fr));background:var(--line);border:1px solid var(--line)}.module-card{background:var(--paper);min-height:290px;padding:2rem;position:relative;transition:.2s ease}a.module-card:hover{background:#fff;transform:translateY(-3px);z-index:1;box-shadow:0 16px 34px #16342d17}.module-card__number{color:#9eaaa6;font-family:Manrope;font-size:.65rem;position:absolute;right:1.5rem;top:1.5rem}.module-card__icon{align-items:center;background:#e8eee9;border-radius:12px;color:var(--green);display:flex;height:44px;justify-content:center;margin-bottom:2rem;width:44px}.module-card__icon svg{height:21px;width:21px}.module-card h2{font-size:1.35rem;margin-bottom:.75rem}.module-card p{color:var(--muted);font-size:.86rem;line-height:1.6}.module-card__link{align-items:center;bottom:1.8rem;color:var(--green);display:flex;font-size:.76rem;font-weight:700;gap:.4rem;position:absolute}.module-card__link svg{height:15px;width:15px}.module-card--future{background:var(--forest);color:#fff}.module-card--future p{color:#aabbb6}.module-page{background:#fff;border:1px solid var(--line);min-height:450px;padding:clamp(2rem,6vw,5rem)}.module-page__icon{align-items:center;background:#e8eee9;border-radius:16px;color:var(--green);display:flex;height:60px;justify-content:center;margin-bottom:2.5rem;width:60px}.module-page h1{font-size:clamp(2.3rem,5vw,4rem);letter-spacing:-.05em;margin-bottom:1rem}.module-page>p:not(.eyebrow){color:var(--muted);max-width:540px}.status-badge{background:#edf1dc;border-radius:99px;color:#647022;display:inline-block;font-size:.72rem;font-weight:700;margin-top:1.5rem;padding:.45rem .8rem;text-transform:uppercase}.mobile-only,.sidebar-overlay{display:none}@media(max-width:1000px){.module-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.login-page{grid-template-columns:1fr}.login-brand{display:none}}@media(max-width:760px){.mobile-only{display:block}.sidebar{transform:translate(-100%);transition:transform .2s;width:min(86vw,300px)}.sidebar--open{transform:translate(0)}.sidebar-overlay{background:#06151280;border:0;display:block;inset:0;position:fixed;z-index:15}.app-content{margin-left:0}.topbar{justify-content:space-between;padding:0 1rem}.topbar>span:first-of-type{display:none}.page-content{padding:1.5rem 1rem}.module-grid{grid-template-columns:1fr}.module-card{min-height:260px}.login-panel{padding:2rem 1.25rem}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important}}
