.gesture-settings-page{max-width:980px;margin:0 auto;display:grid;gap:18px}.gesture-settings-header h1{margin:2px 0 0;font-size:clamp(2rem,5vw,3.6rem);letter-spacing:-.055em}.gesture-settings-controls{display:flex;flex-wrap:wrap;gap:10px}.gesture-settings-controls label{min-width:180px;display:grid;gap:5px;color:var(--muted);font-size:.72rem}.gesture-settings-controls select,.gesture-map-main select{min-height:var(--touch);border:1px solid var(--border);border-radius:var(--radius-md);padding:0 10px;color:var(--text);background:var(--bg)}.gesture-map-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.gesture-map-card{display:grid;grid-template-columns:48px minmax(0,1fr) auto;align-items:center;gap:12px;padding:12px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface)}.gesture-direction{width:var(--touch);height:var(--touch);display:grid;place-items:center;border:1px solid var(--border);border-radius:12px;color:var(--accent);background:var(--surface-raised);font-size:.72rem;font-weight:850}.gesture-map-main{min-width:0;display:grid;gap:6px}.gesture-map-main strong{text-transform:capitalize;font-size:.82rem}.gesture-toggle{min-height:var(--touch);display:grid;justify-items:center;align-content:center;gap:4px;color:var(--subtle);font-size:.66rem}.gesture-toggle input{width:20px;height:20px}.gesture-help{margin:0;padding:14px 16px;color:var(--muted);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);line-height:1.55;font-size:.82rem}.gesture-error{padding:12px 14px;border:1px solid color-mix(in srgb,var(--danger) 48%,var(--border));border-radius:var(--radius-md);color:var(--danger)}.command-palette-backdrop,.radial-backdrop{position:fixed;inset:0;z-index:120;background:#00000094;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);overscroll-behavior:none}.command-palette-backdrop{display:grid;place-items:start center;padding:min(14dvh,120px) max(16px,env(safe-area-inset-right)) max(16px,env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left))}.command-palette{width:min(620px,100%);max-height:calc(100vh - 32px);max-height:calc(100dvh - max(32px,env(safe-area-inset-top) + env(safe-area-inset-bottom)));overflow:hidden;display:grid;grid-template-rows:auto minmax(0,1fr);border:1px solid var(--border);border-radius:18px;background:var(--surface);box-shadow:0 26px 90px #00000080}.command-palette header{display:flex;align-items:center;gap:10px;padding:12px;border-bottom:1px solid var(--border)}.command-palette input{flex:1;min-width:0;min-height:var(--touch);border:0;outline:0;color:var(--text);background:transparent;font-size:16px}.command-list{min-height:0;max-height:min(58dvh,520px);overflow:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;padding:6px}.command-list button{width:100%;display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:48px;border:0;background:transparent;text-align:left}.command-list button:hover,.command-list button:focus-visible{background:var(--surface-raised)}.command-list kbd{color:var(--subtle);font-size:.68rem}.radial-backdrop{background:#00000057;touch-action:none}.radial-launcher{position:fixed;z-index:125;width:270px;height:270px;transform:translate(-50%,-50%);border:1px solid var(--border);border-radius:50%;background:color-mix(in srgb,var(--surface) 92%,transparent);box-shadow:0 18px 70px #0000008c;touch-action:none;-webkit-user-select:none;user-select:none}.radial-center{position:absolute;inset:50% auto auto 50%;width:66px;height:66px;transform:translate(-50%,-50%);display:grid;place-items:center;border-radius:50%;color:var(--muted);background:var(--bg);border:1px solid var(--border);font-size:.68rem}.radial-action{position:absolute;width:76px;min-width:76px;min-height:50px;height:50px;padding:4px 6px;border-radius:14px;display:grid;place-items:center;font-size:.65rem;line-height:1.12;text-align:center;overflow-wrap:anywhere;white-space:normal}.radial-action[data-direction=N]{top:8px;left:50%;transform:translate(-50%)}.radial-action[data-direction=NE]{top:40px;right:14px}.radial-action[data-direction=E]{top:50%;right:2px;transform:translateY(-50%)}.radial-action[data-direction=SE]{right:14px;bottom:40px}.radial-action[data-direction=S]{bottom:8px;left:50%;transform:translate(-50%)}.radial-action[data-direction=SW]{left:14px;bottom:40px}.radial-action[data-direction=W]{top:50%;left:2px;transform:translateY(-50%)}.radial-action[data-direction=NW]{top:40px;left:14px}.radial-action[data-active=true]{color:var(--bg);background:var(--text);border-color:var(--text)}@media(max-width:620px){.gesture-map-grid{grid-template-columns:1fr}.gesture-map-card{grid-template-columns:44px minmax(0,1fr)}.gesture-toggle{grid-column:2;justify-items:start;grid-auto-flow:column;justify-content:start;align-items:center}.command-palette-backdrop{place-items:end center;padding-top:max(8px,env(safe-area-inset-top));padding-right:max(8px,env(safe-area-inset-right));padding-bottom:max(8px,env(safe-area-inset-bottom));padding-left:max(8px,env(safe-area-inset-left))}.command-palette{width:100%;max-height:calc(100dvh - max(16px,env(safe-area-inset-top) + env(safe-area-inset-bottom)));border-radius:18px 18px 0 0}.command-list{max-height:min(64dvh,560px)}}@media(max-width:350px){.radial-launcher{width:248px;height:248px}.radial-action{width:70px;min-width:70px;min-height:48px;height:48px;font-size:.62rem}.radial-action[data-direction=NE]{right:10px}.radial-action[data-direction=E]{right:0}.radial-action[data-direction=SE]{right:10px}.radial-action[data-direction=SW]{left:10px}.radial-action[data-direction=W]{left:0}.radial-action[data-direction=NW]{left:10px}}.notification-trigger{position:relative}.notification-badge{position:absolute;top:-4px;right:-4px;min-width:18px;height:18px;padding:0 5px;display:grid;place-items:center;border-radius:999px;background:var(--danger);color:#fff;font-size:.68rem;font-weight:800;pointer-events:none}.notification-backdrop{position:fixed;inset:0;z-index:90;background:#00000080;display:flex;justify-content:flex-end;overscroll-behavior:none}.notification-panel{width:min(520px,100%);height:100vh;height:100dvh;overflow:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;background:var(--bg);border-left:1px solid var(--border);padding-top:max(var(--space-5),env(safe-area-inset-top));padding-right:max(var(--space-5),env(safe-area-inset-right));padding-bottom:max(var(--space-5),env(safe-area-inset-bottom));padding-left:var(--space-5);box-shadow:-24px 0 60px #00000059}.notification-panel-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);margin-bottom:var(--space-4)}.notification-panel-header h2{margin:3px 0 0;font-size:1.5rem}.notification-header-actions{display:flex;flex-wrap:wrap;gap:var(--space-2)}.notification-capability,.quiet-hours,.reminder-create{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);padding:var(--space-3);margin-bottom:var(--space-3)}.notification-capability{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3)}.notification-capability>div{display:grid;gap:3px}.notification-capability span,.notification-item-main>span,.notification-item-main p{color:var(--muted);font-size:.82rem}.quiet-hours{display:grid;grid-template-columns:minmax(120px,1fr) repeat(2,minmax(90px,120px));align-items:end;gap:var(--space-2)}.quiet-hours label,.reminder-create label{display:grid;gap:5px;color:var(--muted);font-size:.76rem}.quiet-hours input[type=time],.reminder-create input,.reminder-create select,.reminder-create textarea{min-height:var(--touch);width:100%;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-raised);color:var(--text);padding:8px 10px;font-size:16px}.quiet-toggle{display:flex!important;grid-auto-flow:column;justify-content:start;align-items:center;gap:var(--space-2)!important;min-height:var(--touch);color:var(--text)!important}.quiet-toggle input{width:20px;height:20px}.reminder-create{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-2)}.reminder-create>label:first-child,.reminder-body,.reminder-create-actions{grid-column:1 / -1}.reminder-create-actions{display:flex;justify-content:flex-end;gap:var(--space-2)}.notification-list{display:grid;gap:var(--space-2)}.notification-item{display:grid;grid-template-columns:auto 1fr auto;gap:var(--space-3);align-items:center;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);padding:var(--space-3)}.notification-item[data-state=triggered]{border-color:color-mix(in srgb,var(--warning) 55%,var(--border));background:color-mix(in srgb,var(--warning) 7%,var(--surface))}.notification-item-icon{width:var(--touch);height:var(--touch);display:grid;place-items:center;border-radius:10px;background:var(--surface-raised)}.notification-item-main{min-width:0;display:grid;gap:3px}.notification-item-main strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.notification-item-main p{margin:2px 0 0;line-height:1.45;overflow-wrap:anywhere}.notification-item-actions{display:flex;flex-wrap:wrap;gap:5px;align-items:center}.notification-item-actions button{min-height:var(--touch)}.notification-empty{padding:var(--space-6);text-align:center;color:var(--muted);border:1px dashed var(--border);border-radius:var(--radius-md)}.notification-error{margin-bottom:var(--space-3);padding:var(--space-3);border:1px solid color-mix(in srgb,var(--danger) 45%,var(--border));border-radius:var(--radius-sm);color:var(--danger)}@media(max-width:560px){.notification-panel{width:100%;border-left:0;padding-top:max(var(--space-4),env(safe-area-inset-top));padding-right:max(var(--space-4),env(safe-area-inset-right));padding-bottom:max(var(--space-4),env(safe-area-inset-bottom));padding-left:max(var(--space-4),env(safe-area-inset-left))}.notification-panel-header{align-items:flex-start}.notification-header-actions{justify-content:flex-end}.notification-capability{align-items:flex-start;flex-direction:column}.notification-capability>button{width:100%}.quiet-hours{grid-template-columns:1fr 1fr}.quiet-toggle{grid-column:1 / -1}.reminder-create{grid-template-columns:1fr}.reminder-create>label,.reminder-create-actions{grid-column:1}.reminder-create-actions{flex-direction:column-reverse}.reminder-create-actions button{width:100%}.notification-item{grid-template-columns:auto 1fr}.notification-item-actions{grid-column:1 / -1}.notification-item-actions button{flex:1 1 92px}}.pwa-status{position:fixed;right:max(var(--space-3),env(safe-area-inset-right));bottom:calc(var(--mobile-nav-height) + max(var(--space-3),env(safe-area-inset-bottom)));z-index:70;display:grid;gap:var(--space-2);max-width:min(360px,calc(100vw - 24px))}.pwa-status-item,.pwa-status>button{min-height:var(--touch);display:flex;align-items:center;gap:var(--space-2);border:1px solid var(--border);border-radius:var(--radius-md);background:color-mix(in srgb,var(--surface-raised) 96%,transparent);box-shadow:0 10px 30px #0000004d;padding:8px 12px;color:var(--text);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.pwa-status-item>span{color:var(--muted);font-size:.82rem}.pwa-status-item>button{min-width:var(--touch);min-height:var(--touch);padding:0 10px;display:inline-flex;align-items:center;justify-content:center;gap:7px}.pwa-dismiss{margin-left:auto;border:0!important;background:transparent!important;padding:0!important;width:var(--touch);min-width:var(--touch)}@media(max-width:420px){.pwa-status{left:max(var(--space-3),env(safe-area-inset-left));right:max(var(--space-3),env(safe-area-inset-right));max-width:none}.pwa-status-item{flex-wrap:wrap}.pwa-status-item>span{flex:1 1 180px}}@media(min-width:800px){.pwa-status{bottom:max(var(--space-4),env(safe-area-inset-bottom))}}:root{color-scheme:dark;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility;--bg: #09090b;--surface: #111114;--surface-raised: #18181c;--surface-hover: #202027;--border: #29292f;--text: #f4f4f5;--muted: #a1a1aa;--subtle: #71717a;--accent: #d4d4d8;--accent-strong: #ffffff;--danger: #fb7185;--warning: #fbbf24;--success: #86efac;--radius-sm: 8px;--radius-md: 12px;--radius-lg: 18px;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--touch: 44px;--mobile-nav-height: 66px;--motion-fast: .12s;--motion-normal: .18s}*{box-sizing:border-box}html,body,#root{width:100%;height:100%;min-height:100%;margin:0}html{background:var(--bg)}body{min-width:320px;overflow:hidden;background:var(--bg);color:var(--text)}button,input,select,textarea{font:inherit}button{min-height:var(--touch);color:inherit;background:var(--surface-raised);border:1px solid var(--border);border-radius:var(--radius-md);padding:0 var(--space-4);cursor:pointer}button:hover{background:var(--surface-hover)}button:disabled{cursor:not-allowed;opacity:.58}a{color:inherit;text-decoration:none}:focus-visible{outline:2px solid var(--accent-strong);outline-offset:3px}.app-shell{width:100%;height:100vh;height:100dvh;min-height:0;overflow:hidden;display:grid;grid-template-rows:auto minmax(0,1fr) auto}.app-header{min-width:0;min-height:56px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding-top:max(var(--space-3),env(safe-area-inset-top));padding-right:max(var(--space-5),env(safe-area-inset-right));padding-bottom:var(--space-3);padding-left:max(var(--space-5),env(safe-area-inset-left));border-bottom:1px solid var(--border);background:color-mix(in srgb,var(--bg) 92%,transparent)}.brand{flex:0 0 auto;display:inline-flex;align-items:center;gap:10px;font-weight:700}.brand-mark{width:30px;height:30px;display:grid;place-items:center;border:1px solid var(--border);border-radius:9px;background:var(--surface-raised)}.brand-name{letter-spacing:-.02em}.header-actions{min-width:0;display:flex;align-items:center;justify-content:flex-end;gap:6px;overflow-x:auto;overscroll-behavior-inline:contain;scrollbar-width:none;-webkit-overflow-scrolling:touch}.header-actions::-webkit-scrollbar{display:none}.header-icon-button{flex:0 0 var(--touch);width:var(--touch);min-width:var(--touch);min-height:var(--touch);padding:0;display:grid;place-items:center;border:1px solid transparent;border-radius:10px;color:var(--muted);background:transparent}.header-icon-button>svg{width:20px;height:20px;display:block}.header-icon-button:hover{color:var(--text);background:var(--surface-raised)}.app-main{min-width:0;min-height:0;overflow:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;padding:var(--space-5);padding-right:max(var(--space-5),env(safe-area-inset-right));padding-left:max(var(--space-5),env(safe-area-inset-left))}.primary-nav{z-index:20;min-width:0;max-width:100%;display:flex;gap:var(--space-1);overflow-x:auto;overscroll-behavior-inline:contain;scrollbar-width:none;-webkit-overflow-scrolling:touch;padding:var(--space-2);padding-right:max(var(--space-2),env(safe-area-inset-right));padding-bottom:max(var(--space-2),env(safe-area-inset-bottom));padding-left:max(var(--space-2),env(safe-area-inset-left));border-top:1px solid var(--border);background:color-mix(in srgb,var(--bg) 96%,transparent);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.primary-nav::-webkit-scrollbar{display:none}.nav-button{flex:1 0 var(--touch);min-width:var(--touch);min-height:54px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;color:var(--muted);border-radius:var(--radius-md);transition:background var(--motion-fast),color var(--motion-fast)}.nav-button>svg{width:22px;height:22px;display:block;flex:0 0 auto}.nav-button[data-active=true]{color:var(--text);background:var(--surface-raised)}.nav-label{display:inline;max-width:100%;overflow:hidden;text-overflow:ellipsis;font-size:.62rem;line-height:1.1;text-align:center}.placeholder-page{max-width:760px;margin:8vh auto 0;margin-top:8dvh;padding:clamp(20px,4vw,40px);border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface)}.placeholder-page h1,.fatal-error h1{margin:4px 0 12px;font-size:clamp(1.7rem,5vw,3rem);letter-spacing:-.045em}.placeholder-page p,.fatal-error p{color:var(--muted);line-height:1.6}.eyebrow{margin:0;color:var(--subtle)!important;font-size:.72rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase}.fatal-error{min-height:100vh;min-height:100dvh;display:grid;place-items:center;padding:var(--space-6)}.fatal-error>div{max-width:560px}.interaction-error{position:fixed;top:max(72px,calc(env(safe-area-inset-top) + 60px));right:max(16px,env(safe-area-inset-right));z-index:160;max-width:min(420px,calc(100vw - 32px));padding:10px 12px;border:1px solid color-mix(in srgb,var(--danger) 48%,var(--border));border-radius:var(--radius-md);color:var(--danger);background:var(--surface);box-shadow:0 14px 45px #0006}body:has([aria-modal=true]) .app-main{overscroll-behavior:none}@media(max-width:420px){.app-header{gap:6px;padding-right:max(var(--space-3),env(safe-area-inset-right));padding-left:max(var(--space-3),env(safe-area-inset-left))}.brand-name{display:none}.header-actions{gap:0}.app-main{padding:var(--space-4);padding-right:max(var(--space-4),env(safe-area-inset-right));padding-left:max(var(--space-4),env(safe-area-inset-left))}.primary-nav{gap:0;justify-content:space-between}.nav-button{flex:1 1 var(--touch)}}@media(max-width:340px){.primary-nav{padding-right:max(6px,env(safe-area-inset-right));padding-left:max(6px,env(safe-area-inset-left))}.nav-label{font-size:.58rem}}@media(min-width:800px){.app-shell{grid-template-columns:76px minmax(0,1fr);grid-template-rows:auto minmax(0,1fr)}.app-header{grid-column:1 / -1}.primary-nav{grid-row:2;grid-column:1;display:grid;grid-template-columns:1fr;grid-auto-rows:56px;align-content:start;overflow:visible;border-top:0;border-right:1px solid var(--border);padding:var(--space-3)}.nav-button{min-width:var(--touch);min-height:var(--touch);flex-direction:row;gap:6px}.nav-label{display:none;font-size:.76rem}.app-main{grid-row:2;grid-column:2;padding:var(--space-6)}}@media(min-width:1120px){.app-shell{grid-template-columns:164px minmax(0,1fr)}.nav-button{justify-content:flex-start;padding:0 14px}.nav-label{display:inline}}@media(hover:none),(pointer:coarse){.header-icon-button:hover{color:var(--muted);background:transparent}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
