.portal{background:var(--bg-0);color:var(--fg-1);font-family:var(--font-body);font-size:var(--text-base);line-height:var(--leading-normal);-webkit-font-smoothing:antialiased;color-scheme:dark;--portal-measure:880px}.portal.wide{--portal-measure:var(--content-max)}.portal *,.portal :after,.portal :before{box-sizing:border-box}.portal a:not(.portal-button){color:var(--text-link);text-decoration:none}.portal a:not(.portal-button):hover{color:var(--accent-hover);text-decoration:underline}.portal a:focus-visible,.portal button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.portal-topbar{position:-webkit-sticky;position:sticky;top:0;z-index:10;background:var(--bg-0);border-bottom:1px solid var(--border-1)}.portal-topbar-in{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;min-height:60px;max-width:var(--portal-measure);margin:0 auto;padding:10px 24px}.portal-brand{display:flex;align-items:center;gap:10px;min-width:0}.portal-brand-name{margin:0;font-family:var(--font-display);font-weight:700;font-size:var(--text-lg);letter-spacing:-.03em;color:var(--fg-1)}.portal-header-actions{display:flex;align-items:center;flex-wrap:wrap;gap:10px}.portal-user{font-size:var(--text-sm);color:var(--fg-2);max-width:22ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.portal-main{gap:20px;max-width:var(--portal-measure);margin:0 auto;padding:28px 24px 72px}.portal-main,.portal-panel{display:flex;flex-direction:column}.portal-panel{gap:16px;padding:20px 24px;background:var(--bg-2);border:1px solid var(--border-1);border-radius:var(--radius-md);box-shadow:var(--shadow-sm)}.portal-panel-head{display:flex;flex-direction:column;gap:4px}.portal-panel-title{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin:0;font-family:var(--font-display);font-size:var(--text-md);font-weight:600;color:var(--fg-1)}.portal-hint{margin:0;font-size:var(--text-sm);color:var(--fg-3);text-wrap:pretty}.portal-notice{display:flex;align-items:center;justify-content:center;min-height:100vh;min-height:100dvh;padding:24px;background:radial-gradient(600px 400px at 50% -10%,rgba(234,88,12,.12),transparent 70%),var(--bg-0)}.portal-notice-column{display:flex;flex-direction:column;gap:24px;width:100%;max-width:460px}.portal-masthead{display:flex;flex-direction:column;align-items:center;gap:10px;text-align:center}.portal-wordmark{font-family:var(--font-display);font-weight:700;font-size:26px;letter-spacing:var(--tracking-tight);color:var(--fg-1)}.portal-card{display:flex;flex-direction:column;gap:16px;padding:clamp(20px,6vw,28px);background:var(--bg-2);border:1px solid var(--border-1);border-radius:var(--radius-lg);box-shadow:var(--shadow-md)}.portal-card-title{margin:0;font-family:var(--font-display);font-size:var(--text-xl);font-weight:600;letter-spacing:var(--tracking-tight);color:var(--fg-1);text-wrap:balance}.portal-card p{margin:0;color:var(--fg-2);line-height:var(--leading-relaxed);text-wrap:pretty}.portal-card p.portal-hint{color:var(--fg-3);font-size:var(--text-sm)}.portal-card strong{color:var(--fg-1);font-weight:600;overflow-wrap:anywhere}.portal-form{gap:16px}.portal-field,.portal-form{display:flex;flex-direction:column}.portal-field{gap:6px}.portal-fieldset{display:contents;margin:0;padding:0;border:0;min-inline-size:auto}.portal-field.compact>input,.portal-field.compact>select{max-width:260px}.portal-field-label,.portal-field>label{font-size:var(--text-sm);font-weight:500;color:var(--fg-2)}.portal-field input:not([type=checkbox]),.portal-field select,.portal-field textarea{width:100%;height:var(--control-h-md);padding:0 12px;background:var(--bg-1);border:1px solid var(--border-2);border-radius:var(--radius-sm);outline:none;color:var(--fg-1);font-family:inherit;font-size:var(--text-base);transition:border-color var(--dur-fast) var(--ease-out),box-shadow var(--dur-fast) var(--ease-out)}.portal-field textarea{height:auto;min-height:96px;padding:10px 12px;line-height:var(--leading-normal);resize:vertical}.portal-field input:not([type=checkbox]):focus,.portal-field select:focus,.portal-field textarea:focus{border-color:var(--border-focus);box-shadow:0 0 0 3px var(--accent-subtle)}.portal-field input::placeholder,.portal-field textarea::placeholder{color:var(--fg-3)}.portal-field input:not([type=checkbox]):disabled,.portal-field select:disabled,.portal-field textarea:disabled{opacity:.5;cursor:not-allowed}.portal-checkbox{display:inline-flex;align-items:center;gap:8px;color:var(--fg-1);cursor:pointer}.portal-checkbox input[type=checkbox]{width:16px;height:16px;margin:0;accent-color:var(--accent);cursor:pointer}.portal-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:var(--control-h-md);padding:0 14px;font-family:inherit;font-size:var(--text-base);font-weight:600;background:var(--accent);border:1px solid transparent;border-radius:var(--radius-sm);cursor:pointer;white-space:nowrap;text-decoration:none;transition:background var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out)}.portal-button,a.portal-button{color:var(--on-accent)}.portal-button:hover:not(:disabled){background:var(--accent-hover);color:var(--on-accent);text-decoration:none}.portal-button:active:not(:disabled){background:var(--accent-press)}.portal-button:disabled{cursor:not-allowed;opacity:.45}.portal-button.secondary{color:var(--fg-1);background:var(--bg-3);border-color:var(--border-2)}.portal-button.secondary:hover:not(:disabled){color:var(--fg-1);background:var(--bg-4)}.portal-button.secondary:active:not(:disabled){background:var(--bg-2)}.portal-button.sm{height:var(--control-h-sm);padding:0 10px;font-size:var(--text-sm)}.portal-card>.portal-button,.portal-form>.portal-button,.portal-panel>.portal-button{align-self:flex-start}.portal-badge{display:inline-flex;align-items:center;gap:6px;height:22px;padding:0 9px;border:1px solid transparent;border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:600;letter-spacing:.02em;white-space:nowrap}.portal-badge.on{color:var(--success);background:var(--success-subtle);border-color:rgba(63,206,124,.3)}.portal-badge.off{color:var(--danger);background:var(--danger-subtle);border-color:rgba(244,101,95,.35)}.portal-badge.neutral{color:var(--fg-2);background:var(--bg-3);border-color:var(--border-2)}.portal-status{margin:0;padding:8px 12px;border:1px solid transparent;border-radius:var(--radius-sm);font-size:var(--text-sm);text-wrap:pretty}.portal-status.success{color:var(--success);background:var(--success-subtle);border-color:rgba(63,206,124,.3)}.portal-status.error{color:var(--danger);background:var(--danger-subtle);border-color:rgba(244,101,95,.35)}.portal-list{display:flex;flex-direction:column;margin:0;padding:0;list-style:none}.portal-list-row{display:flex;align-items:center;flex-wrap:wrap;gap:10px;padding:12px 0;border-top:1px solid var(--border-1)}.portal-list-name{font-weight:600;color:var(--fg-1)}.portal-table-scroll{overflow-x:auto}.portal-table{width:100%;border-collapse:collapse;font-size:var(--text-sm)}.portal-table td,.portal-table th{text-align:left;vertical-align:top;white-space:nowrap}.portal-table th{padding:0 16px 10px 0;border-bottom:1px solid var(--border-1);color:var(--fg-3);font-size:var(--text-xs);font-weight:500;letter-spacing:var(--tracking-wide);text-transform:uppercase}.portal-table td{padding:11px 16px 11px 0;border-top:1px solid var(--border-1);color:var(--fg-1)}.portal-table tr:first-child td{border-top:none}.portal-row-identity{white-space:normal}.portal-row-actions{display:flex;align-items:center;flex-wrap:wrap;gap:8px}.portal-row-select{height:var(--control-h-sm);padding:0 8px;background:var(--bg-1);border:1px solid var(--border-2);border-radius:var(--radius-sm);outline:none;color:var(--fg-1);font-family:inherit;font-size:var(--text-sm);transition:border-color var(--dur-fast) var(--ease-out),box-shadow var(--dur-fast) var(--ease-out)}.portal-row-select:focus{border-color:var(--border-focus);box-shadow:0 0 0 3px var(--accent-subtle)}.portal-row-select:disabled{color:var(--fg-3);background:var(--bg-2);cursor:not-allowed}.portal-meta{font-size:var(--text-sm);color:var(--fg-3)}.portal code,.portal-mono{font-family:var(--font-mono)}.portal code{padding:1px 5px;background:var(--bg-1);border:1px solid var(--border-1);border-radius:4px;font-size:var(--text-sm);color:var(--fg-2)}@media (prefers-reduced-motion:reduce){.portal *,.portal :after,.portal :before{transition-duration:.01ms!important;animation-duration:.01ms!important}}