.skip-links{position:absolute;top:0;left:0;z-index:10000}.skip-links-list{list-style:none;margin:0;padding:0}.skip-links a{position:absolute;left:-9999px;top:-9999px;display:block;padding:12px 16px;background-color:var(--color-primary);color:var(--color-text-on-primary);text-decoration:none;border-radius:4px;font-weight:600;font-size:14px;white-space:nowrap;z-index:10000}.skip-links a:focus{left:10px;top:10px;outline:3px solid var(--color-text-on-primary);outline-offset:2px}.skip-links a:focus-visible{left:10px;top:10px;outline:3px solid var(--color-text-on-primary);outline-offset:2px}:root{color-scheme:dark;--spacing-xs: 4px;--spacing-sm: 8px;--spacing-md: 12px;--spacing-lg: 16px;--spacing-xl: 20px;--spacing-xxl: 24px;--spacing-xxxl: 32px;--border-radius-none: 0px;--border-radius-sm: 4px;--border-radius-md: 8px;--border-radius-lg: 10px;--border-radius-xl: 12px;--border-radius-full: 999px;--font-size-xs: 12px;--font-size-sm: 13px;--font-size-base: 14px;--font-size-lg: 16px;--font-size-xl: 18px;--font-size-xxl: 20px;--font-size-heading: 24px;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--transition-fast: .15s ease-in-out;--transition-normal: .3s ease-in-out;--transition-slow: .5s ease-in-out;--shadow-sm: 0 4px 6px rgba(0, 0, 0, .1);--shadow-md: 0 8px 16px rgba(0, 0, 0, .15);--shadow-lg: 0 16px 40px rgba(0, 0, 0, .25);--z-dropdown: 10;--z-sticky: 20;--z-modal: 100;--z-notification: 1000;--topbar-height: 64px;--color-primary: #2563eb;--color-primary-light: rgba(37, 99, 235, .25);--color-text-on-primary: #ffffff;--color-success: #10b981;--color-error: #dc2626;--color-warning: #f59e0b;--color-info: #06b6d4;--color-bg-primary: #07111f;--color-bg-secondary: rgba(8, 20, 35, .92);--color-bg-tertiary: rgba(255, 255, 255, .03);--color-bg-hover: rgba(255, 255, 255, .06);--color-text-primary: #e2e8f0;--color-text-secondary: #cbd5e1;--color-text-muted: #94a3b8;--color-text-disabled: rgba(226, 232, 240, .5);--color-border-default: rgba(255, 255, 255, .12);--color-border-light: rgba(255, 255, 255, .08);--color-border-dark: #1e293b;--color-success-bg: #d4edda;--color-error-bg: #f8d7da;--color-warning-bg: #fff3cd;--color-info-bg: #d1ecf1;--color-success-border: #c3e6cb;--color-error-border: #f5c6cb;--color-warning-border: #ffeaa7;--color-info-border: #bee5eb;--color-success-text: #155724;--color-error-text: #721c24;--color-warning-text: #856404;--color-info-text: #0c5460;--color-teal: #0f766e;--color-teal-light: rgba(15, 118, 110, .4);--color-teal-dark: rgba(15, 118, 110, .9);--color-overlay-dark: rgba(0, 0, 0, .3);--color-badge-role-bg: rgba(255, 255, 255, .1);--color-badge-role-border: rgba(255, 255, 255, .16);--color-bg-gradient-end: #10243c;--color-sidebar-bg: rgba(8, 20, 35, .6);--color-drawer-bg: #0c1a2b;--color-topbar-bg: rgba(7, 17, 31, .96);--color-border-strong: rgba(255, 255, 255, .2);--color-border-emphasis: rgba(255, 255, 255, .3);--color-border-guide: rgba(148, 163, 184, .35);--color-focus-ring: rgba(37, 99, 235, .25);--color-primary-subtle: rgba(37, 99, 235, .15);--color-teal-border: rgba(20, 184, 166, .5);--color-teal-border-strong: rgba(20, 184, 166, .7);--color-teal-outline: rgba(20, 184, 166, .9);--color-teal-glow: rgba(15, 118, 110, .25)}:root[data-theme=dark]{color-scheme:dark;--color-primary: #2563eb;--color-primary-light: rgba(37, 99, 235, .25);--color-text-on-primary: #ffffff;--color-success: #10b981;--color-error: #dc2626;--color-warning: #f59e0b;--color-info: #06b6d4;--color-bg-primary: #07111f;--color-bg-secondary: rgba(8, 20, 35, .92);--color-bg-tertiary: rgba(255, 255, 255, .03);--color-bg-hover: rgba(255, 255, 255, .06);--color-text-primary: #e2e8f0;--color-text-secondary: #cbd5e1;--color-text-muted: #94a3b8;--color-text-disabled: rgba(226, 232, 240, .5);--color-border-default: rgba(255, 255, 255, .12);--color-border-light: rgba(255, 255, 255, .08);--color-border-dark: #1e293b;--color-success-bg: #d4edda;--color-error-bg: #f8d7da;--color-warning-bg: #fff3cd;--color-info-bg: #d1ecf1;--color-success-border: #c3e6cb;--color-error-border: #f5c6cb;--color-warning-border: #ffeaa7;--color-info-border: #bee5eb;--color-success-text: #155724;--color-error-text: #721c24;--color-warning-text: #856404;--color-info-text: #0c5460;--color-teal: #0f766e;--color-teal-light: rgba(15, 118, 110, .4);--color-teal-dark: rgba(15, 118, 110, .9);--color-overlay-dark: rgba(0, 0, 0, .3);--color-badge-role-bg: rgba(255, 255, 255, .1);--color-badge-role-border: rgba(255, 255, 255, .16);--color-bg-gradient-end: #10243c;--color-sidebar-bg: rgba(8, 20, 35, .6);--color-drawer-bg: #0c1a2b;--color-topbar-bg: rgba(7, 17, 31, .96);--color-border-strong: rgba(255, 255, 255, .2);--color-border-emphasis: rgba(255, 255, 255, .3);--color-border-guide: rgba(148, 163, 184, .35);--color-focus-ring: rgba(37, 99, 235, .25);--color-primary-subtle: rgba(37, 99, 235, .15);--color-teal-border: rgba(20, 184, 166, .5);--color-teal-border-strong: rgba(20, 184, 166, .7);--color-teal-outline: rgba(20, 184, 166, .9);--color-teal-glow: rgba(15, 118, 110, .25)}:root[data-theme=light]{color-scheme:light;--color-primary: #2563eb;--color-primary-light: rgba(37, 99, 235, .12);--color-text-on-primary: #ffffff;--color-success: #059669;--color-error: #dc2626;--color-warning: #d97706;--color-info: #0891b2;--color-bg-primary: #f8fafc;--color-bg-secondary: rgba(255, 255, 255, .92);--color-bg-tertiary: rgba(15, 23, 42, .03);--color-bg-hover: rgba(15, 23, 42, .06);--color-text-primary: #0f172a;--color-text-secondary: #334155;--color-text-muted: #64748b;--color-text-disabled: rgba(15, 23, 42, .4);--color-border-default: rgba(15, 23, 42, .12);--color-border-light: rgba(15, 23, 42, .08);--color-border-dark: #cbd5e1;--color-success-bg: #d1fae5;--color-error-bg: #fee2e2;--color-warning-bg: #fef3c7;--color-info-bg: #cffafe;--color-success-border: #6ee7b7;--color-error-border: #fca5a5;--color-warning-border: #fcd34d;--color-info-border: #67e8f9;--color-success-text: #065f46;--color-error-text: #991b1b;--color-warning-text: #92400e;--color-info-text: #164e63;--color-teal: #0f766e;--color-teal-light: rgba(13, 148, 136, .15);--color-teal-dark: rgba(13, 148, 136, .9);--color-overlay-dark: rgba(0, 0, 0, .4);--color-badge-role-bg: rgba(15, 23, 42, .06);--color-badge-role-border: rgba(15, 23, 42, .14);--color-bg-gradient-end: #e2e8f0;--color-sidebar-bg: rgba(255, 255, 255, .7);--color-drawer-bg: #ffffff;--color-topbar-bg: rgba(255, 255, 255, .9);--color-border-strong: rgba(15, 23, 42, .2);--color-border-emphasis: rgba(15, 23, 42, .3);--color-border-guide: rgba(100, 116, 139, .4);--color-focus-ring: rgba(37, 99, 235, .35);--color-primary-subtle: rgba(37, 99, 235, .1);--color-teal-border: rgba(13, 148, 136, .5);--color-teal-border-strong: rgba(13, 148, 136, .7);--color-teal-outline: rgba(13, 148, 136, .9);--color-teal-glow: rgba(13, 148, 136, .25)}:root{font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:var(--color-bg-primary);color:var(--color-text-primary);scroll-padding-top:calc(var(--topbar-height-actual, var(--topbar-height)) + 8px)}body{margin:0;background:linear-gradient(135deg,var(--color-bg-primary),var(--color-bg-gradient-end));min-height:100vh;min-height:100dvh}*{box-sizing:border-box}button,input,select,textarea{font:inherit}.app-shell{max-width:1120px;margin:0 auto;padding:24px}.bulk-template-example{background:var(--color-bg-tertiary);border:1px solid var(--color-border-light);border-radius:var(--border-radius-lg);padding:var(--spacing-lg)}.message{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);border:1px solid;border-radius:var(--border-radius-md);font-size:var(--font-size-sm);box-shadow:var(--shadow-lg);word-break:break-word}.message--success{background:var(--color-success-bg);border-color:var(--color-success-border);color:var(--color-success-text)}.message--error{background:var(--color-error-bg);border-color:var(--color-error-border);color:var(--color-error-text)}.message--info{background:var(--color-info-bg);border-color:var(--color-info-border);color:var(--color-info-text)}.message--warning{background:var(--color-warning-bg);border-color:var(--color-warning-border);color:var(--color-warning-text)}.message-dismiss{background:transparent;border:none;color:inherit;cursor:pointer;font-size:1.1rem;line-height:1;padding:0 2px;min-height:auto;flex-shrink:0}.tree-scroll{max-height:18rem;overflow-y:auto}.tree-row{display:flex;align-items:center;gap:var(--spacing-sm);margin-inline-start:calc(var(--tree-depth, 0) * 1.25rem);margin-bottom:var(--spacing-xs);padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--color-border-default);border-radius:var(--border-radius-lg)}.tree-row-toggle{min-width:1.75rem;background:transparent;color:inherit;border:1px solid var(--color-border-default);border-radius:var(--border-radius-lg)}.tree-row[aria-selected=true]{background:var(--color-bg-secondary)}.tree-row:focus-visible{outline:2px solid var(--color-text-primary);outline-offset:2px}.tree-bullet{width:1.75rem;text-align:center}.tree-label{flex:1}.badge-status{display:inline-block;padding:2px 10px;border-radius:var(--border-radius-full);border:1px solid;font-size:var(--font-size-sm);white-space:nowrap}.badge-status--success{background:var(--color-success-bg);border-color:var(--color-success-border);color:var(--color-success-text)}.badge-status--error{background:var(--color-error-bg);border-color:var(--color-error-border);color:var(--color-error-text)}.badge-status--warning{background:var(--color-warning-bg);border-color:var(--color-warning-border);color:var(--color-warning-text)}.badge-status--info{background:var(--color-info-bg);border-color:var(--color-info-border);color:var(--color-info-text)}.field-meta{font-size:var(--font-size-sm)}.field-meta-row{flex-wrap:wrap;gap:var(--spacing-xs)}.fill-width{width:100%}.align-baseline{align-items:baseline}.scope-group-label{font-weight:var(--font-weight-semibold)}.scope-group-items{padding-inline-start:var(--spacing-xl)}.auth-shell{max-width:360px;margin:80px auto}.preformatted-text{margin:0;white-space:pre-wrap}.breadcrumb-list{display:flex;flex-wrap:wrap;align-items:center;list-style:none;margin:0 0 var(--spacing-sm);padding:0;font-size:var(--font-size-sm)}.breadcrumb-item{display:flex;align-items:center;gap:var(--spacing-sm)}.breadcrumb-separator{color:var(--color-text-muted);margin-right:var(--spacing-sm)}.breadcrumb-current{color:var(--color-text-secondary);font-weight:var(--font-weight-medium)}.data-table{width:100%;border-collapse:collapse;min-width:640px}.data-table th{padding:var(--spacing-md);border-bottom:1px solid var(--color-border-default);text-align:left;color:var(--color-text-secondary);font-weight:var(--font-weight-semibold)}.data-table td{padding:var(--spacing-md);border-bottom:1px solid var(--color-border-default);text-align:left;vertical-align:top}.loading-spinner{display:inline-block;width:20px;height:20px;border:3px solid var(--color-bg-tertiary);border-top:3px solid var(--color-primary);border-radius:50%;animation:spin 1s linear infinite}.loading-row{display:flex;align-items:center;gap:var(--spacing-md)}.loading-row-text{font-size:var(--font-size-base);color:var(--color-text-primary)}.panel-stack,.page-container{display:flex;flex-direction:column;gap:var(--spacing-lg)}.widget-slot{position:relative}.widget-hide-button{position:absolute;top:var(--spacing-sm);right:var(--spacing-sm);z-index:1;padding:2px 10px;min-height:24px;font-size:var(--font-size-xs);color:var(--color-text-muted);background:var(--color-bg-tertiary);border:1px solid var(--color-border-light);border-radius:var(--border-radius-full);opacity:0;transition:var(--transition-fast)}.widget-slot:hover .widget-hide-button,.widget-hide-button:focus-visible{opacity:1}.hidden-panel-bar{display:flex;align-items:center;flex-wrap:wrap;gap:var(--spacing-sm);font-size:var(--font-size-sm);color:var(--color-text-muted)}.hidden-panel-list{display:flex;flex-wrap:wrap;gap:var(--spacing-sm);list-style:none;margin:0;padding:0}.template-gallery{margin:0;padding:0;border:0}.template-gallery-legend{padding:0;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-secondary)}.template-gallery-options{display:grid;gap:var(--spacing-sm);margin-top:var(--spacing-sm)}.template-gallery-option{display:flex;align-items:flex-start;gap:var(--spacing-sm);margin:0;padding:var(--spacing-sm);border:1px solid var(--color-border-light);border-radius:var(--border-radius-md);cursor:pointer}.template-gallery-option:hover{background:var(--color-bg-hover)}.template-gallery-option:has(input:checked){border-color:var(--color-teal-border);background:var(--color-teal-light)}.template-gallery-option:has(input:focus-visible){outline:2px solid var(--color-teal-outline);outline-offset:2px}.template-gallery-body{display:grid;gap:4px}.template-gallery-name{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-primary)}.template-gallery-description{font-size:var(--font-size-xs);color:var(--color-text-muted)}.template-preview{display:grid;gap:2px;padding:var(--spacing-xs);background:var(--color-bg-tertiary);border-radius:var(--border-radius-sm)}.template-preview-block{padding:2px 6px;font-size:10px;color:var(--color-text-muted);background:var(--color-bg-secondary);border:1px solid var(--color-border-light);border-radius:var(--border-radius-sm)}.template-gallery-reset{margin-top:var(--spacing-sm);padding:2px 10px;min-height:28px;font-size:var(--font-size-xs);color:var(--color-text-secondary);background:transparent;border:1px solid var(--color-border-default);border-radius:var(--border-radius-full)}.hidden-panel-restore{padding:2px 10px;min-height:28px;font-size:var(--font-size-xs);color:var(--color-text-secondary);background:var(--color-bg-tertiary);border:1px dashed var(--color-border-default);border-radius:var(--border-radius-full)}.app-frame{display:flex;flex-direction:column;min-height:100vh;min-height:100dvh;padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right);padding-bottom:env(safe-area-inset-bottom)}.app-body{display:flex;align-items:stretch;flex:1;min-height:0}.app-sidebar{display:flex;flex-direction:column;width:280px;flex:0 0 280px;position:sticky;top:var(--topbar-height-actual, var(--topbar-height));height:calc(100vh - var(--topbar-height-actual, var(--topbar-height)));height:calc(100dvh - var(--topbar-height-actual, var(--topbar-height)));max-height:calc(100vh - var(--topbar-height-actual, var(--topbar-height)));max-height:calc(100dvh - var(--topbar-height-actual, var(--topbar-height)));overflow-y:auto;padding:20px 16px;border-right:1px solid var(--color-border-light);background:var(--color-sidebar-bg)}.app-sidebar-body{display:flex;flex-direction:column;gap:var(--spacing-lg)}.app-sidebar-toggle{align-self:flex-end;margin-bottom:var(--spacing-sm);padding:2px 8px;min-height:28px;color:var(--color-text-muted);background:var(--color-bg-tertiary);border:1px solid var(--color-border-light);border-radius:var(--border-radius-full);cursor:pointer}.app-sidebar-toggle:hover{color:var(--color-text-primary);background:var(--color-bg-hover)}.app-sidebar--rail{width:64px;flex:0 0 64px;padding-inline:var(--spacing-sm);overflow:visible}.app-sidebar--rail .app-sidebar-toggle{align-self:center}.app-sidebar--rail h2,.app-sidebar--rail .app-sidebar-empty{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.app-sidebar--rail .app-sidebar-item{display:block;width:40px;margin-inline:auto;padding:10px 0;font-size:0;text-align:center;overflow:hidden;white-space:nowrap}.app-sidebar--rail .app-sidebar-item:first-letter{font-size:var(--font-size-base);font-weight:var(--font-weight-semibold)}.app-sidebar--rail .app-sidebar-item:hover,.app-sidebar--rail .app-sidebar-item:focus-visible{position:relative;z-index:var(--z-notification);width:auto;min-width:200px;padding-inline:var(--spacing-md);font-size:var(--font-size-base);text-align:left;background:var(--color-bg-secondary);border-color:var(--color-border-default);box-shadow:var(--shadow-lg)}.app-sidebar--drawer,.app-sidebar--drawer-open{padding-block:var(--spacing-sm);flex:0 0 auto}.app-sidebar--drawer .app-sidebar-body{display:none}.app-sidebar--drawer-open .app-sidebar-toggle{position:relative;z-index:var(--z-modal)}.app-sidebar--drawer .app-sidebar-toggle,.app-sidebar--drawer-open .app-sidebar-toggle{width:auto;align-self:flex-end}.app-sidebar--right.app-sidebar--drawer .app-sidebar-toggle,.app-sidebar--right.app-sidebar--drawer-open .app-sidebar-toggle{align-self:flex-start}.app-sidebar--drawer-open .app-sidebar-body{position:fixed;top:var(--topbar-height-actual, var(--topbar-height));bottom:0;left:0;width:min(320px,85vw);z-index:var(--z-modal);overflow-y:auto;padding:var(--spacing-lg);background:var(--color-drawer-bg);border-right:1px solid var(--color-border-light);box-shadow:var(--shadow-lg)}.app-sidebar--right.app-sidebar--drawer-open .app-sidebar-body{left:auto;right:0;border-right:none;border-left:1px solid var(--color-border-light)}.app-sidebar-scrim{position:fixed;inset:var(--topbar-height-actual, var(--topbar-height)) 0 0 0;z-index:calc(var(--z-modal) - 1);background:var(--color-overlay-dark);cursor:pointer}.app-sidebar h2{font-size:var(--font-size-sm);text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-muted);margin:0 0 10px}.app-sidebar-section+.app-sidebar-section{margin-top:24px}.app-sidebar-list{display:flex;flex-direction:column;gap:6px}.app-sidebar-item{display:block;width:100%;text-align:left;background:transparent;border:1px solid transparent;border-radius:10px;padding:10px 12px;color:var(--color-text-secondary);min-height:auto}.app-sidebar-item:hover{background:var(--color-bg-hover);color:var(--color-text-primary)}.app-sidebar-item.active{background:var(--color-teal-light);border-color:var(--color-teal-border);color:var(--color-text-on-primary)}.app-sidebar-empty{color:var(--color-text-muted);font-size:var(--font-size-sm)}.app-sidebar--right{border-right:none;border-left:1px solid var(--color-border-light)}.app-sidebar--placeholder{padding:0}.app-content-column{flex:1;min-width:0;display:flex;flex-direction:column}.app-topbar{display:flex;align-items:center;gap:16px;min-height:var(--topbar-height);padding:calc(12px + env(safe-area-inset-top)) 24px 12px;background:var(--color-topbar-bg);border-bottom:1px solid var(--color-border-light);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);position:sticky;top:0;z-index:var(--z-notification);flex:0 0 auto}.topbar-brand{flex-shrink:0}.topbar-brand-text{font-size:var(--font-size-lg);font-weight:700;margin:0}.app-tabs{display:flex;gap:8px;flex-wrap:wrap}.app-tab{background:transparent;border:1px solid transparent;color:var(--color-text-secondary);border-radius:var(--border-radius-full);padding:8px 16px;min-height:36px;text-decoration:none;display:inline-flex;align-items:center}.app-tab:hover{background:var(--color-bg-hover);color:var(--color-text-primary)}.app-tab.active{background:var(--color-teal);color:var(--color-text-on-primary);border-color:var(--color-border-default)}.app-topbar-user{display:flex;align-items:center;gap:12px;margin-left:auto;flex-shrink:0;color:var(--color-text-secondary);font-size:var(--font-size-sm)}.theme-picker{display:inline-flex}.theme-picker-select{padding:4px 10px;min-height:28px;font-size:var(--font-size-sm);color:var(--color-text-secondary);background:var(--color-bg-tertiary);border:1px solid var(--color-border-default);border-radius:var(--border-radius-full)}.role-badge{padding:2px 10px;border-radius:999px;background:var(--color-badge-role-bg);border:1px solid var(--color-badge-role-border);font-size:var(--font-size-sm);white-space:nowrap}.app-main{flex:1;min-width:0;padding:24px}@media (max-width: 1023px){.app-body{flex-direction:column}.app-sidebar{width:100%;flex:1 1 auto;position:static;height:auto;max-height:none;border-right:none;border-left:none;border-bottom:1px solid var(--color-border-light)}.app-sidebar--placeholder{display:none}.app-topbar{padding:calc(12px + env(safe-area-inset-top)) 16px 12px;flex-wrap:wrap;height:auto}.app-main{padding:16px}}.global-message-banner{position:fixed;top:calc(var(--topbar-height-actual, var(--topbar-height)) + 12px);right:296px;width:320px;max-width:calc(100vw - 32px);z-index:var(--z-notification)}@media (max-width: 1023px){.global-message-banner{right:16px}}.install-banner{position:sticky;top:8px;z-index:20;margin:8px auto 0;max-width:1120px;background:var(--color-teal-dark);border:1px solid var(--color-border-strong);border-radius:12px;padding:10px 12px;display:flex;gap:12px;align-items:center;justify-content:space-between}.install-banner button{background:var(--color-bg-primary);color:var(--color-text-primary)}header{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:20px}.card{background:var(--color-bg-secondary);border:1px solid var(--color-border-light);border-radius:16px;padding:20px;box-shadow:var(--shadow-lg)}.entity-title{font-size:var(--font-size-heading)}h1{font-size:var(--font-size-xxl)}.panel-header{margin-top:0;margin-bottom:var(--spacing-md);font-weight:var(--font-weight-semibold);font-size:var(--font-size-lg)}h2.panel-header{font-size:var(--font-size-xl)}.section-spacing h2{margin-top:0;margin-bottom:12px}.section-group{margin-top:32px}.section-group h2{margin-top:0;margin-bottom:12px}.section-group ul{margin-top:0}.row,.stack{display:flex;gap:12px;flex-wrap:wrap}.space-between{justify-content:space-between;align-items:center}.stack{flex-direction:column}label{display:block;margin-bottom:4px}input,select,button{padding:10px 12px;border-radius:10px;border:1px solid var(--color-border-default);transition:var(--transition-fast)}input,select,textarea{color:var(--color-text-primary);background:var(--color-bg-secondary)}input::placeholder,textarea::placeholder{color:var(--color-text-muted)}input:focus,select:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-focus-ring)}button{cursor:pointer;background:var(--color-primary);color:var(--color-text-on-primary);border:none;border-radius:var(--border-radius-lg);font-weight:var(--font-weight-medium);transition:var(--transition-fast);min-height:44px}button:hover:not(:disabled){filter:brightness(.92)}.btn-primary{background:var(--color-primary);color:var(--color-text-on-primary);border:none}.btn-secondary{background:var(--color-bg-hover);color:var(--color-text-primary);border:1px solid var(--color-border-default)}.btn-danger,.danger{background:var(--color-error);color:var(--color-text-on-primary);border:none}a.btn-primary,a.btn-secondary,a.btn-danger{display:inline-flex;align-items:center;justify-content:center;padding:10px 12px;border-radius:var(--border-radius-lg);min-height:44px;font-weight:var(--font-weight-medium);text-decoration:none}button:focus{outline:2px solid var(--color-primary);outline-offset:2px}button:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}button:disabled{cursor:not-allowed;opacity:.6}.submit-link{display:inline-flex;align-items:center;justify-content:center;padding:10px 12px;border-radius:10px;border:1px solid var(--color-border-default);color:var(--color-text-primary);text-decoration:none;background:var(--color-teal-light)}.checkbox-row{align-items:center}.pill{background:var(--color-bg-hover);color:var(--color-text-primary);border:1px solid var(--color-border-light)}.pill.active{background:var(--color-teal)}.grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.badge{background:var(--color-primary-light);padding:10px 14px;border-radius:999px}.muted{color:var(--color-text-muted)}.helper-icon{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;margin-left:6px;border-radius:50%;border:1px solid var(--color-border-emphasis);font-size:11px;line-height:1;color:var(--color-text-muted);cursor:help;-webkit-user-select:none;user-select:none}.records-list{display:grid;gap:12px}.record-card{border:1px solid var(--color-border-default);border-radius:12px;padding:12px;background:var(--color-bg-tertiary)}.record-header{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:8px}.record-card pre{margin:0;white-space:pre-wrap;word-break:break-word}.table-wrap{overflow-x:auto}.records-table{width:100%;border-collapse:collapse;min-width:640px}.records-table th,.records-table td{padding:10px;border-bottom:1px solid var(--color-border-default);text-align:left;vertical-align:top}.records-table td:last-child,.records-table th:last-child{min-width:180px}.records-table th{color:var(--color-text-secondary);font-weight:600}.table-actions{display:flex;gap:8px;flex-wrap:wrap}.table-actions button{padding:8px 10px}.record-editor{margin-top:16px}.relationship-list{margin-top:12px;padding-left:18px;display:grid;gap:6px}.field-list{list-style:none;padding-left:0;display:grid;gap:10px}.field-item{border:1px solid var(--color-border-default);border-radius:10px;padding:10px;display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;background:var(--color-bg-tertiary)}.field-item.drag-over{border-color:var(--color-teal);box-shadow:0 0 0 2px var(--color-teal-glow)}.field-item--dragging{opacity:.5}.field-drag-handle{cursor:grab;color:var(--color-text-muted);padding-inline:var(--spacing-xs);touch-action:none;-webkit-user-select:none;user-select:none}.field-drag-handle:active{cursor:grabbing}.field-item.dragging{opacity:.55}.field-row-main{align-items:center;gap:10px}.drag-handle{display:inline-flex;align-items:center;justify-content:center;width:20px;border-radius:6px;border:1px solid var(--color-border-strong);color:var(--color-text-secondary);cursor:move;-webkit-user-select:none;user-select:none}.field-editor{width:100%}.tree-control{border:1px solid var(--color-border-default);border-radius:10px;padding:10px;background:var(--color-bg-tertiary);max-height:320px;overflow:auto}.tree-level{list-style:none;margin:0;padding-left:16px;display:grid;gap:6px;border-left:1px dashed var(--color-border-guide)}.tree-level:first-child{padding-left:0;border-left:none}.tree-node-row{display:flex;align-items:center;gap:8px;position:relative}.tree-level:not(:first-child) .tree-node-row:before{content:"";position:absolute;left:-16px;top:50%;width:12px;border-top:1px dashed var(--color-border-guide)}.tree-toggle,.tree-leaf-spacer{width:26px;height:26px;display:inline-flex;align-items:center;justify-content:center;border-radius:6px;border:1px solid var(--color-border-strong)}.tree-toggle{padding:0;background:var(--color-primary-subtle);color:var(--color-text-primary);font-size:12px;font-weight:700}.tree-leaf-spacer{border-color:transparent}.tree-option{padding:6px 10px;border-radius:8px;border:1px solid var(--color-border-default);background:var(--color-bg-tertiary);color:var(--color-text-primary);text-align:left}.tree-option.selected{background:var(--color-teal-light);border-color:var(--color-teal-border-strong)}.tree-option:focus-visible,.tree-toggle:focus-visible{outline:2px solid var(--color-teal-outline);outline-offset:1px}.tree-required-proxy{position:absolute;opacity:0;width:1px;height:1px;pointer-events:none;padding:0;margin:0;border:0}@media (max-width: 1023px){.app-shell{padding:16px;max-width:100%}header{flex-direction:column;align-items:flex-start}.grid{grid-template-columns:1fr}.row{flex-direction:column}.submit-link,button,input,select,textarea{width:100%}.record-header{flex-direction:column;align-items:flex-start}.records-table{font-size:13px}.records-table th,.records-table td{padding:8px}.table-actions button{padding:6px 8px;font-size:12px}}@media (max-width: 767px){.app-shell{padding:12px}.card{padding:14px;border-radius:12px}.install-banner{margin:8px 12px 0;flex-direction:column;align-items:flex-start}.badge{border-radius:12px}}@media (min-width: 1024px){.app-shell{padding:24px}.grid{grid-template-columns:1fr 1fr}header{flex-direction:row;justify-content:space-between}}@media (min-width: 1280px){.app-shell{max-width:1280px}.grid{grid-template-columns:1fr 1fr 1fr;gap:24px}}@media (prefers-reduced-motion: reduce){*{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}@media (prefers-contrast: more){:root{--color-border-default: rgba(255, 255, 255, .3);--color-border-light: rgba(255, 255, 255, .15)}button:focus-visible,input:focus,select:focus{outline-width:3px}}@media (hover: none) and (pointer: coarse){button,input,select,.tree-toggle,.table-actions button{min-height:44px;min-width:44px}.tree-option{padding:8px 12px;min-height:40px}.field-item{padding:12px;min-height:48px}}.preview-fieldset{border:0;padding:0;margin:0;min-width:0}.preview-banner{font-weight:600;background:var(--color-info-bg);color:var(--color-info-text);border:1px solid var(--color-info-border);border-radius:var(--border-radius-md);padding:12px 16px;margin:0}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.sr-only[aria-live]{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}*:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}main{display:block}p[role=alert]{margin-top:4px;margin-bottom:0;color:var(--color-error);font-size:14px}p[id*=desc-]{color:var(--color-text-muted);font-size:12px;margin-top:4px;margin-bottom:0}@media (prefers-contrast: more){button,input,select,textarea{border:2px solid currentColor}.records-table th,.records-table td{border-width:2px}*:focus-visible{outline-width:3px}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}@media (hover: none) and (pointer: coarse){button,input,select,textarea,a[href],[role=button],[role=link]{min-height:44px;min-width:44px}}
