:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#192230;background:#f5f7fb;font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}body{margin:0;min-width:320px}button,input,textarea{font:inherit}button{cursor:pointer}.auth-shell,.loading-shell{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at 15% 15%,#e7efff 0,transparent 38%),#f5f7fb}.loading-shell{color:#607086;gap:12px;display:flex;flex-direction:column}.spinner{width:28px;height:28px;border:3px solid #dce5f4;border-top-color:#4776db;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.auth-card{width:min(440px,100%);padding:42px;border:1px solid #e4eaf3;border-radius:24px;background:#fffffff0;box-shadow:0 22px 70px #2639571f}.brand-mark{width:48px;height:48px;display:grid;place-items:center;border-radius:15px;color:#fff;font-size:25px;font-weight:800;background:linear-gradient(135deg,#557ee2,#7e5ad7);box-shadow:0 8px 20px #5673de4d}.brand-mark.small{width:34px;height:34px;border-radius:10px;font-size:18px}.eyebrow{margin:0 0 8px;color:#71809a;font-size:11px;font-weight:800;letter-spacing:.15em}h1,h2,p{margin-top:0}h1{margin-bottom:10px;font-size:clamp(28px,4vw,40px);letter-spacing:-.04em}h2{margin-bottom:6px;font-size:22px;letter-spacing:-.025em}.muted{color:#758197;line-height:1.6}.login-widget{min-height:46px;margin:28px 0 18px;display:flex;justify-content:center}.security-note,.field-hint{color:#8a96a9;font-size:12px;line-height:1.5}.inline-error{color:#bd4c5e;font-size:13px;line-height:1.5}code{padding:2px 5px;border-radius:5px;color:#455775;background:#edf1f7}.app-shell{min-height:100vh}.topbar{height:72px;display:flex;align-items:center;justify-content:space-between;padding:0 32px;border-bottom:1px solid #e6ebf3;background:#ffffffd9;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.topbar-brand,.topbar-user,.actions,.role-list{display:flex;align-items:center;gap:12px}.topbar-brand strong,.topbar-brand span{display:block}.topbar-brand span{margin-top:2px;color:#8290a4;font-size:12px}.topbar-user{color:#76849a;font-size:13px}.content{width:min(1420px,calc(100% - 48px));margin:0 auto;padding:46px 0 70px}.page-intro{display:flex;justify-content:space-between;gap:24px;margin-bottom:32px}.page-intro h1{margin-bottom:7px}.role-list{align-self:flex-start;flex-wrap:wrap;justify-content:flex-end}.role-badge,.source-badge,.count{display:inline-flex;align-items:center;border-radius:999px;padding:6px 10px;color:#536582;background:#eaf0fc;font-size:11px;font-weight:700}.workspace{display:grid;grid-template-columns:330px minmax(0,1fr);gap:22px;align-items:start}.panel{border:1px solid #e4eaf3;border-radius:18px;background:#fff;box-shadow:0 10px 35px #2b41610f}.group-panel{min-height:430px;padding:20px 14px}.panel-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:24px;padding-bottom:18px;border-bottom:1px solid #edf1f6}.panel-heading.compact{padding:0 6px 15px;margin-bottom:12px}.group-list{display:grid;gap:6px}.group-item{width:100%;display:flex;align-items:center;gap:11px;padding:11px 10px;border:0;border-radius:12px;text-align:left;color:inherit;background:transparent}.group-item:hover{background:#f4f7fc}.group-item.selected{color:#264b9f;background:#eef3ff}.group-avatar{width:34px;height:34px;display:grid;place-items:center;flex:none;border-radius:10px;color:#4a67b3;background:#dce6ff;font-weight:800}.group-avatar.channel{color:#6d4daf;background:#eee5ff}.group-avatar.unknown{color:#7d8797;background:#edf1f6}.group-copy{min-width:0;flex:1}.group-copy strong,.group-copy small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.group-copy strong{font-size:13px}.group-copy small{margin-top:3px;color:#8290a4;font-size:11px}.resource-badges{display:flex;flex-wrap:wrap;gap:4px;margin-top:5px}.resource-badge,.resource-mode-badge{display:inline-flex;align-items:center;border-radius:999px;padding:3px 6px;font-size:9px;font-weight:800;line-height:1}.resource-badge.channel{color:#6845a2;background:#eee5ff}.resource-badge.group{color:#2e6f5c;background:#e4f5ee}.resource-badge.unknown{color:#677385;background:#edf1f6}.resource-mode-badge{color:#54647e;background:#eef2f8}.resource-header-meta{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:7px}.resource-filters{display:flex;flex-wrap:wrap;gap:5px;margin:-4px 0 14px;padding:0 4px 10px;border-bottom:1px solid #edf1f6}.resource-search{display:flex;gap:7px;margin:0 4px 12px}.resource-search input{min-width:0;height:36px;font-size:12px}.compact-button{padding:8px 10px;white-space:nowrap;font-size:11px}.pagination{display:flex;align-items:center;justify-content:space-between;gap:6px;margin:12px 4px 0;color:#8290a4;font-size:10px}.filter-button{border:0;border-radius:8px;padding:6px 8px;color:#71809a;background:transparent;font-size:10px;font-weight:700}.filter-button:hover{color:#3f5caf;background:#f1f4fb}.filter-button.active{color:#3154ad;background:#eaf0ff}.resource-section{margin-bottom:16px}.resource-section:last-child{margin-bottom:0}.resource-section-title{display:flex;justify-content:space-between;align-items:center;margin:0 8px 5px;color:#7b889d;font-size:10px;font-weight:800;letter-spacing:.04em;text-transform:uppercase}.resource-section-title span{color:#a0aabd;font-weight:700}.resource-empty{margin:18px 8px;font-size:12px}.chevron{color:#94a0b0;font-size:21px}.editor-area{min-width:0}.editor-panel{padding:28px 32px}.group-settings-panel{margin-bottom:22px}.settings-grid{margin:0 0 2px}.resource-detail-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin:2px 0 20px}.resource-detail-grid>div{min-width:0;padding:11px 12px;border-radius:10px;background:#f6f8fc}.resource-detail-grid span,.resource-detail-grid strong{display:block}.resource-detail-grid span{color:#8290a4;font-size:10px}.resource-detail-grid strong{margin-top:5px;overflow:hidden;color:#40516a;font-size:12px;text-overflow:ellipsis;white-space:nowrap}.settings-flags{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:4px 0 18px}.select-input{width:100%;height:42px;padding:0 12px;border:1px solid #dbe3ef;border-radius:10px;outline:none;color:#27364a;background:#fbfcfe}.select-input:focus{border-color:#6c8cdf;box-shadow:0 0 0 3px #5c7cdb1f}.permission-hint{font-size:12px}.insights-grid{display:grid;grid-template-columns:minmax(290px,.75fr) minmax(0,1.25fr);gap:22px;margin-top:22px}.scope-panel{margin-top:22px;padding:22px}.scope-description{margin:-4px 0 20px;font-size:13px}.scope-form{display:grid;grid-template-columns:1.1fr 1fr 1fr auto;gap:14px;align-items:end}.scope-form .field{margin-bottom:0}.scope-form-action{padding-bottom:20px}.scope-form-action .primary-button{white-space:nowrap}.scope-notice{margin:10px 0 0}.scope-table-wrap{overflow-x:auto;margin-top:20px}.scope-table{width:100%;border-collapse:collapse;font-size:12px;white-space:nowrap}.scope-table th{color:#8290a4;font-size:10px;font-weight:700;text-align:left}.scope-table th,.scope-table td{padding:10px 8px;border-bottom:1px solid #edf1f6}.scope-table td{color:#52627a}.scope-status{display:inline-flex;padding:4px 7px;border-radius:999px;font-size:10px;font-weight:700}.scope-status.active{color:#2e7d62;background:#e5f5ee}.scope-status.inactive{color:#876b28;background:#fff4d4}.scope-action-cell{text-align:right}.danger-button{border:0;border-radius:8px;padding:7px 10px;color:#a83e50;background:#fff0f2;font-size:11px;font-weight:700}.danger-button:hover{background:#ffe1e6}.danger-button:disabled{cursor:wait;opacity:.65}.info-panel,.audit-panel{min-width:0;padding:22px}.compact-message{margin:0;font-size:13px}.compact-banner{margin:0}.gift-highlight{display:flex;align-items:baseline;gap:10px;margin:4px 0 18px;color:#63718a}.gift-highlight strong{color:#3e5cc2;font-size:38px;letter-spacing:-.06em}.gift-highlight span{font-size:12px}.stats-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}.stat-card{min-width:0;padding:12px;border-radius:11px;background:#f6f8fc}.stat-card span,.stat-card strong{display:block}.stat-card span{color:#8290a4;font-size:11px}.stat-card strong{margin-top:7px;overflow:hidden;color:#354760;font-size:17px;text-overflow:ellipsis;white-space:nowrap}.stat-card strong.stat-date{font-size:11px;line-height:1.5;white-space:normal}.gift-meta{display:flex;flex-wrap:wrap;gap:8px 16px;margin-top:16px;color:#71809a;font-size:11px;line-height:1.5}.audit-table-wrap{overflow-x:auto}.audit-table{width:100%;border-collapse:collapse;font-size:11px;white-space:nowrap}.audit-table th{color:#8290a4;font-size:10px;font-weight:700;text-align:left}.audit-table th,.audit-table td{padding:10px 8px;border-bottom:1px solid #edf1f6}.audit-table td{max-width:210px;overflow:hidden;color:#52627a;text-overflow:ellipsis}.audit-status{display:inline-flex;padding:4px 7px;border-radius:999px;color:#536582;background:#edf1f7;font-size:10px;font-weight:700}.audit-status.success{color:#2e7d62;background:#e5f5ee}.audit-status.failure,.audit-status.failed{color:#a83e50;background:#fff0f2}.source-badge.group{color:#2e7d62;background:#e5f5ee}.source-badge.legacy{color:#876b28;background:#fff4d4}.field{display:grid;gap:8px;margin-bottom:20px}.field-label{color:#44546b;font-size:13px;font-weight:700}.field-hint{display:block}input,textarea{width:100%;border:1px solid #dbe3ef;border-radius:10px;outline:none;color:#27364a;background:#fbfcfe;transition:border-color .15s,box-shadow .15s}input{height:42px;padding:0 12px}textarea{resize:vertical;padding:12px;line-height:1.6}input:focus,textarea:focus{border-color:#6c8cdf;box-shadow:0 0 0 3px #5c7cdb1f}.subsection{padding-top:22px;border-top:1px solid #edf1f6}.subsection-title{margin-bottom:12px;color:#44546b;font-size:13px;font-weight:700}.toggle-row{display:flex;align-items:flex-start;gap:11px;padding:13px 14px;border:1px solid #e8edf5;border-radius:12px;margin-bottom:10px;background:#fbfcfe}.toggle-row.disabled{opacity:.58}.toggle-row input{width:17px;height:17px;margin-top:2px;accent-color:#5678dc}.toggle-row strong,.toggle-row small{display:block}.toggle-row strong{color:#38485f;font-size:13px}.toggle-row small{margin-top:4px;color:#8290a4;font-size:12px;line-height:1.5}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:12px 0 18px 28px}.editor-footer{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:30px;padding-top:20px;border-top:1px solid #edf1f6}.version{color:#94a0b0;font-size:11px}.primary-button,.ghost-button{border:0;border-radius:10px;padding:10px 16px;font-weight:700}.primary-button{color:#fff;background:#4e70d2;box-shadow:0 5px 14px #4e70d23b}.primary-button:hover{background:#3f60c0}.primary-button:disabled{cursor:wait;opacity:.65}.ghost-button{color:#5f6e83;background:#eef2f8}.ghost-button:hover{background:#e3e9f3}.success{color:#2e7d62;font-size:12px}.success-banner{margin-bottom:14px;padding:12px 14px;border-radius:10px;color:#2e7d62;background:#e5f5ee;font-size:13px}.error-banner{margin-bottom:14px;padding:12px 14px;border-radius:10px;color:#a83e50;background:#fff0f2;font-size:13px}.empty-state{min-height:420px;display:grid;place-items:center;border:1px dashed #d4deed;border-radius:18px;color:#8b98aa;background:#ffffff80}@media(max-width:860px){.topbar{padding:0 18px}.topbar-user>span{display:none}.content{width:min(100% - 28px,700px);padding-top:30px}.page-intro{display:block}.role-list{justify-content:flex-start;margin-top:14px}.workspace{grid-template-columns:1fr}.group-panel{min-height:0}.group-list{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.insights-grid{grid-template-columns:1fr}.scope-form{grid-template-columns:1fr 1fr}.scope-form-action{padding-bottom:20px}}@media(max-width:560px){.auth-card{padding:30px 22px}.editor-panel{padding:22px 18px}.panel-heading{display:block}.source-badge{margin-top:10px}.two-col{grid-template-columns:1fr;margin-left:0}.resource-detail-grid,.settings-flags{grid-template-columns:1fr}.stats-grid{grid-template-columns:1fr 1fr}.stat-card:last-child{grid-column:1 / -1}.editor-footer{align-items:flex-start;flex-direction:column}.actions{width:100%;align-items:flex-start;flex-direction:column}.primary-button{width:100%}.scope-form{grid-template-columns:1fr}.scope-form-action{padding-bottom:0}}
