@font-face{font-family:"Space Grotesk";src:url('/assets/SpaceGrotesk-Variable.woff2') format('woff2');font-style:normal;font-weight:300 700;font-display:swap}
:root{--forest:#145a32;--forest-deep:#0d4325;--green:#1e8449;--orange:#e8590c;--orange-dark:#c94b08;--warm:#fafaf8;--paper:#f3f5f1;--white:#fff;--graphite:#1c2321;--muted:#68726d;--mint:#eaf4ec;--line:#dbe2dc;--red:#b7423f;--teal:var(--forest);--teal2:var(--green);--gold:var(--orange);--shadow:0 18px 55px rgba(20,54,35,.08);--radius:10px;font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;color:var(--graphite);background:var(--warm)}
*{box-sizing:border-box}body{margin:0;min-height:100vh;background:var(--warm)}button,input,select,textarea{font:inherit}button{cursor:pointer}.hidden{display:none!important}.muted{color:var(--muted)}h1,h2,.metric strong,.financial-total{font-family:"Big Shoulders Display","Arial Narrow",sans-serif}.eyebrow{margin:0 0 .4rem;color:var(--green);font-size:.78rem;font-weight:650;letter-spacing:.035em}
.auth-shell{min-height:100vh;display:grid;grid-template-columns:minmax(460px,1.08fr) minmax(420px,.92fr)}.brand-panel{position:relative;isolation:isolate;overflow:hidden;display:flex;flex-direction:column;justify-content:space-between;padding:clamp(2.4rem,5vw,5.5rem);color:#fff;background-image:linear-gradient(145deg,rgba(13,67,37,.94) 0%,rgba(20,90,50,.82) 52%,rgba(30,132,73,.72) 100%),url('/assets/login-industrial.webp');background-size:cover;background-position:center 54%}.brand-panel:after{content:"";position:absolute;z-index:-1;inset:auto -18% -45% 28%;height:80%;border:1px solid rgba(255,255,255,.15);border-radius:50%;transform:rotate(-12deg)}
.process-pattern{position:absolute;z-index:-1;inset:0;opacity:.16;background-image:linear-gradient(90deg,transparent 49.7%,rgba(255,255,255,.22) 50%,transparent 50.3%),linear-gradient(0deg,transparent 49.7%,rgba(255,255,255,.18) 50%,transparent 50.3%);background-size:170px 170px;mask-image:linear-gradient(120deg,transparent 5%,#000 55%,transparent 95%)}.process-pattern i{position:absolute;width:13px;height:13px;border:2px solid #fff;border-radius:50%;background:var(--forest)}.process-pattern i:nth-child(1){left:22%;top:26%}.process-pattern i:nth-child(2){left:48%;top:44%}.process-pattern i:nth-child(3){right:16%;top:18%}.process-pattern i:nth-child(4){left:31%;bottom:15%}.process-pattern i:nth-child(5){right:22%;bottom:27%}
.brand-logo{display:flex;align-items:center;justify-content:center;overflow:hidden;background:#fff}.brand-logo img{display:block;width:140%;height:auto;max-width:none;flex:none}.login-logo{display:block;width:min(420px,72%);height:auto;margin:0;padding:0;overflow:visible;background:none;border:0;box-shadow:none}.login-logo img{display:block;width:100%;height:auto;max-width:100%;margin:0;object-fit:contain;object-position:left center;filter:drop-shadow(0 0 8px rgba(255,255,255,.56))}.brand-message{max-width:650px;margin:clamp(2rem,7vh,6rem) 0 auto}.brand-message .eyebrow{color:#dcecdf}.brand-panel h1{margin:.2rem 0 1.5rem;font-family:"Space Grotesk",Inter,sans-serif;font-size:clamp(4.1rem,7.2vw,7.8rem);font-weight:700;line-height:.88;letter-spacing:-.055em;text-shadow:0 2px 24px rgba(4,32,17,.22)}.brand-message>p:last-child{max-width:570px;margin:0;color:#f4f8f5;font-size:clamp(1rem,1.5vw,1.2rem);line-height:1.7}.brand-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem;padding:1.15rem 1.25rem;border:1px solid rgba(255,255,255,.2);border-radius:6px;background:rgba(8,49,26,.28);box-shadow:0 18px 45px rgba(4,32,17,.12);backdrop-filter:blur(12px)}.brand-stats span{display:grid;gap:.25rem;color:#e2eee5;font-size:.78rem}.brand-stats b{color:#fff;font:700 1.7rem/1 "Big Shoulders Display",sans-serif}
.auth-card{display:flex;flex-direction:column;justify-content:center;padding:clamp(2.5rem,8vw,8rem);background:var(--warm)}.auth-card>*{width:min(450px,100%)}.auth-heading{display:grid;grid-template-columns:38px 1fr;gap:1.2rem;align-items:start;margin-bottom:2.5rem}.auth-index{padding-top:.55rem;border-top:2px solid var(--orange);color:var(--orange);font:700 .75rem Inter}.auth-card h2{margin:-.1rem 0 .25rem;font-size:clamp(3rem,5vw,4.6rem);font-weight:700;line-height:.95}.auth-card form{display:grid;gap:1.5rem}.auth-card label{gap:.35rem}.auth-card input{border:0;border-bottom:1px solid #9eaaa3;border-radius:0;padding:.8rem 0;background:transparent}.auth-card input:focus{border-bottom-color:var(--forest);box-shadow:0 1px 0 var(--forest);outline:0}.auth-actions{display:flex;justify-content:space-between;gap:1rem;margin-top:1.3rem}.demo-badge{display:inline-block;width:auto;margin-bottom:.55rem;padding:.3rem .55rem;border-left:2px solid var(--orange);background:#fff0e7;color:#8b3d12;font-size:.72rem;font-weight:650}
label{display:grid;gap:.45rem;color:#39423e;font-size:.79rem;font-weight:600}input,select,textarea{width:100%;border:1px solid var(--line);border-radius:4px;padding:.78rem .85rem;background:#fff;color:var(--graphite)}textarea{min-height:100px;resize:vertical}input:focus,select:focus,textarea:focus{outline:2px solid rgba(20,90,50,.14);border-color:var(--forest)}button{border:0;border-radius:4px;padding:.78rem 1.05rem;font-weight:650;transition:background .18s,color .18s,transform .18s}.primary{background:var(--orange);color:#fff}.primary:hover{background:var(--orange-dark)}.primary:active{transform:translateY(1px)}.secondary{background:var(--mint);color:var(--forest)}.secondary:hover{background:#dcecdf}.danger{background:var(--red);color:#fff}.link{padding:.35rem 0;background:transparent;color:var(--forest);text-align:left}.link:hover{color:var(--green)}.wide{width:100%;margin-top:1.6rem}.config-warning{margin-bottom:1rem;padding:1rem;border-left:3px solid #c38a13;background:#fff5d9;color:#694b10}
.app-shell{min-height:100vh;display:grid;grid-template-columns:248px minmax(0,1fr)}.sidebar{position:sticky;top:0;display:flex;height:100vh;min-height:0;flex-direction:column;padding:1.7rem 1.25rem;background:var(--forest);color:#fff}.side-brand{display:grid;gap:.7rem;padding:0 .25rem 1.5rem;border-bottom:1px solid rgba(255,255,255,.18)}.sidebar-logo{width:158px;height:58px;border-radius:2px}.side-brand small{color:#cfe3d5;font-size:.68rem;letter-spacing:.04em}.sidebar nav{display:grid;gap:.2rem;margin-top:1rem;padding-right:.25rem;overflow-y:auto;scrollbar-color:rgba(255,255,255,.28) transparent}.nav-btn{display:flex;flex:none;gap:.75rem;align-items:center;padding:.7rem .75rem;border-left:2px solid transparent;background:transparent;color:#dcecdf;text-align:left;font-weight:500}.nav-btn span{width:18px;color:#a8cbb3;text-align:center}.nav-btn:hover{background:rgba(255,255,255,.07);color:#fff}.nav-btn.active{border-left-color:var(--orange);background:rgba(255,255,255,.11);color:#fff}.nav-btn.active span{color:#fff}.side-footer{display:grid;flex:none;gap:.25rem;margin-top:auto;padding:1.1rem .5rem 0;border-top:1px solid rgba(255,255,255,.18)}.side-footer small{color:#bcd8c5;word-break:break-all}.side-footer .link{color:#fff}
.app-shell>main{min-width:0}.topbar{position:sticky;z-index:5;top:0;display:flex;align-items:center;gap:1rem;min-height:108px;padding:1.5rem clamp(1.4rem,4vw,3.5rem);border-bottom:1px solid var(--line);background:rgba(250,250,248,.94);backdrop-filter:blur(12px)}.topbar h1{margin:0;font-size:2.75rem;font-weight:700;line-height:.9}.topbar .primary{margin-left:auto}.topbar #menu-toggle{display:none;padding:.5rem;background:transparent;color:var(--forest);font-size:1.35rem}.content{padding:clamp(1.3rem,3vw,3rem) clamp(1.4rem,4vw,3.5rem)}
.cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem}.metric{position:relative;min-height:132px;padding:1.2rem 1.25rem;border:1px solid var(--line);border-radius:var(--radius);background:#fff}.metric:before{content:"";position:absolute;top:-1px;left:1.25rem;width:28px;height:3px;background:var(--green)}.metric small{color:var(--muted);font-size:.72rem;letter-spacing:.025em}.metric strong{display:block;margin-top:1.35rem;font-size:2.3rem;font-weight:700;line-height:1}.metric.teal{border-color:var(--forest);background:var(--forest);color:#fff}.metric.teal:before{background:var(--orange)}.metric.teal small{color:#cfe3d5}
.panel{margin-top:1.15rem;padding:1.45rem;border:1px solid var(--line);border-radius:var(--radius);background:#fff;box-shadow:var(--shadow)}.panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1.25rem}.panel h2{margin:0;font-size:2rem;font-weight:700;line-height:1}.panel-head p{margin:.5rem 0 0}.split{display:grid;grid-template-columns:1.45fr 1fr;gap:1.15rem}.financial-panel{background:linear-gradient(135deg,#fff 0%,var(--mint) 100%)}.financial-total{display:block;margin:1.2rem 0 .8rem;color:var(--forest);font-size:3rem;font-weight:700}.financial-total.negative{color:var(--red)}.report-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}.report-card{padding:1.2rem;border:1px solid var(--line);border-top:3px solid var(--forest);background:var(--warm)}.report-card>span{color:var(--orange);font-size:.7rem;font-weight:700}.report-card h3{margin:.5rem 0 1.4rem;font:700 1.55rem "Big Shoulders Display",sans-serif}.report-card div{display:flex;gap:.5rem;flex-wrap:wrap}.print-frame{position:fixed;width:1px;height:1px;right:0;bottom:0;border:0;opacity:0;pointer-events:none}
.toolbar{display:flex;gap:.65rem;flex-wrap:wrap}.toolbar input,.toolbar select{width:auto;min-width:180px;background:var(--warm)}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;font-size:.86rem}th{padding:.8rem;border-bottom:1px solid var(--forest);color:#4f5b55;font-size:.68rem;font-weight:650;letter-spacing:.025em;text-align:left}td{padding:.9rem .8rem;border-bottom:1px solid #edf0ed;vertical-align:middle}tbody tr:hover{background:#f8fbf8}.actions{white-space:nowrap}.icon-btn{padding:.35rem .5rem;background:transparent;color:var(--forest);font-size:1rem}.icon-btn:hover{background:var(--mint)}.pill{display:inline-block;padding:.28rem .55rem;border-radius:3px;background:#e6f2f0;color:#09574f;font-size:.71rem;font-weight:700}.pill.danger{background:#fae6e5;color:#9b302d}.empty{padding:3rem;color:var(--muted);text-align:center}.agenda{display:grid;gap:.55rem}.agenda-item{display:grid;grid-template-columns:minmax(155px,.7fr) 1fr;gap:1rem;align-items:center;padding:.9rem 1rem;border-left:3px solid var(--orange);background:var(--warm)}.report-actions{display:flex;gap:.7rem;flex-wrap:wrap}
.permission-card{display:grid;grid-template-columns:minmax(180px,.7fr) 2fr auto;gap:1.2rem;align-items:center;padding:1.1rem 0;border-bottom:1px solid var(--line)}.permission-card>div:first-child{display:grid;gap:.3rem}.permission-card small{color:var(--muted)}.permission-grid{display:grid;grid-template-columns:repeat(3,minmax(130px,1fr));gap:.55rem}.permission-grid label{display:flex;align-items:center;gap:.45rem;padding:.45rem;background:var(--warm)}.permission-grid input{width:auto}.invite-result{display:grid;grid-template-columns:auto 1fr auto;gap:.8rem;align-items:center;margin-top:1.2rem;padding:1rem;border-left:3px solid var(--orange);background:var(--mint)}
dialog{width:min(760px,92vw);max-height:90vh;padding:0;border:0;border-radius:6px;box-shadow:0 28px 90px rgba(15,45,27,.28)}dialog::backdrop{background:rgba(8,38,20,.62);backdrop-filter:blur(3px)}dialog form,.confirm-box{padding:1.6rem}.dialog-head{display:flex;align-items:flex-start;justify-content:space-between;padding-bottom:1rem;border-bottom:1px solid var(--line)}.dialog-head h2{margin:0;font-size:2.3rem}.dialog-head .icon-btn{font-size:1.6rem}.preview-dialog{width:min(1100px,96vw);height:min(900px,94vh);max-height:94vh}.preview-shell{display:grid;height:100%;grid-template-rows:auto minmax(0,1fr) auto;padding:1.15rem}.preview-shell iframe{width:100%;height:100%;min-height:520px;margin-top:1rem;border:1px solid var(--line);background:#e8ece9}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin:1.2rem 0;max-height:55vh;overflow:auto;padding:.15rem}.field-full{grid-column:1/-1}.dialog-actions{display:flex;justify-content:flex-end;gap:.65rem;padding-top:1rem;border-top:1px solid var(--line)}.quote-items{grid-column:1/-1;padding:1rem;border:1px solid var(--line);border-radius:4px}.quote-row{display:grid;grid-template-columns:2fr .7fr 1fr auto;gap:.55rem;align-items:end;margin:.55rem 0}.admin-toggle{display:flex;align-items:center;gap:.5rem}.admin-toggle input{width:auto}.toast{position:fixed;z-index:100;top:1.2rem;right:1.2rem;padding:.9rem 1.1rem;border-radius:4px;background:var(--forest-deep);color:#fff;opacity:0;transform:translateY(-12px);pointer-events:none;transition:.25s}.toast.show{opacity:1;transform:none}.toast.error{background:var(--red)}.center-view{display:grid;min-height:100vh;place-items:center;padding:2rem;background:var(--warm)}.status-card{max-width:480px;padding:2.5rem;border:1px solid var(--line);border-radius:6px;background:#fff;text-align:center}.status-logo{width:240px;height:90px;margin:0 auto 1.5rem}
@media(max-width:1050px){.cards{grid-template-columns:repeat(2,1fr)}.split{grid-template-columns:1fr}.report-grid{grid-template-columns:1fr}.auth-shell{grid-template-columns:1fr}.brand-panel{min-height:360px;padding:2rem 8vw;background-position:center 58%}.brand-message{margin:1.6rem 0 0}.brand-panel h1{font-size:clamp(3.5rem,9vw,5.5rem)}.brand-message>p:last-child,.brand-stats{display:none}.auth-card{min-height:auto;padding:8vw}.app-shell{grid-template-columns:1fr}.sidebar{position:fixed;z-index:20;left:0;width:248px;transform:translateX(-100%);transition:transform .22s}.sidebar.open{transform:translateX(0)}.topbar #menu-toggle{display:block}}
@media(max-width:620px){.content{padding:1rem}.topbar{min-height:82px;padding:1rem}.topbar h1{font-size:2rem}.topbar .primary{width:43px;font-size:0}.topbar .primary:first-letter{font-size:1.1rem}.cards{grid-template-columns:1fr}.metric{min-height:112px}.brand-panel{min-height:268px;padding:1.15rem 1.35rem;background-position:center 62%}.login-logo{width:min(285px,82%)}.brand-message{margin:.85rem 0 0}.brand-message .eyebrow{font-size:.7rem}.brand-panel h1{margin:.15rem 0 0;font-size:2.7rem;line-height:.92;letter-spacing:-.045em}.auth-card{padding:2.2rem 1.5rem 2.8rem}.auth-heading{grid-template-columns:30px 1fr;margin-bottom:2rem}.auth-card h2{font-size:3.3rem}.form-grid{grid-template-columns:1fr}.field-full{grid-column:auto}.quote-row{grid-template-columns:1fr 1fr}.quote-row>*:first-child{grid-column:1/-1}.toolbar{width:100%}.toolbar input,.toolbar select{width:100%}.panel{padding:1rem}.panel-head{align-items:flex-start;flex-direction:column}.agenda-item{grid-template-columns:1fr;gap:.35rem}.permission-card{grid-template-columns:1fr}.permission-grid{grid-template-columns:1fr 1fr}.invite-result{grid-template-columns:1fr}.preview-dialog{width:100vw;height:100vh;max-height:100vh;border-radius:0}.preview-shell{padding:.75rem}.preview-shell iframe{min-height:0}.preview-shell .dialog-head h2{font-size:1.7rem}}
.report-module-button{border-color:var(--orange);color:var(--orange)}.module-report-dialog{width:min(1180px,96vw);height:min(900px,94vh);max-height:94vh}.module-report-shell{display:grid;height:100%;grid-template-rows:auto minmax(0,1fr) auto;padding:1.2rem}.module-report-content{overflow:auto;padding:1.2rem .15rem}.module-report-kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}.module-report-kpis article{padding:1.15rem;border-left:4px solid var(--orange);background:var(--mint)}.module-report-kpis small{display:block;color:var(--muted)}.module-report-kpis strong{display:block;margin-top:.45rem;color:var(--forest);font-size:1.55rem}.report-chart,.report-detail{margin-top:1.2rem;padding:1.2rem;border:1px solid var(--line);background:#fff}.report-chart h3,.report-detail h3{margin:0 0 .35rem}.chart-bars{display:grid;gap:.7rem;margin-top:1rem}.chart-row{display:grid;grid-template-columns:minmax(110px,180px) 1fr minmax(70px,auto);gap:.8rem;align-items:center;font-size:.82rem}.chart-row>div{height:9px;background:var(--mint)}.chart-row i{display:block;height:100%;background:var(--orange)}.chart-row strong{text-align:right}.report-config .permission-grid{margin-bottom:1.2rem}@media(max-width:620px){.module-report-dialog{width:100vw;height:100vh;max-height:100vh;border-radius:0}.module-report-shell{padding:.8rem}.module-report-kpis{grid-template-columns:1fr}.chart-row{grid-template-columns:95px 1fr}.chart-row strong{grid-column:2}.module-report-dialog .dialog-actions{flex-wrap:wrap}.module-report-dialog .dialog-actions button{flex:1 1 44%}}
