*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg: #0f0f10;--surface: #1a1a1d;--surface-2: #222226;--border: #2a2a2e;--border-focus: #4f52d9;--primary: #6366f1;--primary-hover:#4f52d9;--primary-dim: rgba(99, 102, 241, .15);--text: #f4f4f5;--text-2: #a1a1aa;--text-3: #71717a;--text-invert: #0f0f10;--success: #22c55e;--success-dim: rgba(34, 197, 94, .12);--warning: #f59e0b;--warning-dim: rgba(245, 158, 11, .12);--error: #ef4444;--error-dim: rgba(239, 68, 68, .12);--info: #38bdf8;--info-dim: rgba(56, 189, 248, .12);--online-dot: #22c55e;--offline-dot: #f59e0b;--font: -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;--font-mono: "Cascadia Code", "Fira Code", "Consolas", monospace;--gap-xs: 4px;--gap-sm: 8px;--gap-md: 16px;--gap-lg: 24px;--gap-xl: 40px;--r-sm: 6px;--r-md: 10px;--r-lg: 16px;--r-full: 9999px;--shadow-sm: 0 1px 3px rgba(0,0,0,.4);--shadow-md: 0 4px 16px rgba(0,0,0,.5);--shadow-lg: 0 8px 32px rgba(0,0,0,.6);--t: .16s ease}html{font-size:16px;-webkit-text-size-adjust:100%}body{font-family:var(--font);background:var(--bg);color:var(--text);line-height:1.6;min-height:100dvh;-webkit-font-smoothing:antialiased}#app{min-height:100dvh;display:flex;flex-direction:column}a{color:var(--primary);text-decoration:none;transition:color var(--t)}a:hover{color:var(--primary-hover)}h1{font-size:2rem;font-weight:700;line-height:1.2}h2{font-size:1.5rem;font-weight:600;line-height:1.3}h3{font-size:1.25rem;font-weight:600;line-height:1.4}h4{font-size:1rem;font-weight:600}.text-sm{font-size:.875rem}.text-xs{font-size:.75rem}.text-muted{color:var(--text-2)}.text-dim{color:var(--text-3)}.text-success{color:var(--success)}.text-warning{color:var(--warning)}.text-error{color:var(--error)}.text-primary{color:var(--primary)}.flex{display:flex}.flex-col{display:flex;flex-direction:column}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-xs{gap:var(--gap-xs)}.gap-sm{gap:var(--gap-sm)}.gap-md{gap:var(--gap-md)}.gap-lg{gap:var(--gap-lg)}.gap-xl{gap:var(--gap-xl)}.w-full{width:100%}.grow{flex:1}.shrink-0{flex-shrink:0}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);padding:var(--gap-lg);box-shadow:var(--shadow-sm)}.card-sm{padding:var(--gap-md);border-radius:var(--r-md)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--gap-sm);font-family:var(--font);font-size:.9375rem;font-weight:500;line-height:1;padding:.625rem 1.25rem;border-radius:var(--r-md);border:1.5px solid transparent;cursor:pointer;transition:background var(--t),border-color var(--t),color var(--t),opacity var(--t),box-shadow var(--t);white-space:nowrap;-webkit-user-select:none;user-select:none;text-decoration:none}.btn:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.btn:disabled,.btn[aria-disabled=true]{opacity:.4;cursor:not-allowed;pointer-events:none}.btn-primary{background:var(--primary);color:#fff;border-color:var(--primary)}.btn-primary:hover:not(:disabled){background:var(--primary-hover);border-color:var(--primary-hover);box-shadow:0 0 0 4px var(--primary-dim)}.btn-ghost{background:transparent;color:var(--text-2);border-color:var(--border)}.btn-ghost:hover:not(:disabled){background:var(--surface-2);color:var(--text);border-color:var(--border-focus)}.btn-danger{background:var(--error-dim);color:var(--error);border-color:var(--error)}.btn-danger:hover:not(:disabled){background:var(--error);color:#fff}.btn-lg{padding:.8125rem 1.625rem;font-size:1rem}.btn-sm{padding:.4375rem .875rem;font-size:.8125rem}.btn-full{width:100%}.btn .spinner{width:1em;height:1em;border:2px solid currentColor;border-top-color:transparent;border-radius:50%;animation:spin .7s linear infinite}.form-group{display:flex;flex-direction:column;gap:var(--gap-xs)}label{font-size:.875rem;font-weight:500;color:var(--text-2)}.input{width:100%;background:var(--surface-2);border:1.5px solid var(--border);border-radius:var(--r-md);color:var(--text);font-family:var(--font);font-size:.9375rem;padding:.625rem .875rem;transition:border-color var(--t),box-shadow var(--t);outline:none}.input::placeholder{color:var(--text-3)}.input:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-dim)}.input.error{border-color:var(--error);box-shadow:0 0 0 3px var(--error-dim)}.alert{padding:.75rem 1rem;border-radius:var(--r-md);font-size:.875rem;border:1px solid transparent}.alert-error{background:var(--error-dim);border-color:var(--error);color:var(--error)}.alert-success{background:var(--success-dim);border-color:var(--success);color:var(--success)}.alert-warning{background:var(--warning-dim);border-color:var(--warning);color:var(--warning)}.alert-info{background:var(--info-dim);border-color:var(--info);color:var(--info)}.toggle-row{display:flex;align-items:center;justify-content:space-between;padding:.625rem 0;gap:var(--gap-md)}.toggle-row .toggle-label{display:flex;flex-direction:column;gap:2px}.toggle{position:relative;width:44px;height:24px;flex-shrink:0}.toggle input{opacity:0;width:0;height:0;position:absolute}.toggle-track{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--border);border-radius:var(--r-full);cursor:pointer;transition:background var(--t)}.toggle input:checked+.toggle-track{background:var(--primary)}.toggle-track:before{content:"";position:absolute;width:18px;height:18px;left:3px;top:3px;background:#fff;border-radius:50%;transition:transform var(--t);box-shadow:var(--shadow-sm)}.toggle input:checked+.toggle-track:before{transform:translate(20px)}.toggle input:focus-visible+.toggle-track{outline:2px solid var(--primary);outline-offset:2px}.badge{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:var(--r-full);font-size:.75rem;font-weight:600;letter-spacing:.02em}.badge-primary{background:var(--primary-dim);color:var(--primary)}.badge-success{background:var(--success-dim);color:var(--success)}.badge-warning,.badge-offline{background:var(--warning-dim);color:var(--warning)}.status-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.status-dot.online{background:var(--online-dot)}.status-dot.offline{background:var(--offline-dot)}.divider{height:1px;background:var(--border);border:none}.divider-text{display:flex;align-items:center;gap:var(--gap-md);color:var(--text-3);font-size:.75rem}.divider-text:before,.divider-text:after{content:"";flex:1;height:1px;background:var(--border)}.page-centered{min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:var(--gap-md)}.auth-card{width:100%;max-width:420px}.app-shell{display:grid;grid-template-rows:auto 1fr;min-height:100dvh}.topbar{background:var(--surface);border-bottom:1px solid var(--border);padding:0 var(--gap-lg);height:56px;display:flex;align-items:center;justify-content:space-between;gap:var(--gap-md);position:sticky;top:0;z-index:100}.topbar-logo{display:flex;align-items:center;gap:var(--gap-sm);font-weight:700;font-size:1.0625rem;color:var(--text);text-decoration:none}.topbar-logo .logo-mark{width:28px;height:28px;background:var(--primary);border-radius:var(--r-sm);display:flex;align-items:center;justify-content:center;font-size:.875rem;font-weight:800;color:#fff;flex-shrink:0}.main-content{padding:var(--gap-xl) var(--gap-lg);max-width:960px;width:100%;margin:0 auto}.selector-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:var(--gap-sm)}.selector-item{background:var(--surface-2);border:1.5px solid var(--border);border-radius:var(--r-md);padding:var(--gap-md);cursor:pointer;transition:border-color var(--t),background var(--t),box-shadow var(--t);text-align:left;display:flex;flex-direction:column;gap:4px;-webkit-user-select:none;user-select:none}.selector-item:hover{border-color:var(--primary);background:var(--primary-dim)}.selector-item.selected{border-color:var(--primary);background:var(--primary-dim);box-shadow:0 0 0 1px var(--primary)}.selector-item .item-name{font-weight:600;font-size:.9375rem;color:var(--text)}.selector-item .item-sub{font-size:.75rem;color:var(--text-3)}.section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--gap-md)}.section-title{font-size:.75rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--text-3)}.terms-container{width:100%;max-width:680px;margin:0 auto}.terms-scroll{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);padding:var(--gap-lg) var(--gap-xl);height:420px;overflow-y:auto;scroll-behavior:smooth;font-size:.9375rem;line-height:1.75}.terms-scroll::-webkit-scrollbar{width:6px}.terms-scroll::-webkit-scrollbar-track{background:transparent}.terms-scroll::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}.terms-chunk{transition:background var(--t),color var(--t);border-radius:var(--r-sm);padding:2px 4px;margin:-2px -4px}.terms-chunk.active{background:var(--primary-dim);color:var(--text)}.terms-audio-bar{display:flex;align-items:center;gap:var(--gap-md);padding:var(--gap-md);background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-md)}.audio-progress{flex:1;height:4px;background:var(--border);border-radius:var(--r-full);overflow:hidden}.audio-progress-bar{height:100%;background:var(--primary);border-radius:var(--r-full);width:0%;transition:width .3s linear}.terms-lock-notice{display:flex;align-items:center;gap:var(--gap-sm);font-size:.8125rem;color:var(--text-3)}.price-tag{font-size:3rem;font-weight:800;line-height:1;color:var(--text)}.price-tag sup{font-size:1.25rem;vertical-align:super;font-weight:600}.feature-list{list-style:none;display:flex;flex-direction:column;gap:var(--gap-sm)}.feature-list li{display:flex;align-items:flex-start;gap:var(--gap-sm);font-size:.9375rem;color:var(--text-2)}.feature-list li .check{color:var(--success);flex-shrink:0;margin-top:2px}@keyframes spin{to{transform:rotate(360deg)}}@keyframes fade-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.fade-in{animation:fade-in .25s ease both}.loading-screen{min-height:100dvh;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:var(--gap-lg)}.loading-logo{width:48px;height:48px;background:var(--primary);border-radius:var(--r-md);display:flex;align-items:center;justify-content:center;font-size:1.5rem;font-weight:800;color:#fff}.loading-spinner{width:32px;height:32px;border:3px solid var(--border);border-top-color:var(--primary);border-radius:50%;animation:spin .8s linear infinite}@media (max-width: 640px){h1{font-size:1.625rem}h2{font-size:1.25rem}.main-content{padding:var(--gap-lg) var(--gap-md)}.terms-scroll{height:320px;padding:var(--gap-md)}.selector-grid{grid-template-columns:1fr 1fr}}@media (max-width: 380px){.selector-grid{grid-template-columns:1fr}}.nav-item{text-align:left;border-radius:var(--r-md);transition:background var(--t),color var(--t),border-color var(--t)}.nav-item:hover{background:var(--primary-dim);color:var(--primary)}.ic-step{animation:fade-in .2s ease both}.path-card:hover{border-color:var(--primary)!important;background:var(--primary-dim)}.tab-btn{border-radius:var(--r-sm) var(--r-sm) 0 0}*{scrollbar-width:thin;scrollbar-color:var(--border) transparent}*::-webkit-scrollbar{width:5px;height:5px}*::-webkit-scrollbar-track{background:transparent}*::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}pre{background:transparent;border:none;font-family:var(--font-mono)}.template-item{transition:border-color var(--t),background var(--t)}.template-item:hover{border-color:var(--primary)}aside{padding-bottom:220px}@media (max-width: 768px){[style*="grid-template-columns:220px"]{grid-template-columns:1fr!important}aside{display:none!important}#main-content{height:auto!important;overflow-y:unset!important}}
