:root{font-family:Segoe UI,Arial,sans-serif;color:#17251f;background:#f5f7f4;font-synthesis:none;text-rendering:optimizeLegibility;--ink: #15251f;--muted: #69766f;--line: #dfe6e1;--panel: #ffffff;--green-950: #112c27;--green-900: #153b33;--green-700: #276b5a;--green-500: #3d947c;--green-100: #dceee7;--sand: #e8c996;--sand-soft: #f6ecdc;--warning: #b65b32;--warning-soft: #fff0e8;--shadow: 0 16px 42px rgba(24, 54, 43, .08)}*{box-sizing:border-box}html{min-width:320px;min-height:100%;background:#f5f7f4}body{margin:0;min-width:320px;min-height:100vh}button,input,select{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.65}button,input,select{outline-color:var(--green-500)}h1,h2,h3,p{margin-top:0}h1,h2,h3,strong{font-family:Segoe UI,Arial,sans-serif}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.brand{display:inline-flex;align-items:center;gap:12px;color:inherit}.brand-mark{position:relative;width:34px;height:34px;display:inline-block;background:var(--sand);border-radius:10px;overflow:hidden;box-shadow:inset 0 0 0 1px #ffffff38}.brand-roof{position:absolute;width:17px;height:17px;left:8px;top:7px;border-left:3px solid var(--green-950);border-top:3px solid var(--green-950);transform:rotate(45deg);border-radius:2px}.brand-door{position:absolute;width:6px;height:11px;left:14px;bottom:4px;background:var(--green-950);border-radius:3px 3px 0 0}.brand-copy{display:flex;align-items:baseline;font-size:18px;letter-spacing:-.45px}.brand-copy strong{font-weight:700}.brand-copy span{font-weight:400;opacity:.78}.eyebrow,.panel-kicker{margin:0 0 8px;color:var(--green-700);font-size:11px;font-weight:700;letter-spacing:.11em;text-transform:uppercase}.eyebrow.light{color:#b4d9ca}.primary-button,.secondary-button{border-radius:11px;padding:11px 16px;display:inline-flex;align-items:center;justify-content:center;gap:8px;font-weight:700;font-size:14px;border:1px solid transparent;transition:transform .18s ease,box-shadow .18s ease,background .18s ease}.primary-button{background:var(--green-900);color:#fff;box-shadow:0 8px 18px #153b332e}.primary-button:hover:not(:disabled){background:#0d3028;transform:translateY(-1px);box-shadow:0 10px 24px #153b333b}.secondary-button{color:var(--green-900);background:#fff;border-color:var(--line)}.secondary-button:hover{border-color:#aebdb5;background:#f9fbf9}.icon-button{width:36px;height:36px;padding:0;display:grid;place-items:center;border:1px solid var(--line);border-radius:10px;color:var(--green-900);background:#fff}.icon-button:hover{background:#f3f7f4}.text-button{display:inline-flex;align-items:center;gap:4px;border:0;background:transparent;color:var(--green-700);font-weight:700;font-size:12px}.login-page{min-height:100vh;display:grid;grid-template-columns:minmax(420px,1.08fr) minmax(460px,.92fr);background:#fff}.login-story{position:relative;overflow:hidden;color:#fff;background:radial-gradient(circle at 14% 15%,rgba(89,150,127,.33),transparent 28%),linear-gradient(145deg,#163c34,#0e2925 58%,#091f1c)}.login-story:before{content:"";position:absolute;width:560px;height:560px;border:1px solid rgba(255,255,255,.08);border-radius:50%;right:-280px;top:14%;box-shadow:0 0 0 85px #ffffff06,0 0 0 170px #ffffff05}.login-story:after{content:"";position:absolute;inset:auto 8% 6% auto;width:42%;height:30%;opacity:.14;background:linear-gradient(90deg,transparent 48%,#c9decf 49%,#c9decf 51%,transparent 52%),linear-gradient(transparent 48%,#c9decf 49%,#c9decf 51%,transparent 52%);background-size:46px 46px;transform:perspective(400px) rotateX(58deg) rotate(-8deg)}.login-story-inner{position:relative;z-index:1;min-height:100vh;padding:46px clamp(46px,6vw,92px);display:flex;flex-direction:column}.login-story .brand-copy{color:#fff}.login-story-copy{margin:auto 0;max-width:610px;padding:70px 0}.login-story-copy h1{max-width:590px;margin-bottom:22px;font-size:clamp(38px,4.2vw,62px);line-height:1.06;letter-spacing:-2.4px}.login-lead{max-width:520px;color:#c8d8d2;font-size:18px;line-height:1.7}.login-benefits{padding:0;margin:36px 0 0;list-style:none;display:grid;gap:13px;color:#e5eeea;font-size:14px}.login-benefits li{display:flex;align-items:center;gap:10px}.login-benefits svg{color:var(--sand)}.story-status{display:flex;align-items:center;gap:10px;color:#a9c2b8;font-size:12px;letter-spacing:.04em}.pulse-dot{width:7px;height:7px;border-radius:50%;background:#78cba8;box-shadow:0 0 0 5px #78cba81f}.login-panel{min-height:100vh;display:grid;place-items:center;padding:48px;background:#fbfcfa}.login-card{width:min(100%,430px)}.login-mobile-brand{display:none;margin-bottom:50px;color:var(--green-950)}.login-icon{width:44px;height:44px;display:grid;place-items:center;border-radius:13px;margin-bottom:26px;color:var(--green-700);background:var(--green-100)}.login-card h2{margin:0 0 12px;font-size:31px;line-height:1.18;letter-spacing:-1px;color:var(--green-950)}.login-hint{color:var(--muted);line-height:1.55;font-size:14px;margin-bottom:32px}.login-form{display:grid;gap:20px}.login-form label,.task-form label{display:grid;gap:8px;color:#35453e;font-size:13px;font-weight:700}.login-form input,.task-form input,.task-form select{width:100%;height:48px;padding:0 14px;border:1px solid #d5ded9;border-radius:10px;color:var(--ink);background:#fff;transition:border .18s ease,box-shadow .18s ease}.login-form input:focus,.task-form input:focus,.task-form select:focus{border-color:var(--green-500);box-shadow:0 0 0 4px #3d947c1f;outline:0}.password-field{position:relative}.password-field input{padding-right:48px}.password-toggle{position:absolute;right:7px;top:6px;width:36px;height:36px;display:grid;place-items:center;border:0;background:transparent;color:#76837d;border-radius:8px}.password-toggle:hover{background:#f0f4f1}.login-button{height:50px;margin-top:4px;justify-content:space-between;padding-inline:18px}.form-error{margin:-6px 0 0;padding:10px 12px;border-radius:8px;color:#8d3b1f;background:var(--warning-soft);font-size:12px;font-weight:600}.loading-screen{min-height:100vh;display:grid;place-content:center;justify-items:center;gap:18px;color:var(--green-950);background:#f6f8f5}.loading-screen p{color:var(--muted);font-size:13px}.loading-line{width:180px;height:3px;overflow:hidden;border-radius:10px;background:#dde5e0}.loading-line:after{content:"";display:block;width:45%;height:100%;background:var(--green-500);animation:loading 1.1s ease-in-out infinite alternate}@keyframes loading{0%{transform:translate(-80%)}to{transform:translate(200%)}}.app-shell{min-height:100vh;background:#f4f6f3}.sidebar{position:fixed;z-index:20;inset:0 auto 0 0;width:252px;display:flex;flex-direction:column;padding:25px 18px 18px;color:#dce9e4;background:var(--green-950)}.sidebar-top{padding:0 8px 24px;display:flex;align-items:center;justify-content:space-between}.sidebar .brand-copy{color:#fff}.mobile-close,.mobile-menu{display:none}.property-switcher{width:100%;display:grid;grid-template-columns:36px minmax(0,1fr) auto;align-items:center;gap:10px;padding:10px;margin-bottom:23px;border:1px solid rgba(255,255,255,.08);border-radius:11px;color:inherit;background:#ffffff0e;text-align:left}.property-switcher:hover{background:#ffffff17}.property-avatar{width:34px;height:34px;display:grid;place-items:center;border-radius:9px;color:var(--sand);background:#e8c9961f}.property-switcher div{min-width:0;display:grid;gap:2px}.property-switcher small{color:#8ca9a0;font-size:9px;text-transform:uppercase;letter-spacing:.08em}.property-switcher strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px;color:#f4f7f5}.main-nav{display:flex;flex-direction:column;gap:4px}.nav-label{padding:0 11px 7px;color:#708e84;font-size:9px;font-weight:700;letter-spacing:.13em;text-transform:uppercase}.nav-label-second{padding-top:21px}.nav-item{width:100%;min-height:42px;display:flex;align-items:center;gap:11px;padding:0 11px;border:0;border-radius:9px;color:#abc0b9;background:transparent;font-size:12px;text-align:left;transition:color .16s ease,background .16s ease}.nav-item:hover{color:#fff;background:#ffffff0e}.nav-item.active{color:#fff;background:#5e9d8636;box-shadow:inset 3px 0 0 var(--sand)}.nav-item.active svg{color:var(--sand)}.sidebar-footer{margin-top:auto;padding-top:16px;border-top:1px solid rgba(255,255,255,.07)}.account-card{width:100%;margin-top:9px;display:grid;grid-template-columns:34px minmax(0,1fr) auto;align-items:center;gap:9px;padding:9px;border:0;border-radius:10px;color:#dce9e4;background:#ffffff0b;text-align:left}.account-card:hover{background:#ffffff14}.account-avatar{width:34px;height:34px;display:grid;place-items:center;border-radius:50%;color:#17362f;background:var(--sand);font-size:11px;font-weight:800}.account-card>span:nth-child(2){min-width:0;display:grid;gap:2px}.account-card strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10px}.account-card small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#78958b;font-size:9px}.main-content{min-height:100vh;margin-left:252px}.topbar{height:70px;position:sticky;z-index:10;top:0;display:flex;align-items:center;justify-content:space-between;padding:0 34px;border-bottom:1px solid #e1e7e3;background:#fafbf9ed;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.breadcrumb{display:flex;align-items:center;gap:9px;font-size:12px}.breadcrumb span{color:#8b9791}.breadcrumb span:after{content:"/";margin-left:9px;color:#b5beb9}.breadcrumb strong{color:var(--green-950)}.topbar-actions{display:flex;align-items:center;gap:12px}.search-field{width:240px;height:38px;display:flex;align-items:center;gap:9px;padding:0 11px;border:1px solid #dde4df;border-radius:10px;color:#8a9791;background:#fff}.search-field input{min-width:0;flex:1;border:0;outline:0;color:var(--ink);background:transparent;font-size:11px}.search-field input::placeholder{color:#9ca8a2}.notification-button{position:relative;width:38px;height:38px;display:grid;place-items:center;border:1px solid #dde4df;border-radius:10px;color:#526159;background:#fff}.notification-button span{position:absolute;width:7px;height:7px;right:8px;top:7px;border:2px solid white;border-radius:50%;background:#c26a40}.dashboard-content{width:min(1440px,100%);margin:0 auto;padding:36px 34px 54px}.welcome-row{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:28px}.welcome-row h1{margin:0 0 7px;color:var(--green-950);font-size:29px;letter-spacing:-1px}.welcome-row p:last-child{margin:0;color:var(--muted);font-size:13px}.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:16px}.metric-card{min-width:0;padding:18px 19px;display:grid;gap:8px;border:1px solid #e1e7e3;border-radius:14px;background:var(--panel);box-shadow:0 4px 16px #19352b09}.metric-heading{display:flex;align-items:center;justify-content:space-between;color:#718078;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.055em}.metric-icon{width:30px;height:30px;display:grid;place-items:center;border-radius:9px;color:var(--green-700);background:#edf5f1}.metric-warning .metric-icon{color:var(--warning);background:var(--warning-soft)}.metric-positive .metric-icon{color:#26745f;background:#e2f1ea}.metric-value{color:var(--green-950);font-size:25px;letter-spacing:-.75px}.metric-note{color:#89958f;font-size:10px}.overview-grid{display:grid;grid-template-columns:.95fr 1.05fr;gap:16px;margin-bottom:16px}.panel,.project-card{border:1px solid #e1e7e3;border-radius:14px;background:var(--panel);box-shadow:0 4px 16px #19352b09}.project-card{padding:21px}.project-card-top{display:flex;align-items:flex-start;justify-content:space-between;gap:15px;padding-bottom:18px;border-bottom:1px solid #edf0ee}.project-card-top h2{margin:0 0 5px;color:var(--green-950);font-size:18px}.project-card-top div>span{color:#849088;font-size:10px}.phase-badge{flex:0 0 auto;padding:6px 9px;border-radius:999px;color:#23634f;background:#e5f2ec;font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.06em}.project-summary{display:grid;grid-template-columns:112px 1fr;align-items:center;gap:22px;padding:20px 0 16px}.progress-ring{--progress: 0deg;width:106px;height:106px;display:grid;place-items:center;border-radius:50%;background:conic-gradient(var(--green-500) var(--progress),#e9efeb 0)}.progress-ring:before{content:"";grid-area:1/1;width:78px;height:78px;border-radius:50%;background:#fff}.progress-ring div{z-index:1;grid-area:1/1;display:grid;justify-items:center}.progress-ring strong{color:var(--green-950);font-size:22px}.progress-ring span{color:#8a9690;font-size:9px;text-transform:uppercase;letter-spacing:.08em}.project-stats{margin:0;display:grid;grid-template-columns:1fr 1fr;gap:14px 18px}.project-stats div{display:grid;gap:3px}.project-stats dt{color:#88948e;font-size:9px}.project-stats dd{margin:0;color:var(--ink);font-family:Segoe UI,Arial,sans-serif;font-size:13px;font-weight:700}.budget-progress>div:first-child,.progress-meta{display:flex;align-items:center;justify-content:space-between;color:#75827b;font-size:9px}.budget-progress strong,.progress-meta strong{color:var(--green-900)}.budget-track,.progress-track{height:6px;margin-top:7px;overflow:hidden;border-radius:999px;background:#e9eeeb}.budget-track span,.progress-track span{display:block;height:100%;border-radius:inherit;background:var(--green-500)}.cost-panel{padding:21px}.panel-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:15px}.panel-heading h3{margin:0;color:var(--green-950);font-size:15px;letter-spacing:-.25px}.chart-legend{display:flex;align-items:center;gap:13px;color:#87928d;font-size:9px}.chart-legend span{display:flex;align-items:center;gap:5px}.chart-legend i{width:8px;height:8px;border-radius:3px}.legend-plan{background:#d6e0db}.legend-actual{background:var(--green-500)}.cost-chart{height:174px;margin-top:19px;display:grid;grid-template-columns:repeat(6,1fr);align-items:end;gap:12px;border-bottom:1px solid #e5eae7;background:repeating-linear-gradient(to bottom,transparent 0,transparent 42px,#edf1ef 43px)}.chart-group{height:100%;display:grid;grid-template-rows:1fr 20px;align-items:end;gap:7px;color:#89958f;font-size:9px;text-align:center}.chart-bars{height:100%;display:flex;align-items:flex-end;justify-content:center;gap:4px}.chart-bar{width:min(15px,34%);border-radius:4px 4px 1px 1px;transition:height .5s ease}.chart-plan{background:#dce5e0}.chart-actual{background:linear-gradient(to top,var(--green-700),#58a58c)}.detail-grid{display:grid;grid-template-columns:1.22fr .78fr;gap:16px}.measures-panel,.tasks-panel{padding:21px}.measure-list,.task-list{margin-top:14px}.measure-row{display:grid;grid-template-columns:1.2fr .8fr .62fr;align-items:center;gap:20px;min-height:66px;border-top:1px solid #edf0ee}.measure-title{min-width:0;display:flex;align-items:center;gap:10px}.priority-dot{width:7px;height:7px;flex:0 0 auto;border-radius:50%;background:#9aa8a1}.priority-critical{background:#c3613b;box-shadow:0 0 0 4px #f8e7df}.priority-high{background:#d5984c}.priority-medium{background:#5a9581}.priority-low{background:#9ca8a2}.measure-title div,.measure-cost{min-width:0;display:grid;gap:3px}.measure-title strong,.task-copy strong{overflow:hidden;color:#27372f;font-size:11px;text-overflow:ellipsis;white-space:nowrap}.measure-title span,.measure-cost span,.task-copy span{color:#89958e;font-size:9px}.measure-cost{text-align:right}.measure-cost strong{color:var(--green-950);font-size:11px}.progress-track{height:5px}.task-row{display:grid;grid-template-columns:18px minmax(0,1fr) auto auto;align-items:center;gap:10px;min-height:62px;border-top:1px solid #edf0ee}.task-check{width:16px;height:16px;border:1.5px solid #adbbb4;border-radius:5px}.task-check-critical{border-color:#c3613b;background:#fff5f1}.task-copy{min-width:0;display:grid;gap:3px}.task-date{display:flex;align-items:center;gap:4px;color:#7b8881;font-size:9px;white-space:nowrap}.priority-label{padding:4px 6px;border-radius:6px;color:#66746d;background:#f0f3f1;font-size:8px;font-weight:700}.priority-label-critical{color:#a44f30;background:#fff0e9}.priority-label-high{color:#976526;background:#fbf2e5}.coming-soon{min-height:calc(100vh - 70px);display:grid;place-content:center;justify-items:center;padding:40px;text-align:center}.coming-soon h1{margin:0 0 12px;color:var(--green-950);font-size:31px}.coming-soon>p:not(.eyebrow){max-width:540px;margin-bottom:24px;color:var(--muted);line-height:1.65}.coming-icon{width:62px;height:62px;margin-bottom:18px;display:grid;place-items:center;border-radius:18px;color:var(--green-700);background:var(--green-100)}.portfolio-content{width:min(1440px,100%);margin:0 auto;padding:36px 34px 54px}.portfolio-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:28px}.portfolio-heading h1{margin:0 0 7px;color:var(--green-950);font-size:29px;letter-spacing:-1px}.portfolio-heading p:last-child{margin:0;color:var(--muted);font-size:13px}.portfolio-empty{min-height:430px;padding:56px 28px;display:grid;place-content:center;justify-items:center;border:1px dashed #cfdad4;border-radius:18px;background:linear-gradient(145deg,#fff,#f8faf8);text-align:center}.portfolio-empty-icon{width:72px;height:72px;margin-bottom:22px;display:grid;place-items:center;border-radius:20px;color:var(--green-700);background:var(--green-100)}.portfolio-empty h2{margin:0 0 10px;color:var(--green-950);font-size:24px}.portfolio-empty>p:not(.eyebrow){max-width:520px;margin:0 0 24px;color:var(--muted);font-size:13px;line-height:1.65}.property-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.property-card{min-height:250px;padding:22px;display:flex;flex-direction:column;gap:24px;border:1px solid #dfe6e1;border-radius:15px;background:#fff;box-shadow:0 5px 18px #19352b0a}.property-card-active{border-color:#9fc4b5;box-shadow:0 0 0 3px #3d947c14}.property-card-top{display:flex;align-items:center;justify-content:space-between;gap:12px}.property-card-icon{width:44px;height:44px;display:grid;place-items:center;border-radius:12px;color:var(--green-700);background:var(--green-100)}.property-card h2{margin:0 0 8px;color:var(--green-950);font-size:18px}.property-card p{margin:0;color:var(--muted);font-size:12px;line-height:1.55}.property-card .secondary-button{width:100%;margin-top:auto}.dialog-backdrop{position:fixed;z-index:100;inset:0;display:grid;place-items:center;padding:20px;background:#091a168c;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.task-dialog{width:min(100%,500px);margin:0;padding:24px;border:0;border-radius:16px;color:var(--ink);background:#fff;box-shadow:0 24px 70px #06191347}.dialog-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.dialog-heading h2{margin:0;color:var(--green-950);font-size:21px}.task-form{display:grid;gap:18px;margin-top:24px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.dialog-actions{margin-top:4px;display:flex;justify-content:flex-end;gap:10px}.dialog-help{margin:-4px 0 0;color:var(--muted);font-size:11px;line-height:1.55}@media(max-width:1180px){.metric-grid{grid-template-columns:repeat(2,1fr)}.overview-grid,.detail-grid{grid-template-columns:1fr}}@media(max-width:860px){.login-page{grid-template-columns:1fr}.login-story{display:none}.login-panel{padding:32px 22px}.login-mobile-brand{display:block}.sidebar{transform:translate(-100%);transition:transform .2s ease;box-shadow:18px 0 40px #07191438}.sidebar.sidebar-open{transform:translate(0)}.sidebar-scrim{position:fixed;z-index:15;inset:0;border:0;background:#0817136b}.mobile-close,.mobile-menu{display:grid;place-items:center;border:0;background:transparent}.mobile-close{color:#bdd0ca}.mobile-menu{width:36px;height:36px;color:var(--green-900);border:1px solid var(--line);border-radius:9px;background:#fff}.main-content{margin-left:0}.topbar{padding:0 20px;justify-content:flex-start;gap:13px}.breadcrumb{flex:1}.search-field{display:none}.dashboard-content,.portfolio-content{padding:28px 20px 44px}.property-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:620px){.topbar{height:62px}.breadcrumb span{display:none}.breadcrumb span:after{display:none}.welcome-row{align-items:flex-start;flex-direction:column}.welcome-row .primary-button{width:100%}.portfolio-heading{align-items:flex-start;flex-direction:column}.portfolio-heading .primary-button{width:100%}.property-grid,.metric-grid{grid-template-columns:1fr}.project-summary{grid-template-columns:1fr;justify-items:center}.project-stats{width:100%}.measure-row{grid-template-columns:1fr;gap:8px;padding:13px 0}.measure-cost{text-align:left}.task-row{grid-template-columns:18px minmax(0,1fr) auto;padding:8px 0}.priority-label{display:none}.cost-chart{gap:5px}.form-grid{grid-template-columns:1fr}.dialog-actions{flex-direction:column-reverse}.dialog-actions button{width:100%}}
