:root{--teal:#087f7d;--teal-dark:#075e61;--cyan:#21b6b2;--blue:#1769aa;--ink:#163043;--muted:#687985;--surface:#f4f8fa;--line:#dce7eb;--sidebar:#092f39;--shadow:0 12px 40px rgba(20,61,76,.09)}
*{box-sizing:border-box}body{margin:0;color:var(--ink);background:var(--surface);font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif}.app-shell{display:flex;min-height:100vh}.sidebar{position:fixed;z-index:1030;width:248px;height:100vh;padding:24px 18px;background:linear-gradient(170deg,#0a3842,#07242d 70%);color:#fff;display:flex;flex-direction:column}.brand{display:inline-flex;gap:11px;align-items:center;text-decoration:none;color:#fff}.brand>span:last-child{display:flex;line-height:1;flex-direction:column;font-size:21px;letter-spacing:-.4px}.brand small{font-size:10px;text-transform:uppercase;letter-spacing:2px;margin-top:5px;opacity:.62}.brand-mark{width:42px;height:42px;display:grid;place-items:center;border-radius:12px;background:linear-gradient(135deg,var(--cyan),var(--blue));font-weight:800;font-size:13px;letter-spacing:1px;box-shadow:0 8px 24px rgba(22,176,179,.28)}.brand-dark{color:var(--ink)}.brand-light{color:#fff}.sidebar nav{margin-top:34px;gap:3px}.sidebar .nav-link{border-radius:9px;color:#bcd0d6;padding:9px 11px;font-size:14px;display:flex;gap:11px;align-items:center}.sidebar .nav-link span{width:18px;text-align:center;color:#6fd4d1}.sidebar .nav-link:hover,.sidebar .nav-link.active{background:rgba(255,255,255,.09);color:#fff}.nav-section{color:#5e8993;text-transform:uppercase;letter-spacing:1.5px;font-size:9px;font-weight:700;margin:16px 11px 5px}.sidebar-footer{margin-top:auto;padding:14px 11px 2px;color:#7197a0;font-size:10px;line-height:1.5}.sidebar-footer a{color:#7bc6c6}.main-content{min-width:0;margin-left:248px;width:calc(100% - 248px)}.topbar{height:74px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;padding:0 30px;justify-content:space-between;position:sticky;top:0;z-index:100}.tenant-context small,.user-block small{display:block;font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:.6px}.tenant-context strong{font-size:14px}.tenant-context .form-select{min-width:240px;border:0;background-color:#f2f7f8;font-weight:600}.tenant-brand-row{display:flex;align-items:center;gap:10px}.tenant-brand-logo,.branding-preview{width:38px;height:38px;object-fit:contain;border-radius:50%;background:#fff;border:1px solid var(--line)}.tenant-brand-fallback{width:38px;height:38px;display:grid;place-items:center;border-radius:50%;background:#e6f4f2;color:var(--teal-dark);font-weight:800;font-size:16px}.branding-preview{width:72px;height:72px}.settings-grid{align-items:start}.user-block{display:flex;align-items:center;gap:10px}.user-block strong{font-size:13px;display:block}.avatar{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:#dff4f2;color:var(--teal-dark);font-weight:800}.content-area{padding:30px;max-width:1600px;margin:auto}.page-heading{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:24px;gap:20px}.page-heading h1{font-size:26px;letter-spacing:-.6px;margin:0}.page-heading p{color:var(--muted);margin:6px 0 0}.eyebrow{text-transform:uppercase;letter-spacing:2.2px;color:var(--teal);font-size:10px;font-weight:800}.btn-primary{--bs-btn-bg:var(--teal);--bs-btn-border-color:var(--teal);--bs-btn-hover-bg:var(--teal-dark);--bs-btn-hover-border-color:var(--teal-dark)}.btn-outline-primary{--bs-btn-color:var(--teal);--bs-btn-border-color:var(--teal);--bs-btn-hover-bg:var(--teal);--bs-btn-hover-border-color:var(--teal)}.card,.panel{border:1px solid var(--line);border-radius:14px;background:#fff;box-shadow:none}.panel{padding:22px}.kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:20px}.kpi-card{padding:20px;background:#fff;border:1px solid var(--line);border-radius:14px;position:relative;overflow:hidden}.kpi-card:after{content:"";position:absolute;top:-25px;right:-25px;width:70px;height:70px;border-radius:50%;background:#e8f7f6}.kpi-card small{text-transform:uppercase;letter-spacing:.7px;font-size:10px;color:var(--muted);font-weight:700}.kpi-card strong{display:block;font-size:29px;letter-spacing:-1px;margin-top:9px}.kpi-card span{font-size:11px;color:var(--teal)}.kpi-card.alert-kpi strong{color:#b44c4c}.metric-strip{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--line);border-radius:14px;background:#fff;margin-bottom:20px}.metric-strip>div{padding:17px 20px;border-right:1px solid var(--line)}.metric-strip>div:last-child{border:0}.metric-strip b{font-size:20px}.metric-strip small{display:block;color:var(--muted)}.table-card{border:1px solid var(--line);border-radius:14px;background:#fff;overflow:hidden}.table-card .table{margin:0}.table-card th{padding:13px 17px;background:#f8fbfc;color:#60727d;text-transform:uppercase;font-size:9px;letter-spacing:1px;border-bottom:1px solid var(--line)}.table-card td{padding:14px 17px;font-size:13px;vertical-align:middle;border-color:#edf2f4}.status{display:inline-flex;padding:4px 8px;border-radius:20px;background:#e6f4f0;color:#097259;font-size:10px;font-weight:800}.status.FAILED,.status.ERROR,.status.REJECTED{background:#faeaea;color:#a83d3d}.status.PENDING,.status.QUEUED{background:#fff3d8;color:#8a6214}.status.READ{background:#e7efff;color:#255eae}.empty-state{text-align:center;padding:55px 20px;color:var(--muted)}.empty-state strong{display:block;color:var(--ink);font-size:17px;margin-bottom:5px}.form-card{max-width:900px;padding:26px}.form-label,label{font-size:12px;font-weight:650;color:#405661}.form-control,.form-select{border-color:#ccdce1}.form-control:focus,.form-select:focus{border-color:var(--cyan);box-shadow:0 0 0 .2rem rgba(33,182,178,.13)}.detail-grid{display:grid;grid-template-columns:2fr 1fr;gap:20px}.detail-list{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}.detail-item small{display:block;color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.7px;margin-bottom:4px}.subnav{display:flex;gap:8px;margin-bottom:20px;flex-wrap:wrap}.subnav a{padding:7px 11px;border-radius:8px;text-decoration:none;color:var(--muted);font-size:12px;background:#fff;border:1px solid var(--line)}.subnav a:hover{color:var(--teal);border-color:#92cfcd}.code-box{background:#0b2730;color:#c6eef0;padding:16px;border-radius:10px;font:12px/1.5 ui-monospace,SFMono-Regular,Consolas,monospace;white-space:pre-wrap;word-break:break-word}.notice-secret{background:#fff7df;border:1px solid #f1d690;padding:17px;border-radius:10px}.public-shell{min-height:100vh;background:radial-gradient(circle at 70% 20%,#e3f8f5 0,transparent 32%),#fbfdfd}.public-nav{height:92px;display:flex;align-items:center;justify-content:space-between}.public-nav>div{display:flex;align-items:center;gap:26px}.public-nav>div>a:not(.btn){text-decoration:none;color:var(--muted);font-size:13px}.hero{min-height:625px;display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:60px}.hero h1{font-size:57px;line-height:1.03;letter-spacing:-2.5px;margin:18px 0 24px}.hero h1 em{font-style:normal;color:var(--teal)}.hero p{color:var(--muted);font-size:18px;line-height:1.65;max-width:620px;margin-bottom:32px}.trust-row{display:flex;gap:25px;margin-top:35px;color:#55727a;font-size:12px}.hero-visual{position:relative}.mock-window{height:390px;background:#fff;border-radius:20px;box-shadow:0 35px 90px rgba(10,71,81,.18);overflow:hidden;border:1px solid #dfecee;transform:perspective(1000px) rotateY(-5deg) rotateX(2deg)}.mock-top{height:35px;background:#f0f5f6;display:flex;gap:6px;align-items:center;padding:0 14px}.mock-top i{width:7px;height:7px;border-radius:50%;background:#adc1c5}.mock-grid{height:355px;display:grid;grid-template-columns:80px 1fr}.mock-side{background:#0c3b45}.mock-body{padding:27px}.mock-title{width:40%;height:14px;background:#d9e7e9;border-radius:6px}.mock-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:24px 0}.mock-cards i{height:75px;border:1px solid #deebed;border-radius:10px;background:linear-gradient(140deg,#fff,#f4fbfa)}.mock-chart{height:170px;display:flex;align-items:flex-end;gap:13px;padding:20px;border-radius:10px;background:#f7fafb}.mock-chart span{flex:1;background:linear-gradient(#39beba,#11827f);border-radius:5px 5px 0 0}.mock-chart span:nth-child(1){height:30%}.mock-chart span:nth-child(2){height:50%}.mock-chart span:nth-child(3){height:43%}.mock-chart span:nth-child(4){height:72%}.mock-chart span:nth-child(5){height:58%}.mock-chart span:nth-child(6){height:86%}.floating-card{position:absolute;right:-25px;bottom:-25px;background:#0b4850;color:#fff;border-radius:13px;padding:17px 25px;box-shadow:var(--shadow)}.floating-card b{display:block;font-size:23px}.floating-card span{font-size:10px;color:#a9d5d5}.features{display:grid;grid-template-columns:repeat(3,1fr);gap:30px;padding-bottom:70px}.features article{border-top:1px solid var(--line);padding-top:20px}.features article>b{color:var(--cyan);font-size:10px}.features h3{font-size:18px;margin:12px 0 7px}.features p{color:var(--muted);font-size:13px}.login-shell{min-height:100vh;display:grid;grid-template-columns:44% 56%;background:#fff}.login-brand{padding:55px 70px;display:flex;flex-direction:column;justify-content:space-between;color:#fff;background:radial-gradient(circle at 10% 90%,#11767a,transparent 35%),linear-gradient(145deg,#082a35,#0a4951)}.login-brand h1{font-size:42px;line-height:1.08;letter-spacing:-1.5px;max-width:500px;margin:18px 0}.login-brand p{color:#a7c8ce;font-size:17px;max-width:470px}.login-panel{display:grid;place-items:center;padding:45px}.login-box{width:min(430px,100%)}.login-box h2{font-size:31px;letter-spacing:-.8px}.login-box label{display:block}.login-box label input{margin-top:7px}.legal-note{font-size:11px;color:var(--muted);margin-top:30px}.legal-page{min-height:100vh;background:#fbfdfd}.legal-page header{padding:25px 5vw;border-bottom:1px solid var(--line)}.legal-page main{max-width:820px;margin:auto;padding:70px 25px}.legal-page h1{font-size:48px;letter-spacing:-1.5px;margin:12px 0}.legal-page h2{font-size:20px;margin-top:35px}.legal-page p{line-height:1.75;color:#536872}.legal-warning{padding:17px;background:#fff7df;border-left:4px solid #e6b94f;margin:35px 0;font-size:13px}.toast-error{position:fixed;right:20px;bottom:20px;background:#8c3333;color:#fff;padding:14px 20px;border-radius:9px;z-index:2000}
/* The whole fixed menu must stay reachable at high zoom and on short screens. */
.sidebar{
  top:0;
  left:0;
  height:100vh;
  height:100dvh;
  overflow-x:hidden;
  overflow-y:auto;
  overscroll-behavior-y:contain;
  scrollbar-width:thin;
  scrollbar-color:#7197a0 #092f39;
}
.sidebar > .brand,.sidebar > nav,.sidebar > .sidebar-footer{flex-shrink:0}
@media(max-width:1100px){.kpi-grid{grid-template-columns:repeat(2,1fr)}.hero h1{font-size:45px}.detail-grid{grid-template-columns:1fr}}
@media(max-width:991px){.sidebar{transform:translateX(-100%);transition:.2s}.sidebar-open{transform:translateX(0)}.main-content{margin-left:0;width:100%}.hero{grid-template-columns:1fr;padding-top:50px}.hero-visual{display:none}.login-shell{grid-template-columns:1fr}.login-brand{display:none}.features{grid-template-columns:1fr}.topbar{padding:0 16px}.content-area{padding:20px}.user-block>div{display:none}}
@media(max-width:600px){.kpi-grid,.metric-strip,.detail-list{grid-template-columns:1fr}.metric-strip>div{border-right:0;border-bottom:1px solid var(--line)}.page-heading{align-items:flex-start;flex-direction:column}.hero h1{font-size:37px}.public-nav>div>a:not(.btn){display:none}.login-panel{padding:25px}.content-area{padding:15px}.tenant-context .form-select{min-width:130px;max-width:150px}}
.workflow-strip{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--line);border-radius:14px;background:#fff;overflow:hidden}.workflow-strip>div{display:flex;align-items:center;gap:10px;padding:16px 18px;border-right:1px solid var(--line)}.workflow-strip>div:last-child{border-right:0}.workflow-strip b,.proposal-step-number{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:#dff4f2;color:var(--teal-dark);font-size:12px;flex:0 0 auto}.workflow-strip span{font-size:12px;font-weight:650}.proposal-form{display:grid;gap:18px;max-width:1100px}.proposal-step{display:flex;gap:18px}.proposal-step-number{margin-top:2px}.proposal-step-body{min-width:0;flex:1}.proposal-step h4{font-size:18px;margin:0}.template-preview{background:#eef7f2;border-radius:8px;padding:18px 18px 12px;max-width:620px;white-space:pre-wrap}.template-preview hr{margin:10px 0;border-color:#c9ded4}.template-preview small{display:block;margin-top:14px;color:#6c7f75}.template-body{line-height:1.55}.status-lg{padding:7px 12px;font-size:11px}.status.CHANGES_REQUESTED{background:#fff3d8;color:#8a6214}.status.DHI_APPROVED,.status.ACTIVE{background:#e1f5e9;color:#197247}.status.SUBMITTED,.status.META_PENDING{background:#e7efff;color:#255eae}.review-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.review-list{display:grid;grid-template-columns:130px 1fr;gap:10px 14px;margin:18px 0 0}.review-list dt{font-size:10px;text-transform:uppercase;letter-spacing:.6px;color:var(--muted)}.review-list dd{margin:0;font-size:13px}
@media(max-width:900px){.workflow-strip,.review-grid{grid-template-columns:1fr 1fr}.workflow-strip>div:nth-child(2){border-right:0}}
@media(max-width:600px){.workflow-strip,.review-grid{grid-template-columns:1fr}.workflow-strip>div{border-right:0;border-bottom:1px solid var(--line)}.proposal-step{display:block}.proposal-step-number{margin-bottom:12px}}
.status.META_APPROVED{background:#e1f5e9;color:#197247}
.status.META_REJECTED{background:#faeaea;color:#a83d3d}
.report-kpi-grid{grid-template-columns:repeat(5,minmax(0,1fr))}.report-filters{padding:20px}.report-table td{min-width:115px}.report-table td:nth-child(2),.report-table td:nth-child(4),.report-table td:last-child{min-width:165px}
@media(max-width:1100px){.report-kpi-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:600px){.report-kpi-grid{grid-template-columns:1fr}}
