.page-hero{margin-bottom:var(--space-8);gap:var(--space-3);flex-direction:column;display:flex}.page-toolbar{justify-content:space-between;align-items:center;gap:var(--space-4);margin-bottom:var(--space-6);flex-wrap:wrap;display:flex}.tool-list{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-card);overflow:hidden}.tool-row{justify-content:space-between;align-items:center;gap:var(--space-3);appearance:none;border:none;border-bottom:1px solid var(--color-border);width:100%;color:var(--color-text);font:inherit;text-align:left;cursor:pointer;background:0 0;border-radius:0;padding:12px 16px;display:flex}.tool-row:last-child{border-bottom:none}.tool-row:hover,.tool-row:focus-visible{background:var(--color-bg-alt)}.tool-row-main{align-items:center;gap:var(--space-3);min-width:0;color:var(--color-text);display:flex}.tool-row-title{color:var(--color-text);font-size:15px}.stack{gap:var(--space-4);flex-direction:column;display:flex}.device-list{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-card);overflow:hidden}.device-row{gap:var(--space-3);border-bottom:1px solid var(--color-border);grid-template-columns:1fr;align-items:center;padding:12px 16px;display:grid}.device-row:last-child{border-bottom:none}.device-row:hover{background:var(--color-bg-alt)}.device-identity{align-items:center;gap:var(--space-3);min-width:0;display:flex}.device-avatar{border-radius:var(--radius-pill);background:var(--color-bg-alt);border:1px solid var(--color-border);letter-spacing:.04em;flex:none;place-items:center;width:36px;height:36px;font-size:11px;display:grid}.device-copy{flex:1;min-width:0}.device-name,.device-email{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.device-name{color:var(--color-text);font-size:15px}.device-email{color:var(--color-text-secondary);font-size:13px}.device-meta{align-items:center;gap:var(--space-2);flex-wrap:wrap;min-width:0;display:flex}.device-actions{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.device-empty,.device-loading{justify-content:center;align-items:center;gap:var(--space-3);padding:var(--space-16) var(--space-6);color:var(--color-text-secondary);text-align:center;flex-direction:column;display:flex}@media (width>=900px){.device-list{column-gap:var(--space-3);grid-template-columns:fit-content(14rem) auto minmax(0,1fr) minmax(0,1fr) auto auto;display:grid}.device-row{grid-template-columns:subgrid;column-gap:var(--space-3);grid-column:1/-1;display:grid}.device-meta{grid-template-columns:subgrid;gap:0 var(--space-3);grid-column:2/6;display:grid}.device-meta .caption{white-space:nowrap;text-overflow:ellipsis;min-width:0;overflow:hidden}.device-actions{justify-content:flex-end}.device-empty,.device-loading{grid-column:1/-1}}.profile-card{gap:var(--space-6);padding:var(--space-8) var(--space-6);display:grid}@media (width>=768px){.profile-card{padding:var(--space-8);grid-template-columns:200px 1fr;align-items:start}}.profile-identity{align-items:flex-start;gap:var(--space-4);flex-direction:column;display:flex}.profile-avatar{border-radius:var(--radius-pill);background:var(--color-bg-alt);border:1px solid var(--color-border);width:72px;height:72px;font-size:20px;font-family:var(--font-display);letter-spacing:-.03em;place-items:center;font-weight:700;display:grid}.confirm-label{color:var(--color-text-secondary);font-size:13px}.setting-group{margin-bottom:var(--space-6)}.setting-group-head{gap:var(--space-2);padding:var(--space-5);border-bottom:1px solid var(--color-border);flex-direction:column;display:flex}.setting-platform{padding:var(--space-4) var(--space-5) 0;text-transform:uppercase;letter-spacing:.12em;color:var(--color-text-secondary);font-size:11px;font-weight:500}.setting-copy .caption a{color:var(--color-primary);text-decoration:underline}.setting-copy .caption p{margin:0}.setting-copy .caption ul{margin:var(--space-2) 0;padding-left:1.15em}.setting-copy .caption li+li{margin-top:var(--space-1)}.setting-copy .caption-term{color:var(--color-text)}.setting-row{gap:var(--space-3);padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--color-border);flex-direction:column;display:flex}.setting-row:last-child{border-bottom:none}.setting-copy{gap:var(--space-1);flex-direction:column;min-width:0;display:flex}.setting-name{align-items:center;gap:var(--space-2);color:var(--color-text);font-size:15px;display:inline-flex}.setting-copy .caption{max-width:52ch}.setting-actions{gap:var(--space-4);padding-top:var(--space-2);flex-direction:column;display:flex}.setting-buttons{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}@media (width>=768px){.setting-row{justify-content:space-between;align-items:center;gap:var(--space-6);flex-direction:row}.setting-actions{flex-direction:row;justify-content:space-between;align-items:center}}.notify-form{gap:var(--space-4);flex-direction:column;padding:16px 20px 20px;display:flex}.notify-form .field-control select{border:1px solid var(--color-border);border-radius:var(--radius-control);background:var(--color-surface);width:100%;height:44px;color:var(--color-text);appearance:none;cursor:pointer;padding:10px 40px;font-family:inherit;font-size:14px}.notify-form .field-control select:focus{border-color:var(--color-primary);box-shadow:var(--ring);outline:none}.notify-form .field-control select:disabled{color:var(--color-neutral);cursor:default}.notify-form .field-control:has(select):after{content:"";border-right:1.5px solid var(--color-neutral);border-bottom:1.5px solid var(--color-neutral);pointer-events:none;width:8px;height:8px;position:absolute;right:18px;transform:translateY(-2px)rotate(45deg)}.notify-total{align-items:baseline;gap:var(--space-2);border-bottom:1px solid var(--color-border);padding:16px 20px;display:flex}.notify-total-number{font-family:var(--font-display);color:var(--color-text);font-size:32px;line-height:1}.notify-total+.device-list{border:none;border-radius:0}.login-main{width:100%;max-width:var(--container);padding:var(--space-8) var(--space-6);flex:1;align-items:center;margin-inline:auto;display:flex}.login-layout{gap:var(--space-8);grid-template-columns:1fr;align-items:center;width:100%;display:grid}.login-copy{gap:var(--space-4);flex-direction:column;max-width:640px;display:flex}.auth-card{width:100%;max-width:420px;padding:var(--space-8) var(--space-6)}.auth-card-center{justify-self:center;margin-inline:auto}.auth-form{gap:var(--space-4);flex-direction:column;display:flex}.auth-actions{gap:var(--space-3);margin-top:var(--space-2);flex-direction:column;display:flex}.auth-status{text-align:center;align-items:center;gap:var(--space-4);padding:var(--space-8) var(--space-4);flex-direction:column;display:flex}.auth-status-icon{color:var(--color-success)}.auth-status-icon.is-error{color:var(--color-error)}.redirect-fallback{gap:var(--space-4);flex-direction:column;width:100%;display:flex}@media (width>=960px){.login-layout{gap:var(--space-16);min-height:calc(100dvh - var(--header-h) - 128px);grid-template-columns:1fr 420px}.auth-card{justify-self:end}}@media (width>=480px){.auth-card{padding:var(--space-10) var(--space-8)}}:root{--color-primary:#6366f1;--color-primary-hover:#4f46e5;--color-neutral:#9c9c9c;--color-bg:#fafafa;--color-surface:#fff;--color-text:#0a0a0a;--color-text-secondary:#6b6b6b;--color-border:#e8e8ec;--color-success:#10b981;--color-warning:#f59e0b;--color-error:#ef4444;--color-bg-alt:#f3f3f5;--color-on-primary:#fafafa;--color-chip:#f3f4f6;--color-chip-text:#4b5563;--ring:0 0 0 3px #6366f11f;--shadow-hover:0 8px 30px #00000014;--shadow-primary:0 4px 12px #6366f159;--shadow-lg:0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a;--font-display:"General Sans", "DM Sans", system-ui, sans-serif;--font-body:"DM Sans", system-ui, sans-serif;--font-code:"JetBrains Mono", ui-monospace, monospace;--radius-chip:4px;--radius-control:6px;--radius-panel:8px;--radius-card:12px;--radius-pill:9999px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--space-16:64px;--header-h:56px;--container:1280px}@media (prefers-color-scheme:dark){:root{--color-bg:#111;--color-surface:#1a1a1a;--color-text:#f4f4f4;--color-text-secondary:#a3a3a3;--color-border:#2c2c32;--color-neutral:#8a8a8a;--color-bg-alt:#222226;--color-chip:#2a2a2e;--color-chip-text:#d4d4d4;--shadow-hover:0 8px 30px #00000059;--shadow-lg:0 10px 15px -3px #0006, 0 4px 6px -4px #0000004d}}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{min-height:100dvh}body{font-family:var(--font-body);color:var(--color-text);background:var(--color-bg);text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;font-size:15px;font-weight:500;line-height:1.5}button,input,a{font:inherit;color:inherit}button{cursor:pointer}img{max-width:100%;display:block}code{font-family:var(--font-code);border-radius:var(--radius-chip);background:var(--color-bg-alt);color:var(--color-text);padding:2px 6px;font-size:13px;font-weight:400}:focus-visible{box-shadow:var(--ring);outline:none}.dot-grid{z-index:0;pointer-events:none;background-image:radial-gradient(circle, var(--color-border) 1px, transparent 1.5px);background-size:24px 24px;position:fixed;inset:0}.dot-grid:after{content:"";background:radial-gradient(circle 280px at var(--spot-x,50%) var(--spot-y,40%), #0a0a0a12, transparent 70%);position:absolute;inset:0}@media (prefers-color-scheme:dark){.dot-grid:after{background:radial-gradient(circle 280px at var(--spot-x,50%) var(--spot-y,40%), #f4f4f40f, transparent 70%)}}.shell{z-index:1;flex-direction:column;min-height:100dvh;display:flex;position:relative}.container{width:100%;max-width:var(--container);padding-inline:var(--space-6);margin-inline:auto}.shell-main{width:100%;max-width:var(--container);padding-inline:var(--space-6);padding-block:var(--space-8);flex:1;margin-inline:auto}@media (width>=768px){.shell-main{padding-block:var(--space-12)}}@media (width>=1024px){.shell-main{padding-block:var(--space-16)}}.overline{letter-spacing:.12em;text-transform:uppercase;color:var(--color-text-secondary);margin-bottom:var(--space-3);font-size:11px;font-weight:500}.display{font-family:var(--font-display);letter-spacing:-.04em;color:var(--color-text);font-size:48px;font-weight:700;line-height:1.05}@media (width>=1024px){.display{font-size:72px}}.section-heading{font-family:var(--font-display);letter-spacing:-.03em;color:var(--color-text);font-size:32px;font-weight:700;line-height:1.15}.subhead{font-family:var(--font-display);letter-spacing:-.03em;color:var(--color-text);font-size:24px;font-weight:700;line-height:1.2}.lede{color:var(--color-text-secondary);max-width:36em;font-size:15px}.caption{color:var(--color-text-secondary);font-size:12px}.muted{color:var(--color-text-secondary)}.site-header{z-index:30;height:var(--header-h);border-bottom:1px solid var(--color-border);background:color-mix(in srgb, var(--color-surface) 82%, transparent);-webkit-backdrop-filter:blur(16px);position:sticky;top:0}.site-header-inner{height:var(--header-h);align-items:center;gap:var(--space-4);grid-template-columns:1fr auto;display:grid}.site-header.has-nav .site-header-inner{grid-template-columns:1fr auto 1fr}.brand{align-items:center;gap:var(--space-2);color:var(--color-text);background:0 0;border:none;justify-self:start;padding:0;display:inline-flex}.brand-mark{object-fit:contain;width:32px;height:32px;display:block}.brand-name{font-family:var(--font-display);letter-spacing:-.03em;font-size:15px;font-weight:700}.site-nav{align-items:center;gap:var(--space-1);justify-self:center;display:none}.nav-link{align-items:center;gap:var(--space-2);height:32px;padding:0 var(--space-3);border-radius:var(--radius-control);color:var(--color-text);background:0 0;border:none;font-size:14px;font-weight:500;text-decoration:none;display:inline-flex}.nav-link:hover{background:var(--color-bg-alt)}.nav-link.is-active{color:var(--color-primary)}.site-header-actions{justify-content:flex-end;align-items:center;gap:var(--space-2);justify-self:end;display:flex}.icon-btn{border-radius:var(--radius-control);width:36px;height:36px;color:var(--color-text);background:0 0;border:none;justify-content:center;align-items:center;display:inline-flex}.icon-btn:hover{background:var(--color-bg-alt)}.menu-toggle{display:inline-flex}.avatar-btn{border-radius:var(--radius-pill);border:1px solid var(--color-border);background:var(--color-bg-alt);width:32px;height:32px;color:var(--color-text);letter-spacing:.04em;font-size:11px;font-weight:500}.avatar-btn:hover{transform:translateY(-1px)}.user-menu{position:relative}.menu-popover{min-width:220px;padding:var(--space-2);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-panel);box-shadow:var(--shadow-lg);z-index:40;position:absolute;top:calc(100% + 8px);right:0}.menu-heading{padding:var(--space-2) var(--space-3) var(--space-3);border-bottom:1px solid var(--color-border);margin-bottom:var(--space-2)}.menu-separator{height:1px;margin:var(--space-2) 0;background:var(--color-border)}.menu-item{align-items:center;gap:var(--space-2);width:100%;height:36px;padding:0 var(--space-3);border-radius:var(--radius-control);color:var(--color-text);text-align:left;background:0 0;border:none;font-size:14px;display:flex}.menu-item:hover{background:var(--color-bg-alt)}.menu-item.is-danger{color:var(--color-error)}.drawer-backdrop{z-index:45;background:#0a0a0a47;position:fixed;inset:0}.drawer{background:var(--color-surface);border-left:1px solid var(--color-border);z-index:50;width:min(320px,100%);padding:var(--space-4);gap:var(--space-2);flex-direction:column;display:flex;position:fixed;top:0;bottom:0;right:0}.drawer-nav{gap:var(--space-1);margin-top:var(--space-6);flex-direction:column;display:flex}.drawer-nav .nav-link{justify-content:flex-start;height:40px}@media (width>=768px){.site-nav{display:flex}.menu-toggle{display:none}}.btn{justify-content:center;align-items:center;gap:var(--space-2);border-radius:var(--radius-control);letter-spacing:-.01em;white-space:nowrap;border:1px solid #0000;font-weight:500;text-decoration:none;transition:transform .2s,box-shadow .2s,background .2s,color .2s,border-color .2s;display:inline-flex}.btn:hover:not(:disabled){transform:translateY(-1px)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-sm{height:32px;padding:0 12px;font-size:13px}.btn-md{height:38px;padding:0 16px;font-size:14px}.btn-lg{height:44px;padding:0 24px;font-size:15px}.btn-block{width:100%}.btn-primary{background:var(--color-primary);color:var(--color-on-primary);border-color:var(--color-primary)}.btn-primary:hover:not(:disabled){background:var(--color-primary-hover);border-color:var(--color-primary-hover);box-shadow:var(--shadow-primary)}.btn-secondary{color:var(--color-text);border-color:var(--color-border);background:0 0}.btn-secondary:hover:not(:disabled){background:var(--color-bg-alt)}.btn-ghost{color:var(--color-text-secondary);background:0 0;border-color:#0000}.btn-ghost:hover:not(:disabled){color:var(--color-text);background:var(--color-bg-alt)}.btn-destructive{color:var(--color-error);border-color:var(--color-error);background:0 0}.btn-destructive:hover:not(:disabled){background:color-mix(in srgb, var(--color-error) 8%, var(--color-surface))}.spin,.btn.is-busy svg{animation:.8s linear infinite spin}.chip{border-radius:var(--radius-pill);background:var(--color-chip);height:24px;color:var(--color-chip-text);white-space:nowrap;align-items:center;gap:4px;padding:4px 12px;font-size:12px;font-weight:500;display:inline-flex}.chip-active{background:var(--color-primary);color:var(--color-on-primary)}.chip-success{background:color-mix(in srgb, var(--color-success) 14%, var(--color-surface));color:var(--color-success)}.chip-warning{background:color-mix(in srgb, var(--color-warning) 16%, var(--color-surface));color:var(--color-warning)}.chip-danger{background:color-mix(in srgb, var(--color-error) 12%, var(--color-surface));color:var(--color-error)}.segmented{background:var(--color-bg-alt);border:1px solid var(--color-border);border-radius:var(--radius-control);align-items:center;gap:2px;padding:2px;display:inline-flex}.segmented-option{appearance:none;cursor:pointer;height:28px;font-family:var(--font-body);color:var(--color-text-secondary);white-space:nowrap;background:0 0;border:none;border-radius:4px;padding:0 12px;font-size:13px;font-weight:500;transition:background .15s,color .15s}.segmented-option:hover:not(.is-active):not(:disabled){color:var(--color-text);background:var(--color-surface)}.segmented-option:focus-visible{box-shadow:var(--ring);outline:none}.segmented-option.is-active{background:var(--color-primary);color:var(--color-on-primary)}.segmented.is-disabled{opacity:.65}.segmented-option:disabled{cursor:not-allowed}.segmented.is-disabled .segmented-option.is-active{background:var(--color-neutral);color:var(--color-on-primary)}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-card);overflow:hidden}.field{gap:var(--space-2);flex-direction:column;display:flex}.field-label{color:var(--color-text);font-size:13px}.field-control{align-items:center;display:flex;position:relative}.field-icon{color:var(--color-neutral);pointer-events:none;position:absolute;left:14px}.field-control input{border:1px solid var(--color-border);border-radius:var(--radius-control);background:var(--color-surface);width:100%;height:44px;color:var(--color-text);padding:10px 44px 10px 40px;font-size:14px}.field-control input::placeholder{color:var(--color-neutral)}.field-control input:focus{border-color:var(--color-primary);box-shadow:var(--ring);outline:none}.field.is-error input{border-color:var(--color-error)}.field-control .field-toggle{width:36px;height:36px;color:var(--color-neutral);position:absolute;right:4px}.banner{align-items:flex-start;gap:var(--space-2);border-radius:var(--radius-panel);margin-bottom:var(--space-4);border:1px solid #0000;padding:12px 16px;font-size:13px;display:flex}.banner-ok{background:color-mix(in srgb, var(--color-success) 10%, var(--color-surface));color:var(--color-success)}.banner-error{background:color-mix(in srgb, var(--color-error) 10%, var(--color-surface));color:var(--color-error)}.meta-list{border:1px solid var(--color-border);border-radius:var(--radius-panel);background:var(--color-surface);flex-direction:column;display:flex;overflow:hidden}.meta-row{justify-content:space-between;align-items:center;gap:var(--space-4);border-bottom:1px solid var(--color-border);padding:12px 16px;display:flex}.meta-row:last-child{border-bottom:none}.meta-row:hover{background:var(--color-bg-alt)}.meta-row .muted{align-items:center;gap:var(--space-2);display:inline-flex}@keyframes spin{to{transform:rotate(360deg)}}
