:root{--font-sans:"Inter","Inter Variable",-apple-system,"Hiragino Sans","Hiragino Kaku Gothic ProN","Noto Sans JP","Apple SD Gothic Neo","Noto Sans KR",system-ui,sans-serif;--font-mono:"Berkeley Mono",ui-monospace,"SF Mono","JetBrains Mono","SFMono-Regular",Menlo,monospace;--duration-fast:100ms;--duration-normal:150ms;--duration-slow:250ms;--ease:cubic-bezier(0.25,0.1,0.25,1);--radius-sm:8px;--radius-md:10px;--radius-lg:12px;--radius-xl:16px;--ui-touch:48px;--ui-touch-min:44px;--ui-bg:var(--bg-app);--ui-surface:var(--bg-primary);--ui-text:var(--text-primary);--ui-muted:var(--text-tertiary);--ui-primary:var(--accent);--ui-primary-hover:var(--accent-hover);--ui-border:var(--border-default);--ui-danger:var(--danger);--ui-radius:var(--radius-lg)}:root,:root[data-theme=dark]{color-scheme:dark;--bg-app:#08090a;--bg-primary:#101012;--bg-secondary:#16161a;--bg-tertiary:#1c1c21;--bg-hover:rgba(255,255,255,0.04);--bg-active:rgba(255,255,255,0.08);--border-subtle:rgba(255,255,255,0.06);--border-default:rgba(255,255,255,0.1);--border-strong:rgba(255,255,255,0.16);--text-primary:#f7f8f8;--text-secondary:#b4b8c0;--text-tertiary:#8a8f98;--text-quaternary:#62666d;--accent:#5e6ad2;--accent-hover:#6e79d6;--accent-text:#828fff;--accent-contrast:#ffffff;--success:#4cb782;--warning:#f2c94c;--danger:#eb5757;--info:#4ea7fc;--success-bg:rgba(76,183,130,0.15);--warning-bg:rgba(242,201,76,0.15);--danger-bg:rgba(235,87,87,0.15);--info-bg:rgba(78,167,252,0.15)}:root[data-theme=light]{color-scheme:light;--bg-app:#f9f9fb;--bg-primary:#ffffff;--bg-secondary:#f9f9fb;--bg-tertiary:#f4f4f6;--bg-hover:rgba(0,0,0,0.03);--bg-active:rgba(0,0,0,0.06);--border-subtle:rgba(0,0,0,0.06);--border-default:rgba(0,0,0,0.1);--border-strong:rgba(0,0,0,0.16);--text-primary:#16161a;--text-secondary:#4c4f57;--text-tertiary:#6f7076;--text-quaternary:#9b9da3;--accent:#5e6ad2;--accent-hover:#5059b8;--accent-text:#5e6ad2;--success:#067647;--warning:#b54708;--danger:#b42318;--info:#175cd3;--success-bg:rgba(6,118,71,0.1);--warning-bg:rgba(181,71,8,0.1);--danger-bg:rgba(180,35,24,0.08);--info-bg:rgba(23,92,211,0.08)}@media (prefers-color-scheme:light){:root:not([data-theme=dark]):not([data-theme=light]){color-scheme:light;--bg-app:#f9f9fb;--bg-primary:#ffffff;--bg-secondary:#f9f9fb;--bg-tertiary:#f4f4f6;--bg-hover:rgba(0,0,0,0.03);--bg-active:rgba(0,0,0,0.06);--border-subtle:rgba(0,0,0,0.06);--border-default:rgba(0,0,0,0.1);--border-strong:rgba(0,0,0,0.16);--text-primary:#16161a;--text-secondary:#4c4f57;--text-tertiary:#6f7076;--text-quaternary:#9b9da3;--accent:#5e6ad2;--accent-hover:#5059b8;--accent-text:#5e6ad2;--accent-contrast:#ffffff;--success:#067647;--warning:#b54708;--danger:#b42318;--info:#175cd3;--success-bg:rgba(6,118,71,0.1);--warning-bg:rgba(181,71,8,0.1);--danger-bg:rgba(180,35,24,0.08);--info-bg:rgba(23,92,211,0.08)}}body{background:var(--bg-app);color:var(--text-primary);font-family:var(--font-sans);transition:background-color var(--duration-normal) var(--ease),color var(--duration-normal) var(--ease)}:where(a,button,summary,[role=button],[tabindex]):focus-visible{outline:none;box-shadow:0 0 0 2px var(--bg-primary),0 0 0 4px var(--accent)}:where(input,select,textarea):focus-visible{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 25%,transparent)}.ui-mono{font-family:var(--font-mono);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.ui-lang-switcher{display:inline-flex;gap:4px}.ui-lang-button{min-height:44px;padding:0 12px;border:1px solid transparent;border-radius:var(--radius-sm);background:transparent;color:var(--text-tertiary);font-family:var(--font-sans);font-size:13px;font-weight:510;cursor:pointer;transition:color var(--duration-fast) var(--ease),background-color var(--duration-fast) var(--ease),border-color var(--duration-fast) var(--ease)}.ui-lang-button:hover{color:var(--text-primary);background:var(--bg-hover)}.ui-lang-button.is-active{border-color:color-mix(in srgb,var(--accent) 45%,transparent);background:color-mix(in srgb,var(--accent) 14%,transparent);color:var(--text-primary);font-weight:590}.ui-theme-switcher{display:inline-flex;gap:4px}.ui-theme-button{min-height:44px;padding:0 12px;border:1px solid transparent;border-radius:var(--radius-sm);background:transparent;color:var(--text-tertiary);font-family:var(--font-sans);font-size:13px;font-weight:510;cursor:pointer;transition:color var(--duration-fast) var(--ease),background-color var(--duration-fast) var(--ease),border-color var(--duration-fast) var(--ease)}.ui-theme-button:hover{color:var(--text-primary);background:var(--bg-hover)}.ui-theme-button.is-active{border-color:color-mix(in srgb,var(--accent) 45%,transparent);background:color-mix(in srgb,var(--accent) 14%,transparent);color:var(--text-primary);font-weight:590}.ui-button{display:inline-flex;align-items:center;justify-content:center;min-height:var(--ui-touch-min);padding:0 20px;border:1px solid transparent;border-radius:var(--radius-sm);background:var(--accent);color:var(--accent-contrast);font-family:var(--font-sans);font-size:15px;font-weight:510;text-decoration:none;cursor:pointer;transition:background-color var(--duration-fast) var(--ease),border-color var(--duration-fast) var(--ease),color var(--duration-fast) var(--ease)}.ui-button:hover{background:var(--accent-hover)}.ui-button.is-secondary{background:var(--bg-tertiary);color:var(--text-primary);border-color:var(--border-default)}.ui-button.is-secondary:hover{background:var(--bg-tertiary);border-color:var(--border-strong)}.ui-button.is-ghost{background:transparent;color:var(--text-secondary)}.ui-button.is-ghost:hover{background:var(--bg-hover);color:var(--text-primary)}.ui-button.is-danger{background:var(--danger);color:#ffffff}.ui-button.is-danger:hover{background:color-mix(in srgb,var(--danger) 85%,#000000)}.ui-button:disabled{opacity:.5;cursor:not-allowed}.ui-card{background:var(--bg-primary);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:20px}.ui-banner{border-radius:var(--radius-sm);padding:10px 14px;font-size:14px}.ui-banner.is-error{background:var(--danger-bg);border:1px solid color-mix(in srgb,var(--danger) 35%,transparent);color:var(--danger)}.ui-banner.is-success{background:var(--success-bg);border:1px solid color-mix(in srgb,var(--success) 35%,transparent);color:var(--success)}.ui-banner.is-info{background:var(--info-bg);border:1px solid color-mix(in srgb,var(--info) 35%,transparent);color:var(--info)}.ui-tag{display:inline-flex;align-items:center;min-height:24px;padding:2px 10px;border-radius:999px;font-size:13px;font-weight:510;background:var(--bg-tertiary);color:var(--text-secondary)}.ui-tag.is-success{background:var(--success-bg);color:var(--success)}.ui-tag.is-warning{background:var(--warning-bg);color:var(--warning)}.ui-tag.is-danger{background:var(--danger-bg);color:var(--danger)}.ui-tag.is-info{background:var(--info-bg);color:var(--info)}@media (prefers-reduced-motion:reduce){*,:after,:before{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important}}:root,:root[data-theme=dark]{--accent:#3fa894;--accent-hover:#4fb5a1;--accent-text:#6bd4c0;--accent-contrast:#08090a}:root[data-theme=light]{--accent:#0f766e;--accent-hover:#115e59;--accent-text:#0f766e;--accent-contrast:#ffffff}@media (prefers-color-scheme:light){:root:not([data-theme=dark]):not([data-theme=light]){--accent:#0f766e;--accent-hover:#115e59;--accent-text:#0f766e;--accent-contrast:#ffffff}}*{box-sizing:border-box}body,html{margin:0;padding:0}body{font-size:15px;line-height:1.6}main.centered{min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:24px}.card{background:var(--bg-primary);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:40px 32px;width:100%;max-width:440px;text-align:center}.brand{font-size:24px;font-weight:590;letter-spacing:-.012em;margin:0 0 8px}.subtitle{color:var(--text-secondary);margin:0 0 28px}.button-primary{display:inline-flex;align-items:center;justify-content:center;min-height:var(--ui-touch);padding:0 24px;border:none;border-radius:var(--radius-sm);background:var(--accent);color:var(--accent-contrast);font-size:16px;font-weight:510;text-decoration:none;cursor:pointer;transition:background-color var(--duration-fast) var(--ease)}.button-primary:hover{background:var(--accent-hover)}.error-banner{background:var(--danger-bg);border:1px solid color-mix(in srgb,var(--danger) 35%,transparent);color:var(--danger);border-radius:var(--radius-sm)}.error-banner,.success-banner{padding:10px 14px;margin-bottom:20px;font-size:14px}.success-banner{background:var(--success-bg);border:1px solid color-mix(in srgb,var(--success) 35%,transparent);color:var(--success);border-radius:var(--radius-sm)}.console-header{position:-webkit-sticky;position:sticky;top:0;z-index:10;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);background:color-mix(in srgb,var(--bg-app) 80%,transparent);border-bottom:1px solid var(--border-subtle);display:flex;align-items:center;gap:24px;padding:0 24px;min-height:56px;flex-wrap:wrap}.console-header .brand-small{font-weight:590;letter-spacing:-.012em;font-size:16px}.console-header nav{display:flex;gap:4px;flex:1 1;flex-wrap:wrap}.console-header nav a,.console-header>a{color:var(--text-secondary);text-decoration:none;white-space:nowrap;padding:8px 12px;border-radius:var(--radius-sm);font-size:14px;transition:background-color var(--duration-fast) var(--ease),color var(--duration-fast) var(--ease)}.console-header nav a:hover,.console-header>a:hover{background:var(--bg-hover);color:var(--text-primary)}.console-main{max-width:960px;margin:0 auto;padding:32px 24px}.page-title{font-size:22px;font-weight:590;letter-spacing:-.012em;margin:0 0 20px}.data-table{width:100%;border-collapse:collapse;background:var(--bg-primary);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);overflow:hidden}.data-table td,.data-table th{text-align:left;padding:10px 14px;border-bottom:1px solid var(--border-subtle);font-size:14px}.data-table th{background:var(--bg-secondary);color:var(--text-tertiary);font-size:12px;font-weight:510}.data-table tbody tr{transition:background-color var(--duration-fast) var(--ease)}.data-table tbody tr:hover{background:var(--bg-hover)}.data-table button{min-height:var(--ui-touch-min);padding:0 14px;border:1px solid var(--border-default);border-radius:var(--radius-sm);background:var(--bg-tertiary);color:var(--text-primary);font-size:14px;font-weight:510;font-family:inherit;cursor:pointer;transition:border-color var(--duration-fast) var(--ease)}.data-table button:hover{border-color:var(--border-strong)}.badge{display:inline-block;padding:2px 10px;border-radius:999px;font-size:12px;font-weight:510}.badge.active{background:var(--success-bg);color:var(--success)}.badge.critical,.badge.suspended{background:var(--danger-bg);color:var(--danger)}.badge.info{background:var(--info-bg);color:var(--info)}.badge.warning{background:var(--warning-bg);color:var(--warning)}.form-card{background:var(--bg-primary);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:24px;margin-top:28px}.form-card h2{font-size:16px;font-weight:590;letter-spacing:-.012em;margin:0 0 16px}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));grid-gap:14px;gap:14px;margin-bottom:16px}.form-field{display:flex;flex-direction:column;gap:6px}.form-field label{font-size:13px;color:var(--text-tertiary)}.form-field input,.form-field select,.form-field textarea{min-height:var(--ui-touch-min);border:1px solid var(--border-default);border-radius:var(--radius-sm);background:var(--bg-tertiary);color:var(--text-primary);padding:9px 12px;font-size:14px;font-family:inherit;transition:border-color var(--duration-fast) var(--ease)}.form-field input[type=checkbox]{min-height:0}.form-field.full{grid-column:1/-1}.empty-state{text-align:center;color:var(--text-tertiary);padding:48px 24px;background:var(--bg-primary);border:1px dashed var(--border-default);border-radius:var(--radius-lg)}.table-scroll{overflow-x:auto}.row-actions{display:flex;gap:8px}.form-hint{color:var(--text-tertiary);font-size:13px;margin:0 0 14px}.design-form textarea[name=css]{width:100%;font-family:var(--font-mono);font-size:13px;line-height:1.5;resize:vertical}.design-form:has(select[name=kind] option[value=original]:checked) .design-category{opacity:.5;pointer-events:none}.data-table .badge,.data-table button,.row-actions button{white-space:nowrap}