:root{--color-bg: #f6f7fb;--color-surface: #ffffff;--color-surface-sunken: #eef1f7;--color-border: #dde3ee;--color-border-strong: #c2cce0;--color-text: #17213a;--color-text-muted: #556182;--color-text-faint: #626d8a;--color-accent: #3b6fe0;--color-accent-strong: #2f5bc0;--color-accent-soft: #e8effc;--color-accent-contrast: #ffffff;--color-danger: #c93a3a;--color-danger-bg: #fdecec;--color-danger-border: #eebcbc;--color-success: #1a7a4b;--color-success-bg: #e4f5ec;--color-warning: #946200;--shell-header-height: 4rem;--radius-md: .5rem;--radius-lg: .875rem;--shadow-card: 0 1px 2px rgba(23, 33, 58, .06), 0 4px 16px rgba(23, 33, 58, .06);--shadow-panel: 0 20px 60px rgba(23, 33, 58, .18);--focus-ring: 0 0 0 2px var(--color-surface), 0 0 0 4px var(--color-accent);color-scheme:light}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--color-bg);color:var(--color-text);font-family:Segoe UI,system-ui,-apple-system,Helvetica Neue,Arial,sans-serif;font-size:15px;line-height:1.5}#root{min-height:100vh}h1,h2,h3,p{margin:0}button,input{font:inherit;color:inherit}a{color:var(--color-accent)}a:focus-visible,button:focus-visible,input:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px;border-radius:var(--radius-md)}@media(forced-colors:active){a:focus-visible,button:focus-visible,input:focus-visible,[tabindex]:focus-visible{outline-color:Highlight}}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.app-loading{min-height:100vh;display:flex;align-items:center;justify-content:center;gap:.75rem;color:var(--color-text-muted)}.app-loading-icon{width:1.25rem;height:1.25rem;animation:spin 1s linear infinite}@media(prefers-reduced-motion:reduce){.app-loading-icon{animation:none}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}@keyframes spin{to{transform:rotate(360deg)}}.site-shell{min-height:100vh;display:flex;flex-direction:column}.site-header{height:var(--shell-header-height);flex-shrink:0;display:flex;align-items:center;gap:1.5rem;padding:0 1.5rem;background:var(--color-surface);border-bottom:1px solid var(--color-border)}.site-brand{display:flex;align-items:center;gap:.5rem;font-weight:700;font-size:1.0625rem;color:var(--color-text);text-decoration:none}.site-brand-icon{width:1.375rem;height:1.375rem;color:var(--color-accent)}.site-nav{display:flex;gap:.25rem}.site-nav-toggle{display:none;align-items:center;justify-content:center;min-width:2.5rem;min-height:2.5rem;background:transparent;border:1px solid var(--color-border-strong);border-radius:var(--radius-md);cursor:pointer;color:var(--color-text)}.site-nav-toggle:hover{border-color:var(--color-accent)}.site-nav-toggle-icon{width:1.25rem;height:1.25rem}@media(max-width:700px){.site-header{gap:.75rem;padding:0 1rem;flex-wrap:wrap;height:auto;min-height:var(--shell-header-height)}.site-nav-toggle{display:inline-flex}.site-nav{display:none;flex-basis:100%;flex-direction:column;gap:.25rem;padding:.5rem 0 .75rem}.site-nav.site-nav-open{display:flex}.site-nav-link{padding:.625rem .875rem}.site-account{gap:.5rem}}.site-nav-link{padding:.5rem .875rem;border-radius:var(--radius-md);color:var(--color-text-muted);text-decoration:none;font-weight:600}.site-nav-link:hover{background:var(--color-surface-sunken);color:var(--color-text)}.site-nav-link-active{background:var(--color-accent-soft);color:var(--color-accent-strong)}.site-account{margin-left:auto;display:flex;align-items:center;gap:.75rem}.language-switcher{display:inline-flex;align-items:center;gap:.35rem;color:var(--color-text-muted, currentColor)}.language-switcher-icon{width:1rem;height:1rem;flex-shrink:0}.language-switcher-select{background:transparent;color:inherit;border:1px solid var(--color-border-strong, currentColor);border-radius:var(--radius-md, .375rem);padding:.3rem .4rem;font-size:.875rem;cursor:pointer}.language-switcher-select:focus-visible{outline:2px solid var(--color-accent-strong, currentColor);outline-offset:1px}.site-main{flex:1;width:100%;max-width:72rem;margin:0 auto;padding:2rem 1.5rem 3rem;min-width:0}.site-main-designer{max-width:none;padding:0;display:flex;flex-direction:column}.user-menu{position:relative}.user-menu-trigger{display:inline-flex;align-items:center;gap:.5rem;background:transparent;border:1px solid var(--color-border-strong);border-radius:var(--radius-md);padding:.45rem .75rem;cursor:pointer;max-width:18rem}.user-menu-trigger:hover{border-color:var(--color-accent)}.user-menu-email{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.875rem}.user-menu-caret{width:.875rem;height:.875rem;color:var(--color-text-faint);flex-shrink:0}.user-menu-panel{position:absolute;right:0;top:calc(100% + .375rem);min-width:14rem;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-panel);padding:.75rem;display:flex;flex-direction:column;gap:.5rem;z-index:100}.user-menu-panel-email{font-size:.8125rem;color:var(--color-text-muted);overflow-wrap:anywhere;padding:0 .25rem}.user-menu-item{display:flex;align-items:center;gap:.5rem;width:100%;background:transparent;border:none;border-radius:var(--radius-md);padding:.5rem .75rem;cursor:pointer;font-weight:600;text-align:left}.user-menu-item:hover:not(:disabled){background:var(--color-surface-sunken)}.user-menu-item:disabled{opacity:.65;cursor:not-allowed}.user-menu-item-icon{width:1rem;height:1rem}.button-primary,.button-secondary,.button-danger{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;border-radius:var(--radius-md);padding:.5625rem 1rem;border:1px solid transparent;cursor:pointer;font-weight:600;text-decoration:none}.button-primary{background:var(--color-accent);color:var(--color-accent-contrast)}.button-primary:hover:not(:disabled):not([aria-disabled=true]){background:var(--color-accent-strong)}.button-secondary{background:var(--color-surface);border-color:var(--color-border-strong);color:var(--color-text)}.button-secondary:hover:not(:disabled):not([aria-disabled=true]){border-color:var(--color-accent);color:var(--color-accent-strong)}.button-danger{background:transparent;border-color:var(--color-danger-border);color:var(--color-danger)}.button-danger:hover:not(:disabled):not([aria-disabled=true]){background:var(--color-danger-bg);border-color:var(--color-danger)}.button-primary:disabled,.button-secondary:disabled,.button-danger:disabled,.toggle-button:disabled,.button-primary[aria-disabled=true],.button-secondary[aria-disabled=true]{opacity:.6;cursor:not-allowed}.button-lg{padding:.75rem 1.5rem;font-size:1rem}.button-sm{padding:.375rem .625rem;font-size:.8125rem}@media(pointer:coarse){.button-sm{min-height:2.75rem}}.button-icon{width:1rem;height:1rem;flex-shrink:0}.toggle-button{display:inline-flex;align-items:center;gap:.375rem;background:var(--color-surface);border:1px solid var(--color-border-strong);border-radius:999px;padding:.3rem .7rem;min-height:2.75rem;cursor:pointer;font-size:.8125rem;font-weight:600;color:var(--color-text-muted)}.toggle-button:hover{border-color:var(--color-accent);color:var(--color-accent-strong)}.toggle-button-active{background:var(--color-accent-soft);border-color:var(--color-accent);color:var(--color-accent-strong)}.form-field{display:flex;flex-direction:column;gap:.375rem}.form-field-label{font-size:.8125rem;font-weight:600;color:var(--color-text-muted)}.form-field input,.form-field select,.form-field textarea{background:var(--color-surface);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);padding:.5625rem .75rem;color:var(--color-text)}.form-field input[aria-invalid=true]{border-color:var(--color-danger)}.form-field-hint{color:var(--color-text-faint);font-size:.8125rem}.error-notice{display:flex;align-items:flex-start;gap:.5rem;background:var(--color-danger-bg);border:1px solid var(--color-danger-border);color:var(--color-danger);border-radius:var(--radius-md);padding:.625rem .75rem;font-size:.875rem}.error-notice-icon{width:1rem;height:1rem;flex-shrink:0;margin-top:.125rem}.success-notice{background:var(--color-success-bg);border:1px solid var(--color-success);color:var(--color-success);border-radius:var(--radius-md);padding:.625rem .75rem;font-size:.875rem;margin-top:.75rem}.landing-hero{text-align:center;padding:4rem 1rem 3rem;max-width:42rem;margin:0 auto;background:radial-gradient(circle at top,rgba(59,111,224,.1),transparent 65%)}.landing-eyebrow{color:var(--color-accent);font-weight:700;text-transform:uppercase;letter-spacing:.08em;font-size:.8125rem;margin-bottom:.75rem}.landing-title{font-size:2.75rem;line-height:1.1;font-weight:800;letter-spacing:-.02em}.landing-subtitle{margin-top:1rem;color:var(--color-text-muted);font-size:1.125rem}.landing-cta{margin-top:2rem;display:flex;justify-content:center;gap:.75rem;flex-wrap:wrap}.landing-features{display:grid;grid-template-columns:repeat(auto-fit,minmax(16rem,1fr));gap:1rem;padding:1rem 0 2rem}.feature-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:1.5rem;box-shadow:var(--shadow-card);display:flex;flex-direction:column;gap:.5rem}.feature-card-icon{width:1.75rem;height:1.75rem;color:var(--color-accent)}.feature-card-title{font-size:1.125rem;font-weight:700}.feature-card-text{color:var(--color-text-muted)}.auth-screen{display:flex;justify-content:center;padding:2rem 0}.auth-card{width:100%;max-width:24rem;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:2rem;display:flex;flex-direction:column;gap:.75rem;box-shadow:var(--shadow-card)}.auth-title{font-size:1.375rem;font-weight:700}.auth-subtitle{color:var(--color-text-muted);margin-bottom:.5rem}.auth-form{display:flex;flex-direction:column;gap:1rem}.auth-footer{color:var(--color-text-muted);font-size:.875rem}.page-heading{font-size:1.5rem;font-weight:700;margin-bottom:.25rem}.page-heading-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1.25rem}.page-placeholder-text{color:var(--color-text-muted)}.empty-state{margin-top:1.5rem;color:var(--color-text-muted)}.page-error{margin-top:1.5rem;display:flex;flex-direction:column;align-items:flex-start;gap:.75rem}.not-found{display:flex;flex-direction:column;gap:.75rem;padding-top:2rem}.tab-bar{display:flex;gap:.25rem;border-bottom:1px solid var(--color-border);margin-bottom:1.25rem}.tab{background:transparent;border:none;border-bottom:2px solid transparent;padding:.5rem .875rem;cursor:pointer;font-weight:600;color:var(--color-text-muted)}.tab:hover{color:var(--color-text)}.tab-active{color:var(--color-accent-strong);border-bottom-color:var(--color-accent)}.claim-form,.new-design-form{display:flex;align-items:flex-end;gap:.75rem;flex-wrap:wrap;margin-bottom:1rem}.claim-form .form-field,.new-design-form .form-field{min-width:14rem}.new-design-type{display:flex;gap:.5rem;align-items:center}.design-type-option{font:inherit;padding:.45rem .9rem;border-radius:.5rem;border:1px solid var(--color-border, #334155);background:transparent;color:var(--color-text-muted, #94a3b8);cursor:pointer;transition:border-color .15s ease,color .15s ease,background .15s ease}.design-type-option:hover{border-color:var(--color-accent, #7c3aed);color:var(--color-text, #f8fafc)}.design-type-option.selected{border-color:var(--color-accent, #7c3aed);background:var(--color-accent-soft, rgba(124, 58, 237, .16));color:var(--color-text, #f8fafc);font-weight:600}.device-card-list{list-style:none;margin:1.5rem 0 0;padding:0;display:flex;flex-direction:column;gap:1rem}.device-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:1.25rem;box-shadow:var(--shadow-card);display:flex;flex-direction:column;gap:1rem}.device-card-head{display:flex;align-items:flex-start;gap:.875rem;flex-wrap:wrap}.device-card-icon{width:1.75rem;height:1.75rem;color:var(--color-accent);flex-shrink:0;margin-top:.125rem}.device-card-identity{min-width:0;flex:1}.device-card-name{font-weight:700;overflow-wrap:anywhere}.device-card-meta{color:var(--color-text-muted);font-size:.8125rem}.device-card-badges{display:flex;gap:.5rem;flex-wrap:wrap}.device-card-actions{display:flex;gap:.625rem;flex-wrap:wrap}.status-badge{display:inline-flex;align-items:center;padding:.125rem .625rem;border-radius:999px;font-size:.8125rem;font-weight:600}.status-badge-provisioned{background:var(--color-surface-sunken);color:var(--color-text-muted)}.status-badge-active{background:var(--color-accent-soft);color:var(--color-accent-strong)}.status-badge-disabled{background:var(--color-danger-bg);color:var(--color-danger)}.status-badge-online{background:var(--color-success-bg);color:var(--color-success)}.status-badge-offline{background:var(--color-surface-sunken);color:var(--color-text-muted)}.presence-dot{width:.375rem;height:.375rem;border-radius:999px;background:currentColor;margin-right:.375rem}.application-status-pending{background:var(--color-accent-soft);color:var(--color-accent-strong)}.application-status-applied{background:var(--color-success-bg);color:var(--color-success)}.application-status-failed{background:var(--color-danger-bg);color:var(--color-danger)}.application-status-expired,.application-status-canceled,.design-status-draft{background:var(--color-surface-sunken);color:var(--color-text-muted)}.design-status-published{background:var(--color-success-bg);color:var(--color-success)}.design-status-review{background:var(--color-accent-soft);color:var(--color-accent-strong)}.design-status-rejected{background:var(--color-danger-bg);color:var(--color-danger)}.device-applications{border-top:1px solid var(--color-border);padding-top:.875rem}.device-applications-title{font-size:.9375rem;font-weight:700;margin-bottom:.5rem}.application-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.5rem}.application-row{display:flex;align-items:center;gap:.625rem;flex-wrap:wrap;font-size:.875rem}.application-design{font-weight:600}.application-error{color:var(--color-danger);font-size:.8125rem}.application-pending-hint{color:var(--color-text-muted);font-size:.8125rem}.design-card-grid{list-style:none;margin:1.25rem 0 0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(15rem,1fr));gap:1rem}.design-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);overflow:hidden;display:flex;flex-direction:column}.design-card:hover{border-color:var(--color-border-strong)}.design-thumb-button{display:block;border:none;padding:0;background:none;cursor:pointer;width:100%;text-align:left}.design-thumb{aspect-ratio:4 / 3;background:var(--color-surface-sunken);display:flex;align-items:center;justify-content:center;overflow:hidden}.design-thumb-image{width:100%;height:100%;object-fit:cover}.design-thumb-initial{font-size:2.5rem;font-weight:800;color:var(--color-border-strong)}.design-card-body{padding:.875rem 1rem 0;display:flex;flex-direction:column;gap:.25rem;align-items:flex-start}.design-card-name{font-weight:700;overflow-wrap:anywhere}.design-card-author,.design-card-review-note{color:var(--color-text-muted);font-size:.8125rem}.design-card-counts{display:flex;gap:.875rem;color:var(--color-text-faint);font-size:.8125rem}.design-card-counts span{display:inline-flex;align-items:center;gap:.25rem}.count-icon{width:.875rem;height:.875rem}.design-card-actions{margin-top:auto;padding:.875rem 1rem 1rem;display:flex;gap:.5rem;flex-wrap:wrap}.gallery-toolbar{display:flex;align-items:center;gap:1rem;flex-wrap:wrap;margin-bottom:.5rem}.gallery-search{display:flex;gap:.5rem;flex:1;min-width:14rem;max-width:26rem}.gallery-search input{flex:1;background:var(--color-surface);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);padding:.5625rem .75rem}.sort-toggle{display:flex;gap:.25rem;border:1px solid var(--color-border-strong);border-radius:var(--radius-md);padding:.125rem;background:var(--color-surface)}.sort-toggle .tab{border-bottom:none;border-radius:calc(var(--radius-md) - .125rem);padding:.375rem .75rem}.sort-toggle .tab-active{background:var(--color-accent-soft)}.load-more{margin-top:1.5rem;display:flex;justify-content:center}.gallery-detail-panel{width:min(36rem,100%)}.gallery-detail-description{color:var(--color-text-muted);white-space:pre-wrap}.dialog-overlay{position:fixed;inset:0;background:#17213a73;display:flex;align-items:center;justify-content:center;padding:1.5rem;z-index:200}.dialog-panel{background:var(--color-surface);border:1px solid var(--color-border);box-shadow:var(--shadow-panel);padding:1.5rem;display:flex;flex-direction:column;gap:1rem;overflow-y:auto;width:min(32rem,100%);max-height:90vh;border-radius:var(--radius-lg)}.dialog-panel h2{font-size:1.125rem;font-weight:700}.confirm-panel{width:min(26rem,100%)}.drawer-actions{display:flex;justify-content:flex-end;gap:.75rem;flex-wrap:wrap}.dialog-subheading{font-size:1rem;font-weight:600}.turnstile-widget{min-height:0}.picker-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.5rem;max-height:18rem;overflow-y:auto}.picker-option{display:flex;align-items:center;gap:.625rem;border:1px solid var(--color-border);border-radius:var(--radius-md);padding:.625rem .75rem;cursor:pointer}.picker-option:hover{border-color:var(--color-accent)}.picker-option:has(:checked){border-color:var(--color-accent);background:var(--color-accent-soft)}.picker-option-name{font-weight:600;overflow-wrap:anywhere}.picker-option-meta{margin-left:auto;color:var(--color-text-muted);font-size:.8125rem;overflow-wrap:anywhere;text-align:right}.apply-success{display:flex;flex-direction:column;gap:1rem}.designer-status{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.75rem;padding:3rem 1.5rem;text-align:center}.designer-status-icon{width:2.5rem;height:2.5rem;color:var(--color-text-faint)}.designer-status-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:.75rem}.designer-frame-wrap{flex:1;display:flex;min-height:calc(100vh - var(--shell-header-height))}.designer-frame{flex:1;border:none;width:100%;min-height:calc(100vh - var(--shell-header-height));background:var(--color-surface)}@media(max-width:700px){.site-header{gap:.75rem;padding:0 1rem}.site-nav-link{padding:.5rem .625rem}.site-main{padding:1.25rem 1rem 2.5rem}.landing-title{font-size:2rem}.user-menu-email{max-width:8rem}}.account-section{margin-top:2rem}.account-section h2{font-size:1.125rem;font-weight:700;margin-bottom:.75rem}.verify-banner{margin-top:1.5rem;display:flex;align-items:center;justify-content:space-between;gap:.75rem;flex-wrap:wrap;background:var(--color-accent-soft);border:1px solid var(--color-accent);color:var(--color-accent-strong);border-radius:var(--radius-md);padding:.625rem .75rem;font-size:.875rem}.verify-banner-text{margin:0}.profile-row{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap;margin-top:.75rem}.profile-row-label{min-width:7rem;font-weight:600;color:var(--color-text-muted);font-size:.875rem}.profile-row-value{display:inline-flex;align-items:center;gap:.5rem;flex-wrap:wrap}.profile-edit-form{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.table-scroll{overflow-x:auto;border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface)}.data-table{width:100%;border-collapse:collapse;font-size:.9375rem}.data-table th,.data-table td{text-align:left;padding:.625rem .875rem;border-bottom:1px solid var(--color-border);white-space:nowrap}.data-table thead th{font-weight:600;color:var(--color-text-muted);background:var(--color-surface-sunken)}.data-table tbody tr:last-child th,.data-table tbody tr:last-child td{border-bottom:none}.table-actions{display:flex;gap:.5rem;flex-wrap:wrap}.pagination-controls{display:flex;gap:.5rem;margin-top:.75rem}.account-form{margin-top:1rem;display:flex;flex-direction:column;gap:1rem;max-width:24rem}.storage-card{margin-top:.75rem;display:flex;flex-direction:column;gap:.5rem;max-width:32rem}.storage-meter{height:.625rem;background:var(--color-surface-sunken);border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden}.storage-meter-fill{height:100%;background:var(--color-accent)}.storage-meter-fill-warning{background:var(--color-danger)}.storage-usage-text{font-size:.9375rem}.auth-link-button{background:none;border:none;padding:0;color:var(--color-accent);cursor:pointer}
