.skill-selector h2{margin-bottom:.25rem}.skill-selector .subtitle{color:var(--color-text-secondary);font-size:.92rem;margin-bottom:1.2rem}.skill-search{margin-bottom:1rem;max-width:420px;position:relative}.search-input{background:var(--color-surface);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);padding:.6rem .9rem .6rem 2.4rem;width:100%}.search-input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px #4f46e526;outline:none}.search-icon{font-size:.9rem;left:.8rem;opacity:.6;pointer-events:none;position:absolute;top:50%;transform:translateY(-50%)}.skill-tabs{background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md);display:inline-flex;gap:4px;margin-bottom:.9rem;padding:4px}.tab-button{background:#0000;border:none;border-radius:var(--radius-sm);color:var(--color-text-secondary);font-size:.88rem;font-weight:500;padding:.45rem 1rem;transition:background .15s ease,color .15s ease}.tab-button.active,.tab-button:hover{color:var(--color-primary)}.tab-button.active{background:var(--color-surface);box-shadow:var(--shadow-sm);font-weight:600}.selected-count{color:var(--color-text-secondary);font-size:.88rem;margin-bottom:1.1rem}.selected-count strong{color:var(--color-primary);font-size:1rem}.skill-category{margin-bottom:1.6rem}.category-header{align-items:center;display:flex;gap:.7rem;margin-bottom:.8rem}.category-icon{font-size:1.4rem}.category-info h3{font-size:1rem}.category-info p{color:var(--color-text-muted);font-size:.82rem}.skill-grid{grid-gap:.7rem;display:grid;gap:.7rem;grid-template-columns:repeat(auto-fill,minmax(250px,1fr))}.skill-card{background:var(--color-surface);border:1.5px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;padding:.85rem 1rem;transition:border-color .15s ease,box-shadow .15s ease,background .15s ease}.skill-card:hover{border-color:var(--color-primary);box-shadow:var(--shadow-md)}.skill-card.selected{background:var(--color-primary-soft);border-color:var(--color-primary)}.skill-header{align-items:center;display:flex;gap:.55rem;margin-bottom:.35rem}.skill-header input[type=checkbox]{accent-color:var(--color-primary);flex-shrink:0;height:16px;width:16px}.skill-header h4{flex:1 1;font-size:.94rem}.external-badge,.tag-badge{background:#ecfeff;border:1px solid #a5f3fc;border-radius:999px;color:#0e7490;font-size:.66rem;font-weight:700;letter-spacing:.04em;padding:1px 7px;text-transform:uppercase}.skill-description{color:var(--color-text-secondary);font-size:.82rem;margin-bottom:.35rem}.skill-meta{color:var(--color-text-muted);display:flex;flex-wrap:wrap;font-size:.76rem;gap:.7rem}.skill-dependencies small{color:var(--color-text-muted);font-family:var(--font-mono);font-size:.74rem}.skill-card.skeleton{pointer-events:none}.skeleton-header{display:flex;gap:.55rem;margin-bottom:.5rem}.skeleton-checkbox,.skeleton-description,.skeleton-meta,.skeleton-title{animation:shimmer 1.4s infinite;background:linear-gradient(90deg,var(--color-border) 25%,#f1f5f9 50%,var(--color-border) 75%);background-size:200% 100%;border-radius:4px}.skeleton-checkbox{height:16px;width:16px}.skeleton-title{flex:1 1;height:16px}.skeleton-description{height:12px;margin-bottom:.4rem}.skeleton-meta{height:10px;width:60%}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.no-results{color:var(--color-text-muted);padding:2rem 0;text-align:center}.error-message{align-items:center;background:var(--color-danger-soft);border:1px solid #fecaca;border-radius:var(--radius-md);color:#991b1b;display:flex;font-size:.88rem;gap:1rem;justify-content:space-between;margin-bottom:1rem;padding:.85rem 1.1rem}.retry-button{background:#fff;border:1px solid #fecaca;border-radius:var(--radius-sm);color:var(--color-danger);font-weight:600;padding:.3rem .8rem}.load-more-container{margin:1.2rem 0;text-align:center}.load-more-button{background:var(--color-surface);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);color:var(--color-text-secondary);font-size:.88rem;font-weight:500;padding:.55rem 1.4rem}.load-more-button:hover{border-color:var(--color-primary);color:var(--color-primary)}.selected-skills-summary{border-top:1px solid var(--color-border);margin-top:1.6rem;padding-top:1.2rem}.selected-skills-summary h3{font-size:.95rem;margin-bottom:.6rem}.selected-skills-list{display:flex;flex-wrap:wrap;gap:.4rem}.skill-tag{align-items:center;background:var(--color-primary-soft);border:1px solid #c7d2fe;border-radius:999px;color:#3730a3;display:inline-flex;font-size:.82rem;font-weight:500;gap:.4rem;padding:.25rem .45rem .25rem .8rem}.skill-tag button{background:none;border:none;border-radius:50%;color:#6366f1;font-size:1rem;line-height:1;padding:0 4px}.skill-tag button:hover{color:var(--color-danger)}.requirement-editor .editor-header{align-items:flex-start;display:flex;flex-wrap:wrap;gap:1rem;justify-content:space-between;margin-bottom:1.4rem}.requirement-editor .subtitle{color:var(--color-text-secondary);font-size:.92rem}.requirement-form{background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md);margin-bottom:1.4rem;padding:1.2rem 1.4rem}.priority-buttons{display:flex;flex-wrap:wrap;gap:.5rem}.priority-btn{background:var(--color-surface);border:1.5px solid var(--color-border-strong);border-radius:999px;color:var(--color-text-secondary);font-size:.85rem;font-weight:600;padding:.45rem 1rem;transition:all .15s ease}.priority-btn.selected{color:#fff}.form-actions{display:flex;gap:.6rem;justify-content:flex-end;margin-top:.6rem}.priority-group{margin-bottom:1.4rem}.priority-group h3{font-size:.95rem;font-size:.85rem;letter-spacing:.03em;margin-bottom:.6rem;text-transform:uppercase}.requirement-cards{grid-gap:.55rem;display:grid;gap:.55rem}.requirement-card{align-items:flex-start;background:var(--color-surface);border:1px solid var(--color-border);border-left:4px solid var(--color-border-strong);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);display:flex;gap:.8rem;justify-content:space-between;padding:.8rem 1rem;transition:box-shadow .15s ease}.requirement-card:hover{box-shadow:var(--shadow-md)}.requirement-content h4{font-size:.95rem;margin-bottom:.15rem}.requirement-content p{color:var(--color-text-secondary);font-size:.85rem}.requirement-actions{display:flex;flex-shrink:0;gap:.25rem}.requirement-actions button{background:none;border:1px solid #0000;border-radius:var(--radius-sm);font-size:.95rem;padding:.25rem .4rem;transition:background .15s ease}.requirement-actions button:hover{background:var(--color-bg);border-color:var(--color-border)}.requirement-editor .empty-state{grid-gap:.3rem;background:var(--color-bg);border:1px dashed var(--color-border-strong);border-radius:var(--radius-md);color:var(--color-text-muted);display:grid;gap:.3rem;padding:2.5rem 1rem;text-align:center}.steering-panel h2{margin-bottom:.25rem}.steering-panel .subtitle{color:var(--color-text-secondary);font-size:.92rem;margin-bottom:1.3rem}.steering-sections{grid-gap:1.1rem;display:grid;gap:1.1rem}.steering-section{background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:1.15rem 1.4rem}.steering-section h3{color:var(--color-text);font-size:1rem;margin-bottom:.35rem}.steering-section .subtitle{margin-bottom:.9rem}.checkbox-label,.toggle-label{align-items:center;cursor:pointer;display:flex;font-size:.93rem;font-weight:500;gap:.55rem}.checkbox-label input[type=checkbox],.toggle-label input[type=checkbox]{accent-color:var(--color-primary);flex-shrink:0;height:17px;width:17px}.radio-group{grid-gap:.5rem;display:grid;gap:.5rem}.radio-group label{align-items:flex-start;background:var(--color-surface);border:1.5px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;display:flex;font-size:.92rem;gap:.55rem;padding:.55rem .75rem;transition:border-color .15s ease}.radio-group label:hover{border-color:var(--color-primary)}.radio-group input[type=radio]{accent-color:var(--color-primary);flex-shrink:0;margin-top:3px}.radio-label{display:grid}.radio-label small{color:var(--color-text-muted);font-size:.8rem}.group-checkboxes{grid-gap:.55rem;display:grid;gap:.55rem;margin-top:.5rem}.group-checkboxes .checkbox-label{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);display:block;padding:.5rem .75rem}.group-checkboxes .checkbox-label input{margin-right:.5rem;vertical-align:-3px}.mysql-config{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:.85rem 1rem}.info-box{background:var(--color-primary-soft);border:1px solid #c7d2fe;border-radius:var(--radius-md);color:#3730a3;font-size:.85rem;margin-top:.7rem;padding:.7rem .95rem}.steering-section.summary{background:var(--color-surface)}.summary-table{border-collapse:collapse;font-size:.9rem;width:100%}.summary-table td{border-bottom:1px solid var(--color-border);padding:.5rem .6rem}.summary-table tr:last-child td{border-bottom:none}.summary-table td:first-child{color:var(--color-text-secondary);font-weight:600;width:38%}.app-preview h2{margin-bottom:.25rem}.app-preview .subtitle{color:var(--color-text-secondary);font-size:.92rem;margin-bottom:1.3rem}.preview-sections{grid-gap:1.1rem;display:grid;gap:1.1rem}.preview-section{background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:1.1rem 1.3rem}.preview-section h3{font-size:.98rem;margin-bottom:.7rem}.preview-card.portal-card-preview{align-items:center;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);display:flex;gap:1rem;max-width:460px;padding:1.1rem 1.3rem}.portal-card-preview .card-icon{align-items:center;background:var(--color-primary-soft);border-radius:var(--radius-md);display:flex;flex-shrink:0;font-size:2rem;height:56px;justify-content:center;width:56px}.portal-card-preview .card-content h4{font-size:1.05rem;margin-bottom:.15rem}.portal-card-preview .card-content p{color:var(--color-text-secondary);font-size:.85rem;margin-bottom:.3rem}.portal-card-preview .card-url{color:var(--color-primary);font-family:var(--font-mono);font-size:.8rem}.skills-preview{display:flex;flex-wrap:wrap;gap:.45rem}.skill-preview-item{align-items:center;background:var(--color-surface);border:1px solid var(--color-border);border-radius:999px;display:inline-flex;font-size:.84rem;gap:.45rem;padding:.3rem .85rem}.skill-preview-item .skill-category{background:var(--color-primary-soft);border-radius:999px;color:var(--color-primary);font-size:.7rem;font-weight:700;padding:1px 7px;text-transform:uppercase}.requirements-preview{grid-gap:.45rem;display:grid;gap:.45rem}.requirement-preview-item{align-items:center;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);display:flex;font-size:.88rem;gap:.6rem;padding:.5rem .8rem}.requirement-priority{border-radius:4px;color:#fff;flex-shrink:0;font-size:.68rem;font-weight:700;padding:2px 7px}.empty-preview{color:var(--color-text-muted);font-size:.88rem}.config-preview{grid-gap:.4rem;display:grid;gap:.4rem}.config-item{display:flex;font-size:.9rem;gap:.6rem}.config-label{color:var(--color-text-secondary);font-weight:600;min-width:140px}.structure-preview pre{background:#0f172a;border-radius:var(--radius-md);color:#e2e8f0;font-size:.8rem;line-height:1.6;overflow-x:auto;padding:1rem 1.2rem}.deployment-preview{grid-gap:.7rem;display:grid;gap:.7rem;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.deployment-item{align-items:center;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);display:flex;gap:.7rem;padding:.75rem .95rem}.deployment-icon{font-size:1.4rem}.deployment-info{display:grid;font-size:.84rem}.deployment-info strong{font-size:.88rem}.deployment-info span{color:var(--color-text-secondary);font-family:var(--font-mono);font-size:.78rem;word-break:break-all}.infra-panel{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);margin:0 0 1.2rem;overflow:hidden}.infra-toggle{background:none;border:none;font-size:.9rem;gap:1rem;justify-content:space-between;padding:.85rem 1.2rem;width:100%}.infra-title,.infra-toggle{align-items:center;display:flex}.infra-title{color:var(--color-text);font-weight:600;gap:.5rem}.chevron{color:var(--color-text-muted);display:inline-block;transition:transform .15s ease}.chevron.open{transform:rotate(90deg)}.infra-source{background:var(--color-primary-soft);border-radius:999px;color:var(--color-primary);font-size:.72rem;font-weight:700;letter-spacing:.05em;padding:2px 8px;text-transform:uppercase}.infra-summary{color:var(--color-text-muted);font-size:.82rem}.infra-body{grid-gap:.9rem;display:grid;gap:.9rem;padding:0 1.2rem 1.1rem}.infra-error{align-items:center;background:var(--color-danger-soft);border:1px solid #fecaca;border-radius:var(--radius-md);color:#991b1b;display:flex;font-size:.86rem;gap:.8rem;justify-content:space-between;padding:.7rem .9rem}.infra-retry{background:#fff;border:1px solid #fecaca;border-radius:var(--radius-sm);color:var(--color-danger);font-size:.8rem;font-weight:600;padding:.25rem .7rem}.infra-loading{color:var(--color-text-muted);font-size:.88rem}.infra-servers{grid-gap:.6rem;display:grid;gap:.6rem;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.infra-server{grid-gap:.15rem;border:1px solid var(--color-border);border-radius:var(--radius-md);display:grid;font-size:.85rem;gap:.15rem;padding:.65rem .85rem}.infra-server.online{background:var(--color-success-soft);border-color:#bbf7d0}.infra-server.offline{background:var(--color-danger-soft);border-color:#fecaca}.server-head{align-items:center;display:flex;gap:.45rem}.server-dot{border-radius:50%;flex-shrink:0;height:9px;width:9px}.infra-server.online .server-dot{background:var(--color-success)}.infra-server.offline .server-dot{background:var(--color-danger)}.server-ip{color:var(--color-text-muted);font-family:var(--font-mono);font-size:.78rem}.server-status{color:var(--color-text-secondary);font-size:.78rem}.infra-ports .ports-label{color:var(--color-text-secondary);display:block;font-size:.8rem;font-weight:600;margin-bottom:.35rem}.ports-list{display:flex;flex-wrap:wrap;gap:.3rem}.port-chip{background:var(--color-bg);border:1px solid var(--color-border);border-radius:999px;color:var(--color-text-secondary);font-family:var(--font-mono);font-size:.76rem;padding:2px 9px}.port-chip em{color:var(--color-text);font-style:normal}.infra-refresh{background:var(--color-surface);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);color:var(--color-text-secondary);font-size:.82rem;font-weight:500;justify-self:start;padding:.35rem .85rem}.infra-refresh:hover:not(:disabled){border-color:var(--color-primary);color:var(--color-primary)}.spec-driven-page{margin:0 auto;max-width:1040px}.spec-driven-page .page-header{align-items:center;display:flex;flex-wrap:wrap;gap:1.1rem;margin-bottom:1.4rem}.spec-driven-page .page-header h1{font-size:1.55rem}.back-button{background:var(--color-surface);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);color:var(--color-text-secondary);font-size:.88rem;font-weight:500;padding:.45rem .9rem;transition:border-color .15s ease,color .15s ease}.back-button:hover{border-color:var(--color-primary);color:var(--color-primary)}.editing-info{align-items:center;display:flex;gap:.7rem;margin-left:auto}.editing-badge{background:var(--color-warning-soft);border:1px solid #fde68a;border-radius:999px;color:#92400e;font-size:.76rem;font-weight:700;padding:3px 10px}.editing-info .app-url{font-family:var(--font-mono);font-size:.84rem}.step-progress{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);display:flex;margin-bottom:1.4rem;overflow:hidden}.step-progress .step{align-items:center;border-right:1px solid var(--color-border);cursor:pointer;display:flex;flex:1 1;gap:.5rem;justify-content:center;padding:.85rem .4rem;transition:background .15s ease;-webkit-user-select:none;user-select:none}.step-progress .step:last-child{border-right:none}.step-progress .step:hover{background:var(--color-primary-soft)}.step-progress .step .step-number{align-items:center;background:var(--color-bg);border:1.5px solid var(--color-border-strong);border-radius:50%;color:var(--color-text-secondary);display:inline-flex;flex-shrink:0;font-size:.8rem;font-weight:700;height:26px;justify-content:center;width:26px}.step-progress .step .step-label{color:var(--color-text-secondary);font-size:.85rem;font-weight:500;white-space:nowrap}.step-progress .step.active{background:var(--color-primary-soft)}.step-progress .step.active .step-number{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.step-progress .step.active .step-label{color:var(--color-primary);font-weight:700}.step-progress .step.completed .step-number{background:var(--color-success);border-color:var(--color-success);color:#fff}@media (max-width:820px){.step-progress{flex-wrap:wrap}.step-progress .step{min-width:33%}.step-progress .step .step-label{display:none}}.issues-banner{background:var(--color-warning-soft);border:1px solid #fde68a;border-radius:var(--radius-md);color:#78350f;font-size:.9rem;margin-bottom:1.2rem;padding:.85rem 1.1rem}.issues-banner ul{margin:.4rem 0 0 1.2rem}.issue-field{background:#fde68a;border-radius:4px;display:inline-block;font-size:.74rem;font-weight:700;margin-right:6px;padding:0 6px;text-transform:uppercase}.inline-warn{color:var(--color-danger);font-weight:600}.step-content{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);margin-bottom:1.2rem;padding:1.8rem}.step-content h2{font-size:1.25rem;margin-bottom:1.2rem}.basics-form{max-width:560px}.subdomain-input{align-items:stretch;display:flex}.subdomain-input input{border:1px solid var(--color-border-strong);border-radius:var(--radius-md) 0 0 var(--radius-md);border-right:none;flex:1 1;padding:.6rem .8rem}.subdomain-input input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px #4f46e526;outline:none}.subdomain-suffix{align-items:center;background:var(--color-bg);border:1px solid var(--color-border-strong);border-radius:0 var(--radius-md) var(--radius-md) 0;color:var(--color-text-secondary);display:inline-flex;font-family:var(--font-mono);font-size:.88rem;padding:0 .85rem}.icon-selector{display:flex;flex-wrap:wrap;gap:.45rem}.icon-option{align-items:center;background:var(--color-surface);border:1.5px solid var(--color-border-strong);border-radius:var(--radius-md);display:flex;font-size:1.25rem;height:46px;justify-content:center;transition:border-color .15s ease,background .15s ease,transform .1s ease;width:46px}.icon-option:hover{border-color:var(--color-primary);transform:scale(1.06)}.icon-option.selected{background:var(--color-primary-soft);border-color:var(--color-primary);box-shadow:0 0 0 3px #4f46e526}.generate-step h2{margin-bottom:1rem}.redeploy-notice{background:var(--color-warning-soft);border:1px solid #fde68a;border-radius:var(--radius-md);color:#78350f;font-size:.92rem;margin-bottom:1.1rem;padding:.85rem 1.1rem}.summary{background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md);margin-bottom:1.1rem;padding:1.1rem 1.3rem}.summary h3{font-size:1rem;margin-bottom:.6rem}.summary ul{grid-gap:.35rem 1.5rem;display:grid;gap:.35rem 1.5rem;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));list-style:none}.summary li{color:var(--color-text-secondary);font-size:.9rem}.generate-actions{display:flex;gap:.7rem;margin:1.2rem 0}.generate-btn{font-size:1rem;padding:.7rem 1.6rem}.generate-info{color:var(--color-text-secondary);font-size:.9rem}.generate-info ol{grid-gap:.25rem;display:grid;gap:.25rem;margin:.45rem 0 0 1.3rem}.llm-info-box{background:var(--color-primary-soft);border:1px solid #c7d2fe;border-radius:var(--radius-md);color:#3730a3;font-size:.9rem;margin-top:1.1rem;padding:.95rem 1.15rem}.generating-status{display:flex;flex-direction:column;gap:1.1rem}.generation-header{align-items:center;background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md);display:flex;gap:.9rem;padding:1rem 1.2rem}.generation-header strong{display:block;font-size:1.02rem}.generation-header .elapsed{color:var(--color-text-muted);font-family:var(--font-mono);font-size:.84rem}.big-spinner{animation:spin .8s linear infinite;border:3px solid var(--color-border);border-radius:50%;border-top-color:var(--color-primary);flex-shrink:0;height:34px;width:34px}.done-icon{font-size:1.8rem}.generation-progress{grid-gap:.5rem;display:grid;gap:.5rem;grid-template-columns:repeat(auto-fill,minmax(230px,1fr))}.generation-step-item{align-items:center;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);display:flex;font-size:.86rem;gap:.55rem;min-height:44px;padding:.55rem .8rem}.generation-step-item.pending{opacity:.65}.generation-step-item.success{background:var(--color-success-soft);border-color:#bbf7d0}.generation-step-item.failed{background:var(--color-danger-soft);border-color:#fecaca}.generation-step-item.skipped{opacity:.5}.generation-step-item .step-label{font-weight:500}.generation-step-item .step-error{color:var(--color-danger);font-size:.74rem;max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.step-spinner{flex-shrink:0;margin-left:auto}.status-message{color:var(--color-text-secondary);font-size:.92rem}.success-message{grid-gap:.6rem;background:var(--color-success-soft);border:1px solid #bbf7d0;border-radius:var(--radius-md);display:grid;font-size:.95rem;gap:.6rem;justify-items:start;padding:1.1rem 1.3rem}.success-message .hint{color:var(--color-text-muted);font-size:.82rem}.step-navigation{align-items:center;display:flex;justify-content:space-between;margin:1.2rem 0 2.5rem}.step-indicator{color:var(--color-text-muted);font-family:var(--font-mono);font-size:.85rem}.app-list-page{margin:0 auto;max-width:1240px}.app-list-page .page-header{align-items:flex-end;display:flex;flex-wrap:wrap;gap:1rem;justify-content:space-between;margin-bottom:1.5rem}.app-list-page .page-header h1{font-size:1.7rem}.app-list-page .subtitle{color:var(--color-text-secondary);font-size:.95rem}.app-list-page .header-actions{gap:.6rem}.app-list-page .header-actions,.toolbar{align-items:center;display:flex;flex-wrap:wrap}.toolbar{gap:1rem;justify-content:space-between;margin-bottom:1.5rem}.filter-bar{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);display:inline-flex;gap:4px;padding:4px}.filter-bar button{background:#0000;border:none;border-radius:var(--radius-sm);color:var(--color-text-secondary);font-size:.88rem;font-weight:500;padding:.4rem .9rem;transition:background .15s ease,color .15s ease}.filter-bar button:hover{color:var(--color-primary)}.filter-bar button.active{background:var(--color-primary);color:#fff}.toolbar-right{align-items:center;display:flex;gap:.5rem}.app-search{background:var(--color-surface);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);padding:.5rem .85rem;width:240px}.app-search:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px #4f46e526;outline:none}.app-sort{background:var(--color-surface);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);padding:.5rem .65rem}.refresh-btn{padding:.45rem .7rem}.apps-grid{grid-gap:1.25rem;display:grid;gap:1.25rem;grid-template-columns:repeat(auto-fill,minmax(330px,1fr))}.app-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);display:flex;flex-direction:column;overflow:hidden;transition:box-shadow .18s ease,transform .18s ease,border-color .18s ease}.app-card:hover{border-color:#c7d2fe;box-shadow:var(--shadow-lg);transform:translateY(-2px)}.app-card-header{justify-content:space-between;padding:1rem 1.15rem 0}.app-card-header,.app-icon{align-items:center;display:flex}.app-icon{background:var(--color-primary-soft);border-radius:var(--radius-md);font-size:1.9rem;height:52px;justify-content:center;width:52px}.app-status{border-radius:999px;color:#fff;font-size:.72rem;font-weight:700;letter-spacing:.05em;padding:3px 10px;text-transform:uppercase}.badge-draft{background:var(--color-warning)}.badge-generating{background:var(--color-accent)}.badge-deployed{background:var(--color-success)}.badge-failed{background:var(--color-danger)}.app-card-content{flex:1 1;padding:.9rem 1.15rem .4rem}.app-card-content h3{font-size:1.08rem;margin-bottom:.3rem}.app-description{-webkit-line-clamp:2;-webkit-box-orient:vertical;color:var(--color-text-secondary);display:-webkit-box;font-size:.87rem;margin-bottom:.55rem;overflow:hidden}.app-card .app-url{color:var(--color-primary);font-family:var(--font-mono);font-size:.83rem;word-break:break-all}.app-meta{display:flex;flex-wrap:wrap;gap:.45rem;margin-top:.7rem}.app-meta span{background:var(--color-bg);border:1px solid var(--color-border);border-radius:999px;color:var(--color-text-secondary);font-size:.76rem;padding:2px 10px}.app-card-actions{display:flex;flex-wrap:wrap;gap:.4rem;padding:.85rem 1.15rem}.app-card-actions .btn-danger,.app-card-actions .btn-secondary{font-size:.8rem;padding:.35rem .7rem}.app-card-footer{background:#fafbfe;border-top:1px solid var(--color-border);color:var(--color-text-muted);display:flex;font-size:.78rem;justify-content:space-between;padding:.6rem 1.15rem}.empty-state{background:var(--color-surface);border:1px dashed var(--color-border-strong);border-radius:var(--radius-lg);padding:4.5rem 1rem;text-align:center}.empty-icon{font-size:3rem;margin-bottom:.8rem}.empty-state h2{font-size:1.25rem;margin-bottom:.4rem}.empty-state p{color:var(--color-text-secondary);margin-bottom:1.4rem}.standalone-page{margin:0 auto;max-width:1040px}.standalone-page .page-header{align-items:center;display:flex;flex-wrap:wrap;gap:1.1rem;margin-bottom:1.4rem}.standalone-page .page-header h1{font-size:1.55rem}.standalone-page .subtitle{color:var(--color-text-secondary);font-size:.95rem}.standalone-page .header-content{flex:1 1;min-width:0}.standalone-page .header-actions{align-items:center;display:flex;gap:.6rem}.sd-hub-grid{grid-gap:1.1rem;display:grid;gap:1.1rem;grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}.sd-app-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);cursor:pointer;display:flex;flex-direction:column;padding:1.3rem 1.4rem;text-align:left;transition:border-color .15s ease,box-shadow .15s ease,transform .15s ease}.sd-app-card:hover:not(.disabled){border-color:var(--color-primary);box-shadow:var(--shadow-md);transform:translateY(-2px)}.sd-app-card.disabled{cursor:not-allowed;opacity:.55}.sd-app-card-head{align-items:center;display:flex;justify-content:space-between;margin-bottom:.7rem}.sd-app-icon{font-size:1.9rem;line-height:1}.sd-app-card h3{font-size:1.1rem;margin-bottom:.35rem}.sd-app-desc{color:var(--color-text-secondary);flex:1 1;font-size:.86rem;line-height:1.5}.sd-app-meta{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.85rem}.sd-tag{background:var(--color-primary-soft);border-radius:999px;color:var(--color-primary);font-size:.7rem;font-weight:700;letter-spacing:.05em;padding:2px 9px;text-transform:uppercase}.sd-tag.muted{background:var(--color-bg);color:var(--color-text-muted)}.admin-required{background:var(--color-surface);border:1px dashed var(--color-border-strong);border-radius:var(--radius-lg);padding:4.5rem 1rem;text-align:center}.admin-required h2{font-size:1.25rem;margin-bottom:.4rem}.admin-required p{color:var(--color-text-secondary)}.sd-tabs{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);display:inline-flex;flex-wrap:wrap;gap:4px;margin-bottom:1.5rem;padding:4px}.sd-tabs button{background:#0000;border:none;border-radius:var(--radius-sm);color:var(--color-text-secondary);font-size:.88rem;font-weight:500;padding:.45rem 1rem;transition:background .15s ease,color .15s ease}.sd-tabs button:hover{color:var(--color-primary)}.sd-tabs button.active{background:var(--color-primary);color:#fff}.sd-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);margin-bottom:1.5rem;padding:1.5rem 1.6rem}.sd-card h2{font-size:1.2rem;margin-bottom:.3rem}.sd-card .card-hint{color:var(--color-text-secondary);font-size:.88rem;margin-bottom:1.25rem}.sd-card .card-head{align-items:center;display:flex;flex-wrap:wrap;gap:1rem;justify-content:space-between;margin-bottom:.9rem}.sd-card .card-head h2{margin-bottom:0}.card-head-actions{align-items:center;display:flex;gap:.8rem}.show-all-toggle{align-items:center;color:var(--color-text-secondary);cursor:pointer;display:inline-flex;font-size:.88rem;gap:.45rem;-webkit-user-select:none;user-select:none}.standalone-page .form-row{grid-gap:0 1.25rem;display:grid;gap:0 1.25rem;grid-template-columns:1fr 1fr}@media (max-width:640px){.standalone-page .form-row{grid-template-columns:1fr}}.standalone-page .form-group input{background:var(--color-surface);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);padding:.6rem .8rem;transition:border-color .15s ease,box-shadow .15s ease;width:100%}.standalone-page .form-group input[type=checkbox]{width:auto}.pem-input{font-family:var(--font-mono);font-size:.8rem;min-height:160px;white-space:pre}.profile-row{align-items:center;display:flex;gap:.5rem}.profile-row select{flex:1 1}.key-saved-note{color:var(--color-success);display:block;font-size:.82rem;margin-top:.35rem}.ssh-actions{display:flex;flex-wrap:wrap;gap:.6rem}.ai-group{background:#fafbfe;border:1px solid var(--color-border);border-radius:var(--radius-md);margin-bottom:1.25rem}.ai-toggle{align-items:center;background:#0000;border:none;color:var(--color-text);display:flex;font-size:.92rem;font-weight:600;gap:.5rem;padding:.7rem .9rem;text-align:left;width:100%}.ai-toggle:hover{color:var(--color-primary)}.ai-toggle .chevron{color:var(--color-text-muted);display:inline-block;transition:transform .15s ease}.ai-toggle .chevron.open{transform:rotate(90deg)}.ai-fields{border-top:1px solid var(--color-border);padding:0 .9rem .4rem}.ai-hint{color:var(--color-text-muted);font-size:.82rem;margin:.7rem 0 .9rem}.result-card{background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md);margin-top:1.5rem;padding:1.25rem 1.35rem}.result-card.result-success{background:var(--color-success-soft);border-color:#bbf7d0}.result-card.result-failed{background:var(--color-danger-soft);border-color:#fecaca}.result-card h3{font-size:1.05rem;margin-bottom:.7rem}.result-head{align-items:center;display:flex;flex-wrap:wrap;gap:.9rem;margin-bottom:1rem}.version-badge{background:var(--color-primary);border-radius:999px;color:#fff;font-size:.78rem;font-weight:700;padding:3px 12px}.key-id{color:var(--color-text-secondary);font-size:.85rem}.key-id code{font-size:.82rem}.download-link{font-size:1.02rem;padding:.75rem 1.6rem}.expires-note{color:var(--color-text-muted);display:block;font-size:.82rem;margin-top:.45rem}.instructions{grid-gap:1rem;display:grid;gap:1rem;margin-top:1.25rem}.instruction-block .instruction-head{align-items:center;display:flex;gap:.8rem;justify-content:space-between;margin-bottom:.4rem}.instruction-block h4{font-size:.92rem}.instruction-block .copy-btn{font-size:.78rem;padding:.3rem .7rem}.instruction-block pre{background:#0f172a;border-radius:var(--radius-md);color:#e2e8f0;font-size:.8rem;line-height:1.6;overflow-x:auto;padding:.85rem 1rem;white-space:pre-wrap;word-break:break-word}.deploy-running{align-items:center;background:var(--color-primary-soft);border:1px solid #c7d2fe;border-radius:var(--radius-md);color:var(--color-primary);display:flex;font-size:.92rem;font-weight:500;gap:.6rem;margin-top:1.25rem;padding:.85rem 1rem}.deploy-steps{list-style:none;margin:.4rem 0 .8rem;padding:0}.deploy-steps li{align-items:baseline;border-bottom:1px solid var(--color-border);display:flex;font-size:.9rem;gap:.6rem;padding:.4rem 0}.deploy-steps li:last-child{border-bottom:none}.deploy-steps .step-name{font-weight:600}.deploy-steps .step-detail{color:var(--color-text-secondary);font-size:.82rem}.step-icon{align-items:center;display:inline-flex;flex-shrink:0;font-weight:700;height:18px;justify-content:center;width:18px}.step-ok{color:var(--color-success)}.step-fail{color:var(--color-danger)}.step-skip{color:var(--color-text-muted)}.step-spinner{animation:spin .8s linear infinite;border:2px solid var(--color-border);border-radius:50%;border-top-color:var(--color-primary);height:14px;width:14px}.deploy-url{font-size:.95rem}.deploy-url a{font-family:var(--font-mono);word-break:break-all}.deploy-meta{color:var(--color-text-secondary);margin-top:.3rem}.table-wrap{overflow-x:auto}.sd-table{border-collapse:collapse;font-size:.88rem;width:100%}.sd-table th{border-bottom:1px solid var(--color-border-strong);color:var(--color-text-muted);font-size:.76rem;font-weight:700;letter-spacing:.05em;padding:.5rem .7rem;text-align:left;text-transform:uppercase;white-space:nowrap}.sd-table td{border-bottom:1px solid var(--color-border);padding:.6rem .7rem;vertical-align:middle}.sd-table tr:last-child td{border-bottom:none}.sd-table .purpose-cell{max-width:240px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sd-table .actions-cell{display:flex;gap:.4rem;white-space:nowrap}.sd-table .btn-table{font-size:.78rem;padding:.3rem .7rem}.sd-table .muted,.sd-table .row-revoked td{color:var(--color-text-muted)}.status-pill{border-radius:999px;color:#fff;display:inline-block;font-size:.72rem;font-weight:700;letter-spacing:.05em;padding:3px 10px;text-transform:uppercase}.req-pending{background:var(--color-warning)}.req-approved{background:var(--color-success)}.req-rejected{background:var(--color-danger)}.key-active{background:var(--color-success)}.key-revoked{background:var(--color-text-muted)}.table-loading{display:flex;justify-content:center;padding:2rem 0}.empty-note{color:var(--color-text-secondary);font-size:.9rem;padding:.6rem 0}.notice-banner{background:var(--color-success-soft);border:1px solid #bbf7d0;border-radius:var(--radius-md);color:#166534;font-size:.92rem;margin:1rem 0;padding:.8rem 1rem}.creds-box{background:#fffbeb;background:var(--color-warning-soft,#fffbeb);border:1px solid var(--color-warning);border-radius:var(--radius-md);margin:1rem 0 1.25rem;padding:.9rem 1.1rem}.creds-title{align-items:center;color:#92400e;display:flex;font-size:.85rem;font-weight:700;gap:.8rem;justify-content:space-between;margin-bottom:.6rem}.creds-dismiss{font-size:.74rem;padding:.2rem .6rem}.creds-row{align-items:center;display:flex;flex-wrap:wrap;gap:.6rem;padding:.25rem 0}.creds-label{color:var(--color-text-secondary);display:inline-block;font-size:.82rem;font-weight:600;min-width:78px}.creds-value{background:var(--color-surface);border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);font-family:var(--font-mono);font-size:.86rem;padding:.25rem .55rem;word-break:break-all}.creds-row .copy-btn{font-size:.76rem;padding:.25rem .65rem}.deploy-note{color:var(--color-text-secondary);font-size:.88rem;margin-top:.7rem}.wipe-toggle{align-items:center;color:var(--color-text);cursor:pointer;display:inline-flex;font-size:.9rem;font-weight:500;gap:.45rem;-webkit-user-select:none;user-select:none}.wipe-warning{color:var(--color-danger);display:block;font-size:.82rem;margin-top:.35rem}.portable-card{border-color:var(--color-primary);box-shadow:var(--shadow-sm),0 0 0 1px var(--color-primary) inset}.portable-head{align-items:center;display:flex;flex-wrap:wrap;gap:1rem;justify-content:space-between;margin-bottom:.3rem}.portable-head h2{margin-bottom:0}.portable-badge{background:var(--color-primary);border-radius:999px;color:#fff;font-size:.72rem;font-weight:700;letter-spacing:.02em;padding:3px 10px;white-space:nowrap}.portable-notes{grid-gap:.5rem;color:var(--color-text-secondary);display:grid;font-size:.85rem;gap:.5rem;line-height:1.4;margin:1rem 0 0;padding-left:1.1rem}.portable-notes li strong{color:var(--color-text)}.login-page{align-items:center;display:flex;justify-content:center;min-height:100vh;padding:2rem 1rem}.login-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);max-width:480px;padding:2.5rem 2.25rem;text-align:center;width:100%}.login-logo{align-items:center;display:flex;flex-direction:column;gap:.4rem;margin-bottom:.6rem}.login-logo .logo-icon{filter:drop-shadow(0 4px 12px rgba(79,70,229,.35));font-size:2.6rem}.login-logo h1{-webkit-text-fill-color:#0000;background:linear-gradient(120deg,#4f46e5,#06b6d4);-webkit-background-clip:text;background-clip:text;font-size:1.6rem}.login-subtitle{color:var(--color-text-secondary);font-size:.98rem;margin-bottom:1.75rem}.login-features{grid-gap:.8rem;display:grid;gap:.8rem;margin-bottom:1.9rem;text-align:left}.feature{align-items:flex-start;background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md);display:flex;gap:.85rem;padding:.8rem .95rem}.feature-icon{font-size:1.35rem;line-height:1.4}.feature h3{font-size:.92rem;margin-bottom:.1rem}.feature p{color:var(--color-text-secondary);font-size:.83rem}.login-btn{background:var(--color-primary);border:none;border-radius:var(--radius-md);box-shadow:var(--shadow-md);color:#fff;font-size:1rem;font-weight:600;padding:.8rem 1.25rem;transition:background .15s ease,box-shadow .15s ease;width:100%}.login-btn:hover{background:var(--color-primary-hover);box-shadow:var(--shadow-lg)}.login-help{color:var(--color-text-muted);font-size:.83rem;margin-top:1rem}.app-header{background:linear-gradient(120deg,#1e1b4b,#312e81 55%,#3730a3);box-shadow:var(--shadow-md);color:#fff;height:62px;justify-content:space-between;padding:0 28px;position:-webkit-sticky;position:sticky;top:0;z-index:50}.app-header,.header-left{align-items:center;display:flex}.header-left{gap:2rem}.logo{align-items:center;background:none;border:none;color:#fff;display:flex;font-size:1.12rem;gap:.55rem;padding:.25rem 0}.logo-mark{filter:drop-shadow(0 0 6px rgba(165,180,252,.8));font-size:1.3rem}.logo-text{font-weight:400;letter-spacing:.01em}.logo-text strong{font-weight:700}.nav-links{display:flex;gap:.4rem}.nav-links button{background:#0000;border:none;border-radius:var(--radius-md);color:#ffffffbf;font-size:.92rem;font-weight:500;padding:.45rem .95rem;transition:background .15s ease,color .15s ease}.nav-links button:hover{background:#ffffff1a;color:#fff}.nav-links button.active{background:#ffffff29;color:#fff}.header-right{gap:1rem}.header-right,.user-info{align-items:center;display:flex}.user-info{gap:.55rem}.user-avatar{align-items:center;background:linear-gradient(135deg,#818cf8,#06b6d4);border-radius:50%;color:#fff;display:inline-flex;font-size:.85rem;font-weight:700;height:30px;justify-content:center;width:30px}.username{font-size:.9rem;font-weight:500}.admin-badge{background:#a5b4fc40;border:1px solid #a5b4fc80;border-radius:999px;color:#e0e7ff;font-size:.7rem;font-weight:700;letter-spacing:.04em;padding:2px 8px;text-transform:uppercase}.logout-btn{background:#ffffff1a;border:1px solid #ffffff40;border-radius:var(--radius-md);color:#fff;font-size:.85rem;font-weight:500;padding:.4rem .9rem;transition:background .15s ease}.logout-btn:hover{background:#fff3}@media (max-width:640px){.app-header{padding:0 14px}.nav-links,.username{display:none}}.app{display:flex;flex-direction:column;min-height:100vh}.main-content{flex:1 1;margin:0 auto;max-width:1400px;padding:28px 24px;width:100%}@media (max-width:640px){.main-content{padding:16px 12px}}:root{--color-primary:#4f46e5;--color-primary-hover:#4338ca;--color-primary-soft:#eef2ff;--color-accent:#06b6d4;--color-success:#16a34a;--color-success-soft:#f0fdf4;--color-warning:#d97706;--color-warning-soft:#fffbeb;--color-danger:#dc2626;--color-danger-soft:#fef2f2;--color-bg:#f4f6fb;--color-surface:#fff;--color-border:#e2e8f0;--color-border-strong:#cbd5e1;--color-text:#0f172a;--color-text-secondary:#475569;--color-text-muted:#94a3b8;--radius-sm:6px;--radius-md:10px;--radius-lg:16px;--shadow-sm:0 1px 2px #0f172a0f;--shadow-md:0 4px 12px #0f172a14;--shadow-lg:0 12px 32px #0f172a24;--font-sans:"Inter","Segoe UI","Hiragino Sans","Yu Gothic UI",-apple-system,BlinkMacSystemFont,Roboto,"Helvetica Neue",Arial,sans-serif;--font-mono:"JetBrains Mono","SFMono-Regular",Consolas,"Liberation Mono",monospace}*{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:radial-gradient(1200px 500px at 85% -10%,#4f46e512,#0000 60%),radial-gradient(900px 420px at -10% 0,#06b6d40f,#0000 55%),#f4f6fb;background:radial-gradient(1200px 500px at 85% -10%,#4f46e512,#0000 60%),radial-gradient(900px 420px at -10% 0,#06b6d40f,#0000 55%),var(--color-bg);color:#0f172a;color:var(--color-text);font-family:Inter,Segoe UI,Hiragino Sans,Yu Gothic UI,-apple-system,BlinkMacSystemFont,Roboto,Helvetica Neue,Arial,sans-serif;font-family:var(--font-sans);line-height:1.55}code,pre{font-family:JetBrains Mono,SFMono-Regular,Consolas,Liberation Mono,monospace;font-family:var(--font-mono)}h1,h2,h3,h4{letter-spacing:-.015em;line-height:1.25}a{color:#4f46e5;color:var(--color-primary);text-decoration:none}a:hover{text-decoration:underline}button{cursor:pointer;font-family:inherit}input,select,textarea{color:#0f172a;color:var(--color-text);font-family:inherit;font-size:.95rem}:focus-visible{border-radius:6px;border-radius:var(--radius-sm);outline:2px solid #4f46e5;outline:2px solid var(--color-primary);outline-offset:2px}.btn-danger,.btn-primary,.btn-secondary{align-items:center;border:1px solid #0000;border-radius:10px;border-radius:var(--radius-md);display:inline-flex;font-size:.92rem;font-weight:600;gap:.4rem;justify-content:center;padding:.55rem 1.15rem;text-decoration:none;transition:background .15s ease,border-color .15s ease,box-shadow .15s ease,transform .05s ease;white-space:nowrap}.btn-primary{background:#4f46e5;background:var(--color-primary);box-shadow:0 1px 2px #0f172a0f;box-shadow:var(--shadow-sm);color:#fff}.btn-primary:hover:not(:disabled){background:#4338ca;background:var(--color-primary-hover);box-shadow:0 4px 12px #0f172a14;box-shadow:var(--shadow-md)}.btn-primary:active:not(:disabled){transform:translateY(1px)}.btn-secondary{background:#fff;background:var(--color-surface);border-color:#cbd5e1;border-color:var(--color-border-strong);color:#475569;color:var(--color-text-secondary)}.btn-secondary:hover:not(:disabled){background:#eef2ff;background:var(--color-primary-soft);border-color:#4f46e5;border-color:var(--color-primary);color:#4f46e5;color:var(--color-primary)}.btn-danger{background:#fff;background:var(--color-surface);border-color:#fecaca;color:#dc2626;color:var(--color-danger)}.btn-danger:hover:not(:disabled){background:#dc2626;background:var(--color-danger);border-color:#dc2626;border-color:var(--color-danger);color:#fff}.btn-danger:disabled,.btn-primary:disabled,.btn-secondary:disabled{cursor:not-allowed;opacity:.55}a.btn-secondary:hover{text-decoration:none}.form-group{margin-bottom:1.25rem}.form-group>label{color:#0f172a;color:var(--color-text);display:block;font-size:.9rem;font-weight:600;margin-bottom:.45rem}.form-group input[type=search],.form-group input[type=text],.form-group select,.form-group textarea{background:#fff;background:var(--color-surface);border:1px solid #cbd5e1;border:1px solid var(--color-border-strong);border-radius:10px;border-radius:var(--radius-md);padding:.6rem .8rem;transition:border-color .15s ease,box-shadow .15s ease;width:100%}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:#4f46e5;border-color:var(--color-primary);box-shadow:0 0 0 3px #4f46e526;outline:none}.form-group small{color:#94a3b8;color:var(--color-text-muted);display:block;font-size:.82rem;margin-top:.35rem}.form-group textarea{min-height:90px;resize:vertical}.error-banner{background:#fef2f2;background:var(--color-danger-soft);border:1px solid #fecaca;border-radius:10px;border-radius:var(--radius-md);color:#991b1b}.error-banner,.warn-box{font-size:.92rem;margin:1rem 0;padding:.8rem 1rem}.warn-box{background:#fffbeb;background:var(--color-warning-soft);border:1px solid #fde68a;border-radius:10px;border-radius:var(--radius-md);color:#92400e}.loading-container,.loading-state{align-items:center;color:#475569;color:var(--color-text-secondary);display:flex;flex-direction:column;gap:1rem;justify-content:center;min-height:50vh}.loading-spinner{animation:spin .8s linear infinite;border:3px solid #e2e8f0;border-top-color:#4f46e5;border:3px solid var(--color-border);border-radius:50%;border-top-color:var(--color-primary);height:38px;width:38px}@keyframes spin{to{transform:rotate(1turn)}}::-webkit-scrollbar{height:10px;width:10px}::-webkit-scrollbar-thumb{background:#cbd5e1;background:var(--color-border-strong);background-clip:padding-box;border:2px solid #0000;border-radius:6px}::-webkit-scrollbar-track{background:#0000}
/*# sourceMappingURL=main.e0a2382c.css.map*/