.button.secondary{background:var(--surface);color:var(--ink);border:1px solid var(--line)}.button.secondary:hover:not(:disabled){border-color:#d8d8d0;color:var(--ink);background:var(--surface)}.button.small{min-height:34px;padding:7px 12px;font-size:12px}.button.danger-ghost{background:transparent;color:var(--red);border:1px solid rgba(201,58,50,.45)}.button.danger-ghost:hover:not(:disabled){border-color:var(--red);color:var(--red);background:var(--red-wash)}.crm-input{width:100%;min-height:42px;padding:10px 12px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);color:var(--ink);font-size:13px;outline:none}.crm-input::placeholder{color:var(--ink-3)}.crm-input:focus{border-color:var(--green);box-shadow:0 0 0 3px #83b7262e}textarea.crm-input{min-height:76px;resize:vertical}select.crm-input{-webkit-appearance:auto;-moz-appearance:auto;appearance:auto}input[type=checkbox],input[type=radio]{accent-color:var(--green)}.filter-bar{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:20px}.filter-bar .crm-input{width:auto;min-width:180px}.filter-search{position:relative;flex:1;min-width:220px}.filter-search .crm-input{width:100%;padding-left:38px}.filter-search svg{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--ink-3)}.org-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.org-card{padding:20px}.org-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:10px}.org-card h3{margin:0 0 4px;font-size:16px;font-weight:700}.org-meta{color:var(--ink-2);font-size:12px;line-height:1.7}.badge{display:inline-flex;align-items:center;padding:3px 9px;border:1px solid rgba(131,183,38,.35);border-radius:99px;background:var(--green-tint);color:var(--green-dark);font-size:11px;font-weight:600;white-space:nowrap}.badge.vendor{background:var(--panel-3);border-color:var(--line);color:var(--ink-2)}.badge.prospect{background:var(--amber-wash);border-color:#b97f1466;color:var(--amber)}.chip-row{display:flex;flex-wrap:wrap;gap:7px;margin:12px 0 4px}.chip{display:inline-flex;align-items:center;gap:6px;padding:4px 9px;border-radius:99px;background:var(--panel-3);border:1px solid var(--line);color:var(--ink-2);font-size:11px;font-weight:600}.chip button{display:inline-flex;padding:0;border:0;background:transparent;color:var(--ink-3)}.chip button:hover{color:var(--red)}.contact-list{margin-top:14px;border-top:1px solid var(--line)}.contact-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--line-soft)}.contact-row:last-child{border-bottom:0}.contact-name{font-size:13px;font-weight:700}.contact-detail{color:var(--ink-2);font-size:11px;line-height:1.6}.card-actions{display:flex;gap:8px;margin-top:14px;flex-wrap:wrap}.trade-add{display:flex;gap:8px;margin-top:12px}.trade-add .crm-input{min-height:36px}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;display:flex;align-items:flex-start;justify-content:center;padding:28px 16px;background:#17191d73;overflow-y:auto}.modal-card{width:min(680px,100%);padding:24px;border:1px solid var(--line);border-radius:14px;background:var(--surface);box-shadow:var(--shadow-floating)}.modal-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:18px}.modal-head h2{margin:0;font-size:16px;font-weight:700;letter-spacing:.02em}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.field{display:flex;flex-direction:column;gap:6px}.field.full{grid-column:1 / -1}.field label{font-size:12px;font-weight:600;color:var(--ink-2)}.field-error{color:var(--red);font-size:11px;font-weight:600}.checkbox-row{display:flex;flex-wrap:wrap;gap:16px}.checkbox-row label{display:inline-flex;align-items:center;gap:7px;font-size:12px;font-weight:600;color:var(--ink)}.form-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:20px}.crm-layout{display:grid;grid-template-columns:350px minmax(0,1fr);gap:14px;align-items:start}.crm-side{display:flex;flex-direction:column;gap:14px;min-width:0}.tabs{display:inline-flex;gap:4px;padding:4px;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--panel-3)}.tab{padding:8px 15px;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--ink-2);font-size:12.5px;font-weight:550}.tab:hover{color:var(--ink)}.tab.active{background:var(--surface);color:var(--ink);box-shadow:var(--shadow-card)}.mini-row{padding:11px 0;border-top:1px solid var(--line-soft)}.mini-row:first-of-type{border-top:0}.mini-title{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:13px;font-weight:700}.mini-detail{margin-top:3px;color:var(--ink-2);font-size:11px;line-height:1.6}.overdue{color:var(--red);font-weight:700}.board{display:flex;gap:12px;overflow-x:auto;padding-bottom:14px}.board-column{flex:1 0 240px;max-width:300px;padding:13px;border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--panel-2);box-shadow:var(--shadow-card)}.board-column h3{display:flex;align-items:center;justify-content:space-between;margin:0 0 12px;font-size:11px;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:var(--ink-3)}.board-column h3 .section-count{margin-left:0}.opp-card{padding:12px;margin-bottom:9px;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface);cursor:pointer}.opp-card:hover{border-color:var(--green-dim)}.opp-card.selected{border-color:var(--green);box-shadow:0 0 0 2px #83b72640}.opp-card h4{margin:0 0 5px;font-size:13px;font-weight:700;line-height:1.4}.opp-meta{color:var(--ink-2);font-size:11px;line-height:1.65}.opp-value{color:var(--green-dark);font-weight:700;font-variant-numeric:tabular-nums}.opp-actions{display:flex;gap:7px;margin-top:10px}.opp-actions select{flex:1;min-height:34px;font-size:11px}.timeline{display:flex;flex-direction:column}.timeline-item{padding:11px 0 11px 16px;border-left:2px solid var(--line);position:relative}.timeline-item:before{content:"";position:absolute;left:-5px;top:16px;width:8px;height:8px;border-radius:50%;background:var(--green)}.timeline-item h4{margin:0 0 3px;font-size:12px;font-weight:700}.timeline-item p{margin:0;color:var(--ink-2);font-size:11px;line-height:1.6}@media(max-width:1180px){.crm-layout,.org-grid{grid-template-columns:1fr}}@media(max-width:760px){.form-grid{grid-template-columns:1fr}.filter-bar .crm-input{width:100%}.board-column{flex-basis:82vw;max-width:82vw}}.status-badge{display:inline-flex;align-items:center;padding:3px 9px;border:1px solid var(--line);border-radius:99px;background:var(--panel-3);color:var(--ink-2);font-size:11px;font-weight:600;white-space:nowrap}.status-badge.pending{background:var(--amber-wash);border-color:#b97f1466;color:var(--amber)}.status-badge.active{background:var(--green-tint);border-color:#83b72659;color:var(--green-dark)}.status-badge.on_hold{background:var(--panel-3);color:var(--ink-2)}.status-badge.complete{background:var(--panel-3);border-color:var(--line);color:var(--ink-2)}.status-badge.todo{background:var(--panel-3);color:var(--ink-2)}.status-badge.in_progress{background:var(--green-tint);border-color:#83b72659;color:var(--green-dark)}.status-badge.blocked{background:var(--red-wash);border-color:#c93a3266;color:var(--red)}.status-badge.done{background:var(--panel-3);border-color:var(--line);color:var(--ink-2)}.status-badge.canceled{background:var(--panel-3);color:var(--ink-3)}.priority-badge.urgent{background:var(--red-wash);border-color:#c93a3266;color:var(--red)}.priority-badge.high{background:var(--amber-wash);border-color:#b97f1466;color:var(--amber)}.project-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.project-card{display:block;padding:20px}a.project-card:hover,.project-card:hover{border-color:var(--green-dim);color:inherit}.project-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:6px}.project-card h3{margin:0 0 4px;font-size:16px;font-weight:700}.project-number{color:var(--green-dark);font-size:11.5px;font-weight:600}.project-meta{color:var(--ink-2);font-size:12px;line-height:1.7}.progress-track{height:6px;margin:14px 0 6px;border-radius:99px;background:#eeeee8;overflow:hidden}.progress-fill{height:100%;border-radius:99px;background:var(--green)}.progress-label{display:flex;justify-content:space-between;color:var(--ink-2);font-size:11.5px}.detail-back{display:inline-flex;align-items:center;gap:7px;margin-bottom:16px;color:var(--green-dark);font-size:12.5px;font-weight:600}.detail-head{padding:22px;margin-bottom:14px}.detail-head-top{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap}.detail-head h1{margin:4px 0 6px;font-size:clamp(22px,3vw,29px);font-weight:700;letter-spacing:.01em}.detail-head-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.detail-head-actions .crm-input{width:auto;min-width:150px;min-height:40px}.kv-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px 22px;margin-top:20px}.kv{min-width:0}.kv dt{margin:0 0 4px;color:var(--ink-3);font-size:11px;font-weight:600;letter-spacing:.07em;text-transform:uppercase}.kv dd{margin:0;color:var(--ink);font-size:13px;font-weight:600;overflow-wrap:anywhere}.detail-tabs{margin-bottom:14px}.checklist-progress{display:flex;align-items:center;gap:14px;margin-bottom:8px}.checklist-progress .progress-track{flex:1;margin:0}.checklist-progress span{color:var(--ink-2);font-size:11.5px;white-space:nowrap}.checklist-item{display:flex;align-items:flex-start;gap:12px;padding:12px 0;border-top:1px solid var(--line-soft)}.checklist-item:first-of-type{border-top:0}.checklist-item input[type=checkbox]{width:17px;height:17px;margin-top:1px;accent-color:var(--green);flex-shrink:0}.checklist-body{flex:1;min-width:0}.checklist-title{font-size:13px;font-weight:700}.checklist-title.done{color:var(--ink-3);text-decoration:line-through}.checklist-detail{color:var(--ink-2);font-size:11px;line-height:1.6}.required-tag{margin-left:8px;padding:2px 7px;border:1px solid rgba(185,127,20,.4);border-radius:99px;background:var(--amber-bg);color:var(--amber);font-size:10.5px;font-weight:600;vertical-align:2px}.file-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 0;border-top:1px solid var(--line-soft)}.file-row:first-of-type{border-top:0}.file-main{display:flex;align-items:center;gap:12px;min-width:0}.file-icon{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--green-tint);color:var(--green-dark);flex-shrink:0}.file-name{font-size:13px;font-weight:700;overflow-wrap:anywhere}.file-detail{color:var(--ink-2);font-size:11px;line-height:1.6}.file-actions{display:flex;gap:8px;flex-shrink:0}.upload-bar{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:8px}.upload-bar .crm-input{width:auto;min-width:150px}.upload-bar input[type=file]{font-size:12px;color:var(--ink-2);max-width:100%}.task-card{cursor:default}.task-card .opp-actions select{flex:1}.task-comments{margin-top:12px;padding-top:12px;border-top:1px solid var(--line-soft)}.comment-row{padding:9px 0;border-top:1px solid var(--line-soft)}.comment-row:first-of-type{border-top:0}.comment-meta{color:var(--ink-3);font-size:11.5px}.comment-body{margin-top:2px;font-size:12px;line-height:1.6;color:var(--ink)}.comment-form{display:flex;gap:8px;margin-top:10px}.comment-form .crm-input{flex:1;min-height:38px}.note-row{padding:13px 0;border-top:1px solid var(--line-soft)}.note-row:first-of-type{border-top:0}.note-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.note-title{font-size:13px;font-weight:700}.note-meta{color:var(--ink-3);font-size:11.5px;white-space:nowrap}.note-body{margin-top:4px;color:var(--ink-2);font-size:12px;line-height:1.7;white-space:pre-wrap}.member-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0;border-top:1px solid var(--line-soft)}.member-row:first-of-type{border-top:0}.member-name{font-size:13px;font-weight:700}.member-detail{color:var(--ink-2);font-size:11px}.member-add{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}.member-add .crm-input{width:auto;flex:1;min-width:150px;min-height:38px}.section-stack{display:flex;flex-direction:column;gap:14px}@media(max-width:1180px){.kv-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:760px){.project-grid{grid-template-columns:1fr}.kv-grid{grid-template-columns:1fr 1fr}.file-row{flex-direction:column;align-items:flex-start}}.status-badge.wo-received{background:var(--panel-3);color:var(--ink-2)}.status-badge.wo-quoted{background:var(--amber-wash);border-color:#b97f1466;color:var(--amber)}.status-badge.wo-approved,.status-badge.wo-scheduled,.status-badge.wo-in_progress{background:var(--green-wash);border-color:#83b72666;color:var(--green-dark)}.status-badge.wo-completed{background:var(--panel-3);border-color:var(--line);color:var(--ink-2)}.status-badge.wo-invoiced{background:var(--amber-wash);border-color:#b97f1466;color:var(--amber)}.status-badge.wo-paid{background:var(--green-wash);border-color:#83b72666;color:var(--green-dark)}.status-badge.wo-canceled{background:var(--panel-3);color:var(--ink-3)}.status-badge.wo-contract-draft{background:var(--panel-3);color:var(--ink-2)}.status-badge.wo-contract-active{background:var(--green-wash);border-color:#83b72666;color:var(--green-dark)}.status-badge.wo-contract-on_hold{background:var(--amber-wash);border-color:#b97f1466;color:var(--amber)}.status-badge.wo-contract-expired{background:var(--red-wash);border-color:#c93a3266;color:var(--red)}.status-badge.wo-contract-canceled{background:var(--panel-3);color:var(--ink-3)}.status-badge.log-draft{background:var(--panel-3);color:var(--ink-2)}.status-badge.log-submitted{background:var(--green-wash);border-color:#83b72666;color:var(--green-dark)}.status-badge.log-corrected{background:var(--amber-wash);border-color:#b97f1466;color:var(--amber)}.status-badge.punch-open{background:var(--red-wash);border-color:#c93a3266;color:var(--red)}.status-badge.punch-ready{background:var(--amber-wash);border-color:#b97f1466;color:var(--amber)}.status-badge.punch-verified{background:var(--green-wash);border-color:#83b72666;color:var(--green-dark)}.status-badge.punch-closed{background:var(--panel-3);border-color:var(--line);color:var(--ink-2)}.photo-strip{display:flex;flex-wrap:wrap;gap:12px;margin-top:6px}.photo-thumb{margin:0;width:128px}.photo-thumb img{width:128px;height:96px;object-fit:cover;display:block;border-radius:var(--radius-sm);border:1px solid var(--line);background:var(--panel-2)}.photo-thumb-placeholder{width:128px;height:96px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);border:1px dashed var(--line);color:var(--ink-3);background:var(--panel)}.photo-thumb figcaption{display:flex;flex-direction:column;gap:1px;margin-top:5px}.photo-thumb-type{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.07em;color:var(--green-dark)}.photo-thumb-name{font-size:11px;color:var(--ink-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sync-indicator{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:99px;cursor:pointer;border:1px solid var(--line);background:var(--surface);font-size:11.5px;font-weight:600;color:var(--ink-2)}.sync-indicator.is-offline{background:var(--amber-wash);border-color:#b97f1473;color:var(--amber)}.sync-indicator .spin{animation:osc-spin 1.1s linear infinite}@keyframes osc-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.cal-toolbar{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-bottom:18px}.cal-toolbar-left{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.cal-title{margin:0;font-size:19px;font-weight:700;letter-spacing:.01em}.cal-nav{display:inline-flex;gap:6px}.cal-nav .icon-button{border:1px solid var(--line);background:var(--panel)}.cal-filters{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.cal-filters .crm-input{width:auto;min-width:190px}.cal-mine{display:inline-flex;align-items:center;gap:7px;font-size:12px;font-weight:600;color:var(--ink)}.cal-mine input{width:17px;height:17px;accent-color:var(--green)}.cal-weekdays{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px;margin-bottom:8px}.cal-weekdays span{color:var(--ink-3);font-size:11px;font-weight:600;letter-spacing:.07em;text-transform:uppercase;text-align:left;padding:0 4px}.cal-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px}.cal-cell{min-height:108px;padding:8px;border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);color:var(--ink);text-align:left;display:flex;flex-direction:column;gap:4px;overflow:hidden;cursor:pointer}.cal-cell:hover{border-color:var(--green-dim)}.cal-cell.other-month{background:var(--panel-2)}.cal-cell.other-month .cal-daynum{color:var(--ink-3)}.cal-cell.today{border-color:var(--green);box-shadow:inset 0 0 0 1px var(--green)}.cal-daynum{font-size:12px;font-weight:700;font-variant-numeric:tabular-nums;color:var(--ink)}.cal-cell.today .cal-daynum{color:var(--green-dark)}.cal-chip{display:block;width:100%;padding:4px 7px;border:1px solid rgba(131,183,38,.3);border-radius:var(--radius-sm);background:var(--green-tint);color:var(--green-dark);font-size:10.5px;font-weight:600;line-height:1.35;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}button.cal-chip{cursor:pointer}button.cal-chip:hover{background:#83b72638}a.cal-chip{text-decoration:none}a.cal-chip:hover{color:var(--green-dark);background:#83b7262e}.cal-chip.completed{background:var(--panel-3);border-color:var(--line);color:var(--ink-3);text-decoration:line-through}.cal-chip.milestone{background:var(--amber-wash);border-color:#b97f1459;color:var(--amber)}.cal-chip.milestone.completed{background:var(--panel-3);border-color:var(--line);color:var(--ink-2);text-decoration:none}.cal-chip.milestone.overdue{background:var(--red-wash);border-color:#c93a3266;color:var(--red)}.cal-more{color:var(--ink-3);font-size:11px;padding:0 4px}.cal-week{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px}.cal-week-day{min-height:220px;padding:10px;border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);display:flex;flex-direction:column;gap:6px}.cal-week-day.today{border-color:var(--green);box-shadow:inset 0 0 0 1px var(--green)}.cal-week-day h3{margin:0 0 4px;font-size:11px;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:var(--ink-3)}.cal-week-day .cal-chip{white-space:normal}.agenda-day{margin-bottom:18px}.agenda-day h3{margin:0 0 8px;font-size:13px;font-weight:700}.agenda-item{display:flex;align-items:center;justify-content:space-between;gap:14px;width:100%;padding:10px 0;border:0;border-top:1px solid var(--line-soft);background:transparent;color:var(--ink);text-align:left;font:inherit}button.agenda-item{cursor:pointer}button.agenda-item:hover .agenda-item-title{color:var(--green-dark)}.agenda-item-main{min-width:0}.agenda-item-title{font-size:13px;font-weight:700}.agenda-item-detail{color:var(--ink-2);font-size:11px;line-height:1.6}.agenda-item-time{flex-shrink:0;color:var(--ink-2);font-size:12px;font-variant-numeric:tabular-nums;text-align:right}.assignee-list{display:flex;flex-direction:column;gap:7px;max-height:168px;overflow-y:auto;padding:10px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--panel)}.assignee-list label{display:inline-flex;align-items:center;gap:8px;font-size:12px;font-weight:600;color:var(--ink)}.assignee-list input{width:17px;height:17px;accent-color:var(--green)}.conflict-box{margin-top:14px;padding:12px 14px;border:1px solid rgba(185,127,20,.4);border-radius:var(--radius-sm);background:var(--amber-wash);color:var(--amber);font-size:12px;line-height:1.6}.conflict-box strong{display:block;margin-bottom:4px}.conflict-box ul{margin:0;padding-left:18px}.status-badge.planned{background:var(--panel-3);color:var(--ink-2)}.status-badge.at_risk{background:var(--amber-wash);border-color:#b97f1466;color:var(--amber)}.status-badge.missed{background:var(--red-wash);border-color:#c93a3266;color:var(--red)}.status-badge.completed{background:var(--panel-3);border-color:var(--line);color:var(--ink-2)}.status-badge.scheduled,.status-badge.confirmed{background:var(--green-tint);border-color:#83b72659;color:var(--green-dark)}.milestone-row{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding:12px 0;border-top:1px solid var(--line-soft)}.milestone-row:first-of-type{border-top:0}.milestone-main{min-width:0}.milestone-title{font-size:13px;font-weight:700}.milestone-detail{color:var(--ink-2);font-size:11px;line-height:1.6}.milestone-actions{display:flex;align-items:center;gap:8px;flex-shrink:0;flex-wrap:wrap}.milestone-actions .crm-input{width:auto;min-height:36px}.milestone-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:8px}@media(max-width:1100px){.cal-week{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:760px){.cal-grid{gap:5px}.cal-cell{min-height:74px;padding:5px}.cal-chip{font-size:9.5px;padding:3px 5px}.cal-week{grid-template-columns:1fr}.cal-week-day{min-height:0}.milestone-form{grid-template-columns:1fr}.milestone-row{flex-direction:column}}.page-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:14px}.page-heading h1{margin:0 0 5px;color:var(--ink);font-size:23px;font-weight:650;letter-spacing:-.02em;line-height:1.25}.page-heading p{margin:0;color:var(--ink-2);font-size:13.5px;line-height:1.55}.page-heading .page-actions{display:flex;align-items:center;gap:9px;flex-wrap:wrap;flex-shrink:0}.stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.stat-card{display:flex;flex-direction:column;gap:6px;min-height:96px;padding:14px 16px 13px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-card)}.stat-card span{color:var(--ink-3);font-size:11px;font-weight:600;letter-spacing:.07em;text-transform:uppercase;line-height:1.5}.stat-card strong{margin-top:auto;color:var(--ink);font-size:27px;font-weight:650;font-variant-numeric:tabular-nums;letter-spacing:-.02em;line-height:1.1}.stat-card small{color:var(--ink-2);font-size:11.5px;line-height:1.45}.panel-title{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:12px}.panel-title h2{margin:0;font-size:15px;font-weight:700}.panel-title span{color:var(--ink-3);font-size:12px;font-weight:500;white-space:nowrap}.due-overdue{color:var(--red);font-weight:700}.due-soon{color:var(--amber);font-weight:700}.countdown-pill{display:inline-flex;align-items:center;gap:6px;padding:3px 9px;border:1px solid var(--line);border-radius:99px;background:var(--panel-3);color:var(--ink-2);font-size:11.5px;font-weight:600;white-space:nowrap}.countdown-pill.overdue{background:var(--red-wash);color:var(--red);border-color:#c93a3266}.countdown-pill.due-soon{background:var(--amber-wash);color:var(--amber);border-color:#b97f1466}.bid-card{padding:20px;margin-bottom:14px}.bid-card:last-of-type{margin-bottom:0}.bid-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;flex-wrap:wrap}.bid-card-head h3{margin:0 0 4px;font-size:16px;font-weight:700}.bid-card-actions{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.bid-card-head .bid-card-actions{flex-wrap:nowrap;flex-shrink:0}.bid-card .countdown-pill{min-width:128px;min-height:36px;justify-content:center;flex-shrink:0;font-variant-numeric:tabular-nums}.bid-card-head .bid-card-actions .crm-input{min-width:132px}.coverage-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:10px;margin:14px 0 4px}.coverage-box{padding:13px;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--panel-2)}.coverage-box strong{display:block;font-size:13px;margin-bottom:5px}.coverage-box span{color:var(--ink-2);font-size:11px;line-height:1.6;display:block}.coverage-box.thin{border-color:#b97f1466;background:var(--amber-wash)}.est-table-wrap{overflow-x:auto;margin-top:12px}.est-table{width:100%;border-collapse:collapse;font-size:12.5px}.est-table th{text-align:left;padding:8px 10px;color:var(--ink-3);font-size:11.5px;font-weight:600;border-bottom:1px solid var(--line);white-space:nowrap}.est-table td{padding:8px 10px;border-bottom:1px solid var(--line-soft);vertical-align:middle}.est-table tr.selected-row td{background:var(--green-wash)}.est-table .num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.est-table th.num{text-align:right}.est-table .row-actions{display:flex;gap:6px;justify-content:flex-end}.items-table td{padding:5px 8px}.items-table .crm-input{min-height:34px;padding:6px 9px;font-size:12.5px}.items-table .num-input{text-align:right;font-variant-numeric:tabular-nums}.items-table .desc-input{min-width:190px}.items-table .code-input{width:86px}.items-table .unit-input{width:64px}.items-table .money-cell{font-weight:700;color:var(--ink);font-variant-numeric:tabular-nums}.items-table tr.dirty-row td{background:#b97f140f}.items-table .icon-button{width:32px;height:32px}.totals-panel{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;margin-top:16px}.total-box{padding:14px;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--panel-2)}.total-box span{display:block;color:var(--ink-3);font-size:11px;font-weight:600;margin-bottom:6px;text-transform:uppercase;letter-spacing:.07em}.total-box strong{font-size:19px;font-weight:700;font-variant-numeric:tabular-nums}.total-box.grand{background:var(--green-wash);border-color:var(--green-dim)}.total-box.grand strong{color:var(--green-dark);font-size:22px}.est-head-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.est-meta{color:var(--ink-2);font-size:12px;line-height:1.55;margin:0}.frozen-note{display:flex;gap:10px;align-items:flex-start;padding:12px 14px;margin:14px 0;border:1px solid rgba(185,127,20,.4);border-radius:var(--radius-md);background:var(--amber-bg);color:var(--amber);font-size:12px;line-height:1.6}.inline-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin-top:12px;align-items:end}.inline-form .button{min-height:42px}.list-row{display:flex;align-items:center;gap:14px;padding:12px 0;border-bottom:1px solid var(--line-soft)}.list-row:last-child{border-bottom:0}.list-row>div{flex:1;min-width:0}.list-row>div strong{font-size:13.5px;font-weight:700}.list-row>strong{font-variant-numeric:tabular-nums;white-space:nowrap}.list-row .badge,.list-row .button{flex-shrink:0}@media(max-width:760px){.bid-card{padding:16px}.items-table .desc-input{min-width:150px}.page-heading{flex-direction:column;align-items:flex-start;gap:13px}.stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.list-row{flex-wrap:wrap}}@media(max-width:520px){.stat-grid{grid-template-columns:1fr}}.money-page .section-card{margin-bottom:14px}.table-scroll{overflow-x:auto;margin-top:12px}.link-button{background:none;border:0;padding:0;color:var(--green-dark);font-weight:700;cursor:pointer;text-align:left}.link-button:hover{text-decoration:underline}.button-row{display:flex;gap:10px;flex-wrap:wrap}.icon-button.danger{color:var(--red)}.money-project-picker{max-width:460px}.money-contract-strip{margin-top:16px}.money-small-strong{font-size:1rem!important}.money-form{margin-top:16px;align-items:end}.money-form-action{display:flex;align-items:end}.money-subhead{display:flex;align-items:center;gap:8px;margin:22px 0 10px;font-size:1rem}.money-empty{display:grid;gap:10px}.money-inline-edit{display:inline-flex;gap:6px;align-items:center}.money-inline-input{width:110px;padding:5px 8px}.money-actions{display:inline-flex;gap:6px;align-items:center;flex-wrap:wrap}.money-reject-row{display:flex;gap:6px;margin-top:8px;align-items:center}.money-reject-note{display:block;margin-top:6px;color:var(--red);font-size:.82rem}.money-row-selected td{background:#83b72617}.money-co-detail{margin-top:18px;border-top:1px solid var(--line);padding-top:6px}.money-app-editor{margin-top:20px;border-top:1px solid var(--line);padding-top:14px}.money-footnote{margin-top:10px;font-size:.85rem}.owner-badge{background:var(--green-tint);border-color:#83b72659;color:var(--green-dark)}.badge.co-draft,.badge.app-draft{background:var(--panel-3);border-color:var(--line);color:var(--ink-2)}.badge.co-pending{background:var(--amber-wash);border-color:#b97f1466;color:var(--amber)}.badge.co-approved,.badge.app-approved,.badge.app-paid{background:var(--green-tint);border-color:#83b72659;color:var(--green-dark)}.badge.co-rejected,.badge.app-disputed{background:var(--red-wash);border-color:#c93a3266;color:var(--red)}.badge.co-void,.badge.app-void{background:var(--panel-3);border-color:var(--line);color:var(--ink-3)}.badge.app-submitted{background:var(--panel-3);border-color:var(--line);color:var(--ink)}.badge.app-partially_paid{background:var(--amber-wash);border-color:#b97f1466;color:var(--amber)}.badge.status-draft{background:var(--panel-3);border-color:var(--line);color:var(--ink-2)}.badge.status-approved{background:var(--green-tint);border-color:#83b72659;color:var(--green-dark)}.badge.status-superseded{background:var(--panel-3);border-color:var(--line);color:var(--ink-3)}.button.danger-solid{background:var(--red);border-color:var(--red);color:#fff}.button.danger-solid:hover:not(:disabled){background:var(--red);color:#fff;filter:brightness(1.08)}.g702-table{width:100%;border-collapse:collapse;margin:12px 0 20px;max-width:760px}.g702-table td{padding:8px 12px;border-bottom:1px solid var(--line-soft)}.g702-table td:last-child{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap;width:180px}.g702-table .g702-strong td{font-weight:700;background:var(--panel-2)}.g702-table .g702-grand td{font-weight:800;font-size:1.05rem;background:var(--green-tint);border-top:2px solid var(--green);border-bottom:2px solid var(--green)}.money-print-head h3{margin:18px 0 2px;font-size:1.02rem}.money-print-head p{margin:0 0 6px;color:var(--ink-2);font-size:.9rem}.g703-table input.money-inline-input{width:96px}@media print{body *{visibility:hidden}.print-area,.print-area *{visibility:visible}.print-area{position:absolute;inset:0 auto auto 0;width:100%;padding:24px;background:#fff;color:#000}.print-area *{color:#000!important;background:#fff!important;border-color:#999!important;box-shadow:none!important;text-shadow:none!important}.print-area .g702-table td,.print-area .est-table td,.print-area .est-table th{border-bottom:1px solid #bbb!important}.print-area .g702-table .g702-grand td{border-top:2px solid #000!important;border-bottom:2px solid #000!important}.print-area .table-scroll{overflow:visible}.print-area input,.print-area button{display:none!important}}.wd-group{margin-top:1.1rem}.wd-group-head{display:flex;align-items:center;gap:.6rem;margin:0 0 .6rem;font-size:.95rem}.badge.severity-critical{background:var(--red-wash);border-color:#c93a3266;color:var(--red)}.badge.severity-warning{background:var(--amber-wash);border-color:#b97f1466;color:var(--amber)}.badge.severity-info{background:var(--green-tint);border-color:#83b72659;color:var(--green-dark)}.wd-list{display:grid;gap:.7rem}.wd-finding{position:relative;border:1px solid var(--line);border-radius:var(--radius-lg);padding:.85rem 1rem;background:var(--surface);box-shadow:var(--shadow-card)}.wd-finding-head{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem}.wd-detail{margin:.55rem 0 .35rem;font-size:.98rem;line-height:1.5}.wd-meta{margin:0;font-size:.85rem}.wd-actions{display:flex;flex-wrap:wrap;gap:.45rem;margin-top:.7rem}.button.small{min-height:34px;padding:.35rem .7rem;font-size:.85rem}.wd-settings{display:grid;gap:.6rem}.wd-setting-row{display:flex;flex-wrap:wrap;align-items:center;gap:.9rem;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface);padding:.7rem .9rem}.wd-setting-main{flex:1 1 260px}.wd-setting-main strong{display:block}.wd-setting-main p{margin:.25rem 0 0;font-size:.85rem}.wd-setting-field{display:flex;align-items:center;gap:.4rem;font-size:.85rem;color:var(--ink-2)}.wd-setting-field input[type=number]{width:4.5rem}.wd-prefs{display:grid;gap:.55rem;margin-bottom:.8rem}.wd-pref-row{display:flex;align-items:flex-start;gap:.6rem;font-size:.95rem}.wd-pref-row input[type=checkbox]{margin-top:.2rem;accent-color:var(--green)}.wd-quiet-hours{display:flex;flex-wrap:wrap;gap:.8rem;margin-left:1.6rem}.notif-root{position:relative;display:inline-flex}.notification-button{position:relative}.notif-badge{position:absolute;top:1px;right:1px;min-width:17px;height:17px;padding:0 4px;border-radius:99px;background:var(--red);color:#fff;font-size:10px;font-weight:700;line-height:17px;text-align:center}.notif-panel{position:absolute;top:calc(100% + 10px);right:0;width:min(380px,calc(100vw - 32px));max-height:min(560px,calc(100dvh - 110px));display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-floating);z-index:60;overflow:hidden}.notif-panel-head{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;border-bottom:1px solid var(--line);font-size:13px;font-weight:650;letter-spacing:-.01em}.notif-mark-all{display:inline-flex;align-items:center;gap:5px;border:0;background:transparent;color:var(--green-dark);font-size:12px;font-weight:700}.notif-mark-all:hover{text-decoration:underline}.notif-list{list-style:none;margin:0;padding:0;overflow-y:auto}.notif-item{display:flex;flex-direction:column;gap:2px;width:100%;padding:10px 14px;border:0;border-bottom:1px solid var(--line-soft);background:transparent;color:var(--ink);text-align:left}.notif-item:hover{background:#f4f4ef}.notif-item.unread{background:#83b7260f}.notif-item.unread .notif-title{font-weight:800}.notif-item-top{display:flex;justify-content:space-between;gap:8px}.notif-kind{font-size:11px;font-weight:600;color:var(--green-dark)}.notif-time{font-size:11px;color:var(--ink-3)}.notif-title{font-size:13px;font-weight:600;color:var(--ink)}.notif-body{font-size:12px;color:var(--ink-2);line-height:1.45}.notif-empty{padding:16px 14px;margin:0;font-size:12px;color:var(--ink-2);line-height:1.6}.notif-footer{padding:11px 14px;border:0;border-top:1px solid var(--line);background:var(--surface);color:var(--green-dark);font-size:12px;font-weight:700;text-align:left}.notif-footer:hover{text-decoration:underline}:root{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Inter,Roboto,Helvetica Neue,Arial,sans-serif;color:#17191d;background:#f7f7f4;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;--bg: #f7f7f4;--surface: #ffffff;--line: #e8e8e2;--line-soft: #efefea;--ink: #17191d;--ink2: #5f6259;--ink3: #9a9c92;--green: #83b726;--green-dark: #587d16;--green-tint: #f0f6e2;--amber: #b97f14;--amber-bg: #fdf6e3;--red: #c93a32;--red-bg: #fdeeec;--panel: #ffffff;--panel-2: #fbfbf8;--panel-3: #f1f1ec;--ink-2: #5f6259;--ink-3: #9a9c92;--green-2: #8eb643;--green-dim: #587d16;--green-wash: #f0f6e2;--amber-wash: #fdf6e3;--red-wash: #fdeeec;--sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Inter, Roboto, "Helvetica Neue", Arial, sans-serif;--osc-green: #83b726;--osc-green-light: #8eb643;--osc-green-dark: #587d16;--osc-green-soft: #f0f6e2;--osc-gray: #5f6259;--osc-dark: #17191d;--osc-muted: #5f6259;--osc-white: #ffffff;--osc-background: #f7f7f4;--osc-border: #e8e8e2;--osc-warning: #b97f14;--osc-danger: #c93a32;--osc-success: #83b726;--sidebar-width: 224px;--sidebar-collapsed: 76px;--topbar-height: 56px;--radius-sm: 8px;--radius-md: 10px;--radius-lg: 12px;--shadow-card: 0 1px 2px rgba(23, 25, 29, .03);--shadow-floating: 0 16px 40px rgba(23, 25, 29, .14)}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{min-width:320px;background:var(--bg);color:var(--ink)}::selection{background:#83b72640}button,input,textarea,select{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}a{color:inherit;text-decoration:none}a:hover{color:var(--green-dark)}button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,a:focus-visible{outline:2px solid rgba(131,183,38,.55);outline-offset:2px}h1,h2,h3,h4,p{margin-top:0}.muted{color:var(--ink-2)}.small{font-size:12px}.success{color:var(--green-dark)}.warning{color:var(--amber)}.danger{color:var(--red)}.eyebrow{margin:0 0 10px;color:var(--ink3);font-size:11px;font-weight:600;letter-spacing:.07em;text-transform:uppercase}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-card)}.button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:40px;padding:9px 15px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);color:var(--ink);font-size:13px;font-weight:550;transition:border-color .15s ease,background .15s ease,color .15s ease}.button:hover:not(:disabled){border-color:#d8d8d0}.button.primary{background:var(--green);border-color:var(--green);color:#fff;font-weight:600}.button.primary:hover:not(:disabled){background:#76a51f;border-color:#76a51f;color:#fff}.icon-button{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;padding:0;border:1px solid transparent;border-radius:var(--radius-sm);background:transparent;color:var(--ink-2)}.icon-button:hover{border-color:var(--line);color:var(--ink);background:var(--surface)}.app-shell{display:flex;min-height:100vh;min-height:100dvh}.sidebar{position:fixed;top:0;bottom:0;left:0;z-index:40;display:flex;flex-direction:column;width:var(--sidebar-width);padding:20px 12px;color:var(--ink);background:var(--surface);border-right:1px solid var(--line);transition:width .2s ease,transform .2s ease}.brand{display:flex;align-items:center;gap:9px;padding:0 10px 18px}.brand-text{display:flex;flex-direction:column;line-height:1.25;white-space:nowrap}.brand-text strong{color:var(--ink);font-size:13.5px;font-weight:650;letter-spacing:-.01em}.brand-text span{color:var(--ink2);font-size:11px}.sidebar-nav{display:flex;flex-direction:column;gap:1px;overflow-y:auto;min-height:0;margin-top:4px}.nav-item{display:flex;align-items:center;gap:10px;width:100%;padding:8px 10px;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--ink2);font-size:13.5px;font-weight:500;text-align:left;white-space:nowrap;transition:background .15s ease,color .15s ease}.nav-item svg{flex-shrink:0}.nav-item:hover{background:#f4f4ef;color:var(--ink)}.nav-item.active{background:var(--green-tint);color:var(--green-dark);font-weight:600}.sidebar-bottom{display:flex;flex-direction:column;gap:2px;margin-top:auto;padding:12px 0 0;border-top:1px solid var(--line-soft)}.side-user{display:flex;align-items:center;gap:10px;padding:2px 10px 10px}.side-user-text{display:flex;flex-direction:column;line-height:1.3;white-space:nowrap}.side-user-name{font-size:13px;font-weight:600;color:var(--ink)}.side-user-role{font-size:11.5px;color:var(--ink2)}.avatar{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:30px;height:30px;border-radius:50%;background:var(--green);color:#fff;font-size:12px;font-weight:650}.rail-foot{padding:8px 10px 2px;color:var(--ink3);font-size:11px}.collapse-button{display:flex;align-items:center;gap:10px;padding:8px 10px;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--ink2);font-size:12.5px;text-align:left}.collapse-button:hover{background:#f4f4ef;color:var(--ink)}.logout{color:var(--ink2)}.logout:hover{color:var(--red);background:var(--red-bg)}.sidebar-collapsed .sidebar{width:var(--sidebar-collapsed)}.sidebar-collapsed .brand{justify-content:center;padding:0 0 18px}.sidebar-collapsed .brand-text,.sidebar-collapsed .nav-item span,.sidebar-collapsed .collapse-button span,.sidebar-collapsed .rail-foot,.sidebar-collapsed .side-user-text{display:none}.sidebar-collapsed .nav-item,.sidebar-collapsed .collapse-button{justify-content:center;padding-left:10px;padding-right:10px}.sidebar-collapsed .side-user{justify-content:center;padding-left:0;padding-right:0}.main-area{display:flex;flex:1;flex-direction:column;min-width:0;margin-left:var(--sidebar-width);transition:margin-left .2s ease}.sidebar-collapsed .main-area{margin-left:var(--sidebar-collapsed)}.topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:var(--topbar-height);padding:6px 26px;background:var(--surface);border-bottom:1px solid var(--line-soft)}.topbar-left,.topbar-actions{display:flex;align-items:center}.topbar-left{gap:14px}.topbar-actions{gap:12px}.mobile-menu,.close-mobile,.sidebar-backdrop{display:none}.page-content{flex:1;width:100%;max-width:1240px;margin:0 auto;padding:28px 34px 40px}.app-footer{padding:20px 36px;text-align:center;color:var(--ink3);font-size:12px}.footer-dot{padding:0 8px;color:var(--ink3)}.page-header{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:20px}.page-header h1{margin:0 0 5px;color:var(--ink);font-size:23px;font-weight:650;letter-spacing:-.02em;line-height:1.25}.page-header .muted,.page-sub{margin:0;color:var(--ink2);font-size:13.5px;line-height:1.55}.page-sub b{color:var(--ink);font-weight:600}.date-pill{display:flex;align-items:center;gap:8px;flex-shrink:0;padding:8px 13px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);color:var(--ink2);font-size:12.5px;font-weight:550}.date-pill svg{color:var(--green-dark)}.foundation-banner{display:flex;align-items:center;gap:12px;margin-bottom:18px;padding:12px 15px;border:1px solid rgba(131,183,38,.35);border-radius:var(--radius-md);background:var(--green-tint);color:var(--ink);font-size:12.5px;line-height:1.65}.foundation-banner svg{flex-shrink:0;color:var(--green-dark)}.dash-kpis{display:grid;gap:12px;margin:24px 0 8px}.dash-kpis.kpi-count-1{grid-template-columns:repeat(1,minmax(0,1fr))}.dash-kpis.kpi-count-2{grid-template-columns:repeat(2,minmax(0,1fr))}.dash-kpis.kpi-count-3{grid-template-columns:repeat(3,minmax(0,1fr))}.dash-kpis.kpi-count-4{grid-template-columns:repeat(4,minmax(0,1fr))}.dash-kpis.kpi-count-5{grid-template-columns:repeat(5,minmax(0,1fr))}.dash-kpis.kpi-count-6{grid-template-columns:repeat(6,minmax(0,1fr))}.kpi-tile{display:flex;flex-direction:column;padding:15px 16px 14px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-card)}.kpi-label{color:var(--ink3);font-size:11px;font-weight:600;letter-spacing:.07em;text-transform:uppercase;line-height:1.5}.kpi-value{margin-top:7px;color:var(--ink);font-size:27px;font-weight:650;font-variant-numeric:tabular-nums;letter-spacing:-.02em;line-height:1.15}.kpi-note{margin-top:3px;color:var(--ink2);font-size:12px;line-height:1.5}.kpi-tile.tone-warn .kpi-value,.kpi-tile.tone-warn .kpi-note{color:var(--amber)}.kpi-tile.tone-alert .kpi-value,.kpi-tile.tone-alert .kpi-note{color:var(--red)}.dash-cols{display:grid;grid-template-columns:1.15fr .85fr;gap:28px;margin-top:22px;align-items:start}.dashboard-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;align-items:start}.dash-col{display:flex;flex-direction:column;gap:16px;min-width:0}.dash-col .plain-section{margin-bottom:10px}.section-card{min-width:0;padding:18px 20px 10px}.plain-section{min-width:0;padding:2px 0 0}.section-head{display:flex;align-items:baseline;gap:10px;margin-bottom:6px}.section-head h2{display:flex;align-items:center;gap:8px;margin:0;color:var(--ink);font-size:14.5px;font-weight:650;letter-spacing:-.01em}.section-head h2 svg{width:16px;height:16px;color:var(--green-dark)}.section-subtitle{margin:0 0 6px;color:var(--ink2);font-size:12.5px;line-height:1.55}.section-count{margin-left:auto;color:var(--ink3);font-size:12px;white-space:nowrap}.project-counts{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-bottom:16px}.project-count-box{display:flex;flex-direction:column;gap:5px;padding:13px 14px;border:1px solid var(--line-soft);border-radius:var(--radius-md);background:var(--panel-2)}.project-count-box strong{color:var(--ink);font-size:24px;font-weight:650;font-variant-numeric:tabular-nums;line-height:1.1}.project-count-box span{color:var(--ink3);font-size:11px;font-weight:600;letter-spacing:.07em;text-transform:uppercase}.project-count-box.active-project{background:var(--green-tint);border-color:#83b72659}.project-count-box.active-project strong{color:var(--green-dark)}.data-list{display:flex;flex-direction:column}.data-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:10px 0;border-top:1px solid var(--line-soft)}.data-row-content{min-width:0;flex:1}.data-row-title{margin:0 0 1px;font-size:13.5px;font-weight:600;line-height:1.45}.data-row-title a:hover{color:var(--green-dark)}.data-row-detail{margin:0;color:var(--ink2);font-size:12px;line-height:1.5}.data-row-right{flex-shrink:0;color:var(--ink2);font-size:12.5px;font-weight:550;font-variant-numeric:tabular-nums;text-align:right}.data-row-right.danger{color:var(--red)}.project-progress{width:100%;height:6px;margin-top:9px;border-radius:99px;background:#eeeee8;overflow:hidden}.project-progress>div{height:100%;border-radius:99px;background:var(--green)}.alert-severity{display:inline-flex;align-items:center;gap:5px;padding:3px 9px;border-radius:99px;font-size:11px;font-weight:600;white-space:nowrap}.alert-severity.warning{background:var(--amber-bg);color:var(--amber)}.alert-severity.critical{background:var(--red-bg);color:var(--red)}.alert-severity.info{background:var(--green-tint);color:var(--green-dark)}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:168px;padding:20px 16px;text-align:center}.empty-state-icon{display:flex;align-items:center;justify-content:center;width:46px;height:46px;margin-bottom:14px;border-radius:var(--radius-md);background:var(--panel-3);color:var(--green-dark)}.empty-state h3{margin:0 0 7px;color:var(--ink);font-size:13.5px;font-weight:650}.empty-state p{max-width:320px;margin:0;color:var(--ink2);font-size:12.5px;line-height:1.65}.empty-state-compact{min-height:140px}.placeholder-page{display:flex;align-items:center;justify-content:center;min-height:440px}.auth-screen{display:flex;align-items:center;justify-content:center;min-height:100vh;min-height:100dvh;padding:24px}.auth-layout{display:flex;flex-direction:column;width:min(100%,460px);overflow:hidden;border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-card)}.auth-intro{display:flex;flex-direction:column;padding:34px 36px 4px;color:var(--ink)}.auth-logo{display:flex;align-items:center;gap:12px}.auth-intro-content h2{margin:22px 0 10px;font-size:26px;font-weight:700;line-height:1.25;letter-spacing:-.02em}.auth-intro-content h2 span{color:var(--green-dark)}.auth-intro-content>p:last-child{max-width:340px;margin:0;color:var(--ink2);font-size:13.5px;line-height:1.7}.auth-intro-footer{display:flex;align-items:center;gap:9px;margin-top:18px;color:var(--ink2);font-size:12px}.auth-intro-footer svg{color:var(--green-dark);flex-shrink:0}.login-card{display:flex;align-items:flex-start;justify-content:center;padding:18px 36px 34px}.login-content{width:100%}.login-security-icon{display:flex;align-items:center;justify-content:center;width:46px;height:46px;margin-bottom:20px;border-radius:var(--radius-md);background:var(--green-tint);color:var(--green-dark)}.login-content h1{margin:0 0 6px;font-size:24px;font-weight:700;letter-spacing:-.02em}.login-content>.muted{margin-bottom:24px;font-size:13.5px}.login-form{display:flex;flex-direction:column}.login-form label{margin:0 0 7px;font-size:12px;font-weight:600;color:var(--ink2)}.login-form input{width:100%;min-height:46px;margin-bottom:18px;padding:11px 13px;border:1px solid var(--line);border-radius:var(--radius-sm);outline:none;background:var(--surface);color:var(--ink);font-size:13.5px}.login-form input::placeholder{color:var(--ink3)}.login-form input:focus{border-color:var(--green);box-shadow:0 0 0 3px #83b7262e}.login-submit{display:flex;justify-content:space-between;width:100%;margin-top:3px}.login-footnote{margin:22px 0 0;color:var(--ink3);font-size:11.5px;text-align:center;line-height:1.6}.notice,.error{margin-bottom:20px;padding:12px 14px;border:1px solid var(--line);border-radius:var(--radius-md);font-size:12.5px;line-height:1.6}.notice{color:var(--amber);background:var(--amber-bg);border-color:#b97f1466}.error{color:var(--red);background:var(--red-bg);border-color:#c93a3259}.loading-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:15px;min-height:100vh;min-height:100dvh;color:var(--ink2);font-size:13px}.loading-screen .brand-mark{width:60px;height:60px;font-size:16px}.brand-mark{display:flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:var(--radius-md);background:var(--green-tint);color:var(--green-dark);font-size:13px;font-weight:700}@media(max-width:1180px){.dash-kpis{grid-template-columns:repeat(3,minmax(0,1fr))!important}.page-content{padding:24px}.topbar{padding:6px 24px}}@media(max-width:960px){.dash-cols,.dashboard-grid{grid-template-columns:1fr}}@media(max-width:820px){.dash-kpis{grid-template-columns:repeat(2,minmax(0,1fr))!important}}@media(max-width:760px){.sidebar,.sidebar-collapsed .sidebar{width:min(290px,85vw);transform:translate(-100%);padding-top:max(20px,env(safe-area-inset-top))}.sidebar.sidebar-open{transform:translate(0);box-shadow:var(--shadow-floating)}.sidebar-collapsed .brand{justify-content:flex-start;padding:0 10px 18px}.sidebar-collapsed .brand-text,.sidebar-collapsed .nav-item span,.sidebar-collapsed .collapse-button span,.sidebar-collapsed .rail-foot,.sidebar-collapsed .side-user-text{display:flex}.sidebar-collapsed .rail-foot{display:block}.sidebar-collapsed .brand-text,.sidebar-collapsed .side-user-text{display:flex;flex-direction:column}.sidebar-collapsed .nav-item,.sidebar-collapsed .collapse-button{justify-content:flex-start;padding:8px 10px}.sidebar-collapsed .side-user{justify-content:flex-start;padding:2px 10px 10px}.sidebar-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:35;display:block;border:0;background:#17191d73}.main-area,.sidebar-collapsed .main-area{margin-left:0}.mobile-menu,.close-mobile{display:inline-flex}.close-mobile{margin-left:auto}.topbar{min-height:56px;padding:max(6px,env(safe-area-inset-top)) 16px 6px}.topbar-actions{gap:8px}.page-content{padding:22px 16px 32px}.page-header{flex-direction:column;align-items:flex-start;gap:13px}.page-header h1{font-size:21px}.kpi-tile{padding:13px 14px}.kpi-value{font-size:24px}.section-card{padding:15px 14px 8px}.dash-cols{gap:18px}.app-footer{padding:18px 16px max(18px,env(safe-area-inset-bottom))}.auth-screen{padding:16px}.auth-intro{padding:26px 24px 2px}.auth-intro-content h2{font-size:23px;margin-top:18px}.login-card{padding:14px 24px 28px}.login-security-icon{margin-bottom:16px}}@media(max-width:390px){.kpi-tile{padding:12px}.kpi-value{font-size:22px}.project-count-box{padding:11px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}.brand-mark-img{height:28px;width:auto;object-fit:contain;flex-shrink:0;display:block}.auth-logo-img{display:block;height:56px;width:auto;max-width:100%}
