html, body { max-width: 100%; overflow-x: hidden; }
.grid > *, .card { min-width: 0; }
.session-area { display:flex; align-items:center; gap:10px; margin-left:auto; }
.session-copy { display:flex; flex-direction:column; text-align:right; line-height:1.25; }
.session-copy span { color:#6d7890; font-size:12px; }
.login-page { min-height:100vh; display:grid; place-items:center; padding:24px; background:radial-gradient(circle at 20% 0%, #173d70 0, #08172f 42%, #051020 100%); }
.login-card { width:min(460px,100%); background:#fff; border-radius:22px; padding:38px; box-shadow:0 30px 90px rgba(0,0,0,.35); }
.login-card h1 { margin:8px 0; font-size:25px; }
.login-brand { display:flex; align-items:center; gap:12px; margin-bottom:28px; }
.login-brand > div:last-child { display:flex; flex-direction:column; }
.login-brand span { font-size:12px; color:#6d7890; }
.stack-form { display:grid; gap:16px; margin-top:24px; }
.stack-form label { display:grid; gap:7px; font-size:13px; font-weight:700; }
.stack-form input, .stack-form select, .stack-form textarea { width:100%; }
.wide { width:100%; justify-content:center; }
.form-error { min-height:20px; margin:0; color:#bd3442; font-size:13px; }
.loading-cover { position:fixed; inset:0; z-index:2000; display:grid; place-content:center; justify-items:center; gap:14px; background:rgba(5,16,32,.52); color:#fff; backdrop-filter:blur(2px); }
.spinner { width:38px; height:38px; border:4px solid rgba(255,255,255,.3); border-top-color:#fff; border-radius:50%; animation:spin .8s linear infinite; }
@keyframes spin { to { transform:rotate(360deg); } }
.page-actions { display:flex; gap:8px; flex-wrap:wrap; }
.metric-value { font-size:30px; font-weight:800; letter-spacing:-.03em; }
.metric-caption { color:#6d7890; font-size:12px; margin-top:5px; }
.empty-state { padding:34px; text-align:center; color:#6d7890; }
.table-scroll { overflow:auto; }
.table-scroll table { min-width:760px; }
.inline-actions { display:flex; gap:6px; flex-wrap:wrap; }
.status-pill { display:inline-flex; align-items:center; padding:4px 9px; border-radius:999px; font-size:12px; font-weight:700; background:#edf1f7; color:#33445e; }
.status-pill.good { background:#e7f6ee; color:#167048; }
.status-pill.warn { background:#fff4d9; color:#8a5a00; }
.status-pill.bad { background:#fdebed; color:#a32638; }
.kanban.operational { grid-template-columns:repeat(4,minmax(220px,1fr)); overflow:auto; }
.kanban-card { cursor:pointer; }
.modal-note { padding:12px 14px; border-radius:10px; background:#edf4ff; color:#31577e; font-size:13px; line-height:1.6; }
.certificate-sheet { background:#fff; color:#152338; border:1px solid #dce3ed; padding:30px; border-radius:14px; }
.certificate-sheet h2 { text-align:center; font-size:26px; margin:4px 0 24px; }
.certificate-grid { display:grid; grid-template-columns:150px 1fr; border-top:1px solid #dce3ed; }
.certificate-grid dt,.certificate-grid dd { margin:0; padding:10px 8px; border-bottom:1px solid #dce3ed; }
.certificate-grid dt { color:#6d7890; font-weight:700; }
.checkbox-list { display:grid; gap:8px; max-height:260px; overflow:auto; padding:10px; border:1px solid #dce3ed; border-radius:10px; }
.checkbox-list label { display:flex; gap:8px; align-items:flex-start; font-weight:500; }
.checkbox-list input { width:auto; margin-top:3px; }
.permission-chips { display:flex; gap:6px; flex-wrap:wrap; }
.permission-chips span { background:#edf1f7; padding:4px 8px; border-radius:999px; font-size:11px; }
body.drawer-open { overflow:hidden; }
@media (max-width:1100px){ .grid.two,.grid.three,.grid.four{grid-template-columns:minmax(0,1fr)} .session-copy{display:none} }
@media (max-width:720px){ .session-area .button{font-size:0;padding:9px}.session-area .button::first-letter{font-size:13px}.login-card{padding:26px}.drawer{width:100%}.page-actions{width:100%}.page-actions .button{flex:1}.certificate-grid{grid-template-columns:1fr}.certificate-grid dt{border-bottom:0;padding-bottom:0} }


[hidden] { display: none !important; }

.filter-row { display:flex; align-items:flex-end; gap:12px; flex-wrap:wrap; }
.filter-row .field { min-width:170px; }
.filter-row .field.grow { flex:1 1 360px; }
@media (max-width:720px) { .filter-row { display:grid; grid-template-columns:1fr; } .filter-row .field { min-width:0; } }

.master-filter-bar{margin-bottom:18px}.master-filter-bar .card-body{display:flex;align-items:end;gap:16px;flex-wrap:wrap}.master-filter-bar label{display:grid;gap:7px;min-width:min(420px,100%)}.master-type-badge{display:inline-flex;align-items:center;border-radius:999px;padding:5px 10px;font-size:12px;font-weight:700;border:1px solid transparent}.type-plans,.type-plan-versions{background:#e8f1ff;color:#1357a6}.type-terms,.type-periods{background:#e7f7f3;color:#176e60}.type-limit-amounts,.type-limit-counts{background:#fff0e5;color:#99501c}.type-fees,.type-tax-rates{background:#f5edff;color:#6d3e9c}.type-categories{background:#eef7df;color:#55721d}.type-policies{background:#ffecef;color:#9a3948}.master-panel{border-top:4px solid #7c91ae;border-radius:14px;overflow:hidden}.type-border-plans,.type-border-plan-versions{border-color:#3a82d6}.type-border-terms,.type-border-periods{border-color:#35a28d}.type-border-limit-amounts,.type-border-limit-counts{border-color:#e68b44}.type-border-fees,.type-border-tax-rates{border-color:#9767be}.type-border-categories{border-color:#7fa33a}.type-border-policies{border-color:#d46b7c}.category-parent-row td{background:#f3f7eb}.category-child-name{padding-left:28px!important}.eligibility-chips{display:flex;gap:5px;flex-wrap:wrap}.eligibility-chips span{border-radius:999px;padding:3px 7px;font-size:11px;font-weight:700}.eligible-home{background:#e8f1ff;color:#1357a6}.eligible-data{background:#e7f7f3;color:#176e60}.eligible-combined{background:#f5edff;color:#6d3e9c}.not-eligible{background:#edf0f3;color:#667085}.field-help{display:block;color:#667085;line-height:1.5;margin-top:6px}.tier-row{display:grid;grid-template-columns:90px auto 110px auto auto;align-items:center;gap:8px;margin:8px 0}.fee-tier-row{grid-template-columns:120px auto 140px auto 120px auto auto}.hierarchical-checks>div{padding:8px;border-bottom:1px solid #e8edf3}.hierarchical-checks strong{display:block;margin-bottom:6px}@media(max-width:700px){.tier-row,.fee-tier-row{grid-template-columns:1fr auto}}

.partner-summary{display:grid;grid-template-columns:repeat(6,minmax(110px,1fr));gap:10px;margin-bottom:18px}.partner-summary-item{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 14px;border-radius:12px;border-left:4px solid #8090a6;background:#fff;box-shadow:0 4px 14px rgba(25,42,70,.06)}.partner-summary-item span{font-size:12px;font-weight:700}.partner-summary-item strong{font-size:20px}.partner-filter-card{margin-bottom:12px}.partner-filter-card .card-body{display:flex;align-items:end;gap:18px;flex-wrap:wrap}.partner-filter-card h2{margin:3px 0 0}.partner-filter-card label{display:grid;gap:6px;min-width:min(360px,100%);margin-left:auto}.partner-count{font-weight:700;color:#5d6b80;padding-bottom:10px}.partner-type-badge{display:inline-flex;border-radius:999px;padding:4px 9px;font-size:11px;font-weight:800;background:#edf1f6;color:#445267}.org-retailer{border-color:#3182ce!important;background:#e8f2ff!important;color:#175a9c!important}.org-agent{border-color:#7b61b7!important;background:#f2edff!important;color:#65449b!important}.org-dds{border-color:#087f72!important;background:#e5f7f3!important;color:#086a60!important}.org-provider{border-color:#bf7a24!important;background:#fff3df!important;color:#965c16!important}.org-insurer{border-color:#cf5b73!important;background:#ffecef!important;color:#9a394d!important}.org-repair_vendor{border-color:#607080!important;background:#edf1f4!important;color:#44515e!important}.rel-outsourcing,.rel-sales_delegation{background:#e8f2ff;color:#175a9c}.rel-joint_operation{background:#f2edff;color:#65449b}.rel-introduction{background:#e5f7f3;color:#086a60}.rel-billing,.rel-fee_payment{background:#fff3df;color:#965c16}.rel-repair_assignment{background:#edf1f4;color:#44515e}.rel-insurance{background:#ffecef;color:#9a394d}.relationship-arrow{display:inline-block;margin:0 10px;color:#7d8ba0}.partner-section-gap{height:26px}@media(max-width:1100px){.partner-summary{grid-template-columns:repeat(3,minmax(110px,1fr))}}@media(max-width:650px){.partner-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.partner-filter-card label{margin-left:0;width:100%}}

.partner-filter-controls{display:flex;align-items:end;gap:8px;flex-wrap:wrap;margin-left:auto}.partner-filter-controls label{min-width:150px!important;margin-left:0!important}.partner-filter-controls input,.partner-filter-controls select{min-width:150px}.unit-list-compact{display:grid;gap:4px}.unit-list-compact span{white-space:nowrap}.muted-unit{color:#8a94a4;text-decoration:line-through}.unit-management{margin-top:8px}.section-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px}.section-heading h3,.section-heading p{margin:0}.section-heading p{font-size:12px;color:#6d7890}.unit-management-list{display:grid;gap:9px}.unit-management-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px;border:1px solid #dce4ef;border-radius:11px;background:#fff}.unit-management-row>div{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.unit-management-row>div:first-child{display:grid;gap:3px}.unit-management-row small{color:#6d7890}.unit-management-row.inactive{background:#f5f6f8;color:#7b8492}@media(max-width:850px){.partner-filter-controls{margin-left:0;width:100%}.partner-filter-controls label{width:100%}.unit-management-row{align-items:flex-start;flex-direction:column}}

.grid.four { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.metric-card { padding: 20px; }
.summary-band { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; padding:16px; border-radius:12px; background:#eef5ff; }
.summary-band div { display:grid; gap:3px; }
.summary-band span { color:#6d7890; font-size:11px; }
.summary-band strong { font-size:15px; }
.detail-list { margin:16px 0; }
.detail-list div { display:grid; grid-template-columns:130px 1fr; gap:10px; padding:10px 0; border-bottom:1px solid #e1e7ef; }
.detail-list dt { color:#6d7890; font-weight:700; }
.detail-list dd { margin:0; }
.role-context { gap:10px; flex-wrap:wrap; }
.role-context span { color:#6d7890; font-size:12px; }
.kanban-card h4 { margin:7px 0 2px; }
.kanban-card small { display:block; margin-top:8px; color:#6d7890; }
@media (max-width:1100px){.grid.four{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:720px){.grid.four,.summary-band{grid-template-columns:1fr}.detail-list div{grid-template-columns:1fr;gap:3px}}
