@import "https://fonts.googleapis.com/css2?family=DM+Sans:ital,opsz,wght@0,9..40,300;0,9..40,400;0,9..40,500;0,9..40,600;0,9..40,700;0,9..40,800;1,9..40,400&display=swap";:root{--color-primary:#0d9488;--color-success:#22c55e;--color-warning:#f59e0b;--color-danger:#ef4444;--color-gray-100:#f3f4f6;--color-gray-200:#e5e7eb;--color-gray-700:#374151;--color-gray-900:#111827;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-6:24px;--space-8:32px;--radius-sm:4px;--radius-md:8px;--radius-lg:12px}*,:before,:after{box-sizing:border-box}:root{--color-bg:#fff;--color-surface:#f8f8fb;--color-border:#e2e2e8;--color-text:#1a1a2e;--color-text-muted:#5f5f7a;--color-accent:#0d9488;--color-accent-hover:#0f766e;--color-accent-secondary:#f0fdfa;--color-success:#22c55e;--color-danger:#ef4444;--color-neutral:#9ca3af;--color-warning:#f59e0b;--nav-height:68px;--max-width:1120px;--font-sans:"DM Sans", system-ui, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--shadow-sm:0 1px 3px #00000014, 0 1px 2px #0000000f;--shadow-md:0 4px 16px #00000014, 0 2px 6px #0000000d;--shadow-lg:0 12px 32px #0000001a, 0 4px 12px #0000000f;--shadow-xl:0 20px 48px #00000024, 0 8px 20px #00000014;--shadow-accent:0 8px 28px #0d948838;--shadow-accent-lg:0 12px 40px #0d94884d;--gradient-primary:linear-gradient(135deg, #0d9488 0%, #06b6d4 100%);--gradient-primary-hover:linear-gradient(135deg, #0f766e 0%, #0891b2 100%);--gradient-subtle:linear-gradient(135deg, #0d948814 0%, #06b6d40d 100%);--ease-spring:cubic-bezier(.34, 1.56, .64, 1);--ease-smooth:cubic-bezier(.25, .1, .25, 1);--duration-fast:.15s;--duration-normal:.22s;--duration-slow:.35s}@media (prefers-color-scheme:dark){:root:not([data-theme]){--color-bg:#0a0f0e;--color-surface:#111918;--color-border:#1e2e2c;--color-text:#f0f8f7;--color-text-muted:#7da8a2;--color-accent:#2dd4bf;--color-accent-hover:#5eead4;--color-accent-secondary:#0d2420;--shadow-sm:0 1px 3px #0000004d, 0 1px 2px #0003;--shadow-md:0 4px 16px #00000052, 0 2px 6px #0003;--shadow-lg:0 12px 32px #0006, 0 4px 12px #0000003d;--shadow-xl:0 20px 48px #00000080, 0 8px 20px #0000004d;--shadow-accent:0 8px 28px #2dd4bf40;--shadow-accent-lg:0 12px 40px #2dd4bf52;--gradient-primary:linear-gradient(135deg, #2dd4bf 0%, #22d3ee 100%);--gradient-primary-hover:linear-gradient(135deg, #14b8a6 0%, #0891b2 100%);--gradient-subtle:linear-gradient(135deg, #2dd4bf1a 0%, #22d3ee0f 100%)}}:root[data-theme=dark]{--color-bg:#0a0f0e;--color-surface:#111918;--color-border:#1e2e2c;--color-text:#f0f8f7;--color-text-muted:#7da8a2;--color-accent:#2dd4bf;--color-accent-hover:#5eead4;--color-accent-secondary:#0d2420;--shadow-sm:0 1px 3px #0000004d, 0 1px 2px #0003;--shadow-md:0 4px 16px #00000052, 0 2px 6px #0003;--shadow-lg:0 12px 32px #0006, 0 4px 12px #0000003d;--shadow-xl:0 20px 48px #00000080, 0 8px 20px #0000004d;--shadow-accent:0 8px 28px #2dd4bf40;--shadow-accent-lg:0 12px 40px #2dd4bf52;--gradient-primary:linear-gradient(135deg, #2dd4bf 0%, #22d3ee 100%);--gradient-primary-hover:linear-gradient(135deg, #14b8a6 0%, #0891b2 100%);--gradient-subtle:linear-gradient(135deg, #2dd4bf1a 0%, #22d3ee0f 100%)}:root[data-theme=light]{--color-bg:#fff;--color-surface:#f7fffe;--color-border:#d1ece8;--color-text:#1a1a2e;--color-text-muted:#4d7370;--color-accent:#0d9488;--color-accent-hover:#0f766e;--color-accent-secondary:#f0fdfa}html{scroll-behavior:smooth}html,body{background:var(--color-bg);color:var(--color-text);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;padding:0;font-size:16px;line-height:1.6}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:99px}::-webkit-scrollbar-thumb:hover{background:var(--color-text-muted)}h1,h2,h3{color:var(--color-text);letter-spacing:-.01em;margin:0 0 1rem;line-height:1.2}p{color:var(--color-text-muted);margin:0 0 1rem}a{color:var(--color-accent);text-decoration:none}a:hover{text-decoration:underline}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.app-layout{flex-direction:column;min-height:100vh;display:flex}.app-bg-fx{pointer-events:none;z-index:0;position:fixed;inset:0;overflow:hidden}.app-bg-orb{filter:blur(90px);will-change:transform;border-radius:50%;position:absolute}.app-bg-orb--a{background:#0d94882e;width:750px;height:750px;animation:18s ease-in-out infinite bg-orb-a;top:-10%;right:-5%}.app-bg-orb--b{background:#06b6d424;width:620px;height:620px;animation:23s ease-in-out infinite bg-orb-b;bottom:-10%;left:-5%}.app-bg-orb--c{background:#0d94881a;width:480px;height:480px;animation:14s ease-in-out infinite bg-orb-c;top:35%;left:22%}@keyframes bg-orb-a{0%,to{transform:translate(0)scale(1)}33%{transform:translate(-50px,70px)scale(1.12)}66%{transform:translate(35px,-35px)scale(.92)}}@keyframes bg-orb-b{0%,to{transform:translate(0)scale(1)}40%{transform:translate(60px,-50px)scale(1.18)}70%{transform:translate(-28px,45px)scale(.9)}}@keyframes bg-orb-c{0%,to{opacity:.8;transform:translate(0)scale(1)}50%{opacity:1;transform:translate(-35px,-28px)scale(1.3)}}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .app-bg-orb--a{background:#2dd4bf38}:root:not([data-theme=light]) .app-bg-orb--b{background:#22d3ee2e}:root:not([data-theme=light]) .app-bg-orb--c{background:#2dd4bf21}}:root[data-theme=dark] .app-bg-orb--a{background:#2dd4bf38}:root[data-theme=dark] .app-bg-orb--b{background:#22d3ee2e}:root[data-theme=dark] .app-bg-orb--c{background:#2dd4bf21}.app-main{z-index:1;flex:1;position:relative}.app-nav{z-index:100;height:var(--nav-height);-webkit-backdrop-filter:blur(20px)saturate(180%);box-shadow:0 1px 0 #0000000a, var(--shadow-sm);transition:background var(--duration-normal) var(--ease-smooth), box-shadow var(--duration-normal) var(--ease-smooth);background:#ffffffe0;border-bottom:1px solid #e2e2e8cc;justify-content:space-between;align-items:center;gap:1rem;padding:0 1.75rem;display:flex;position:sticky;top:0}@media (prefers-color-scheme:dark){:root:not([data-theme]) .app-nav{background:#0a0a12e0;border-bottom-color:#252535cc}}:root[data-theme=dark] .app-nav{background:#0a0a12e0;border-bottom-color:#252535cc}:root[data-theme=light] .app-nav{background:#ffffffe0;border-bottom-color:#e2e2e8cc}.app-nav-left{align-items:center;gap:2rem;display:flex}.app-nav-logo{align-items:center;gap:.5rem;text-decoration:none;display:flex}.app-nav-logo:hover{opacity:.88;transition:opacity var(--duration-fast) var(--ease-smooth);text-decoration:none}.app-nav-logo-img{width:auto;height:52px;transition:filter var(--duration-fast) var(--ease-smooth);display:block}.app-nav-logo:hover .app-nav-logo-img{filter:drop-shadow(0 2px 6px #0d948873)}.app-nav-logo-text{letter-spacing:-.03em;background:linear-gradient(135deg,#3ab863 0%,#0d9488 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-size:1.15rem;font-weight:800}.app-nav-links{gap:1.5rem;margin:0;padding:0;list-style:none;display:flex}.nav-link{color:var(--color-text-muted);transition:color var(--duration-fast) var(--ease-smooth), background var(--duration-fast) var(--ease-smooth);border-bottom:2px solid #0000;border-radius:6px;padding:.3rem .6rem;font-size:.875rem;font-weight:500;text-decoration:none}.nav-link:hover{color:var(--color-text);background:color-mix(in srgb, var(--color-accent) 8%, transparent);text-decoration:none}.nav-link--active{color:var(--color-accent);background:color-mix(in srgb, var(--color-accent) 10%, transparent);font-weight:600}.app-nav-right{align-items:center;display:flex}.api-status-badge{color:var(--color-text-muted);white-space:nowrap;align-items:center;gap:.4rem;font-size:.8rem;display:inline-flex}.api-status-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.home-page{flex-direction:column;display:flex}.home-hero{text-align:center;background:radial-gradient(ellipse 80% 60% at 50% 0%, color-mix(in srgb, var(--color-accent) 8%, transparent) 0%, transparent 70%);padding:7rem 1.5rem 6rem;position:relative;overflow:hidden}.home-hero-glow{pointer-events:none;position:absolute;inset:0;overflow:hidden}.home-hero-glow:before{content:"";background:radial-gradient(#4f46e526 0%,#7c3aed0f 45%,#0000 70%);width:1000px;height:700px;animation:8s ease-in-out infinite hero-orb-1;position:absolute;top:-15%;left:50%;transform:translate(-50%)}.home-hero-glow:after{content:"";background:radial-gradient(#8b5cf614 0%,#0000 65%);width:500px;height:500px;animation:10s ease-in-out infinite hero-orb-2;position:absolute;top:5%;left:20%}@keyframes hero-orb-1{0%,to{opacity:.8;transform:translate(-50%)scale(1)translateY(0)}50%{opacity:1;transform:translate(-50%)scale(1.12)translateY(-20px)}}@keyframes hero-orb-2{0%,to{opacity:.6;transform:scale(1)translateY(0)}33%{opacity:.9;transform:scale(1.1)translateY(-15px)translate(20px)}66%{opacity:.5;transform:scale(.95)translateY(10px)translate(-10px)}}.home-hero-inner{z-index:1;max-width:var(--max-width);margin:0 auto;position:relative}.home-hero-badge{background:var(--color-accent-secondary);color:var(--color-accent);border:1px solid color-mix(in srgb, var(--color-accent) 30%, transparent);letter-spacing:.06em;text-transform:uppercase;box-shadow:0 0 0 4px color-mix(in srgb, var(--color-accent) 8%, transparent);border-radius:99px;align-items:center;gap:.5rem;margin-bottom:1.75rem;padding:.35rem 1.1rem;font-size:.8rem;font-weight:600;display:inline-flex}.home-hero-badge:before{content:"";background:var(--color-accent);border-radius:50%;width:6px;height:6px;animation:2s ease-in-out infinite pulse-dot}@keyframes badge-appear{0%{opacity:0;transform:translateY(-12px)scale(.9)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes pulse-dot{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(.7)}}.home-hero-heading{letter-spacing:-.04em;color:var(--color-text);margin:0 0 1.375rem;font-size:clamp(2.2rem,5.5vw,4rem);font-weight:800;line-height:1.1}.home-hero-accent{background:linear-gradient(135deg, var(--color-accent) 0%, #06b6d4 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}.home-hero-subheading{color:var(--color-text-muted);max-width:560px;margin:0 auto 2.75rem;font-size:1.15rem;line-height:1.75}.home-hero-actions{flex-wrap:wrap;justify-content:center;gap:1rem;display:flex}.btn--lg{border-radius:10px;padding:.8rem 2rem;font-size:1rem}.btn--sm{border-radius:6px;padding:.375rem .875rem;font-size:.8125rem}.home-features{background:var(--color-surface);border-top:1px solid var(--color-border);padding:5rem 1.5rem;position:relative}.home-features-label{text-align:center;letter-spacing:.1em;text-transform:uppercase;color:var(--color-accent);margin-bottom:.75rem;font-size:.8rem;font-weight:600}.home-features-heading{text-align:center;letter-spacing:-.03em;color:var(--color-text);margin:0 0 3rem;font-size:1.75rem;font-weight:800}.home-features-inner{max-width:var(--max-width);grid-template-columns:repeat(3,1fr);gap:1.5rem;margin:0 auto;display:grid}@media (width<=768px){.home-features-inner{grid-template-columns:1fr;max-width:480px}}.home-feature-card{background:var(--color-bg);border:1px solid var(--color-border);box-shadow:var(--shadow-sm);transition:border-color var(--duration-normal) var(--ease-smooth), box-shadow var(--duration-normal) var(--ease-smooth), transform var(--duration-normal) var(--ease-smooth);border-radius:16px;flex-direction:column;gap:.875rem;padding:2rem 1.75rem;display:flex;position:relative;overflow:hidden}.home-feature-card:before{content:"";background:var(--gradient-subtle);opacity:0;transition:opacity var(--duration-normal) var(--ease-smooth);position:absolute;inset:0}.home-feature-card:hover{border-color:color-mix(in srgb, var(--color-accent) 40%, var(--color-border));box-shadow:var(--shadow-lg), var(--shadow-accent);transform:translateY(-5px)}.home-feature-card:hover:before{opacity:1}.home-feature-icon{background:var(--gradient-primary);width:48px;height:48px;box-shadow:var(--shadow-accent);transition:transform var(--duration-normal) var(--ease-spring);border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.home-feature-card:hover .home-feature-icon{transform:scale(1.1)rotate(-3deg)}.home-feature-icon svg{color:#fff;width:22px;height:22px}.home-feature-title{color:var(--color-text);margin:0;font-size:1.075rem;font-weight:700;position:relative}.home-feature-desc{color:var(--color-text-muted);margin:0;font-size:.875rem;line-height:1.7;position:relative}.btn{font-size:.9375rem;font-weight:600;font-family:var(--font-sans);cursor:pointer;transition:transform var(--duration-fast) var(--ease-smooth), box-shadow var(--duration-fast) var(--ease-smooth), background var(--duration-fast) var(--ease-smooth), color var(--duration-fast) var(--ease-smooth);border:none;border-radius:8px;justify-content:center;align-items:center;gap:.4rem;padding:.625rem 1.375rem;text-decoration:none;display:inline-flex;position:relative;overflow:hidden}.btn:hover{text-decoration:none;transform:translateY(-1px)}.btn:active{transform:translateY(0)scale(.98)}.btn:disabled{opacity:.55;cursor:not-allowed;transform:none}.btn-primary{background:var(--gradient-primary);color:#fff;box-shadow:var(--shadow-accent)}.btn-primary:after{content:"";opacity:0;transition:opacity var(--duration-fast) var(--ease-smooth);background:linear-gradient(135deg,#ffffff26 0%,#0000 60%);position:absolute;inset:0}.btn-primary:hover{background:var(--gradient-primary-hover);box-shadow:var(--shadow-accent-lg);color:#fff}.btn-primary:hover:after{opacity:1}.btn-secondary{background:var(--color-accent-secondary);color:var(--color-accent);border:1px solid color-mix(in srgb, var(--color-accent) 20%, var(--color-border));box-shadow:var(--shadow-sm)}.btn-secondary:hover{background:color-mix(in srgb, var(--color-accent) 12%, var(--color-surface));border-color:color-mix(in srgb, var(--color-accent) 35%, var(--color-border));box-shadow:var(--shadow-md);color:var(--color-accent)}.placeholder-page{max-width:var(--max-width);width:100%;margin:0 auto;padding:4rem 1.5rem}.placeholder-page h1{font-size:1.5rem;font-weight:600}.auth-loading{min-height:100vh;color:var(--color-text-muted);justify-content:center;align-items:center;font-size:1rem;display:flex}.auth-page{min-height:calc(100vh - var(--nav-height));justify-content:center;align-items:center;padding:2rem 1rem;display:flex}.auth-card{background:var(--color-surface);border:1px solid var(--color-border);width:100%;max-width:420px;box-shadow:var(--shadow-xl);-webkit-backdrop-filter:blur(12px);animation:card-appear .5s var(--ease-spring) both;border-radius:20px;padding:2.75rem 2.25rem}@keyframes card-appear{0%{opacity:0;transform:translateY(24px)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}.auth-logo{flex-direction:column;align-items:center;gap:.5rem;margin-bottom:1.75rem;display:flex}.auth-logo-img{width:auto;height:80px}.auth-logo-name{letter-spacing:-.03em;background:linear-gradient(135deg,#3ab863 0%,#0d9488 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-size:1.5rem;font-weight:800}.auth-heading{text-align:center;margin-bottom:1.75rem;font-size:1.5rem;font-weight:700}.auth-form{flex-direction:column;gap:1.125rem;display:flex}.auth-field{flex-direction:column;gap:.375rem;display:flex}.auth-label{color:var(--color-text);font-size:.875rem;font-weight:500}.auth-label-optional{color:var(--color-text-muted);font-weight:400}.auth-input{border:1.5px solid var(--color-border);background:var(--color-bg);width:100%;color:var(--color-text);font-size:.9375rem;font-family:var(--font-sans);transition:border-color var(--duration-fast) var(--ease-smooth), box-shadow var(--duration-fast) var(--ease-smooth);border-radius:8px;padding:.625rem .875rem}.auth-input:hover:not(:focus):not(:disabled){border-color:color-mix(in srgb, var(--color-accent) 30%, var(--color-border))}.auth-input:focus{border-color:var(--color-accent);box-shadow:0 0 0 3px color-mix(in srgb, var(--color-accent) 18%, transparent);outline:none}.auth-input:disabled{opacity:.6;cursor:not-allowed}.auth-error{color:var(--color-danger);margin:0;font-size:.875rem}.auth-error-block{border:1px solid color-mix(in srgb, var(--color-danger) 18%, transparent);background:color-mix(in srgb, var(--color-danger) 7%, transparent);border-radius:8px;padding:.85rem 1rem}.auth-success{color:#166534;border:1px solid color-mix(in srgb, var(--color-success) 18%, transparent);background:color-mix(in srgb, var(--color-success) 10%, transparent);border-radius:8px;margin:0 0 1rem;padding:.85rem 1rem;font-size:.9rem;line-height:1.55}.auth-link-row{justify-content:flex-end;margin-top:-.375rem;display:flex}.auth-inline-link{font-size:.875rem}.auth-submit{width:100%;margin-top:.25rem}.auth-subtext{color:var(--color-text-muted);text-align:center;margin-bottom:1rem;font-size:.9rem}.auth-input--otp{letter-spacing:.5rem;text-align:center;font-family:monospace;font-size:1.5rem}.btn-link{color:var(--color-accent);cursor:pointer;font-size:inherit;background:0 0;border:none;padding:0;text-decoration:underline}.btn-link:disabled{opacity:.5;cursor:not-allowed}.auth-alt-link{text-align:center;color:var(--color-text-muted);margin-top:1.25rem;font-size:.875rem}.auth-actions-row{flex-direction:column;gap:.75rem;display:flex}.app-nav-right{gap:1rem}.nav-user{position:relative}.nav-user-trigger{color:var(--color-text);cursor:pointer;box-shadow:none;background:0 0;border:1px solid #0000;border-radius:14px;align-items:center;gap:.5rem;padding:.22rem .42rem .22rem .22rem;transition:border-color .18s,box-shadow .18s,transform .18s,background .18s;display:inline-flex}.nav-user-trigger:hover{border-color:color-mix(in srgb, var(--color-accent) 10%, var(--color-border));background:color-mix(in srgb, var(--color-surface) 72%, transparent);box-shadow:0 6px 18px #0f172a0d}.nav-user-trigger:focus-visible{border-color:var(--color-accent);outline:none;box-shadow:0 0 0 4px #4f46e524}.nav-user-trigger--open{border-color:color-mix(in srgb, var(--color-accent) 14%, var(--color-border));background:color-mix(in srgb, var(--color-surface) 84%, transparent);box-shadow:0 8px 22px #0f172a12}.nav-user-avatar-shell{background:color-mix(in srgb, var(--color-surface) 85%, var(--color-accent-secondary));border:1px solid color-mix(in srgb, var(--color-accent) 8%, var(--color-border));border-radius:11px;flex-shrink:0;justify-content:center;align-items:center;width:34px;height:34px;display:inline-flex}.nav-user-avatar{background:linear-gradient(135deg, var(--color-accent), #06b6d4);color:#fff;-webkit-user-select:none;user-select:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;font-size:.72rem;font-weight:700;display:inline-flex}.nav-user-avatar--panel{width:42px;height:42px;font-size:.95rem}.nav-user-name-row{align-items:center;gap:.28rem;min-width:0;display:inline-flex}.nav-user-name{color:var(--color-text);white-space:nowrap;text-overflow:ellipsis;max-width:142px;font-size:.84rem;font-weight:700;overflow:hidden}.nav-user-chevron{color:var(--color-text-muted);flex-shrink:0;font-size:.66rem;font-weight:700;transition:transform .18s,color .18s}.nav-user-trigger--open .nav-user-chevron{color:var(--color-accent);transform:rotate(180deg)}.nav-user-panel{border:1px solid color-mix(in srgb, var(--color-accent) 18%, var(--color-border));background:var(--color-surface);z-index:40;border-radius:16px;flex-direction:column;gap:.9rem;width:min(280px,100vw - 2rem);padding:1rem;display:flex;position:absolute;top:calc(100% + .7rem);right:0;box-shadow:0 18px 42px #0f172a24}.nav-user-panel:before{content:"";background:var(--color-surface);border-left:1px solid color-mix(in srgb, var(--color-accent) 18%, var(--color-border));border-top:1px solid color-mix(in srgb, var(--color-accent) 18%, var(--color-border));width:16px;height:16px;position:absolute;top:-8px;right:20px;transform:rotate(45deg)}.nav-user-panel-header{align-items:center;gap:.8rem;display:flex}.nav-user-panel-copy{flex-direction:column;gap:.18rem;min-width:0;display:flex}.nav-user-panel-name{color:var(--color-text);white-space:nowrap;text-overflow:ellipsis;font-size:.94rem;font-weight:700;overflow:hidden}.nav-user-panel-email{color:var(--color-text-muted);white-space:nowrap;text-overflow:ellipsis;font-size:.8rem;overflow:hidden}.nav-user-panel-role{color:var(--color-accent);font-size:.76rem;font-weight:600}.nav-user-panel-signout{justify-content:center;width:100%}.nav-user-panel-theme{border-top:1px solid var(--color-border);justify-content:space-between;align-items:center;gap:.5rem;padding:.5rem 0;display:flex}.nav-user-panel-theme-label{color:var(--color-text-muted);white-space:nowrap;font-size:.8rem}.nav-user-panel-theme-options{gap:.25rem;display:flex}.nav-theme-btn{border:1px solid var(--color-border);color:var(--color-text-muted);cursor:pointer;background:0 0;border-radius:6px;padding:.2rem .55rem;font-size:.75rem;font-weight:500;transition:background .12s,color .12s,border-color .12s}.nav-theme-btn:hover{background:var(--color-surface);color:var(--color-text)}.nav-theme-btn--active{background:var(--color-accent);border-color:var(--color-accent);color:#fff}.nav-theme-btn--active:hover{background:var(--color-accent-hover);border-color:var(--color-accent-hover);color:#fff}.nav-login-link{white-space:nowrap;font-size:.9rem}.admin-page{max-width:var(--max-width);width:100%;margin:0 auto;padding:2.5rem 1.5rem}.admin-page-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:2rem;display:flex}.admin-page-title{letter-spacing:-.025em;margin:0;font-size:1.625rem;font-weight:800}.kpi-tiles-row{flex-wrap:wrap;gap:1rem;margin-bottom:2.5rem;display:flex}.kpi-tile{background:var(--color-surface);border:1px solid var(--color-border);min-width:120px;box-shadow:var(--shadow-sm);transition:transform var(--duration-normal) var(--ease-smooth), box-shadow var(--duration-normal) var(--ease-smooth);border-radius:14px;flex-direction:column;flex:140px;gap:.5rem;padding:1.375rem 1.5rem;display:flex;position:relative;overflow:hidden}.kpi-tile:before{content:"";background:var(--gradient-primary);border-radius:14px 14px 0 0;height:3px;position:absolute;top:0;left:0;right:0}.kpi-tile:hover{box-shadow:var(--shadow-md), var(--shadow-accent);transform:translateY(-2px)}.kpi-tile--highlight{border-color:color-mix(in srgb, var(--color-danger) 40%, transparent);background:color-mix(in srgb, var(--color-danger) 6%, var(--color-surface))}.kpi-tile--highlight:before{background:linear-gradient(135deg, var(--color-danger), #f87171)}.kpi-tile--skeleton{min-height:90px}.kpi-tile--has-spark{padding-bottom:.75rem}.kpi-tile-header{justify-content:space-between;align-items:center;gap:.5rem;display:flex}.kpi-tile-label{text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted);font-size:.75rem;font-weight:600}.kpi-trend{white-space:nowrap;letter-spacing:.01em;border-radius:5px;flex-shrink:0;padding:.18rem .42rem;font-size:.68rem;font-weight:700}.kpi-trend--up{color:var(--color-success);background:color-mix(in srgb, var(--color-success) 13%, transparent)}.kpi-trend--down,.kpi-trend--danger-up{color:var(--color-danger);background:color-mix(in srgb, var(--color-danger) 13%, transparent)}.kpi-trend--good-down{color:var(--color-success);background:color-mix(in srgb, var(--color-success) 13%, transparent)}.kpi-tile-value{color:var(--color-text);letter-spacing:-.03em;font-size:2.25rem;font-weight:800;line-height:1}.kpi-tile--highlight .kpi-tile-value{color:var(--color-danger)}.kpi-sparkline{opacity:.9;width:100%;margin-top:.625rem;animation:.5s both spark-fadein;display:block}@keyframes spark-fadein{0%{opacity:0;transform-origin:bottom;transform:scaleY(.6)}to{opacity:.9;transform:scaleY(1)}}.skeleton-kpi-value{border-radius:4px;width:4rem;height:2rem;display:block}.dashboard-section{margin-bottom:2.5rem}.dashboard-section-title{margin-bottom:1rem;font-size:1.1rem;font-weight:600}.dashboard-section-loading{color:var(--color-text-muted);font-size:.9rem}.empty-state-inline{color:var(--color-text-muted);margin:0;font-size:.9rem}.dashboard-requests-list{border:1px solid var(--color-border);box-shadow:var(--shadow-sm);border-radius:12px;margin:0;padding:0;list-style:none;overflow:hidden}.dashboard-request-item+.dashboard-request-item{border-top:1px solid var(--color-border)}.dashboard-request-btn{text-align:left;cursor:pointer;width:100%;color:var(--color-text);transition:background var(--duration-fast) var(--ease-smooth);font-size:.9rem;font-family:var(--font-sans);background:0 0;border:none;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;padding:.9375rem 1.125rem;display:flex}.dashboard-request-btn:hover{background:color-mix(in srgb, var(--color-accent) 5%, var(--color-surface))}.dashboard-request-btn:hover .dashboard-request-title{color:var(--color-accent)}.dashboard-request-btn:focus-visible{outline:2px solid var(--color-accent);outline-offset:-2px}.dashboard-request-title{text-overflow:ellipsis;white-space:nowrap;min-width:0;transition:color var(--duration-fast) var(--ease-smooth);flex:auto;font-weight:500;overflow:hidden}.dashboard-request-meta{flex-wrap:wrap;flex-shrink:0;align-items:center;gap:.75rem;display:flex}.dashboard-request-client{color:var(--color-text-muted);font-family:monospace;font-size:.8rem}.dashboard-request-date{color:var(--color-text-muted);white-space:nowrap;font-size:.8rem}.alert{border-radius:6px;margin-bottom:1.5rem;padding:.875rem 1rem;font-size:.9rem}.alert-error{background:color-mix(in srgb, var(--color-danger) 12%, transparent);border:1px solid color-mix(in srgb, var(--color-danger) 30%, transparent);color:var(--color-danger)}.clients-table-wrap{border:1px solid var(--color-border);border-radius:8px;overflow-x:auto}.clients-table{border-collapse:collapse;width:100%;font-size:.9rem}.clients-table thead{background:var(--color-surface)}.clients-table th{text-align:left;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-muted);border-bottom:1px solid var(--color-border);white-space:nowrap;padding:.75rem 1rem;font-size:.8rem;font-weight:600}.clients-table td{border-bottom:1px solid var(--color-border);color:var(--color-text);vertical-align:middle;padding:.875rem 1rem}.clients-table tbody tr:last-child td{border-bottom:none}.clients-table-row{cursor:pointer;transition:background var(--duration-fast) var(--ease-smooth), box-shadow var(--duration-fast) var(--ease-smooth)}.clients-table-row:hover{background:color-mix(in srgb, var(--color-accent) 6%, var(--color-surface));box-shadow:inset 3px 0 0 var(--color-accent)}.clients-table-row:focus{outline:2px solid var(--color-accent);outline-offset:-2px}.clients-table-name{font-weight:600}.skeleton{background:linear-gradient(90deg, var(--color-border) 25%, color-mix(in srgb, var(--color-border) 60%, var(--color-surface)) 50%, var(--color-border) 75%);background-size:200% 100%;border-radius:4px;animation:1.6s ease-in-out infinite skeleton-shimmer;display:block}@keyframes skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.skeleton-text{width:80%;height:14px}.skeleton-badge{border-radius:999px;width:68px;height:22px}.skeleton-short{width:55%;height:14px}.skeleton-row td{padding:1rem}.empty-state{text-align:center;color:var(--color-text-muted);flex-direction:column;align-items:center;gap:.75rem;padding:4rem 1rem;display:flex}.empty-state p{max-width:320px;margin:0}.centered-state{text-align:center;color:var(--color-text-muted);padding:4rem 1rem}.status-badge{white-space:nowrap;text-transform:capitalize;letter-spacing:.02em;border-radius:999px;align-items:center;gap:.35rem;padding:.25rem .75rem .25rem .55rem;font-size:.75rem;font-weight:600;display:inline-flex}.status-badge:before{content:"";background:currentColor;border-radius:50%;flex-shrink:0;width:6px;height:6px}.status-badge--active{color:#15803d;background:#22c55e24}.status-badge--active:before{animation:2s ease-in-out infinite pulse-dot}.status-badge--past_due{color:#b45309;background:#f59e0b2e}.status-badge--suspended{color:#b91c1c;background:#ef44442e}.status-badge--canceled{color:#4b5563;background:#9ca3af2e}.status-badge--archived{color:#374151;background:#6b72802e}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .status-badge--active{color:#4ade80}:root:not([data-theme=light]) .status-badge--past_due{color:#fbbf24}:root:not([data-theme=light]) .status-badge--suspended{color:#f87171}:root:not([data-theme=light]) .status-badge--canceled{color:#d1d5db}:root:not([data-theme=light]) .status-badge--archived{color:#9ca3af}}:root[data-theme=dark] .status-badge--active{color:#4ade80}:root[data-theme=dark] .status-badge--past_due{color:#fbbf24}:root[data-theme=dark] .status-badge--suspended{color:#f87171}:root[data-theme=dark] .status-badge--canceled{color:#d1d5db}:root[data-theme=dark] .status-badge--archived{color:#9ca3af}.modal-overlay{-webkit-backdrop-filter:blur(6px);z-index:100;animation:overlay-appear .2s var(--ease-smooth) both;background:#0000008c;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}@keyframes overlay-appear{0%{opacity:0}to{opacity:1}}.modal{background:var(--color-bg);border:1px solid var(--color-border);width:100%;max-width:520px;max-height:calc(100vh - 2rem);box-shadow:var(--shadow-xl);animation:modal-appear .3s var(--ease-spring) both;border-radius:18px;overflow-y:auto}@keyframes modal-appear{0%{opacity:0;transform:translateY(20px)scale(.96)}to{opacity:1;transform:translateY(0)scale(1)}}.modal-header{justify-content:space-between;align-items:center;padding:1.25rem 1.5rem 0;display:flex}.modal-title{margin:0;font-size:1.125rem;font-weight:700}.modal-close{cursor:pointer;color:var(--color-text-muted);background:0 0;border:none;border-radius:4px;padding:.25rem;font-size:1.5rem;line-height:1;transition:color .12s}.modal-close:hover{color:var(--color-text)}.modal-form{flex-direction:column;gap:1rem;padding:1.25rem 1.5rem 1.5rem;display:flex}.modal-actions{justify-content:flex-end;gap:.75rem;margin-top:.5rem;display:flex}.form-field{flex-direction:column;gap:.35rem;display:flex}.form-label{color:var(--color-text);font-size:.875rem;font-weight:500}.form-required{color:var(--color-danger);margin-left:2px}.form-optional{color:var(--color-text-muted);font-size:.8rem;font-weight:400}.form-field-error{color:var(--color-danger);margin:0;font-size:.8125rem}.form-api-error{color:var(--color-danger);background:color-mix(in srgb, var(--color-danger) 10%, transparent);border:1px solid color-mix(in srgb, var(--color-danger) 25%, transparent);border-radius:6px;margin:0;padding:.625rem .875rem;font-size:.875rem}.form-textarea{resize:vertical;min-height:72px}.input-error{border-color:var(--color-danger)!important}.input-error:focus{box-shadow:0 0 0 3px color-mix(in srgb, var(--color-danger) 18%, transparent)!important}.back-link{color:var(--color-text-muted);align-items:center;margin-bottom:1.5rem;font-size:.875rem;text-decoration:none;transition:color .12s;display:inline-flex}.back-link:hover{color:var(--color-text);text-decoration:none}.detail-card{background:var(--color-surface);border:1px solid var(--color-border);box-shadow:var(--shadow-sm);transition:box-shadow var(--duration-normal) var(--ease-smooth);border-radius:16px;margin-bottom:1.5rem;padding:1.875rem 2.125rem}.detail-card:hover{box-shadow:var(--shadow-md)}.detail-card-header{flex-wrap:wrap;align-items:center;gap:1rem;margin-bottom:1.5rem;display:flex}.detail-card-title{margin:0;font-size:1.375rem;font-weight:700}.detail-list{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem 2rem;margin:0;display:grid}.detail-row{flex-direction:column;gap:.2rem;display:flex}.detail-label{text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted);font-size:.75rem;font-weight:600}.detail-value{color:var(--color-text);word-break:break-all;font-size:.9375rem}.detail-empty{color:var(--color-text-muted)}.detail-placeholder-section{background:var(--color-surface);border:1px dashed var(--color-border);border-radius:8px;margin-bottom:1rem;padding:1.5rem}.detail-placeholder-title{margin-bottom:.25rem;font-size:1rem;font-weight:600}.detail-placeholder-note{color:var(--color-text-muted);margin:0;font-size:.875rem}.detail-section{background:var(--color-surface);border:1px solid var(--color-border);border-radius:8px;margin-bottom:1rem;padding:1.5rem}.detail-section-title{margin-bottom:1rem;font-size:1rem;font-weight:600}.selector-form{flex-direction:column;gap:.75rem;max-width:320px;display:flex}.selector-select{border:1px solid var(--color-border);background:var(--color-bg);width:100%;color:var(--color-text);font-size:.9375rem;font-family:var(--font-sans);cursor:pointer;border-radius:6px;padding:.5rem .75rem;transition:border-color .15s}.selector-select:focus{border-color:var(--color-accent);box-shadow:0 0 0 3px color-mix(in srgb, var(--color-accent) 18%, transparent);outline:none}.selector-select:disabled{opacity:.6;cursor:not-allowed}.selector-save-btn{align-self:flex-start}.selector-loading{color:var(--color-text-muted);margin:0;font-size:.875rem}.selector-error{color:var(--color-danger);margin:0;font-size:.8125rem}.toast-container{z-index:999;flex-direction:column;gap:.5rem;max-width:calc(100vw - 3rem);display:flex;position:fixed;bottom:1.5rem;right:1.5rem}.toast{background:color-mix(in srgb, var(--color-text) 96%, var(--color-bg));color:var(--color-bg);box-shadow:var(--shadow-xl);-webkit-backdrop-filter:blur(16px);border:1px solid #ffffff14;border-radius:12px;align-items:center;gap:.75rem;min-width:280px;padding:.875rem 1.125rem;font-size:.9rem;font-weight:500;display:flex}@keyframes toast-in{0%{opacity:0;transform:translate(20px)scale(.95)}to{opacity:1;transform:translate(0)scale(1)}}.toast-dismiss{color:inherit;cursor:pointer;opacity:.6;transition:opacity var(--duration-fast) var(--ease-smooth), background var(--duration-fast) var(--ease-smooth);background:0 0;border:none;border-radius:4px;flex-shrink:0;margin-left:auto;padding:.125rem;font-size:1.125rem;line-height:1}.toast-dismiss:hover{opacity:1;background:#ffffff1f}.billing-panel{flex-direction:column;gap:1rem;display:flex}.billing-notice{border-radius:6px;padding:.75rem 1rem;font-size:.875rem;font-weight:500}.billing-notice--success{background:color-mix(in srgb, var(--color-success) 14%, transparent);border:1px solid color-mix(in srgb, var(--color-success) 30%, transparent);color:#15803d}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .billing-notice--success{color:#4ade80}}:root[data-theme=dark] .billing-notice--success{color:#4ade80}.billing-empty-text{color:var(--color-text-muted);margin:0;font-size:.9375rem}.billing-hint{color:var(--color-text-muted);margin:0;font-size:.8125rem}.billing-summary-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:.875rem 2rem;margin:0;padding:0;display:grid}.billing-summary-row{flex-direction:column;gap:.2rem;display:flex}.billing-summary-label{text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted);font-size:.75rem;font-weight:600}.billing-summary-value{color:var(--color-text);word-break:break-all;font-size:.9375rem}.billing-button-group{flex-wrap:wrap;gap:.75rem;display:flex}.billing-status-badge{white-space:nowrap;text-transform:capitalize;letter-spacing:.02em;border-radius:999px;padding:.25rem .65rem;font-size:.75rem;font-weight:600;display:inline-block}.billing-status-badge--active{color:#15803d;background:#22c55e2e}.billing-status-badge--past_due{color:#b45309;background:#f59e0b2e}.billing-status-badge--canceled{color:#4b5563;background:#9ca3af2e}.billing-status-badge--unpaid{color:#b91c1c;background:#ef44442e}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .billing-status-badge--active{color:#4ade80}:root:not([data-theme=light]) .billing-status-badge--past_due{color:#fbbf24}:root:not([data-theme=light]) .billing-status-badge--canceled{color:#d1d5db}:root:not([data-theme=light]) .billing-status-badge--unpaid{color:#f87171}}:root[data-theme=dark] .billing-status-badge--active{color:#4ade80}:root[data-theme=dark] .billing-status-badge--past_due{color:#fbbf24}:root[data-theme=dark] .billing-status-badge--canceled{color:#d1d5db}:root[data-theme=dark] .billing-status-badge--unpaid{color:#f87171}.billing-history-section{margin-top:.5rem}.billing-history-heading{color:var(--color-text);margin-bottom:.875rem;font-size:.9375rem;font-weight:600}.billing-events-table-wrap{border:1px solid var(--color-border);border-radius:8px;overflow-x:auto}.billing-events-table{border-collapse:collapse;width:100%;font-size:.875rem}.billing-events-table thead{background:var(--color-surface)}.billing-events-table th{text-align:left;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-muted);border-bottom:1px solid var(--color-border);white-space:nowrap;padding:.625rem 1rem;font-size:.75rem;font-weight:600}.billing-events-table td{border-bottom:1px solid var(--color-border);color:var(--color-text);vertical-align:middle;padding:.75rem 1rem}.billing-events-table tbody tr:last-child td{border-bottom:none}.billing-events-date{white-space:nowrap;color:var(--color-text-muted);font-size:.8125rem}.billing-event-type-tag{background:var(--color-accent-secondary);color:var(--color-accent);border:1px solid var(--color-border);white-space:nowrap;border-radius:4px;padding:.2rem .55rem;font-family:ui-monospace,Cascadia Code,Fira Code,monospace;font-size:.75rem;font-weight:500;display:inline-block}.billing-events-empty{color:var(--color-text-muted);margin:0;font-size:.875rem}.app-billing-list{flex-direction:column;gap:1rem;display:flex}.app-billing-card{border:1px solid var(--color-border);background:var(--color-surface);border-radius:8px;padding:1rem 1.25rem}.app-billing-card-header{justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:.75rem;display:flex}.app-billing-card-name{color:var(--color-text);font-size:.9375rem;font-weight:600}.app-billing-req-status{white-space:nowrap;background:var(--color-accent-secondary);color:var(--color-text-muted);border:1px solid var(--color-border);border-radius:999px;padding:.2rem .6rem;font-size:.75rem;font-weight:500}.app-billing-req-status--completed,.app-billing-req-status--active{color:#065f46;background:#d1fae5;border-color:#6ee7b7}.app-billing-req-status--approved_pending_payment,.app-billing-req-status--queued,.app-billing-req-status--in_progress,.app-billing-req-status--needs_admin_setup{color:#92400e;background:#fef3c7;border-color:#fcd34d}.app-billing-req-status--failed,.app-billing-req-status--rejected,.app-billing-req-status--payment_expired{color:#991b1b;background:#fee2e2;border-color:#fca5a5}.app-billing-details{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:.5rem 1.5rem;margin:0 0 .75rem;display:grid}.app-billing-detail-row{flex-direction:column;gap:.15rem;display:flex}.app-billing-detail-row dt{text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-muted);font-size:.72rem;font-weight:600}.app-billing-detail-row dd{color:var(--color-text);margin:0;font-size:.875rem}.app-billing-events{border-top:1px solid var(--color-border);margin-top:.25rem;padding-top:.625rem}.app-billing-events-toggle{color:var(--color-accent);cursor:pointer;background:0 0;border:none;margin-bottom:.5rem;padding:0;font-size:.8125rem;text-decoration:underline}.app-billing-events-toggle:hover{color:var(--color-accent-hover,var(--color-accent))}.app-billing-events .billing-events-table{margin-top:.25rem}.email-log-table-wrap{border:1px solid var(--color-border);border-radius:8px;overflow-x:auto}.email-log-table{border-collapse:collapse;width:100%;font-size:.875rem}.email-log-table thead{background:var(--color-surface)}.email-log-table th{text-align:left;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-muted);border-bottom:1px solid var(--color-border);white-space:nowrap;padding:.625rem 1rem;font-size:.75rem;font-weight:600}.email-log-table td{border-bottom:1px solid var(--color-border);color:var(--color-text);vertical-align:middle;padding:.75rem 1rem}.email-log-table tbody tr:last-child td{border-bottom:none}.email-log-date{white-space:nowrap;color:var(--color-text-muted);font-size:.8125rem}.email-log-to{color:var(--color-text-muted);word-break:break-all;font-size:.875rem}.email-log-status-badge{white-space:nowrap;text-transform:capitalize;letter-spacing:.02em;border-radius:999px;padding:.2rem .6rem;font-size:.75rem;font-weight:600;display:inline-block}.email-log-status-badge--sent{color:#15803d;background:#22c55e2e}.email-log-status-badge--failed{color:#b91c1c;background:#ef44442e}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .email-log-status-badge--sent{color:#4ade80}:root:not([data-theme=light]) .email-log-status-badge--failed{color:#f87171}}:root[data-theme=dark] .email-log-status-badge--sent{color:#4ade80}:root[data-theme=dark] .email-log-status-badge--failed{color:#f87171}.email-log-empty{color:var(--color-text-muted);margin:0;font-size:.875rem}.deployment-panel{flex-direction:column;gap:1.25rem;display:flex}.deployment-id-row{flex-wrap:wrap;align-items:flex-end;gap:.75rem;display:flex}.deployment-id-field{flex:1;min-width:200px;max-width:420px}.deployment-save-btn{flex-shrink:0;align-self:flex-end}.deployment-status-section{flex-direction:column;gap:1rem;display:flex}.deployment-empty{color:var(--color-text-muted);margin:0;font-size:.9375rem}.deployment-info{flex-direction:column;gap:1rem;display:flex}.deployment-info-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:.875rem 2rem;margin:0;padding:0;display:grid}.deployment-info-row{flex-direction:column;gap:.2rem;display:flex}.deployment-info-label{text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted);font-size:.75rem;font-weight:600}.deployment-info-value{color:var(--color-text);word-break:break-all;font-size:.9375rem}.deployment-url-link{word-break:break-all;font-size:.9rem}.deployment-status-badge{white-space:nowrap;text-transform:capitalize;letter-spacing:.02em;border-radius:999px;padding:.25rem .65rem;font-size:.75rem;font-weight:600;display:inline-block}.deployment-status-badge--ready{color:#15803d;background:#22c55e2e}.deployment-status-badge--paused{color:#b45309;background:#f59e0b2e}.deployment-status-badge--error{color:#b91c1c;background:#ef44442e}.deployment-status-badge--unknown{color:#4b5563;background:#9ca3af2e}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .deployment-status-badge--ready{color:#4ade80}:root:not([data-theme=light]) .deployment-status-badge--paused{color:#fbbf24}:root:not([data-theme=light]) .deployment-status-badge--error{color:#f87171}:root:not([data-theme=light]) .deployment-status-badge--unknown{color:#d1d5db}}:root[data-theme=dark] .deployment-status-badge--ready{color:#4ade80}:root[data-theme=dark] .deployment-status-badge--paused{color:#fbbf24}:root[data-theme=dark] .deployment-status-badge--error{color:#f87171}:root[data-theme=dark] .deployment-status-badge--unknown{color:#d1d5db}.deployment-actions{flex-direction:column;gap:.75rem;display:flex}.deployment-confirm-row{flex-direction:column;gap:.625rem;display:flex}.deployment-confirm-message{color:var(--color-text);margin:0;font-size:.9rem}.deployment-confirm-buttons{flex-wrap:wrap;gap:.75rem;display:flex}.deployment-action-error{margin-top:.25rem}.deployment-history{border-top:1px solid var(--border);margin-top:1.5rem;padding-top:1.25rem}.deployment-history-header{justify-content:space-between;align-items:center;margin-bottom:.75rem;display:flex}.deployment-history-title{text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary);margin:0;font-size:.875rem;font-weight:600}.deployment-history-table{border-collapse:collapse;width:100%;font-size:.875rem}.deployment-history-table th{text-align:left;text-transform:uppercase;letter-spacing:.04em;color:var(--text-secondary);border-bottom:1px solid var(--border);padding:0 .5rem .5rem;font-size:.75rem;font-weight:600}.deployment-history-table td{border-bottom:1px solid color-mix(in srgb, var(--border) 50%, transparent);vertical-align:middle;padding:.5rem}.deployment-history-table tr:last-child td{border-bottom:none}.deployment-live-badge{color:#15803d;background:#22c55e2e;border-radius:9999px;padding:.2rem .55rem;font-size:.72rem;font-weight:600;display:inline-block}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .deployment-live-badge{color:#4ade80}}:root[data-theme=dark] .deployment-live-badge{color:#4ade80}.deployment-history-confirm{align-items:center;gap:.4rem;display:inline-flex}.btn-sm{padding:.25rem .6rem;font-size:.8125rem}.lifecycle-actions{flex-direction:column;gap:1rem;display:flex}.lifecycle-past-due-banner{background:#f59e0b1f;border:1px solid #f59e0b59;border-radius:6px;flex-direction:column;gap:.25rem;padding:.75rem 1rem;display:flex}.lifecycle-past-due-date{color:#b45309;margin:0;font-size:.9rem}.lifecycle-countdown{color:#b45309;margin:0;font-size:.8125rem;font-weight:500}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .lifecycle-past-due-date,:root:not([data-theme=light]) .lifecycle-countdown{color:#fbbf24}}:root[data-theme=dark] .lifecycle-past-due-date,:root[data-theme=dark] .lifecycle-countdown{color:#fbbf24}.lifecycle-button-row{flex-wrap:wrap;gap:.75rem;display:flex}.lifecycle-confirm-row{flex-direction:column;gap:.625rem;display:flex}.lifecycle-confirm-message{color:var(--color-text);margin:0;font-size:.9rem}.lifecycle-confirm-buttons{flex-wrap:wrap;gap:.75rem;display:flex}.lifecycle-action-error{margin-top:.25rem}.lifecycle-no-actions{color:var(--color-text-muted);margin:0;font-size:.875rem}.portal-page{max-width:var(--max-width);width:100%;margin:0 auto;padding:2.5rem 2rem}.portal-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:2rem;display:flex}.portal-heading{margin:0;font-size:1.5rem;font-weight:700}.portal-section{background:var(--color-surface);border:1px solid var(--color-border);border-radius:8px;margin-bottom:1rem;padding:1.5rem}.portal-section-title{margin-bottom:1rem;font-size:1rem;font-weight:600}.portal-plan-card{flex-direction:column;gap:.25rem;display:flex}.portal-plan-name{color:var(--color-text);margin:0;font-size:1.125rem;font-weight:600}.portal-plan-price{color:var(--color-text-muted);margin:0;font-size:.9375rem}.portal-standing-card{flex-direction:column;gap:.625rem;display:flex}.portal-standing-explanation{color:var(--color-text-muted);margin:0;font-size:.9375rem}.portal-period-text{color:var(--color-text);margin:0;font-size:.9375rem}.portal-empty-text{color:var(--color-text-muted);margin:0;font-size:.9375rem}.portal-activity-list{flex-direction:column;gap:.625rem;margin:0;padding:0;list-style:none;display:flex}.portal-activity-item{border-bottom:1px solid var(--color-border);align-items:center;gap:1rem;padding:.5rem 0;font-size:.9rem;display:flex}.portal-activity-item:last-child{border-bottom:none}.portal-activity-date{color:var(--color-text-muted);white-space:nowrap;min-width:90px;font-size:.8125rem}.portal-activity-label{color:var(--color-text)}.portal-billing-error{color:var(--color-danger);margin:0 0 .75rem;font-size:.875rem}.portal-billing-hint{color:var(--color-text-muted);margin:.5rem 0 0;font-size:.8125rem}.link-user-panel{flex-direction:column;gap:.875rem;display:flex}.link-user-current{color:var(--color-text);margin:0;font-size:.9rem}.link-user-current-label{color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.04em;font-size:.8125rem;font-weight:600}.link-user-current-value{word-break:break-all;font-size:.9rem}.link-user-form{flex-direction:column;gap:.75rem;max-width:420px;display:flex}.btn-danger{color:#fff;background:linear-gradient(135deg,#ef4444,#dc2626);border:none;box-shadow:0 4px 14px #ef44444d}.btn-danger:hover:not(:disabled){color:#fff;background:linear-gradient(135deg,#dc2626,#b91c1c);box-shadow:0 6px 20px #ef444466}.btn-danger:disabled{opacity:.55;cursor:not-allowed;transform:none}.request-type-badge{white-space:nowrap;letter-spacing:.02em;border:1px solid #0000;border-radius:999px;padding:.25rem .65rem;font-size:.75rem;font-weight:600;display:inline-block}.request-type-badge--bug{background:color-mix(in srgb, #ef4444 10%, var(--color-surface));border-color:color-mix(in srgb, #ef4444 22%, var(--color-border));color:#b91c1c}.request-type-badge--feature{background:color-mix(in srgb, #3b82f6 10%, var(--color-surface));border-color:color-mix(in srgb, #3b82f6 22%, var(--color-border));color:#1d4ed8}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .request-type-badge--bug{border-color:color-mix(in srgb, #ef4444 28%, var(--color-border));color:#fca5a5;background:#ef44442e}:root:not([data-theme=light]) .request-type-badge--feature{border-color:color-mix(in srgb, #3b82f6 28%, var(--color-border));color:#93c5fd;background:#3b82f62e}}:root[data-theme=dark] .request-type-badge--bug{border-color:color-mix(in srgb, #ef4444 28%, var(--color-border));color:#fca5a5;background:#ef44442e}:root[data-theme=dark] .request-type-badge--feature{border-color:color-mix(in srgb, #3b82f6 28%, var(--color-border));color:#93c5fd;background:#3b82f62e}.request-status-badge{white-space:nowrap;text-transform:capitalize;letter-spacing:.02em;border-radius:999px;padding:.25rem .65rem;font-size:.75rem;font-weight:600;display:inline-block}.request-status-badge--open{color:#4b5563;background:#9ca3af2e}.request-status-badge--in_review{color:#1d4ed8;background:#3b82f624}.request-status-badge--planned{color:#0f766e;background:#0d948824}.request-status-badge--in_progress{color:#b45309;background:#f59e0b24}.request-status-badge--completed{color:#15803d;background:#22c55e24}.request-status-badge--closed{color:#374151;background:#6b728024}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .request-status-badge--open{color:#d1d5db}:root:not([data-theme=light]) .request-status-badge--in_review{color:#93c5fd}:root:not([data-theme=light]) .request-status-badge--planned{color:#c4b5fd}:root:not([data-theme=light]) .request-status-badge--in_progress{color:#fbbf24}:root:not([data-theme=light]) .request-status-badge--completed{color:#4ade80}:root:not([data-theme=light]) .request-status-badge--closed{color:#9ca3af}}:root[data-theme=dark] .request-status-badge--open{color:#d1d5db}:root[data-theme=dark] .request-status-badge--in_review{color:#93c5fd}:root[data-theme=dark] .request-status-badge--planned{color:#c4b5fd}:root[data-theme=dark] .request-status-badge--in_progress{color:#fbbf24}:root[data-theme=dark] .request-status-badge--completed{color:#4ade80}:root[data-theme=dark] .request-status-badge--closed{color:#9ca3af}.requests-table-date{white-space:nowrap;color:var(--color-text-muted);font-size:.8125rem}.requests-table-client-id{color:var(--color-text-muted);word-break:break-all;font-family:ui-monospace,Cascadia Code,Fira Code,monospace;font-size:.8125rem}.requests-filter-row{flex-wrap:wrap;align-items:flex-end;gap:1rem;margin-bottom:1.5rem;display:flex}.requests-filter-field{flex-direction:column;gap:.35rem;display:flex}.requests-filter-select{max-width:200px}.requests-filter-input{max-width:260px}.portal-requests-section{flex-direction:column;gap:.75rem;display:flex}.portal-requests-link{align-self:flex-start;margin-top:.25rem}.portal-hero{background:linear-gradient(135deg, var(--color-accent-secondary) 0%, var(--color-bg) 100%);border:1px solid color-mix(in srgb, var(--color-accent) 20%, var(--color-border));box-shadow:var(--shadow-lg);border-radius:20px;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.5rem;padding:2.5rem;display:flex;position:relative;overflow:hidden}.portal-hero:after{content:"";background:radial-gradient(circle, color-mix(in srgb, var(--color-accent) 18%, transparent) 0%, transparent 70%);pointer-events:none;width:200px;height:200px;position:absolute;top:-40px;right:-40px}.portal-hero-text{flex-direction:column;gap:.35rem;display:flex}.portal-hero-heading{letter-spacing:-.025em;color:var(--color-text);margin:0;font-size:2rem;font-weight:800}.portal-hero-sub{color:var(--color-text-muted);margin:0;font-size:.9375rem}.portal-quick-actions{grid-template-columns:repeat(2,1fr);gap:1rem;margin-bottom:1.25rem;display:grid}@media (width<=480px){.portal-quick-actions{grid-template-columns:1fr}}.portal-action-tile{background:var(--color-surface);border:1px solid var(--color-border);transition:border-color var(--duration-normal) var(--ease-smooth), box-shadow var(--duration-normal) var(--ease-smooth), transform var(--duration-normal) var(--ease-smooth);cursor:pointer;min-height:100%;box-shadow:var(--shadow-sm);border-radius:16px;flex-direction:row;align-items:center;gap:1rem;padding:1.5rem 1.625rem;text-decoration:none;display:flex}.portal-action-tile:hover{border-color:color-mix(in srgb, var(--color-accent) 50%, var(--color-border));box-shadow:var(--shadow-md), var(--shadow-accent);text-decoration:none;transform:translateY(-3px)}.portal-action-tile-body{flex-direction:column;flex:1;gap:.2rem;min-width:0;display:flex}.portal-action-tile-title{color:var(--color-text);font-size:.9375rem;font-weight:600}.portal-action-tile-desc{color:var(--color-text-muted);font-size:.8125rem;line-height:1.4}.portal-action-tile-arrow{color:var(--color-text-muted);flex-shrink:0;font-size:1.25rem;transition:transform .18s,color .18s}.portal-action-tile:hover .portal-action-tile-arrow{color:var(--color-accent);transform:translate(3px)}.portal-action-spotlight{background:linear-gradient(135deg, color-mix(in srgb, var(--color-accent) 7%, var(--color-surface)) 0%, color-mix(in srgb, var(--color-accent-secondary) 50%, var(--color-surface)) 55%, var(--color-surface) 100%);border:1px solid color-mix(in srgb, var(--color-accent) 16%, var(--color-border));border-radius:16px;flex-direction:column;grid-column:1/-1;gap:1rem;padding:1.35rem 1.45rem;text-decoration:none;transition:border-color .18s,box-shadow .18s,transform .18s;display:flex;position:relative;overflow:hidden}.portal-action-spotlight:after{content:"";background:radial-gradient(circle,#4f46e514 0%,#4f46e500 72%);border-radius:50%;width:180px;height:180px;position:absolute;top:-70px;right:-40px}.portal-action-spotlight:hover{border-color:color-mix(in srgb, var(--color-accent) 26%, var(--color-border));text-decoration:none;transform:translateY(-2px);box-shadow:0 10px 24px #0f172a12}.portal-action-spotlight-copy,.portal-action-spotlight-footer{z-index:1;position:relative}.portal-action-spotlight-copy{flex-direction:column;gap:.45rem;display:flex}.portal-action-spotlight-title{color:var(--color-text);font-size:1.08rem;font-weight:800}.portal-action-spotlight-desc{max-width:46rem;color:var(--color-text-muted);font-size:.9rem;line-height:1.55}.portal-action-spotlight-footer{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.875rem;display:flex}.portal-action-spotlight-tags{flex-wrap:wrap;gap:.5rem;display:flex}.portal-action-spotlight-chip{border:1px solid color-mix(in srgb, var(--color-accent) 14%, var(--color-border));background:color-mix(in srgb, var(--color-accent-secondary) 82%, var(--color-surface));color:var(--color-text);border-radius:999px;justify-content:center;align-items:center;padding:.35rem .72rem;font-size:.76rem;font-weight:600;display:inline-flex}.portal-action-spotlight-chip--bug{background:color-mix(in srgb, #ef4444 10%, var(--color-surface));border-color:color-mix(in srgb, #ef4444 22%, var(--color-border));color:#b91c1c}.portal-action-spotlight-chip--feature{background:color-mix(in srgb, #3b82f6 10%, var(--color-surface));border-color:color-mix(in srgb, #3b82f6 22%, var(--color-border));color:#1d4ed8}.portal-action-spotlight-cta{color:color-mix(in srgb, var(--color-accent) 82%, var(--color-text));align-items:center;gap:.45rem;font-size:.9rem;font-weight:700;display:inline-flex}@media (width<=640px){.portal-action-spotlight{padding:1.2rem 1.1rem}.portal-action-spotlight-footer{flex-direction:column;align-items:flex-start}}.portal-status-strip{grid-template-columns:repeat(3,1fr);gap:.875rem;margin-bottom:1.25rem;display:grid}@media (width<=600px){.portal-status-strip{grid-template-columns:1fr}}.portal-status-tile{background:var(--color-surface);border:1px solid var(--color-border);border-radius:12px;flex-direction:column;gap:.4rem;padding:1.25rem 1.375rem;transition:box-shadow .18s,transform .18s;display:flex;position:relative;overflow:hidden}.portal-status-tile:before{content:"";background:linear-gradient(90deg, var(--color-accent), #06b6d4);border-radius:12px 12px 0 0;height:3px;position:absolute;top:0;left:0;right:0}.portal-status-tile:hover{transform:translateY(-1px);box-shadow:0 4px 16px #4f46e514}.portal-status-tile-label{text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-muted);margin-bottom:.1rem;font-size:.7rem;font-weight:600}.portal-status-tile-value{color:var(--color-text);font-size:.9375rem;font-weight:600}.portal-status-tile-value--muted{color:var(--color-text-muted);font-weight:400}.portal-status-tile-sub{color:var(--color-text-muted);margin-top:.1rem;font-size:.8rem}.portal-status-tile-sub--action{flex-direction:column;gap:.4rem;margin-top:.35rem;display:flex}.portal-billing-link{color:var(--color-accent);cursor:pointer;text-align:left;background:0 0;border:none;padding:0;font-size:.8125rem;font-weight:500}.portal-billing-link:hover{text-decoration:underline}.portal-billing-link:disabled{color:var(--color-text-muted);cursor:default}.portal-billing-link:disabled:hover{text-decoration:none}.portal-billing-error-inline{color:var(--color-danger);font-size:.8rem}.portal-billing-note{color:var(--color-text-muted);font-size:.78rem}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .portal-hero{background:radial-gradient(circle at top right, #6366f12e 0%, #6366f100 36%), linear-gradient(140deg, color-mix(in srgb, var(--color-accent-secondary) 86%, var(--color-bg)) 0%, color-mix(in srgb, #0d9488 22%, var(--color-bg)) 56%, color-mix(in srgb, #7c2d12 16%, var(--color-bg)) 100%);box-shadow:0 24px 40px #00000047}:root:not([data-theme=light]) .portal-section,:root:not([data-theme=light]) .portal-action-tile,:root:not([data-theme=light]) .portal-action-spotlight,:root:not([data-theme=light]) .portal-status-tile{box-shadow:0 16px 30px #00000038}:root:not([data-theme=light]) .portal-hero-kicker,:root:not([data-theme=light]) .portal-action-tile-eyebrow,:root:not([data-theme=light]) .portal-action-spotlight-label,:root:not([data-theme=light]) .portal-action-spotlight-cta,:root:not([data-theme=light]) .portal-action-spotlight-chip{box-shadow:none}:root:not([data-theme=light]) .portal-action-spotlight-chip--bug{border-color:color-mix(in srgb, #ef4444 42%, var(--color-border));color:#fca5a5;background:#7f1d1d94}:root:not([data-theme=light]) .portal-action-spotlight-chip--feature{border-color:color-mix(in srgb, #2563eb 40%, var(--color-border));color:#93c5fd;background:#1e3a8a8f}}:root[data-theme=dark] .portal-hero{background:radial-gradient(circle at top right, #6366f12e 0%, #6366f100 36%), linear-gradient(140deg, color-mix(in srgb, var(--color-accent-secondary) 86%, var(--color-bg)) 0%, color-mix(in srgb, #0d9488 22%, var(--color-bg)) 56%, color-mix(in srgb, #7c2d12 16%, var(--color-bg)) 100%);box-shadow:0 24px 40px #00000047}:root[data-theme=dark] .portal-section,:root[data-theme=dark] .portal-action-tile,:root[data-theme=dark] .portal-action-spotlight,:root[data-theme=dark] .portal-status-tile{box-shadow:0 16px 30px #00000038}:root[data-theme=dark] .portal-hero-kicker,:root[data-theme=dark] .portal-action-tile-eyebrow,:root[data-theme=dark] .portal-action-spotlight-label,:root[data-theme=dark] .portal-action-spotlight-cta,:root[data-theme=dark] .portal-action-spotlight-chip{box-shadow:none}:root[data-theme=dark] .portal-action-spotlight-chip--bug{border-color:color-mix(in srgb, #ef4444 42%, var(--color-border));color:#fca5a5;background:#7f1d1d94}:root[data-theme=dark] .portal-action-spotlight-chip--feature{border-color:color-mix(in srgb, #2563eb 40%, var(--color-border));color:#93c5fd;background:#1e3a8a8f}.job-activity-list{flex-direction:column;gap:.625rem;display:flex}.job-activity-card{background:var(--color-surface);border:1px solid var(--color-border);cursor:pointer;border-radius:8px;align-items:center;gap:1rem;padding:1rem 1.25rem;transition:border-color .12s,box-shadow .12s;display:flex}.job-activity-card:hover{border-color:var(--color-accent);box-shadow:0 2px 8px #4f46e50f}.job-activity-card:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.job-activity-card--skeleton{pointer-events:none;min-height:64px}.job-activity-dot{border-radius:50%;flex-shrink:0;width:10px;height:10px}.job-activity-dot--queued{background:#9ca3af}.job-activity-dot--running{background:#3b82f6;animation:1.6s ease-in-out infinite job-dot-pulse}.job-activity-dot--completed{background:#22c55e}.job-activity-dot--failed{background:#ef4444}@keyframes job-dot-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.45;transform:scale(1.4)}}.job-activity-body{flex-direction:column;flex:1;gap:.2rem;min-width:0;display:flex}.job-activity-title{color:var(--color-text);white-space:nowrap;text-overflow:ellipsis;font-size:.9375rem;font-weight:500;overflow:hidden}.job-activity-meta{color:var(--color-text-muted);font-size:.8125rem}.job-activity-arrow{color:var(--color-text-muted);flex-shrink:0;font-size:1.25rem;line-height:1}.job-detail-instructions{border-top:1px solid var(--color-border);margin-top:1.25rem;padding-top:1.25rem}.job-detail-instructions-text{color:var(--color-text);white-space:pre-wrap;max-height:220px;margin:.4rem 0 0;font-size:.875rem;line-height:1.65;overflow-y:auto}.clients-table-row--clickable:hover td{background:var(--color-accent-secondary)}.clients-table-row--clickable:focus-visible{outline:2px solid var(--color-accent);outline-offset:-2px}.request-detail-description{margin-bottom:1.25rem}.request-detail-body{color:var(--color-text);white-space:pre-wrap;word-break:break-word;margin:.35rem 0 0;font-size:.9375rem}.request-detail-meta{color:var(--color-text-muted);align-items:center;gap:.5rem;font-size:.875rem;display:flex}.detail-empty-note{color:var(--color-text-muted);margin-bottom:1rem;font-size:.875rem}.attachment-gallery{flex-wrap:wrap;gap:.75rem;margin:0 0 1.25rem;padding:0;list-style:none;display:flex}.attachment-gallery-item a{color:var(--color-text-muted);flex-direction:column;align-items:center;gap:.35rem;text-decoration:none;display:flex}.attachment-gallery-thumb{object-fit:cover;border:1px solid var(--color-border);border-radius:6px;width:96px;height:96px;transition:box-shadow .15s}.attachment-gallery-item a:hover .attachment-gallery-thumb{box-shadow:0 0 0 2px var(--color-accent)}.attachment-gallery-name{text-overflow:ellipsis;white-space:nowrap;max-width:96px;font-size:.75rem;overflow:hidden}.attachment-uploader-wrap{margin-top:.5rem}.attachment-uploader{flex-direction:column;gap:.75rem;display:flex}.attachment-uploader-field{flex-direction:column;gap:.35rem;display:flex}.attachment-file-input{color:var(--color-text);font-size:.875rem}.attachment-uploader-hint{color:var(--color-text-muted);margin:0;font-size:.8125rem}.attachment-preview-list{flex-direction:column;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.attachment-preview-item{border:1px solid var(--color-border);background:var(--color-surface);border-radius:6px;align-items:flex-start;gap:.75rem;padding:.5rem .75rem;display:flex}.attachment-preview-item--error{border-color:var(--color-danger);background:color-mix(in srgb, var(--color-danger) 6%, transparent)}.attachment-preview-thumb{object-fit:cover;border-radius:4px;flex-shrink:0;width:48px;height:48px}.attachment-preview-info{flex-direction:column;gap:.15rem;min-width:0;display:flex}.attachment-preview-name{color:var(--color-text);text-overflow:ellipsis;white-space:nowrap;font-size:.875rem;overflow:hidden}.attachment-preview-size{color:var(--color-text-muted);font-size:.8125rem}.attachment-preview-error{color:var(--color-danger);font-size:.8125rem}.attachment-uploader-actions{flex-wrap:wrap;gap:.75rem;display:flex}.selector-saving{color:var(--color-text-muted);margin:0;font-size:.875rem}.app-status-badge{letter-spacing:.02em;white-space:nowrap;border-radius:999px;padding:.25rem .65rem;font-size:.78rem;font-weight:600;display:inline-block}.app-status-badge--pending_creation{color:#b45309;background:#f59e0b2e}.app-status-badge--active{color:#15803d;background:#22c55e2e}.app-status-badge--archived{color:#374151;background:#6b72802e}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .app-status-badge--pending_creation{color:#fbbf24}:root:not([data-theme=light]) .app-status-badge--active{color:#4ade80}:root:not([data-theme=light]) .app-status-badge--archived{color:#9ca3af}}:root[data-theme=dark] .app-status-badge--pending_creation{color:#fbbf24}:root[data-theme=dark] .app-status-badge--active{color:#4ade80}:root[data-theme=dark] .app-status-badge--archived{color:#9ca3af}.apps-retry-btn{flex-shrink:0;margin-left:1rem}.apps-vercel-link{word-break:break-all;font-size:.875rem}.apps-no-url{color:var(--color-text-muted)}.apps-expand-btn{cursor:pointer;color:var(--text-secondary);background:0 0;border:none;padding:.25rem;line-height:1}.apps-expand-btn:hover{color:var(--text-primary)}.apps-expand-chevron{font-size:.6rem;transition:transform .15s;display:inline-block;transform:rotate(0)}.apps-expand-chevron--open{transform:rotate(90deg)}.apps-row-expanded td{border-bottom:none}.apps-deploy-expanded-cell{background:color-mix(in srgb, var(--surface-2,var(--border)) 30%, transparent);padding:0 .75rem .75rem 2.5rem}.apps-deploy-date{white-space:nowrap;color:var(--text-secondary);font-size:.8125rem}.my-apps-grid{grid-template-columns:1fr;gap:1rem;display:grid}@media (width>=640px){.my-apps-grid{grid-template-columns:repeat(2,1fr)}}.my-app-card{background:var(--color-surface);border:1px solid var(--color-border);box-shadow:var(--shadow-sm);border-radius:14px;flex-direction:column;gap:.75rem;padding:1.375rem;display:flex}.my-app-card--skeleton{min-height:140px}.my-app-card-header{justify-content:space-between;align-items:flex-start;gap:.75rem;display:flex}.my-app-card-name{color:var(--color-text);margin:0;font-size:1rem;font-weight:600}.my-app-card-description{color:var(--color-text-muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0;font-size:.9rem;display:-webkit-box;overflow:hidden}.my-app-card-link{margin-top:auto;font-size:.875rem;font-weight:500}.my-app-skeleton-name{width:60%;height:18px;margin-bottom:.25rem}.my-apps-request-link{margin-top:1rem;display:inline-block}.my-app-version-history{border-top:1px solid var(--border);margin-top:1rem;padding-top:.75rem}.my-app-version-toggle{color:var(--text-secondary);cursor:pointer;letter-spacing:.02em;background:0 0;border:none;align-items:center;gap:.4rem;padding:0;font-size:.8125rem;font-weight:600;display:flex}.my-app-version-toggle:hover{color:var(--text-primary)}.my-app-version-toggle-arrow{font-size:.6rem;line-height:1}.my-app-version-panel{margin-top:.75rem}.my-app-version-loading,.my-app-version-empty{color:var(--text-secondary);margin:0;font-size:.875rem}.my-app-version-list{flex-direction:column;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.my-app-version-item{background:color-mix(in srgb, var(--color-surface) 60%, var(--border) 40%);border-radius:6px;flex-direction:column;gap:.4rem;padding:.5rem .75rem;display:flex}.my-app-version-meta{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.5rem;display:flex}.my-app-version-label{align-items:center;gap:.4rem;font-size:.875rem;font-weight:500;display:flex}.my-app-version-link{font-size:.875rem;font-weight:500}.my-app-version-ticket-label{text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary);margin-right:.3rem;font-size:.7rem;font-weight:600}.my-app-version-current-badge{color:#16a34a;letter-spacing:.03em;text-transform:uppercase;background:#22c55e2e;border-radius:999px;padding:.1rem .45rem;font-size:.7rem;font-weight:700;display:inline-block}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .my-app-version-current-badge{color:#4ade80}}:root[data-theme=dark] .my-app-version-current-badge{color:#4ade80}.my-app-version-date{color:var(--text-secondary);white-space:nowrap;font-size:.75rem}.my-app-version-action{align-items:center;display:flex}.my-app-version-confirm{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.my-app-version-confirm-label{color:var(--text-secondary);font-size:.8125rem}.app-request-status-badge{white-space:nowrap;letter-spacing:.02em;border-radius:999px;padding:.25rem .65rem;font-size:.75rem;font-weight:600;display:inline-block}.app-request-status-badge--pending_review{color:#b45309;background:#f59e0b2e}.app-request-status-badge--approved{color:#15803d;background:#22c55e2e}.app-request-status-badge--rejected{color:#b91c1c;background:#ef44442e}.app-request-status-badge--approved_pending_payment{color:#1d4ed8;background:#3b82f62e}.app-request-status-badge--payment_expired{color:#b91c1c;background:#ef44442e}.app-request-status-badge--queued{color:#0f766e;background:#0d94882e}.app-request-status-badge--in_progress,.app-request-status-badge--needs_admin_setup{color:#1d4ed8;background:#3b82f62e}.app-request-status-badge--completed{color:#15803d;background:#22c55e2e}.app-request-status-badge--failed{color:#b91c1c;background:#ef44442e}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .app-request-status-badge--pending_review{color:#fbbf24}:root:not([data-theme=light]) .app-request-status-badge--approved{color:#4ade80}:root:not([data-theme=light]) .app-request-status-badge--rejected{color:#f87171}:root:not([data-theme=light]) .app-request-status-badge--approved_pending_payment{color:#60a5fa}:root:not([data-theme=light]) .app-request-status-badge--payment_expired{color:#f87171}:root:not([data-theme=light]) .app-request-status-badge--queued{color:#2dd4bf}:root:not([data-theme=light]) .app-request-status-badge--in_progress,:root:not([data-theme=light]) .app-request-status-badge--needs_admin_setup{color:#60a5fa}:root:not([data-theme=light]) .app-request-status-badge--completed{color:#4ade80}:root:not([data-theme=light]) .app-request-status-badge--failed{color:#f87171}}:root[data-theme=dark] .app-request-status-badge--pending_review{color:#fbbf24}:root[data-theme=dark] .app-request-status-badge--approved{color:#4ade80}:root[data-theme=dark] .app-request-status-badge--rejected{color:#f87171}:root[data-theme=dark] .app-request-status-badge--approved_pending_payment{color:#60a5fa}:root[data-theme=dark] .app-request-status-badge--payment_expired{color:#f87171}:root[data-theme=dark] .app-request-status-badge--queued{color:#2dd4bf}:root[data-theme=dark] .app-request-status-badge--in_progress,:root[data-theme=dark] .app-request-status-badge--needs_admin_setup{color:#60a5fa}:root[data-theme=dark] .app-request-status-badge--completed{color:#4ade80}:root[data-theme=dark] .app-request-status-badge--failed{color:#f87171}.my-requests-payment-row td{padding:0 1rem .75rem}.my-requests-payment-callout{color:var(--color-text);background:#3b82f61a;border:1px solid #3b82f64d;border-radius:8px;justify-content:space-between;align-items:center;gap:1rem;padding:.75rem 1rem;font-size:.875rem;display:flex}.my-requests-payment-callout--expired{background:#ef44441a;border-color:#ef44444d}.my-requests-pay-btn{white-space:nowrap;flex-shrink:0;text-decoration:none}.my-requests-cancel-callout{align-items:center;gap:.75rem;padding:.5rem 1rem;display:flex}.my-requests-cancel-confirm{color:var(--color-text-muted);flex-wrap:wrap;align-items:center;gap:.75rem;font-size:.875rem;display:flex}.my-requests-description{color:var(--color-text-muted);text-overflow:ellipsis;white-space:nowrap;max-width:320px;font-size:.875rem;overflow:hidden}.new-app-request-wrap{max-width:640px}.new-app-request-form{flex-direction:column;gap:1.25rem;display:flex}.new-app-request-textarea{min-height:160px}.new-app-request-desc-footer{justify-content:space-between;align-items:flex-start;gap:.5rem;min-height:1.25rem;display:flex}.new-app-request-char-count{color:var(--color-text-muted);white-space:nowrap;flex-shrink:0;margin-left:auto;font-size:.8125rem}.new-app-request-char-count--over{color:var(--color-danger)}.new-app-request-actions{gap:.75rem;display:flex}.attachment-file-list{flex-direction:column;gap:.375rem;margin:.5rem 0 0;padding:0;list-style:none;display:flex}.attachment-file-item{color:var(--color-text-primary);background:var(--color-surface-subtle,#f5f5f5);border-radius:6px;justify-content:space-between;align-items:center;padding:.375rem .625rem;font-size:.875rem;display:flex}.attachment-file-remove{cursor:pointer;color:var(--color-text-muted);background:0 0;border:none;padding:0 .25rem;font-size:1rem;line-height:1}.attachment-file-remove:hover{color:var(--color-danger,#dc2626)}.form-section-label{color:var(--color-text-primary);padding-top:.25rem;font-size:.875rem;font-weight:600}.form-section-optional{color:var(--color-text-muted);font-weight:400}.form-field-hint{color:var(--color-text-muted);margin:.25rem 0 0;font-size:.8125rem;line-height:1.4}.my-requests-domain-tag{color:var(--color-text-muted);margin-top:.2rem;font-family:monospace;font-size:.75rem;display:block}.approvals-tabs{border-bottom:2px solid var(--color-border);gap:0;margin-bottom:1.5rem;display:flex}.approvals-tab{color:var(--color-text-muted);cursor:pointer;white-space:nowrap;background:0 0;border:none;padding:.625rem 1.25rem;font-size:.9rem;font-weight:500;transition:color .15s;position:relative}.approvals-tab:after{content:"";background:0 0;height:2px;transition:background .15s;position:absolute;bottom:-2px;left:0;right:0}.approvals-tab:hover{color:var(--color-text)}.approvals-tab--active{color:var(--color-primary);font-weight:600}.approvals-tab--active:after{background:var(--color-primary)}.approvals-layout{grid-template-columns:1fr;align-items:start;gap:1.5rem;display:grid}@media (width>=900px){.approvals-layout{grid-template-columns:1fr 420px}}.approvals-row--selected{background:var(--color-accent-secondary)}.approvals-request-list{flex-direction:column;gap:.625rem;display:flex}.approvals-request-card{background:var(--color-surface);border:1px solid var(--color-border);cursor:pointer;border-radius:8px;padding:.875rem 1rem;transition:border-color .15s,box-shadow .15s}.approvals-request-card:hover{border-color:var(--color-accent);box-shadow:0 0 0 1px var(--color-accent)}.approvals-request-card--selected{border-color:var(--color-accent);box-shadow:0 0 0 2px var(--color-accent);background:var(--color-accent-secondary)}.approvals-request-card-header{justify-content:space-between;align-items:baseline;gap:.5rem;margin-bottom:.25rem;display:flex}.approvals-request-card-title{text-overflow:ellipsis;white-space:nowrap;font-size:.95rem;font-weight:600;overflow:hidden}.approvals-request-card-date{color:var(--color-text-muted);white-space:nowrap;flex-shrink:0;font-size:.78rem}.approvals-request-card-meta{margin-bottom:.375rem}.approvals-request-card-client{color:var(--color-accent);font-size:.8rem;font-weight:500}.approvals-request-card-preview{color:var(--color-text-muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0;font-size:.82rem;display:-webkit-box;overflow:hidden}.approvals-drawer{background:var(--color-surface);border:1px solid var(--color-border);border-radius:8px;overflow:hidden}.approvals-drawer-header{border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;gap:.75rem;padding:1rem 1.25rem .75rem;display:flex}.approvals-drawer-title{text-overflow:ellipsis;white-space:nowrap;min-width:0;margin:0;font-size:1rem;font-weight:700;overflow:hidden}.approvals-drawer-body{flex-direction:column;gap:1rem;padding:1.25rem;display:flex}.approvals-drawer-description{color:var(--color-text-muted);white-space:pre-wrap;word-break:break-word;background:var(--color-bg);border:1px solid var(--color-border);border-radius:6px;margin:0;padding:.625rem .75rem;font-size:.9rem}.approvals-drawer-actions{border-top:1px solid var(--color-border);justify-content:space-between;align-items:center;gap:.75rem;margin-top:.25rem;padding-top:.5rem;display:flex}.approvals-drawer-decision-btns{gap:.625rem;display:flex}.btn-ghost{color:var(--color-text-muted);cursor:pointer;background:0 0;border:none;border-radius:6px;padding:.5rem .75rem;font-size:.875rem;transition:background .15s,color .15s}.btn-ghost:hover:not(:disabled){background:var(--color-border);color:var(--color-text)}.btn-ghost:disabled{opacity:.5;cursor:not-allowed}.btn-danger-outline{border:1px solid var(--color-danger,#ef4444);color:var(--color-danger,#ef4444);cursor:pointer;background:0 0;border-radius:6px;padding:.5rem 1rem;font-size:.875rem;font-weight:500;transition:background .15s,color .15s}.btn-danger-outline:hover:not(:disabled){background:var(--color-danger,#ef4444);color:#fff}.btn-danger-outline:disabled{opacity:.5;cursor:not-allowed}.jobs-filter-row{align-items:center;gap:.75rem;margin-bottom:1.5rem;display:flex}.jobs-filter-label{color:var(--color-text-muted);white-space:nowrap;font-size:.875rem;font-weight:500}.jobs-filter-select{max-width:180px}.jobs-id-cell{color:var(--color-text-muted);letter-spacing:.03em;font-size:.8125rem}.job-duration{color:var(--color-text-muted);white-space:nowrap;font-size:.875rem}.job-status-badge{white-space:nowrap;letter-spacing:.02em;border-radius:999px;padding:.25rem .65rem;font-size:.75rem;font-weight:600;display:inline-block}.job-status-badge--queued{color:#374151;background:#9ca3af2e}.job-status-badge--running{color:#1d4ed8;background:#3b82f62e;animation:1.8s ease-in-out infinite job-status-pulse}.job-status-badge--completed{color:#15803d;background:#22c55e2e}.job-status-badge--failed{color:#b91c1c;background:#ef44442e}@keyframes job-status-pulse{0%,to{opacity:1}50%{opacity:.6}}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .job-status-badge--queued{color:#9ca3af}:root:not([data-theme=light]) .job-status-badge--running{color:#60a5fa}:root:not([data-theme=light]) .job-status-badge--completed{color:#4ade80}:root:not([data-theme=light]) .job-status-badge--failed{color:#f87171}}:root[data-theme=dark] .job-status-badge--queued{color:#9ca3af}:root[data-theme=dark] .job-status-badge--running{color:#60a5fa}:root[data-theme=dark] .job-status-badge--completed{color:#4ade80}:root[data-theme=dark] .job-status-badge--failed{color:#f87171}.job-kind-badge{background:var(--color-accent-secondary);color:var(--color-accent);border-radius:9999px;padding:.25rem .65rem;font-size:.75rem;font-weight:500;display:inline-block}.jobs-table-row--clickable{cursor:pointer;transition:background .12s}.jobs-table-row--clickable:hover{background:var(--color-surface)}.jobs-table-row--clickable:focus-visible{outline:2px solid var(--color-accent);outline-offset:-2px}.job-detail-meta-grid{flex-wrap:wrap;gap:1.25rem;margin-top:1rem;display:flex}.job-detail-meta-item{flex-direction:column;gap:.2rem;min-width:160px;display:flex}.job-detail-meta-item--full{flex-basis:100%}.job-detail-error-msg{color:var(--color-danger);font-size:.875rem}.job-result-grid{flex-wrap:wrap;gap:1.5rem;display:flex}.job-result-item{flex-direction:column;gap:.25rem;display:flex}.job-result-link{font-size:.9rem}.job-result-sha{color:var(--color-text-muted);font-family:ui-monospace,Cascadia Code,Fira Code,monospace;font-size:.875rem}.job-log-section-header{align-items:center;gap:.75rem;margin-bottom:.75rem;display:flex}.job-log-section-header .detail-section-title{margin:0}.job-log-live-indicator{letter-spacing:.06em;text-transform:uppercase;color:#22c55e;background:#22c55e26;border-radius:9999px;align-items:center;gap:.4rem;padding:.15rem .55rem;font-size:.7rem;font-weight:600;display:inline-flex}.job-log-live-indicator:before{content:"";background:#22c55e;border-radius:50%;width:6px;height:6px;animation:1.4s ease-in-out infinite job-status-pulse;display:inline-block}.job-log-error{color:var(--color-danger);margin-bottom:.5rem;font-size:.8125rem}.job-log-container{color:#d4d4d4;background:#1a1a1a;border-radius:6px;max-height:400px;padding:1rem;font-family:ui-monospace,Cascadia Code,Fira Code,monospace;font-size:.8125rem;line-height:1.6;overflow-y:auto}.job-log-empty{color:#6b7280;font-style:italic}.job-log-line{align-items:baseline;gap:.75rem;display:flex}.job-log-timestamp{color:#6b7280;flex-shrink:0;font-size:.75rem}.job-log-text{word-break:break-all}.job-log-line--info .job-log-text{color:#d4d4d4}.job-log-line--warn .job-log-text{color:#f59e0b}.job-log-line--error .job-log-text{color:#f87171}.job-detail-actions{justify-content:flex-end;align-items:center;gap:1rem;margin-top:1rem;display:flex}.job-detail-actions .btn:disabled{opacity:.45;cursor:not-allowed}.job-requeue-error{color:var(--color-danger);margin:0;font-size:.875rem}.ticket-status-badge{white-space:nowrap;letter-spacing:.02em;border-radius:999px;padding:.25rem .65rem;font-size:.75rem;font-weight:600;display:inline-block}.ticket-status-badge--triaging{color:#4b5563;background:#9ca3af2e}.ticket-status-badge--awaiting_approval{color:#b45309;background:#f59e0b24}.ticket-status-badge--queued{color:#1d4ed8;background:#3b82f624}.ticket-status-badge--in_progress{color:#0f766e;background:#0d948824}.ticket-status-badge--completed{color:#15803d;background:#22c55e24}.ticket-status-badge--failed{color:#b91c1c;background:#ef444424}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .ticket-status-badge--triaging{color:#d1d5db}:root:not([data-theme=light]) .ticket-status-badge--awaiting_approval{color:#fbbf24}:root:not([data-theme=light]) .ticket-status-badge--queued{color:#93c5fd}:root:not([data-theme=light]) .ticket-status-badge--in_progress{color:#c4b5fd}:root:not([data-theme=light]) .ticket-status-badge--completed{color:#4ade80}:root:not([data-theme=light]) .ticket-status-badge--failed{color:#f87171}}:root[data-theme=dark] .ticket-status-badge--triaging{color:#d1d5db}:root[data-theme=dark] .ticket-status-badge--awaiting_approval{color:#fbbf24}:root[data-theme=dark] .ticket-status-badge--queued{color:#93c5fd}:root[data-theme=dark] .ticket-status-badge--in_progress{color:#c4b5fd}:root[data-theme=dark] .ticket-status-badge--completed{color:#4ade80}:root[data-theme=dark] .ticket-status-badge--failed{color:#f87171}.ticket-risk-badge{letter-spacing:.06em;text-transform:uppercase;white-space:nowrap;border-radius:4px;padding:.2rem .55rem;font-size:.7rem;font-weight:700;display:inline-block}.ticket-risk-badge--high{color:#b91c1c;background:#ef444429}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .ticket-risk-badge--high{color:#f87171}}:root[data-theme=dark] .ticket-risk-badge--high{color:#f87171}.ticket-triage-reasons{flex-wrap:wrap;gap:.4rem;display:flex}.ticket-triage-reason-chip{color:#b91c1c;background:#ef444424;border-radius:4px;padding:.2rem .6rem;font-size:.75rem;font-weight:500;display:inline-block}.ticket-triage-reason-chip--empty{color:#4b5563;background:#9ca3af24}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .ticket-triage-reason-chip{color:#f87171}:root:not([data-theme=light]) .ticket-triage-reason-chip--empty{color:#9ca3af}}:root[data-theme=dark] .ticket-triage-reason-chip{color:#f87171}:root[data-theme=dark] .ticket-triage-reason-chip--empty{color:#9ca3af}.ticket-triage-reasons-cell{flex-wrap:wrap;align-items:center;gap:.35rem;display:flex}.clients-table-row--expanded td{background:var(--color-accent-secondary)}.ticket-description-row td{border-top:none;padding:0}.ticket-description-panel{background:var(--color-accent-secondary);border-bottom:1px solid var(--color-border);padding:.75rem 1.25rem 1rem}.ticket-description-label{text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted);margin:0 0 .35rem;font-size:.72rem;font-weight:600}.ticket-description-text{white-space:pre-wrap;color:var(--color-text);margin:0;font-size:.875rem;line-height:1.55}.ticket-type-radios{flex-wrap:wrap;gap:1.5rem;display:flex}.ticket-type-radio-label{color:var(--color-text);cursor:pointer;align-items:center;gap:.45rem;font-size:.9rem;display:flex}.ticket-type-radio-label input[type=radio]{accent-color:var(--color-accent);cursor:pointer;width:1rem;height:1rem}.form-hint{color:var(--color-text-muted);margin:0;font-size:.875rem}.nav-hamburger{cursor:pointer;color:var(--color-text);background:0 0;border:none;border-radius:4px;margin-left:.5rem;padding:.25rem .5rem;font-size:1.25rem;line-height:1;transition:background .12s;display:none}.nav-hamburger:hover{background:var(--color-accent-secondary)}.nav-hamburger:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.mobile-nav{background:var(--color-surface);border-bottom:1px solid var(--color-border);padding:1rem 1.5rem;display:none}.mobile-nav-links{flex-direction:column;gap:.75rem;margin:0;padding:0;list-style:none;display:flex}.mobile-nav-links .nav-link{border-bottom:none;padding:.35rem 0;font-size:1rem;display:block}.mobile-nav-signout{width:100%;margin-top:.25rem}@media (width<=767px){.nav-hamburger{justify-content:center;align-items:center;display:inline-flex}.app-nav-links{display:none}.mobile-nav{display:block}.nav-user-trigger{padding-right:.34rem}}.not-found-page{text-align:center;max-width:var(--max-width);flex-direction:column;justify-content:center;align-items:center;width:100%;margin:0 auto;padding:6rem 1.5rem;display:flex}.not-found-heading{color:var(--color-text);margin-bottom:1rem;font-size:clamp(1.5rem,4vw,2.5rem);font-weight:700}.not-found-message{color:var(--color-text-muted);margin-bottom:2rem;font-size:1.0625rem}.optional-label{color:var(--color-text-muted);font-size:.8rem;font-weight:400}.env-vars-editor{flex-direction:column;gap:.5rem;margin-top:.5rem;display:flex}.env-vars-empty{color:var(--color-text-muted);margin:0 0 .25rem;font-size:.875rem}.env-var-row{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.env-var-row--readonly{border-bottom:1px solid var(--color-border);padding:.25rem 0}.env-var-row--readonly:last-child{border-bottom:none}.env-var-key-input{border:1px solid var(--color-border);background:var(--color-bg);min-width:120px;color:var(--color-text);border-radius:6px;flex:0 0 40%;padding:.4rem .625rem;font-family:monospace;font-size:.875rem;transition:border-color .15s}.env-var-key-input:focus{border-color:var(--color-accent);box-shadow:0 0 0 3px color-mix(in srgb, var(--color-accent) 18%, transparent);outline:none}.env-var-value-wrap{border:1px solid var(--color-border);background:var(--color-bg);border-radius:6px;flex:1 1 0;align-items:center;gap:0;min-width:120px;transition:border-color .15s;display:flex;overflow:hidden}.env-var-value-wrap:focus-within{border-color:var(--color-accent);box-shadow:0 0 0 3px color-mix(in srgb, var(--color-accent) 18%, transparent)}.env-var-value-input{color:var(--color-text);background:0 0;border:none;flex:1;min-width:0;padding:.4rem .625rem;font-family:monospace;font-size:.875rem}.env-var-value-input:focus{outline:none}.env-var-toggle-btn{border:none;border-left:1px solid var(--color-border);cursor:pointer;height:100%;min-height:34px;color:var(--color-text-muted);background:0 0;flex-shrink:0;align-items:center;padding:0 .5rem;transition:color .15s,background .15s;display:inline-flex}.env-var-toggle-btn:hover{color:var(--color-text);background:var(--color-accent-secondary)}.env-var-toggle-btn:focus-visible{outline:2px solid var(--color-accent);outline-offset:-2px}.env-var-remove-btn{border:1px solid var(--color-border);cursor:pointer;width:30px;height:30px;color:var(--color-text-muted);background:0 0;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;font-size:1rem;line-height:1;transition:color .15s,background .15s,border-color .15s;display:inline-flex}.env-var-remove-btn:hover{color:var(--color-danger);border-color:var(--color-danger);background:color-mix(in srgb, var(--color-danger) 8%, transparent)}.env-var-remove-btn:focus-visible{outline:2px solid var(--color-danger);outline-offset:2px}.env-var-duplicate-error{width:100%;color:var(--color-danger);margin:0;font-size:.8125rem}.env-vars-add-btn{border:1px dashed var(--color-border);color:var(--color-accent);cursor:pointer;background:0 0;border-radius:6px;align-self:flex-start;margin-top:.25rem;padding:.4rem .875rem;font-size:.875rem;transition:background .15s,border-color .15s}.env-vars-add-btn:hover{background:var(--color-accent-secondary);border-color:var(--color-accent)}.env-vars-add-btn:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.env-var-key-readonly{color:var(--color-text);min-width:120px;font-family:monospace;font-size:.875rem}.env-var-value-readonly{color:var(--color-text-muted);letter-spacing:.05em;font-family:monospace;font-size:.875rem}.env-vars-editor--readonly .env-var-row{gap:1.5rem}@media (width<=600px){.env-var-row{flex-direction:column;align-items:stretch}.env-var-key-input{flex:none;width:100%}.env-var-remove-btn{align-self:flex-end}}.my-app-card--clickable{cursor:pointer;transition:border-color var(--duration-normal) var(--ease-smooth), box-shadow var(--duration-normal) var(--ease-smooth), transform var(--duration-normal) var(--ease-smooth)}.my-app-card--clickable:hover{border-color:color-mix(in srgb, var(--color-accent) 45%, var(--color-border));box-shadow:var(--shadow-md), var(--shadow-accent);transform:translateY(-4px)}.my-app-card--clickable:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.app-detail-breadcrumb{margin-bottom:.5rem}.app-detail-back{color:var(--color-text-muted);font-size:.875rem;text-decoration:none;transition:color .12s}.app-detail-back:hover{color:var(--color-accent)}.app-detail-heading{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.app-detail-heading .admin-page-title{margin:0}.app-detail-body{flex-direction:column;gap:1.5rem;margin-top:1.5rem;display:flex}.app-detail-version-section{background:var(--color-surface);border:1px solid var(--color-border);border-radius:.75rem;padding:1.25rem 1.5rem}.app-detail-section-title{color:var(--color-text);margin:0 0 1rem;font-size:1rem;font-weight:600}.app-detail-meta-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:8px;flex-direction:column;gap:.75rem;padding:1.25rem;display:flex}.app-detail-field{flex-direction:column;gap:.2rem;display:flex}.app-detail-field-label{text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted);font-size:.75rem;font-weight:600}.app-detail-field-value{color:var(--color-text);font-size:.9375rem}.app-detail-field-link{color:var(--color-accent);word-break:break-all;font-size:.9375rem}.app-detail-skeleton{flex-direction:column;gap:.75rem;margin-top:1.5rem;display:flex}.app-preview-section{flex-direction:column;gap:1rem;display:flex}.app-preview-toolbar{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.app-preview-toolbar--annotating{background:color-mix(in srgb, var(--color-surface) 50%, var(--color-accent) 6%);border:1px solid color-mix(in srgb, var(--color-border) 60%, var(--color-accent) 40%);border-radius:8px;padding:.5rem .75rem}.app-preview-toolbar-label{color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em;font-size:.875rem;font-weight:600}.app-preview-annotate-hint{color:var(--color-accent);flex:1;font-size:.8rem;font-style:italic}.app-preview-frame-wrapper{border:1px solid var(--color-border);background:var(--color-surface);border-radius:8px;width:100%;height:600px;transition:border-color .2s,box-shadow .2s;position:relative;overflow:hidden}.app-preview-frame-wrapper--annotating{border-color:var(--color-accent);box-shadow:0 0 0 3px #4f46e526}.app-preview-iframe{border:none;width:100%;height:100%;display:block}.app-preview-overlay{pointer-events:none;position:absolute;inset:0}.app-preview-overlay--active{pointer-events:all;cursor:crosshair;background:#4f46e508}.app-preview-placeholder{border:1px dashed var(--color-border);border-radius:8px;flex-direction:column;justify-content:center;align-items:center;gap:.75rem;height:240px;display:flex}.app-preview-placeholder p{color:var(--color-text-muted);margin:0;font-size:.9rem}@keyframes pin-enter{0%{opacity:0;transform:translate(-50%,-50%)scale(.4)}60%{transform:translate(-50%,-50%)scale(1.25)}to{opacity:1;transform:translate(-50%,-50%)scale(1)}}@keyframes pin-pulse{0%{box-shadow:0 0 #4f46e58c}70%{box-shadow:0 0 0 10px #4f46e500}to{box-shadow:0 0 #4f46e500}}.annotation-pin{background:var(--color-accent);color:#fff;cursor:pointer;z-index:10;pointer-events:all;border:2.5px solid #fff;border-radius:50%;justify-content:center;align-items:center;width:30px;height:30px;font-size:.7rem;font-weight:700;transition:transform .15s cubic-bezier(.34,1.56,.64,1),box-shadow .15s;display:flex;position:absolute;transform:translate(-50%,-50%);box-shadow:0 2px 10px #0000004d}.annotation-pin:hover{transform:translate(-50%,-50%)scale(1.25);box-shadow:0 4px 16px #4f46e573}.annotation-pin--active{animation:1.2s ease-out pin-pulse;transform:translate(-50%,-50%)scale(1.25);box-shadow:0 4px 16px #4f46e573}.annotation-pin--highlighted{background:color-mix(in srgb, var(--color-accent) 85%, #fff);transform:translate(-50%,-50%)scale(1.2);box-shadow:0 4px 16px #4f46e566}.annotation-pin--new{animation:.45s cubic-bezier(.34,1.56,.64,1) both pin-enter}.annotation-pin--pending{background:var(--color-warning,#f59e0b);z-index:20;border-color:#ffffffe6;font-size:1rem}.annotation-popover{background:var(--color-bg);border:1px solid var(--color-border);z-index:30;pointer-events:all;border-radius:10px;flex-direction:column;gap:.6rem;width:240px;padding:.875rem;animation:.15s ease-out popover-enter;display:flex;position:absolute;top:calc(100% + 10px);left:50%;transform:translate(-50%);box-shadow:0 10px 32px #0003,0 2px 8px #0000001a}@keyframes popover-enter{0%{opacity:0;transform:translate(-50%)translateY(-4px)}to{opacity:1;transform:translate(-50%)translateY(0)}}.annotation-popover--flip-h{left:auto;right:50%;transform:translate(50%)}.annotation-popover--flip-h.annotation-popover--flip-v{transform:translate(50%)}@keyframes popover-enter-flip-h{0%{opacity:0;transform:translate(50%)translateY(-4px)}to{opacity:1;transform:translate(50%)translateY(0)}}.annotation-popover--flip-v{top:auto;bottom:calc(100% + 10px)}.annotation-popover--flip-h{animation:.15s ease-out popover-enter-flip-h}.annotation-popover-screenshot-link{margin-bottom:8px;display:block}.annotation-popover-screenshot{border:1px solid var(--color-border);border-radius:6px;width:100%;display:block}.annotation-popover-comment{color:var(--color-text);white-space:pre-wrap;word-break:break-word;margin:0;font-size:.875rem;line-height:1.45}.annotation-popover-meta{color:var(--color-text-muted);border-top:1px solid var(--color-border);flex-direction:column;gap:.15rem;padding-top:.25rem;font-size:.75rem;display:flex}.annotation-popover-author{color:var(--color-text);font-weight:600}.annotation-popover-delete{border:1px solid var(--color-danger);color:var(--color-danger);background:0 0;border-radius:5px;align-self:flex-start;padding:.2rem .6rem;font-size:.75rem;transition:background .12s,color .12s}.annotation-popover-delete:hover{background:var(--color-danger);color:#fff}.annotation-comment-box{background:var(--color-bg);border:1px solid var(--color-accent);z-index:30;pointer-events:all;border-radius:10px;flex-direction:column;gap:.6rem;width:260px;padding:.875rem;animation:.15s ease-out popover-enter;display:flex;position:absolute;top:calc(100% + 10px);left:50%;transform:translate(-50%);box-shadow:0 10px 32px #00000038,0 0 0 3px #4f46e51f}.annotation-comment-box--flip-h{animation:.15s ease-out popover-enter-flip-h;left:auto;right:50%;transform:translate(50%)}.annotation-comment-box--flip-v{top:auto;bottom:calc(100% + 10px)}.annotation-comment-input{border:1px solid var(--color-border);background:var(--color-surface);width:100%;color:var(--color-text);resize:vertical;border-radius:6px;min-height:64px;padding:.5rem .625rem;font-family:inherit;font-size:.875rem;line-height:1.45;transition:border-color .12s}.annotation-comment-input:focus{border-color:var(--color-accent);outline:none;box-shadow:0 0 0 2px #4f46e526}.annotation-comment-shortcut{color:var(--color-text-muted);margin:0;font-size:.69rem;line-height:1.3}.annotation-comment-actions{justify-content:flex-end;align-items:center;gap:.4rem;display:flex}.annotation-list{border-top:1px solid var(--color-border);margin-top:.25rem;padding-top:1.125rem}.annotation-list-header{justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:.75rem;display:flex}.annotation-list-title{color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em;align-items:center;gap:.5rem;margin:0;font-size:.875rem;font-weight:600;display:flex}.annotation-list-count{background:var(--color-accent);color:#fff;letter-spacing:0;text-transform:none;border-radius:10px;justify-content:center;align-items:center;min-width:20px;height:20px;padding:0 5px;font-size:.7rem;font-weight:700;display:inline-flex}.annotation-list-items{flex-direction:column;gap:.4rem;margin:0;padding:0;list-style:none;display:flex}.annotation-list-item{background:var(--color-surface);border:1px solid var(--color-border);cursor:pointer;border-left:3px solid #0000;border-radius:8px;align-items:flex-start;gap:.75rem;padding:.7rem .875rem;transition:border-color .12s,background .12s,border-left-color .12s;display:flex}.annotation-list-item:hover{border-color:var(--color-border);border-left-color:var(--color-accent);background:color-mix(in srgb, var(--color-surface) 70%, var(--color-accent) 5%)}.annotation-list-item--active{border-color:var(--color-accent);border-left-color:var(--color-accent);background:color-mix(in srgb, var(--color-surface) 60%, var(--color-accent) 8%)}.annotation-list-number{background:var(--color-accent);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:24px;height:24px;margin-top:1px;font-size:.7rem;font-weight:700;display:flex;box-shadow:0 1px 4px #4f46e54d}.annotation-list-body{flex:1;min-width:0}.annotation-list-comment{color:var(--color-text);white-space:pre-wrap;word-break:break-word;margin:0 0 .25rem;font-size:.875rem;line-height:1.45}.annotation-list-meta{color:var(--color-text-muted);font-size:.75rem}.annotation-list-delete{color:var(--color-text-muted);cursor:pointer;opacity:0;background:0 0;border:none;flex-shrink:0;padding:0 .25rem;font-size:1.1rem;line-height:1;transition:color .12s}.annotation-list-item:hover .annotation-list-delete,.annotation-list-item--active .annotation-list-delete{opacity:1}.annotation-list-delete:hover{color:var(--color-danger)}.sat-modal{max-width:560px;max-height:calc(100vh - 2rem)}.sat-annotation-checklist{border:1px solid var(--color-border);border-radius:6px;flex-direction:column;gap:.4rem;max-height:220px;margin:0;padding:.5rem;list-style:none;display:flex;overflow-y:auto}.sat-annotation-check-item{display:flex}.sat-annotation-check-label{cursor:pointer;border-radius:4px;align-items:flex-start;gap:.5rem;width:100%;padding:.25rem .35rem;font-size:.875rem;transition:background .1s;display:flex}.sat-annotation-check-label:hover{background:var(--color-surface)}.sat-check-num{flex-shrink:0;width:20px;height:20px;font-size:.65rem}.sat-annotation-check-text{color:var(--color-text);word-break:break-word;line-height:1.4}.sat-preview-details{border:1px solid var(--color-border);border-radius:6px;overflow:hidden}.sat-preview-summary{color:var(--color-text-muted);cursor:pointer;-webkit-user-select:none;user-select:none;padding:.5rem .75rem;font-size:.8125rem;font-weight:600;list-style:none}.sat-preview-summary::-webkit-details-marker{display:none}.sat-preview-summary:before{content:"▶ ";font-size:.6rem}details[open] .sat-preview-summary:before{content:"▼ "}.sat-preview-body{background:var(--color-surface);color:var(--color-text-muted);white-space:pre-wrap;word-break:break-word;font-size:.8125rem;font-family:var(--font-sans);border-top:1px solid var(--color-border);max-height:200px;margin:0;padding:.75rem;overflow-y:auto}.app-footer{z-index:1;border-top:1px solid var(--color-border);background:color-mix(in srgb, var(--color-surface) 80%, transparent);-webkit-backdrop-filter:blur(8px);position:relative}.app-footer-inner{max-width:var(--max-width);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin:0 auto;padding:1.25rem 1.75rem;display:flex}.app-footer-copy{color:var(--color-text-muted);font-size:.8125rem}.app-footer-links{flex-wrap:wrap;gap:1.5rem;display:flex}.app-footer-links a{color:var(--color-text-muted);transition:color var(--duration-fast) var(--ease-smooth);font-size:.8125rem;text-decoration:none}.app-footer-links a:hover{color:var(--color-accent);text-decoration:none}@media (width<=540px){.app-footer-inner{flex-direction:column;align-items:flex-start;gap:.75rem}}.legal-page{padding:2.5rem 1.5rem 5rem}.legal-page-inner{max-width:820px;margin:0 auto}.legal-page-header{border-bottom:2px solid var(--color-accent);margin-bottom:2rem;padding-bottom:1.25rem}.legal-page-title{background:var(--gradient-primary);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;margin:0;font-size:1.75rem;font-weight:700}.legal-page-loading{color:var(--color-text-muted);padding:2rem 0;font-size:.9375rem}.legal-page-error{color:var(--color-danger);font-size:.9375rem}.legal-document{flex-direction:column;gap:0;display:flex}.legal-rule{border:none;border-radius:1px;height:2px;margin:.25rem 0}.legal-rule--accent{background:var(--gradient-primary);height:3px;margin:1rem 0}.legal-rule--major{background:var(--color-border);margin:1.5rem 0}.legal-rule--minor{background:color-mix(in srgb, var(--color-border) 60%, transparent);height:1px;margin:1rem 0}.legal-section-heading{color:var(--color-accent);letter-spacing:.04em;text-transform:uppercase;margin:2rem 0 .5rem;padding-top:.25rem;font-size:.9375rem;font-weight:700}.legal-subsection-heading{color:var(--color-text);margin:1.25rem 0 .35rem;font-size:.9375rem;font-weight:600}.legal-paragraph{color:var(--color-text-muted);margin:.5rem 0;font-size:.9rem;line-height:1.75}.legal-list{flex-direction:column;gap:.35rem;margin:.5rem 0 .5rem 1.25rem;padding:0;display:flex}.legal-list-item{color:var(--color-text-muted);font-size:.9rem;line-height:1.65}.legal-indented-block{color:var(--color-text-muted);border-left:2px solid var(--color-border);margin:.25rem 0;padding:.15rem 0 .15rem 1.25rem;font-size:.9rem;line-height:1.65}.terms-checkbox-label{cursor:pointer;align-items:flex-start;gap:.625rem;display:flex}.terms-checkbox-input{width:1rem;height:1rem;accent-color:var(--color-accent);cursor:pointer;flex-shrink:0;margin-top:.2rem}.terms-checkbox-text{color:var(--color-text-muted);font-size:.875rem;line-height:1.5}.terms-checkbox-text a{color:var(--color-accent);text-underline-offset:2px;text-decoration:underline}.terms-checkbox-text a:hover{color:var(--color-accent-hover)}
