@charset "UTF-8";:root{--coral: #e8554e;--coral-d: #c43c36;--coral-bg: #fdf2f1;--coral-lt: #fdecea;--teal: #16a79b;--teal-d: #0d8078;--teal-bg: #f0faf9;--teal-lt: #e3f6f4;--ink: #0e0e10;--ink2: #1a1b1e;--ink3: #26282d;--ink4: #3c3f46;--gray: #6b7178;--gray2: #8a9098;--gray3: #c3c8ce;--gray4: #e4e7ea;--gray5: #f0f2f4;--bg: #f5f6f8;--bg2: #fff;--bg3: #f0f1f3;--white: #fff;--text2: var(--gray2);--ok: #17a55a;--ok-bg: #edfaf3;--warn: #d97706;--warn-bg: #fffbeb;--err: #dc2626;--err-bg: #fef2f2;--info: #2563eb;--purple: #7c3aed;--purple-bg: #f5f3ff;--border: var(--gray4);--muted: var(--gray2);--r: 10px;--r2: 14px;--sw: 230px;--sw-mini: 60px;--th: 54px;--font: "Plus Jakarta Sans", system-ui, sans-serif;--sh: 0 1px 3px rgba(0, 0, 0, .05), 0 4px 12px rgba(0, 0, 0, .06);--sh2: 0 8px 28px rgba(0, 0, 0, .13)}.page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:16px}.page-head h1,.page-head h2{font-size:20px;font-weight:800;margin:0}.page-head p{font-size:13px;color:var(--gray2);margin-top:6px;max-width:640px}.head-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.loading{padding:40px;text-align:center;color:var(--gray);font-weight:600}.empty{text-align:center;color:var(--gray2);padding:28px!important}.muted{color:var(--gray2);font-size:12px}.hint{font-size:12px;color:var(--gray2);margin-bottom:12px}.mono{font-family:ui-monospace,monospace;font-weight:700}.bold{font-weight:700}.warn-text{color:var(--warn);font-weight:700}.err{color:var(--err)}.stats,.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;margin-bottom:16px}.stat-card{background:#fff;border-radius:var(--r2);box-shadow:var(--sh);padding:16px;display:flex;flex-direction:column;gap:6px}.stat-card span{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--gray2)}.stat-card strong{font-size:20px;font-weight:800;letter-spacing:-.02em}.stat-card.ok strong{color:var(--ok)}.highlight strong{color:var(--teal);font-size:28px}.highlight small{font-size:11px;color:var(--gray2)}.panel{background:#fff;border-radius:var(--r2);box-shadow:var(--sh);overflow:hidden;margin-bottom:16px}.section{padding:20px}.section h3,.section h4{font-size:14px;font-weight:800;margin:0 0 12px}.section-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.section-head h3{margin-bottom:0}.table-wrap{background:#fff;border-radius:var(--r2);box-shadow:var(--sh);overflow:auto;margin-bottom:16px}.footer{padding:12px 16px;font-size:12px;color:var(--gray2);border-top:1px solid var(--gray5)}table{width:100%;border-collapse:collapse;font-size:13px}th,td{padding:12px 14px;text-align:left;border-bottom:1px solid var(--gray5);vertical-align:top}th{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--gray2);background:#fafbfc}tr.clickable{cursor:pointer}tr.clickable:hover{background:var(--teal-bg)}tr.clickable:focus-visible{outline:2px solid var(--teal);outline-offset:-2px;background:var(--teal-bg)}.filters{margin-bottom:16px}.tabs{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}.tab{border:1.5px solid var(--gray4);background:#fff;border-radius:999px;padding:6px 12px;font-size:12px;font-weight:700;cursor:pointer;color:var(--gray2)}.tab.on,.tab.active{background:var(--teal);border-color:var(--teal);color:#fff}.filter-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:12px}.filter-row input,.filter-row select,.filter-row textarea{padding:8px 12px;border:1.5px solid var(--gray4);border-radius:8px;font-size:13px;font-family:var(--font)}.filter-row input[type=search]{min-width:220px}.search-row{display:flex;gap:8px;margin-bottom:12px;flex-wrap:wrap}.search-row input{flex:1;min-width:200px;max-width:400px;padding:8px 12px;border:1.5px solid var(--gray4);border-radius:8px;font-size:13px}.btn-teal,.btn-search{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:8px 14px;background:var(--teal);color:#fff;border:none;border-radius:8px;font-size:13px;font-weight:700;cursor:pointer;text-decoration:none;font-family:var(--font)}.btn-teal:disabled,.btn-search:disabled{opacity:.55;cursor:not-allowed}.btn-teal.sm,.btn-secondary.sm,.btn-ghost.sm{padding:6px 10px;font-size:12px}.btn-secondary{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:8px 14px;background:#fff;color:var(--ink);border:1.5px solid var(--gray4);border-radius:8px;font-size:13px;font-weight:700;cursor:pointer;text-decoration:none;font-family:var(--font)}.btn-secondary:disabled{opacity:.55;cursor:not-allowed}.btn-ghost{padding:8px 14px;background:transparent;border:1.5px solid var(--gray4);border-radius:8px;font-size:13px;font-weight:700;cursor:pointer;font-family:var(--font)}.btn-danger{background:var(--err);color:#fff;border:none;border-radius:8px;padding:8px 14px;font-weight:700;font-size:13px;cursor:pointer;font-family:var(--font)}.btn-link,.link{background:none;border:none;color:var(--teal);font-size:13px;font-weight:700;cursor:pointer;padding:0;text-decoration:none;font-family:var(--font)}.btn-link:disabled,.link:disabled{opacity:.5;cursor:not-allowed}.link.danger{color:var(--err)}.link-inline{display:inline-block;margin-bottom:12px;font-weight:700;font-size:13px;color:var(--teal);text-decoration:none}.btn.primary,.btn-primary{display:inline-flex;align-items:center;padding:10px 14px;background:var(--teal);color:#fff;border:none;border-radius:8px;text-decoration:none;font-weight:700;font-size:13px;cursor:pointer;font-family:var(--font)}.actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:16px}.badge{display:inline-block;padding:3px 8px;border-radius:999px;font-size:11px;font-weight:700;background:var(--gray5);color:var(--ink4)}.badge.ok,.status.ok,.pill.ok{background:var(--ok-bg);color:var(--ok)}.badge.warn,.status.warn,.pill.warn{background:var(--warn-bg);color:var(--warn)}.badge.teal{background:var(--teal-bg);color:var(--teal-d)}.badge.coral,.pill.bad{background:var(--err-bg);color:var(--err)}.badge.gray,.status.gray{background:var(--gray5);color:var(--gray)}.status,.pill{display:inline-block;padding:4px 10px;border-radius:999px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.02em}.pill{border:1px solid var(--gray4);background:var(--gray5);cursor:pointer}.pill.on{background:var(--teal-bg);border-color:var(--teal);color:var(--teal-d)}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px}.form-grid label{display:flex;flex-direction:column;gap:6px}.form-grid span{font-size:11px;font-weight:700;color:var(--gray2);text-transform:uppercase;letter-spacing:.03em}.form-grid input,.form-grid select,.form-grid textarea{padding:10px 12px;border:1.5px solid var(--gray4);border-radius:8px;font-size:13px;font-family:var(--font)}.form-grid small{font-size:11px;color:var(--gray2)}.checkbox-row{flex-direction:row!important;align-items:center;gap:8px!important;padding-top:24px}.drawer-backdrop{position:fixed;inset:0;background:#0f172a59;z-index:40}.drawer{position:fixed;top:0;right:0;width:min(420px,100vw);height:100vh;background:#fff;z-index:50;box-shadow:var(--sh2);display:flex;flex-direction:column;overflow-y:auto}.drawer-wide{width:min(520px,100vw)}.drawer-head{display:flex;align-items:center;justify-content:space-between;padding:16px 18px;border-bottom:1px solid var(--gray5);flex-shrink:0}.drawer-head h2{font-size:16px;font-weight:800;margin:0}.drawer-body{padding:16px 18px 32px;overflow:auto;display:flex;flex-direction:column;gap:16px}.drawer-id{margin:0 18px 16px;font-size:12px}.drawer>.form-grid,.drawer>h4,.drawer>.coverage,.drawer>.btn-teal{margin-left:18px;margin-right:18px}.drawer>.btn-teal{margin-bottom:24px;align-self:flex-start}.drawer-actions{display:flex;gap:10px;margin-top:12px;flex-wrap:wrap}.icon-btn{border:none;background:transparent;font-size:18px;cursor:pointer}.detail-grid{display:grid;grid-template-columns:120px 1fr;gap:8px 12px;font-size:13px;margin-bottom:16px}.detail-grid dt{color:var(--gray2);font-weight:700}.meta{font-size:12px;color:var(--gray2);margin-top:8px}.back-link{display:inline-block;font-size:12px;font-weight:700;color:var(--teal-d);text-decoration:none;margin-bottom:8px}.back-link:hover{text-decoration:underline}.inline-stats{display:flex;flex-wrap:wrap;gap:16px;margin-bottom:12px;font-size:12px;color:var(--gray2)}.inline-stats strong{color:var(--ink);margin-left:4px}.inline-stats .ok strong{color:var(--ok)}.segment-tabs{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}.segment-tab{display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:10px 16px;border:1.5px solid var(--gray4);background:#fff;border-radius:10px;cursor:pointer;text-align:left;text-decoration:none;color:inherit;font-family:var(--font)}.segment-tab.active{background:var(--teal-bg);border-color:var(--teal)}.segment-tab .tab-label{font-size:13px;font-weight:800;color:var(--ink)}.segment-tab .tab-hint{font-size:11px;color:var(--gray2)}.role-badge,.type-badge{display:inline-flex;padding:3px 9px;border-radius:999px;font-size:10px;font-weight:800}.role-badge{background:var(--teal-bg);color:var(--teal-d)}.type-badge{background:var(--gray5);color:var(--gray2)}.type-badge.system{background:var(--teal-bg);color:var(--teal-d)}.warn{font-size:12px;color:var(--warn);background:var(--warn-bg);border-radius:8px;padding:10px 12px;margin-top:8px}.preview-text{font-size:12px;color:var(--gray2);margin-bottom:12px}.perm-grid{display:flex;flex-direction:column;gap:0}.perm-row{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:center;padding:10px 0;border-bottom:1px solid var(--gray5)}.perm-label{font-size:13px;font-weight:600}.perm-options{display:flex;gap:10px;flex-wrap:wrap}.perm-opt{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:700;text-transform:capitalize;color:var(--gray2)}.field{display:flex;flex-direction:column;gap:6px;margin-bottom:12px}.field span{font-size:11px;font-weight:700;text-transform:uppercase;color:var(--gray2)}.field input,.field select,.field textarea{padding:8px 12px;border:1.5px solid var(--gray4);border-radius:8px;font-size:13px;font-family:var(--font)}.checkbox-row-inline{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:600}.drawer-foot{display:flex;justify-content:flex-end;gap:10px;padding:16px 18px;border-top:1px solid var(--gray5);flex-shrink:0}.drawer .icon-btn.close{width:32px;height:32px;border-radius:8px;background:var(--gray5);font-size:14px;display:inline-flex;align-items:center;justify-content:center}.btn-muted{display:inline-flex;align-items:center;padding:8px 14px;background:var(--gray5);border:1.5px solid var(--gray4);border-radius:8px;font-size:13px;font-weight:700;cursor:pointer;font-family:var(--font)}.btn-add{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:8px 14px;background:var(--coral);color:#fff;border:none;border-radius:8px;font-size:13px;font-weight:700;cursor:pointer;text-decoration:none;font-family:var(--font)}.btn-add:disabled{opacity:.55;cursor:not-allowed}.btn-sm{display:inline-flex;align-items:center;justify-content:center;padding:6px 12px;background:#fff;color:var(--ink);border:1.5px solid var(--gray4);border-radius:8px;font-size:12px;font-weight:700;cursor:pointer;font-family:var(--font)}.btn-sm:disabled{opacity:.45;cursor:not-allowed}code.inline{font-size:11px;background:var(--gray5);padding:2px 6px;border-radius:4px;font-family:ui-monospace,monospace}.notice{margin:12px 0;padding:10px 12px;background:var(--teal-bg);border-radius:var(--r2);font-size:12px;color:var(--teal-d)}@media (max-width: 768px){.page-head{flex-direction:column;align-items:stretch}.stats,.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.page-head .meta-line{font-size:12px;color:var(--gray2);margin-top:4px}.stats-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px;margin-bottom:16px}.stat-card{background:var(--white);border:1px solid var(--gray5);border-radius:var(--r2);padding:14px 16px;box-shadow:var(--sh)}.stat-card span{display:block;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--gray2)}.stat-card strong{display:block;margin-top:6px;font-size:22px;font-weight:800;color:var(--ink)}.stat-card small{display:block;margin-top:4px;font-size:11px;color:var(--gray2)}.stat-card.highlight{border-color:var(--teal);background:linear-gradient(135deg,var(--teal-bg) 0%,var(--white) 100%)}.stat-card.warn{border-color:var(--warn);background:var(--warn-bg)}.stat-card.warn strong{color:var(--warn)}.panel{background:var(--white);border:1px solid var(--gray5);border-radius:var(--r2);padding:18px 20px;margin-bottom:16px;box-shadow:var(--sh)}.panel h2{margin:0 0 8px;font-size:15px;font-weight:800}.panel .muted,.panel .notice{font-size:13px;color:var(--gray2);margin:0 0 12px}.search-row,.filter-row,.adjust-row{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.search-row input,.filter-row input,.adjust-row input{flex:1;min-width:180px}.user-pick{list-style:none;margin:12px 0 0;padding:0;border:1px solid var(--gray5);border-radius:var(--r2);overflow:hidden}.user-pick li+li{border-top:1px solid var(--gray5)}.user-pick button{width:100%;text-align:left;padding:12px 14px;font-size:13px;font-weight:600}.user-pick button:hover{background:var(--teal-bg)}.selected{margin-top:12px;font-size:13px;color:var(--gray2)}.table-wrap{background:var(--white);border:1px solid var(--gray5);border-radius:var(--r2);overflow:hidden;box-shadow:var(--sh)}.table-wrap table{margin:0}.credit{color:var(--ok);font-weight:700}.debit{color:var(--err);font-weight:700}.tabs{margin-bottom:12px}.tabs .tab{display:inline-flex;align-items:center;gap:8px}.tabs.tabs--soft .tab.active{background:var(--teal-bg);border-color:var(--teal);color:var(--teal-d)}.tabs .badge{background:var(--warn);color:#fff;border-radius:999px;padding:2px 7px;font-size:10px;font-weight:800}.pill.ok{background:var(--ok-bg);color:var(--ok)}.pill.warn{background:var(--warn-bg);color:var(--warn)}.pill.bad{background:var(--err-bg);color:var(--err)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body{height:100%}body{font-family:var(--font);background:var(--bg);color:var(--ink);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased}button,input,select,textarea{font-family:var(--font)}
