@import "https://fonts.googleapis.com/css2?family=Fredoka:wght@400;500;600;700&family=Quicksand:wght@400;500;600;700&display=swap";:root{--md-sys-color-primary:#4b7bf5;--md-sys-color-on-primary:#fff;--md-sys-color-primary-container:#dce4ff;--md-sys-color-on-primary-container:#027;--md-sys-color-secondary:#ffb020;--md-sys-color-on-secondary:#fff;--md-sys-color-secondary-container:#ffecc2;--md-sys-color-on-secondary-container:#442a00;--md-sys-color-tertiary:#e91e63;--md-sys-color-on-tertiary:#fff;--md-sys-color-tertiary-container:#ffd9e2;--md-sys-color-on-tertiary-container:#3e0018;--md-sys-color-error:#ba1a1a;--md-sys-color-on-error:#fff;--md-sys-color-error-container:#ffdad6;--md-sys-color-on-error-container:#410002;--md-sys-color-background:#f4f8ff;--md-sys-color-on-background:#1a1c2e;--md-sys-color-surface:#fff;--md-sys-color-on-surface:#1a1c2e;--md-sys-color-surface-variant:#eef2fa;--md-sys-color-on-surface-variant:#43475e;--md-sys-color-outline:#8c95a6;--md-sys-color-outline-variant:#d3d9e8;--md-elevation-1:0px 4px 16px #4b7bf51a;--md-elevation-2:0px 8px 24px #4b7bf533;--md-elevation-3:0px 12px 32px #4b7bf54d;--md-shape-small:16px;--md-shape-medium:24px;--md-shape-large:32px;--md-shape-extra-large:999px;--md-transition-standard:all .4s cubic-bezier(.68, -.55, .265, 1.55);--md-transition-emphasized:all .6s cubic-bezier(.68, -.55, .265, 1.55)}:root.dark{--md-sys-color-primary:#82a8ff;--md-sys-color-on-primary:#027;--md-sys-color-primary-container:#1045a1;--md-sys-color-on-primary-container:#dce4ff;--md-sys-color-secondary:#ffc455;--md-sys-color-on-secondary:#442a00;--md-sys-color-secondary-container:#724c00;--md-sys-color-on-secondary-container:#ffecc2;--md-sys-color-tertiary:#ffb1c8;--md-sys-color-on-tertiary:#650028;--md-sys-color-tertiary-container:#8e003c;--md-sys-color-on-tertiary-container:#ffd9e2;--md-sys-color-error:#ffb4ab;--md-sys-color-on-error:#690005;--md-sys-color-error-container:#93000a;--md-sys-color-on-error-container:#ffdad6;--md-sys-color-background:#0b1021;--md-sys-color-on-background:#e2e4f6;--md-sys-color-surface:#141b33;--md-sys-color-on-surface:#e2e4f6;--md-sys-color-surface-variant:#283354;--md-sys-color-on-surface-variant:#c0c6d8;--md-sys-color-outline:#8c95a6;--md-sys-color-outline-variant:#43475e;--md-elevation-1:0px 4px 16px #82a8ff26;--md-elevation-2:0px 8px 24px #82a8ff40;--md-elevation-3:0px 12px 32px #82a8ff59}*{box-sizing:border-box;margin:0;padding:0}body{background-color:var(--md-sys-color-background);color:var(--md-sys-color-on-background);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-image:radial-gradient(circle at 10% 20%,#4b7bf50d 0%,#0000 40%),radial-gradient(circle at 90% 80%,#ffb0200d 0%,#0000 40%);font-family:Quicksand,system-ui,-apple-system,sans-serif;line-height:1.6;transition:background-color .5s,color .5s}:root.dark body{background-image:radial-gradient(circle at 20% 30%,#82a8ff1a 0%,#0000 50%),radial-gradient(circle at 80% 70%,#ffc4551a 0%,#0000 50%)}h1,h2,h3,h4,h5,h6{color:var(--md-sys-color-on-surface);letter-spacing:.5px;font-family:Fredoka,system-ui,sans-serif;font-weight:600}a{color:var(--md-sys-color-primary);transition:var(--md-transition-standard);text-decoration:none}a:hover{opacity:.8;display:inline-block;transform:scale(1.05)}.md-button{border-radius:var(--md-shape-extra-large);letter-spacing:.5px;cursor:pointer;transition:var(--md-transition-standard);border:none;justify-content:center;align-items:center;gap:10px;padding:12px 28px;font-family:Fredoka,sans-serif;font-size:16px;font-weight:500;display:inline-flex;position:relative;overflow:visible}.md-button:after{content:"";opacity:0;border-radius:inherit;background-color:currentColor;transition:opacity .2s;position:absolute;inset:0}.md-button:hover{transform:scale(1.05)translateY(-2px)}.md-button:active{transform:scale(.95)}.md-button:hover:after{opacity:.08}.md-button:active:after{opacity:.12}.md-button:disabled{opacity:.5;cursor:not-allowed;filter:grayscale(.5);transform:none}.md-button-filled{background-color:var(--md-sys-color-primary);color:var(--md-sys-color-on-primary);box-shadow:0 4px 12px color-mix(in srgb, var(--md-sys-color-primary) 40%, transparent)}.md-button-filled:hover{box-shadow:0 8px 20px color-mix(in srgb, var(--md-sys-color-primary) 60%, transparent)}.md-button-tonal{background-color:var(--md-sys-color-secondary-container);color:var(--md-sys-color-on-secondary-container)}.md-button-outlined{color:var(--md-sys-color-primary);border:2px solid var(--md-sys-color-outline);background-color:#0000}.md-button-outlined:hover{border-color:var(--md-sys-color-primary)}.md-button-text{color:var(--md-sys-color-primary);background-color:#0000;padding:12px 16px}.md-card{background-color:var(--md-sys-color-surface);color:var(--md-sys-color-on-surface);border-radius:var(--md-shape-medium);border:2px solid var(--md-sys-color-surface-variant);box-shadow:var(--md-elevation-1);transition:var(--md-transition-standard);overflow:hidden}.md-card:hover{box-shadow:var(--md-elevation-2);border-color:color-mix(in srgb, var(--md-sys-color-primary) 30%, transparent);transform:translateY(-4px)}.md-input-group{flex-direction:column;gap:8px;margin-bottom:20px;display:flex}.md-input-label{color:var(--md-sys-color-on-surface-variant);margin-left:8px;font-family:Fredoka,sans-serif;font-size:14px;font-weight:500}.md-input{background-color:var(--md-sys-color-surface-variant);color:var(--md-sys-color-on-surface);border-radius:var(--md-shape-small);transition:var(--md-transition-standard);border:2px solid #0000;outline:none;padding:16px 20px;font-family:Quicksand,sans-serif;font-size:16px;font-weight:500}.md-input:focus{background-color:var(--md-sys-color-surface);border:2px solid var(--md-sys-color-primary);box-shadow:0 0 0 4px color-mix(in srgb, var(--md-sys-color-primary) 20%, transparent);transform:scale(1.02)}.glass-effect{background:color-mix(in srgb, var(--md-sys-color-surface) 60%, transparent);-webkit-backdrop-filter:blur(16px);border-radius:var(--md-shape-medium);border:1px solid #fff3}:root.dark .glass-effect{border:1px solid #ffffff0d}@keyframes fadeIn{0%{opacity:0;transform:translateY(20px)scale(.95)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes pulseMagical{0%{transform:scale(1);box-shadow:0 0 #4b7bf566}50%{transform:scale(1.05);box-shadow:0 0 0 10px #4b7bf500}to{transform:scale(1);box-shadow:0 0 #4b7bf500}}.animate-fade-in{animation:.6s cubic-bezier(.68,-.55,.265,1.55) forwards fadeIn}.skeleton-loading{background:linear-gradient(90deg, var(--md-sys-color-surface-variant) 25%, color-mix(in srgb, var(--md-sys-color-primary) 10%, var(--md-sys-color-surface-variant)) 50%, var(--md-sys-color-surface-variant) 75%);border-radius:var(--md-shape-small);background-size:200% 100%;animation:2s ease-in-out infinite skeleton-loading}@keyframes skeleton-loading{0%{background-position:200% 0}to{background-position:-200% 0}}::-webkit-scrollbar{width:12px;height:12px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--md-sys-color-outline-variant);border:3px solid var(--md-sys-color-background);border-radius:999px}::-webkit-scrollbar-thumb:hover{background:var(--md-sys-color-primary)}.device-manager{position:relative}.device-trigger{background:color-mix(in srgb, var(--md-sys-color-surface-variant) 50%, transparent);border:2px solid var(--md-sys-color-primary-container);color:var(--md-sys-color-primary);cursor:pointer;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:999px;align-items:center;gap:12px;min-width:180px;padding:10px 18px;font-family:Fredoka,sans-serif;font-size:14px;font-weight:600;transition:all .4s cubic-bezier(.68,-.55,.265,1.55);display:flex;box-shadow:0 4px 12px #4b7bf51a}.device-trigger:hover{background:var(--md-sys-color-surface);border-color:var(--md-sys-color-primary);transform:scale(1.05);box-shadow:0 8px 24px #4b7bf533}.device-trigger .device-status-dot{border-radius:50%;flex-shrink:0;width:12px;height:12px;transition:all .3s}.device-status-dot.online{background:#34d399;animation:2s infinite alternate pulseMagical;box-shadow:0 0 12px #34d399cc}.device-status-dot.offline{background:var(--md-sys-color-outline)}.device-trigger .device-trigger-name{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.device-trigger .device-trigger-arrow{opacity:.8;color:var(--md-sys-color-tertiary);flex-shrink:0;transition:transform .4s cubic-bezier(.68,-.55,.265,1.55)}.device-trigger .device-trigger-arrow.open{transform:rotate(180deg)scale(1.2)}.device-dropdown{background:color-mix(in srgb, var(--md-sys-color-surface) 90%, transparent);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border:2px solid var(--md-sys-color-primary-container);border-radius:var(--md-shape-large);z-index:1000;transform-origin:top;min-width:300px;animation:.4s cubic-bezier(.68,-.55,.265,1.55) deviceDropdownIn;position:absolute;top:calc(100% + 12px);left:0;right:0;overflow:hidden;box-shadow:0 16px 48px #4b7bf533}@keyframes deviceDropdownIn{0%{opacity:0;transform:translateY(-16px)scale(.9)}to{opacity:1;transform:translateY(0)scale(1)}}.device-dropdown-header{text-transform:uppercase;letter-spacing:1px;color:var(--md-sys-color-tertiary);border-bottom:2px dashed var(--md-sys-color-primary-container);padding:16px 20px;font-family:Fredoka,sans-serif;font-size:12px;font-weight:700}.device-list{flex-direction:column;gap:4px;max-height:280px;padding:8px;display:flex;overflow-y:auto}.device-list-item{border-radius:var(--md-shape-medium);cursor:pointer;border:2px solid #0000;align-items:center;gap:12px;padding:12px 16px;transition:all .3s cubic-bezier(.68,-.55,.265,1.55);display:flex}.device-list-item:hover{background:var(--md-sys-color-surface-variant);transform:translate(4px)}.device-list-item.active{background:linear-gradient(135deg, var(--md-sys-color-primary-container), color-mix(in srgb, var(--md-sys-color-surface) 50%, transparent));border-color:color-mix(in srgb, var(--md-sys-color-primary) 30%, transparent)}.device-list-item .device-info{flex:1;min-width:0}.device-list-item .device-name{color:var(--md-sys-color-primary);text-overflow:ellipsis;white-space:nowrap;font-family:Fredoka,sans-serif;font-size:15px;font-weight:600;overflow:hidden}.device-list-item .device-meta{color:var(--md-sys-color-on-surface-variant);margin-top:4px;font-family:Quicksand,monospace;font-size:12px;font-weight:600}.device-unbind-btn{background:var(--md-sys-color-error-container);color:var(--md-sys-color-error);cursor:pointer;opacity:0;border:none;border-radius:50%;flex-shrink:0;padding:8px;font-size:14px;transition:all .3s cubic-bezier(.68,-.55,.265,1.55);transform:scale(.8)}.device-list-item:hover .device-unbind-btn{opacity:1;transform:scale(1)}.device-unbind-btn:hover{background:var(--md-sys-color-error);color:#fff;transform:scale(1.2)rotate(15deg)}.device-dropdown-footer{border-top:2px dashed var(--md-sys-color-primary-container);padding:12px}.device-add-btn{border-radius:var(--md-shape-extra-large);border:2px dashed var(--md-sys-color-primary);width:100%;color:var(--md-sys-color-primary);cursor:pointer;background:0 0;justify-content:center;align-items:center;gap:8px;padding:12px;font-family:Fredoka,sans-serif;font-size:15px;font-weight:600;transition:all .3s cubic-bezier(.68,-.55,.265,1.55);display:flex}.device-add-btn:hover{background:var(--md-sys-color-primary);color:#fff;box-shadow:0 4px 16px color-mix(in srgb, var(--md-sys-color-primary) 40%, transparent);transform:scale(1.02)}.device-trigger.no-device{color:var(--md-sys-color-tertiary);border-style:dashed;border-color:var(--md-sys-color-tertiary);background:0 0}.device-dropdown-overlay{z-index:999;position:fixed;inset:0}.device-confirm-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:2000;background:#0b102199;justify-content:center;align-items:center;animation:.4s cubic-bezier(.68,-.55,.265,1.55) fadeIn;display:flex;position:fixed;inset:0}.device-confirm-dialog{background:var(--md-sys-color-surface);border:4px solid var(--md-sys-color-surface-variant);border-radius:var(--md-shape-large);width:90%;max-width:400px;padding:32px;animation:.4s cubic-bezier(.68,-.55,.265,1.55) popIn;transform:scale(1);box-shadow:0 24px 64px #0003}.device-confirm-dialog h3{color:var(--md-sys-color-error);margin:0 0 12px;font-family:Fredoka,sans-serif;font-size:24px}.device-confirm-dialog p{color:var(--md-sys-color-on-surface-variant);margin:0 0 28px;font-family:Quicksand,sans-serif;font-size:16px;font-weight:500;line-height:1.6}.device-confirm-actions{justify-content:flex-end;gap:12px;display:flex}.device-confirm-actions button{border-radius:var(--md-shape-extra-large);cursor:pointer;border:none;padding:12px 24px;font-family:Fredoka,sans-serif;font-size:16px;font-weight:600;transition:all .3s cubic-bezier(.68,-.55,.265,1.55)}.device-confirm-cancel{background:var(--md-sys-color-surface-variant);color:var(--md-sys-color-on-surface)}.device-confirm-cancel:hover{background:var(--md-sys-color-outline-variant);transform:scale(1.05)}.device-confirm-danger{background:var(--md-sys-color-error);color:#fff;box-shadow:0 4px 16px #ef44444d}.device-confirm-danger:hover{background:#dc2626;transform:scale(1.05)translateY(-2px);box-shadow:0 8px 24px #ef444466}.layout-container{background-color:var(--md-sys-color-background);width:100vw;height:100vh;display:flex;overflow:hidden}.sidebar{background-color:color-mix(in srgb, var(--md-sys-color-surface) 90%, transparent);border-right:2px solid var(--md-sys-color-primary-container);z-index:100;flex-direction:column;width:280px;transition:transform .4s cubic-bezier(.68,-.55,.265,1.55);display:flex;box-shadow:4px 0 24px #4b7bf50d}@media (prefers-color-scheme:dark){.sidebar{box-shadow:4px 0 24px #82a8ff1a}}.sidebar-header{border-bottom:2px dashed var(--md-sys-color-primary-container);align-items:center;height:72px;padding:0 24px;display:flex}.logo-container{transition:var(--md-transition-standard);cursor:pointer;align-items:center;gap:12px;display:flex}.logo-container:hover{transform:scale(1.05)rotate(-2deg)}.logo-icon{background:linear-gradient(135deg, var(--md-sys-color-primary), var(--md-sys-color-tertiary));width:36px;height:36px;color:var(--md-sys-color-on-primary);box-shadow:0 4px 12px color-mix(in srgb, var(--md-sys-color-tertiary) 40%, transparent);border-radius:12px;justify-content:center;align-items:center;font-size:20px;font-weight:700;display:flex}.logo-text{background:linear-gradient(90deg, var(--md-sys-color-primary), var(--md-sys-color-tertiary));-webkit-text-fill-color:transparent;text-shadow:0 2px 4px #0000000d;-webkit-background-clip:text;font-family:Fredoka,sans-serif;font-size:22px;font-weight:700}.sidebar-device-info{background-color:var(--md-sys-color-secondary-container);border-radius:var(--md-shape-medium);transition:var(--md-transition-standard);border:2px solid #0000;align-items:center;gap:12px;margin:24px 16px 16px;padding:16px;display:flex;box-shadow:inset 0 2px 8px #ffffff80}.sidebar-device-info:hover{border-color:var(--md-sys-color-secondary);transform:translateY(-2px)}.device-status-indicator{background-color:var(--md-sys-color-outline);border-radius:50%;width:12px;height:12px}.device-status-indicator.online{background-color:#14b8a6;animation:2s infinite pulseMagical;box-shadow:0 0 12px #14b8a699}.device-details{flex-direction:column;display:flex}.device-label{text-transform:uppercase;letter-spacing:1px;color:var(--md-sys-color-secondary);font-family:Fredoka,sans-serif;font-size:12px;font-weight:600}.device-id{color:var(--md-sys-color-on-secondary-container);font-family:Quicksand,monospace;font-size:14px;font-weight:700}.sidebar-nav{flex-direction:column;flex:1;gap:8px;padding:8px 16px;display:flex;overflow-y:auto}.nav-item{border-radius:var(--md-shape-extra-large);color:var(--md-sys-color-on-surface-variant);transition:var(--md-transition-standard);cursor:pointer;text-align:left;background:0 0;border:2px solid #0000;align-items:center;gap:16px;width:100%;padding:14px 16px;font-family:Fredoka,sans-serif;font-size:16px;font-weight:500;display:flex}.nav-item:hover{background-color:var(--md-sys-color-surface-variant);color:var(--md-sys-color-primary);transform:scale(1.02)}.nav-item.active{background-color:var(--md-sys-color-primary-container);color:var(--md-sys-color-primary);border-color:color-mix(in srgb, var(--md-sys-color-primary) 30%, transparent);box-shadow:0 4px 12px color-mix(in srgb, var(--md-sys-color-primary) 15%, transparent);font-weight:600}.nav-icon{justify-content:center;align-items:center;transition:transform .3s;display:flex}.nav-item:hover .nav-icon{transform:scale(1.2)rotate(5deg)}.sidebar-footer{border-top:2px dashed var(--md-sys-color-primary-container);padding:16px}.main-wrapper{flex-direction:column;flex:1;display:flex;overflow:hidden}.topbar{background-color:color-mix(in srgb, var(--md-sys-color-surface) 90%, transparent);border-bottom:2px solid var(--md-sys-color-primary-container);z-index:10;align-items:center;gap:16px;height:72px;padding:0 24px;display:flex;box-shadow:0 4px 24px #4b7bf50d}.mobile-menu-btn{background:var(--md-sys-color-surface-variant);color:var(--md-sys-color-primary);cursor:pointer;transition:var(--md-transition-standard);border:2px solid #0000;border-radius:50%;padding:10px;display:none}.mobile-menu-btn:hover{border-color:var(--md-sys-color-primary);transform:scale(1.1)}.topbar-title{color:var(--md-sys-color-primary);text-shadow:0 2px 4px #4b7bf51a;flex:1;font-family:Fredoka,sans-serif;font-size:24px;font-weight:700}.user-avatar{background:linear-gradient(135deg, var(--md-sys-color-secondary), #ff8a00);width:42px;height:42px;color:var(--md-sys-color-on-secondary);transition:var(--md-transition-standard);cursor:pointer;border:2px solid #fff;border-radius:50%;justify-content:center;align-items:center;font-family:Fredoka,sans-serif;font-size:18px;font-weight:700;display:flex;box-shadow:0 4px 12px #ffb0204d}.user-avatar:hover{transform:scale(1.1)rotate(10deg)}.main-content{background-color:var(--md-sys-color-background);flex:1;padding:32px;position:relative;overflow-y:auto}@media (width<=768px){.sidebar{position:fixed;top:0;bottom:0;left:0;transform:translate(-100%)}.sidebar.open{transform:translate(0)}.mobile-menu-btn{display:flex}.mobile-overlay{z-index:90;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);transition:var(--md-transition-standard);background-color:#0b102199;position:fixed;inset:0}}.marketing-page{--ink:#18223a;--muted:#5c6680;--paper:#fbf8ef;--surface:#fff;--line:#d9dfdb;--blue:#2f6df6;--blue-dark:#1e4fae;--teal:#1a9a8a;--rose:#e85d75;--yellow:#f4b942;--green:#4f9f61;background:linear-gradient(180deg, #2f6df614, #2f6df600 360px), var(--paper);min-height:100vh;color:var(--ink);overflow-x:hidden}.marketing-page h1,.marketing-page h2,.marketing-page h3,.marketing-page p{color:inherit;letter-spacing:0}.marketing-page a:hover{opacity:1;display:inline-flex;transform:none}.marketing-nav{z-index:20;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#fbf8efeb;border-bottom:1px solid #18223a1a;grid-template-columns:auto 1fr auto;align-items:center;gap:28px;width:min(1180px,100% - 40px);min-height:74px;margin:0 auto;display:grid;position:sticky;top:0}.marketing-brand,.marketing-nav-cta{align-items:center;gap:10px;display:inline-flex}.marketing-brand{color:var(--ink);font-family:Fredoka,system-ui,sans-serif;font-size:22px;font-weight:700}.marketing-brand:hover{color:var(--ink)}.marketing-brand-mark{width:38px;height:38px;color:var(--blue);background:#fff;border:2px solid #18223a1f;border-radius:8px;justify-content:center;align-items:center;display:inline-flex;box-shadow:0 10px 24px #2f6df624}.marketing-links{justify-content:center;gap:26px;display:flex}.marketing-links a{color:var(--muted);font-weight:700}.marketing-links a:hover{color:var(--blue-dark)}.marketing-nav-cta{min-height:42px;color:var(--blue-dark);background:#fff;border:2px solid #18223a1f;border-radius:999px;justify-content:center;padding:0 18px;font-weight:800;box-shadow:0 12px 24px #18223a14}.marketing-nav-cta:hover{color:var(--blue-dark);border-color:#2f6df647}.marketing-hero{grid-template-columns:minmax(0,1fr) minmax(420px,.92fr);align-items:center;gap:54px;width:min(1180px,100% - 40px);min-height:min(660px,100svh - 80px);margin:0 auto;padding:54px 0 42px;display:grid}.marketing-hero-copy{max-width:650px}.marketing-eyebrow{color:var(--teal);align-items:center;gap:8px;margin-bottom:18px;font-weight:800;display:inline-flex}.marketing-hero h1{max-width:660px;font-size:64px;font-weight:700;line-height:.96}.marketing-hero-lede{max-width:580px;color:var(--muted);margin-top:24px;font-size:20px;font-weight:600;line-height:1.55}.marketing-hero-actions{flex-wrap:wrap;gap:14px;margin-top:32px;display:flex}.marketing-button{border-radius:999px;justify-content:center;align-items:center;gap:10px;min-height:54px;padding:0 24px;font-family:Fredoka,system-ui,sans-serif;font-size:17px;font-weight:700;display:inline-flex}.marketing-button:hover{display:inline-flex;transform:translateY(-2px)}.marketing-button-primary{background:var(--blue);color:#fff;box-shadow:0 18px 34px #2f6df647}.marketing-button-primary:hover{color:#fff;background:var(--blue-dark)}.marketing-button-secondary{color:var(--ink);background:#fff;border:2px solid #18223a29}.marketing-button-secondary:hover{color:var(--ink);border-color:#2f6df647}.marketing-hero-facts{flex-wrap:wrap;gap:10px;margin-top:28px;display:flex}.marketing-hero-facts span{min-height:34px;color:var(--muted);background:#ffffffb8;border:1px solid #18223a1f;border-radius:999px;align-items:center;padding:0 12px;font-size:14px;font-weight:800;display:inline-flex}.marketing-hero-visual{min-height:500px;position:relative}.workshop-board{background:linear-gradient(90deg,#ffffff94 0 1px,#0000 1px 80px),linear-gradient(#ffffff94 0 1px,#0000 1px 80px),linear-gradient(135deg,#8fd7cc,#f7d97c 48%,#f7a1a8);border:2px solid #18223a21;border-radius:8px;position:absolute;inset:28px 0 16px;box-shadow:0 24px 70px #18223a2e}.workshop-board:before{content:"";background:#86583b;border-radius:8px;height:82px;position:absolute;bottom:32px;left:28px;right:28px;box-shadow:inset 0 12px #ffffff29}.workshop-pin{background:#fff;border:3px solid #18223a29;border-radius:50%;width:22px;height:22px;position:absolute;top:20px}.workshop-pin-left{left:24px}.workshop-pin-right{right:24px}.paper-sheet{aspect-ratio:1/1.18;background:#fffdf7;border:2px solid #18223a1f;border-radius:8px;width:58%;max-width:330px;position:absolute;bottom:104px;right:42px;transform:rotate(2deg);box-shadow:0 18px 36px #18223a29}.paper-sun{border:4px solid var(--yellow);border-radius:50%;width:54px;height:54px;position:absolute;top:38px;right:44px}.paper-line{background:var(--ink);opacity:.74;border-radius:999px;height:4px;position:absolute;left:34px;right:34px}.paper-line-top{top:126px;transform:rotate(-6deg)}.paper-line-mid{background:var(--teal);width:55%;top:168px;transform:rotate(8deg)}.paper-line-bottom{background:var(--rose);top:218px;transform:rotate(-2deg)}.robot-rail{background:#223051;border-radius:999px;height:18px;position:absolute;top:118px;left:58px;right:72px;box-shadow:0 10px #18223a1f}.robot-carriage{background:#fff;border:3px solid #223051;border-radius:8px;width:126px;height:112px;position:absolute;top:-50px;left:26%;box-shadow:0 18px 34px #18223a2e}.robot-carriage:before,.robot-carriage:after{content:"";background:var(--yellow);border:3px solid #223051;border-radius:50%;width:18px;height:18px;position:absolute;top:-20px}.robot-carriage:before{left:20px}.robot-carriage:after{right:20px}.robot-face{background:#223051;border-radius:8px;justify-content:center;align-items:center;gap:18px;width:82px;height:42px;margin:20px auto 0;display:flex}.robot-face span{background:#8fd7cc;border-radius:50%;width:10px;height:10px}.robot-pen{background:var(--rose);border:3px solid #223051;border-radius:999px;width:16px;height:70px;position:absolute;bottom:-54px;left:50%;transform:translate(-50%)}.robot-pen:after{content:"";border-top:16px solid #223051;border-left:8px solid #0000;border-right:8px solid #0000;width:0;height:0;position:absolute;bottom:-15px;left:50%;transform:translate(-50%)}.workshop-tools{gap:14px;display:flex;position:absolute;bottom:58px;left:58px}.tool-dot{border:3px solid #18223a29;border-radius:50%;width:34px;height:34px}.tool-blue{background:var(--blue)}.tool-rose{background:var(--rose)}.tool-green{background:var(--green)}.marketing-proof-band{background:#18223a1c;border:1px solid #18223a1c;border-radius:8px;grid-template-columns:repeat(3,1fr);gap:1px;width:min(1180px,100% - 40px);margin:0 auto 54px;display:grid;overflow:hidden}.marketing-proof-band div{background:#ffffffc7;gap:4px;min-height:104px;padding:22px;display:grid}.marketing-proof-band strong{color:var(--ink);font-family:Fredoka,system-ui,sans-serif;font-size:20px}.marketing-proof-band span{color:var(--muted);font-weight:650}.marketing-section{width:min(1180px,100% - 40px);margin:0 auto;padding:44px 0}.marketing-section-heading{max-width:690px;margin-bottom:26px}.marketing-section-heading p,.classroom-copy p{color:var(--rose);text-transform:uppercase;margin-bottom:8px;font-weight:900}.marketing-section-heading h2,.classroom-copy h2{font-size:42px;font-weight:700;line-height:1.08}.marketing-feature-grid,.marketing-workflow{grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;display:grid}.marketing-feature-card,.marketing-workflow-step{background:#ffffffd6;border:1px solid #18223a1a;border-radius:8px;min-height:236px;padding:24px;box-shadow:0 16px 38px #18223a14}.marketing-feature-card svg,.marketing-workflow-step svg{color:var(--blue)}.marketing-feature-card h3,.marketing-workflow-step h3{margin-top:18px;font-size:24px}.marketing-feature-card p,.marketing-workflow-step p{color:var(--muted);margin-top:10px;font-weight:650}.marketing-workflow-section{padding-top:28px}.marketing-workflow-step{position:relative}.workflow-index{background:var(--yellow);width:34px;height:34px;color:var(--ink);border-radius:50%;justify-content:center;align-items:center;font-family:Fredoka,system-ui,sans-serif;font-weight:800;display:inline-flex;position:absolute;top:20px;right:20px}.marketing-classroom{background:linear-gradient(135deg,#2f6df61f,#1a9a8a1f),#fff;border:1px solid #18223a1a;border-radius:8px;grid-template-columns:minmax(0,1fr) minmax(320px,.72fr);align-items:center;gap:34px;width:min(1180px,100% - 40px);margin:22px auto 72px;padding:34px;display:grid}.classroom-copy span{max-width:650px;color:var(--muted);margin-top:14px;font-size:18px;font-weight:650;line-height:1.6;display:block}.classroom-badges{gap:12px;display:grid}.classroom-badges div{min-height:62px;color:var(--ink);background:#ffffffd1;border:1px solid #18223a1a;border-radius:8px;align-items:center;gap:12px;padding:0 18px;font-weight:850;display:flex}.classroom-badges svg{color:var(--teal);flex:none}@media (width<=980px){.marketing-nav{grid-template-columns:auto auto}.marketing-links{display:none}.marketing-hero{grid-template-columns:1fr;gap:30px;min-height:auto;padding-top:42px}.marketing-hero h1{font-size:52px}.marketing-hero-visual{min-height:430px}.marketing-proof-band,.marketing-feature-grid,.marketing-workflow,.marketing-classroom{grid-template-columns:1fr}}@media (width<=640px){.marketing-nav,.marketing-hero,.marketing-proof-band,.marketing-section,.marketing-classroom{width:min(100% - 28px,1180px)}.marketing-nav{gap:12px;min-height:66px}.marketing-brand{font-size:19px}.marketing-brand-mark{width:34px;height:34px}.marketing-nav-cta{min-height:38px;padding:0 12px;font-size:14px}.marketing-hero{padding:32px 0 28px}.marketing-eyebrow{font-size:15px}.marketing-hero h1{font-size:38px;line-height:1.03}.marketing-hero-lede{font-size:17px}.marketing-hero-actions,.marketing-button{width:100%}.marketing-button{min-height:52px}.marketing-hero-visual{min-height:360px}.workshop-board{inset:18px 0 10px}.paper-sheet{width:62%;bottom:86px;right:22px}.paper-sun{width:40px;height:40px;top:28px;right:28px}.paper-line{left:24px;right:24px}.paper-line-top{top:94px}.paper-line-mid{top:128px}.paper-line-bottom{top:164px}.robot-rail{top:92px;left:36px;right:42px}.robot-carriage{width:104px;height:96px;left:16%}.workshop-tools{bottom:48px;left:38px}.tool-dot{width:28px;height:28px}.marketing-proof-band{margin-bottom:34px}.marketing-section{padding:32px 0}.marketing-section-heading h2,.classroom-copy h2{font-size:32px;line-height:1.14}.marketing-feature-card,.marketing-workflow-step{min-height:auto;padding:20px}.marketing-classroom{margin-bottom:44px;padding:22px}}.auth-container{background:radial-gradient(circle at top left, var(--md-sys-color-primary-container), var(--md-sys-color-background) 80%);justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex;position:relative;overflow:hidden}.auth-container:before,.auth-container:after{content:"";background:radial-gradient(circle,#ffb02026 0%,#0000 70%);border-radius:50%;width:300px;height:300px;animation:4s infinite alternate pulseMagical;position:absolute;top:-50px;right:-50px}.auth-container:after{background:radial-gradient(circle,#e91e6326 0%,#0000 70%);animation-delay:2s;inset:auto auto -100px -100px}.auth-card{background-color:color-mix(in srgb, var(--md-sys-color-surface) 80%, transparent);-webkit-backdrop-filter:blur(24px);border-radius:var(--md-shape-large);z-index:10;border:2px solid #fff6;flex-direction:column;gap:24px;width:100%;max-width:420px;padding:48px 32px;transition:transform .4s cubic-bezier(.68,-.55,.265,1.55);display:flex;transform:translateY(0);box-shadow:0 16px 48px #4b7bf526,inset 0 0 0 2px #fff3}.auth-card:hover{transform:translateY(-8px);box-shadow:0 24px 64px #4b7bf540,inset 0 0 0 2px #ffffff4d}@media (prefers-color-scheme:dark){.auth-card{border-color:#ffffff0d;box-shadow:0 16px 48px #00000080,inset 0 0 0 1px #ffffff0d}}.auth-header{text-align:center;flex-direction:column;align-items:center;gap:16px;display:flex}.auth-logo{background:linear-gradient(135deg, var(--md-sys-color-primary), var(--md-sys-color-tertiary));width:64px;height:64px;color:var(--md-sys-color-on-primary);box-shadow:0 8px 24px color-mix(in srgb, var(--md-sys-color-primary) 40%, transparent);border-radius:20px;justify-content:center;align-items:center;font-size:32px;font-weight:700;animation:3s infinite pulseMagical;display:flex}.auth-header h2{background:linear-gradient(90deg, var(--md-sys-color-primary), var(--md-sys-color-tertiary));-webkit-text-fill-color:transparent;-webkit-background-clip:text;margin:0;font-size:28px}.auth-header p{color:var(--md-sys-color-on-surface-variant);margin:0;font-family:Quicksand,sans-serif;font-size:16px;font-weight:500}.auth-error{background-color:var(--md-sys-color-error-container);color:var(--md-sys-color-on-error-container);border-radius:var(--md-shape-small);text-align:center;border:2px dashed var(--md-sys-color-error);padding:16px;font-family:Fredoka,sans-serif;font-size:14px;animation:.5s cubic-bezier(.68,-.55,.265,1.55) bounceError}@keyframes bounceError{0%{transform:scale(.9)}50%{transform:scale(1.05)}to{transform:scale(1)}}.auth-form{flex-direction:column;gap:20px;display:flex}.submit-btn{height:56px;margin-top:12px;font-size:18px}.auth-switch{text-align:center;color:var(--md-sys-color-on-surface-variant);margin-top:8px;font-size:15px}.link-btn{color:var(--md-sys-color-primary);cursor:pointer;font-weight:700;font-size:inherit;transition:var(--md-transition-standard);background:0 0;border:none;padding:0 6px;font-family:Fredoka,sans-serif;display:inline-block}.link-btn:hover{color:var(--md-sys-color-tertiary);text-decoration:none;transform:scale(1.1)rotate(-3deg)}.pin-inputs{justify-content:center;gap:12px;margin-bottom:24px;display:flex}.pin-input-box{text-align:center;border:2px solid var(--md-sys-color-outline-variant);border-radius:var(--md-shape-medium);background-color:var(--md-sys-color-surface-variant);width:56px;height:64px;color:var(--md-sys-color-primary);transition:var(--md-transition-standard);font-family:Fredoka,monospace;font-size:28px;font-weight:700;box-shadow:inset 0 2px 4px #0000000d}.pin-input-box:focus{border-color:var(--md-sys-color-primary);box-shadow:0 0 0 4px color-mix(in srgb, var(--md-sys-color-primary) 20%, transparent);outline:none;transform:translateY(-4px)}.auth-success{background-color:var(--md-sys-color-primary-container);color:var(--md-sys-color-on-primary-container);border-radius:var(--md-shape-small);text-align:center;border:2px dashed var(--md-sys-color-primary);padding:16px;font-family:Fredoka,sans-serif;font-size:16px;animation:.5s cubic-bezier(.68,-.55,.265,1.55) bounceError}.link-btn-small{color:var(--md-sys-color-outline);cursor:pointer;transition:var(--md-transition-standard);background:0 0;border:none;padding:4px 8px;font-family:Quicksand,sans-serif;font-size:14px;font-weight:600}.link-btn-small:hover{color:var(--md-sys-color-primary);transform:scale(1.05)}.activation-view{text-align:center;flex-direction:column;align-items:center;gap:28px;display:flex}.email-icon-wrapper{background:linear-gradient(135deg, var(--md-sys-color-primary-container), var(--md-sys-color-tertiary-container));border-radius:50%;justify-content:center;align-items:center;padding:32px;animation:3s infinite alternate pulseMagical;display:flex;box-shadow:0 8px 24px #0000000d}.activation-desc{color:var(--md-sys-color-on-surface-variant);margin:0;font-family:Quicksand,sans-serif;font-size:16px;line-height:1.6}.activation-actions{gap:16px;width:100%;display:flex}.activation-actions button{flex:1}.code-input{letter-spacing:.3em;text-align:center;font-family:Fredoka,monospace;font-size:20px;font-weight:700}.back-to-login{align-items:center;gap:8px;display:inline-flex}.dashboard-container{flex-direction:column;gap:32px;max-width:1200px;margin:0 auto;display:flex}.dashboard-header{flex-direction:column;gap:12px;animation:.6s cubic-bezier(.68,-.55,.265,1.55) fadeIn;display:flex}.dashboard-header h1{color:var(--md-sys-color-primary);text-shadow:0 4px 12px #4b7bf526;margin:0;font-size:36px}.dashboard-header p{color:var(--md-sys-color-on-surface-variant);margin:0;font-size:18px;font-weight:500}.telemetry-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:20px;display:grid}.telemetry-card{border-radius:var(--md-shape-large);background:linear-gradient(135deg, var(--md-sys-color-surface) 0%, var(--md-sys-color-surface-variant) 100%);align-items:center;gap:20px;padding:24px;display:flex;position:relative}.telemetry-card:hover .telemetry-icon{box-shadow:0 8px 24px color-mix(in srgb, var(--md-sys-color-primary) 30%, transparent);transform:scale(1.15)rotate(10deg)}.telemetry-icon{background-color:var(--md-sys-color-primary-container);width:56px;height:56px;color:var(--md-sys-color-primary);border-radius:16px;justify-content:center;align-items:center;transition:all .4s cubic-bezier(.68,-.55,.265,1.55);display:flex}.telemetry-info{flex-direction:column;gap:4px;display:flex}.telemetry-value{color:var(--md-sys-color-on-surface);font-family:Fredoka,sans-serif;font-size:28px;font-weight:700;line-height:1}.telemetry-label{color:var(--md-sys-color-on-surface-variant);text-transform:uppercase;letter-spacing:.5px;font-family:Quicksand,sans-serif;font-size:14px;font-weight:600}.telemetry-extra{color:var(--md-sys-color-tertiary);font-family:Fredoka,sans-serif;font-size:14px;font-weight:700;position:absolute;top:24px;right:24px}.controls-section{flex-direction:column;gap:20px;animation:.8s cubic-bezier(.68,-.55,.265,1.55) fadeIn;display:flex}.controls-section h2{color:var(--md-sys-color-on-background);align-items:center;gap:8px;margin:0;font-size:24px;display:flex}.controls-grid{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:20px;display:grid}.control-card{border-radius:var(--md-shape-large);flex-direction:column;gap:24px;padding:28px;transition:opacity .3s;display:flex}.control-card.updating{opacity:.6;pointer-events:none;filter:grayscale(.5);transform:scale(.98)}.control-header{align-items:center;gap:16px;display:flex}.control-icon{color:var(--md-sys-color-primary);background:var(--md-sys-color-primary-container);border-radius:50%;padding:12px}.control-header h3{flex:1;margin:0;font-family:Fredoka,sans-serif;font-size:20px}.control-value{color:var(--md-sys-color-tertiary);text-shadow:0 2px 8px color-mix(in srgb, var(--md-sys-color-tertiary) 20%, transparent);font-family:Fredoka,monospace;font-size:24px;font-weight:700}.md-slider{-webkit-appearance:none;background:var(--md-sys-color-surface-variant);width:100%;height:12px;transition:var(--md-transition-standard);border:2px solid #0000;border-radius:999px;outline:none}.md-slider:focus{border-color:color-mix(in srgb, var(--md-sys-color-primary) 30%, transparent)}.md-slider::-webkit-slider-thumb{appearance:none;background:linear-gradient(135deg, var(--md-sys-color-primary), var(--md-sys-color-tertiary));cursor:pointer;width:28px;height:28px;box-shadow:0 4px 12px color-mix(in srgb, var(--md-sys-color-primary) 40%, transparent);border:3px solid var(--md-sys-color-surface);border-radius:50%;transition:transform .4s cubic-bezier(.68,-.55,.265,1.55)}.md-slider::-webkit-slider-thumb:hover{transform:scale(1.3)}.md-slider::-webkit-slider-thumb:active{box-shadow:0 2px 8px color-mix(in srgb, var(--md-sys-color-primary) 60%, transparent);transform:scale(.9)}.status-log-section{flex-direction:column;gap:20px;margin-top:24px;animation:1s cubic-bezier(.68,-.55,.265,1.55) fadeIn;display:flex}.section-header{color:var(--md-sys-color-on-background);align-items:center;gap:12px;display:flex}.section-header h2{margin:0;font-family:Fredoka,sans-serif;font-size:24px}.log-container{border-radius:var(--md-shape-large);flex-direction:column;gap:16px;max-height:240px;padding:24px;display:flex;overflow-y:auto}.log-item{border-radius:var(--md-shape-small);background-color:var(--md-sys-color-surface-variant);gap:16px;padding:12px;font-size:15px;transition:transform .2s;animation:.4s cubic-bezier(.68,-.55,.265,1.55) fadeIn;display:flex}.log-item:hover{background-color:var(--md-sys-color-primary-container);transform:translate(4px)}.log-time{color:var(--md-sys-color-primary);white-space:nowrap;font-family:Fredoka,monospace;font-weight:600}.log-msg{color:var(--md-sys-color-on-surface);font-family:Quicksand,sans-serif;font-weight:500}.log-msg.warning{color:var(--md-sys-color-error);font-weight:700}.toast-container{z-index:9999;pointer-events:none;flex-direction:column;gap:12px;display:flex;position:fixed;top:32px;left:50%;transform:translate(-50%)}.toast-message{background-color:color-mix(in srgb, var(--md-sys-color-surface) 90%, transparent);color:var(--md-sys-color-on-surface);pointer-events:auto;text-align:center;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-radius:999px;min-width:240px;padding:16px 32px;font-family:Fredoka,sans-serif;font-size:16px;font-weight:600;animation:.6s cubic-bezier(.68,-.55,.265,1.55) forwards slideDownBounce;box-shadow:0 8px 32px #00000026,inset 0 0 0 2px #ffffff80}@keyframes slideDownBounce{0%{opacity:0;transform:translateY(-40px)scale(.8)}to{opacity:1;transform:translateY(0)scale(1)}}.toast-success{color:#fff;background:linear-gradient(135deg,#10b981,#34d399);box-shadow:0 8px 24px #10b98166}.toast-error{color:#fff;background:linear-gradient(135deg,#ef4444,#f87171);box-shadow:0 8px 24px #ef444466}.toast-info{background:linear-gradient(135deg, var(--md-sys-color-primary), var(--md-sys-color-tertiary));color:#fff;box-shadow:0 8px 24px color-mix(in srgb, var(--md-sys-color-primary) 40%, transparent)}.chat-container{flex-direction:column;gap:20px;max-width:1000px;height:100%;margin:0 auto;display:flex}.chat-header{justify-content:space-between;align-items:flex-end;animation:.6s cubic-bezier(.68,-.55,.265,1.55) fadeIn;display:flex}.chat-header h1{color:var(--md-sys-color-primary);margin:0 0 8px;font-size:32px}.chat-header p{color:var(--md-sys-color-on-surface-variant);margin:0;font-size:16px;font-weight:500}.chat-messages{background-color:var(--md-sys-color-surface);border-radius:var(--md-shape-large);flex-direction:column;flex:1;gap:24px;padding:24px;display:flex;position:relative;overflow-y:auto;box-shadow:inset 0 2px 12px #00000005}.empty-chat{height:100%;color:var(--md-sys-color-outline);justify-content:center;align-items:center;gap:12px;font-family:Fredoka,sans-serif;font-size:18px;font-style:italic;animation:4s infinite alternate pulseMagical;display:flex}@keyframes spin{0%{transform:rotate(0)scale(.9)}50%{transform:rotate(180deg)scale(1.1)}to{transform:rotate(360deg)scale(.9)}}.chat-message{transform-origin:0 100%;gap:16px;max-width:85%;animation:.5s cubic-bezier(.68,-.55,.265,1.55) forwards popIn;display:flex}@keyframes popIn{0%{opacity:0;transform:scale(.8)translateY(20px)}to{opacity:1;transform:scale(1)translateY(0)}}.chat-message.user{transform-origin:100% 100%;flex-direction:row-reverse;align-self:flex-end}.message-avatar{border:2px solid var(--md-sys-color-surface);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;display:flex;box-shadow:0 4px 12px #0000001a}.ai .message-avatar{background:linear-gradient(135deg, var(--md-sys-color-primary), var(--md-sys-color-tertiary));color:var(--md-sys-color-on-primary)}.user .message-avatar{background:linear-gradient(135deg, var(--md-sys-color-secondary), #ff8a00);color:var(--md-sys-color-on-secondary)}.message-content{flex-direction:column;gap:8px;display:flex}.user .message-content{align-items:flex-end}.message-bubble{padding:16px 20px;font-family:Quicksand,sans-serif;font-size:16px;font-weight:500;line-height:1.6;transition:transform .2s;box-shadow:0 4px 16px #0000000d}.message-bubble:hover{transform:scale(1.02)}.ai .message-bubble{background-color:var(--md-sys-color-surface-variant);color:var(--md-sys-color-on-surface);border:1px solid #ffffff80;border-radius:24px 24px 24px 6px}@media (prefers-color-scheme:dark){.ai .message-bubble{border:1px solid #ffffff0d}}.user .message-bubble{background:linear-gradient(135deg, var(--md-sys-color-primary), #6e95ff);color:var(--md-sys-color-on-primary);border-radius:24px 24px 6px}.message-time{color:var(--md-sys-color-outline);margin:0 8px;font-family:Fredoka,sans-serif;font-size:12px}.chat-input-area{background-color:color-mix(in srgb, var(--md-sys-color-surface) 80%, transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-radius:999px;flex-wrap:wrap;align-items:center;gap:16px;padding:16px 24px;animation:.6s cubic-bezier(.68,-.55,.265,1.55) slideUpIn;display:flex;position:relative;box-shadow:0 8px 32px #4b7bf526,inset 0 0 0 2px #fff6}@keyframes slideUpIn{0%{opacity:0;transform:translateY(40px)}to{opacity:1;transform:translateY(0)}}@media (prefers-color-scheme:dark){.chat-input-area{box-shadow:0 8px 32px #82a8ff26,inset 0 0 0 1px #ffffff0d}}.connection-status{text-align:center;border-radius:999px;width:100%;padding:6px 0;font-family:Fredoka,sans-serif;font-size:13px;animation:.3s cubic-bezier(.68,-.55,.265,1.55) popIn}.connection-status.disconnected{color:var(--md-sys-color-error);background:var(--md-sys-color-error-container);border:2px dashed var(--md-sys-color-error)}.chat-input:disabled{opacity:.5;cursor:not-allowed}.icon-btn{background:var(--md-sys-color-surface-variant);color:var(--md-sys-color-primary);cursor:pointer;transition:var(--md-transition-standard);border:2px solid #0000;border-radius:50%;padding:12px;display:flex}.icon-btn:hover{background-color:var(--md-sys-color-primary-container);border-color:var(--md-sys-color-primary);transform:scale(1.15)rotate(10deg)}.chat-input{color:var(--md-sys-color-on-surface);background:0 0;border:none;outline:none;flex:1;padding:8px 0;font-family:Quicksand,sans-serif;font-size:18px;font-weight:600}.chat-input::placeholder{color:var(--md-sys-color-outline-variant)}.send-btn{width:52px;height:52px;box-shadow:0 4px 16px color-mix(in srgb, var(--md-sys-color-primary) 40%, transparent);border-radius:50%;padding:0}.send-btn:hover{transform:scale(1.1)rotate(-10deg)}.chat-image{object-fit:cover;cursor:pointer;border:4px solid var(--md-sys-color-surface);border-radius:16px;max-width:300px;max-height:300px;transition:transform .3s cubic-bezier(.68,-.55,.265,1.55),box-shadow .3s;display:block}.chat-image:hover{transform:scale(1.05);box-shadow:0 8px 24px #0003}.message-bubble a{line-height:0;text-decoration:none;display:block}.upload-preview{background:var(--md-sys-color-surface-variant);border:2px solid var(--md-sys-color-outline-variant);border-radius:999px;align-items:center;gap:12px;padding:10px 16px;animation:.3s cubic-bezier(.68,-.55,.265,1.55) slideUp;display:flex}.upload-preview-img{object-fit:cover;border:2px solid var(--md-sys-color-surface);border-radius:12px;width:48px;height:48px}.upload-preview-name{color:var(--md-sys-color-on-surface);text-overflow:ellipsis;white-space:nowrap;flex:1;font-family:Fredoka,sans-serif;font-size:14px;overflow:hidden}.upload-preview-remove{background:var(--md-sys-color-error-container);color:var(--md-sys-color-error);cursor:pointer;transition:var(--md-transition-standard);border:2px solid #0000;border-radius:50%;padding:8px;display:flex}.upload-preview-remove:hover{background:var(--md-sys-color-error);color:#fff;transform:scale(1.2)rotate(90deg)}.icon-btn.uploading{color:var(--md-sys-color-primary);cursor:wait;animation:1s infinite pulseMagical}.icon-btn.has-image{color:var(--md-sys-color-on-tertiary);background-color:var(--md-sys-color-tertiary)}@keyframes slideUp{0%{opacity:0;transform:translateY(16px)scale(.9)}to{opacity:1;transform:translateY(0)scale(1)}}.gallery-container{flex-direction:column;gap:24px;height:100%;display:flex}.gallery-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;animation:.6s cubic-bezier(.68,-.55,.265,1.55) fadeIn;display:flex}.gallery-header h1{color:var(--md-sys-color-primary);text-shadow:0 4px 12px #4b7bf526;margin:0 0 8px;font-size:32px}.gallery-header p{color:var(--md-sys-color-on-surface-variant);margin:0;font-size:16px;font-weight:500}.gallery-controls{align-items:center;gap:16px;display:flex}.search-bar{background-color:var(--md-sys-color-surface);border:2px solid var(--md-sys-color-outline-variant);border-radius:999px;align-items:center;width:300px;padding:10px 20px;transition:all .3s cubic-bezier(.68,-.55,.265,1.55);display:flex}.search-bar:focus-within{border-color:var(--md-sys-color-primary);box-shadow:0 4px 16px color-mix(in srgb, var(--md-sys-color-primary) 20%, transparent);transform:scale(1.02)}.search-icon{color:var(--md-sys-color-primary);flex-shrink:0;margin-right:12px}.search-bar input{width:100%;color:var(--md-sys-color-on-surface);background:0 0;border:none;outline:none;font-family:Quicksand,sans-serif;font-size:16px;font-weight:600}.search-bar input::placeholder{color:var(--md-sys-color-outline)}.quota-badge{background:linear-gradient(135deg, var(--md-sys-color-secondary-container), var(--md-sys-color-tertiary-container));color:var(--md-sys-color-on-secondary-container);border-radius:999px;padding:8px 16px;font-family:Fredoka,monospace;font-size:14px;font-weight:700;box-shadow:0 4px 12px #0000000d}.gallery-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:24px;padding-bottom:24px;display:grid}.gallery-card{background-color:var(--md-sys-color-surface);border:2px solid #0000;border-radius:18px;flex-direction:column;transition:all .4s cubic-bezier(.68,-.55,.265,1.55);animation:.6s ease-out fadeIn;display:flex;position:relative;overflow:hidden;box-shadow:0 8px 24px #0000000d}.gallery-card:hover{border-color:var(--md-sys-color-primary-container);transform:translateY(-8px)scale(1.02);box-shadow:0 16px 48px #4b7bf526}.card-image-wrapper{aspect-ratio:4/3;background-color:color-mix(in srgb, var(--md-sys-color-primary) 10%, transparent);cursor:pointer;border-radius:16px;margin:12px 12px 0;position:relative;overflow:hidden}.card-image{object-fit:cover;width:100%;height:100%;transition:transform .6s cubic-bezier(.68,-.55,.265,1.55)}.card-image-placeholder{width:100%;height:100%;color:var(--md-sys-color-outline);justify-content:center;align-items:center;display:flex}.gallery-card:hover .card-image{transform:scale(1.1)rotate(2deg)}.card-overlay{opacity:0;background:0 0;justify-content:center;align-items:center;transition:opacity .3s;display:flex;position:absolute;top:10px;right:10px}.gallery-card:hover .card-overlay{opacity:1}.card-overlay .icon-btn{color:var(--md-sys-color-primary);cursor:pointer;background-color:#fffffff2;border:none;border-radius:12px;justify-content:center;align-items:center;width:46px;height:36px;transition:all .3s cubic-bezier(.68,-.55,.265,1.55);display:flex;box-shadow:0 4px 16px #0003}.card-overlay .icon-btn:hover{background-color:var(--md-sys-color-primary);color:#fff;transform:scale(1.2)}.card-info{background:color-mix(in srgb, var(--md-sys-color-surface-variant) 55%, transparent);border-radius:16px;flex-direction:column;gap:8px;margin:12px;padding:14px;display:flex}.card-title{-webkit-line-clamp:2;color:var(--md-sys-color-on-surface);-webkit-box-orient:vertical;margin:0;font-family:Fredoka,sans-serif;font-size:16px;font-weight:700;line-height:1.4;display:-webkit-box;overflow:hidden}.card-meta{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:8px;display:flex}.card-date{color:var(--md-sys-color-outline);font-family:Quicksand,sans-serif;font-size:13px;font-weight:600}.card-badges{flex-wrap:wrap;justify-content:flex-end;gap:6px;margin-left:auto;display:flex}.badge{text-transform:uppercase;letter-spacing:.5px;border-radius:6px;padding:4px 8px;font-family:Fredoka,sans-serif;font-size:11px;font-weight:700}.badge-svg{background-color:var(--md-sys-color-primary-container);color:var(--md-sys-color-primary)}.badge-gcode{background-color:var(--md-sys-color-tertiary-container);color:var(--md-sys-color-tertiary)}.card-actions{gap:8px;margin-top:8px;display:flex}.icon-btn-sm{background:var(--md-sys-color-surface-variant);width:36px;height:36px;color:var(--md-sys-color-on-surface-variant);cursor:pointer;border:none;border-radius:50%;justify-content:center;align-items:center;transition:all .3s cubic-bezier(.68,-.55,.265,1.55);display:flex}.icon-btn-sm:hover{background:var(--md-sys-color-primary-container);color:var(--md-sys-color-primary);transform:scale(1.15)}.icon-btn-sm.action-redraw:hover{background:var(--md-sys-color-secondary-container);color:var(--md-sys-color-secondary);transform:scale(1.15)rotate(15deg)}.icon-btn-sm.action-delete-sm:hover{background:var(--md-sys-color-error-container);color:var(--md-sys-color-error);transform:scale(1.15)rotate(-10deg)}.delete-confirm-overlay{z-index:10;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0b1021b3;justify-content:center;align-items:center;animation:.3s cubic-bezier(.68,-.55,.265,1.55) fadeIn;display:flex;position:absolute;inset:0}.delete-confirm-box{background:var(--md-sys-color-surface);border-radius:var(--md-shape-large);text-align:center;max-width:260px;padding:24px;animation:.3s cubic-bezier(.68,-.55,.265,1.55) popIn;transform:scale(1);box-shadow:0 16px 48px #0003}.delete-confirm-box p{margin-bottom:8px;font-family:Fredoka,sans-serif;font-size:15px}.delete-warn{color:var(--md-sys-color-error);font-family:Quicksand,sans-serif;font-size:13px!important}.delete-confirm-actions{justify-content:center;gap:12px;margin-top:16px;display:flex}.delete-btn{background-color:var(--md-sys-color-error)!important}.empty-state{color:var(--md-sys-color-outline);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:16px;min-height:400px;animation:4s infinite alternate pulseMagical;display:flex}.empty-icon{background:linear-gradient(135deg, var(--md-sys-color-surface-variant), var(--md-sys-color-primary-container));width:96px;height:96px;color:var(--md-sys-color-primary);border-radius:50%;justify-content:center;align-items:center;margin-bottom:8px;display:flex;box-shadow:0 8px 32px #0000000d}.empty-state h3{color:var(--md-sys-color-on-surface);margin:0;font-family:Fredoka,sans-serif;font-size:24px}.empty-state p{margin:0;font-size:16px}.modal-backdrop{z-index:1000;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#0b102199;justify-content:center;align-items:center;animation:.4s cubic-bezier(.68,-.55,.265,1.55) fadeIn;display:flex;position:fixed;inset:0}.modal-content{background:var(--md-sys-color-surface);border-radius:32px;width:90%;max-width:720px;max-height:90vh;animation:.4s cubic-bezier(.68,-.55,.265,1.55) popIn;overflow-y:auto;box-shadow:0 24px 64px #0003,inset 0 0 0 2px #ffffff1a}.modal-header{justify-content:space-between;align-items:center;padding:24px 32px 16px;display:flex}.modal-header h2{color:var(--md-sys-color-primary);margin:0;font-family:Fredoka,sans-serif;font-size:24px}.modal-header .icon-btn{background:var(--md-sys-color-surface-variant);width:40px;height:40px;color:var(--md-sys-color-on-surface-variant);cursor:pointer;border:none;border-radius:50%;justify-content:center;align-items:center;transition:all .3s cubic-bezier(.68,-.55,.265,1.55);display:flex}.modal-header .icon-btn:hover{background:var(--md-sys-color-error-container);color:var(--md-sys-color-error);transform:scale(1.15)rotate(90deg)}.asset-tabs{border-bottom:2px solid var(--md-sys-color-surface-variant);gap:0;padding:0 32px;display:flex}.asset-tab{color:var(--md-sys-color-outline);cursor:pointer;background:0 0;border:none;border-bottom:3px solid #0000;align-items:center;gap:8px;padding:16px 24px;font-family:Fredoka,sans-serif;font-size:15px;font-weight:600;transition:all .3s;display:flex}.asset-tab:hover:not(.disabled){color:var(--md-sys-color-primary);background:color-mix(in srgb, var(--md-sys-color-primary-container) 30%, transparent)}.asset-tab.active{color:var(--md-sys-color-primary);border-bottom-color:var(--md-sys-color-primary)}.asset-tab.disabled{opacity:.3;cursor:not-allowed}.modal-preview{background:linear-gradient(135deg, var(--md-sys-color-surface-variant), color-mix(in srgb, var(--md-sys-color-primary) 5%, transparent));border-radius:var(--md-shape-large);border:2px dashed color-mix(in srgb, var(--md-sys-color-primary) 20%, transparent);justify-content:center;min-height:240px;margin:0 24px;padding:24px;display:flex}.preview-image{object-fit:contain;border-radius:var(--md-shape-small);max-width:100%;max-height:400px;box-shadow:0 8px 24px #0000001a}.gcode-preview{color:var(--md-sys-color-tertiary);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:48px 24px;display:flex}.gcode-hint{opacity:.8;max-width:320px;font-family:Quicksand,sans-serif;font-size:14px}.modal-info{flex-direction:column;gap:16px;padding:20px 32px;display:flex}.info-row{flex-direction:column;gap:6px;display:flex}.info-label{text-transform:uppercase;letter-spacing:1px;color:var(--md-sys-color-tertiary);font-family:Fredoka,sans-serif;font-size:12px;font-weight:700}.info-value{color:var(--md-sys-color-on-surface);margin:0;font-family:Quicksand,sans-serif;font-size:15px;font-weight:500;line-height:1.6}.info-understanding{color:var(--md-sys-color-on-surface-variant);background:var(--md-sys-color-surface-variant);border-radius:var(--md-shape-medium);max-height:80px;padding:12px;font-size:14px;font-style:italic;overflow-y:auto}.modal-actions{flex-wrap:wrap;justify-content:flex-end;gap:12px;padding:16px 32px 32px;display:flex}.inline-confirm{background:var(--md-sys-color-error-container);border-radius:var(--md-shape-medium);text-align:center;border:2px dashed var(--md-sys-color-error);margin:0 32px 20px;padding:16px}.inline-confirm p{color:var(--md-sys-color-error);margin-bottom:12px;font-size:14px;font-weight:600}.redraw-modal{max-width:560px}.redraw-reference{background:var(--md-sys-color-surface-variant);border-radius:var(--md-shape-large);border:2px solid color-mix(in srgb, var(--md-sys-color-primary) 10%, transparent);align-items:center;gap:20px;margin:0 24px;padding:16px 24px;display:flex}.redraw-thumb{object-fit:cover;border-radius:var(--md-shape-medium);flex-shrink:0;width:96px;height:96px;box-shadow:0 4px 12px #0000001a}.redraw-info{flex-direction:column;gap:8px;min-width:0;display:flex}.redraw-prompt{text-overflow:ellipsis;-webkit-line-clamp:3;-webkit-box-orient:vertical;margin:0;font-family:Quicksand,sans-serif;font-size:15px;font-weight:600;display:-webkit-box;overflow:hidden}.redraw-input-area{padding:24px 32px}.redraw-label{color:var(--md-sys-color-primary);margin-bottom:12px;font-family:Fredoka,sans-serif;font-size:14px;font-weight:700;display:block}.redraw-textarea{border:2px solid var(--md-sys-color-outline-variant);border-radius:var(--md-shape-large);background:var(--md-sys-color-surface);width:100%;color:var(--md-sys-color-on-surface);resize:vertical;outline:none;min-height:120px;padding:16px 20px;font-family:Quicksand,sans-serif;font-size:15px;font-weight:500;transition:all .3s cubic-bezier(.68,-.55,.265,1.55)}.redraw-textarea:focus{border-color:var(--md-sys-color-primary);box-shadow:0 8px 24px color-mix(in srgb, var(--md-sys-color-primary) 15%, transparent);transform:translateY(-2px)}.redraw-textarea::placeholder{color:var(--md-sys-color-outline)}.spin{animation:1.5s cubic-bezier(.68,-.55,.265,1.55) infinite spin}
