*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg-primary: #ffffff;--bg-secondary: #f7f7f6;--bg-tertiary: #f0efec;--border: rgba(0,0,0,.1);--border-strong: rgba(0,0,0,.2);--text-primary: #1a1a1a;--text-secondary: #6b6b68;--text-tertiary: #9b9b97;--accent: #8B1A1A;--accent-dark: #6B1313;--accent-light: #f8eaea;--accent-text: #8B1A1A;--success-bg: #eaf3de;--success-text: #3b6d11;--warning-bg: #faeeda;--warning-text: #854f0b;--danger-bg: #fcebeb;--danger-text: #a32d2d;--info-bg: #e6f1fb;--info-text: #185fa5;--gop-orange: #ea580c;--color-planned-dot: #FAC775;--color-planned-border: #854F0B;--color-planned-text: #633806;--color-actuals-dot: #1D9E75;--color-actuals-text: #0F6E56;--color-internal-bg: #FFF8E7;--color-dirty-bg: #fff3cd;--color-error-bg: #F5E8E8;--color-error-border: #DDB8B8;--color-amber: #E07010;--color-amber-bg: #FEF0E0;--color-btn-disabled: #9b9b97;--sidebar-width: 196px;--header-height: 57px;--radius-sm: 6px;--radius-md: 8px;--radius-lg: 12px;font-size:14px}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:var(--bg-tertiary);color:var(--text-primary);line-height:1.5;height:100vh;overflow:hidden}#root{height:100vh;display:flex}.app-shell{display:flex;height:100vh;width:100%;overflow:hidden}.sidebar{width:var(--sidebar-width);min-width:var(--sidebar-width);background:var(--bg-secondary);border-right:.5px solid var(--border);display:flex;flex-direction:column;overflow-y:auto;overflow-x:hidden}.sidebar-logo{padding:16px 14px 14px;border-bottom:.5px solid var(--border);flex-shrink:0}.sidebar-logo h1{font-size:14px;font-weight:600;letter-spacing:.3px}.sidebar-logo p{font-size:11px;color:var(--text-tertiary);margin-top:2px}.sidebar-section{padding:8px 0}.sidebar-section-label{font-size:10px;font-weight:600;color:var(--text-tertiary);letter-spacing:.4px;padding:4px 14px 2px;text-transform:uppercase}.sidebar-item{display:flex;align-items:center;gap:8px;padding:6px 14px;margin:1px 6px;border-radius:var(--radius-sm);font-size:13px;color:var(--text-secondary);cursor:pointer;text-decoration:none;transition:background .1s;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-item:hover{background:var(--bg-tertiary);color:var(--text-primary)}.sidebar-item.active{background:var(--accent-light);color:var(--accent-text);font-weight:500}.sidebar-sub{padding:4px 14px 4px 28px;margin:1px 6px;border-radius:var(--radius-sm);font-size:12px;color:var(--text-tertiary);cursor:pointer;text-decoration:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:background .1s}.sidebar-sub:hover{background:var(--bg-tertiary);color:var(--text-secondary)}.sidebar-sub.active{color:var(--accent-text);font-weight:500}.sidebar-sub-sub{padding:3px 14px 3px 40px;margin:1px 6px;border-radius:var(--radius-sm);font-size:11px;color:var(--text-tertiary);cursor:pointer;text-decoration:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:background .1s}.sidebar-sub-sub:hover{background:var(--bg-tertiary)}.sidebar-sub-sub.active{color:var(--accent-text)}.sidebar-footer{margin-top:auto;border-top:.5px solid var(--border);padding:8px 0}.main-content{flex:1;display:flex;flex-direction:column;overflow:hidden}.page-header{padding:14px 20px;border-bottom:.5px solid var(--border);background:var(--bg-primary);display:flex;align-items:center;justify-content:space-between;flex-shrink:0;min-height:var(--header-height)}.breadcrumb{font-size:11px;color:var(--text-tertiary);margin-bottom:2px}.page-title{font-size:17px;font-weight:500}.page-subtitle{font-size:12px;color:var(--text-tertiary);margin-top:1px}.page-header-actions{display:flex;gap:8px;align-items:center;flex-shrink:0}.page-body{flex:1;overflow-y:auto;padding:20px}.page-body-flush{flex:1;overflow:hidden;display:flex;flex-direction:column}.toolbar{padding:8px 20px;border-bottom:.5px solid var(--border);background:var(--bg-primary);display:flex;align-items:center;gap:8px;flex-shrink:0}.btn{padding:6px 14px;border-radius:var(--radius-sm);font-size:12px;font-weight:500;cursor:pointer;border:.5px solid var(--border-strong);background:var(--bg-primary);color:var(--text-secondary);transition:background .1s;white-space:nowrap}.btn:hover{background:var(--bg-secondary)}.btn-primary{background:var(--text-primary);color:#fff;border-color:var(--text-primary)}.btn-primary:hover{background:#333}.btn-primary:disabled{background:var(--color-btn-disabled);border-color:var(--color-btn-disabled);cursor:not-allowed}.btn-sm{padding:4px 10px;font-size:11px}.btn-ghost{border-color:transparent;background:transparent}.btn-ghost:hover{background:var(--bg-secondary)}.toggle-wrap{display:flex;align-items:center;gap:8px}.toggle-label{font-size:11px;color:var(--text-secondary)}.toggle{width:32px;height:16px;border-radius:8px;background:var(--border-strong);position:relative;cursor:pointer;transition:background .2s;flex-shrink:0}.toggle.on{background:var(--color-actuals-dot)}.toggle-knob{width:12px;height:12px;border-radius:50%;background:#fff;position:absolute;top:2px;left:2px;transition:transform .2s;box-shadow:0 0 0 .5px #00000026}.toggle.on .toggle-knob{transform:translate(16px)}input[type=text],input[type=number],input[type=date],select,textarea{font-family:inherit;font-size:12px;border:.5px solid var(--border-strong);border-radius:var(--radius-sm);padding:5px 10px;background:var(--bg-primary);color:var(--text-primary);outline:none}input:focus,select:focus,textarea:focus{border-color:var(--accent-text);box-shadow:0 0 0 2px #8b1a1a1a}.stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:16px}.stat-card{background:var(--bg-secondary);border-radius:var(--radius-md);padding:14px;border-left:4px solid transparent;transition:border-color .2s,background .2s}.stat-card-label{font-size:11px;color:var(--text-tertiary);margin-bottom:4px}.stat-card-value{font-size:22px;font-weight:500;color:var(--text-primary)}.card{background:var(--bg-primary);border:.5px solid var(--border);border-radius:var(--radius-lg);overflow:hidden}.card-header{padding:12px 16px;border-bottom:.5px solid var(--border);font-size:13px;font-weight:500;display:flex;justify-content:space-between;align-items:center}.grid-table{width:100%;border-collapse:collapse;font-size:12px}.grid-table th{text-align:left;padding:7px 10px;font-size:10px;font-weight:600;color:var(--text-tertiary);background:var(--bg-secondary);border-bottom:.5px solid var(--border);white-space:nowrap;text-transform:uppercase;letter-spacing:.3px}.grid-table td{padding:7px 10px;border-bottom:.5px solid var(--border);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:200px}.grid-table tr:hover td{background:var(--bg-secondary)}.grid-table tr:last-child td{border-bottom:none}.grid-table td.editable{cursor:default}.grid-table td.editable:focus{outline:none}.grid-table td.editable:focus-visible{outline:none;box-shadow:inset 0 0 0 1.5px #2563eb}.grid-group-header td{padding:5px 10px;font-size:10px;font-weight:600;color:var(--text-tertiary);background:var(--bg-tertiary);letter-spacing:.4px;text-transform:uppercase}.grid-footer{padding:8px 16px;background:var(--bg-secondary);border-top:.5px solid var(--border);font-size:11px;color:var(--text-secondary);display:flex;justify-content:space-between;align-items:center}.badge{display:inline-block;padding:2px 8px;border-radius:var(--radius-sm);font-size:10px;font-weight:500;white-space:nowrap}.badge-success{background:var(--success-bg);color:var(--success-text)}.badge-warning{background:var(--warning-bg);color:var(--warning-text)}.badge-danger{background:var(--danger-bg);color:var(--danger-text)}.badge-info{background:var(--info-bg);color:var(--info-text)}.badge-neutral{background:var(--bg-tertiary);color:var(--text-secondary)}.list-row{display:flex;justify-content:space-between;align-items:center;padding:8px 0;border-bottom:.5px solid var(--border);cursor:pointer}.list-row:last-child{border-bottom:none}.list-row:hover{background:transparent}.list-row-title{font-size:13px;font-weight:500}.list-row-sub{font-size:11px;color:var(--text-tertiary);margin-top:1px}.list-row-right{display:flex;align-items:center;gap:10px;text-align:right}.list-row-meta{font-size:11px;color:var(--text-tertiary)}.client-row{display:flex;justify-content:space-between;align-items:center;padding:9px 12px;border:.5px solid var(--border);border-radius:var(--radius-md);cursor:pointer;margin-bottom:4px;background:var(--bg-primary);transition:border-color .1s}.client-row:hover{border-color:var(--border-strong)}.client-row-name{font-size:13px;font-weight:500}.client-row-meta{font-size:11px;color:var(--text-tertiary);margin-top:1px}.detail-layout{display:flex;gap:12px;max-width:1800px;align-items:flex-start}.detail-panel{background:var(--bg-primary);border:.5px solid var(--border);border-radius:var(--radius-md)}.detail-panel--main{flex:1;min-width:0;max-width:1200px;overflow:hidden}.detail-panel--alerts{flex:0 0 280px;padding:12px 14px}.detail-panel--info{flex:0 0 300px;padding:12px 14px}.detail-panel-title{font-size:10px;font-weight:600;color:var(--text-tertiary);letter-spacing:.4px;text-transform:uppercase;margin-bottom:10px}.detail-panel-title--danger{color:var(--danger-text)}.detail-panel--info .stat-card{padding:10px 12px}.detail-panel--info .stat-card-value{font-size:18px}.detail-panel--info .stat-card-label{font-size:10px}.attention-row{font-size:11px;padding:7px 9px;background:var(--danger-bg);color:var(--danger-text);border-radius:var(--radius-md);cursor:pointer;line-height:1.35;transition:background .1s}.attention-row:hover{background:#f6d6d6}.detail-divider{width:.5px;background:var(--border-strong);align-self:stretch;flex-shrink:0}.agency-label{font-size:10px;font-weight:600;color:var(--text-tertiary);letter-spacing:.4px;text-transform:uppercase;margin:14px 0 6px}.agency-label:first-child{margin-top:0}.search-input{width:200px;height:28px;font-size:12px}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;color:var(--text-tertiary);text-align:center}.empty-state p{font-size:13px;margin-top:8px}.table-scroll{flex:1;overflow:auto}.po-number{color:var(--accent-text);font-weight:500;font-family:monospace;font-size:12px}.value-positive{color:var(--success-text)}.value-negative{color:var(--danger-text)}.divider{height:.5px;background:var(--border);margin:8px 0}.loading{display:flex;align-items:center;justify-content:center;padding:40px;color:var(--text-tertiary);font-size:13px}
