@font-face{font-family:Inter;src:url(../fonts/InterVariable.woff2) format("woff2");font-weight:100 900;font-style:normal;font-display:swap}
/* One palette, one visual system. Legacy module CSS supplies geometry only. */
:root,[data-theme="light"]{color-scheme:light;--bg:#f3f5f9;--surface:#ffffff;--surface2:#f7f9fc;--ink:#18253c;--muted:#66758b;--line:#e3e8f0;--accent:#4b5ce3;--accent-soft:#edf0ff;--success:#137c63;--success-soft:#e7f5ee;--danger:#c54452;--warning:#9d6919;--shadow:0 3px 16px #15264405;--card:var(--surface);--brand:var(--accent);--brand2:var(--accent);--pink:var(--accent);--deep:var(--ink);--soft:var(--accent-soft);--ok:var(--success);--warn:var(--warning);--bs-body-color:var(--ink);--bs-body-bg:var(--bg);--bs-border-color:var(--line);--bs-secondary-color:var(--muted);--bs-tertiary-bg:var(--surface2)}
[data-theme="dark"]{color-scheme:dark;--bg:#111723;--surface:#1a2332;--surface2:#202b3d;--ink:#e8eef8;--muted:#a7b4c9;--line:#303c50;--accent:#a7b2ff;--accent-soft:#2b3557;--success:#71d7b1;--success-soft:#203c35;--danger:#ff97a2;--warning:#efc379;--shadow:none}
*{box-sizing:border-box}html{scrollbar-color:#99a5bc var(--bg)}body,body.auth-dark,body.client-portal-page{margin:0;background:var(--bg);color:var(--ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",Arial,sans-serif;font-size:14px;line-height:1.55}a{color:var(--accent);text-underline-offset:3px}a:hover{color:var(--accent)}h1,h2,h3,h4,h5,h6{color:var(--ink);font-weight:700;letter-spacing:-.035em;line-height:1.25}h1{font-size:34px}h2{font-size:28px}h3{font-size:23px}h4{font-size:21px}h5{font-size:16px}h6{font-size:14px}small{font-size:12px}strong,b{font-weight:650}.text-muted,.text-secondary{color:var(--muted)!important}.eyebrow,.section-title{color:var(--accent);font-size:10px;font-weight:700;letter-spacing:.12em;text-transform:uppercase}.app-shell{display:flex;min-height:100vh}
.sidebar{position:fixed;inset:0 auto 0 0;width:252px;padding:28px 16px 16px;display:flex;flex-direction:column;z-index:1000;background:var(--surface);color:var(--ink);border-right:1px solid var(--line);box-shadow:none}.brand{padding:0 8px 25px;border-bottom:1px solid var(--line);margin-bottom:16px;gap:11px}.brand-mark{width:40px;height:40px;flex:0 0 40px;border-radius:12px;display:grid;place-items:center;background:var(--accent-soft);color:var(--accent);font-weight:750;box-shadow:none}.brand-mark img{background:var(--surface);max-width:100%}.brand strong{font-size:13px;color:var(--ink)}.brand span{font-size:10px;color:var(--muted);line-height:1.5}.sidebar-nav{flex:1;min-height:0;overflow:auto;padding:0 4px;scrollbar-width:thin}.sidebar-nav a{display:flex;align-items:center;gap:11px;padding:10px 12px;margin-bottom:3px;min-height:40px;border-radius:8px;color:var(--muted);font-size:12px;font-weight:550;text-decoration:none;transform:none;box-shadow:none}.sidebar-nav a:hover,.sidebar-nav a.active{background:var(--accent-soft);color:var(--accent)}.sidebar-nav a.active{font-weight:700}.nav-icon{width:17px;height:17px;flex:0 0 17px;stroke:currentColor;fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.sidebar-nav a span{background:transparent;color:inherit}.nav-group{font-size:9px;letter-spacing:.14em;color:var(--muted);font-weight:700;padding:15px 12px 8px;text-transform:uppercase}.logout-link{margin-top:12px;padding:11px;text-align:center;color:var(--muted);background:var(--surface2);border:1px solid var(--line);border-radius:8px;font-size:12px;text-decoration:none}
.main{margin-left:252px;width:calc(100% - 252px);min-width:0;background:var(--bg)}.topbar{min-height:86px;display:flex;align-items:center;justify-content:space-between;gap:18px;padding:18px 32px;background:var(--surface);border-bottom:1px solid var(--line);box-shadow:none}.topbar h5{font-size:14px;margin:3px 0 0}.topbar .eyebrow{font-size:9px}.topbar-actions{display:flex;align-items:center;gap:18px}.theme-picker{display:flex;align-items:center;gap:8px}.theme-picker select{width:107px;font-size:12px;padding-top:8px;padding-bottom:8px}.user-avatar{width:35px;height:35px;display:grid;place-items:center;background:var(--accent-soft);color:var(--accent);border-radius:50%;font-size:12px;font-weight:700}.user-info{font-size:12px}.user-info small{display:block;color:var(--muted);font-size:10px}.content{padding:30px 32px;max-width:1800px;margin:0 auto;min-width:0}.page-hero{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:0 0 25px;margin:0;background:transparent;border:0;box-shadow:none}.page-hero h2{font-size:28px;margin:6px 0 9px}.page-hero p{font-size:13px;color:var(--muted);margin:0;max-width:590px}.page-hero .btn{font-size:12px}.page-hero .eyebrow{font-size:10px}
.card,.form-card,.invoice-box,.portal-card,.metric-card,.report-card,.mini-record,.document-row,.client-detail-card,.client-metric-card,.modules-view-card,.service-view-card,.product-view-card,.detail-metric-card,.detail-section-card,.record-card,.client-history-card,.cp-card,.cp-project,.cp-showcase-item,.cp-metric,.register-card,.auth-card,.login-card,.filter-card,.form-panel{background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:13px;box-shadow:var(--shadow)}.card-body,.form-panel{padding:24px}.card-header,.card-footer{background:var(--surface2);border-color:var(--line);color:var(--ink)}.card h3,.card h4,.card h5,.card strong{color:var(--ink)}.stat-card{padding:22px;min-height:140px;background:var(--surface);color:var(--ink);border-radius:13px}.stat-card:before,.stat-card:after{display:none}.stat-card small{color:var(--muted);font-size:11px;font-weight:550}.stat-card h3{font-size:27px;font-weight:700;margin:9px 0 5px;color:var(--ink);font-variant-numeric:tabular-nums}.stat-card p{font-size:11px;color:var(--muted);margin:0}.metric-top{display:flex;align-items:center;justify-content:space-between}.metric-icon{width:31px;height:31px;border-radius:9px;background:var(--accent-soft);color:var(--accent);display:grid;place-items:center}.metric-icon svg{width:16px;height:16px}.metric-good{color:var(--success);font-size:10px}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:18px}.section-heading h5{margin:0}.section-heading small{color:var(--muted);font-size:11px}.workspace-title{font-size:18px;margin-bottom:20px}
.btn{border-radius:8px;font-size:13px;font-weight:600;padding:10px 15px;box-shadow:none;transition:background .16s,transform .16s}.btn-sm{padding:6px 10px;font-size:11px}.btn-primary,.btn-auth{background:#4b5ce3;border-color:#4b5ce3;color:#fff}.btn-primary:hover,.btn-auth:hover{background:#3a4dce;border-color:#3a4dce;color:#fff}.btn-outline-primary{background:transparent;color:var(--accent);border-color:var(--line)}.btn-outline-primary:hover{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}.btn-outline-secondary{color:var(--muted);border-color:var(--line)}.btn-outline-secondary:hover{background:var(--surface2);color:var(--ink);border-color:var(--muted)}.btn-outline-danger{color:var(--danger);border-color:var(--line)}.btn-light{background:var(--surface2);color:var(--ink);border-color:var(--line)}.btn:focus-visible,a:focus-visible{outline:3px solid var(--accent);outline-offset:3px}.form-control,.form-select{border:1px solid var(--line);border-radius:8px;background-color:var(--surface);color:var(--ink);font-size:13px;padding:11px 13px}.form-control:focus,.form-select:focus{background-color:var(--surface);color:var(--ink);border-color:var(--accent);box-shadow:0 0 0 3px #7e8eff24}.form-control:disabled,.form-control[readonly]{background:var(--surface2);color:var(--muted)}.form-control::placeholder{color:var(--muted);opacity:.8}.form-label,label{color:var(--ink);font-size:12px;font-weight:550}.form-select,select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none' stroke='%23818da5' stroke-width='1.7'%3E%3Cpath d='m4 6 4 4 4-4'/%3E%3C/svg%3E");background-position:right 12px center;background-repeat:no-repeat;padding-right:34px}.form-check-input{background-color:var(--surface);border-color:var(--muted)}.form-check-input:checked{background-color:#4b5ce3;border-color:#4b5ce3}.input-group-text{color:var(--muted);background:var(--surface2);border-color:var(--line)}.form-text{color:var(--muted)}
.table{--bs-table-bg:transparent;--bs-table-color:var(--ink);--bs-table-border-color:var(--line);--bs-table-hover-bg:var(--surface2);margin:0;color:var(--ink)}.table thead th{padding:13px 16px;background:var(--surface2);color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.06em;font-weight:650;border-color:var(--line);white-space:nowrap}.table tbody td{padding:14px 16px;color:var(--ink);font-size:12px;border-color:var(--line);vertical-align:middle}.table td strong{font-size:12px}.table-responsive{border-radius:12px;min-width:0}.table td .btn{margin:2px}.badge,.badge-soft,.cp-status{border-radius:6px;padding:5px 8px;font-size:10px;font-weight:600}.badge-soft,.status-scheduled,.status-in-progress,.status-approved,.status-pending{background:var(--accent-soft);color:var(--accent)}.status-completed,.status-paid,.status-active{background:var(--success-soft);color:var(--success)}.status-overdue,.status-cancelled{background:var(--surface2);color:var(--danger)}.bg-success{background:#167c61!important;color:#fff}.bg-warning{background:#f6d488!important;color:#513c13}.bg-danger{background:#b83b49!important;color:#fff}.nav-tabs{border-color:var(--line)}.nav-tabs .nav-link{color:var(--muted)}.nav-tabs .nav-link.active{background:var(--surface);color:var(--accent);border-color:var(--line)}.modal-content,.dropdown-menu,.accordion-item,.list-group-item{background:var(--surface);color:var(--ink);border-color:var(--line)}.dropdown-item{color:var(--ink)}.dropdown-item:hover{background:var(--surface2);color:var(--ink)}.bg-white,.bg-light{background:var(--surface)!important}.border-bottom,.border-top{border-color:var(--line)!important}.text-dark{color:var(--ink)!important}
.quick-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.quick-action{display:block;padding:18px;background:var(--surface);border:1px solid var(--line);border-radius:12px;text-decoration:none;color:var(--ink);box-shadow:none;transition:border-color .16s}.quick-action strong{color:var(--ink);font-size:13px}.quick-action small{color:var(--muted);font-size:11px}.quick-action:hover{border-color:var(--accent);transform:none}.workflow-card,.issued-by-box,.item-total-bar,.info-panel,.upload-zone{background:var(--surface2);color:var(--ink);border-color:var(--line)}.workflow-card p{color:var(--muted);font-size:12px}.detail-section-card label,.client-info-card label{color:var(--muted)}.timeline-list{border-color:var(--line)}.timeline-item:before{background:var(--accent);border-color:var(--surface);box-shadow:0 0 0 2px var(--line)}.client-photo-fallback,.portal-avatar,.avatar{background:var(--accent-soft);color:var(--accent)}.progress{background:var(--surface2)}.progress-bar{background:#6878ef}.mws-app-footer{padding:18px 32px;color:var(--muted);font-size:10px;border-top:1px solid var(--line);background:var(--bg)}
.cash-chart{width:100%;height:auto;display:block;max-height:250px}.chart-grid{stroke:var(--line);stroke-dasharray:3 5}.chart-axis{fill:var(--muted);font-size:11px}.chart-legend{display:flex;align-items:center;gap:16px;font-size:11px;color:var(--muted)}.chart-legend i{display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:5px}.chart-note{font-size:11px;color:var(--muted)}.chart-empty{display:grid;place-items:center;min-height:220px;text-align:center;color:var(--muted)}.chart-empty svg{width:42px;height:42px;color:var(--accent);margin-bottom:10px}.chart-empty strong{display:block;color:var(--ink);font-size:14px}.chart-empty p{font-size:12px;margin:6px 0 15px}.project-row{display:flex;justify-content:space-between;gap:15px;font-size:12px;margin:16px 0 7px}.project-track{height:6px;border-radius:12px;background:var(--surface2);overflow:hidden}.project-track span{display:block;height:100%;border-radius:12px;background:#6878ef}.small-kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border-top:1px solid var(--line);margin-top:18px;padding-top:16px}.small-kpis>div+div{border-left:1px solid var(--line);padding-left:18px}.small-kpis small{display:block;color:var(--muted);font-size:10px}.small-kpis strong{font-size:15px;font-variant-numeric:tabular-nums}.empty-cell{padding:32px 16px!important;text-align:center;color:var(--muted)!important}
.standalone-theme{position:absolute;right:24px;top:20px;z-index:20;width:115px}.standalone-theme .form-select{font-size:12px}.auth-story{background:linear-gradient(145deg,#172a4c,#3648a5);color:#fff}.auth-story h1,.auth-story .story-brand,.auth-story .story-kicker,.auth-story .feature-chip{color:#fff}.auth-story p,.auth-story .story-foot{color:#dce5ff}.brand-mini{background:#6878ef;color:white}.story-kicker,.feature-chip{background:#ffffff12;border-color:#ffffff20}.auth-side{background:var(--bg)}.auth-card{padding:34px;width:100%;max-width:470px}.auth-card h2{font-size:27px}.auth-card p,.lead-copy,.security-line,.auth-card .form-label{color:var(--muted)}.version-pill{background:var(--accent-soft);color:var(--accent);font-size:10px}.auth-links{font-size:12px}.security-line{font-size:10px}.register-shell{padding-top:85px}.register-card{padding:30px}.registration-header h1{color:var(--ink)}
.client-portal-page{--cp-primary:var(--accent);--cp-primary-dark:var(--accent);--cp-ink:var(--ink);--cp-muted:var(--muted);--cp-line:var(--line);--cp-card:var(--surface);--cp-soft:var(--surface2)}.portal-shell{padding-top:82px}.cp-hero{background:linear-gradient(110deg,#243971,#4b5ce3);color:#fff;box-shadow:none;border:0;border-radius:16px}.cp-hero h1,.cp-hero .cp-subtitle,.cp-hero .cp-eyebrow{color:#fff}.cp-metric-label,.cp-project-no,.cp-date,.cp-section-intro,.cp-showcase-industry,.cp-showcase-progress,.cp-list-item small{color:var(--muted)}.cp-metric-value,.cp-project-title,.cp-showcase-item h3{color:var(--ink)}.cp-icon,.cp-showcase-icon,.cp-privacy-note{background:var(--accent-soft);color:var(--accent);border-color:var(--line)}.cp-progress-line{background:var(--surface2)}.cp-progress-line span{background:#6878ef}.cp-table{color:var(--ink)}.cp-table th{background:var(--surface2);color:var(--muted);font-size:10px}.cp-table td{color:var(--ink);border-color:var(--line);font-size:12px}.cp-status,.cp-shared-badge{background:var(--accent-soft);color:var(--accent)}.cp-empty{color:var(--muted);font-size:12px}.cp-actions .btn-light{background:white;color:#243971}.workspace{padding-top:82px}.project-hero,.portal-box{background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:14px}
.app-mobile-menu-btn{display:none;background:var(--accent-soft);color:var(--accent);border:1px solid var(--line);box-shadow:none;border-radius:9px}.app-mobile-overlay{background:#0b132b80}.app-alert{font-size:13px}.alert{border-radius:10px;font-size:13px}
@media(min-width:992px){.sidebar{transform:none}.app-mobile-overlay{display:none!important}}
@media(max-width:1199px){.content{padding:24px}.topbar{padding:18px 24px}.page-hero{align-items:flex-start}.page-hero h2{font-size:25px}.page-hero>div:last-child{max-width:360px}.user-info{display:none}}
@media(max-width:991px){.sidebar{transform:translateX(-100%);width:252px;transition:transform .2s}.app-menu-open .sidebar{transform:translateX(0)}.app-menu-open .app-mobile-overlay{display:block}.main{margin-left:0;width:100%}.app-mobile-menu-btn{display:block;position:fixed;left:17px;top:22px;width:38px;height:38px;z-index:1100}.topbar{padding-left:72px;min-height:82px}.topbar .eyebrow{display:none}.topbar h5{font-size:12px}.topbar-actions{gap:10px}.topbar-user{display:none}.page-hero{display:block}.page-hero>div:last-child{max-width:none}.page-hero .hero-actions{margin-top:18px}.quick-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:575px){.content{padding:20px 16px}.topbar{padding-right:14px}.topbar h5{font-size:11px;max-width:128px}.theme-picker select{width:92px;font-size:11px}.user-avatar{display:none}.page-hero h2{font-size:25px}.page-hero p{font-size:12px}.hero-actions{display:flex;gap:8px;flex-wrap:wrap}.hero-actions .btn{flex:1}.card-body{padding:18px}.stat-card{padding:17px;min-height:130px}.stat-card h3{font-size:23px}.quick-grid{grid-template-columns:1fr}.small-kpis strong{font-size:12px}.small-kpis>div+div{padding-left:10px}.small-kpis small{font-size:9px}.auth-card{padding:25px}.standalone-theme{right:16px;top:16px}.auth-layout{padding-top:65px}.mws-app-footer{padding:18px 16px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
@media print{:root,[data-theme="dark"]{--bg:#fff;--surface:#fff;--surface2:#f5f5f5;--ink:#111;--muted:#555;--line:#ddd;--accent:#253ca6}.sidebar,.topbar,.standalone-theme,.app-mobile-menu-btn,.no-print{display:none!important}.main{margin:0;width:100%}.content{padding:0}.card,.invoice-box{box-shadow:none}.mws-app-footer{display:none}}
/* Module detail surfaces and supporting hierarchy. */
.milestone-admin-card,.milestone-admin-section,.detail-grid,.info-card,.summary-card,.history-document-row,.customer-profile-card,.portal-welcome,.panel,.meeting-card{background:var(--surface);color:var(--ink);border-color:var(--line)}.milestone-admin-section-title,.detail-section-card h5,.invoice-item-row,.form-section{border-color:var(--line)}.milestone-admin-section-title,.milestone-admin-cell>span,.detail-metric-card span,.field-help,.empty-note{color:var(--muted);font-size:11px}.detail-metric-card strong{font-size:25px}.milestone-admin-progress,.password-meter{background:var(--surface2)}.milestone-admin-progress span{background:#6878ef}.password-meter span{background:#d76c74}.password-meter span[data-level="2"],.password-meter span[data-level="3"]{background:#d0a04f}.password-meter span[data-level="4"]{background:#26ac8c}.registration-steps span,.form-section-heading>span{background:var(--surface2);color:var(--muted);font-size:12px}.registration-steps span.active{background:var(--accent-soft);color:var(--accent)}.form-section-heading h2{font-size:18px}.form-section-heading p{color:var(--muted);font-size:12px}.registration-success{background:var(--success-soft);color:var(--success)}.password-toggle{color:var(--accent);background:var(--surface2);font-size:11px}.portal-profile-photo{border-color:var(--line)}.customer-profile-card small{color:var(--muted)}
.cp-layout{align-items:start}.cp-stack{align-content:start}.cp-card-header h2,.cp-card h2{font-size:18px}.cp-metric-label{font-size:11px}.cp-metric-value{font-size:20px;font-weight:700;line-height:1.25;margin-top:4px}.cp-card .cp-empty{font-size:12px;background:var(--surface2);border-color:var(--line)}.cp-brand-footer{color:var(--muted);font-size:10px}.cp-hero .btn-glass{color:#fff;border:1px solid #ffffff40;background:#ffffff10}.cp-hero .btn-glass:hover{background:#ffffff25}.cp-card-header>span{color:var(--muted);font-size:11px}
