@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/ba9851c3c22cd980-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/21350d82a1f187e9-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/c5fe6dc8356a8c31-s.woff2) format("woff2");unicode-range:u+1f??}@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/19cfc7226ec3afaa-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/df0a9ae256c0569c-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/8e9860b6e62d6359-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/e4af272ccee01ff0-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/ba9851c3c22cd980-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/21350d82a1f187e9-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/c5fe6dc8356a8c31-s.woff2) format("woff2");unicode-range:u+1f??}@font-face{font-family:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/19cfc7226ec3afaa-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/df0a9ae256c0569c-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/8e9860b6e62d6359-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/e4af272ccee01ff0-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Inter;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/ba9851c3c22cd980-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Inter;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/21350d82a1f187e9-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Inter;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/c5fe6dc8356a8c31-s.woff2) format("woff2");unicode-range:u+1f??}@font-face{font-family:Inter;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/19cfc7226ec3afaa-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:Inter;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/df0a9ae256c0569c-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Inter;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/8e9860b6e62d6359-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Inter;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/e4af272ccee01ff0-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Inter;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/ba9851c3c22cd980-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Inter;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/21350d82a1f187e9-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Inter;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/c5fe6dc8356a8c31-s.woff2) format("woff2");unicode-range:u+1f??}@font-face{font-family:Inter;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/19cfc7226ec3afaa-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:Inter;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/df0a9ae256c0569c-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Inter;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/8e9860b6e62d6359-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Inter;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/e4af272ccee01ff0-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Inter Fallback;src:local("Arial");ascent-override:90.44%;descent-override:22.52%;line-gap-override:0.00%;size-adjust:107.12%}.__className_8b3a0b{font-family:Inter,Inter Fallback;font-style:normal}.__variable_8b3a0b{--font-inter:"Inter","Inter Fallback"}:root{--bg:#fafafa;--bg-elevated:#ffffff;--sidebar:#111111;--sidebar-text:#a1a1a1;--sidebar-text-active:#ffffff;--sidebar-hover:#1f1f1f;--sidebar-active:#262626;--surface:#f0f0f0;--surface-hover:#e8e8e8;--border:#e4e4e4;--border-hover:#d0d0d0;--border-subtle:#ebebeb;--text:#0a0a0a;--text-secondary:#525252;--text-tertiary:#8a8a8a;--text-muted:#737373;--accent:#5b5bd6;--accent-hover:#4f4fc4;--accent-soft:rgba(91,91,214,0.1);--accent-gradient:linear-gradient(135deg,#5b5bd6,#7c3aed);--success:#16a34a;--error:#dc2626;--warning:#d97706;--production-bg:#ede9fe;--production-text:#5b21b6;--preview-bg:#f5f5f5;--preview-text:#525252;--radius:8px;--radius-lg:12px;--sidebar-w:var(--ui-sidebar-w);--shadow-md:0 4px 24px rgba(0,0,0,0.06);--font:var(--font-inter),-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;--mono:"Geist Mono","SF Mono","Fira Code",monospace}*{box-sizing:border-box;margin:0;padding:0}body,html{min-height:100%;background:var(--bg);color:var(--text);font-family:var(--font);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit;color:inherit}.app-shell{display:flex;min-height:100vh;background:var(--bg)}.app-sidebar{width:var(--sidebar-w);flex-shrink:0;display:flex;flex-direction:column;border-right:1px solid #1f1f1f;background:var(--sidebar);color:var(--sidebar-text);position:-webkit-sticky;position:sticky;top:0;height:100vh}.app-sidebar-top{padding:16px 14px 12px}.app-brand{display:flex;align-items:center;padding:4px 6px;border-radius:var(--radius)}.app-brand:hover{background:var(--sidebar-hover)}.logo-img{display:block;height:auto;object-fit:contain}.app-nav{flex:1 1;min-height:0;padding:8px 10px;display:flex;flex-direction:column;gap:2px;overflow-y:auto}.app-nav-project{padding-top:4px}.app-nav-divider{height:1px;background:var(--border-subtle);margin:8px 6px}.app-nav-item{position:relative;display:flex;align-items:center;gap:10px;padding:8px 12px;border-radius:var(--radius);font-size:13px;color:var(--sidebar-text);transition:background .15s,color .15s}.app-nav-icon-wrap{display:flex;align-items:center;justify-content:center;width:20px;flex-shrink:0;opacity:.85}.app-nav-active-bar{position:absolute;left:0;top:50%;transform:translateY(-50%);width:3px;height:18px;border-radius:0 3px 3px 0;background:var(--accent-gradient)}.app-nav-item-label{flex:1 1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.app-nav-item-chevron{flex-shrink:0;color:var(--text-tertiary);opacity:.7}.app-nav-item:hover{background:var(--sidebar-hover);color:var(--sidebar-text-active)}.app-nav-item.active{background:var(--sidebar-active);color:var(--sidebar-text-active);font-weight:500}.app-nav-item.active .app-nav-icon-wrap{opacity:1}.sidebar-search{display:flex;align-items:center;gap:8px;margin-top:12px;padding:0 8px 0 10px;height:32px;border:1px solid #2a2a2a;border-radius:var(--radius);background:#1a1a1a;color:var(--sidebar-text)}.sidebar-search input{flex:1 1;border:none;outline:none;background:transparent;font-size:13px;color:var(--text);min-width:0}.sidebar-search kbd{font-size:11px;padding:2px 5px;border:1px solid var(--border);border-radius:4px;background:var(--bg-elevated);color:var(--text-tertiary)}.sidebar-project-switcher{margin-top:10px;padding:0 8px;position:relative}.project-switcher{position:relative}.project-switcher-trigger{display:flex;align-items:center;gap:8px;width:100%;padding:6px 8px;border:1px solid transparent;border-radius:var(--radius);background:transparent;font-size:13px;font-weight:500;color:var(--text);cursor:pointer;transition:background .12s,border-color .12s;text-align:left}.project-switcher-trigger.open,.project-switcher-trigger:hover{background:var(--surface-hover);border-color:var(--border-subtle)}.project-switcher-label{flex:1 1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.project-switcher-chevron{flex-shrink:0;color:var(--text-tertiary)}.project-switcher-scope-icon{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:4px;background:var(--surface);border:1px solid var(--border-subtle);color:var(--text-secondary);flex-shrink:0}.project-switcher-menu{position:absolute;top:calc(100% + 4px);left:0;right:0;min-width:260px;z-index:50;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:0 8px 30px rgba(0,0,0,.12);overflow:hidden}.overview-header-left .project-switcher-menu{left:0;right:auto;width:300px}.project-switcher-search{display:flex;align-items:center;gap:8px;padding:8px 10px;border-bottom:1px solid var(--border-subtle)}.project-switcher-search input{flex:1 1;border:none;outline:none;background:transparent;font-size:13px;color:var(--text);min-width:0}.project-switcher-search kbd{font-size:11px;padding:2px 5px;border:1px solid var(--border);border-radius:4px;background:var(--bg-elevated);color:var(--text-tertiary);flex-shrink:0}.project-switcher-list{max-height:280px;overflow-y:auto;padding:4px}.project-switcher-item{display:flex;align-items:center;gap:10px;width:100%;padding:8px 10px;border:none;border-radius:var(--radius);background:transparent;font-size:13px;color:var(--text);cursor:pointer;text-align:left;transition:background .12s}.project-switcher-item.active,.project-switcher-item:hover{background:var(--surface-hover)}.project-switcher-item-name{flex:1 1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.project-switcher-check{flex-shrink:0;color:var(--text)}.project-switcher-empty{padding:12px 10px;font-size:13px;color:var(--text-secondary);text-align:center}.project-switcher-footer{border-top:1px solid var(--border-subtle);padding:4px}.project-switcher-create{display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:var(--radius);font-size:13px;color:var(--text-secondary);transition:background .12s,color .12s}.project-switcher-create:hover{background:var(--surface-hover);color:var(--text)}.hosting-link-picker{min-width:280px}.hosting-link-picker-menu{width:min(360px,92vw)}.hosting-link-picker-domain{color:var(--text-secondary);font-weight:400}.hosting-link-picker-hint{margin:0;padding:8px 10px;font-size:12px;color:var(--text-secondary)}.hosting-link-form .project-switcher-trigger{width:100%}.hosting-link-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px}.app-sidebar-bottom{padding:10px;border-top:1px solid var(--border-subtle);display:flex;flex-direction:column;gap:4px}.app-sidebar-user{padding:6px 4px}.app-main{min-width:0;background:var(--bg)}.app-content,.app-main{flex:1 1;display:flex;flex-direction:column}.app-content{min-height:100vh;background:var(--bg-elevated)}.app-content-body{flex:1 1;padding:0 32px 48px}.app-page{padding:28px 32px 48px}.project-topbar{display:flex;align-items:center;justify-content:space-between;padding:16px 32px 0;gap:16px}.project-topbar-left{display:flex;align-items:center;gap:10px;min-width:0}.project-back{font-size:13px;color:var(--text-secondary)}.project-back:hover{color:var(--text)}.project-topbar-sep{color:var(--text-tertiary);font-size:13px}.project-topbar-title{font-size:15px;font-weight:600;letter-spacing:-.02em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.project-topbar-right{display:flex;align-items:center;gap:8px;flex-shrink:0}.project-placeholder{padding:32px 0;max-width:560px}.project-placeholder-title{font-size:24px;font-weight:700;letter-spacing:-.03em;margin-bottom:8px}.project-placeholder-text{font-size:14px;color:var(--text-secondary);line-height:1.6}.project-tabs{display:flex;gap:0;padding:0 32px;border-bottom:1px solid var(--border-subtle);margin-top:12px}.project-tab{padding:12px 0;margin-right:24px;font-size:13px;color:var(--text-secondary);border-bottom:2px solid transparent;margin-bottom:-1px;transition:color .12s}.project-tab:hover{color:var(--text)}.project-tab.active{color:var(--text);border-bottom-color:var(--text)}.page-header{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:28px}.page-title{font-size:24px;font-weight:600;letter-spacing:-.04em}.page-subtitle{color:var(--text-secondary);margin-top:4px;font-size:13px}.search-bar{margin-bottom:16px}.search-input-wrap{position:relative;max-width:360px}.search-input-wrap svg{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--text-tertiary)}.search-input{width:100%;height:36px;padding:0 12px 0 36px;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-lg);font-size:13px;outline:none}.search-input:focus{border-color:var(--text-tertiary)}.project-list{border:1px solid var(--border-subtle);border-radius:var(--radius-lg);overflow:hidden}.project-row{display:grid;grid-template-columns:auto 1fr auto auto;align-items:center;grid-gap:16px;gap:16px;padding:14px 18px;border-bottom:1px solid var(--border-subtle);transition:background .1s}.project-row:last-child{border-bottom:none}.project-row:hover{background:var(--surface-hover)}.project-row-info h3{font-size:13px;font-weight:500}.project-row-info p{font-size:12px;color:var(--text-secondary);margin-top:2px}.project-row-domain{font-size:12px;color:var(--accent)}.project-row-domain:hover{text-decoration:underline}.fw-icon{width:36px;height:36px;border-radius:var(--radius-lg);border:1px solid var(--border-subtle);display:flex;align-items:center;justify-content:center;flex-shrink:0}.fw-icon-sm{width:24px;height:24px;border-radius:var(--radius)}.deploy-layout{display:grid;grid-template-columns:1fr 420px;grid-gap:0;gap:0;border:1px solid var(--border-subtle);border-radius:var(--radius-lg);overflow:hidden;min-height:480px}.deploy-list-panel{border-right:1px solid var(--border-subtle);overflow-y:auto;max-height:640px}.deploy-detail-panel{background:var(--bg-elevated);display:flex;flex-direction:column}.deploy-detail-header{padding:14px 16px;border-bottom:1px solid var(--border-subtle);font-size:13px;font-weight:500;color:var(--text-secondary)}.deploy-detail-body{flex:1 1;padding:16px;overflow:hidden}.deploy-detail-body,.deploy-list{display:flex;flex-direction:column}.deploy-row{display:grid;grid-template-columns:auto 1fr auto;grid-gap:12px;gap:12px;align-items:center;width:100%;text-align:left;padding:14px 16px;border:none;border-bottom:1px solid var(--border-subtle);background:transparent;cursor:pointer;color:inherit;transition:background .1s}.deploy-row:hover{background:var(--surface-hover)}.deploy-row.active{background:var(--surface)}.deploy-row-top{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.deploy-env{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;padding:2px 6px;border-radius:4px}.deploy-env.production{background:rgba(80,227,194,.12);color:var(--success)}.deploy-env.preview{background:rgba(0,112,243,.12);color:var(--accent)}.deploy-project{font-size:12px;font-weight:500}.deploy-branch{font-size:12px;color:var(--text-secondary)}.deploy-commit{font-size:11px;font-family:var(--mono);color:var(--text-tertiary);background:var(--surface);padding:2px 6px;border-radius:4px}.deploy-row-meta{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-top:4px;font-size:12px;color:var(--text-tertiary)}.deploy-domain{color:var(--accent);font-size:12px}.deploy-domain:hover{text-decoration:underline}.deploy-id{font-size:11px;font-family:var(--mono);color:var(--text-tertiary)}.deploy-empty{padding:64px 24px;text-align:center;color:var(--text-secondary)}.deploy-empty-title{font-size:15px;font-weight:600;color:var(--text);margin-bottom:6px}.domain-list{display:flex;flex-direction:column;gap:0}.domain-item{display:flex;align-items:center;justify-content:space-between;padding:16px 18px;border-bottom:1px solid var(--border-subtle)}.domain-item:last-child{border-bottom:none}.domain-item-left{display:flex;flex-direction:column;gap:6px;align-items:flex-start}.domain-item-url{font-size:14px;color:var(--accent)}.domain-item-url:hover{text-decoration:underline}.domain-badge{font-weight:600;text-transform:uppercase;letter-spacing:.04em;background:rgba(80,227,194,.12);color:var(--success)}.domain-badge,.ssl-badge{display:inline-flex;font-size:11px;padding:2px 8px;border-radius:999px;width:-moz-fit-content;width:fit-content}.ssl-badge{font-weight:500}.ssl-badge-ok{background:rgba(80,227,194,.12);color:var(--success)}.ssl-badge-warn{background:rgba(245,158,11,.15);color:#b45309}.ssl-badge-error{background:rgba(220,38,38,.12);color:var(--error)}.edge-redirect-list{display:flex;flex-direction:column;gap:8px}.edge-redirect-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.edge-redirect-row .form-input{flex:1 1;min-width:100px}.edge-code-select{flex:0 0 72px!important;min-width:72px!important}.edge-arrow{font-size:14px;flex:0 0 auto}.dns-hint,.edge-arrow{color:var(--text-secondary)}.dns-hint{margin-top:20px;padding:14px 16px;background:var(--surface);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);font-size:12px;line-height:1.7}.dns-hint code{font-family:var(--mono);color:var(--text)}.dns-status{margin-top:10px;padding:10px 12px;border-radius:8px;font-size:13px}.dns-status-ok{background:rgba(80,227,194,.1);color:var(--success)}.dns-status-error{background:rgba(220,38,38,.1);color:var(--error)}.env-scope-tabs{display:inline-flex;gap:4px;padding:3px;background:var(--surface);border-radius:8px;border:1px solid var(--border)}.env-scope-tab{padding:6px 12px;font-size:12px;font-weight:500;border:none;border-radius:6px;background:transparent;color:var(--muted);cursor:pointer}.env-scope-tab.active{background:var(--bg);color:var(--text);box-shadow:0 1px 2px rgba(0,0,0,.06)}.vitals-rating{display:block;font-size:10px;font-weight:600;text-transform:uppercase;margin-top:2px}.vitals-good{color:var(--success)}.vitals-needs-improvement{color:#b45309}.vitals-poor{color:var(--error)}.insights-source-badge{display:inline-flex;flex-direction:column;gap:2px;margin-left:12px;max-width:280px}.insights-source-tag{display:inline-block;font-size:11px;font-weight:600;padding:3px 8px;border-radius:6px;background:var(--surface);border:1px solid var(--border);color:var(--text-secondary)}.insights-source-note{font-size:11px;color:var(--text-tertiary);line-height:1.3}.storage-meter{height:6px;background:var(--surface);border-radius:999px;overflow:hidden;margin:12px 0 8px}.storage-meter-fill{height:100%;background:var(--accent);border-radius:999px;transition:width .3s}.storage-stats{font-size:12px;color:var(--text-secondary)}.storage-stats,.toggle-row{display:flex;justify-content:space-between}.toggle-row{align-items:center;padding:16px 0;border-bottom:1px solid var(--border-subtle)}.toggle{width:40px;height:22px;border-radius:999px;border:none;background:var(--border);cursor:pointer;position:relative;transition:background .2s}.toggle.on{background:var(--accent)}.toggle:after{content:"";position:absolute;top:3px;left:3px;width:16px;height:16px;border-radius:50%;background:#fff;transition:transform .2s}.toggle.on:after{transform:translateX(18px)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:0 12px;height:32px;border-radius:var(--radius-lg);border:1px solid var(--border);background:transparent;cursor:pointer;font-size:13px;font-weight:500;color:var(--text);transition:background .12s,border-color .12s;white-space:nowrap}.btn:hover{background:var(--surface-hover);border-color:var(--border-hover)}.btn-primary{background:var(--text);color:#fff;border-color:var(--text)}.btn-primary:hover{background:#333;border-color:#333}.btn-secondary{background:var(--surface);border-color:var(--border);color:var(--text)}.btn-secondary:hover{background:var(--surface-hover);border-color:var(--border-hover)}.btn-sm{height:28px;padding:0 10px;font-size:12px}.btn-danger{color:var(--error);border-color:rgba(238,0,0,.35)}.btn-danger:hover{background:rgba(238,0,0,.08)}.status-badge{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:500}.status-dot{width:7px;height:7px;border-radius:50%;background:currentColor}.status-ready{color:var(--success)}.status-building{color:var(--warning)}.status-error{color:var(--error)}.status-muted{color:var(--text-tertiary)}.card{background:var(--bg);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);overflow:hidden}.card-header{padding:12px 16px;border-bottom:1px solid var(--border-subtle);font-weight:500;font-size:13px;color:var(--text-secondary)}.card-body{padding:16px}.form-group{margin-bottom:18px}.form-label{display:block;font-size:13px;font-weight:500;margin-bottom:8px}.form-input{width:100%;height:36px;padding:0 12px;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-lg);font-size:13px;outline:none}.form-input:focus{border-color:var(--text-tertiary)}textarea.form-input{height:auto;padding:12px;min-height:80px}.form-hint{font-size:12px;color:var(--text-tertiary);margin-top:6px}.table{width:100%;border-collapse:collapse}.table th{text-align:left;padding:10px 16px;font-size:11px;font-weight:500;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.04em}.table td,.table th{border-bottom:1px solid var(--border-subtle)}.table td{padding:12px 16px;font-size:13px}.table tr:last-child td{border-bottom:none}.table tbody tr:hover td{background:var(--surface-hover)}.logs{background:#fafafa;border:1px solid var(--border-subtle);padding:14px;font-family:var(--mono);font-size:11px;line-height:1.7;white-space:pre-wrap;word-break:break-all;flex:1 1;overflow-y:auto;color:var(--text-secondary);min-height:200px}.alert,.logs{border-radius:var(--radius-lg)}.alert{padding:12px 14px;font-size:13px;margin-bottom:16px;border:1px solid}.alert-success{background:rgba(80,227,194,.06);border-color:rgba(80,227,194,.2);color:var(--success)}.alert-error{background:rgba(238,0,0,.06);border-color:rgba(238,0,0,.2);color:#ff6b6b}.empty{text-align:center;padding:64px 24px;border:1px dashed var(--border-subtle);border-radius:var(--radius-lg)}.empty-title{font-size:15px;font-weight:600;margin-bottom:6px}.stat-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:12px;gap:12px;margin-bottom:20px}.stat-card{border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:14px}.stat-label{font-size:11px;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.04em;margin-bottom:4px}.stat-value{font-size:18px;font-weight:600;letter-spacing:-.02em}.grid-projects{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));grid-gap:12px;gap:12px}.user-menu{position:relative;width:100%}.user-menu-trigger{display:flex;align-items:center;gap:10px;width:100%;padding:6px 8px;border:none;background:transparent;border-radius:var(--radius);cursor:pointer;text-align:left}.user-menu-trigger:hover{background:var(--surface-hover)}.user-menu-label{display:flex;flex-direction:column;min-width:0}.user-menu-label strong{font-size:13px}.user-menu-label span,.user-menu-label strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-menu-label span{font-size:11px;color:var(--text-tertiary)}.avatar{background:linear-gradient(135deg,#0070f3,#7928ca);color:#fff;font-size:12px;font-weight:600;display:flex;align-items:center;justify-content:center;flex-shrink:0}.avatar,.avatar-skeleton{width:28px;height:28px;border-radius:50%}.avatar-skeleton{background:var(--border)}.user-menu-backdrop{position:fixed;inset:0;z-index:40}.user-menu-dropdown{position:absolute;left:0;bottom:calc(100% + 8px);z-index:50;min-width:200px;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:0 8px 30px rgba(0,0,0,.12);overflow:hidden}.user-menu-info{padding:12px 14px;border-bottom:1px solid var(--border-subtle);display:flex;flex-direction:column;gap:2px}.user-menu-info strong{font-size:13px}.user-menu-info span{font-size:12px;color:var(--text-secondary)}.user-menu-item{width:100%;padding:10px 14px;text-align:left;background:none;border:none;font-size:13px;cursor:pointer}.user-menu-item:hover{background:var(--surface-hover)}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--bg)}.login-box{width:100%;max-width:360px;padding:24px}.login-logo{display:flex;align-items:center;justify-content:center;margin-bottom:32px}.login-title{text-align:center;font-size:22px;font-weight:600;margin-bottom:8px}.login-subtitle{font-size:14px;margin-bottom:28px}.login-footer,.login-subtitle{text-align:center;color:var(--text-secondary)}.login-footer{margin-top:20px;font-size:13px}.login-footer a{color:var(--accent);text-decoration:none}.login-footer a:hover{text-decoration:underline}.flex-between{display:flex;align-items:center;justify-content:space-between}.gap-8{gap:8px}.gap-12{gap:12px}.gap-16{gap:16px}.mt-24{margin-top:24px}.env-row{display:flex;gap:8px;margin-bottom:8px}.env-row .form-input{flex:1 1}.deploy-page{padding:24px 32px 48px;max-width:1400px}.deploy-page-top{margin-bottom:20px}.deploy-page-scope{display:inline-flex;align-items:center;gap:8px;font-size:13px;color:var(--text-secondary);margin-bottom:8px}.deploy-page-title{font-size:28px;font-weight:700;letter-spacing:-.03em;color:var(--text)}.deploy-page-inner{display:flex;flex-direction:column}.deploy-filters{flex-wrap:wrap;gap:8px;margin-bottom:0;padding-bottom:12px;border-bottom:1px solid var(--border)}.deploy-filter,.deploy-filters{display:flex;align-items:center}.deploy-filter{gap:6px;height:32px;padding:0 10px;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);color:var(--text-secondary)}.deploy-filter-search{min-width:160px}.deploy-filter-search .deploy-filter-input{width:130px}.deploy-filter-author{width:120px}.deploy-filter-date{color:var(--text-tertiary);cursor:not-allowed;opacity:.85}.deploy-filter-date-label{font-size:13px;white-space:nowrap}.deploy-filter-input,.deploy-filter-select{border:none;outline:none;background:transparent;font-size:13px;color:var(--text);min-width:0}.deploy-filter-input::placeholder{color:var(--text-tertiary)}.deploy-filter-select{cursor:pointer;max-width:200px}.deploy-filters-right{display:flex;align-items:center;gap:8px;margin-left:auto}.deploy-status-filter{position:relative}.deploy-status-filter-trigger{cursor:pointer;gap:8px}.deploy-status-filter-trigger.open{border-color:var(--border-hover);background:var(--bg-elevated)}.deploy-status-filter-badge{font-size:11px;padding:2px 6px;border-radius:999px;background:var(--surface);border:1px solid var(--border);color:var(--text-secondary)}.deploy-status-filter-menu{position:absolute;top:calc(100% + 4px);right:0;min-width:220px;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:0 8px 30px rgba(0,0,0,.12);padding:6px;z-index:40}.deploy-status-filter-item{display:flex;align-items:center;gap:10px;width:100%;padding:8px 10px;border:none;background:transparent;border-radius:var(--radius);font-size:13px;color:var(--text);cursor:pointer;text-align:left}.deploy-status-filter-item:hover{background:var(--surface-hover)}.deploy-status-checkbox{width:16px;height:16px;border:1px solid var(--border);border-radius:4px;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;background:var(--bg)}.deploy-status-checkbox.checked{background:var(--text);border-color:var(--text);color:#fff}.deploy-status-dot.muted{background:#c4c4c4}.deploy-status-dot.blocked{background:var(--error)}.deploy-actions-menu{position:relative}.deploy-actions-menu-btn{width:32px;height:32px;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);color:var(--text-secondary);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:background .12s,border-color .12s}.deploy-actions-menu-btn:hover{background:var(--surface-hover);border-color:var(--border-hover)}.deploy-actions-menu-dropdown{position:absolute;top:calc(100% + 4px);right:0;min-width:260px;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:0 8px 30px rgba(0,0,0,.12);padding:4px;z-index:40}.deploy-actions-menu-item{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;padding:10px 12px;border:none;background:transparent;border-radius:var(--radius);font-size:13px;color:var(--text);cursor:pointer;text-align:left}.deploy-actions-menu-item:hover{background:var(--surface-hover)}.deploy-redeploy-hint{margin-top:12px;font-size:13px;color:var(--text-secondary)}.settings-retention{max-width:640px}.settings-retention-intro{font-size:14px;color:var(--text-secondary);margin-bottom:20px;line-height:1.6}.settings-retention-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 0;border-bottom:1px solid var(--border-subtle)}.settings-retention-row:last-child{border-bottom:none}.settings-retention-desc{font-size:13px;color:var(--text-secondary);margin-top:2px}.settings-retention-badge{font-size:12px;padding:4px 10px;border-radius:999px;background:var(--surface);border:1px solid var(--border);color:var(--text-secondary);white-space:nowrap}.settings-retention-note{margin-top:16px;font-size:13px;color:var(--text-secondary)}.settings-retention-note a{color:var(--accent)}.deploy-status-legend{display:flex;gap:3px;align-items:center}.deploy-status-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.deploy-status-dot.ready{background:var(--success)}.deploy-status-dot.building{background:var(--warning)}.deploy-status-dot.error{background:var(--error)}.deploy-loading{padding:48px 0;color:var(--text-secondary)}.deploy-table{display:flex;flex-direction:column}.deploy-table-row{display:grid;grid-template-columns:minmax(220px,2fr) 130px 108px 120px 76px minmax(90px,1fr) 96px 32px 28px;align-items:center;grid-gap:10px;gap:10px;padding:12px 4px;border-bottom:1px solid var(--border-subtle);transition:background .1s;color:inherit}.deploy-table-row-project{grid-template-columns:minmax(260px,1.6fr) 128px 104px 76px minmax(110px,1fr) 96px 32px 28px}.deploy-table-row:hover{background:var(--bg-elevated)}.deploy-table-row.active{background:#f5f5f5}.deploy-col-message{min-width:0}.deploy-message-line{display:flex;align-items:center;gap:6px;font-size:13px;font-weight:500;white-space:nowrap}.deploy-message-line,.deploy-message-link{color:var(--text);overflow:hidden;text-overflow:ellipsis}.deploy-message-link:hover{color:var(--accent);text-decoration:underline}.deploy-author{font-size:12px;color:var(--text-tertiary);margin-top:2px}.deploy-github-badge{display:inline-flex;color:var(--text-tertiary);flex-shrink:0}.deploy-project-lines{display:flex;flex-direction:column;min-width:0;gap:1px}.deploy-repo-slug{font-size:11px;color:var(--text-tertiary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.deploy-repo-slug:hover{color:var(--accent)}.deploy-col-commit{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--text-secondary);min-width:0}.deploy-col-commit code{font-family:var(--mono);font-size:12px}.deploy-col-commit a code,.deploy-col-commit code{color:var(--text-secondary)}.deploy-col-commit a:hover code{color:var(--accent)}.deploy-col-menu{display:flex;justify-content:flex-end}.deploy-row-menu{position:relative}.deploy-row-menu-btn{width:28px;height:28px;border:none;background:transparent;border-radius:var(--radius);color:var(--text-tertiary);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:background .12s,color .12s}.deploy-row-menu-btn:hover{background:var(--surface-hover);color:var(--text)}.deploy-row-menu-dropdown{position:absolute;top:calc(100% + 2px);right:0;min-width:180px;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:0 8px 24px rgba(0,0,0,.1);padding:4px;z-index:30}.deploy-row-menu-item{display:block;padding:8px 10px;border-radius:var(--radius);font-size:13px;color:var(--text);white-space:nowrap}.deploy-row-menu-item:hover{background:var(--surface-hover)}.deploy-logs-panel{margin-top:20px;border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden}.deploy-logs-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--border-subtle);font-size:13px;font-weight:600}.deploy-logs-body{padding:16px}.deploy-detail-page{display:flex;flex-direction:column;gap:20px}.deploy-detail-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}.deploy-detail-toolbar-left{display:flex;align-items:center;gap:12px}.deploy-detail-back{font-size:13px;color:var(--text-secondary);text-decoration:none}.deploy-detail-back:hover{color:var(--text)}.deploy-detail-title{margin:0;font-size:20px;font-weight:600;font-family:var(--mono);letter-spacing:.02em}.deploy-detail-toolbar-right{display:flex;align-items:center;gap:8px}.deploy-detail-visit-wrap{display:flex;align-items:stretch;position:relative}.deploy-detail-visit-caret{border-top-left-radius:0;border-bottom-left-radius:0;margin-left:-1px;padding:0 8px}.deploy-detail-visit-menu{position:absolute;top:calc(100% + 4px);right:0;min-width:220px;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);z-index:20;overflow:hidden}.deploy-detail-visit-item{display:block;padding:10px 14px;font-size:13px;color:var(--text);text-decoration:none}.deploy-detail-visit-item:hover{background:var(--surface-hover)}.deploy-detail-card{border:1px solid var(--border-subtle);border-radius:var(--radius-lg);overflow:hidden;background:var(--bg-elevated)}.deploy-detail-card-grid{display:grid;grid-template-columns:minmax(280px,1fr) minmax(280px,380px);min-height:320px}.deploy-detail-preview{border-right:1px solid var(--border-subtle);background:#0a0a0a;min-height:280px}.deploy-detail-iframe{width:100%;height:100%;min-height:320px;border:none;background:#fff}.deploy-detail-preview-placeholder{display:flex;align-items:center;justify-content:center;min-height:320px;color:var(--text-muted);font-size:13px}.deploy-detail-meta{padding:20px;display:flex;flex-direction:column;gap:14px}.deploy-detail-meta-row{display:grid;grid-template-columns:110px 1fr;grid-gap:12px;gap:12px;font-size:13px;align-items:start}.deploy-detail-meta-label{color:var(--text-secondary);font-weight:500}.deploy-detail-env,.deploy-detail-status{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.deploy-detail-stale{color:var(--text-muted);border:1px solid var(--border-subtle)}.deploy-detail-current,.deploy-detail-stale{font-size:11px;padding:2px 6px;border-radius:4px}.deploy-detail-current{font-weight:600;color:var(--success);background:color-mix(in srgb,var(--success) 12%,transparent)}.deploy-detail-domain-list{display:flex;flex-direction:column;gap:6px}.deploy-detail-domain-list a{font-size:13px;color:var(--text);text-decoration:none;word-break:break-all}.deploy-detail-domain-list a:hover{text-decoration:underline}.deploy-detail-source{display:flex;flex-direction:column;gap:6px}.deploy-detail-branch{display:inline-flex;align-items:center;gap:6px}.deploy-detail-commit code{font-family:var(--mono);font-size:12px}.deploy-detail-trigger{font-size:12px;color:var(--text-muted)}.deploy-detail-message{word-break:break-word}.deploy-detail-log-count{margin-left:8px;font-weight:400;color:var(--text-muted)}.deploy-detail-logs{margin-top:0}.deploy-detail-empty{display:flex;flex-direction:column;gap:12px;align-items:flex-start}@media (max-width:900px){.deploy-detail-card-grid{grid-template-columns:1fr}.deploy-detail-preview{border-right:none;border-bottom:1px solid var(--border-subtle)}}.copy-field{display:flex;align-items:center;gap:8px;border:1px solid var(--border);border-radius:var(--radius-lg);padding:8px 10px;background:var(--bg-elevated)}.copy-field-value{word-break:break-all;color:var(--text-secondary)}.copy-field-input,.copy-field-value{flex:1 1;font-family:var(--mono);font-size:12px}.copy-field-input{min-width:0;border:none;background:transparent;color:var(--text);outline:none;-webkit-user-select:all;-moz-user-select:all;user-select:all}.copy-field-input::placeholder{color:var(--text-muted)}.copy-field-error{margin-top:6px;font-size:12px;color:var(--error)}.deploy-col-status{display:flex;align-items:center;gap:6px;font-size:13px;white-space:nowrap}.deploy-status-text{color:var(--text);font-weight:500}.deploy-status-duration{color:var(--text-tertiary);font-size:12px}.deploy-env-pill{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;border-radius:999px;font-size:12px;font-weight:500;white-space:nowrap}.deploy-env-pill.production{background:var(--production-bg);color:var(--production-text)}.deploy-env-pill.preview{background:var(--bg);color:var(--text);border:1px solid var(--border)}.deploy-col-project{display:flex;align-items:center;gap:8px;min-width:0}.project-avatar{width:20px;height:20px;border-radius:4px;display:inline-flex;align-items:center;justify-content:center;font-size:9px;font-weight:700;color:#fff;flex-shrink:0}.project-avatar-lg{width:32px;height:32px;border-radius:6px;font-size:11px}.project-avatar-img{background:#ffffff;border:1px solid var(--border-subtle);overflow:hidden;padding:2px}.project-avatar img{width:100%;height:100%;object-fit:contain;display:block;border-radius:2px}.overview-page{padding:24px 32px 48px}.overview-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:28px;flex-wrap:wrap}.overview-header-left .project-switcher{margin-bottom:6px}.overview-header-left .project-switcher-trigger{width:auto;max-width:240px;padding:4px 8px;font-weight:500;color:var(--text-secondary)}.overview-title{font-size:28px;font-weight:700;letter-spacing:-.03em}.overview-header-right{display:flex;align-items:center;gap:10px}.overview-search{display:flex;align-items:center;gap:8px;height:36px;padding:0 12px;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--bg);min-width:220px}.overview-search input{border:none;outline:none;background:transparent;font-size:13px;width:100%}.overview-loading{color:var(--text-secondary)}.overview-grid{display:grid;grid-template-columns:280px 1fr;grid-gap:24px;gap:24px;align-items:start}.overview-sidebar{display:flex;flex-direction:column;gap:16px}.overview-panel{border:1px solid var(--border);border-radius:var(--radius-lg);padding:16px;background:var(--bg)}.overview-panel-muted{background:var(--bg-elevated)}.overview-panel-title{font-size:13px;font-weight:600;margin-bottom:14px}.overview-panel-text{font-size:13px;color:var(--text-secondary);line-height:1.6;margin-bottom:12px}.overview-panel-link{font-size:13px;color:var(--accent);margin-top:12px;display:inline-block}.alerts-panel{display:flex;flex-direction:column;gap:12px}.alerts-panel-header{display:flex;align-items:center;justify-content:space-between;gap:8px}.alerts-count{font-size:11px;font-weight:700;padding:2px 8px;border-radius:999px;background:rgba(245,158,11,.2);color:#b45309}.alerts-count-critical{background:rgba(220,38,38,.15);color:var(--error)}.alerts-ok{color:var(--success)!important}.alerts-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.alerts-item{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;padding:10px 12px;border-radius:var(--radius-md);border:1px solid var(--border-subtle);background:var(--surface)}.alerts-severity-critical{border-left:3px solid var(--error)}.alerts-severity-warning{border-left:3px solid #f59e0b}.alerts-severity-info{border-left:3px solid var(--accent)}.status-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));grid-gap:16px;gap:16px}.status-card .card-body{display:flex;flex-direction:column;gap:8px}.status-services{gap:12px!important}.status-service-row{display:flex;align-items:center;gap:10px;font-size:13px}.status-meta{font-size:12px;color:var(--text-secondary)}.status-summary{font-size:14px;margin:0}.status-disk-bar{height:8px;background:var(--bg-elevated);border-radius:4px;overflow:hidden}.status-disk-fill{height:100%;background:var(--accent);border-radius:4px}.status-page-updated{font-size:12px;color:var(--text-muted);margin-left:auto}.audit-table .audit-detail{font-size:12px;color:var(--text-secondary);max-width:280px}.alerts-item-main{display:flex;flex-direction:column;gap:2px;min-width:0}.alerts-item-title{font-size:13px;font-weight:600}.alerts-item-msg{font-size:12px;color:var(--text-secondary);line-height:1.4}.alerts-item-meta{font-size:11px;color:var(--text-muted)}.alerts-item-actions{display:flex;gap:4px;flex-shrink:0}.alerts-settings-toggle{font-size:12px;color:var(--accent);background:none;border:none;padding:0;cursor:pointer;text-align:left}.alerts-settings-toggle:hover{text-decoration:underline}.alerts-settings-form{display:flex;flex-direction:column;gap:10px;padding-top:8px;border-top:1px solid var(--border-subtle)}.alerts-settings-msg{font-size:12px;color:var(--success);margin:0}.alerts-rules{border:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.alerts-rule-row{display:flex;align-items:center;gap:8px;font-size:13px;cursor:pointer}.overview-panel-badge{font-size:11px;padding:4px 8px;border-radius:999px;background:var(--surface);border:1px solid var(--border);color:var(--text-secondary)}.usage-stat{margin-bottom:14px}.usage-stat-row{display:flex;justify-content:space-between;font-size:13px;margin-bottom:6px;color:var(--text-secondary)}.usage-stat-row strong{color:var(--text)}.usage-bar{height:4px;background:var(--surface);border-radius:999px;overflow:hidden}.usage-bar-fill{height:100%;background:var(--success);border-radius:999px}.overview-section-title{font-size:14px;font-weight:600;margin-bottom:14px}.project-cards-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));grid-gap:12px;gap:12px;margin-bottom:32px}.project-card{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--bg);padding:16px;transition:border-color .15s,box-shadow .15s}.project-card:hover{border-color:var(--border-hover);box-shadow:0 4px 14px rgba(0,0,0,.06)}.project-card-top{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;margin-bottom:12px}.project-card-head{display:flex;align-items:center;gap:10px;min-width:0}.project-card-titles{min-width:0}.project-card-name{display:block;font-size:14px;font-weight:600;color:var(--text)}.project-card-domain{display:block;font-size:12px;color:var(--accent);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.project-card-actions{display:flex;align-items:center;gap:6px;flex-shrink:0}.project-card-status{width:24px;height:24px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center}.project-card-status.ready{background:#e8f1ff;color:#0066ff}.project-card-status.error{background:#ffe8e8;color:var(--error)}.project-card-status.offline{background:var(--surface);color:var(--text-tertiary)}.project-card-menu{position:relative}.project-card-menu-btn{width:28px;height:28px;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);color:var(--text-secondary);cursor:pointer;display:flex;align-items:center;justify-content:center}.project-card-menu-btn:hover{background:var(--surface-hover)}.project-card-dropdown{position:absolute;right:0;top:calc(100% + 4px);z-index:30;min-width:200px;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:0 8px 24px rgba(0,0,0,.1);padding:6px 0}.project-card-dropdown-item{display:block;padding:8px 14px;font-size:13px;color:var(--text)}.project-card-dropdown-item:hover{background:var(--surface-hover)}.project-card-dropdown-sep{height:1px;background:var(--border);margin:6px 0}.project-card-dropdown-label{display:block;padding:6px 14px 4px;font-size:11px;font-weight:600;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.04em}.project-card-repo{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--text-secondary);padding:4px 8px;border:1px solid var(--border);border-radius:999px;margin-bottom:12px}.project-card-repo:hover{border-color:var(--border-hover);color:var(--text)}.project-card-footer{border-top:1px solid var(--border-subtle);padding-top:12px}.project-card-commit{display:block;font-size:13px;color:var(--text);font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:6px}.project-card-commit:hover{color:var(--accent)}.project-card-commit-link{font-size:11px;color:var(--text-tertiary);float:right;margin-top:-22px}.project-card-meta{font-size:12px;color:var(--text-tertiary)}.overview-recent{margin-top:8px}.recent-list{border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden}.recent-item{display:grid;grid-template-columns:auto 1fr auto;grid-gap:10px;gap:10px;align-items:center;padding:12px 16px;border-bottom:1px solid var(--border-subtle);font-size:13px}.recent-item:last-child{border-bottom:none}.recent-item:hover{background:var(--bg-elevated)}.recent-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.recent-dot.ready{background:var(--success)}.recent-dot.building{background:var(--warning)}.recent-dot.error{background:var(--error)}.recent-msg{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:500}.recent-meta{font-size:12px;color:var(--text-tertiary);white-space:nowrap}.recent-meta code{font-family:var(--mono);font-size:11px}@media (max-width:900px){.overview-grid{grid-template-columns:1fr}.overview-sidebar{order:2}}.deploy-project-name{font-size:13px;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.deploy-col-branch{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--text-secondary);min-width:0}.deploy-col-branch span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.deploy-col-time{font-size:12px;color:var(--text-tertiary);white-space:nowrap}.deploy-visit-btn{width:28px;height:28px;border-radius:50%;border:1px solid var(--border);display:inline-flex;align-items:center;justify-content:center;color:var(--text-secondary);background:var(--bg);transition:border-color .12s,color .12s}.deploy-visit-btn:hover{border-color:var(--text-tertiary);color:var(--text)}.deploy-visit-btn.muted{opacity:0;pointer-events:none}.deploy-table-empty{padding:64px;text-align:center;color:var(--text-secondary);border-bottom:1px solid var(--border)}@media (max-width:1100px){.deploy-filters{gap:6px}.deploy-filters-right{margin-left:0;width:100%;justify-content:flex-end}.deploy-table-row,.deploy-table-row-project{grid-template-columns:1fr 120px 90px 60px;grid-template-rows:auto auto}.deploy-col-message{grid-column:1/-1}.deploy-col-branch,.deploy-col-commit,.deploy-col-project,.deploy-col-time{display:none}}.project-page-header{display:flex;align-items:flex-start;justify-content:space-between;padding:24px 32px 0;gap:16px;border-bottom:1px solid var(--border-subtle);margin-bottom:4px}.project-page-header-left{display:flex;flex-direction:column;gap:4px}.project-page-title{font-size:26px;font-weight:700;letter-spacing:-.03em;line-height:1.2}.project-page-subtitle{font-size:13px;color:var(--text-secondary);font-weight:400}.project-page-header-right{display:flex;align-items:center;gap:8px}.app-content-body-overview{padding-top:20px}.project-page-menu{position:relative}.project-page-menu-btn{width:32px;height:32px;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);color:var(--text-secondary);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:background .12s,border-color .12s}.project-page-menu-btn:hover{background:var(--surface-hover);border-color:var(--border-hover)}.project-page-menu-dropdown{position:absolute;top:calc(100% + 4px);right:0;min-width:180px;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:0 8px 30px rgba(0,0,0,.12);padding:4px;z-index:40}.project-page-menu-item{display:block;padding:8px 10px;border-radius:var(--radius);font-size:13px;color:var(--text);transition:background .12s}.project-page-menu-item:hover{background:var(--surface-hover)}.project-page-menu-sep{height:1px;background:var(--border-subtle);margin:4px 6px}.project-overview{display:flex;flex-direction:column;gap:24px}.overview-prod-card{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--bg);overflow:hidden}.overview-prod-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 20px;border-bottom:1px solid var(--border-subtle);flex-wrap:wrap}.overview-prod-title{font-size:14px;font-weight:600}.overview-prod-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.overview-prod-actions .btn{display:inline-flex;align-items:center;gap:6px}.overview-prod-body{display:grid;grid-template-columns:1fr 340px;grid-gap:0;gap:0;min-height:280px}.overview-prod-preview{border-right:1px solid var(--border-subtle);background:var(--bg-elevated);padding:16px;display:flex;align-items:center;justify-content:center}.overview-preview-wrap{width:100%;height:260px;border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;background:#fff;box-shadow:0 2px 8px rgba(0,0,0,.06)}.overview-preview-iframe{width:200%;height:200%;border:none;transform:scale(.5);transform-origin:top left;pointer-events:none}.overview-preview-empty{color:var(--text-secondary);font-size:13px}.overview-prod-meta{padding:20px;display:flex;flex-direction:column;gap:16px}.overview-meta-row{display:flex;flex-direction:column;gap:6px}.overview-meta-label{font-size:12px;color:var(--text-secondary)}.overview-meta-value{font-size:13px;font-weight:500}.overview-meta-domains{display:flex;flex-direction:column;gap:4px}.overview-domain-link{display:inline-flex;align-items:center;gap:6px}.overview-domain-link,.overview-link{font-size:13px;color:var(--accent)}.overview-link:hover{text-decoration:underline}.overview-status-line{display:flex;flex-wrap:wrap;align-items:center;gap:6px}.overview-status-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.overview-status-dot.ready{background:var(--success)}.overview-status-dot.building{background:var(--warning)}.overview-status-dot.error{background:var(--error)}.overview-status-dot.sm{width:6px;height:6px}.overview-status-sub{font-size:12px;color:var(--text-secondary);width:100%}.overview-author{display:inline-flex;align-items:center;gap:4px}.overview-author-avatar{width:18px;height:18px;border-radius:50%;background:var(--surface);border:1px solid var(--border);font-size:9px;font-weight:600;display:inline-flex;align-items:center;justify-content:center;color:var(--text-secondary)}.overview-author-avatar.sm{width:16px;height:16px;font-size:8px}.overview-source{display:flex;flex-direction:column;gap:6px}.overview-source-branch{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-family:var(--mono)}.overview-source-commit{display:flex;flex-direction:column;gap:4px}.overview-source-commit code{font-family:var(--mono);font-size:12px;color:var(--accent)}.overview-commit-msg{font-size:12px;color:var(--text-secondary);line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.overview-prod-footer{padding:14px 20px 16px;border-top:1px solid var(--border-subtle)}.overview-settings-toggle{display:inline-flex;align-items:center;gap:6px;border:none;background:none;font-size:13px;color:var(--text);cursor:pointer;padding:0;margin-bottom:10px}.overview-settings-panel{margin-bottom:12px;padding:12px;background:var(--bg-elevated);border-radius:var(--radius);border:1px solid var(--border-subtle)}.overview-settings-row{display:flex;justify-content:space-between;font-size:13px;padding:4px 0;color:var(--text-secondary)}.overview-settings-row strong{color:var(--text)}.overview-prod-hint{font-size:13px;color:var(--text-secondary);line-height:1.5;margin-bottom:12px}.overview-prod-footer-links{display:flex;justify-content:flex-end}.overview-bento,.overview-metrics-grid{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:12px;gap:12px}.overview-bento-tile{text-decoration:none;color:inherit;transition:border-color .15s,box-shadow .15s,transform .15s}.overview-bento-tile:hover{border-color:var(--accent);box-shadow:var(--shadow-md);transform:translateY(-1px)}.overview-metric-card{border:1px solid var(--border);border-radius:var(--radius-lg);padding:16px;background:var(--bg-elevated);min-height:160px;display:flex;flex-direction:column}.overview-metric-card-wide{grid-column:span 2}.overview-quick-tile{border:1px solid var(--border);border-radius:var(--radius-lg);padding:16px;background:var(--bg-elevated);display:flex;flex-direction:column;gap:6px;min-height:120px}.overview-quick-badge{width:28px;height:28px;border-radius:8px;background:var(--accent-soft);color:var(--accent);font-size:12px;font-weight:700;display:flex;align-items:center;justify-content:center}.overview-quick-label{font-size:14px;font-weight:600}.overview-quick-hint{font-size:12px;color:var(--text-tertiary)}.overview-metric-head{display:flex;align-items:center;gap:8px;margin-bottom:10px}.overview-metric-title{font-size:13px;font-weight:600}.overview-metric-period{font-size:11px;color:var(--text-tertiary)}.overview-metric-status{font-size:13px;font-weight:500;margin-bottom:4px}.overview-metric-status.active{color:var(--accent)}.overview-metric-sub{font-size:12px;color:var(--text-secondary);margin-bottom:12px}.overview-metric-empty{flex:1 1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;color:var(--text-tertiary);text-align:center}.overview-metric-stats{display:flex;flex-direction:column;gap:8px;flex:1 1}.overview-metric-stat{display:flex;justify-content:space-between;font-size:12px;color:var(--text-secondary)}.overview-metric-stat strong{color:var(--text);font-size:13px}.overview-metric-chart{display:flex;justify-content:flex-end;margin-top:auto}.overview-analytics-summary{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:8px}.overview-analytics-count{font-size:22px;font-weight:700;letter-spacing:-.02em}.overview-analytics-label{font-size:13px;color:var(--text-secondary)}.overview-analytics-link{font-size:12px;color:var(--accent)}.overview-metric-empty{font-size:12px;color:var(--text-secondary);padding:12px 0 4px}.overview-area-chart{margin-top:auto}.overview-branches-title{font-size:14px;font-weight:600;margin-bottom:12px}.overview-branches-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:0;border:1px solid var(--border);border-bottom:none;border-radius:var(--radius-lg) var(--radius-lg) 0 0;padding:10px 14px;background:var(--bg)}.overview-branches-search{display:flex;align-items:center;gap:8px;flex:1 1;max-width:320px;color:var(--text-tertiary)}.overview-branches-search input{border:none;outline:none;background:transparent;font-size:13px;width:100%;color:var(--text)}.overview-branches-status{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--text-secondary)}.overview-branches-status-count{font-weight:500;color:var(--text)}.overview-status-dots{display:flex;gap:3px}.overview-status-dots .dot{width:6px;height:6px;border-radius:50%}.overview-status-dots .dot.ready{background:var(--success)}.overview-status-dots .dot.building{background:var(--warning)}.overview-status-dots .dot.error{background:var(--error)}.overview-branches-list{border:1px solid var(--border);border-radius:0 0 var(--radius-lg) var(--radius-lg);overflow:hidden}.overview-branches-empty{border:1px solid var(--border);border-radius:var(--radius-lg);padding:32px;text-align:center;font-size:13px;color:var(--text-secondary)}.overview-branch-row{display:grid;grid-template-columns:1fr auto auto auto 1fr auto;align-items:center;grid-gap:12px;gap:12px;padding:12px 16px;border-bottom:1px solid var(--border-subtle);font-size:13px;transition:background .12s}.overview-branch-row:last-child{border-bottom:none}.overview-branch-row:hover{background:var(--bg-elevated)}.overview-branch-name{display:flex;align-items:center;gap:8px;min-width:0;font-family:var(--mono);font-size:12px}.overview-branch-name span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.overview-branch-preview-btn{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border:1px solid var(--border);border-radius:var(--radius);font-size:12px;color:var(--text-secondary);background:var(--bg);transition:background .12s,border-color .12s}.overview-branch-preview-btn:hover{background:var(--surface-hover);border-color:var(--border-hover);color:var(--text)}.overview-branch-deploy{display:inline-flex;align-items:center;gap:6px;font-family:var(--mono);font-size:12px;color:var(--text-secondary)}.overview-branch-deploy:hover{color:var(--accent)}.overview-branch-github{color:var(--text-secondary);display:inline-flex}.overview-branch-github:hover{color:var(--text)}.overview-branch-author{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--text-secondary);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.overview-branch-time{font-size:12px;color:var(--text-tertiary);text-align:right;white-space:nowrap}.overview-branches-more{width:100%;margin-top:12px;padding:10px;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--bg);font-size:13px;color:var(--text-secondary);cursor:not-allowed;opacity:.7}@media (max-width:1100px){.overview-prod-body{grid-template-columns:1fr}.overview-prod-preview{border-right:none;border-bottom:1px solid var(--border-subtle)}.overview-metrics-grid{grid-template-columns:1fr}.overview-branch-row{grid-template-columns:1fr 1fr;grid-template-rows:auto auto}.overview-branch-time{grid-column:2;text-align:right}.analytics-grid-2,.analytics-grid-3,.analytics-kpis{grid-template-columns:1fr}.analytics-kpi-divider{display:none}}.project-analytics{display:flex;flex-direction:column;gap:16px}.analytics-loading,.analytics-team-intro{font-size:14px;color:var(--text-secondary);margin-bottom:16px}.analytics-notice{padding:12px 14px;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--bg-elevated);font-size:13px;color:var(--text-secondary);line-height:1.5}.analytics-chart-empty,.analytics-table-empty{padding:24px 16px;text-align:center;font-size:13px;color:var(--text-secondary)}.analytics-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding-bottom:4px}.analytics-toolbar-left,.analytics-toolbar-right{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.analytics-domain{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--text);font-weight:500}.analytics-domain-more{font-size:12px;padding:2px 6px;border-radius:999px;background:var(--surface);border:1px solid var(--border);color:var(--text-secondary)}.analytics-online{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--text-secondary)}.analytics-online.on{color:var(--success)}.analytics-online-dot{width:8px;height:8px;border-radius:50%;background:var(--text-tertiary)}.analytics-online.on .analytics-online-dot{background:var(--success)}.analytics-date-btn,.analytics-select{height:32px;padding:0 10px;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);font-size:13px;color:var(--text);cursor:pointer}.analytics-date-btn{display:inline-flex;align-items:center;gap:6px}.analytics-hero{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--bg);overflow:hidden}.analytics-kpis{display:grid;grid-template-columns:1fr auto 1fr auto 1fr;align-items:stretch;border-bottom:1px solid var(--border-subtle)}.analytics-kpi{padding:20px 24px}.analytics-kpi-divider{width:1px;background:var(--border-subtle)}.analytics-kpi-label{display:block;font-size:13px;color:var(--text-secondary);margin-bottom:8px}.analytics-kpi-row{display:flex;align-items:baseline;gap:10px}.analytics-kpi-row strong{font-size:28px;font-weight:700;letter-spacing:-.03em}.analytics-delta{font-size:12px;padding:2px 8px;border-radius:999px;font-weight:500}.analytics-delta.up{background:rgba(12,206,107,.12);color:#0a9f55}.analytics-delta.down{background:rgba(238,0,0,.08);color:var(--error)}.analytics-chart{width:100%;height:200px;display:block}.analytics-chart-label,.analytics-chart-tick{font-size:11px;fill:var(--text-tertiary)}.analytics-grid-2{display:grid;grid-template-columns:1fr 1fr;grid-gap:16px;gap:16px}.analytics-grid-3{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:16px;gap:16px}.analytics-card{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--bg);overflow:hidden}.analytics-card-tabs{display:flex;gap:0;border-bottom:1px solid var(--border-subtle);padding:0 12px}.analytics-card-tab{padding:12px 10px;margin-right:8px;background:none;font-size:13px;color:var(--text-secondary);cursor:pointer;border:none;border-bottom:2px solid transparent;margin-bottom:-1px}.analytics-card-tab.active{color:var(--text);font-weight:500;border-bottom-color:var(--text)}.analytics-card-table-head{display:flex;justify-content:space-between;padding:10px 16px;font-size:11px;font-weight:600;color:var(--text-tertiary);letter-spacing:.04em;border-bottom:1px solid var(--border-subtle)}.analytics-card-table-head.simple{font-size:13px;font-weight:600;color:var(--text);letter-spacing:normal}.analytics-rows{display:flex;flex-direction:column}.analytics-row{position:relative;display:flex;align-items:center;justify-content:space-between;padding:10px 16px;font-size:13px;border-bottom:1px solid var(--border-subtle);min-height:40px}.analytics-row:last-child{border-bottom:none}.analytics-row-bar{position:absolute;left:0;top:0;bottom:0;background:var(--surface);z-index:0;pointer-events:none}.analytics-row-label,.analytics-row-value{position:relative;z-index:1}.analytics-row-label{color:var(--text);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding-right:12px}.analytics-row-flag{margin-right:6px}.analytics-row-value{color:var(--text-secondary);font-weight:500;flex-shrink:0}.analytics-card-empty{min-height:280px;display:flex;flex-direction:column}.analytics-empty-cols{display:flex;gap:24px}.analytics-empty-body{flex:1 1;flex-direction:column;text-align:center;padding:24px 20px}.analytics-empty-body,.analytics-empty-icon{display:flex;align-items:center;justify-content:center}.analytics-empty-icon{width:48px;height:48px;border-radius:50%;border:1px solid var(--border);color:var(--text-tertiary);margin-bottom:12px}.analytics-empty-title{font-size:14px;font-weight:600;margin-bottom:6px}.analytics-empty-text{font-size:13px;color:var(--text-secondary);line-height:1.5;max-width:320px}.analytics-empty-footer{padding:12px 16px;border-top:1px solid var(--border-subtle);font-size:12px;color:var(--text-secondary);text-align:center}.analytics-team-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));grid-gap:12px;gap:12px}.analytics-team-card{display:flex;align-items:center;gap:12px;padding:14px 16px;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--bg);transition:background .12s,border-color .12s}.analytics-team-card:hover{background:var(--bg-elevated);border-color:var(--border-hover)}.analytics-team-card strong{display:block;font-size:14px;margin-bottom:2px}.analytics-team-card span{font-size:12px;color:var(--text-secondary)}.analytics-team-card svg{margin-left:auto;color:var(--text-tertiary);flex-shrink:0}.project-speed{display:flex;flex-direction:column;gap:20px}.speed-empty,.speed-loading{padding:16px}.speed-empty,.speed-loading,.speed-notice{font-size:13px;color:var(--text-secondary)}.speed-notice{padding:12px 16px;border-radius:var(--radius-lg);border:1px solid var(--border);background:var(--bg-elevated)}.speed-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.speed-toolbar-left,.speed-toolbar-right{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.speed-domain{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:500;color:var(--text);text-decoration:none}.speed-domain:hover{text-decoration:underline}.speed-source{font-size:12px;color:var(--text-muted);padding:4px 8px;border-radius:var(--radius);background:var(--bg-elevated);border:1px solid var(--border-subtle)}.speed-select{font-size:13px;padding:8px 12px;border-radius:var(--radius-lg);border:1px solid var(--border);background:var(--bg);color:var(--text)}.speed-hero{display:grid;grid-template-columns:auto 1fr;grid-gap:28px;gap:28px;padding:24px;border:1px solid var(--border-subtle);border-radius:var(--radius-lg);background:var(--bg-elevated)}.speed-hero-left{display:flex;flex-direction:column;align-items:center;gap:12px;min-width:160px}.speed-score-ring{position:relative;width:140px;height:140px}.speed-score-center{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px}.speed-score-center strong{font-size:36px;line-height:1;font-weight:700}.speed-score-center span{font-size:12px;color:var(--text-secondary);font-weight:500}.speed-metric-note{font-size:11px;color:var(--text-muted);text-align:center;line-height:1.4;max-width:180px}.speed-percentiles{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:12px;gap:12px;margin-bottom:20px}.speed-pct{padding:14px 16px;border-radius:var(--radius-lg);border:1px solid var(--border-subtle);background:var(--bg)}.speed-pct.highlight{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 6%,var(--bg))}.speed-pct span{display:block;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);margin-bottom:6px}.speed-pct strong{font-size:20px;font-weight:600}.speed-meta-row{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:12px;gap:12px}.speed-meta-item span{display:block;font-size:11px;color:var(--text-muted);margin-bottom:4px}.speed-meta-item strong{font-size:15px;display:inline-flex;align-items:center;gap:6px}.speed-delta{font-size:11px;font-weight:600;padding:2px 6px;border-radius:4px}.speed-delta.up{color:#16a34a;background:rgba(22,163,74,.1)}.speed-delta.down{color:#dc2626;background:rgba(220,38,38,.1)}.speed-card{border:1px solid var(--border-subtle);border-radius:var(--radius-lg);background:var(--bg-elevated);overflow:hidden}.speed-card-chart{padding-bottom:8px}.speed-card-head{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-bottom:1px solid var(--border-subtle);font-size:13px;font-weight:600}.speed-card-head.simple{border-bottom:none;padding-bottom:0}.speed-card-cols{display:flex;gap:20px;font-size:10px;font-weight:600;letter-spacing:.06em;color:var(--text-muted)}.speed-chart-wrap{padding:8px 16px 12px}.speed-chart-legend{display:flex;gap:16px;font-size:12px;color:var(--text-secondary);margin-bottom:8px}.speed-legend-dot{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:6px;vertical-align:middle}.speed-legend-dot.avg{background:var(--accent)}.speed-legend-dot.p95{background:rgba(249,115,22,.8)}.speed-chart{width:100%;height:220px;display:block}.speed-chart-label,.speed-chart-tick{font-size:10px;fill:var(--text-muted)}.speed-chart-empty{padding:40px 16px;text-align:center;font-size:13px;color:var(--text-muted)}.speed-grid-2{display:grid;grid-template-columns:1fr 1fr;grid-gap:16px;gap:16px}.speed-grid-3{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:16px;gap:16px}.speed-distribution{padding:12px 16px 16px;display:flex;flex-direction:column;gap:10px}.speed-dist-row{display:grid;grid-template-columns:100px 1fr 40px;grid-gap:10px;gap:10px;align-items:center;font-size:12px}.speed-dist-bar-wrap{height:8px;border-radius:4px;background:var(--border-subtle);overflow:hidden}.speed-dist-bar{height:100%;border-radius:4px;background:linear-gradient(90deg,var(--accent),color-mix(in srgb,var(--accent) 60%,#22c55e));min-width:2px}.speed-dist-value{text-align:right;color:var(--text-secondary);font-weight:500}.speed-cache-list{padding:12px 16px 16px;display:flex;flex-direction:column;gap:10px}.speed-cache-row{display:grid;grid-template-columns:120px 1fr 40px;grid-gap:10px;gap:10px;align-items:center}.speed-cache-pill{font-size:11px;font-weight:600;padding:4px 8px;border-radius:4px;white-space:nowrap}.speed-cache-pill.hit{background:rgba(34,197,94,.12);color:#16a34a}.speed-cache-pill.miss{background:rgba(239,68,68,.1);color:#dc2626}.speed-cache-pill.stale{background:rgba(234,179,8,.12);color:#ca8a04}.speed-cache-pill.cdn{background:rgba(59,130,246,.1);color:#2563eb}.speed-cache-pill.bypass{background:var(--bg);color:var(--text-muted);border:1px solid var(--border-subtle)}.speed-cache-bar-wrap{height:6px;border-radius:3px;background:var(--border-subtle);overflow:hidden}.speed-cache-bar{height:100%;background:var(--accent);border-radius:3px}.speed-cache-pct{font-size:12px;text-align:right;color:var(--text-secondary)}.speed-routes{padding:4px 0}.speed-route-row{display:grid;grid-template-columns:1fr 72px 72px 48px;grid-gap:8px;gap:8px;align-items:center;padding:10px 16px;border-bottom:1px solid var(--border-subtle);font-size:12px}.speed-route-row:last-child{border-bottom:none}.speed-route-path{font-family:var(--mono);font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text)}.speed-route-ms{text-align:right;font-weight:500;color:var(--text-secondary)}.speed-route-ms.slow{color:#ea580c}.speed-route-ms.fast{color:#16a34a}.speed-route-count{text-align:right;color:var(--text-muted)}.speed-device-stats{padding:8px 16px 20px;display:grid;grid-template-columns:repeat(3,1fr);grid-gap:12px;gap:12px}.speed-device-stats span{display:block;font-size:11px;color:var(--text-muted);margin-bottom:4px}.speed-device-stats strong{font-size:15px}.speed-status-codes{font-size:12px!important;font-weight:500;line-height:1.4}@media (max-width:960px){.speed-hero{grid-template-columns:1fr}.speed-meta-row,.speed-percentiles{grid-template-columns:repeat(2,1fr)}.speed-grid-2,.speed-grid-3{grid-template-columns:1fr}}.fp-page{display:flex;flex-direction:column;gap:16px}.fp-toolbar{display:flex;gap:8px;flex-wrap:wrap}.fp-select{font-size:13px;padding:8px 12px;border-radius:var(--radius-lg);border:1px solid var(--border);background:var(--bg)}.fp-empty,.fp-loading,.fp-note{font-size:13px;color:var(--text-secondary)}.fp-note{padding:10px 14px;border-radius:var(--radius-lg);background:var(--bg-elevated);border:1px solid var(--border-subtle)}.fp-kpi-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));grid-gap:12px;gap:12px}.fp-kpi{padding:14px 16px;border:1px solid var(--border-subtle);border-radius:var(--radius-lg);background:var(--bg-elevated)}.fp-kpi-label{display:block;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);margin-bottom:6px}.fp-kpi-value{font-size:22px;font-weight:600}.fp-kpi-sub{display:block;font-size:12px;color:var(--text-muted);margin-top:4px}.fp-grid-2{display:grid;grid-template-columns:1fr 1fr;grid-gap:16px;gap:16px}.fp-card{border:1px solid var(--border-subtle);border-radius:var(--radius-lg);background:var(--bg-elevated);overflow:hidden}.fp-card-head{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-bottom:1px solid var(--border-subtle);font-size:13px;font-weight:600}.fp-card-body{padding:16px}.fp-table-head,.fp-table-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(80px,1fr));grid-gap:8px;gap:8px;padding:8px 0;font-size:12px;border-bottom:1px solid var(--border-subtle)}.fp-table-head{font-size:10px;font-weight:700;letter-spacing:.06em;color:var(--text-muted)}.fp-mono{font-family:var(--mono);word-break:break-all}.fp-pill{font-size:11px;font-weight:600;padding:2px 8px;border-radius:4px;text-transform:uppercase}.fp-pill.ok{background:rgba(34,197,94,.12);color:#16a34a}.fp-pill.warn{background:rgba(234,179,8,.12);color:#ca8a04}.fp-pill.err{background:rgba(239,68,68,.1);color:#dc2626}.fp-spark{width:100%;height:120px;display:block}.fp-log-stream{max-height:360px;overflow:auto;font-family:var(--mono);font-size:11px}.fp-log-line{display:grid;grid-template-columns:64px 40px 44px 1fr 52px 100px;grid-gap:8px;gap:8px;padding:6px 0;border-bottom:1px solid var(--border-subtle)}.fp-log-status.s2{color:#16a34a}.fp-log-status.s3{color:#2563eb}.fp-log-status.s4{color:#ca8a04}.fp-log-status.s5{color:#dc2626}.fp-log-uri{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fp-pre{font-family:var(--mono);font-size:11px;background:#0a0a0a;color:#e5e5e5;padding:12px;border-radius:var(--radius);overflow:auto;max-height:160px;margin-top:8px}.fp-build-block{padding:12px 0;border-bottom:1px solid var(--border-subtle)}.fp-build-head{display:flex;align-items:center;gap:10px;font-size:13px}.fp-link{font-size:13px;color:var(--accent);text-decoration:none}.fp-link:hover{text-decoration:underline}.fp-meta{font-size:13px;color:var(--text-secondary);margin:8px 0}.fp-bar-row{display:grid;grid-template-columns:80px 1fr 40px;grid-gap:10px;gap:10px;align-items:center;font-size:12px;margin-bottom:8px}.fp-bar-track{height:8px;border-radius:4px;background:var(--border-subtle);overflow:hidden}.fp-bar-fill{height:100%;background:var(--accent);border-radius:4px}.fp-links{list-style:none;padding:0;margin:0}.fp-links li{padding:8px 0;border-bottom:1px solid var(--border-subtle)}.fp-links a{color:var(--text);text-decoration:none;font-size:14px}.fp-links a:hover{color:var(--accent)}@media (max-width:900px){.fp-grid-2,.fp-log-line{grid-template-columns:1fr}.fp-log-line{gap:2px}}.hub-page{display:flex;flex-direction:column;gap:0}.hub-tabs{display:flex;gap:4px;padding:16px 0 20px;overflow-x:auto;scrollbar-width:none;-ms-overflow-style:none}.hub-tabs::-webkit-scrollbar{display:none}.hub-tab{display:flex;flex-direction:column;gap:2px;padding:10px 16px;border-radius:var(--radius-lg);border:1px solid transparent;background:transparent;color:var(--text-secondary);font-size:13px;font-weight:500;white-space:nowrap;transition:background .15s,color .15s,border-color .15s}.hub-tab:hover{background:var(--surface);color:var(--text)}.hub-tab.active{background:var(--accent-soft);border-color:rgba(91,91,214,.25);color:var(--accent)}.hub-tab-desc{font-size:11px;font-weight:400;color:var(--text-tertiary)}.hub-toolbar{display:flex;gap:8px;margin-bottom:16px}.hub-select{padding:6px 12px;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-elevated);font-size:13px;color:var(--text)}.hub-content{min-height:200px}.hub-loading{color:var(--text-secondary);padding:32px 0;font-size:14px}.hub-panel{display:flex;flex-direction:column;gap:16px}.hub-card{border:1px solid var(--border);border-radius:var(--radius-lg);padding:20px;background:var(--bg-elevated)}.hub-card-danger{border-color:rgba(220,38,38,.2)}.hub-card-title{font-size:15px;font-weight:600;margin-bottom:6px}.hub-card-desc{font-size:13px;color:var(--text-secondary);margin-bottom:16px}.hub-form-row{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.hub-form-row .form-input{flex:1 1;min-width:120px}.hub-table .mono{font-family:var(--mono);font-size:12px}.hub-table .muted{color:var(--text-secondary)}.hub-table .text-right{text-align:right}.hub-empty{color:var(--text-secondary);font-size:13px}.hub-storage-meter{margin-bottom:20px}.app-nav-divider{background:#2a2a2a}.app-sidebar .project-switcher-trigger,.sidebar-search input{color:var(--sidebar-text-active)}.app-sidebar .project-switcher-trigger.open,.app-sidebar .project-switcher-trigger:hover{background:var(--sidebar-hover);border-color:#333333}.app-sidebar .project-switcher-chevron{color:var(--sidebar-text)}.app-sidebar .project-switcher-scope-icon{background:#2a2a2a;border-color:#3a3a3a;color:var(--sidebar-text-active)}.app-sidebar .user-menu-trigger{color:var(--sidebar-text-active)}.app-sidebar .user-menu-trigger:hover{background:var(--sidebar-hover)}.app-sidebar .user-menu-label strong{color:var(--sidebar-text-active)}.app-sidebar .user-menu-label span{color:var(--sidebar-text)}.app-sidebar-bottom{border-top-color:#2a2a2a}.app-sidebar .sidebar-search kbd{background:#2a2a2a;border-color:#3a3a3a;color:var(--sidebar-text)}.app-sidebar .app-nav-item svg{color:inherit}.btn-primary{background:var(--accent-gradient);border-color:transparent}.btn-primary:hover{filter:brightness(1.05)}@media (max-width:1100px){.overview-bento{grid-template-columns:repeat(2,1fr)}.overview-metric-card-wide{grid-column:span 2}}@media (max-width:640px){.overview-bento{grid-template-columns:1fr}.overview-metric-card-wide{grid-column:span 1}.hub-tab{padding:8px 12px}}.analytics-card-map{grid-column:span 1}.world-map-wrap{padding:12px 16px 0}.world-map-svg{width:100%;height:140px;border-radius:var(--radius-md)}.world-map-legend{display:flex;flex-wrap:wrap;gap:8px 14px;padding:10px 16px 12px;font-size:11px;color:var(--text-secondary)}.world-map-legend-item{display:inline-flex;align-items:center;gap:6px}.world-map-dot{width:6px;height:6px;border-radius:50%;background:var(--accent)}.project-compare{display:flex;flex-direction:column;gap:16px}.compare-toolbar{display:flex;justify-content:flex-end}.compare-summary{display:grid;grid-template-columns:1fr auto 1fr;grid-gap:16px;gap:16px;align-items:center}.compare-env-card{padding:16px 20px;border-radius:var(--radius-lg);border:1px solid var(--border);background:var(--bg-elevated);display:flex;flex-direction:column;gap:4px}.compare-env-card strong{font-size:24px}.compare-env-label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--text-tertiary)}.compare-env-card.prod .compare-env-label{color:var(--accent)}.compare-env-card.preview .compare-env-label{color:#a855f7}.compare-hosts{font-size:11px;color:var(--text-tertiary);margin-top:4px}.compare-vs{font-size:13px;font-weight:600;color:var(--text-tertiary)}.compare-table-wrap{overflow-x:auto;border:1px solid var(--border);border-radius:var(--radius-lg)}.compare-table td,.compare-table th{padding:10px 14px}.compare-delta.better{color:#22c55e}.compare-delta.worse{color:#ef4444}.compare-delta.neutral{color:var(--text-tertiary)}.compare-note{font-size:12px}.project-card-postgres{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;border-radius:999px;font-size:10px;font-weight:600;border:1px solid var(--border);background:var(--bg-elevated);color:var(--text-secondary)}.project-card-postgres.connected{border-color:rgba(34,197,94,.4);background:rgba(34,197,94,.1);color:#16a34a}.project-card-postgres.configured{border-color:rgba(234,179,8,.4);background:rgba(234,179,8,.08);color:#ca8a04}.cron-table .toggle{margin-right:8px;vertical-align:middle}.cron-status.success{color:#22c55e}.cron-status.error{color:#ef4444}.cron-form{margin-top:16px;flex-wrap:wrap}.cron-actions{display:flex;gap:6px;justify-content:flex-end}@media (max-width:768px){.compare-summary{grid-template-columns:1fr}.compare-vs{text-align:center}}.deploy-rollback-hint{padding:12px 16px;border-radius:var(--radius-lg);border:1px solid rgba(234,179,8,.35);background:rgba(234,179,8,.08);font-size:13px;color:var(--text-secondary)}.runtime-logs-panel{display:flex;flex-direction:column;gap:8px}.runtime-logs-head{display:flex;justify-content:space-between;align-items:center;font-size:12px;color:var(--text-secondary);flex-wrap:wrap;gap:8px}.runtime-logs-body{margin:0;max-height:420px;overflow:auto;padding:12px;border-radius:var(--radius-md);background:#0d1117;color:#c9d1d9;font-size:11px;line-height:1.5;white-space:pre-wrap;word-break:break-all}