:root{--green:#146937;--green2:#0d4724;--nav:#102e24;--gold:#bd8a2e;--dark:#15231d;--muted:#71817a;--line:#e2eae4;--bg:#f5f8f5;--white:#fff;--soft:#e9f4ec;--radius:16px;--shadow:0 6px 25px rgba(28,59,40,.045);font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;color:var(--dark);font-synthesis:none;font-size:14px}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg)}button,input,select,textarea{font:inherit}button{cursor:pointer}a{text-decoration:none;color:inherit}h1,h2,h3,p{margin-top:0}h1{font-size:26px;letter-spacing:-.8px}h2{font-size:19px;letter-spacing:-.3px}h3{font-size:15px}small{color:var(--muted)}.muted{color:var(--muted)}.hidden{display:none!important}.link{color:var(--green);font-weight:600}.link:hover{text-decoration:underline}.loader{display:inline-block;width:26px;height:26px;border-radius:100%;border:3px solid #d4e7d9;border-top-color:var(--green);animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.loading-start{height:100vh;display:grid;align-content:center;justify-items:center;gap:15px;color:var(--muted)}
/* Access and installation */
.auth-page{min-height:100vh;display:grid;grid-template-columns:minmax(330px,45%) 1fr;background:white}.auth-art{background:linear-gradient(138deg,#0f3828 0%,#185c39 65%,#102f25 100%);padding:65px clamp(28px,5vw,90px);color:white;display:flex;flex-direction:column;justify-content:space-between;position:relative;overflow:hidden}.auth-art:after{content:"";position:absolute;width:500px;height:500px;border:1px solid rgba(236,220,160,.16);border-radius:50%;bottom:-180px;right:-200px;box-shadow:0 0 0 90px rgba(255,255,255,.028),0 0 0 175px rgba(255,255,255,.025)}.auth-art .brand{z-index:1}.auth-headline{z-index:1;max-width:480px}.auth-headline h1{font-size:clamp(35px,4vw,55px);font-weight:650;line-height:1.13;letter-spacing:-2px;margin-bottom:22px}.auth-headline p{font-size:16px;line-height:1.7;color:#c7dfd0}.auth-footer{color:#b3cfbe;z-index:1}.auth-inner{display:grid;place-items:center;overflow:auto;padding:36px 24px}.auth-form{width:min(100%,460px)}.auth-form h2{font-size:30px;letter-spacing:-.8px;margin-bottom:10px}.auth-form>p{color:var(--muted);line-height:1.55;margin-bottom:30px}.auth-form .field{margin-bottom:16px}.form-hint{font-size:12px;color:#778a7b}.logo-mark{width:42px;height:42px;background:white;border-radius:12px;object-fit:cover}.brand{display:flex;align-items:center;gap:11px}.brand-title{font-size:18px;font-weight:780;letter-spacing:-.3px}.brand-sub{display:block;color:#b3d1be;font-size:10px;letter-spacing:1.6px;text-transform:uppercase;font-weight:700;margin-top:3px}.auth-form .brand{margin-bottom:42px}.auth-form .brand-sub{color:var(--gold)}.auth-form .brand-title{color:var(--nav)}
/* Application shell */
.shell{display:flex;min-height:100vh}.sidebar{width:246px;background:var(--nav);color:#c8d8cd;position:fixed;inset:0 auto 0 0;z-index:22;display:flex;flex-direction:column;padding:24px 13px}.sidebar .brand{padding:0 11px 24px;margin-bottom:12px;border-bottom:1px solid rgba(255,255,255,.1)}.sidebar .logo-mark{width:36px;height:36px;border-radius:10px}.sidebar .brand-title{color:white;font-size:16px}.sidebar .brand-sub{font-size:9px}.nav-caption{font-size:10px;text-transform:uppercase;letter-spacing:1.6px;font-weight:800;color:#739481;margin:18px 11px 8px}.nav-items{overflow-y:auto;flex:1;scrollbar-width:thin;scrollbar-color:#476152 transparent}.nav-btn{border:0;background:transparent;color:#c6d9ce;display:flex;align-items:center;gap:12px;width:100%;text-align:left;padding:12px 13px;border-radius:10px;margin:2px 0;transition:.15s;font-size:13px;font-weight:540}.nav-btn:hover{background:#1b4835;color:#fff}.nav-btn.active{background:#255c3e;color:#fff;font-weight:720;box-shadow:inset 3px 0 0 #d2b76f}.nav-btn .nav-icon{width:19px;height:19px;display:grid;place-items:center;opacity:.92}.nav-badge{margin-left:auto;border-radius:20px;background:var(--gold);color:#14271c;font-size:10px;padding:2px 6px;font-weight:800}.sidebar-footer{border-top:1px solid rgba(255,255,255,.1);padding:16px 10px 2px}.profile-chip{display:flex;align-items:center;gap:10px}.profile-chip .avatar{border:1px solid #477e5a}.profile-chip b{display:block;color:#fff;font-size:12px;max-width:120px;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.profile-chip small{color:#a4c1ae}.signout{display:flex;align-items:center;gap:8px;border:0;color:#c5d5ca;background:none;padding:15px 1px 2px;font-size:12px}.signout:hover{color:#fff}.main-area{margin-left:246px;width:calc(100% - 246px);min-width:0}.topbar{height:76px;background:#fff;display:flex;align-items:center;justify-content:space-between;padding:0 35px;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:17}.crumb{font-size:12px;color:var(--muted);font-weight:500}.crumb b{color:var(--green)}.top-right{display:flex;align-items:center;gap:17px}.top-date{font-size:12px;color:var(--muted)}.icon-button{display:inline-grid;place-items:center;width:36px;height:36px;background:#f3f7f4;color:#425748;border-radius:10px;border:1px solid #edf2ed;position:relative}.icon-button:hover{background:var(--soft)}.alert-dot{position:absolute;right:6px;top:5px;width:7px;height:7px;background:#e18b3c;border-radius:50%}.avatar{width:35px;height:35px;display:grid;place-items:center;border-radius:10px;background:linear-gradient(130deg,#3a8a52,#215539);color:#fff;font-weight:800;font-size:13px;flex-shrink:0}.content{max-width:1620px;margin:auto;padding:34px 36px 70px}.page-title{display:flex;align-items:flex-end;justify-content:space-between;gap:15px;margin-bottom:25px}.page-title h1{margin:2px 0 7px}.eyebrow{font-size:10px;color:var(--gold);font-weight:800;text-transform:uppercase;letter-spacing:2px}.subtitle{color:var(--muted);font-size:13px;line-height:1.5}.page-actions{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.btn{border:1px solid transparent;border-radius:10px;padding:10px 15px;display:inline-flex;align-items:center;justify-content:center;gap:8px;font-weight:680;font-size:12px;white-space:nowrap;min-height:39px;transition:.13s}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:var(--green);color:#fff}.btn-primary:hover{background:#0f562c}.btn-light{background:#fff;border-color:#dae6dd;color:#254a34}.btn-light:hover{background:#edf6ef}.btn-danger{background:#fff2f0;border-color:#ffe0dc;color:#ad3434}.btn-outline{border:1px solid rgba(255,255,255,.3);color:white;background:transparent}.btn-gold{background:#c19a50;color:#fff}.btn-sm{padding:6px 11px;min-height:31px}.btn-full{width:100%}.btn svg,.nav-btn svg{width:17px;height:17px;stroke-width:1.8}.divider{height:1px;background:var(--line);margin:24px 0}
/* Content surfaces */
.stats-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:17px;margin-bottom:20px}.stat-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:22px;box-shadow:var(--shadow);min-width:0}.stat-top{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.stat-icon{border-radius:11px;padding:12px;background:#ebf6ee;color:#20824a;width:42px;height:42px}.stat-icon.gold{background:#fff5e4;color:#b68c3f}.stat-icon.blue{background:#eaf1ff;color:#4676c8}.stat-icon.purple{background:#f2efff;color:#8662c8}.stat-label{font-size:12px;color:#687b70;margin:5px 0 11px;font-weight:600}.stat-value{font-size:29px;font-weight:790;letter-spacing:-1px;white-space:nowrap}.stat-footer{color:#83948a;margin-top:9px;font-size:11px}.stat-footer em{color:var(--green);font-style:normal;font-weight:700}.panel{background:white;border:1px solid var(--line);border-radius:var(--radius);padding:22px 23px;box-shadow:var(--shadow);min-width:0}.panel-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:19px}.panel-head h2{margin:0;font-size:16px}.panel-head p{margin:5px 0 0;color:var(--muted);font-size:12px}.two-cols{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(270px,1fr);gap:19px;margin-bottom:19px}.three-cols{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-bottom:19px}.dashboard-hero{border-radius:17px;color:#fff;background:linear-gradient(115deg,#174c35 0%,#135c37 100%);padding:25px 29px;margin-bottom:21px;display:flex;justify-content:space-between;align-items:center;position:relative;overflow:hidden}.dashboard-hero:after{content:"";position:absolute;right:-65px;bottom:-130px;width:310px;height:310px;border:1px solid #ffffff2b;border-radius:50%;box-shadow:0 0 0 42px #ffffff0d,0 0 0 85px #ffffff08}.dashboard-hero h2{font-size:22px;letter-spacing:-.6px;margin-bottom:7px}.dashboard-hero p{color:#d0e7d6;margin-bottom:0;font-size:12px;line-height:1.6}.dashboard-hero .btn{z-index:2}.section-heading{display:flex;justify-content:space-between;align-items:center;margin:27px 0 14px}.section-heading h2{font-size:16px;margin:0}.section-heading small{font-size:11px}.project-card{border:1px solid var(--line);border-radius:15px;background:#fff;overflow:hidden;box-shadow:var(--shadow)}.project-image{height:132px;background:#e7eee8;object-fit:cover;width:100%}.project-body{padding:17px}.project-body h3{margin:0 0 5px;font-size:15px}.project-meta{display:flex;gap:7px;align-items:center;font-size:11px;color:var(--muted)}.project-footer{display:flex;justify-content:space-between;align-items:center;gap:12px;font-size:12px;margin-top:13px}.progress{height:6px;border-radius:10px;background:#e6eee8;overflow:hidden;margin-top:12px}.progress>span{display:block;height:100%;background:linear-gradient(90deg,#388a50,#bda35b);border-radius:10px}.project-mini{display:flex;align-items:center;gap:12px;border-bottom:1px solid #eef1ef;padding:12px 0}.project-mini:last-child{border-bottom:0}.project-mini img{width:64px;height:56px;border-radius:10px;object-fit:cover}.project-mini strong{display:block;font-size:12px;margin-bottom:5px}.project-mini small{font-size:11px}.project-mini .mini-number{margin-left:auto;white-space:nowrap;color:var(--green);font-weight:800}.table-scroll{overflow:auto}.data-table{border-collapse:collapse;width:100%;min-width:650px}.data-table th{text-align:left;color:#8a9a8f;font-size:10px;font-weight:790;letter-spacing:.85px;text-transform:uppercase;padding:12px 10px;border-bottom:1px solid var(--line);white-space:nowrap}.data-table td{padding:13px 10px;border-bottom:1px solid #f0f3f0;font-size:12px;color:#43564b;vertical-align:middle}.data-table tr:last-child td{border-bottom:0}.data-table tbody tr:hover{background:#fbfdfa}.cell-main{color:#172e21;font-weight:700}.cell-sub{font-size:10px;color:#8a9a8f;margin-top:3px}.badge{display:inline-flex;align-items:center;padding:5px 9px;border-radius:7px;background:#eaf4ee;color:#1d7945;font-size:10px;font-weight:800;letter-spacing:.1px;white-space:nowrap}.badge.orange{background:#fff2db;color:#b67714}.badge.red{background:#fff0ed;color:#c95848}.badge.blue{background:#eaf2ff;color:#4c75b6}.badge.gray{background:#eef2ef;color:#6e7c72}.badge.purple{background:#f1ecff;color:#7956aa}.blank{padding:50px 18px;text-align:center;color:#8b9c90}.blank .blank-icon{display:grid;place-items:center;width:48px;height:48px;border-radius:14px;margin:0 auto 14px;background:#ecf5ee;color:#3c8e54}.blank h3{color:#2b4935;margin:0 0 8px}.blank p{font-size:12px;max-width:345px;line-height:1.5;margin:0 auto 17px}.bar-row{display:flex;align-items:center;gap:10px;margin:12px 0}.bar-row .bar-label{width:110px;font-size:11px;color:#65756b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bar-track{flex:1;height:9px;background:#ecf0ec;border-radius:8px;overflow:hidden}.bar-track span{display:block;height:100%;background:linear-gradient(90deg,#207448,#80b081);border-radius:8px}.bar-row b{width:35px;font-size:11px;text-align:right}.searchline{display:flex;align-items:center;gap:11px;justify-content:space-between;flex-wrap:wrap;margin:0 0 17px}.searchbox{min-width:230px;display:flex;align-items:center;gap:9px;border:1px solid #dde9df;background:#fff;border-radius:10px;padding:0 11px}.searchbox input{border:0;background:transparent;outline:0;padding:11px 0;flex:1;min-width:0;color:#254336;font-size:12px}.searchbox svg{width:15px;height:15px;color:#84988b}.small-select{border:1px solid #dce8de;border-radius:9px;padding:10px;background:#fff;color:#415749;max-width:200px}.row-actions{display:flex;align-items:center;gap:6px}.text-btn{border:0;background:none;color:var(--green);font-size:11px;font-weight:760;white-space:nowrap;padding:5px}.text-btn:hover{text-decoration:underline}.text-btn.danger{color:#c65050}.kicker{font-size:10px;letter-spacing:1.2px;text-transform:uppercase;color:#8a9b90;font-weight:800}.info-tile{border:1px solid var(--line);background:#fafcfa;border-radius:12px;padding:15px}.info-tile strong{display:block;margin-top:7px;font-size:20px}.info-tile small{display:block;font-size:11px}
/* Forms/modal */
.field{display:grid;gap:7px;min-width:0}.field label{font-size:11px;font-weight:760;color:#365244}.field input,.field textarea,.field select{width:100%;border-radius:9px;background:#fff;border:1px solid #d7e2d9;color:#172d20;padding:11px 12px;outline:0;min-height:42px;font-size:12px}.field input:focus,.field textarea:focus,.field select:focus{border-color:#358b54;box-shadow:0 0 0 3px #23854a1c}.field textarea{min-height:86px;resize:vertical;line-height:1.5}.field input[type=checkbox]{min-height:auto;width:auto;accent-color:var(--green)}.field .checklabel{display:flex;align-items:center;gap:8px;min-height:42px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.field.wide{grid-column:1/-1}.modal-backdrop{position:fixed;inset:0;background:#0c2019b8;display:grid;place-items:center;z-index:60;padding:22px;overflow:auto}.modal{max-height:min(90vh,900px);overflow:auto;background:#fff;border-radius:18px;padding:25px 28px;width:min(100%,660px);box-shadow:0 28px 100px #04160c50}.modal.wide{width:min(100%,780px)}.modal-head{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:23px}.modal-head h2{margin:0;font-size:20px}.modal-head .icon-button{width:30px;height:30px}.modal-foot{display:flex;justify-content:flex-end;gap:8px;margin-top:25px;padding-top:18px;border-top:1px solid var(--line)}.form-error{border-radius:9px;background:#fff0ee;padding:11px 13px;color:#ad4a42;font-size:12px;line-height:1.4;margin:12px 0}.field-help{color:#889b8e;font-size:10px;line-height:1.4}.calc-result{background:linear-gradient(140deg,#123d2a,#21603d);border-radius:13px;color:white;padding:21px;display:flex;justify-content:space-between;align-items:center;margin-top:18px}.calc-result small{color:#c9e6d1}.calc-result strong{display:block;font-size:25px;margin-top:6px}.calc-breakdown{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:15px}.calc-breakdown .info-tile{background:#f7faf7}.calc-breakdown .info-tile strong{font-size:16px}.toast-wrap{position:fixed;right:22px;bottom:24px;z-index:90;display:grid;gap:8px;max-width:380px}.toast{padding:13px 17px;border-radius:11px;box-shadow:0 9px 40px #122d1a20;background:#163e2a;color:white;font-size:12px;animation:rise .17s ease}.toast.error{background:#a94436}@keyframes rise{from{transform:translateY(8px);opacity:0}to{transform:translateY(0);opacity:1}}.mobile-menu{display:none}.mobile-scrim{display:none}.list-card{display:flex;align-items:flex-start;gap:12px;padding:14px 0;border-bottom:1px solid #eef3ef}.list-card:last-child{border-bottom:0}.list-card .list-meta{flex:1;min-width:0}.list-card strong{font-size:12px;display:block;line-height:1.4}.list-card p{font-size:11px;line-height:1.5;color:#809185;margin:5px 0 0}.noti-unread{background:#f5faf5;border-radius:11px;padding:12px}.ranking-number{width:28px;height:28px;display:grid;place-items:center;background:#f0f3ec;border-radius:9px;color:#718071;font-weight:800}.ranking-number.first{background:#f9efcf;color:#b1832e}.small-note{font-size:11px;color:var(--muted);line-height:1.6}.security-note{background:#fffaf0;color:#836527;border:1px solid #f4e7c3;padding:12px 14px;border-radius:10px;font-size:12px;line-height:1.55;margin-bottom:16px}
@media(max-width:1200px){.stats-grid{grid-template-columns:repeat(2,1fr)}.three-cols{grid-template-columns:repeat(2,1fr)}.two-cols{grid-template-columns:1fr 1fr}.content{padding:28px 26px 55px}}@media(max-width:930px){.sidebar{transform:translateX(-100%);transition:transform .2s}.sidebar.open{transform:translateX(0)}.main-area{margin-left:0;width:100%}.mobile-menu{display:inline-grid}.mobile-scrim.active{display:block;position:fixed;inset:0;background:#0624178f;z-index:21}.topbar{padding:0 20px}.content{padding:26px 18px}.auth-page{grid-template-columns:1fr}.auth-art{display:none}}@media(max-width:690px){.stats-grid{grid-template-columns:1fr 1fr;gap:10px}.stat-card{padding:15px}.stat-icon{width:35px;height:35px;padding:9px}.stat-label{font-size:10px}.stat-value{font-size:23px}.stat-footer{font-size:10px}.two-cols,.three-cols{grid-template-columns:1fr}.dashboard-hero{display:block;padding:21px}.dashboard-hero .btn{margin-top:14px}.page-title{align-items:flex-start;flex-direction:column}.top-date{display:none}.form-grid{grid-template-columns:1fr}.modal{padding:20px}.content{padding:22px 14px}.panel{padding:16px}.topbar{height:65px}.calc-breakdown{grid-template-columns:1fr}.auth-inner{padding:32px 19px}.auth-form h2{font-size:25px}}
/* Feature pack v1.2 */
.feature-two{display:grid;grid-template-columns:minmax(0,0.85fr) minmax(0,1.4fr);gap:18px;align-items:start}
.feature-two>.panel,.feature-two>.feature-form{min-width:0}
.feature-form{display:grid;gap:18px}
.feature-form .field{min-width:0}
.feature-form textarea{width:100%;border-radius:10px;border:1px solid #d6e0dc;padding:10px;font:inherit}
.feature-form select,.feature-two select,.feature-two [type="number"],.feature-two [type="datetime-local"],.feature-two [type="month"],.feature-two [type="password"],.feature-two [type="text"]{max-width:100%;min-width:0}
.feature-two form:not(.feature-form){display:grid;gap:12px;margin-top:15px}
.feature-two form .btn{justify-self:start}
.metric-row{display:flex;align-items:center;gap:15px;padding:15px 0;border-bottom:1px solid #e9efec}
.metric-row>div:first-child{min-width:170px;flex:0 0 40%}.metric-row small{display:block;color:#718078;margin-top:3px}
.voting-card{gap:12px;flex-wrap:wrap;align-items:center}.voting-card select{min-width:130px}
.split-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(100px,0.4fr);gap:8px}
.feature-two code,.feature-two pre{overflow-wrap:anywhere}
@media(max-width:1000px){.feature-two{grid-template-columns:1fr}}
@media(max-width:600px){.split-row{grid-template-columns:1fr}.metric-row{flex-direction:column;align-items:stretch}.metric-row>div:first-child{min-width:0}}
