@font-face{font-family:Plus Jakarta Sans;src:url(/fonts/plus-jakarta-sans-latin-wght-normal.woff2) format("woff2");font-weight:200 800;font-style:normal;font-display:swap}:root{--ink: #0b1026;--indigo: #4f46e5;--indigo-hover: #4338ca;--coral: #ff6b4a;--text: #3d4560;--muted: #5a6380;--line: #e3e6f0;--success: #0f766e;--danger: #b42318;--surface: #ffffff;--lavender: #eef0ff;--lavender-pale: #f4f5ff;--peach: #fff1ec;--on-indigo: #e0e3ff;--scrim: rgb(11 16 38 / .55);--font: "Plus Jakarta Sans", system-ui, -apple-system, "Segoe UI", sans-serif;--text-sm: 14px;--text-base: 16px;--text-md: 18px;--text-lg: 20px;--text-xl: 24px;--text-2xl: 32px;--text-3xl: 40px;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-6: 24px;--space-8: 32px;--space-12: 48px;--space-16: 64px;--radius-md: 14px;--radius-card: 20px;--radius-panel: 28px;--radius-pill: 999px;--gutter: 20px;--max: 1200px}@media(min-width:768px){:root{--gutter: 32px}}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{color-scheme:light;-webkit-text-size-adjust:100%}body{min-height:100vh;background:var(--surface);color:var(--text);font-family:var(--font);font-size:var(--text-base);line-height:1.6;-webkit-font-smoothing:antialiased}@media(min-width:768px){body{font-size:17px}}h1,h2,h3{color:var(--ink);font-family:var(--font);word-spacing:.08em}h1{font-size:var(--text-2xl);font-weight:800;line-height:1.15;letter-spacing:-.02em}h2{font-size:var(--text-lg);font-weight:700;line-height:1.3}h3{font-size:var(--text-md);font-weight:700;line-height:1.3}@media(min-width:1024px){h1{font-size:var(--text-3xl)}h2{font-size:var(--text-xl)}}a{color:var(--indigo);text-decoration:underline;text-underline-offset:2px}a:hover{color:var(--indigo-hover)}:focus-visible{outline:2px solid var(--indigo);outline-offset:2px}button{cursor:pointer;font:inherit}input,select,textarea{font:inherit;color:inherit}code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.95em}strong{color:var(--ink);font-weight:600}img,svg{display:block;max-width:100%}.logo-link{display:inline-flex;align-items:center;min-height:44px;text-decoration:none}.logo-img{width:auto;height:24px}@media(min-width:768px){.logo-img{height:28px}}.app-topbar{position:sticky;top:0;z-index:10;border-bottom:1px solid var(--line);background:var(--surface)}.app-topbar__inner{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);max-width:var(--max);min-height:72px;margin:0 auto;padding:var(--space-2) var(--gutter)}.app-nav{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:var(--space-1) var(--space-2)}.app-nav__link{display:inline-flex;align-items:center;min-height:44px;padding:0 var(--space-3);border-radius:var(--radius-pill);color:var(--ink);font-size:var(--text-base);font-weight:600;text-decoration:none}.app-nav__link:hover{background:var(--lavender);color:var(--ink)}.app-nav__link[aria-current=page]{background:var(--lavender);color:var(--indigo-hover)}.app-nav__user{color:var(--muted);font-size:var(--text-sm)}@media(max-width:639px){.app-nav__user{display:none}.app-nav__link{padding:0 var(--space-2)}}.app-content{max-width:var(--max);margin:0 auto;padding:var(--space-8) var(--gutter) var(--space-16)}@media(min-width:1024px){.app-content{padding-top:var(--space-12)}}.page-narrow{max-width:800px;margin:0 auto}.public-layout{display:flex;flex-direction:column;min-height:100vh;background:var(--lavender)}.public-header{max-width:var(--max);width:100%;margin:0 auto;padding:var(--space-4) var(--gutter)}.public-main{display:grid;flex:1;align-items:start;gap:var(--space-8);width:100%;max-width:var(--max);margin:0 auto;padding:var(--space-4) var(--gutter) var(--space-12)}@media(min-width:1024px){.public-main{grid-template-columns:minmax(0,1fr) 460px;align-items:stretch;gap:var(--space-12);padding-top:var(--space-8)}}.public-card{width:100%;max-width:460px;margin:0 auto;padding:var(--space-6);border-radius:var(--radius-card);background:var(--surface)}@media(min-width:768px){.public-card{padding:var(--space-8)}}@media(min-width:1024px){.public-card{align-self:center;margin:0}}.room-panel{position:relative;display:none;overflow:hidden;padding:var(--space-12);border-radius:var(--radius-panel);background:var(--indigo);color:var(--on-indigo)}@media(min-width:1024px){.room-panel{display:flex;flex-direction:column;justify-content:flex-end;min-height:520px}}.room-panel__title{max-width:520px;color:var(--surface);font-size:var(--text-3xl);font-weight:800;line-height:1.12;letter-spacing:-.02em;word-spacing:.08em}.room-panel__body{max-width:480px;margin-top:var(--space-4);font-size:var(--text-md)}.lens-deco{position:absolute;top:-170px;right:-150px;width:420px;height:420px;border:56px solid var(--indigo-hover);border-radius:var(--radius-pill);pointer-events:none}.lens-deco:after{content:"";position:absolute;top:50%;left:50%;width:96px;height:96px;border-radius:var(--radius-pill);background:var(--coral);transform:translate(-50%,-50%)}.auth-form{display:flex;flex-direction:column;gap:var(--space-6)}.auth-heading{display:flex;flex-direction:column;gap:var(--space-2)}.auth-heading p{color:var(--muted)}.auth-link{color:var(--muted);text-align:center}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);min-height:48px;padding:0 var(--space-6);border:1px solid transparent;border-radius:var(--radius-pill);font-size:var(--text-base);font-weight:600;line-height:1.25;text-align:center;text-decoration:none;transition:background .15s ease,color .15s ease}.btn:disabled{cursor:not-allowed;opacity:.55}.btn-primary{background:var(--indigo);color:var(--surface)}.btn-primary:hover:not(:disabled){background:var(--indigo-hover);color:var(--surface)}.btn-secondary{border-color:var(--ink);background:transparent;color:var(--ink)}.btn-secondary:hover:not(:disabled){background:var(--lavender);color:var(--ink)}.btn-danger{background:var(--danger);color:var(--surface)}.btn-danger:hover:not(:disabled){background:var(--ink);color:var(--surface)}.btn-ghost{border:none;background:transparent;color:var(--indigo)}.btn-ghost:hover:not(:disabled){background:var(--lavender);color:var(--indigo-hover)}.btn-sm{min-height:44px;padding:0 var(--space-4)}.btn-link{display:inline;padding:0;border:none;background:none;color:var(--indigo);font:inherit;font-weight:600;text-align:left;text-decoration:underline;text-underline-offset:2px}.btn-link:hover{color:var(--indigo-hover)}.btn-link--block{display:inline-flex;align-items:center;align-self:flex-start;min-height:44px}.btn-row{display:flex;flex-wrap:wrap;gap:var(--space-3)}.btn-row--nav{margin-top:var(--space-6)}.btn-row--nav .btn-primary{flex:1 1 220px}.form-stack{display:flex;flex-direction:column;gap:var(--space-6)}.form-group{display:flex;flex-direction:column;gap:var(--space-2)}.form-group label,.form-label{color:var(--ink);font-size:var(--text-base);font-weight:600}.form-group input,.form-group select,.form-group textarea,.input{width:100%;min-height:48px;padding:var(--space-3) var(--space-4);border:1px solid var(--muted);border-radius:var(--radius-md);background:var(--surface);color:var(--ink);font-size:var(--text-base)}.form-group textarea{min-height:96px;resize:vertical}.form-group input::placeholder,.input::placeholder{color:var(--muted)}.form-group input:focus-visible,.form-group select:focus-visible,.form-group textarea:focus-visible,.input:focus-visible{outline:2px solid var(--indigo);outline-offset:1px;border-color:var(--indigo)}.form-group [aria-invalid=true]{border-color:var(--danger)}.field-hint{color:var(--muted);font-size:var(--text-sm)}.field-error{color:var(--danger);font-size:var(--text-sm);font-weight:500}.field-ok{color:var(--success);font-size:var(--text-sm);font-weight:500}.color-picker-wrapper{display:flex;align-items:center;gap:var(--space-3)}.color-preview{flex:none;width:48px;height:48px;padding:var(--space-1);border:1px solid var(--muted);border-radius:var(--radius-md);background:var(--surface);cursor:pointer}.color-picker-wrapper .color-preview{width:48px;min-height:48px;padding:var(--space-1)}.color-picker-wrapper input[type=text]{flex:1;min-width:0}.color-swatch{display:inline-block;width:16px;height:16px;border-radius:4px;vertical-align:-2px}.domain-selector{display:grid;gap:var(--space-2)}@media(min-width:560px){.domain-selector{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}.toggle-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);min-height:44px;color:var(--ink);font-weight:600}.toggle{position:relative;flex:none;width:52px;height:32px}.toggle input{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer}.toggle .slider{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:var(--radius-pill);background:var(--muted);pointer-events:none;transition:background .2s}.toggle .slider:before{content:"";position:absolute;top:4px;left:4px;width:24px;height:24px;border-radius:var(--radius-pill);background:var(--surface);transition:transform .2s}.toggle input:checked+.slider{background:var(--indigo)}.toggle input:checked+.slider:before{transform:translate(20px)}.toggle input:focus-visible+.slider{outline:2px solid var(--indigo);outline-offset:2px}.error-message{color:var(--danger);font-weight:500}.inline-message,.inline-message-error,.inline-message-success,.inline-message-info{display:block;padding:var(--space-3) var(--space-4);border-left:4px solid var(--indigo);border-radius:var(--radius-md);background:var(--lavender);color:var(--ink)}.inline-message{margin-bottom:var(--space-4)}.inline-message-error{border-left-color:var(--danger);background:var(--peach);color:var(--danger)}.inline-message-success{border-left-color:var(--success);background:var(--lavender-pale);color:var(--success)}.card{padding:var(--space-6);border-radius:var(--radius-card);background:var(--lavender-pale)}@media(min-width:768px){.card{padding:var(--space-8)}}.card+.card,.card+.danger-zone{margin-top:var(--space-6)}.card--white{border:1px solid var(--line);background:var(--surface)}.card h2{margin-bottom:var(--space-3)}.stack{display:flex;flex-direction:column;gap:var(--space-4)}.stack--sm{gap:var(--space-2)}.page-header{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-4);margin-bottom:var(--space-6)}.page-lead{margin-top:calc(var(--space-4) * -1);margin-bottom:var(--space-6);color:var(--muted);overflow-wrap:anywhere}.platform-url{color:var(--indigo);font-size:var(--text-lg);font-weight:700;overflow-wrap:anywhere}.note-box{padding:var(--space-4);border-radius:var(--radius-md);background:var(--surface)}.meta-row{display:flex;flex-wrap:wrap;gap:var(--space-2) var(--space-8);color:var(--muted);font-size:var(--text-sm)}.section-divider{margin-top:var(--space-6);padding-top:var(--space-6);border-top:1px solid var(--line)}.disclosure{display:flex;align-items:center;gap:var(--space-3);width:100%;min-height:44px;padding:0;border:none;background:none;color:var(--ink);font-size:var(--text-lg);font-weight:700;text-align:left}.disclosure__icon{flex:none;width:10px;height:10px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(-45deg);transition:transform .15s ease}.disclosure[aria-expanded=true] .disclosure__icon{transform:rotate(45deg)}.danger-zone{margin-top:var(--space-6);padding:var(--space-6);border:1px solid var(--danger);border-radius:var(--radius-card);background:var(--surface)}@media(min-width:768px){.danger-zone{padding:var(--space-8)}}.danger-zone h2{margin-bottom:var(--space-2);color:var(--danger)}.review-section{padding:var(--space-6);border-radius:var(--radius-card);background:var(--lavender-pale)}.review-section+.review-section{margin-top:var(--space-4)}.review-section__head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);margin-bottom:var(--space-2)}.review-section h2{font-size:var(--text-md)}.review-item{display:flex;flex-wrap:wrap;justify-content:space-between;gap:var(--space-1) var(--space-4);padding:var(--space-3) 0;border-bottom:1px solid var(--line)}.review-item:last-of-type{border-bottom:none}.review-item>span:first-child{color:var(--muted)}.review-item>span:last-child{color:var(--ink);font-weight:600;overflow-wrap:anywhere}.empty-state{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-4);padding:var(--space-12) 0}.wizard-shell{max-width:680px;margin:0 auto}.wizard-lead{margin:var(--space-3) 0 var(--space-8);color:var(--muted)}.wizard-steps{display:flex;margin:0 0 var(--space-8);padding:0;list-style:none;counter-reset:wizard}.wizard-steps li{position:relative;display:flex;flex:1;flex-direction:column;align-items:center;gap:var(--space-2);color:var(--muted);font-size:var(--text-sm);font-weight:500;text-align:center;counter-increment:wizard}.wizard-steps li+li:before{content:"";position:absolute;top:17px;right:calc(50% + 22px);left:calc(-50% + 22px);height:2px;border-radius:1px;background:var(--line)}.wizard-steps li.is-done+li:before,.wizard-steps li.is-done+li.is-current:before{background:var(--indigo)}.wizard-step{position:relative;display:flex;align-items:center;justify-content:center;width:36px;height:36px;border:2px solid var(--line);border-radius:var(--radius-pill);background:var(--surface);color:var(--muted);font-size:var(--text-sm);font-weight:700}.wizard-step:after{content:counter(wizard)}.wizard-step.active{border:6px solid var(--indigo)}.wizard-step.active:after{content:"";width:10px;height:10px;border-radius:var(--radius-pill);background:var(--coral)}.wizard-step.completed{border-color:var(--indigo);background:var(--indigo);color:var(--surface)}.wizard-step.completed:after{content:"";width:12px;height:7px;margin-top:-3px;border-bottom:2px solid currentColor;border-left:2px solid currentColor;transform:rotate(-45deg)}.wizard-steps li.is-current{color:var(--ink);font-weight:700}.checklist{display:grid;gap:var(--space-4);margin:0;padding:0;list-style:none;counter-reset:check}.checklist>li{position:relative;padding-left:52px;counter-increment:check}.checklist>li:before{content:counter(check);position:absolute;top:-2px;left:0;display:flex;align-items:center;justify-content:center;width:36px;height:36px;border:3px solid var(--indigo);border-radius:var(--radius-pill);background:var(--surface);color:var(--indigo-hover);font-size:var(--text-sm);font-weight:800}@media(max-width:559px){.checklist>li{padding-left:44px}.checklist>li:before{width:32px;height:32px}.copy-btn{min-width:80px}}.checklist__title{color:var(--ink);font-weight:600}.checklist__body{margin-top:var(--space-1);color:var(--text)}.checklist__action{margin-top:var(--space-3)}.permission-table{display:grid;gap:var(--space-2);margin:var(--space-3) 0 0;padding:0;list-style:none}.permission-row{position:relative;display:flex;flex-wrap:nowrap;align-items:center;justify-content:space-between;gap:var(--space-2) var(--space-4);padding:var(--space-3) var(--space-3) var(--space-3) var(--space-4);border-radius:var(--radius-md);background:var(--surface)}.permission-row__text{display:flex;flex-direction:column;min-width:0}.permission-row__name{color:var(--ink);font-weight:600}.permission-row__meta{color:var(--muted);font-size:var(--text-sm)}.copy-btn{flex:none;min-width:96px}.permission-list{display:grid;gap:var(--space-1);margin:var(--space-3) 0 0;padding:0;list-style:none}.permission-item{display:flex;align-items:center;gap:var(--space-3);min-height:40px;border-bottom:1px solid var(--line)}.permission-item:last-child{border-bottom:none}.permission-item .icon{display:inline-flex;flex:none;align-items:center;justify-content:center;width:24px;height:24px;border-radius:var(--radius-pill);font-size:var(--text-sm);font-weight:800}.permission-item .icon.granted{background:var(--success);color:var(--surface)}.permission-item .icon.denied{background:var(--danger);color:var(--surface)}.permission-item .icon.pending,.permission-item .icon.unknown{border:2px solid var(--muted);color:var(--muted)}.permission-item .icon.granted:before{content:"✓"}.permission-item .icon.denied:before{content:"✕"}.permission-item .icon.unknown:before{content:"?"}.permission-item__state{margin-left:auto;color:var(--muted);font-size:var(--text-sm)}.progress-tracker{margin:0;padding:0;list-style:none}.progress-step{display:flex;align-items:flex-start;gap:var(--space-3);padding:var(--space-3) 0;border-bottom:1px solid var(--line)}.progress-step:last-child{border-bottom:none}.progress-dot{flex:none;width:16px;height:16px;margin-top:5px;border-radius:var(--radius-pill)}.progress-dot.pending{border:2px solid var(--line)}.progress-dot.running{border:4px solid var(--indigo);background:var(--coral);animation:pulse 1.2s ease-in-out infinite}.progress-dot.done{background:var(--success)}.progress-dot.failed{background:var(--danger)}.progress-step .label{color:var(--ink);font-weight:500}.progress-step .error-text,.error-text{color:var(--danger);font-size:var(--text-sm)}.progress-step .muted{font-size:var(--text-sm)}.tabular{font-variant-numeric:tabular-nums}@keyframes pulse{0%,to{opacity:1}50%{opacity:.55}}@media(prefers-reduced-motion:reduce){.progress-dot.running{animation:none}}.success-mark{display:flex;align-items:center;justify-content:center;width:56px;height:56px;margin:0 auto;border:8px solid var(--indigo);border-radius:var(--radius-pill)}.success-mark:after{content:"";width:14px;height:14px;border-radius:var(--radius-pill);background:var(--coral)}.status-badge{display:inline-flex;align-items:center;padding:var(--space-1) var(--space-3);border-radius:var(--radius-pill);background:var(--lavender);color:var(--indigo-hover);font-size:var(--text-sm);font-weight:600;line-height:1.4;white-space:nowrap}.status-badge.active{background:var(--lavender-pale);color:var(--success)}.status-badge.failed,.status-badge.destroy_failed{background:var(--peach);color:var(--danger)}.status-badge.destroyed{background:var(--lavender-pale);color:var(--muted)}.table-wrap{position:relative;overflow-x:auto;border:1px solid var(--line);border-radius:var(--radius-card);background:var(--surface)}.data-table{width:100%;min-width:560px;border-collapse:collapse;font-size:var(--text-sm)}.data-table th,.data-table td{padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--line);text-align:left;vertical-align:top}.data-table th{background:var(--lavender-pale);color:var(--muted);font-weight:600;white-space:nowrap}.data-table td{color:var(--ink);font-variant-numeric:tabular-nums}.data-table tbody tr:last-child td{border-bottom:none}.data-table code{white-space:nowrap}.data-table .btn-sm{font-size:var(--text-sm)}.deployment-cell{display:flex;flex-direction:column;gap:2px}.cell-actions{display:flex;justify-content:flex-end;gap:var(--space-2)}.filter-form{display:flex;flex-wrap:wrap;align-items:flex-end;gap:var(--space-3);margin-bottom:var(--space-6)}.filter-form .form-group{flex:1 1 240px;max-width:400px}.dialog-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;display:flex;align-items:center;justify-content:center;padding:var(--space-4);background:var(--scrim)}.dialog{position:static;width:100%;max-width:480px;max-height:calc(100vh - 32px);margin:0;overflow:auto;padding:var(--space-6);border:none;border-radius:var(--radius-card);background:var(--surface);color:var(--text)}@media(min-width:768px){.dialog{padding:var(--space-8)}}.dialog.dialog--modal{position:fixed;top:0;right:0;bottom:0;left:0;width:calc(100% - 32px);margin:auto;padding:0}.dialog--modal::backdrop{background:var(--scrim)}.dialog__body{padding:var(--space-6)}@media(min-width:768px){.dialog__body{padding:var(--space-8)}}.dialog-head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-4);margin-bottom:var(--space-4)}.dialog-title{margin-bottom:var(--space-3);font-size:var(--text-lg)}.dialog-head .dialog-title{margin-bottom:0}.dialog-close{display:inline-flex;flex:none;align-items:center;justify-content:center;width:44px;height:44px;margin:-10px -10px 0 0;border:none;border-radius:var(--radius-pill);background:none;color:var(--muted);font-size:var(--text-lg)}.dialog-close:hover{background:var(--lavender);color:var(--ink)}.dialog-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:var(--space-3)}.muted{color:var(--muted)}.small{font-size:var(--text-sm)}.center{text-align:center}.self-start{align-self:flex-start}.mt-2{margin-top:var(--space-2)}.mt-4{margin-top:var(--space-4)}.mt-6{margin-top:var(--space-6)}.mb-6{margin-bottom:var(--space-6)}.license-code{padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);background:var(--lavender);color:var(--ink);font-size:var(--text-xl);font-weight:700;letter-spacing:.05em;overflow-wrap:anywhere;-webkit-user-select:all;user-select:all}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
