:root{--border: #d9dee3;--bg: #f5f7f9;--panel-bg: #ffffff;--text: #1f2933;--muted: #5b6672;--accent: #1b5fae;--accent-contrast: #ffffff;--error: #b3261e;--error-bg: #fbe9e7;--success: #1e6b3f;--success-bg: #e6f4ea;--info-bg: #eef3fb;color-scheme:light}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.app-shell{max-width:1000px;margin:0 auto;padding:24px 20px 64px}.app-header{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:24px}.app-header h1{font-size:1.25rem;margin:0}.eyebrow{text-transform:uppercase;letter-spacing:.06em;font-size:.72rem;color:var(--muted);margin:0 0 4px}.section-heading-row{margin-bottom:16px}.section-heading-row h2{margin:0 0 6px}.card{background:var(--panel-bg);border:1px solid var(--border);border-radius:10px;padding:16px}.compact-panel{padding:12px 16px}.role-permission-panel{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;background:var(--panel-bg);border:1px solid var(--border);border-radius:10px;padding:16px;margin-bottom:16px}.metric-label{display:block;font-size:.72rem;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;margin-bottom:4px}.metric-panel{display:flex;flex-direction:column;gap:2px}.import-type-tabs{display:flex;gap:8px;margin-bottom:16px}.import-type-tabs button{flex:1;text-align:left;padding:10px 14px;border-radius:8px;border:1px solid var(--border);background:var(--panel-bg);cursor:pointer}.import-type-tabs button.active{border-color:var(--accent);background:var(--info-bg)}.import-type-tabs button small{display:block;color:var(--muted);font-weight:400;margin-top:2px}.upload-panel{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:16px;flex-wrap:wrap}.file-upload-control{display:inline-flex;align-items:center;padding:8px 14px;border-radius:8px;background:var(--accent);color:var(--accent-contrast);cursor:pointer;font-size:.85rem}.file-upload-control[aria-disabled=true]{background:#b7c4d1;cursor:not-allowed}.file-upload-control input{display:none}.import-preview-panel,.import-preview{background:var(--panel-bg);border:1px solid var(--border);border-radius:10px;padding:16px;margin-bottom:16px}.import-status-grid,.import-detail-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px;margin:10px 0}.import-publish-effect-panel{background:var(--info-bg);border-radius:8px;padding:10px 12px;font-size:.85rem}.empty-state{color:var(--muted);font-style:italic}.preview-table-wrap,.validation-table-wrap{overflow-x:auto;margin-top:10px}.preview-table,.validation-report-table{border-collapse:collapse;width:100%;font-size:.82rem}.preview-table th,.preview-table td,.validation-report-table th,.validation-report-table td{border:1px solid var(--border);padding:4px 8px;text-align:left;white-space:nowrap}.validation-summary-panel{display:flex;gap:16px;margin-bottom:8px;font-size:.85rem}.import-actions{display:flex;gap:10px;margin-bottom:12px}.import-actions button{padding:10px 18px;border-radius:8px;border:none;background:var(--accent);color:var(--accent-contrast);cursor:pointer}.import-actions button:disabled{background:#b7c4d1;cursor:not-allowed}.btn-secondary{background:var(--panel-bg)!important;color:var(--text)!important;border:1px solid var(--border)!important}.btn-link{background:none;border:none;color:var(--accent);cursor:pointer;padding:0;text-decoration:underline}.message{padding:10px 14px;border-radius:8px;margin-bottom:12px;font-size:.85rem}.message.error{background:var(--error-bg);color:var(--error)}.message.success{background:var(--success-bg);color:var(--success)}.message.info{background:var(--info-bg);color:var(--muted)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f171e73;display:flex;align-items:center;justify-content:center;padding:20px}.modal-content,.publish-modal{background:var(--panel-bg);border-radius:12px;padding:20px;max-width:480px;width:100%}.modal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.modal-close{background:none;border:none;font-size:1.1rem;cursor:pointer;color:var(--muted)}.modal-body{margin-bottom:16px;color:var(--muted)}.confirmation-details{font-size:.85rem}.modal-actions{display:flex;justify-content:flex-end;gap:10px}.modal-actions button{padding:8px 16px;border-radius:8px;border:1px solid var(--border);background:var(--panel-bg);cursor:pointer}.modal-actions button:first-child{background:var(--accent);color:var(--accent-contrast);border-color:var(--accent)}
