.auth-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:1rem;background:var(--color-bg)}.auth-card{width:100%;max-width:400px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:12px;padding:2rem}.auth-logo{text-align:center;margin-bottom:2rem}.auth-logo h1{font-size:1.5rem;font-weight:700;color:var(--color-primary);letter-spacing:-.5px}.auth-logo p{font-size:.85rem;color:var(--color-text-muted);margin-top:.25rem}.auth-form{display:flex;flex-direction:column;gap:1rem}.form-group input{background:var(--color-bg);border:1px solid var(--color-border);border-radius:8px;padding:.65rem .875rem;color:var(--color-text);font-size:1rem;outline:none;transition:border-color .15s;width:100%}.form-group input:focus{border-color:var(--color-primary)}.form-group input::placeholder{color:var(--color-text-muted);opacity:.5}.btn-primary{background:var(--color-primary);color:#fff;border:none;border-radius:8px;padding:.75rem 1rem;font-size:1rem;font-weight:600;cursor:pointer;transition:background .15s,opacity .15s;width:100%;margin-top:.5rem}.auth-error{background:#e05c5c1f;border:1px solid var(--color-danger);border-radius:8px;padding:.65rem .875rem;color:var(--color-danger);font-size:.875rem}.auth-footer{text-align:center;margin-top:1.5rem;font-size:.875rem;color:var(--color-text-muted)}.auth-footer a{color:var(--color-primary);text-decoration:none;font-weight:500}.auth-footer a:hover{text-decoration:underline}.pending-icon{font-size:3rem;text-align:center;margin-bottom:1rem}.pending-card{text-align:center}.pending-card h2{font-size:1.25rem;font-weight:600;margin-bottom:.5rem}.pending-card p{color:var(--color-text-muted);font-size:.9rem;line-height:1.5;margin-bottom:1.5rem}.btn-ghost{background:transparent;color:var(--color-text-muted);border:1px solid var(--color-border);border-radius:8px;padding:.65rem 1rem;font-size:.875rem;cursor:pointer;transition:border-color .15s,color .15s;width:100%}.btn-ghost:hover{border-color:var(--color-text-muted);color:var(--color-text)}.app-shell{display:flex;height:100vh;overflow:hidden;background:var(--color-bg)}.sidebar{width:220px;flex-shrink:0;background:var(--color-surface);border-right:1px solid var(--color-border);display:flex;flex-direction:column;overflow:hidden}.sidebar-logo{padding:1.25rem 1rem;border-bottom:1px solid var(--color-border)}.sidebar-logo h1{font-size:1rem;font-weight:700;color:var(--color-primary);letter-spacing:-.3px}.sidebar-logo p{font-size:.7rem;color:var(--color-text-muted);margin-top:2px}.sidebar-nav{flex:1;padding:.75rem .5rem;display:flex;flex-direction:column;gap:2px;overflow-y:auto}.nav-item{display:flex;align-items:center;gap:.625rem;padding:.6rem .75rem;border-radius:8px;color:var(--color-text-muted);text-decoration:none;font-size:.875rem;font-weight:500;transition:background .15s,color .15s;cursor:pointer;border:none;background:none;width:100%;text-align:left}.nav-item:hover{background:var(--color-surface-2);color:var(--color-text)}.nav-item.active{background:#6c63ff26;color:var(--color-primary)}.nav-icon{width:18px;height:18px;flex-shrink:0;opacity:.8}.sidebar-footer{padding:.75rem .5rem;border-top:1px solid var(--color-border)}.user-info{display:flex;align-items:center;gap:.625rem;padding:.5rem .75rem;border-radius:8px}.user-avatar{width:30px;height:30px;border-radius:50%;background:var(--color-primary);display:flex;align-items:center;justify-content:center;font-size:.75rem;font-weight:700;color:#fff;flex-shrink:0}.user-details{flex:1;min-width:0}.user-name{font-size:.8rem;font-weight:600;color:var(--color-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-role{font-size:.68rem;color:var(--color-text-muted);text-transform:capitalize}.btn-logout{background:none;border:none;color:var(--color-text-muted);cursor:pointer;padding:4px;border-radius:4px;display:flex;transition:color .15s}.btn-logout:hover{color:var(--color-danger)}.main-content{flex:1;display:flex;flex-direction:column;overflow:hidden}.page-header{padding:1.25rem 1.5rem;border-bottom:1px solid var(--color-border);display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-shrink:0}.page-header h2{font-size:1.1rem;font-weight:600;color:var(--color-text)}.page-body{flex:1;overflow-y:auto;padding:1.5rem}.mobile-nav{display:none;position:fixed;bottom:0;left:0;right:0;background:var(--color-surface);border-top:1px solid var(--color-border);padding:.5rem 1rem;padding-bottom:calc(.5rem + env(safe-area-inset-bottom));z-index:100}.mobile-nav-items{display:flex;justify-content:space-around}.mobile-nav-item{display:flex;flex-direction:column;align-items:center;gap:3px;padding:.4rem .75rem;color:var(--color-text-muted);text-decoration:none;font-size:.65rem;font-weight:500;border-radius:8px;border:none;background:none;cursor:pointer;transition:color .15s}.mobile-nav-item.active{color:var(--color-primary)}.mobile-nav-item svg{width:22px;height:22px}@media (max-width: 768px){.sidebar{display:none}.mobile-nav{display:block}.page-body{padding:1rem;padding-bottom:calc(1rem + 60px)}}.btn{display:inline-flex;align-items:center;gap:.4rem;padding:.55rem 1rem;border-radius:8px;font-size:.875rem;font-weight:600;cursor:pointer;transition:background .15s,opacity .15s;border:none;text-decoration:none}.btn-primary{background:var(--color-primary);color:#fff}.btn-primary:hover:not(:disabled){background:var(--color-primary-hover)}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-secondary{background:var(--color-surface-2);color:var(--color-text);border:1px solid var(--color-border)}.btn-secondary:hover{background:var(--color-border)}.btn-danger{background:transparent;color:var(--color-danger);border:1px solid var(--color-danger)}.btn-danger:hover{background:#e05c5c1a}.btn-sm{padding:.35rem .65rem;font-size:.8rem}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:center;justify-content:center;padding:1rem;z-index:200}.modal{background:var(--color-surface);border:1px solid var(--color-border);border-radius:12px;padding:1.5rem;width:100%;max-width:440px}.modal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.25rem}.modal-header h3{font-size:1rem;font-weight:600}.btn-close{background:none;border:none;color:var(--color-text-muted);cursor:pointer;font-size:1.25rem;line-height:1;padding:2px 6px;border-radius:4px}.btn-close:hover{color:var(--color-text)}.modal-form{display:flex;flex-direction:column;gap:1rem}.form-group{display:flex;flex-direction:column;gap:.4rem}.form-group label{font-size:.85rem;font-weight:500;color:var(--color-text-muted)}.form-group input,.form-group textarea{background:var(--color-bg);border:1px solid var(--color-border);border-radius:8px;padding:.65rem .875rem;color:var(--color-text);font-size:.9rem;outline:none;transition:border-color .15s;width:100%;font-family:inherit}.form-group input:focus,.form-group textarea:focus{border-color:var(--color-primary)}.form-group textarea{resize:vertical;min-height:80px}.modal-actions{display:flex;gap:.75rem;justify-content:flex-end;margin-top:.25rem}.error-msg{background:#e05c5c1a;border:1px solid var(--color-danger);border-radius:8px;padding:.65rem .875rem;color:var(--color-danger);font-size:.875rem;margin-bottom:1rem}.empty-state{text-align:center;padding:3rem 1rem;color:var(--color-text-muted)}.empty-state p{margin-bottom:1rem;font-size:.9rem}.spinner{width:20px;height:20px;border:2px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:spin .6s linear infinite;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.loading-center{display:flex;justify-content:center;padding:3rem}.projects-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem}.project-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:10px;padding:1.25rem;cursor:pointer;transition:border-color .15s,transform .15s;text-decoration:none;display:block}.project-card:hover{border-color:var(--color-primary);transform:translateY(-1px)}.project-card-name{font-size:1rem;font-weight:600;color:var(--color-text);margin-bottom:.4rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.project-card-desc{font-size:.8rem;color:var(--color-text-muted);margin-bottom:1rem;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:2.4em}.project-card-meta{display:flex;gap:1rem}.meta-item{display:flex;align-items:center;gap:.3rem;font-size:.75rem;color:var(--color-text-muted)}.meta-item svg{width:13px;height:13px;opacity:.7}.project-detail-grid{display:grid;grid-template-columns:1fr 280px;gap:1.5rem}@media (max-width: 900px){.project-detail-grid{grid-template-columns:1fr}}.section-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:10px;overflow:hidden}.section-card-header{padding:.875rem 1rem;border-bottom:1px solid var(--color-border);display:flex;align-items:center;justify-content:space-between}.section-card-header h3{font-size:.875rem;font-weight:600;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.5px}.script-list{display:flex;flex-direction:column}.script-item{display:flex;align-items:center;gap:.75rem;padding:.875rem 1rem;border-bottom:1px solid var(--color-border);transition:background .15s;text-decoration:none}.script-item:last-child{border-bottom:none}.script-item:hover{background:var(--color-surface-2)}.script-icon{width:36px;height:36px;background:#6c63ff1f;border-radius:8px;display:flex;align-items:center;justify-content:center;flex-shrink:0;color:var(--color-primary)}.script-icon svg{width:18px;height:18px}.script-info{flex:1;min-width:0}.script-name{font-size:.9rem;font-weight:500;color:var(--color-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.script-meta{font-size:.75rem;color:var(--color-text-muted);margin-top:2px}.member-list{display:flex;flex-direction:column}.member-item{display:flex;align-items:center;gap:.625rem;padding:.75rem 1rem;border-bottom:1px solid var(--color-border)}.member-item:last-child{border-bottom:none}.member-avatar{width:32px;height:32px;border-radius:50%;background:var(--color-primary);display:flex;align-items:center;justify-content:center;font-size:.75rem;font-weight:700;color:#fff;flex-shrink:0}.member-info{flex:1;min-width:0}.member-name{font-size:.85rem;font-weight:500;color:var(--color-text)}.member-email{font-size:.72rem;color:var(--color-text-muted)}.role-badge{font-size:.68rem;font-weight:600;padding:2px 7px;border-radius:4px;text-transform:capitalize;flex-shrink:0}.role-badge.super_admin{background:#5ce08a26;color:var(--color-success)}.role-badge.owner{background:#6c63ff26;color:var(--color-primary)}.role-badge.member{background:#8888a826;color:var(--color-text-muted)}.drop-zone{border:2px dashed var(--color-border);border-radius:10px;padding:2rem;text-align:center;cursor:pointer;transition:border-color .15s,background .15s}.drop-zone:hover,.drop-zone.drag-over{border-color:var(--color-primary);background:#6c63ff0d}.drop-zone p{font-size:.875rem;color:var(--color-text-muted);margin-top:.5rem}.drop-zone span{color:var(--color-primary);font-weight:600}.back-link{display:inline-flex;align-items:center;gap:.375rem;color:var(--color-text-muted);text-decoration:none;font-size:.875rem;margin-bottom:1.25rem;transition:color .15s}.back-link:hover{color:var(--color-text)}.back-link svg{width:16px;height:16px}.upload-progress{margin-top:.75rem}.progress-bar{height:4px;background:var(--color-border);border-radius:2px;overflow:hidden}.progress-fill{height:100%;background:var(--color-primary);transition:width .3s}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--color-bg: #0f0f1a;--color-surface: #1a1a2e;--color-surface-2: #242440;--color-border: #2e2e50;--color-primary: #6c63ff;--color-primary-hover: #5a52e0;--color-text: #e8e8f0;--color-text-muted: #8888a8;--color-danger: #e05c5c;--color-success: #5ce08a;--color-warning: #e0c45c;font-size:16px}html,body,#root{height:100%;width:100%}body{background-color:var(--color-bg);color:var(--color-text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overscroll-behavior:none}.canvas-container{touch-action:none}
