*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}@keyframes saving-pulse{0%,to{opacity:.4;transform:scale(1)}50%{opacity:1;transform:scale(1.1)}}@keyframes saved-pop{0%{opacity:0;transform:scale(.5)}50%{opacity:1;transform:scale(1.2)}to{opacity:1;transform:scale(1)}}@keyframes border-glow{0%,to{box-shadow:0 0 0 2px #22c55e26,var(--shadow)}50%{box-shadow:0 0 0 2px #22c55e40,var(--shadow-lg)}}:root{--navy: #021A32;--blue: #035797;--mblue: #0195D3;--lblue: #A4D7F4;--orange: #F8971D;--dorange: #DF7D1C;--lgray: #9A9B9C;--dgray: #4D4F53;--offwhite: #F4F7FB;--white: #ffffff;--row-a: #F0F5FA;--row-b: #FFFFFF;--border: #DDE6F0;--shadow: 0 2px 12px rgba(2,26,50,.08);--shadow-lg: 0 8px 32px rgba(2,26,50,.14)}html{font-size:14px}body{font-family:DM Sans,sans-serif;background:var(--offwhite);color:var(--dgray);min-height:100vh}header{background:var(--navy);padding:0 32px;position:sticky;top:0;z-index:100;box-shadow:0 2px 16px #021a3266}.header-inner{max-width:1400px;margin:0 auto;display:flex;align-items:center;gap:20px;height:64px}.logo{width:38px;height:38px;background:var(--orange);border-radius:6px;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:18px;color:#fff;flex-shrink:0;letter-spacing:-1px}.header-text h1{font-size:15px;font-weight:700;color:#fff;letter-spacing:.01em}.header-text p{font-size:11px;color:var(--lblue);margin-top:1px;font-weight:400}.header-badge{margin-left:auto;background:var(--orange);color:#fff;font-size:10px;font-weight:700;padding:4px 12px;border-radius:20px;text-transform:uppercase;letter-spacing:.06em}.header-user-row{display:flex;align-items:center;flex-shrink:0}.header-user-name{font-size:11px;color:var(--lblue);max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tabbar{background:var(--blue);border-bottom:3px solid var(--orange);padding:0 32px}.tabbar-inner{max-width:1400px;margin:0 auto;display:flex}.tab-btn{padding:11px 20px;font-family:DM Sans,sans-serif;font-size:12px;font-weight:600;color:#fff9;background:transparent;border:none;border-bottom:3px solid transparent;margin-bottom:-3px;cursor:pointer;transition:color .15s,border-color .15s;letter-spacing:.02em;white-space:nowrap}.tab-btn:hover{color:#ffffffe6}.tab-btn.active{color:#fff;border-bottom-color:var(--orange)}.stats-strip{background:var(--navy);padding:0 32px}.stats-inner{max-width:1400px;margin:0 auto;display:flex;gap:0}.stat-item{padding:14px 28px;border-right:1px solid rgba(255,255,255,.07);flex:1;min-width:120px}.stat-item .num{font-family:DM Mono,monospace;font-size:26px;font-weight:500;color:var(--orange);display:block;line-height:1}.stat-item .lbl{font-size:10px;color:var(--lblue);margin-top:4px;text-transform:uppercase;letter-spacing:.06em}main{max-width:1400px;margin:0 auto;padding:28px 32px 60px}.intro{background:#fff;border-left:4px solid var(--orange);padding:14px 20px;border-radius:0 6px 6px 0;margin-bottom:22px;box-shadow:var(--shadow)}.intro h2{font-size:13px;font-weight:700;color:var(--navy);margin-bottom:5px}.intro p{font-size:12px;line-height:1.65;color:var(--dgray)}.filter-row{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:20px}.filter-lbl{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--lgray)}.fpill{padding:5px 14px;font-family:DM Sans,sans-serif;font-size:11px;font-weight:600;border:2px solid var(--blue);border-radius:20px;background:#fff;color:var(--blue);cursor:pointer;transition:background .12s,color .12s}.fpill:hover,.fpill.active{background:var(--blue);color:#fff}.cards-grid{display:flex;flex-direction:column;gap:16px}.opco-card{background:#fff;border-radius:10px;box-shadow:var(--shadow);overflow:hidden;border:1px solid var(--border);transition:box-shadow .2s}.opco-card:hover{box-shadow:var(--shadow-lg)}.card-hdr{background:var(--navy);padding:14px 20px;display:flex;align-items:center;gap:14px;cursor:pointer;-webkit-user-select:none;user-select:none}.card-hdr:hover{background:#032d52}.opco-avatar{width:40px;height:40px;border-radius:8px;background:var(--orange);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:13px;color:#fff;flex-shrink:0;font-family:DM Mono,monospace}.card-hdr-info h3{font-size:14px;font-weight:700;color:#fff}.card-hdr-info p{font-size:11px;color:var(--lblue);margin-top:2px}.card-hdr-right{margin-left:auto;display:flex;align-items:center;gap:12px}.status-badge{font-size:10px;font-weight:700;padding:3px 10px;border-radius:20px;text-transform:uppercase;letter-spacing:.04em;white-space:nowrap}.s-pending{background:#ffffff1a;color:#ffffff80}.s-progress{background:#f8971d40;color:var(--orange)}.s-done{background:#0195d340;color:#5bc8f0}.chevron{color:#ffffff80;font-size:16px;transition:transform .2s;width:20px;text-align:center}.opco-card.open .chevron{transform:rotate(180deg)}.card-body{display:none;padding:0}.opco-card.open .card-body{display:block}.entry-table-wrap{overflow-x:auto}.entry-table{width:100%;border-collapse:collapse;min-width:900px}.entry-table th{background:var(--blue);color:#fff;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;padding:10px 14px;text-align:left;border-right:1px solid rgba(255,255,255,.1);white-space:nowrap}.entry-table th:last-child{border-right:none}.entry-table td{padding:6px 10px;border-bottom:1px solid var(--border);border-right:1px solid var(--border);vertical-align:middle}.entry-table td:last-child{border-right:none}.entry-table tr:last-child td{border-bottom:none}.entry-table .erow-1 td{background:var(--row-a)}.entry-table .erow-2 td{background:#fff}.entry-table .erow-3 td{background:var(--row-a)}.row-num{font-family:DM Mono,monospace;font-size:11px;font-weight:500;color:var(--lgray);text-align:center;width:36px;background:#eef3f8!important;border-right:2px solid var(--border)!important}.opco-level-section{padding:16px 20px;background:var(--offwhite);border-top:2px solid var(--border);display:grid;grid-template-columns:1fr 1fr 130px;gap:14px;align-items:start}.opco-level-section .readiness-wrap{display:flex;flex-direction:column;gap:6px}.field-lbl{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--lgray);margin-bottom:5px;display:flex;align-items:center;gap:5px}.dot{width:6px;height:6px;border-radius:50%;background:var(--orange);display:inline-block}.dot-b{background:var(--mblue)}.dot-n{background:var(--navy)}.opco-card.saving-active{animation:border-glow 2s ease-in-out infinite}.field-save-indicator{display:flex;align-items:center;justify-content:center;margin-left:auto}.saving-dot{width:6px;height:6px;background:var(--orange);border-radius:50%;animation:saving-pulse 1s ease-in-out infinite;position:relative}.saving-dot:after{content:"";position:absolute;top:-1px;left:-1px;width:6px;height:6px;border:1px solid var(--orange);border-radius:50%;opacity:.3;animation:saving-pulse 1s ease-in-out infinite .2s}.saved-check{color:#16a34a;font-size:8px;font-weight:700;animation:saved-pop .4s ease-out;background:#22c55e1a;border-radius:50%;width:12px;height:12px;display:flex;align-items:center;justify-content:center}.entry-table-container{position:relative}.entry-table-container.saving .entry-table{opacity:.95;transition:opacity .2s ease}.table-saving-indicator{position:absolute;top:10px;right:10px;background:#f8971df2;color:#fff;padding:4px 8px;border-radius:12px;font-size:11px;font-weight:500;display:flex;align-items:center;gap:6px;z-index:10;box-shadow:0 2px 8px #00000026}.table-saving-indicator .saving-dot{background:#fff;width:6px;height:6px}.table-saving-indicator .saving-dot:after{border-color:#fff;width:10px;height:10px;top:-2px;left:-2px}input[type=text].cell-input,textarea.cell-input{width:100%;border:1.5px solid transparent;border-radius:4px;padding:6px 8px;font-family:DM Sans,sans-serif;font-size:12px;color:var(--dgray);background:transparent;transition:border-color .15s,background .15s;resize:none}input[type=text].cell-input:focus,textarea.cell-input:focus{outline:none;border-color:var(--mblue);background:#fff;box-shadow:0 0 0 3px #0195d31a}textarea.cell-input{min-height:60px}.stars{display:flex;gap:4px}.star{font-size:22px;color:#dde3ec;cursor:pointer;transition:color .1s,transform .1s;line-height:1}.star:hover{transform:scale(1.15)}.star.on{color:var(--orange)}.star-label{font-size:11px;color:var(--lgray);margin-top:4px;font-family:DM Mono,monospace}.action-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:20px}.action-bar-title{flex:1;font-size:13px;font-weight:600;color:var(--dgray)}.btn-primary{background:var(--orange);color:#fff;border:none;padding:8px 18px;border-radius:6px;font-family:DM Sans,sans-serif;font-size:12px;font-weight:700;cursor:pointer;transition:background .15s}.btn-primary:hover{background:var(--dorange)}.btn-outline{background:#fff;color:var(--blue);border:2px solid var(--blue);padding:6px 16px;border-radius:6px;font-family:DM Sans,sans-serif;font-size:12px;font-weight:700;cursor:pointer;transition:background .15s,color .15s}.btn-outline:hover{background:var(--blue);color:#fff}.tbl-wrap{overflow-x:auto;border-radius:8px;box-shadow:var(--shadow);border:1px solid var(--border)}.matrix-tbl{width:100%;border-collapse:collapse;background:#fff;min-width:960px}.matrix-tbl th{background:var(--navy);color:#fff;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;padding:11px 14px;text-align:left;white-space:nowrap;border-right:1px solid rgba(255,255,255,.08)}.matrix-tbl th:last-child{border-right:none}.matrix-tbl td{padding:8px 14px;border-bottom:1px solid var(--border);border-right:1px solid var(--border);font-size:12px;vertical-align:middle}.matrix-tbl td:last-child{border-right:none}.matrix-tbl .opco-group-top td{border-top:2px solid var(--navy)}.matrix-tbl .opco-cell{font-weight:700;color:var(--navy);background:#ebf3fa!important;vertical-align:middle}.matrix-tbl .rep-cell{color:var(--dgray);font-size:11px;background:#ebf3fa!important;vertical-align:middle}.empty-cell{color:var(--lgray);font-style:italic;font-size:11px}.r-bar{display:flex;align-items:center;gap:8px}.r-track{flex:1;height:6px;background:#e8eef5;border-radius:3px;overflow:hidden;min-width:60px}.r-fill{height:100%;border-radius:3px}.r-num{font-family:DM Mono,monospace;font-size:11px;font-weight:500;color:var(--dgray);min-width:24px}.sum-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;margin-bottom:20px}.sum-card{background:#fff;border-radius:8px;box-shadow:var(--shadow);overflow:hidden;border:1px solid var(--border)}.sum-card-hdr{padding:9px 16px}.sum-card-hdr span{font-size:10px;font-weight:700;color:#fff;text-transform:uppercase;letter-spacing:.07em}.sum-card-body{padding:14px 16px;font-size:12px;line-height:1.7;color:var(--dgray)}.sum-big-num{font-family:DM Mono,monospace;font-size:40px;font-weight:500;color:var(--orange);display:block;line-height:1}.sum-sub{font-size:11px;color:var(--lgray);margin-top:4px}.toast{position:fixed;bottom:24px;right:24px;background:var(--navy);color:#fff;padding:11px 18px;border-radius:8px;font-size:12px;font-weight:600;box-shadow:0 8px 24px #021a3259;border-left:4px solid var(--orange);opacity:0;transition:opacity .25s;z-index:999;pointer-events:none}.toast.show{opacity:1}.add-row-bar{padding:8px 12px;border-top:1px dashed var(--border);background:#fafcff}.btn-add-row{display:inline-flex;align-items:center;gap:6px;padding:5px 14px;font-family:DM Sans,sans-serif;font-size:11px;font-weight:700;color:var(--blue);background:#fff;border:1.5px dashed var(--blue);border-radius:5px;cursor:pointer;transition:background .12s,color .12s,border-color .12s;letter-spacing:.02em}.btn-add-row:hover{background:var(--blue);color:#fff;border-style:solid}.btn-add-row .plus{font-size:15px;line-height:1;font-weight:400}.btn-remove-row{background:none;border:none;color:#c8d4e0;font-size:16px;line-height:1;cursor:pointer;padding:0 2px;transition:color .12s;vertical-align:middle}.btn-remove-row:hover{color:#e05555}.entry-table tr.erow-added td{background:#f7fbff}.entry-table tr.erow-added:hover td{background:#eef5fc}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#c5d5e8;border-radius:3px}@media(max-width:768px){main{padding:16px}header,.tabbar,.stats-strip{padding-left:16px;padding-right:16px}.stat-item{padding:12px 16px}.opco-level-section{grid-template-columns:1fr}}
