:root{--bg-0: #050506;--bg-1: #0c0c0e;--bg-2: #131316;--bg-3: #1a1a1f;--bg-4: #222228;--border-0: #1e1e24;--border-1: #2a2a32;--border-2: #38383f;--text-0: #ececf0;--text-1: #a9a9b6;--text-2: #6b6b78;--text-3: #46464f;--green: #10b981;--green-dim: rgba(16, 185, 129, .1);--green-mid: rgba(16, 185, 129, .2);--amber: #f59e0b;--amber-dim: rgba(245, 158, 11, .1);--red: #ef4444;--red-dim: rgba(239, 68, 68, .08);--green-contrast: #022c22;--indigo-bg: rgba(99, 102, 241, .12);--indigo: #818cf8;--purple-bg: rgba(139, 92, 246, .12);--purple: #a78bfa;--red-border: rgba(239, 68, 68, .2);--green-border: rgba(16, 185, 129, .2);--overlay: rgba(0, 0, 0, .7);--shadow-lg: rgba(0, 0, 0, .4);--shadow-md: rgba(0, 0, 0, .3);--portal-header-bg: rgba(12, 12, 14, .85);--health-unknown-bg: rgba(255, 255, 255, .04);--tile-icon-color: #fff;--confirm-danger-color: #fff;--font-head: "Space Grotesk", system-ui, sans-serif;--font-body: "Inter", system-ui, sans-serif;--font-mono: "JetBrains Mono", "Fira Code", monospace;--sidebar-w: 232px;--header-h: 52px;--radius: 6px}[data-theme=light]{--bg-0: #d8dbe2;--bg-1: #e2e4ea;--bg-2: #cdd0d8;--bg-3: #c2c5ce;--bg-4: #b5b9c3;--border-0: #b8bcc6;--border-1: #a6aab5;--border-2: #959aa6;--text-0: #1a1d24;--text-1: #2e3340;--text-2: #4a5060;--text-3: #717889;--green: #0d9668;--green-dim: rgba(13, 150, 104, .1);--green-mid: rgba(13, 150, 104, .18);--amber: #d97706;--amber-dim: rgba(217, 119, 6, .1);--red: #dc2626;--red-dim: rgba(220, 38, 38, .08);--green-contrast: #022c22;--indigo-bg: rgba(99, 102, 241, .1);--indigo: #4f46e5;--purple-bg: rgba(139, 92, 246, .1);--purple: #7c3aed;--red-border: rgba(220, 38, 38, .2);--green-border: rgba(13, 150, 104, .2);--overlay: rgba(0, 0, 0, .35);--shadow-lg: rgba(0, 0, 0, .1);--shadow-md: rgba(0, 0, 0, .06);--portal-header-bg: rgba(238, 240, 244, .9);--health-unknown-bg: rgba(0, 0, 0, .04);--tile-icon-color: #fff;--confirm-danger-color: #fff}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html,body,#root{height:100%;width:100%}body{font-family:var(--font-body);font-size:13px;line-height:1.55;color:var(--text-0);background:var(--bg-0);-webkit-font-smoothing:antialiased}a{color:var(--green);text-decoration:none}button{font-family:inherit;font-size:inherit;cursor:pointer;border:none;background:none;color:inherit}input{font-family:inherit;font-size:inherit;color:inherit}.app-layout{display:flex;height:100%;overflow:hidden}.main-area{flex:1;display:flex;flex-direction:column;min-width:0;height:100%}.main-header{display:flex;align-items:center;height:var(--header-h);padding:0 24px;background:var(--bg-1);border-bottom:1px solid var(--border-0);gap:16px;flex-shrink:0}.main-header .page-title{font-family:var(--font-head);font-size:14px;font-weight:600;color:var(--text-1);letter-spacing:.01em;white-space:nowrap}.main-content{flex:1;overflow-y:auto;padding:28px 32px}.sidebar{width:var(--sidebar-w);height:100%;background:var(--bg-1);border-right:1px solid var(--border-0);display:flex;flex-direction:column;flex-shrink:0}.sidebar-brand{padding:18px 16px 14px;border-bottom:1px solid var(--border-0)}.sidebar-brand-row{display:flex;align-items:center;gap:10px}.sidebar-brand .mark{width:26px;height:26px;border-radius:5px;background:var(--green);display:flex;align-items:center;justify-content:center;font-family:var(--font-mono);font-weight:700;font-size:13px;color:var(--green-contrast);flex-shrink:0}.sidebar-brand .wordmark{font-family:var(--font-head);font-size:15px;font-weight:700;color:var(--text-0);letter-spacing:1.8px}.sidebar-brand .tagline{font-size:10px;color:var(--text-3);letter-spacing:.3px;margin-top:4px;padding-left:36px}.sidebar-nav{flex:1;overflow-y:auto;padding:10px 8px}.sidebar-section-label{padding:12px 10px 4px;font-family:var(--font-mono);font-size:10px;font-weight:500;text-transform:uppercase;letter-spacing:1.2px;color:var(--text-3)}.sidebar-item{display:flex;align-items:center;gap:9px;width:100%;padding:7px 10px;border-radius:4px;color:var(--text-1);font-size:13px;text-align:left;transition:background .1s,color .1s}.sidebar-item:hover{background:var(--bg-3);color:var(--text-0)}.sidebar-item.active{background:var(--green-dim);color:var(--green)}.sidebar-item .item-icon{width:18px;font-family:var(--font-mono);font-size:11px;text-align:center;color:var(--text-2);flex-shrink:0}.sidebar-item.active .item-icon{color:var(--green)}.sidebar-item .item-label{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-item .status-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0}.status-dot.running{background:var(--green)}.status-dot.registered{background:var(--amber)}.status-dot.stopped{background:var(--text-3)}.status-dot.error{background:var(--red)}.sidebar-footer{padding:10px 12px;border-top:1px solid var(--border-0);display:flex;align-items:center;gap:9px}.sidebar-footer .avatar{width:28px;height:28px;border-radius:50%;background:var(--bg-4);display:flex;align-items:center;justify-content:center;font-family:var(--font-mono);font-size:10px;font-weight:600;color:var(--text-1);flex-shrink:0}.sidebar-footer .user-info{flex:1;min-width:0}.sidebar-footer .user-name{font-size:12px;font-weight:600;color:var(--text-0);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-footer .user-email{font-size:11px;color:var(--text-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-footer .logout-btn{font-family:var(--font-mono);font-size:10px;padding:3px 8px;border-radius:3px;color:var(--text-3);letter-spacing:.3px;transition:color .12s}.sidebar-footer .logout-btn:hover{color:var(--red)}.add-app-btn{display:flex;align-items:center;gap:7px;width:100%;padding:7px 10px;margin-top:4px;border-radius:4px;border:1px dashed var(--border-1);color:var(--text-2);font-size:12px;transition:border-color .12s,color .12s}.add-app-btn:hover{border-color:var(--green);color:var(--green)}.add-app-btn .plus-icon{font-family:var(--font-mono);font-size:14px;line-height:1}.search-container{flex:1;max-width:480px;position:relative}.search-input-wrap{display:flex;align-items:center;gap:8px;background:var(--bg-2);border:1px solid var(--border-0);border-radius:4px;padding:0 10px;transition:border-color .15s}.search-input-wrap:focus-within{border-color:var(--border-2)}.search-input-wrap .search-icon{font-family:var(--font-mono);color:var(--text-3);font-size:12px;flex-shrink:0}.search-input-wrap input{flex:1;background:transparent;border:none;outline:none;height:32px;font-size:12px;color:var(--text-0)}.search-input-wrap input::placeholder{color:var(--text-3)}.search-input-wrap .search-shortcut{font-family:var(--font-mono);font-size:10px;color:var(--text-3);background:var(--bg-0);padding:1px 5px;border-radius:3px;border:1px solid var(--border-0)}.search-dropdown{position:absolute;top:calc(100% + 4px);left:0;right:0;background:var(--bg-2);border:1px solid var(--border-1);border-radius:var(--radius);max-height:360px;overflow-y:auto;z-index:100}.search-group-label{padding:6px 12px 3px;font-family:var(--font-mono);font-size:10px;font-weight:500;text-transform:uppercase;letter-spacing:.8px;color:var(--text-3);background:var(--bg-3);position:sticky;top:0}.search-result-item{display:flex;flex-direction:column;gap:1px;padding:7px 12px;cursor:pointer;transition:background .08s}.search-result-item:hover{background:var(--bg-3)}.search-result-item .result-title{font-size:12px;color:var(--text-0);font-weight:500}.search-result-item .result-snippet{font-size:11px;color:var(--text-2)}.search-result-item .result-meta{font-size:10px;color:var(--text-3);font-family:var(--font-mono)}.search-empty{padding:16px 12px;text-align:center;color:var(--text-2);font-size:12px}.home-page{max-width:960px}.home-header{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:32px;gap:16px}.home-header h1{font-family:var(--font-head);font-size:22px;font-weight:700;letter-spacing:-.01em}.home-header p{color:var(--text-2);font-size:13px;margin-top:2px}.bento{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--border-0);border:1px solid var(--border-0);border-radius:var(--radius);overflow:hidden;margin-bottom:28px}.bento-cell{background:var(--bg-1);padding:18px 20px}.bento-cell .bento-label{font-family:var(--font-mono);font-size:10px;text-transform:uppercase;letter-spacing:1px;color:var(--text-3);margin-bottom:6px}.bento-cell .bento-value{font-family:var(--font-head);font-size:26px;font-weight:700;color:var(--text-0)}.bento-cell .bento-sub{font-size:11px;color:var(--text-2);margin-top:2px}.bento-4{grid-template-columns:repeat(4,1fr)}.section-bar{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.section-title{font-family:var(--font-head);font-size:14px;font-weight:600;color:var(--text-1);letter-spacing:.01em}.app-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:8px;margin-bottom:28px}.app-card{background:var(--bg-1);border:1px solid var(--border-0);border-radius:var(--radius);padding:16px 18px;cursor:pointer;transition:border-color .15s,transform .15s ease,box-shadow .15s ease;position:relative}.app-card:hover{border-color:var(--border-2);transform:translateY(-2px);box-shadow:0 8px 25px #00000026}.app-card-header{display:flex;align-items:center;gap:10px;margin-bottom:8px}.app-card-icon{width:32px;height:32px;border-radius:5px;background:var(--bg-3);display:flex;align-items:center;justify-content:center;font-family:var(--font-mono);font-size:13px;font-weight:600;color:var(--text-1);flex-shrink:0}.app-card-title{flex:1;min-width:0}.app-card-title h3{font-family:var(--font-head);font-size:14px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.app-card-title .app-status{display:flex;align-items:center;gap:5px;font-size:11px;color:var(--text-3);margin-top:1px}.app-card-title .app-status .status-dot{width:5px;height:5px;border-radius:50%}.app-card-description{font-size:12px;color:var(--text-2);line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.app-card .delete-btn{position:absolute;top:10px;right:10px;font-size:14px;color:var(--text-3);padding:2px 5px;border-radius:3px;opacity:0;transition:opacity .12s,color .12s}.app-card:hover .delete-btn{opacity:1}.app-card .delete-btn:hover{color:var(--red)}.card-deploy-btn{margin-top:10px;padding:5px 14px;font-family:var(--font-mono);font-size:11px;font-weight:500;color:var(--green);background:var(--green-dim);border-radius:3px;transition:background .12s}.card-deploy-btn:hover{background:var(--green-mid)}.activity-panel{background:var(--bg-1);border:1px solid var(--border-0);border-radius:var(--radius);padding:16px 18px}.activity-list{list-style:none}.activity-item{display:flex;align-items:flex-start;gap:10px;padding:8px 0;border-bottom:1px solid var(--border-0)}.activity-item:last-child{border-bottom:none;padding-bottom:0}.activity-item:first-child{padding-top:0}.activity-dot{width:5px;height:5px;border-radius:50%;background:var(--green);margin-top:6px;flex-shrink:0}.activity-text{font-size:12px;color:var(--text-2)}.activity-text strong{color:var(--text-0);font-weight:600}.activity-time{font-family:var(--font-mono);font-size:10px;color:var(--text-3);margin-top:1px}.empty-state{text-align:center;padding:48px 20px;background:var(--bg-1);border:1px solid var(--border-0);border-radius:var(--radius)}.empty-state .empty-icon{font-family:var(--font-mono);font-size:24px;color:var(--text-3);margin-bottom:12px}.empty-state h3{font-family:var(--font-head);font-size:15px;font-weight:600;margin-bottom:4px}.empty-state p{color:var(--text-2);font-size:12px;margin-bottom:20px}.app-host{flex:1;display:flex;flex-direction:column;height:100%;overflow:hidden}.app-host-toolbar{display:flex;align-items:center;gap:10px;padding:6px 14px;background:var(--bg-2);border-bottom:1px solid var(--border-0);flex-shrink:0}.app-host-toolbar .back-btn{font-family:var(--font-mono);font-size:11px;padding:4px 10px;border-radius:3px;color:var(--text-2);transition:background .1s,color .1s}.app-host-toolbar .back-btn:hover{background:var(--bg-3);color:var(--text-0)}.app-host-toolbar .app-name{font-family:var(--font-head);font-size:13px;font-weight:600;color:var(--text-0)}.app-host-toolbar .reload-btn{margin-left:auto;font-family:var(--font-mono);font-size:11px;padding:4px 10px;border-radius:3px;color:var(--text-3);transition:background .1s,color .1s}.app-host-toolbar .reload-btn:hover{background:var(--bg-3);color:var(--text-0)}.app-host iframe{flex:1;width:100%;border:none;background:var(--bg-0)}.app-host-loading{flex:1;display:flex;align-items:center;justify-content:center;gap:10px;color:var(--text-2);font-size:12px}.deploy-panel{flex:1;display:flex;flex-direction:column;padding:32px;overflow-y:auto}.deploy-info{max-width:520px}.deploy-badges{display:flex;gap:6px;margin-bottom:12px}.deploy-badges .status-registered{background:var(--amber-dim);color:var(--amber)}.deploy-badges .status-stopped{background:var(--bg-3);color:var(--text-2)}.deploy-badges .status-error{background:var(--red-dim);color:var(--red)}.deploy-desc{color:var(--text-2);font-size:13px;margin-bottom:20px}.deploy-actions{display:flex;gap:10px;align-items:center}.deploy-logs{margin-top:20px;background:var(--bg-0);border:1px solid var(--border-0);border-radius:var(--radius);overflow:hidden}.deploy-logs-header{display:flex;align-items:center;gap:8px;padding:8px 14px;background:var(--bg-2);border-bottom:1px solid var(--border-0);font-family:var(--font-mono);font-size:11px;color:var(--text-2)}.deploy-logs-content{padding:14px;font-family:var(--font-mono);font-size:11px;line-height:1.6;color:var(--text-1);white-space:pre-wrap;word-break:break-all;max-height:400px;overflow-y:auto;margin:0}.login-page{display:flex;height:100%;background:var(--bg-0)}.login-left{flex:1;display:flex;flex-direction:column;justify-content:center;padding:48px 56px;max-width:480px}.login-right{flex:1;background:var(--bg-1);border-left:1px solid var(--border-0);display:flex;flex-direction:column;justify-content:center;align-items:center;padding:48px}.login-right .terminal{width:100%;max-width:380px;background:var(--bg-0);border:1px solid var(--border-0);border-radius:var(--radius);padding:20px;font-family:var(--font-mono);font-size:11px;line-height:1.8;color:var(--text-2)}.login-right .terminal .line-green{color:var(--green)}.login-right .terminal .line-muted{color:var(--text-3)}.login-left .mark{width:32px;height:32px;border-radius:6px;background:var(--green);display:flex;align-items:center;justify-content:center;font-family:var(--font-mono);font-weight:700;font-size:15px;color:var(--green-contrast);margin-bottom:28px}.login-left h1{font-family:var(--font-head);font-size:28px;font-weight:700;letter-spacing:-.02em;margin-bottom:6px}.login-left .subtitle{color:var(--text-2);font-size:14px;margin-bottom:36px}.login-form{display:flex;flex-direction:column;gap:16px}.form-field{display:flex;flex-direction:column;gap:5px}.form-field label{font-family:var(--font-mono);font-size:11px;font-weight:500;color:var(--text-2);text-transform:uppercase;letter-spacing:.5px}.form-field input{height:38px;padding:0 12px;background:var(--bg-2);border:1px solid var(--border-0);border-radius:4px;outline:none;font-size:13px;transition:border-color .15s}.form-field input:focus{border-color:var(--green)}.login-error{background:var(--red-dim);border:1px solid var(--red-border);color:var(--red);padding:8px 12px;border-radius:4px;font-size:12px}.login-btn{height:38px;background:var(--green);color:var(--green-contrast);font-family:var(--font-head);font-weight:600;font-size:13px;border-radius:4px;letter-spacing:.01em;transition:opacity .15s}.login-btn:hover{opacity:.9}.login-btn:disabled{opacity:.4;cursor:not-allowed}.sso-section{margin-top:24px}.sso-divider{display:flex;align-items:center;gap:12px;margin-bottom:16px}.sso-divider:before,.sso-divider:after{content:"";flex:1;height:1px;background:var(--border-0)}.sso-divider span{font-family:var(--font-mono);font-size:10px;color:var(--text-3);text-transform:uppercase;letter-spacing:.5px;white-space:nowrap}.sso-buttons{display:flex;flex-direction:column;gap:8px}.sso-btn{display:flex;align-items:center;gap:10px;height:38px;padding:0 16px;border-radius:4px;font-family:var(--font-head);font-weight:600;font-size:13px;text-decoration:none;transition:opacity .15s;cursor:pointer}.sso-btn:hover{opacity:.9}.sso-btn-icon{font-size:16px;line-height:1;width:20px;text-align:center}.sso-azure{background:#0078d4;color:#fff}.sso-google{background:#ea4335;color:#fff}.sso-okta{background:#007dc1;color:#fff}.sso-github{background:#24292e;color:#fff}.sso-generic{background:var(--bg-3);color:var(--text-0);border:1px solid var(--border-1)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--overlay);display:flex;align-items:center;justify-content:center;z-index:200;padding:24px;animation:fadeIn .15s ease-out}.modal-card{width:100%;max-width:500px;background:var(--bg-2);border:1px solid var(--border-1);border-radius:var(--radius);overflow:hidden;animation:modalScaleIn .2s ease-out}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--border-0)}.modal-header h2{font-family:var(--font-head);font-size:15px;font-weight:700}.modal-close{font-size:18px;color:var(--text-3);padding:2px 6px;border-radius:3px;line-height:1;transition:color .12s}.modal-close:hover{color:var(--text-0)}.modal-body{padding:20px}.modal-secondary-btn{padding:9px 18px;background:var(--bg-3);border:1px solid var(--border-1);border-radius:4px;color:var(--text-1);font-size:12px;font-weight:500;transition:border-color .12s}.modal-secondary-btn:hover{border-color:var(--border-2)}.scan-result{background:var(--bg-0);border:1px solid var(--border-0);border-radius:var(--radius);padding:14px 16px}.scan-result-header{display:flex;gap:6px;margin-bottom:12px}.scan-badge{font-family:var(--font-mono);padding:2px 10px;border-radius:3px;font-size:11px;font-weight:600;letter-spacing:.3px}.scan-badge[data-stack=dotnet]{background:var(--purple-bg);color:var(--purple)}.scan-badge[data-stack=node]{background:var(--green-dim);color:var(--green)}.scan-badge[data-stack=python]{background:var(--amber-dim);color:var(--amber)}.scan-badge[data-type]{background:var(--bg-3);color:var(--text-1)}.scan-details{display:flex;flex-direction:column;gap:6px}.scan-row{display:flex;justify-content:space-between;align-items:center}.scan-label{font-size:12px;color:var(--text-3)}.scan-value{font-size:12px;color:var(--text-0);font-family:var(--font-mono)}.scan-input{font-size:12px;font-family:var(--font-mono);color:var(--text-0);background:var(--bg-tertiary);border:1px solid var(--border);border-radius:4px;padding:4px 8px;width:140px;transition:border-color .15s}.scan-input:focus{outline:none;border-color:var(--blue)}.scan-input::placeholder{color:var(--text-muted);font-style:italic}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border-0);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--border-1)}.spinner{width:16px;height:16px;border:1.5px solid var(--border-1);border-top-color:var(--green);border-radius:50%;animation:spin .5s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.drop-zone{border:1px dashed var(--border-1);border-radius:var(--radius);padding:32px 20px;text-align:center;cursor:pointer;transition:border-color .15s,background .15s}.drop-zone:hover{border-color:var(--border-2);background:var(--bg-3)}.drop-zone.drag-over{border-color:var(--green);background:var(--green-dim)}.drop-zone-icon{font-size:22px;color:var(--text-3);margin-bottom:8px;line-height:1}.drop-zone.drag-over .drop-zone-icon{color:var(--green)}.drop-zone-text{font-size:13px;color:var(--text-1);margin-bottom:4px}.drop-zone-text strong{color:var(--text-0)}.drop-zone-hint{font-size:11px;color:var(--text-3)}.progress-bar{height:3px;background:var(--bg-4);border-radius:2px;overflow:hidden}.progress-fill{height:100%;background:var(--green);border-radius:2px;transition:width .2s ease}.processing-step{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--text-muted);padding:4px 0}.processing-step.active{color:var(--blue);font-weight:500}.processing-step.done{color:var(--green)}.setup-checklist{margin-top:24px;border:1px solid var(--border);border-radius:12px;padding:20px;background:var(--bg-secondary)}.setup-checklist-item{display:flex;align-items:center;gap:14px;padding:14px 16px;border-radius:10px;margin-bottom:8px;border:1px solid transparent;transition:all .2s}.setup-checklist-item:last-child{margin-bottom:0}.setup-checklist-item.active{border-color:var(--blue);background:#3b82f60f}.setup-checklist-item.active:hover{background:#3b82f61f}.setup-checklist-item.done{border-color:var(--green);background:#22c55e0f}.setup-checklist-item.locked{opacity:.4}.setup-checklist-number{width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700;flex-shrink:0;border:2px solid var(--border);color:var(--text-muted)}.setup-checklist-item.active .setup-checklist-number{border-color:var(--blue);color:var(--blue);background:#3b82f61a}.setup-checklist-item.done .setup-checklist-number{border-color:var(--green);color:var(--green);background:#22c55e1a}.setup-checklist-content{flex:1;min-width:0}.setup-checklist-title{font-size:14px;font-weight:600;color:var(--text-primary);margin-bottom:2px}.setup-checklist-desc{font-size:11px;color:var(--text-muted)}.setup-checklist-item.done .setup-checklist-desc{color:var(--green)}.setup-checklist-arrow{color:var(--blue);font-size:16px;font-weight:600;flex-shrink:0}.processing-step.done:before{content:"✓";font-size:13px;font-weight:700}.divider-label{display:flex;align-items:center;gap:12px;margin:18px 0 12px}.divider-label:before,.divider-label:after{content:"";flex:1;height:1px;background:var(--border-0)}.divider-label span{font-family:var(--font-mono);font-size:10px;color:var(--text-3);text-transform:uppercase;letter-spacing:.8px;white-space:nowrap}.folder-list{display:flex;flex-direction:column;gap:2px;max-height:320px;overflow-y:auto}.folder-item-row{display:flex;align-items:center;gap:4px}.folder-item{display:flex;align-items:center;justify-content:space-between;width:100%;padding:10px 12px;border-radius:4px;text-align:left;transition:background .08s}.folder-item:hover{background:var(--bg-3)}.folder-delete-btn{flex-shrink:0;width:28px;height:28px;border-radius:6px;background:transparent;color:var(--text-muted);font-size:16px;cursor:pointer;transition:all .15s;display:flex;align-items:center;justify-content:center}.folder-delete-btn:hover{background:var(--red);color:#fff}.folder-name{font-size:13px;color:var(--text-0);font-weight:500}.folder-hint{font-family:var(--font-mono);font-size:10px;padding:2px 8px;border-radius:3px;background:var(--bg-3);color:var(--text-3)}.folder-hint[data-hint=dotnet]{background:var(--purple-bg);color:var(--purple)}.folder-hint[data-hint=node]{background:var(--green-dim);color:var(--green)}.folder-hint[data-hint=python]{background:var(--amber-dim);color:var(--amber)}.users-page{max-width:1060px}.users-page .users-header{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:24px;gap:16px}.users-page .users-header h1{font-family:var(--font-head);font-size:22px;font-weight:700;letter-spacing:-.01em}.users-page .users-header p{color:var(--text-2);font-size:13px;margin-top:2px}.users-table-wrap{background:var(--bg-1);border:1px solid var(--border-0);border-radius:var(--radius);overflow-x:auto;-webkit-overflow-scrolling:touch}.users-table{width:100%;min-width:700px;border-collapse:collapse;font-size:13px}.users-table th{text-align:left;padding:8px 12px;font-family:var(--font-mono);font-size:10px;font-weight:500;text-transform:uppercase;letter-spacing:1px;color:var(--text-3);background:var(--bg-2);border-bottom:1px solid var(--border-0);white-space:nowrap}.users-table td{padding:8px 12px;border-bottom:1px solid var(--border-0);color:var(--text-1);vertical-align:middle}.users-table .user-email{max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.users-table td:last-child{white-space:nowrap}.users-table tr:last-child td{border-bottom:none}.users-table tbody tr{transition:background .12s,transform .12s}.users-table tbody tr:hover{background:var(--bg-2)}.users-table .user-display-name{color:var(--text-0);font-weight:600;font-size:13px}.users-table .user-username{color:var(--text-3);font-family:var(--font-mono);font-size:11px;margin-top:1px}.role-badge{display:inline-block;font-family:var(--font-mono);font-size:10px;font-weight:600;padding:2px 8px;border-radius:3px;letter-spacing:.3px;text-transform:lowercase}.role-badge.superadmin{background:var(--indigo-bg);color:var(--indigo)}.role-badge.admin{background:var(--amber-dim);color:var(--amber)}.role-badge.developer{background:#2563eb20;color:#2563eb}.role-badge.user{background:var(--bg-3);color:var(--text-2)}.status-badge{display:inline-flex;align-items:center;gap:5px;font-family:var(--font-mono);font-size:10px;font-weight:500;padding:2px 8px;border-radius:3px;letter-spacing:.3px}.status-badge.active{background:var(--green-dim);color:var(--green)}.status-badge.inactive{background:var(--red-dim);color:var(--red)}.status-badge.pending{background:var(--amber-dim);color:var(--amber);cursor:default;border:none}.status-badge.pending .status-dot-sm{animation:pulseAmber 2s ease-in-out infinite}@keyframes pulseAmber{0%,to{opacity:1}50%{opacity:.3}}.status-badge .status-dot-sm{width:5px;height:5px;border-radius:50%;background:currentColor}.table-actions{display:flex;align-items:center;gap:6px}.table-action-btn{font-family:var(--font-mono);font-size:10px;padding:3px 8px;border-radius:3px;color:var(--text-3);transition:color .12s,background .12s}.table-action-btn:hover{background:var(--bg-3);color:var(--text-0)}.table-action-btn.danger:hover{color:var(--red)}.user-row-expanded td{padding:0!important;border-bottom:1px solid var(--border-0)}.user-expanded-content{padding:16px 20px;background:var(--bg-0);border-top:1px solid var(--border-0)}.user-expanded-content .expanded-section-title{font-family:var(--font-mono);font-size:10px;font-weight:500;text-transform:uppercase;letter-spacing:1px;color:var(--text-3);margin-bottom:10px}.access-list{display:flex;flex-direction:column;gap:4px}.access-item{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;border-radius:4px;transition:background .08s}.access-item:hover{background:var(--bg-2)}.access-item .access-app-name{font-size:13px;color:var(--text-0);font-weight:500}.access-item .access-app-id{font-family:var(--font-mono);font-size:10px;color:var(--text-3);margin-left:8px}.access-toggle{position:relative;width:32px;height:18px;border-radius:9px;background:var(--bg-4);border:1px solid var(--border-1);cursor:pointer;transition:background .15s,border-color .15s;flex-shrink:0}.access-toggle.on{background:var(--green-dim);border-color:var(--green)}.access-toggle:after{content:"";position:absolute;top:2px;left:2px;width:12px;height:12px;border-radius:50%;background:var(--text-3);transition:transform .15s,background .15s}.access-toggle.on:after{transform:translate(14px);background:var(--green)}.user-form{display:flex;flex-direction:column;gap:14px}.user-form .form-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}.user-form .form-field select{height:38px;padding:0 32px 0 12px;background:var(--bg-2);border:1px solid var(--border-0);border-radius:4px;outline:none;font-family:inherit;font-size:13px;color:var(--text-0);transition:border-color .15s;width:100%;-moz-appearance:none;appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%2346464f'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center}.user-form .form-field select:focus{border-color:var(--green)}.user-form .form-actions{display:flex;gap:10px;margin-top:4px}.confirm-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--overlay);display:flex;align-items:center;justify-content:center;z-index:300;padding:24px;animation:fadeIn .15s ease-out}.confirm-card{width:100%;max-width:380px;background:var(--bg-2);border:1px solid var(--border-1);border-radius:var(--radius);padding:24px;animation:modalScaleIn .2s ease-out}.confirm-card h3{font-family:var(--font-head);font-size:15px;font-weight:700;margin-bottom:8px}.confirm-card p{font-size:13px;color:var(--text-2);margin-bottom:18px}.confirm-card .confirm-actions{display:flex;gap:10px;justify-content:flex-end}.confirm-card .confirm-danger{height:34px;padding:0 18px;background:var(--red);color:var(--confirm-danger-color);font-family:var(--font-head);font-weight:600;font-size:12px;border-radius:4px;transition:opacity .15s}.confirm-card .confirm-danger:hover{opacity:.9}.access-empty{text-align:center;padding:12px;color:var(--text-3);font-size:12px}.connector-setup{max-width:560px!important}.connector-steps{display:flex;align-items:center;gap:0;padding:16px 20px;border-bottom:1px solid var(--border-0);background:var(--bg-0)}.connector-step{display:flex;align-items:center;gap:7px;flex:1;position:relative}.connector-step:not(:last-child):after{content:"";flex:1;height:1px;background:var(--border-1);margin:0 10px}.connector-step.completed:not(:last-child):after{background:var(--green)}.connector-step-num{width:22px;height:22px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:var(--font-mono);font-size:10px;font-weight:600;background:var(--bg-3);color:var(--text-3);flex-shrink:0;transition:background .2s,color .2s}.connector-step.active .connector-step-num{background:var(--green);color:var(--green-contrast)}.connector-step.completed .connector-step-num{background:var(--green-dim);color:var(--green)}.connector-step-label{font-family:var(--font-mono);font-size:10px;color:var(--text-3);letter-spacing:.3px;white-space:nowrap}.connector-step.active .connector-step-label{color:var(--text-0)}.connector-step.completed .connector-step-label{color:var(--green)}.connector-form{display:flex;flex-direction:column;gap:14px}.connector-form .form-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}.connector-form .form-field select{height:38px;padding:0 32px 0 12px;background:var(--bg-2);border:1px solid var(--border-0);border-radius:4px;outline:none;font-family:inherit;font-size:13px;color:var(--text-0);transition:border-color .15s;width:100%;-moz-appearance:none;appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%2346464f'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center}.connector-form .form-field select:focus{border-color:var(--green)}.connector-form .form-field input{width:100%}.connector-form-actions{display:flex;gap:10px;margin-top:4px}.connector-test-ok{display:flex;align-items:center;gap:8px;padding:8px 12px;background:var(--green-dim);border:1px solid var(--green-border);border-radius:4px;font-size:12px;color:var(--green)}.connector-test-check{font-weight:700;font-size:14px}.detection-animation{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:48px 20px;gap:24px}.detection-scanner{position:relative;width:64px;height:64px}.detection-ring{position:absolute;top:0;right:0;bottom:0;left:0;border:2px solid var(--green);border-radius:50%;opacity:0;animation:detection-pulse 2.4s ease-out infinite}.detection-ring.ring-2{animation-delay:.8s}.detection-ring.ring-3{animation-delay:1.6s}@keyframes detection-pulse{0%{transform:scale(.3);opacity:.8}to{transform:scale(1.2);opacity:0}}.detection-msg{font-family:var(--font-mono);font-size:12px;color:var(--text-2);letter-spacing:.3px;animation:detection-fade 1.4s ease-in-out infinite alternate}@keyframes detection-fade{0%{opacity:.5}to{opacity:1}}.connector-result{background:var(--bg-0);border:1px solid var(--border-0);border-radius:var(--radius);padding:16px}.connector-result-header{display:flex;align-items:flex-start;gap:12px;margin-bottom:4px}.connector-result-icon{width:28px;height:28px;border-radius:50%;background:var(--green-dim);color:var(--green);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:14px;flex-shrink:0}.connector-result-title{font-size:13px;font-weight:600;color:var(--text-0)}.connector-result-title code{font-family:var(--font-mono);background:var(--bg-3);padding:1px 6px;border-radius:3px;font-size:12px;color:var(--green)}.connector-result-sub{font-size:11px;color:var(--text-2);margin-top:2px}.connector-role-badges{display:flex;flex-wrap:wrap;gap:6px}.connector-role-tag{font-family:var(--font-mono);font-size:11px;font-weight:600;padding:3px 10px;border-radius:3px;background:var(--indigo-bg);color:var(--indigo);letter-spacing:.3px}.connector-role-map{background:var(--bg-0);border:1px solid var(--border-0);border-radius:var(--radius);overflow:hidden}.connector-role-map-header{display:flex;justify-content:space-between;padding:8px 14px;background:var(--bg-2);border-bottom:1px solid var(--border-0);font-family:var(--font-mono);font-size:10px;font-weight:500;text-transform:uppercase;letter-spacing:1px;color:var(--text-3)}.connector-role-map-row{display:flex;align-items:center;gap:12px;padding:10px 14px;border-bottom:1px solid var(--border-0)}.connector-role-map-row:last-child{border-bottom:none}.connector-role-map-row .connector-role-tag{min-width:80px;text-align:center}.connector-role-arrow{color:var(--text-3);font-size:14px;flex-shrink:0}.connector-role-map-row input{flex:1;height:32px;padding:0 10px;background:var(--bg-2);border:1px solid var(--border-0);border-radius:4px;outline:none;font-size:12px;font-family:var(--font-mono);color:var(--text-0);transition:border-color .15s}.connector-role-map-row input:focus{border-color:var(--green)}.connector-success{display:flex;flex-direction:column;align-items:center;text-align:center;padding:24px 0;gap:12px}.connector-success-check{margin-bottom:4px}.connector-success-check .success-circle{stroke-dasharray:150;stroke-dashoffset:150;animation:draw-circle .6s ease forwards}.connector-success-check .success-check-path{stroke-dasharray:40;stroke-dashoffset:40;animation:draw-check .4s ease forwards .5s}@keyframes draw-circle{to{stroke-dashoffset:0}}@keyframes draw-check{to{stroke-dashoffset:0}}.connector-success-title{font-family:var(--font-head);font-size:16px;font-weight:700;color:var(--text-0)}.connector-success-sub{font-size:12px;color:var(--text-2)}.connector-success-actions{display:flex;gap:10px;margin-top:8px;width:100%}.connector-badge{display:inline-flex;align-items:center;gap:6px;font-family:var(--font-mono);font-size:11px;font-weight:500;padding:4px 12px;border-radius:4px;letter-spacing:.3px}.connector-badge.connected{background:var(--green-dim);color:var(--green)}.connector-badge-dot{width:6px;height:6px;border-radius:50%;background:var(--green);flex-shrink:0}.connector-badge-detail{color:var(--text-3);margin-left:4px;font-weight:400}.connector-badge-inline{display:inline-flex;align-items:center;gap:4px;margin-left:6px;font-family:var(--font-mono);font-size:9px;font-weight:600;padding:1px 6px;border-radius:3px;background:var(--green-dim);color:var(--green);letter-spacing:.3px;text-transform:uppercase}.connector-badge-inline .connector-badge-dot{width:4px;height:4px}.portal{display:flex;flex-direction:column;min-height:100%;background:var(--bg-0)}.portal-header{display:flex;align-items:center;justify-content:space-between;height:56px;padding:0 24px;background:var(--portal-header-bg);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--border-0);flex-shrink:0;position:sticky;top:0;z-index:50}.portal-header-left{display:flex;align-items:center;gap:10px}.portal-logo{width:28px;height:28px;border-radius:6px;background:var(--green);display:flex;align-items:center;justify-content:center;font-family:var(--font-mono);font-weight:700;font-size:14px;color:var(--green-contrast);flex-shrink:0}.portal-wordmark{font-family:var(--font-head);font-size:14px;font-weight:700;color:var(--text-0);letter-spacing:2px}.portal-header-right{display:flex;align-items:center;gap:4px}.portal-user-btn{display:flex;align-items:center;gap:8px;padding:5px 10px;border-radius:6px;transition:background .12s}.portal-user-btn:hover{background:var(--bg-3)}.portal-user-avatar{width:30px;height:30px;border-radius:50%;background:var(--bg-4);display:flex;align-items:center;justify-content:center;font-family:var(--font-mono);font-size:12px;font-weight:600;color:var(--text-1);flex-shrink:0}.portal-user-name{font-size:13px;font-weight:500;color:var(--text-0)}.portal-user-chevron{font-size:10px;color:var(--text-3)}.portal-user-menu{position:absolute;top:calc(100% + 6px);right:0;min-width:200px;background:var(--bg-2);border:1px solid var(--border-1);border-radius:var(--radius);overflow:hidden;z-index:100;box-shadow:0 8px 24px var(--shadow-lg)}.portal-menu-user-info{padding:12px 14px}.portal-menu-name{font-size:13px;font-weight:600;color:var(--text-0)}.portal-menu-email{font-size:11px;color:var(--text-3);margin-top:1px}.portal-menu-divider{height:1px;background:var(--border-0)}.portal-menu-item{display:block;width:100%;text-align:left;padding:9px 14px;font-size:13px;color:var(--text-1);transition:background .08s,color .08s}.portal-menu-item:hover{background:var(--bg-3);color:var(--text-0)}.portal-menu-item-danger:hover{color:var(--red)}.portal-notification-bell{position:relative;display:flex;align-items:center}.portal-bell-btn{position:relative;display:flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:6px;color:var(--text-2);transition:background .12s,color .12s;margin-right:4px}.portal-bell-btn:hover{background:var(--bg-3);color:var(--text-0)}.portal-bell-badge{position:absolute;top:2px;right:2px;min-width:16px;height:16px;padding:0 4px;border-radius:8px;background:var(--red);color:#fff;font-family:var(--font-mono);font-size:9px;font-weight:700;display:flex;align-items:center;justify-content:center;line-height:1}.portal-notification-dropdown{position:absolute;top:calc(100% + 8px);right:0;width:340px;max-height:420px;background:var(--bg-2);border:1px solid var(--border-1);border-radius:10px;overflow:hidden;z-index:200;box-shadow:0 12px 40px var(--shadow-lg)}.portal-notif-header{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-bottom:1px solid var(--border-0)}.portal-notif-title{font-family:var(--font-head);font-size:14px;font-weight:600;color:var(--text-0)}.portal-notif-mark-read{font-size:11px;color:var(--green);font-weight:500;transition:opacity .12s}.portal-notif-mark-read:hover{opacity:.8}.portal-notif-list{overflow-y:auto;max-height:360px}.portal-notif-empty{padding:32px 16px;text-align:center;color:var(--text-3);font-size:13px}.portal-notif-item{display:flex;gap:10px;padding:12px 16px;border-bottom:1px solid var(--border-0);transition:background .08s}.portal-notif-item:last-child{border-bottom:none}.portal-notif-item:hover{background:var(--bg-3)}.portal-notif-unread{background:var(--green-dim)}.portal-notif-dot{width:7px;height:7px;border-radius:50%;background:transparent;flex-shrink:0;margin-top:6px}.portal-notif-unread .portal-notif-dot{background:var(--green)}.portal-notif-content{flex:1;min-width:0}.portal-notif-item-title{font-size:13px;font-weight:500;color:var(--text-0);line-height:1.4}.portal-notif-item-msg{font-size:12px;color:var(--text-2);line-height:1.4;margin-top:2px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.portal-notif-time{font-size:11px;color:var(--text-3);margin-top:4px}.portal-content{flex:1;width:100%;max-width:1040px;margin:0 auto;padding:40px 24px}.portal-greeting{margin-bottom:32px}.portal-greeting-title{font-family:var(--font-head);font-size:28px;font-weight:700;letter-spacing:-.02em;color:var(--text-0);margin-bottom:4px}.portal-greeting-sub{font-size:14px;color:var(--text-2)}.portal-search-bar{position:relative;margin-bottom:24px}.portal-search-icon{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:var(--text-3);pointer-events:none}.portal-search-input{width:100%;height:44px;padding:0 40px 0 42px;background:var(--bg-1);border:1px solid var(--border-0);border-radius:10px;outline:none;font-size:14px;color:var(--text-0);transition:border-color .15s,box-shadow .15s}.portal-search-input::placeholder{color:var(--text-3)}.portal-search-input:focus{border-color:var(--green);box-shadow:0 0 0 3px var(--green-dim)}.portal-search-clear{position:absolute;right:8px;top:50%;transform:translateY(-50%);width:28px;height:28px;border-radius:6px;display:flex;align-items:center;justify-content:center;font-size:18px;color:var(--text-3);transition:background .12s,color .12s}.portal-search-clear:hover{background:var(--bg-3);color:var(--text-0)}.portal-title{font-family:var(--font-head);font-size:24px;font-weight:700;letter-spacing:-.01em;margin-bottom:28px;color:var(--text-0)}.portal-loading{display:flex;align-items:center;justify-content:center;gap:10px;padding:64px 0;color:var(--text-2);font-size:13px}.portal-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.portal-tile{background:var(--bg-1);border:1px solid var(--border-0);border-radius:14px;display:flex;flex-direction:column;cursor:pointer;transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease;overflow:hidden;position:relative}.portal-tile:hover{transform:translateY(-6px);box-shadow:0 12px 32px var(--shadow-md),0 0 0 1px var(--border-2),0 0 24px var(--tile-glow, transparent);border-color:var(--border-2)}.portal-tile:active{transform:translateY(-3px)}.portal-tile-banner{position:relative;height:80px;background:var(--bg-4);display:flex;align-items:center;justify-content:center}.portal-tile-icon{width:48px;height:48px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-family:var(--font-head);font-size:22px;font-weight:700;color:#fff;background:#fff3;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);flex-shrink:0}.portal-tile-status{position:absolute;top:10px;right:10px;display:flex;align-items:center;gap:4px;padding:3px 8px;border-radius:20px;background:#0000004d;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);font-size:10px;font-weight:500;color:#ffffffe6}.portal-tile-status-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0}.portal-tile-status.running .portal-tile-status-dot{background:#34d399;box-shadow:0 0 4px #34d399}.portal-tile-status.stopped .portal-tile-status-dot{background:#fbbf24}.portal-tile-status.error .portal-tile-status-dot{background:#f87171}.portal-tile-status.registered .portal-tile-status-dot{background:#ffffff80}.portal-tile-status-label{font-family:var(--font-mono);font-size:9px;text-transform:uppercase;letter-spacing:.4px}.portal-tile-body{padding:16px 18px 12px;flex:1}.portal-tile-name{font-family:var(--font-head);font-size:16px;font-weight:600;color:var(--text-0);margin-bottom:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.portal-tile-desc{font-size:12px;color:var(--text-2);line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:36px;margin-bottom:8px}.portal-tile-meta{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.portal-tile-stack{display:inline-flex;align-items:center;font-family:var(--font-mono);font-size:10px;font-weight:500;padding:2px 8px;border-radius:4px;background:var(--indigo-bg);color:var(--indigo);letter-spacing:.2px}.portal-tile-action-wrap{padding:0 18px 16px;transform:translateY(8px);opacity:0;transition:transform .22s ease,opacity .22s ease}.portal-tile:hover .portal-tile-action-wrap{transform:translateY(0);opacity:1}.portal-tile-action{display:block;width:100%;padding:9px 28px;background:var(--green);color:var(--green-contrast);font-family:var(--font-head);font-weight:600;font-size:13px;border-radius:8px;letter-spacing:.01em;text-align:center;transition:opacity .15s}.portal-tile-action:hover{opacity:.9}.portal-tile-badge-unavailable{display:block;text-align:center;padding:7px 16px;font-family:var(--font-mono);font-size:10px;font-weight:500;color:var(--text-3);background:var(--bg-3);border-radius:8px;letter-spacing:.3px}.portal-tile-unavailable{cursor:default;opacity:.55}.portal-tile-unavailable:hover{transform:none;box-shadow:none;border-color:var(--border-0)}.portal-tile-unavailable:hover .portal-tile-action-wrap{transform:translateY(0);opacity:1}.portal-tile-unavailable .portal-tile-banner{background:var(--bg-4)!important}.portal-tile-unavailable .portal-tile-icon{background:#ffffff14!important;color:var(--text-3)}.portal-recent{margin-top:40px;padding-top:24px;border-top:1px solid var(--border-0)}.portal-recent-title{font-family:var(--font-head);font-size:14px;font-weight:600;color:var(--text-1);margin-bottom:12px;letter-spacing:.01em}.portal-recent-list{display:flex;flex-direction:column;gap:6px}.portal-recent-item{display:flex;align-items:center;gap:10px;padding:10px 14px;background:var(--bg-1);border:1px solid var(--border-0);border-radius:8px;color:var(--text-2);font-size:13px}.portal-recent-item svg{color:var(--text-3);flex-shrink:0}.portal-recent-name{flex:1;color:var(--text-1)}.portal-recent-name strong{color:var(--text-0);font-weight:600}.portal-recent-time{font-family:var(--font-mono);font-size:11px;color:var(--text-3);flex-shrink:0}.portal-empty{text-align:center;padding:64px 20px;background:var(--bg-1);border:1px solid var(--border-0);border-radius:10px}.portal-empty .portal-empty-icon{font-family:var(--font-mono);font-size:28px;color:var(--text-3);margin-bottom:16px}.portal-empty h3{font-family:var(--font-head);font-size:16px;font-weight:600;margin-bottom:6px;color:var(--text-0)}.portal-empty p{color:var(--text-2);font-size:13px}.portal-footer{padding:20px 24px;text-align:center;font-size:11px;color:var(--text-3);border-top:1px solid var(--border-0);flex-shrink:0}.portal-footer-links{margin-top:4px}.portal-footer-links a{color:var(--text-3);transition:color .12s}.portal-footer-links a:hover{color:var(--text-1)}.portal-footer-sep{margin:0 6px;color:var(--border-1)}.password-modal{max-width:400px}.password-form{display:flex;flex-direction:column;gap:14px}.password-form-actions{display:flex;gap:10px;margin-top:4px}.password-success{text-align:center;padding:16px 0}.password-success-icon{width:48px;height:48px;border-radius:50%;background:var(--green-dim);color:var(--green);display:inline-flex;align-items:center;justify-content:center;font-size:22px;font-weight:700;margin-bottom:12px}.password-success p{color:var(--text-1);font-size:13px}.env-editor{max-width:640px}.env-table{width:100%;border-collapse:collapse;margin-bottom:12px}.env-table thead th{font-family:var(--font-mono);font-size:10px;text-transform:uppercase;letter-spacing:.8px;color:var(--text-3);text-align:left;padding:0 4px 8px;font-weight:500}.env-table thead th:last-child{width:32px}.env-row td{padding:3px 4px}.env-row input{width:100%;height:34px;padding:0 10px;background:var(--bg-0);border:1px solid var(--border-0);border-radius:4px;outline:none;font-family:var(--font-mono);font-size:12px;color:var(--text-0);transition:border-color .15s}.env-row input:focus{border-color:var(--green)}.env-row input::placeholder{color:var(--text-3)}.env-delete-btn{width:28px;height:34px;display:flex;align-items:center;justify-content:center;font-size:16px;color:var(--text-3);border-radius:4px;transition:color .12s,background .12s}.env-delete-btn:hover{color:var(--red);background:var(--red-dim)}.env-add-btn{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;border:1px dashed var(--border-1);border-radius:4px;color:var(--text-2);font-size:12px;transition:border-color .12s,color .12s}.env-add-btn:hover{border-color:var(--green);color:var(--green)}.env-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:16px;padding-top:14px;border-top:1px solid var(--border-0)}.import-section{margin-top:16px;padding:16px;background:var(--bg-2);border:1px solid var(--border-1);border-radius:var(--radius)}.import-section h4{font-family:var(--font-head);font-size:13px;font-weight:600;color:var(--text-0);margin-bottom:8px}.import-section p{color:var(--text-2);font-size:12px;margin-bottom:12px}.import-preview{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:14px;max-height:280px;overflow-y:auto}.import-preview-col{display:flex;flex-direction:column;gap:4px}.import-preview-col h5{font-family:var(--font-head);font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.4px;color:var(--text-2);margin-bottom:4px;padding-bottom:4px;border-bottom:1px solid var(--border-0)}.import-user-row{display:flex;align-items:center;gap:8px;padding:4px 8px;border-radius:4px;background:var(--bg-3);font-size:12px}.import-user-row .username{font-family:var(--font-mono);font-size:11px;color:var(--text-0);font-weight:500}.import-user-row .email{color:var(--text-2);font-size:10px;margin-left:auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:120px}.import-results{padding:14px;background:var(--bg-2);border:1px solid var(--border-1);border-radius:var(--radius);margin-top:12px}.import-results-summary{display:flex;gap:16px;margin-bottom:8px}.import-results-stat{font-family:var(--font-mono);font-size:12px;font-weight:600}.import-results-stat.imported{color:var(--green)}.import-results-stat.skipped{color:var(--amber)}.import-results-stat.errored{color:var(--red)}.import-badge-new{display:inline-block;font-family:var(--font-mono);font-size:9px;font-weight:600;text-transform:uppercase;letter-spacing:.3px;padding:1px 6px;border-radius:3px;background:var(--green-dim);color:var(--green)}.import-badge-skip{display:inline-block;font-family:var(--font-mono);font-size:9px;font-weight:600;text-transform:uppercase;letter-spacing:.3px;padding:1px 6px;border-radius:3px;background:var(--amber-dim);color:var(--amber)}@media(max-width:768px){.login-right{display:none}.login-left{max-width:100%;padding:32px 24px}.sidebar{display:none}.main-area{margin-left:0}.mobile-bottom-nav{display:block}.main-content{padding:20px 16px 72px}.bento,.bento-4{grid-template-columns:1fr 1fr}.app-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}.users-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}.users-table{min-width:600px}.users-table th:first-child,.users-table td:first-child{position:sticky;left:0;background:var(--bg-1);z-index:2}.users-table th:first-child{background:var(--bg-2)}.users-table th:nth-child(2),.users-table td:nth-child(2){position:sticky;left:36px;background:var(--bg-1);z-index:2}.users-table th:nth-child(2){background:var(--bg-2)}.portal-grid{grid-template-columns:repeat(2,1fr)}.portal-content{padding:24px 16px}.portal-title{font-size:20px;margin-bottom:20px}.portal-user-name{display:none}.portal-greeting-title{font-size:24px}.portal-tile-action-wrap{opacity:1;transform:translateY(0)}.modal-overlay{padding:0}.modal-card{width:100%;height:100%;max-width:none;border-radius:0;display:flex;flex-direction:column}.modal-body{flex:1;overflow-y:auto}.confirm-overlay{padding:16px}.confirm-card{max-width:none}.user-form .form-row,.connector-form .form-row{grid-template-columns:1fr}.connector-steps .connector-step-label{display:none}.import-preview{grid-template-columns:1fr}.login-btn,.modal-secondary-btn{min-height:44px}.table-action-btn{min-height:44px;padding:8px 12px}.sidebar-item{min-height:44px}.health-grid{grid-template-columns:1fr 1fr}.home-header,.users-header{flex-direction:column;align-items:flex-start}.bulk-action-bar{left:16px;right:16px;transform:none;bottom:72px}.deploy-panel{padding:20px 16px}.app-host-toolbar{flex-wrap:wrap;gap:6px;padding:8px 12px}}@media(max-width:480px){.bento,.bento-4,.portal-grid,.app-grid,.health-grid{grid-template-columns:1fr}.main-content{padding:16px 12px 72px}.home-header h1{font-size:18px}.home-page,.users-page{max-width:100%}.csv-result-summary{grid-template-columns:1fr}.app-host-toolbar .reload-btn{font-size:10px;padding:6px 8px}}@media(min-width:769px)and (max-width:1024px){.portal-grid{grid-template-columns:repeat(2,1fr)}}.health-dot{display:inline-block;width:7px;height:7px;border-radius:50%;margin-left:6px;flex-shrink:0}.health-badge{display:inline-flex;align-items:center;gap:5px;font-family:var(--font-mono);font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.3px;padding:3px 10px;border-radius:4px}.health-badge:before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%}.health-badge.health-healthy{background:var(--green-dim);color:var(--green)}.health-badge.health-healthy:before{background:var(--green)}.health-badge.health-unhealthy{background:var(--red-dim);color:var(--red)}.health-badge.health-unhealthy:before{background:var(--red)}.health-badge.health-unknown{background:var(--health-unknown-bg);color:var(--text-3)}.health-badge.health-unknown:before{background:var(--text-3)}.health-badge-sm{display:inline-flex;align-items:center;gap:4px;font-family:var(--font-mono);font-size:9px;font-weight:600;text-transform:uppercase;letter-spacing:.3px;padding:2px 7px;border-radius:3px;white-space:nowrap}.health-badge-sm:before{content:"";display:inline-block;width:5px;height:5px;border-radius:50%}.health-badge-sm.health-healthy{background:var(--green-dim);color:var(--green)}.health-badge-sm.health-healthy:before{background:var(--green)}.health-badge-sm.health-unhealthy{background:var(--red-dim);color:var(--red)}.health-badge-sm.health-unhealthy:before{background:var(--red)}.health-badge-sm.health-unknown{background:var(--health-unknown-bg);color:var(--text-3)}.health-badge-sm.health-unknown:before{background:var(--text-3)}.theme-toggle{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:4px;font-size:14px;color:var(--text-2);transition:background .12s,color .12s;flex-shrink:0;cursor:pointer;line-height:1}.theme-toggle:hover{background:var(--bg-3);color:var(--text-0)}.theme-toggle-portal{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:6px;font-size:16px;color:var(--text-2);transition:background .12s,color .12s;cursor:pointer;line-height:1;margin-right:4px}.theme-toggle-portal:hover{background:var(--bg-3);color:var(--text-0)}.domain-section{margin-top:20px;padding:16px;background:var(--bg-2);border:1px solid var(--border-1);border-radius:var(--radius)}.domain-section h4{font-family:var(--font-head);font-size:13px;font-weight:600;color:var(--text-0);margin-bottom:10px}.domain-form{display:flex;gap:8px;align-items:center;margin-bottom:8px}.domain-form input{flex:1;height:34px;padding:0 10px;background:var(--bg-0);border:1px solid var(--border-0);border-radius:4px;outline:none;font-family:var(--font-mono);font-size:12px;color:var(--text-0);transition:border-color .15s}.domain-form input:focus{border-color:var(--green)}.domain-current{display:flex;align-items:center;gap:10px;padding:8px 12px;background:var(--bg-0);border:1px solid var(--border-0);border-radius:4px;margin-bottom:8px}.domain-current-value{font-family:var(--font-mono);font-size:12px;color:var(--green);flex:1}.domain-instructions{font-size:11px;color:var(--text-2);font-family:var(--font-mono);background:var(--bg-0);border:1px solid var(--border-0);border-radius:4px;padding:10px 12px;line-height:1.6;white-space:pre-wrap}.domain-label{font-family:var(--font-mono);font-size:9px;color:var(--text-2);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.job-progress{margin-top:20px;background:var(--bg-0);border:1px solid var(--border-0);border-radius:var(--radius);overflow:hidden}.job-progress-header{display:flex;align-items:center;gap:8px;padding:10px 14px;background:var(--bg-2);border-bottom:1px solid var(--border-0)}.job-progress-header .spinner{width:14px;height:14px}.job-progress-title{font-family:var(--font-mono);font-size:11px;color:var(--text-1);flex:1}.job-progress-pct{font-family:var(--font-mono);font-size:11px;color:var(--green);font-weight:600}.job-progress-bar{height:3px;background:var(--bg-4)}.job-progress-bar-fill{height:100%;background:var(--green);transition:width .3s ease}.job-progress-status{padding:10px 14px;font-family:var(--font-mono);font-size:11px;color:var(--text-2)}.job-progress-error{padding:10px 14px;font-family:var(--font-mono);font-size:11px;color:var(--red)}.sidebar-badge{font-family:var(--font-mono);font-size:9px;font-weight:700;min-width:16px;height:16px;padding:0 4px;border-radius:8px;background:var(--red);color:var(--confirm-danger-color);display:inline-flex;align-items:center;justify-content:center;line-height:1;flex-shrink:0}.bulk-checkbox{width:15px;height:15px;accent-color:var(--green);cursor:pointer;vertical-align:middle}.bulk-action-bar{position:fixed;bottom:24px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:16px;padding:10px 20px;background:#131316d9;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid var(--border-1);border-radius:10px;box-shadow:0 8px 32px #00000080;z-index:150;white-space:nowrap}.bulk-count{font-family:var(--font-mono);font-size:12px;font-weight:600;color:var(--green);letter-spacing:.3px}.bulk-actions{display:flex;align-items:center;gap:8px}.bulk-dropdown{position:absolute;bottom:calc(100% + 6px);left:0;min-width:180px;background:var(--bg-2);border:1px solid var(--border-1);border-radius:var(--radius);overflow:hidden;z-index:160;box-shadow:0 8px 24px #0006}.bulk-dropdown-item{display:block;width:100%;text-align:left;padding:8px 14px;font-size:12px;color:var(--text-1);transition:background .08s,color .08s}.bulk-dropdown-item:hover{background:var(--bg-3);color:var(--text-0)}.bulk-dropdown-empty{padding:10px 14px;font-size:11px;color:var(--text-3);text-align:center}.csv-modal{max-width:560px}.csv-format-info{font-size:12px;color:var(--text-2);margin-bottom:14px;padding:8px 12px;background:var(--bg-0);border:1px solid var(--border-0);border-radius:4px}.csv-format-info code{font-family:var(--font-mono);font-size:11px;color:var(--green);background:var(--bg-3);padding:1px 5px;border-radius:3px}.csv-dropzone{border:1px dashed var(--border-1);border-radius:var(--radius);padding:36px 20px;text-align:center;cursor:pointer;transition:border-color .15s,background .15s}.csv-dropzone:hover{border-color:var(--border-2);background:var(--bg-3)}.csv-dropzone.drag-over{border-color:var(--green);background:var(--green-dim)}.csv-dropzone-icon{font-family:var(--font-mono);font-size:18px;color:var(--text-3);margin-bottom:8px}.csv-dropzone.drag-over .csv-dropzone-icon{color:var(--green)}.csv-dropzone-text{font-size:13px;color:var(--text-2)}.csv-dropzone-text strong{color:var(--text-0)}.csv-file-name{font-family:var(--font-mono);font-size:12px;color:var(--text-1);margin-bottom:10px;padding:6px 10px;background:var(--bg-0);border:1px solid var(--border-0);border-radius:4px}.csv-preview-wrap{max-height:220px;overflow:auto;border:1px solid var(--border-0);border-radius:var(--radius)}.csv-preview{width:100%;border-collapse:collapse;font-size:11px}.csv-preview th{text-align:left;padding:7px 10px;font-family:var(--font-mono);font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--text-3);background:var(--bg-2);border-bottom:1px solid var(--border-0);position:sticky;top:0;white-space:nowrap}.csv-preview td{padding:6px 10px;color:var(--text-1);border-bottom:1px solid var(--border-0);white-space:nowrap;max-width:140px;overflow:hidden;text-overflow:ellipsis}.csv-preview tr:last-child td{border-bottom:none}.csv-preview-more{padding:6px 10px;font-size:11px;color:var(--text-3);text-align:center;background:var(--bg-0)}.csv-result-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--border-0);border:1px solid var(--border-0);border-radius:var(--radius);overflow:hidden;margin-bottom:12px}.csv-result-stat{display:flex;flex-direction:column;align-items:center;gap:2px;padding:16px 12px;background:var(--bg-1)}.csv-result-num{font-family:var(--font-head);font-size:24px;font-weight:700}.csv-result-label{font-family:var(--font-mono);font-size:10px;text-transform:uppercase;letter-spacing:.8px;color:var(--text-3)}.csv-result-details{max-height:140px;overflow-y:auto;background:var(--bg-0);border:1px solid var(--border-0);border-radius:4px;padding:8px 12px}.csv-result-detail{font-family:var(--font-mono);font-size:11px;color:var(--text-2);padding:2px 0;line-height:1.5}.fade-in{animation:fadeIn .3s ease-out}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.skeleton{background:linear-gradient(90deg,var(--bg-2) 25%,var(--bg-3) 50%,var(--bg-2) 75%);background-size:200% 100%;animation:shimmer 1.5s infinite;border-radius:4px}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.scale-hover{transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease}.scale-hover:hover{transform:translateY(-2px);box-shadow:0 8px 25px #00000026}.slide-in-right{animation:slideInRight .3s ease-out}@keyframes slideInRight{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}.modal-animate{animation:modalScaleIn .2s ease-out}@keyframes modalScaleIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.login-btn{transition:opacity .15s,transform .12s}.login-btn:hover:not(:disabled){transform:scale(1.02)}.login-btn:active:not(:disabled){transform:scale(.98)}.modal-secondary-btn{transition:border-color .12s,transform .12s,background .12s}.modal-secondary-btn:hover:not(:disabled){transform:scale(1.02)}.modal-secondary-btn:active:not(:disabled){transform:scale(.98)}.counter-animate{display:inline-block}.toast-container{position:fixed;top:16px;right:16px;z-index:500;display:flex;flex-direction:column;gap:8px;pointer-events:none}.toast{pointer-events:auto;padding:10px 16px;border-radius:6px;font-size:12px;font-weight:500;display:flex;align-items:center;gap:8px;animation:slideInRight .3s ease-out;box-shadow:0 4px 16px #00000040;min-width:200px}.toast.success{background:var(--green);color:var(--green-contrast)}.toast.error{background:var(--red);color:#fff}.toast.info{background:var(--bg-3);color:var(--text-0);border:1px solid var(--border-1)}.sidebar-item{position:relative;transition:background .15s,color .15s}.sidebar-item:before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);width:3px;height:0;background:var(--green);border-radius:0 2px 2px 0;transition:height .2s ease}.sidebar-item.active:before{height:18px}.health-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:8px}.health-grid-item{display:flex;align-items:center;gap:8px;padding:10px 12px;background:var(--bg-1);border:1px solid var(--border-0);border-radius:var(--radius);transition:border-color .12s}.health-grid-item:hover{border-color:var(--border-2)}.health-grid-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.health-grid-dot.healthy{background:var(--green)}.health-grid-dot.unhealthy{background:var(--red)}.health-grid-dot.unknown{background:var(--text-3)}.health-grid-name{font-size:12px;font-weight:500;color:var(--text-0);flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.health-grid-time{font-family:var(--font-mono);font-size:9px;color:var(--text-3);white-space:nowrap}.activity-icon{width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:11px;flex-shrink:0}.activity-icon.login{background:var(--green-dim);color:var(--green)}.activity-icon.create{background:var(--indigo-bg);color:var(--indigo)}.activity-icon.deploy{background:var(--amber-dim);color:var(--amber)}.activity-icon.delete{background:var(--red-dim);color:var(--red)}.activity-icon.access{background:var(--purple-bg);color:var(--purple)}.activity-icon.default{background:var(--bg-3);color:var(--text-2)}.skeleton-row{display:flex;gap:12px;align-items:center;padding:8px 0}.skeleton-block{height:14px;border-radius:4px}.skeleton-block.sm{width:40px}.skeleton-block.md{width:100px}.skeleton-block.lg{width:180px}.skeleton-block.xl{width:100%}.skeleton-block.circle{width:24px;height:24px;border-radius:50%}.skeleton-bento{height:80px;border-radius:var(--radius)}.mobile-bottom-nav{display:none;position:fixed;bottom:0;left:0;right:0;height:56px;background:var(--bg-1);border-top:1px solid var(--border-0);z-index:100;padding:0 8px}.mobile-bottom-nav-inner{display:flex;align-items:center;justify-content:space-around;height:100%;max-width:400px;margin:0 auto}.mobile-nav-item{display:flex;flex-direction:column;align-items:center;gap:2px;padding:6px 12px;border-radius:6px;color:var(--text-2);font-size:10px;transition:color .12s;min-width:44px;min-height:44px;justify-content:center}.mobile-nav-item .mobile-nav-icon{font-family:var(--font-mono);font-size:16px;line-height:1}.mobile-nav-item.active{color:var(--green)}.mobile-nav-item:hover{color:var(--text-0)}.landing{min-height:100%;background:var(--bg-0);overflow-x:hidden}.landing-nav{position:fixed;top:0;left:0;right:0;z-index:100;background:#050506cc;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--border-0)}[data-theme=light] .landing-nav{background:#f5f5f7cc}.landing-nav-inner{max-width:1120px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;padding:0 24px;height:56px}.landing-nav-brand{display:flex;align-items:center;gap:10px}.landing-nav-logo{width:28px;height:28px;border-radius:6px;background:var(--green);display:flex;align-items:center;justify-content:center;font-family:var(--font-mono);font-weight:700;font-size:14px;color:var(--green-contrast);flex-shrink:0}.landing-nav-wordmark{font-family:var(--font-head);font-size:14px;font-weight:700;color:var(--text-0);letter-spacing:2px}.landing-nav-links{display:flex;align-items:center;gap:6px}.landing-nav-link{padding:6px 14px;font-size:13px;color:var(--text-2);border-radius:4px;transition:color .15s,background .15s}.landing-nav-link:hover{color:var(--text-0);background:var(--bg-3)}.landing-nav-demo{padding:6px 16px;font-size:13px;font-weight:500;color:var(--text-1);border:1px solid var(--border-1);border-radius:4px;transition:border-color .15s,color .15s}.landing-nav-demo:hover{border-color:var(--border-2);color:var(--text-0)}.landing-nav-signin{padding:6px 18px;font-size:13px;font-weight:600;background:var(--green);color:var(--green-contrast);border-radius:4px;font-family:var(--font-head);transition:opacity .15s}.landing-nav-signin:hover{opacity:.9}.landing-hero{position:relative;display:flex;align-items:center;justify-content:center;gap:64px;max-width:1120px;margin:0 auto;padding:140px 24px 80px;min-height:80vh}.landing-hero-glow{position:absolute;top:-120px;left:50%;transform:translate(-50%);width:700px;height:700px;border-radius:50%;background:radial-gradient(circle,rgba(16,185,129,.08) 0%,transparent 70%);pointer-events:none;animation:hero-glow-pulse 6s ease-in-out infinite alternate}@keyframes hero-glow-pulse{0%{opacity:.5;transform:translate(-50%) scale(.95)}to{opacity:1;transform:translate(-50%) scale(1.05)}}.landing-hero-content{flex:1;max-width:540px}.landing-hero-badge{display:inline-block;font-family:var(--font-mono);font-size:11px;font-weight:500;color:var(--green);background:var(--green-dim);padding:4px 12px;border-radius:20px;letter-spacing:.3px;margin-bottom:24px}.landing-hero-title{font-family:var(--font-head);font-weight:800;letter-spacing:-.03em;line-height:1.05;margin-bottom:16px}.landing-hero-title-main{font-size:64px;background:linear-gradient(135deg,var(--text-0) 0%,var(--green) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.landing-hero-subtitle{font-family:var(--font-head);font-size:22px;font-weight:500;color:var(--text-1);margin-bottom:16px;letter-spacing:-.01em}.landing-hero-desc{font-size:15px;line-height:1.7;color:var(--text-2);margin-bottom:32px}.landing-hero-actions{display:flex;gap:12px;align-items:center}.landing-hero-cta{display:inline-flex;align-items:center;gap:8px;padding:12px 28px;background:var(--green);color:var(--green-contrast);font-family:var(--font-head);font-size:14px;font-weight:600;border-radius:6px;transition:opacity .15s,transform .15s}.landing-hero-cta:hover{opacity:.9;transform:translateY(-1px)}.landing-hero-cta-arrow{font-size:16px;transition:transform .15s}.landing-hero-cta:hover .landing-hero-cta-arrow{transform:translate(3px)}.landing-hero-demo{padding:12px 24px;font-family:var(--font-head);font-size:14px;font-weight:600;color:var(--text-1);border:1px solid var(--border-1);border-radius:6px;transition:border-color .15s,color .15s}.landing-hero-demo:hover{border-color:var(--border-2);color:var(--text-0)}.landing-hero-terminal{flex:1;max-width:440px}.landing-terminal-window{background:var(--bg-1);border:1px solid var(--border-0);border-radius:10px;overflow:hidden;box-shadow:0 16px 48px #0000004d}.landing-terminal-dots{display:flex;gap:6px;padding:12px 16px;background:var(--bg-2);border-bottom:1px solid var(--border-0)}.landing-dot{width:8px;height:8px;border-radius:50%}.landing-dot.red{background:#ff5f57}.landing-dot.yellow{background:#febc2e}.landing-dot.green{background:#28c840}.landing-terminal-body{padding:20px;font-family:var(--font-mono);font-size:12px;line-height:1.8;color:var(--text-2)}.lt-line{white-space:nowrap;overflow:hidden}.lt-prompt{color:var(--green);margin-right:6px}.lt-muted{color:var(--text-3)}.lt-success{color:var(--green)}.lt-cursor{color:var(--text-3);animation:detection-fade 1.4s ease-in-out infinite alternate}.landing-features{padding:100px 0;background:var(--bg-1);border-top:1px solid var(--border-0);border-bottom:1px solid var(--border-0)}.landing-section-inner{max-width:1120px;margin:0 auto;padding:0 24px}.landing-section-header{text-align:center;margin-bottom:56px}.landing-section-tag{display:inline-block;font-family:var(--font-mono);font-size:11px;font-weight:600;color:var(--green);text-transform:uppercase;letter-spacing:1.5px;margin-bottom:12px}.landing-section-title{font-family:var(--font-head);font-size:32px;font-weight:700;color:var(--text-0);letter-spacing:-.02em;margin-bottom:12px}.landing-section-desc{font-size:15px;color:var(--text-2);max-width:560px;margin:0 auto;line-height:1.6}.landing-feature-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.landing-feature-grid.landing-feature-grid-4{grid-template-columns:repeat(4,1fr)}.landing-feature-card{background:var(--bg-2);border:1px solid var(--border-0);border-radius:10px;padding:32px 28px;transition:border-color .2s,transform .2s,box-shadow .2s}.landing-feature-card:hover{border-color:var(--border-2);transform:translateY(-4px);box-shadow:0 12px 32px #00000026}.landing-feature-icon{width:44px;height:44px;border-radius:10px;background:var(--green-dim);color:var(--green);display:flex;align-items:center;justify-content:center;margin-bottom:20px}.landing-feature-title{font-family:var(--font-head);font-size:17px;font-weight:700;color:var(--text-0);margin-bottom:8px}.landing-feature-desc{font-size:13px;line-height:1.65;color:var(--text-2)}.landing-steps{padding:100px 0}.landing-steps-grid{display:flex;align-items:flex-start;justify-content:center;gap:0}.landing-step-card{flex:1;max-width:220px;text-align:center;padding:0 16px}.landing-step-number{width:44px;height:44px;border-radius:50%;background:var(--green);color:var(--green-contrast);display:flex;align-items:center;justify-content:center;font-family:var(--font-head);font-size:18px;font-weight:700;margin:0 auto 16px}.landing-step-content h3{font-family:var(--font-head);font-size:15px;font-weight:700;color:var(--text-0);margin-bottom:6px}.landing-step-content p{font-size:13px;line-height:1.6;color:var(--text-2)}.landing-step-connector{width:48px;height:2px;background:var(--border-1);flex-shrink:0;margin-top:22px}.landing-stats{padding:64px 0;background:var(--bg-1);border-top:1px solid var(--border-0);border-bottom:1px solid var(--border-0)}.landing-stats-grid{display:flex;align-items:center;justify-content:center;gap:48px}.landing-stat{text-align:center;padding:0 24px}.landing-stat-value,.landing-stat-value-text{font-family:var(--font-head);font-size:36px;font-weight:800;color:var(--text-0);letter-spacing:-.02em}.landing-stat-label{font-family:var(--font-mono);font-size:11px;color:var(--text-3);text-transform:uppercase;letter-spacing:1px;margin-top:4px}.landing-stat-divider{width:1px;height:48px;background:var(--border-0)}.landing-cta{padding:100px 0}.landing-cta-content{text-align:center;max-width:560px;margin:0 auto}.landing-cta-title{font-family:var(--font-head);font-size:32px;font-weight:700;color:var(--text-0);letter-spacing:-.02em;margin-bottom:12px}.landing-cta-desc{font-size:15px;color:var(--text-2);margin-bottom:32px;line-height:1.6}.landing-cta-actions{display:flex;gap:12px;justify-content:center}.landing-footer{padding:32px 0;border-top:1px solid var(--border-0);background:var(--bg-1)}.landing-footer-inner{max-width:1120px;margin:0 auto;padding:0 24px;display:flex;align-items:center;justify-content:space-between}.landing-footer-brand{display:flex;align-items:center;gap:10px}.landing-footer-links{display:flex;gap:24px}.landing-footer-link{font-size:13px;color:var(--text-2);transition:color .15s}.landing-footer-link:hover{color:var(--text-0)}.landing-footer-copy{font-size:12px;color:var(--text-3)}.login-extra-actions{display:flex;align-items:center;justify-content:space-between;margin-top:24px;padding-top:20px;border-top:1px solid var(--border-0)}.login-demo-btn{padding:7px 20px;font-family:var(--font-head);font-size:13px;font-weight:600;color:var(--text-1);border:1px solid var(--border-1);border-radius:4px;transition:border-color .15s,color .15s}.login-demo-btn:hover{border-color:var(--border-2);color:var(--text-0)}.login-back-link{font-size:13px;color:var(--text-2);transition:color .15s}.login-back-link:hover{color:var(--text-0)}.demo-banner{position:fixed;top:0;left:0;right:0;height:36px;background:linear-gradient(90deg,#f59e0b,#ef4444);display:flex;align-items:center;justify-content:center;gap:16px;z-index:500;flex-shrink:0}.demo-banner-text{font-family:var(--font-head);font-size:12px;font-weight:600;color:#fff;letter-spacing:.02em}.demo-banner-exit{padding:3px 12px;font-family:var(--font-head);font-size:11px;font-weight:600;color:#fff;background:#00000040;border-radius:3px;transition:background .15s}.demo-banner-exit:hover{background:#00000073}.app-layout.has-demo-banner{margin-top:36px;height:calc(100% - 36px)}.onboarding{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--bg-0);display:flex;align-items:center;justify-content:center;z-index:400;overflow-y:auto;padding:40px 24px}.onboarding-container{width:100%;max-width:520px;display:flex;flex-direction:column;align-items:center}.onboarding-progress{display:flex;gap:8px;margin-bottom:48px}.onboarding-progress-dot{width:8px;height:8px;border-radius:50%;background:var(--bg-4);transition:background .2s,transform .2s}.onboarding-progress-dot.active{background:var(--green);transform:scale(1.3)}.onboarding-progress-dot.done{background:var(--green);opacity:.5}.onboarding-step{width:100%;text-align:center;animation:onboarding-fadein .3s ease}@keyframes onboarding-fadein{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.onboarding-icon{margin-bottom:24px}.onboarding-logo{width:56px;height:56px;border-radius:14px;background:var(--green);color:var(--green-contrast);display:inline-flex;align-items:center;justify-content:center;font-family:var(--font-mono);font-weight:800;font-size:26px}.onboarding-check-icon{width:56px;height:56px;border-radius:50%;background:var(--green-dim);color:var(--green);display:inline-flex;align-items:center;justify-content:center;font-size:24px;font-weight:700}.onboarding-success-icon{display:inline-flex;align-items:center;justify-content:center}.onboarding-success-icon .success-circle{stroke-dasharray:150;stroke-dashoffset:150;animation:draw-circle .6s ease forwards}.onboarding-success-icon .success-check-path{stroke-dasharray:40;stroke-dashoffset:40;animation:draw-check .4s ease forwards .5s}.onboarding-title{font-family:var(--font-head);font-size:28px;font-weight:700;color:var(--text-0);letter-spacing:-.02em;margin-bottom:12px}.onboarding-desc{font-size:15px;line-height:1.65;color:var(--text-2);margin-bottom:32px;max-width:420px;margin-left:auto;margin-right:auto}.onboarding-actions{display:flex;flex-direction:column;align-items:center;gap:12px}.onboarding-btn-primary{display:inline-flex;align-items:center;gap:8px;padding:12px 28px;background:var(--green);color:var(--green-contrast);font-family:var(--font-head);font-size:14px;font-weight:600;border-radius:6px;transition:opacity .15s;min-width:220px;justify-content:center}.onboarding-btn-primary:hover{opacity:.9}.onboarding-btn-primary:disabled{opacity:.4;cursor:not-allowed}.onboarding-btn-secondary{padding:8px 20px;font-size:13px;color:var(--text-2);transition:color .15s}.onboarding-btn-secondary:hover{color:var(--text-0)}.onboarding-dropzone{max-width:420px;margin:0 auto;padding:40px 20px}.onboarding-uploading{max-width:420px;margin:0 auto;padding:24px 0}.onboarding-upload-status{font-size:13px;color:var(--text-1);text-align:center;margin-bottom:4px}.onboarding-upload-pct{font-family:var(--font-mono);font-size:11px;color:var(--text-3);text-align:center;margin-top:8px}.onboarding-summary{display:flex;flex-direction:column;gap:8px;margin-bottom:32px;background:var(--bg-1);border:1px solid var(--border-0);border-radius:8px;padding:16px 20px;text-align:left}.onboarding-summary-item{display:flex;align-items:center;gap:10px;font-size:13px;color:var(--text-1)}.onboarding-summary-item strong{color:var(--text-0)}.onboarding-summary-check{width:20px;height:20px;border-radius:50%;background:var(--green-dim);color:var(--green);display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;flex-shrink:0}.onboarding-tips{display:flex;flex-direction:column;gap:8px;margin-top:20px;max-width:420px;margin-left:auto;margin-right:auto;text-align:left}.onboarding-tip{display:flex;align-items:flex-start;gap:10px;font-size:12px;color:var(--text-3);line-height:1.5}.onboarding-tip-icon{color:var(--green);font-weight:700;flex-shrink:0;margin-top:1px}.onboarding-processing-steps{display:flex;flex-direction:column;gap:6px;margin-top:16px;text-align:left}.onboarding-processing-step{display:flex;align-items:center;gap:10px;font-size:12px;color:var(--text-2);animation:onboarding-fadein .3s ease}.onboarding-processing-step.done{color:var(--green)}.onboarding-processing-icon{width:16px;height:16px;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;flex-shrink:0}.onboarding-processing-spinner{width:12px;height:12px;border:2px solid var(--bg-4);border-top-color:var(--green);border-radius:50%;animation:spin .6s linear infinite;margin-left:auto}.onboarding-detection-list{display:flex;flex-direction:column;gap:10px;margin-bottom:16px;background:var(--bg-1);border:1px solid var(--border-0);border-radius:10px;padding:16px 20px;text-align:left}.onboarding-detection-item{display:flex;align-items:center;gap:10px;font-size:13px;color:var(--text-2);transition:color .3s}.onboarding-detection-item.done,.onboarding-detection-item.active{color:var(--text-1)}.onboarding-detection-item strong{color:var(--text-0)}.onboarding-detection-check{width:20px;height:20px;border-radius:50%;background:var(--green-dim);color:var(--green);display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;flex-shrink:0;animation:onboarding-fadein .3s ease}.onboarding-detection-spinner{width:20px;height:20px;border:2px solid var(--bg-4);border-top-color:var(--green);border-radius:50%;animation:spin .6s linear infinite;flex-shrink:0}.onboarding-detection-pending{width:20px;height:20px;border-radius:50%;background:var(--bg-3);flex-shrink:0}.onboarding-import-result{margin-top:12px}.onboarding-btn-spinner{width:14px;height:14px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .6s linear infinite}@media(max-width:1024px){.landing-feature-grid.landing-feature-grid-4{grid-template-columns:repeat(2,1fr)}}@media(max-width:768px){.landing-hero{flex-direction:column;padding:120px 20px 60px;gap:40px;min-height:auto}.landing-hero-content{max-width:100%}.landing-hero-title-main{font-size:40px}.landing-hero-subtitle{font-size:18px}.landing-hero-terminal{max-width:100%}.landing-feature-grid{grid-template-columns:1fr;gap:16px}.landing-feature-grid.landing-feature-grid-4{grid-template-columns:1fr}.landing-steps-grid{flex-direction:column;align-items:center;gap:12px}.landing-step-connector{width:2px;height:24px;margin:0}.landing-step-card{max-width:320px}.landing-stats-grid{flex-direction:column;gap:24px}.landing-stat-divider{width:48px;height:1px}.landing-nav-links{gap:4px}.landing-nav-link{display:none}.landing-footer-inner{flex-direction:column;gap:16px;text-align:center}.landing-footer-links{gap:16px}.landing-hero-actions{flex-direction:column}.landing-hero-cta,.landing-hero-demo{width:100%;text-align:center;justify-content:center}.login-extra-actions{flex-direction:column;gap:12px}}@media(max-width:480px){.landing-hero-title-main{font-size:32px}.landing-section-title,.landing-cta-title{font-size:24px}.landing-stat-value,.landing-stat-value-text{font-size:28px}}.lang-toggle{display:inline-flex;align-items:center;justify-content:center;font-family:var(--font-mono);font-size:10px;font-weight:600;letter-spacing:.5px;padding:4px 8px;border-radius:4px;color:var(--text-2);background:var(--bg-3);border:1px solid var(--border-0);cursor:pointer;transition:color .12s,border-color .12s,background .12s;white-space:nowrap}.lang-toggle:hover{color:var(--text-0);border-color:var(--border-2);background:var(--bg-4)}.lang-toggle-login{position:absolute;top:20px;right:20px;z-index:10}.lang-toggle-sidebar{padding:3px 6px;font-size:9px}.login-footer-links{display:flex;align-items:center;gap:8px;margin-top:24px;font-size:11px}.login-footer-links a{color:var(--text-3);text-decoration:none;transition:color .12s}.login-footer-links a:hover{color:var(--green)}.login-footer-sep{color:var(--border-1);font-size:10px}.portal-footer-links{display:flex;align-items:center;justify-content:center;gap:8px;margin-top:6px;font-size:11px}.portal-footer-links a{color:var(--text-3);text-decoration:none;transition:color .12s}.portal-footer-links a:hover{color:var(--green)}.portal-footer-sep{color:var(--border-1);font-size:10px}.status-page{display:flex;flex-direction:column;min-height:100%;background:var(--bg-0)}.status-header{display:flex;align-items:center;justify-content:space-between;height:56px;padding:0 24px;background:var(--bg-1);border-bottom:1px solid var(--border-0);flex-shrink:0}.status-header-left,.status-header-right{display:flex;align-items:center;gap:12px}.status-back-link{font-family:var(--font-mono);font-size:12px;color:var(--text-2);text-decoration:none;transition:color .12s}.status-back-link:hover{color:var(--green)}.status-main{flex:1;width:100%;max-width:720px;margin:0 auto;padding:48px 24px}.status-hero{text-align:center;margin-bottom:40px}.status-title{font-family:var(--font-head);font-size:28px;font-weight:700;letter-spacing:-.01em;color:var(--text-0);margin-bottom:6px}.status-subtitle{font-size:14px;color:var(--text-2)}.status-loading{display:flex;align-items:center;justify-content:center;gap:10px;padding:64px 0;color:var(--text-2);font-size:13px}.status-overall{display:flex;align-items:center;gap:14px;padding:20px 24px;border-radius:10px;margin-bottom:32px}.status-overall-green{background:var(--green-dim);border:1px solid var(--green-border)}.status-overall-amber{background:var(--amber-dim);border:1px solid rgba(245,158,11,.2)}.status-overall-red{background:var(--red-dim);border:1px solid var(--red-border)}.status-indicator{width:14px;height:14px;border-radius:50%;flex-shrink:0;animation:status-pulse 2s ease-in-out infinite}.status-overall-green .status-indicator{background:var(--green);box-shadow:0 0 8px var(--green)}.status-overall-amber .status-indicator{background:var(--amber);box-shadow:0 0 8px var(--amber)}.status-overall-red .status-indicator{background:var(--red);box-shadow:0 0 8px var(--red)}@keyframes status-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.7;transform:scale(1.15)}}.status-overall-label{flex:1;font-family:var(--font-head);font-size:16px;font-weight:600;color:var(--text-0)}.status-refresh-btn{font-family:var(--font-mono);font-size:11px;padding:5px 14px;border-radius:4px;color:var(--text-2);background:var(--bg-2);border:1px solid var(--border-0);cursor:pointer;transition:border-color .12s,color .12s}.status-refresh-btn:hover{border-color:var(--border-2);color:var(--text-0)}.status-refresh-btn:disabled{opacity:.5;cursor:not-allowed}.status-section{margin-bottom:32px}.status-section-title{font-family:var(--font-mono);font-size:10px;font-weight:500;text-transform:uppercase;letter-spacing:1.2px;color:var(--text-3);margin-bottom:12px;padding-left:4px}.status-app-list{background:var(--bg-1);border:1px solid var(--border-0);border-radius:var(--radius);overflow:hidden}.status-app-row{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;border-bottom:1px solid var(--border-0);transition:background .08s}.status-app-row:last-child{border-bottom:none}.status-app-row:hover{background:var(--bg-2)}.status-app-info{display:flex;align-items:center;gap:10px}.status-app-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.status-dot-green{background:var(--green);box-shadow:0 0 4px var(--green)}.status-dot-red{background:var(--red);box-shadow:0 0 4px var(--red)}.status-dot-grey{background:var(--text-3)}.status-app-name{font-size:13px;font-weight:500;color:var(--text-0)}.status-app-meta{display:flex;align-items:center;gap:16px}.status-app-time{font-family:var(--font-mono);font-size:11px;color:var(--text-3);min-width:44px;text-align:right}.status-app-label{font-family:var(--font-mono);font-size:11px;color:var(--text-2);min-width:80px}.status-app-checked{font-family:var(--font-mono);font-size:10px;color:var(--text-3);min-width:50px;text-align:right}.status-empty{padding:24px;text-align:center;color:var(--text-3);font-size:12px}.status-error-box{text-align:center;padding:48px 20px;color:var(--red);font-size:13px}.status-footer{padding:20px 24px;text-align:center;font-size:11px;color:var(--text-3);border-top:1px solid var(--border-0);flex-shrink:0}.status-footer-links{display:flex;align-items:center;justify-content:center;gap:8px;margin-top:6px;font-size:11px}.status-footer-links a{color:var(--text-3);text-decoration:none;transition:color .12s}.status-footer-links a:hover{color:var(--green)}.legal-page{display:flex;flex-direction:column;min-height:100%;background:var(--bg-0)}.legal-header{display:flex;align-items:center;justify-content:space-between;height:56px;padding:0 24px;background:var(--bg-1);border-bottom:1px solid var(--border-0);flex-shrink:0}.legal-header-left,.legal-header-right{display:flex;align-items:center;gap:12px}.legal-back-link{font-family:var(--font-mono);font-size:12px;color:var(--text-2);text-decoration:none;transition:color .12s}.legal-back-link:hover{color:var(--green)}.legal-main{flex:1;width:100%;max-width:720px;margin:0 auto;padding:48px 24px}.legal-hero{display:flex;align-items:center;gap:14px;margin-bottom:32px}.legal-logo{width:36px;height:36px;border-radius:8px;background:var(--green);display:flex;align-items:center;justify-content:center;font-family:var(--font-mono);font-weight:700;font-size:17px;color:var(--green-contrast);flex-shrink:0}.legal-title{font-family:var(--font-head);font-size:22px;font-weight:700;color:var(--text-0);letter-spacing:1.5px}.legal-tabs{display:flex;gap:0;border-bottom:1px solid var(--border-0);margin-bottom:28px}.legal-tab{padding:10px 20px;font-family:var(--font-head);font-size:13px;font-weight:600;color:var(--text-2);border-bottom:2px solid transparent;transition:color .12s,border-color .12s;cursor:pointer;background:none;border-top:none;border-left:none;border-right:none}.legal-tab:hover{color:var(--text-0)}.legal-tab.active{color:var(--green);border-bottom-color:var(--green)}.legal-content{background:var(--bg-1);border:1px solid var(--border-0);border-radius:var(--radius);padding:32px}.legal-updated{font-family:var(--font-mono);font-size:11px;color:var(--text-3);margin-bottom:24px}.legal-text{line-height:1.75;color:var(--text-1);font-size:14px}.legal-intro{font-size:14px;color:var(--text-1);margin-bottom:28px;line-height:1.8;padding-bottom:20px;border-bottom:1px solid var(--border-0)}.legal-text h2{font-family:var(--font-head);font-size:16px;font-weight:600;color:var(--text-0);margin-top:28px;margin-bottom:10px;letter-spacing:.01em}.legal-text p{margin-bottom:16px;color:var(--text-1);font-size:13px;line-height:1.8}.legal-footer{padding:20px 24px;text-align:center;font-size:11px;color:var(--text-3);border-top:1px solid var(--border-0);flex-shrink:0}.legal-footer-links{display:flex;align-items:center;justify-content:center;gap:8px;margin-top:6px;font-size:11px}.legal-footer-links a{color:var(--text-3);text-decoration:none;transition:color .12s}.legal-footer-links a:hover{color:var(--green)}@media(max-width:640px){.status-main,.legal-main{padding:32px 16px}.status-title{font-size:22px}.status-app-row{flex-direction:column;align-items:flex-start;gap:8px}.status-app-meta{padding-left:18px;gap:10px}.legal-content{padding:20px 16px}.legal-tabs{gap:0}.legal-tab{flex:1;text-align:center;padding:10px 12px;font-size:12px}.portal-notification-dropdown{width:300px}.portal-greeting-title{font-size:22px}.portal-tile-action-wrap{opacity:1;transform:translateY(0)}.help-panel{width:100%}}.help-btn{position:fixed;top:16px;right:16px;width:36px;height:36px;border-radius:50%;background:var(--bg-2);border:1px solid var(--border-1);color:var(--text-1);font-family:var(--font-head);font-size:18px;font-weight:700;display:flex;align-items:center;justify-content:center;cursor:pointer;z-index:500;box-shadow:0 4px 16px var(--shadow-md);transition:background .15s,color .15s,transform .15s,box-shadow .15s}.help-btn:hover{background:var(--green);color:var(--green-contrast);transform:scale(1.08);box-shadow:0 6px 24px var(--shadow-lg);border-color:var(--green)}.help-panel-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000004d;z-index:510;display:flex;justify-content:flex-end;animation:help-fade-in .15s ease}@keyframes help-fade-in{0%{opacity:0}to{opacity:1}}.help-panel{width:380px;max-width:100%;height:100%;background:var(--bg-1);border-left:1px solid var(--border-0);display:flex;flex-direction:column;box-shadow:-8px 0 32px var(--shadow-lg);animation:help-slide-in .2s ease}@keyframes help-slide-in{0%{transform:translate(100%)}to{transform:translate(0)}}.help-panel-header{display:flex;align-items:center;justify-content:space-between;padding:18px 20px;border-bottom:1px solid var(--border-0);flex-shrink:0}.help-panel-header h2{font-family:var(--font-head);font-size:16px;font-weight:700;color:var(--text-0)}.help-panel-close{width:28px;height:28px;border-radius:6px;display:flex;align-items:center;justify-content:center;font-size:20px;color:var(--text-3);transition:background .12s,color .12s}.help-panel-close:hover{background:var(--bg-3);color:var(--text-0)}.help-panel-content{flex:1;overflow-y:auto;padding:20px}.help-context-section{margin-bottom:24px;padding:16px;background:var(--bg-2);border:1px solid var(--border-0);border-radius:10px}.help-context-badge{display:inline-block;font-family:var(--font-mono);font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.6px;padding:3px 10px;border-radius:4px;background:var(--green-dim);color:var(--green);margin-bottom:10px}.help-context-text{font-size:13px;color:var(--text-1);line-height:1.6}.help-faq-section{margin-bottom:20px}.help-faq-heading{font-family:var(--font-head);font-size:13px;font-weight:600;color:var(--text-1);margin-bottom:10px;letter-spacing:.01em}.help-faq-item{border:1px solid var(--border-0);border-radius:8px;margin-bottom:6px;overflow:hidden;transition:border-color .15s}.help-faq-item-open{border-color:var(--border-1)}.help-faq-question{display:flex;align-items:center;justify-content:space-between;width:100%;text-align:left;padding:11px 14px;font-size:13px;font-weight:500;color:var(--text-0);transition:background .08s}.help-faq-question:hover{background:var(--bg-3)}.help-faq-chevron{font-size:10px;color:var(--text-3);flex-shrink:0;margin-left:8px}.help-faq-answer{padding:0 14px 14px;font-size:12px;color:var(--text-2);line-height:1.65}.help-shortcut-hint{text-align:center;font-size:11px;color:var(--text-3);padding-top:12px;border-top:1px solid var(--border-0)}.help-shortcut-hint kbd{display:inline-block;padding:1px 6px;border:1px solid var(--border-1);border-radius:4px;background:var(--bg-3);font-family:var(--font-mono);font-size:11px;font-weight:600;color:var(--text-1)}.landing-tech{padding:64px 0}.landing-tech-grid{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;max-width:600px;margin:0 auto}.landing-tech-badge{display:inline-flex;align-items:center;padding:6px 16px;border-radius:999px;font-family:var(--font-body);font-size:13px;font-weight:600;letter-spacing:.01em;border:1px solid rgba(255,255,255,.06);transition:transform .2s ease,box-shadow .2s ease;cursor:default}.landing-tech-badge:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0000004d}.logs-page{max-width:1100px}.log-auto-refresh{display:flex;align-items:center;gap:6px;font-size:11px;color:var(--text-2);cursor:pointer}.log-auto-refresh input[type=checkbox]{accent-color:var(--green)}.log-filter{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px;flex-wrap:wrap}.log-filter-tabs{display:flex;gap:2px;background:var(--bg-2);border:1px solid var(--border-0);border-radius:var(--radius);padding:2px}.log-filter-tab{padding:5px 12px;font-size:12px;font-weight:500;color:var(--text-2);border-radius:4px;transition:background .1s,color .1s;display:flex;align-items:center;gap:6px}.log-filter-tab:hover{background:var(--bg-3);color:var(--text-0)}.log-filter-tab.active{background:var(--bg-4);color:var(--text-0)}.log-filter-count{font-family:var(--font-mono);font-size:10px;padding:1px 5px;border-radius:8px;font-weight:600}.log-filter-count.error{background:var(--red-dim);color:var(--red)}.log-filter-right{display:flex;align-items:center;gap:8px}.log-filter-select{height:30px;padding:0 10px;background:var(--bg-2);border:1px solid var(--border-0);border-radius:4px;color:var(--text-1);font-size:12px;outline:none;cursor:pointer}.log-filter-select:focus{border-color:var(--border-2)}.log-search-wrap{display:flex;align-items:center;gap:6px;background:var(--bg-2);border:1px solid var(--border-0);border-radius:4px;padding:0 10px;height:30px}.log-search-wrap:focus-within{border-color:var(--border-2)}.log-search-icon{font-family:var(--font-mono);font-size:11px;color:var(--text-3)}.log-search-input{background:transparent;border:none;outline:none;font-size:12px;color:var(--text-0);width:160px}.log-search-input::placeholder{color:var(--text-3)}.log-search-clear{font-size:14px;color:var(--text-3);line-height:1;padding:0}.log-search-clear:hover{color:var(--text-0)}.log-entries{background:var(--bg-1);border:1px solid var(--border-0);border-radius:var(--radius);overflow:hidden}.log-entry{display:grid;grid-template-columns:4px 140px 120px 1fr 1fr auto;align-items:center;gap:10px;padding:8px 14px;border-bottom:1px solid var(--border-0);font-size:12px;transition:background .08s}.log-entry:last-child{border-bottom:none}.log-entry:hover{background:var(--bg-2)}.log-entry-indicator{width:4px;height:28px;border-radius:2px}.log-entry-red .log-entry-indicator{background:var(--red)}.log-entry-green .log-entry-indicator{background:var(--green)}.log-entry-neutral .log-entry-indicator{background:var(--bg-4)}.log-entry-time{font-family:var(--font-mono);font-size:10px;color:var(--text-3);white-space:nowrap}.log-entry-user{font-weight:500;color:var(--text-1);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.log-entry-action{color:var(--text-0);font-weight:500}.log-entry-red .log-entry-action{color:var(--red)}.log-entry-green .log-entry-action{color:var(--green)}.log-entry-details{color:var(--text-2);font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.log-entry-ip{font-family:var(--font-mono);font-size:10px;color:var(--text-3);white-space:nowrap}.log-empty{padding:40px 20px;text-align:center;color:var(--text-2);font-size:13px}.log-footer{margin-top:8px;font-size:11px;color:var(--text-3);text-align:right}.error-recovery{margin-top:16px;border:1px solid var(--red-border);border-radius:8px;background:var(--red-dim);overflow:hidden}.error-recovery-header{display:flex;align-items:center;gap:8px;padding:12px 14px;border-bottom:1px solid var(--red-border)}.error-recovery-icon{width:22px;height:22px;border-radius:50%;background:var(--red);color:#fff;display:flex;align-items:center;justify-content:center;font-family:var(--font-mono);font-size:12px;font-weight:700;flex-shrink:0}.error-recovery-title{font-family:var(--font-head);font-size:13px;font-weight:600;color:var(--red)}.error-recovery-message{padding:10px 14px;font-family:var(--font-mono);font-size:11px;line-height:1.5;color:var(--text-1);border-bottom:1px solid var(--red-border);word-break:break-word}.error-recovery-tips{padding:10px 14px;border-bottom:1px solid var(--red-border)}.error-recovery-tips-title{font-size:11px;font-weight:600;color:var(--text-1);margin-bottom:6px}.error-recovery-tips ul{list-style:none;padding:0;margin:0}.error-recovery-tips li{font-size:11px;color:var(--text-2);padding:2px 0 2px 14px;position:relative}.error-recovery-tips li:before{content:">";position:absolute;left:0;color:var(--text-3);font-family:var(--font-mono);font-size:10px}.error-recovery-actions{display:flex;gap:8px;padding:10px 14px;flex-wrap:wrap}.error-recovery-btn{padding:6px 14px;font-family:var(--font-mono);font-size:11px;font-weight:500;border-radius:4px;transition:background .12s,color .12s;cursor:pointer}.error-recovery-btn:disabled{opacity:.5;cursor:not-allowed}.error-recovery-btn.view-logs{background:var(--bg-3);color:var(--text-1);border:1px solid var(--border-1)}.error-recovery-btn.view-logs:hover:not(:disabled){background:var(--bg-4)}.error-recovery-btn.retry{background:var(--green-dim);color:var(--green);border:1px solid var(--green-border)}.error-recovery-btn.retry:hover:not(:disabled){background:var(--green-mid)}.error-recovery-btn.force-clean{background:var(--red-dim);color:var(--red);border:1px solid var(--red-border)}.error-recovery-btn.force-clean:hover:not(:disabled){background:#ef444426}.support-widget-btn{position:fixed;top:16px;right:60px;display:flex;align-items:center;gap:6px;padding:8px 16px;background:var(--bg-2);border:1px solid var(--border-1);border-radius:20px;color:var(--text-1);font-size:12px;font-weight:500;cursor:pointer;z-index:500;box-shadow:0 4px 16px var(--shadow-md);transition:background .15s,transform .15s,box-shadow .15s}.support-widget-btn:hover{background:var(--bg-3);transform:translateY(-2px);box-shadow:0 6px 24px var(--shadow-lg)}.support-widget-icon{width:20px;height:20px;border-radius:50%;background:var(--indigo);color:#fff;display:flex;align-items:center;justify-content:center;font-family:var(--font-mono);font-size:11px;font-weight:700;flex-shrink:0}.support-widget-label{white-space:nowrap}.support-panel{position:fixed;bottom:68px;left:24px;width:340px;max-height:480px;background:var(--bg-1);border:1px solid var(--border-0);border-radius:10px;box-shadow:0 12px 40px var(--shadow-lg);z-index:510;display:flex;flex-direction:column;overflow:hidden;animation:support-slide-up .2s ease}@keyframes support-slide-up{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.support-panel-header{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-bottom:1px solid var(--border-0);flex-shrink:0}.support-panel-title{font-family:var(--font-head);font-size:14px;font-weight:600;color:var(--text-0)}.support-panel-close{font-size:18px;color:var(--text-3);line-height:1;padding:0 2px;transition:color .12s}.support-panel-close:hover{color:var(--text-0)}.support-panel-body{padding:12px;overflow-y:auto;display:flex;flex-direction:column;gap:4px}.support-panel-item{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:6px;transition:background .1s;text-decoration:none;color:inherit;cursor:pointer;text-align:left;width:100%}.support-panel-item:hover{background:var(--bg-3)}.support-panel-item-icon{width:32px;height:32px;border-radius:8px;background:var(--bg-3);display:flex;align-items:center;justify-content:center;font-family:var(--font-mono);font-size:14px;font-weight:600;color:var(--text-1);flex-shrink:0}.support-panel-item-title{font-size:13px;font-weight:500;color:var(--text-0)}.support-panel-item-desc{font-size:11px;color:var(--text-2);margin-top:1px}.support-form{display:flex;flex-direction:column;gap:12px}.support-form-field{display:flex;flex-direction:column;gap:4px}.support-form-field label{font-size:11px;font-weight:500;color:var(--text-2);text-transform:uppercase;font-family:var(--font-mono);letter-spacing:.3px}.support-form-field textarea,.support-form-field input{background:var(--bg-2);border:1px solid var(--border-0);border-radius:4px;padding:8px 10px;font-size:12px;color:var(--text-0);outline:none;resize:vertical;font-family:var(--font-body);transition:border-color .15s}.support-form-field textarea:focus,.support-form-field input:focus{border-color:var(--green)}.support-form-auto{display:flex;flex-direction:column;gap:2px;font-size:10px;color:var(--text-3);font-family:var(--font-mono);padding:6px 8px;background:var(--bg-2);border-radius:4px}.support-form-error{font-size:12px;color:var(--red);padding:6px 10px;background:var(--red-dim);border:1px solid var(--red-border);border-radius:4px}.support-form-actions{display:flex;gap:8px;justify-content:flex-end}.support-success{text-align:center;padding:24px 16px}.support-success-icon{width:40px;height:40px;border-radius:50%;background:var(--green-dim);color:var(--green);display:flex;align-items:center;justify-content:center;font-family:var(--font-mono);font-size:14px;font-weight:700;margin:0 auto 12px}.support-success-text{font-size:14px;font-weight:600;color:var(--text-0);margin-bottom:4px}.support-success-sub{font-size:12px;color:var(--text-2)}@media(max-width:900px){.log-entry{grid-template-columns:4px 100px 1fr auto}.log-entry-user,.log-entry-details{display:none}.log-filter{flex-direction:column;align-items:stretch}.log-filter-right{flex-wrap:wrap}}@media(max-width:600px){.support-panel{left:8px;right:8px;width:auto}.support-widget-label{display:none}.log-filter-tabs{overflow-x:auto}}.dev-portal{padding:24px;max-width:900px}.dev-portal h1{margin-bottom:4px}.dev-portal .subtitle{color:var(--text-2);margin-bottom:24px}.tab-bar{display:flex;gap:8px;margin-bottom:20px;border-bottom:1px solid var(--border-1);padding-bottom:8px}.tab-bar button{padding:8px 16px;border:none;background:transparent;color:var(--text-2);cursor:pointer;border-radius:6px 6px 0 0;font-size:13px;font-weight:500;transition:all .15s}.tab-bar button:hover{color:var(--text-1)}.tab-bar button.active{background:var(--bg-3);color:var(--text-0)}.tab-content{margin-top:16px}.form-row{display:flex;gap:8px;margin-bottom:16px}.form-row input{flex:1;padding:8px 12px;border:1px solid var(--border-1);border-radius:var(--radius);background:var(--bg-1);color:var(--text-0);font-size:13px;font-family:var(--font-body)}.form-row input::placeholder{color:var(--text-3)}.form-row input:focus{outline:none;border-color:var(--indigo)}.form-row button{padding:8px 16px;border:none;border-radius:var(--radius);background:var(--indigo);color:#fff;cursor:pointer;font-size:13px;font-weight:500;transition:opacity .15s}.form-row button:hover{opacity:.9}.form-row button:disabled{opacity:.4;cursor:not-allowed}.alert.warning{background:#f59e0b14;border:1px solid rgba(245,158,11,.2);border-radius:8px;padding:16px;margin-bottom:16px}.alert.warning strong{color:var(--amber);display:block;margin-bottom:8px}.alert.warning pre{background:var(--bg-1);padding:12px;border-radius:4px;overflow-x:auto;font-size:12px;margin:8px 0;white-space:pre-wrap;word-break:break-all;color:var(--text-1);font-family:var(--font-mono)}.alert.warning button{margin-right:8px;padding:6px 12px;border:1px solid var(--border-2);border-radius:4px;background:transparent;color:var(--text-1);cursor:pointer;font-size:12px;transition:background .15s}.alert.warning button:hover{background:var(--bg-3)}.data-table{width:100%;border-collapse:collapse}.data-table th,.data-table td{padding:10px 12px;border-bottom:1px solid var(--border-0);text-align:left}.data-table th{color:var(--text-2);font-weight:500;font-size:13px}.data-table td{font-size:13px;color:var(--text-1)}.data-table .mono{font-family:var(--font-mono);font-size:12px}.data-table .empty{text-align:center;color:var(--text-3);padding:32px}.btn-danger-sm{padding:4px 10px;border:1px solid var(--red);color:var(--red);background:transparent;border-radius:4px;cursor:pointer;font-size:12px;transition:background .15s}.btn-danger-sm:hover{background:var(--red-dim)}.setup-guide h3{margin-bottom:16px;color:var(--text-0)}.setup-guide .os-section{margin-bottom:24px}.setup-guide h4{margin-bottom:12px;color:var(--indigo);font-size:14px}.setup-guide ol{padding-left:20px}.setup-guide li{margin-bottom:12px;color:var(--text-1);font-size:13px}.setup-guide li strong{color:var(--text-0)}.command-block{display:flex;align-items:center;gap:8px;margin-top:4px}.command-block code{flex:1;background:var(--bg-1);padding:8px 12px;border-radius:4px;font-size:13px;color:var(--green);font-family:var(--font-mono)}.copy-btn{padding:4px 8px;border:1px solid var(--border-2);border-radius:4px;background:transparent;color:var(--text-2);cursor:pointer;font-size:12px;transition:background .15s;white-space:nowrap}.copy-btn:hover{background:var(--bg-3)}.tab-desc{color:var(--text-2);font-size:13px;margin-bottom:16px;line-height:1.5}.portal-header{margin-bottom:24px}.os-selector{display:flex;align-items:center;gap:12px;margin-bottom:24px;padding:12px 16px;background:var(--bg-2);border-radius:var(--radius)}.os-selector span{color:var(--text-2);font-size:13px;font-weight:500}.os-buttons{display:flex;gap:4px}.os-buttons button{padding:6px 14px;border:1px solid var(--border-1);border-radius:4px;background:transparent;color:var(--text-2);cursor:pointer;font-size:12px;font-weight:500;transition:all .15s}.os-buttons button.active{background:var(--indigo);color:#fff;border-color:var(--indigo)}.os-buttons button:hover:not(.active){border-color:var(--text-2)}.step-card{display:flex;gap:16px;margin-bottom:20px;padding:16px;background:var(--bg-2);border-radius:var(--radius);border:1px solid var(--border-0)}.step-number{width:32px;height:32px;border-radius:50%;background:var(--indigo);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:14px;flex-shrink:0}.step-content{flex:1;min-width:0}.step-content h4{margin:0 0 4px;font-size:14px;color:var(--text-0);font-weight:600}.step-desc{color:var(--text-2);font-size:13px;margin:0 0 12px;line-height:1.4}.step-note{color:var(--text-2);font-size:12px;margin:6px 0 0;line-height:1.4}.step-note code{background:var(--bg-1);padding:1px 4px;border-radius:3px;font-size:11px;color:var(--green)}.step-note strong{color:var(--text-1)}.cmd-label{font-size:11px;color:var(--text-3);font-weight:500;min-width:80px;text-align:right}.command-block{margin-bottom:6px}.tip-box{margin-top:10px;padding:10px 14px;background:#6366f10f;border:1px solid rgba(99,102,241,.15);border-radius:6px;font-size:12px;color:var(--text-1);line-height:1.5}.tip-box strong{color:var(--indigo)}.tip-box code{background:var(--bg-1);padding:1px 4px;border-radius:3px;font-size:11px;color:var(--green)}.result-box{margin-top:10px;padding:10px 14px;background:#22c55e0f;border:1px solid rgba(34,197,94,.15);border-radius:6px;font-size:12px;color:var(--text-1);line-height:1.5}.result-box strong{color:var(--green)}.guide-summary{margin-top:32px;padding:20px;background:var(--bg-2);border-radius:var(--radius);border:1px solid var(--border-0)}.guide-summary h3{margin:0 0 16px;font-size:15px;color:var(--text-0)}.summary-flow{display:flex;align-items:center;gap:6px;flex-wrap:wrap;justify-content:center}.flow-step{display:flex;flex-direction:column;align-items:center;gap:4px;padding:10px 14px;background:var(--bg-1);border-radius:8px;border:1px solid var(--border-1);min-width:70px}.flow-step span:nth-child(2){font-family:var(--font-mono);font-size:11px;color:var(--green);font-weight:600}.flow-step .flow-icon{width:22px;height:22px;border-radius:50%;background:var(--indigo);color:#fff;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700}.flow-step .flow-label{font-size:10px;color:var(--text-3)}.flow-step.done{border-color:var(--green)}.flow-step.done .flow-icon{background:var(--green)}.flow-arrow{color:var(--text-3);font-size:18px}.section-card{margin-bottom:24px;padding:20px;background:var(--bg-2);border-radius:var(--radius);border:1px solid var(--border-0)}.section-card h3{margin:0 0 12px;font-size:15px;color:var(--text-0)}.section-card>p{color:var(--text-2);font-size:13px;line-height:1.5;margin-bottom:16px}.section-card>p strong{color:var(--text-0)}.branch-diagram{margin:20px 0;padding:16px;background:var(--bg-1);border-radius:8px;overflow-x:auto}.branch-line{display:flex;align-items:center;gap:8px;margin-bottom:16px;flex-wrap:wrap}.branch-name{font-family:var(--font-mono);font-size:12px;font-weight:600;color:var(--green);min-width:120px;padding:3px 8px;background:#22c55e1a;border-radius:4px;text-align:center}.branch-name.accent{color:var(--indigo);background:#6366f11a}.branch-name.accent2{color:var(--amber);background:#f59e0b1a}.commits{display:flex;align-items:center;gap:4px}.commit{padding:4px 8px;border-radius:4px;font-size:11px;font-weight:500}.commit.c-main{background:#22c55e1a;color:var(--green)}.commit.c-main.active{background:var(--green);color:#fff}.commit.c-feature{background:#6366f11a;color:var(--indigo)}.commit.c-feature2{background:#f59e0b1a;color:var(--amber)}.commit-line{width:20px;height:2px;background:var(--border-2)}.commit-line.short{width:12px}.merge-arrow{color:var(--green);font-size:16px}.branch-label{font-size:11px;color:var(--text-3);font-style:italic;margin-left:8px}.rules-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px}.rule{padding:14px;background:var(--bg-1);border-radius:8px;border:1px solid var(--border-0)}.rule .rule-icon{width:32px;height:32px;border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:16px;font-weight:700;margin-bottom:8px;font-family:JetBrains Mono,Fira Code,monospace}.rule strong{display:block;font-size:13px;color:var(--text-0);margin-bottom:4px}.rule p{font-size:12px;color:var(--text-2);margin:0;line-height:1.4}.conflict-example{background:var(--bg-1);padding:12px;border-radius:6px;font-size:12px;color:var(--text-1);font-family:var(--font-mono);line-height:1.6;overflow-x:auto;border:1px solid var(--border-1);margin:8px 0 12px}@keyframes staggerFadeIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.bento-4 .bento-cell{animation:staggerFadeIn .4s ease-out both}.bento-4 .bento-cell:nth-child(1){animation-delay:0s}.bento-4 .bento-cell:nth-child(2){animation-delay:.05s}.bento-4 .bento-cell:nth-child(3){animation-delay:.1s}.bento-4 .bento-cell:nth-child(4){animation-delay:.15s}.app-grid>*{animation:staggerFadeIn .35s ease-out both}.app-grid>*:nth-child(1){animation-delay:0s}.app-grid>*:nth-child(2){animation-delay:.04s}.app-grid>*:nth-child(3){animation-delay:.08s}.app-grid>*:nth-child(4){animation-delay:.12s}.app-grid>*:nth-child(5){animation-delay:.16s}.app-grid>*:nth-child(6){animation-delay:.2s}.bento-cell{transition:border-color .2s,box-shadow .2s,transform .2s;border:1px solid var(--border-0);border-radius:var(--radius)}.bento-cell:hover{border-color:var(--indigo);box-shadow:0 0 20px #6366f114;transform:translateY(-1px)}@keyframes pulse{0%,to{box-shadow:0 0 0 0 currentColor}50%{box-shadow:0 0 0 4px transparent}}.health-grid-dot.healthy{animation:pulseGreen 2s ease-in-out infinite}@keyframes pulseGreen{0%,to{box-shadow:0 0 #22c55e66}50%{box-shadow:0 0 0 4px #22c55e00}}.health-grid-dot.unhealthy{animation:pulseRed 1.5s ease-in-out infinite}@keyframes pulseRed{0%,to{box-shadow:0 0 #ef444466}50%{box-shadow:0 0 0 4px #ef444400}}.status-dot.running{animation:pulseGreen 2.5s ease-in-out infinite}.activity-list .activity-item{animation:staggerFadeIn .3s ease-out both}.activity-list .activity-item:nth-child(1){animation-delay:0s}.activity-list .activity-item:nth-child(2){animation-delay:.03s}.activity-list .activity-item:nth-child(3){animation-delay:.06s}.activity-list .activity-item:nth-child(4){animation-delay:.09s}.activity-list .activity-item:nth-child(5){animation-delay:.12s}.health-grid .health-grid-item{animation:staggerFadeIn .3s ease-out both}.health-grid .health-grid-item:nth-child(1){animation-delay:0s}.health-grid .health-grid-item:nth-child(2){animation-delay:.04s}.health-grid .health-grid-item:nth-child(3){animation-delay:.08s}.health-grid .health-grid-item:nth-child(4){animation-delay:.12s}.main-content{transition:opacity .15s ease}.home-page,.dev-portal,.tab-content{animation:staggerFadeIn .3s ease-out}.teamwork-tab .section-card{animation:staggerFadeIn .35s ease-out both}.teamwork-tab .section-card:nth-child(1){animation-delay:0s}.teamwork-tab .section-card:nth-child(2){animation-delay:.08s}.teamwork-tab .section-card:nth-child(3){animation-delay:.16s}.teamwork-tab .section-card:nth-child(4){animation-delay:.24s}.guide-tab .step-card{animation:staggerFadeIn .35s ease-out both}.guide-tab .step-card:nth-child(1){animation-delay:0s}.guide-tab .step-card:nth-child(2){animation-delay:.05s}.guide-tab .step-card:nth-child(3){animation-delay:.1s}.guide-tab .step-card:nth-child(4){animation-delay:.15s}.guide-tab .step-card:nth-child(5){animation-delay:.2s}.guide-tab .step-card:nth-child(6){animation-delay:.25s}.guide-tab .step-card:nth-child(7){animation-delay:.3s}.guide-tab .step-card:nth-child(8){animation-delay:.35s}.sidebar-item:hover:not(.active){background:var(--bg-2)}.tab-bar button{position:relative;overflow:hidden}.tab-bar button.active:after{content:"";position:absolute;bottom:-8px;left:20%;right:20%;height:2px;background:var(--indigo);border-radius:1px;animation:tabSlideIn .2s ease-out}@keyframes tabSlideIn{0%{transform:scaleX(0)}to{transform:scaleX(1)}}.section-card{transition:border-color .2s,box-shadow .2s,transform .2s}.section-card:hover{border-color:var(--border-2);box-shadow:0 4px 16px #00000014}@keyframes copyFlash{0%{background:var(--green);color:#fff}to{background:transparent;color:var(--text-2)}}@keyframes shimmer{0%{background-position:-200px 0}to{background-position:calc(200px + 100%) 0}}.skeleton{background:linear-gradient(90deg,var(--bg-2) 25%,var(--bg-3) 50%,var(--bg-2) 75%);background-size:200px 100%;animation:shimmer 1.5s infinite}.rule{transition:border-color .2s,transform .2s}.rule:hover{border-color:var(--border-2);transform:translateY(-2px)}.command-block:hover code{border-color:var(--green);transition:border-color .2s}.command-block code{border:1px solid transparent}.flow-step.done{animation:pulseGreenBorder 2s ease-in-out infinite}@keyframes pulseGreenBorder{0%,to{box-shadow:0 0 #22c55e4d}50%{box-shadow:0 0 0 4px #22c55e00}}.users-table tbody tr:hover{background:var(--bg-2);transform:none}.page-desc{color:var(--text-2);font-size:13px;line-height:1.5;margin:4px 0 20px;max-width:700px}.identity-explainer{margin-bottom:24px}.identity-explainer h3{margin:0 0 4px;font-size:18px;color:var(--text-0)}.identity-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px;margin-top:16px}.identity-card{padding:16px;background:var(--bg-2);border:1px solid var(--border-0);border-radius:var(--radius)}.identity-card strong{font-size:14px;color:var(--text-0);display:block;margin-bottom:6px}.identity-card p{font-size:12px;color:var(--text-2);line-height:1.5;margin:0 0 8px}.identity-tag{font-size:10px;padding:2px 8px;border-radius:4px;background:var(--indigo-bg);color:var(--indigo);font-weight:500}
