@import url('https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@400;500;600;700&display=swap');

:root{
  --fh-void:#0c0c0c;
  --fh-chrome:#000;
  --fh-surface:#181818;
  --fh-surface-2:#242424;
  --fh-ink:#b2b2b2;
  --fh-strong:#fafafa;
  --fh-muted:#808080;
  --fh-line:#303030;
  --fh-violet:#c77dff;
  --fh-mint:#a6e3a1;
  --fh-danger:#f38ba8;
  --fh-radius:10px;
}

html{background:var(--fh-void)}
body.fh-app-body{margin:0;min-height:100vh;background:var(--fh-void);color:var(--fh-ink);font-family:"Plus Jakarta Sans",Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;overflow-x:hidden}
body.fh-app-body a{color:var(--fh-violet)}
body.fh-app-body a:hover{color:var(--fh-strong);text-decoration:none}
body.fh-app-body .bg-static{background:var(--fh-void);display:none}
body.fh-app-body .fh-app-frame{height:100dvh;min-height:0;display:flex;overflow:hidden;background:var(--fh-void)}
body.fh-app-body .fh-rail{width:60px;min-width:60px;height:100dvh;min-height:0;display:flex;flex-direction:column;align-items:center;gap:6px;padding:14px 4px max(12px,env(safe-area-inset-bottom));overflow-y:auto;scrollbar-width:none;background:var(--fh-chrome);border-right:1px solid var(--fh-line);z-index:30}
body.fh-app-body .fh-rail::-webkit-scrollbar{display:none}
.fh-rail-brand{display:grid;place-items:center;width:44px;height:44px;flex:none;margin:0 0 2px;color:var(--fh-strong);text-decoration:none}
.fh-brand-mark{display:grid;place-items:center;width:44px;height:44px;border:1px solid var(--fh-cyan);border-radius:8px;background:var(--fh-surface);color:var(--fh-cyan);font-size:.7rem;font-weight:800;letter-spacing:-.06em}
.fh-brand-mark img{display:block;width:21px;height:21px;object-fit:contain}
.fh-rail-wordmark,.fh-rail-heading{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.fh-rail-nav{display:flex;flex:none;flex-direction:column;gap:5px}
.fh-rail-item>span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.fh-nav-icon{display:block;width:20px;height:20px;background:currentColor;-webkit-mask:var(--fh-nav-icon) center/contain no-repeat;mask:var(--fh-nav-icon) center/contain no-repeat}
.fh-rail-item{position:relative;display:grid;place-items:center;width:44px;height:44px;flex:none;border:1px solid transparent;border-radius:8px;background:transparent;color:var(--fh-muted)!important;text-decoration:none!important;font-size:.95rem;transition:color .14s ease,background .14s ease,border-color .14s ease}
.fh-rail-item:hover,.fh-rail-item.is-current{background:var(--fh-surface);border-color:var(--fh-line);color:var(--fh-strong)!important}
.fh-rail-item.is-current{border-color:var(--fh-cyan);color:var(--fh-cyan)!important}
.fh-rail-item::after{content:attr(title);position:absolute;left:52px;top:50%;z-index:50;transform:translateY(-50%);padding:6px 8px;border:1px solid var(--fh-line);border-radius:6px;background:var(--fh-surface-2);color:var(--fh-strong);font-size:.7rem;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .12s ease}
.fh-rail-item:hover::after,.fh-rail-item:focus-visible::after{opacity:1}
.fh-rail-divider{width:42px;height:1px;flex:none;margin:4px 0;background:var(--fh-line)}
.fh-rail-spacer{flex:1}
.fh-app-main{min-width:0;height:100dvh;min-height:0;flex:1;display:flex;overflow:hidden;flex-direction:column;background:var(--fh-void)}
body.fh-app-body .fh-shell-nav{position:sticky;top:0;z-index:20;display:block;margin:0;padding:0;background:var(--fh-void);border:0;border-radius:0;box-shadow:none}
/* The launcher is the complete root experience. The legacy home window layer
   remains in the file for backwards compatibility, but is never shown on /. */
body.fh-home-body>.shell,body.fh-home-body>#discordPop,body.fh-home-body>#settingsPop,body.fh-home-body>#photoPop{display:none!important}
.fh-tab-strip{height:42px;display:flex;align-items:flex-end;gap:5px;padding:0 10px;border-bottom:1px solid var(--fh-line);background:var(--fh-chrome)}
.fh-tab{display:inline-flex;align-items:center;gap:8px;min-width:170px;max-width:300px;height:34px;padding:0 10px;border:1px solid var(--fh-line);border-bottom:0;border-radius:8px 8px 0 0;background:var(--fh-surface);color:var(--fh-ink)!important;font-size:.74rem;text-decoration:none!important}
.fh-tab.is-active{border-color:var(--fh-violet);color:var(--fh-strong)!important}
.fh-tab-logo{display:block;width:15px;height:15px;object-fit:contain}.fh-tab span:nth-child(2){overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fh-tab-close{margin-left:auto;color:var(--fh-muted);font-size:1rem;line-height:1}
.fh-tab-actions{display:flex;align-items:center;gap:7px;height:100%;margin-left:auto;padding-bottom:4px}
.fh-tab-actions>.fh-tool-btn{width:30px;height:30px;margin:0}
.fh-new-tab,.fh-tool-btn{display:grid;place-items:center;border:1px solid transparent;background:transparent;color:var(--fh-muted)!important;text-decoration:none!important;cursor:pointer}
.fh-new-tab{width:30px;height:30px;margin:0 0 2px;padding:0;border-radius:7px;font-size:1.15rem}.fh-new-tab:hover,.fh-tool-btn:hover{background:var(--fh-surface);border-color:var(--fh-line);color:var(--fh-strong)!important}
.fh-toolbar{height:46px;display:flex;align-items:center;gap:10px;padding:0 12px;border-bottom:1px solid var(--fh-line);background:var(--fh-surface)}
.fh-toolbar-group{display:flex;align-items:center;gap:4px;min-width:0}.fh-tool-btn{width:28px;height:28px;border-radius:6px;font-size:1.15rem;line-height:1}
.fh-route-display{min-width:0;flex:1;display:flex;align-items:center;gap:8px;height:32px;margin:0;padding:0 7px 0 10px;border:1px solid var(--fh-line);border-radius:7px;background:var(--fh-void);color:var(--fh-muted);font:12px/1.2 ui-monospace,SFMono-Regular,Menlo,monospace}.fh-route-display:focus-within{border-color:var(--fh-violet)}.fh-route-display>i{color:var(--fh-mint);font-size:.75rem}.fh-route-display input{min-width:0;width:100%;height:28px;padding:0!important;border:0!important;background:transparent!important;color:var(--fh-strong)!important;box-shadow:none!important;font:inherit!important;outline:0!important}.fh-route-display input::placeholder{color:var(--fh-muted);opacity:1}.fh-address-go{display:grid;place-items:center;width:24px;height:24px;flex:0 0 24px;padding:0;border:0;border-radius:5px;background:transparent;color:var(--fh-muted);cursor:pointer}.fh-address-go:hover,.fh-address-go:focus-visible{background:var(--fh-surface-2);color:var(--fh-violet)}.fh-address-go i{font-size:.68rem}.fh-sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.fh-system-status{display:inline-flex;align-items:center;gap:6px;color:var(--fh-muted);font-size:.67rem;white-space:nowrap}.fh-system-status i{width:6px;height:6px;border-radius:50%;background:var(--fh-mint)}
.fh-toolbar-link{display:inline-flex;align-items:center;gap:5px;padding:6px 8px;border:1px solid transparent;border-radius:6px;color:var(--fh-muted)!important;font-size:.72rem;white-space:nowrap}.fh-toolbar-link:hover,.fh-toolbar-link.is-strong{border-color:var(--fh-violet);color:var(--fh-strong)!important}
body.fh-app-body .page{width:100%;max-width:none;min-height:0;flex:1;min-width:0;margin:0 auto;padding:28px clamp(16px,4vw,48px) 42px;overflow-y:auto;position:relative;z-index:1}
body.fh-app-body .page>*{max-width:1280px;margin-left:auto;margin-right:auto}
body.fh-app-body .page>.messenger-shell,body.fh-app-body .page>.ai-workspace{max-width:none;margin:0}
body.fh-app-body .card,body.fh-app-body .glass-card,body.fh-app-body .service-hero,body.fh-app-body .service-card,body.fh-app-body .mail-panel,body.fh-app-body .ai-shell,body.fh-app-body .plan{background:var(--fh-surface)!important;border:1px solid var(--fh-line)!important;border-radius:var(--fh-radius)!important;box-shadow:none!important}
body.fh-app-body .card:hover,body.fh-app-body .mail-item:hover,body.fh-app-body .mail-item.active{transform:none!important;box-shadow:none!important;border-color:var(--fh-violet)!important}
body.fh-app-body .card h1,body.fh-app-body .card h2,body.fh-app-body .card h3,body.fh-app-body .service-card h1,body.fh-app-body .service-card h2,body.fh-app-body .service-card h3{color:var(--fh-strong)}
body.fh-app-body .card p,body.fh-app-body .card li,body.fh-app-body .service-card p,body.fh-app-body .service-card li{color:var(--fh-ink)}
body.fh-app-body .btn-primary-custom,body.fh-app-body .service-btn,body.fh-app-body .card .btn,body.fh-app-body .btn-nav,body.fh-app-body .send,body.fh-app-body .mail-compose,body.fh-app-body #ai-go,body.fh-app-body .btn1{background:var(--fh-surface)!important;border:1px solid var(--fh-violet)!important;border-radius:8px!important;color:var(--fh-strong)!important;box-shadow:none!important}
body.fh-app-body .btn-primary-custom:hover,body.fh-app-body .service-btn:hover,body.fh-app-body .card .btn:hover,body.fh-app-body .send:hover,body.fh-app-body .mail-compose:hover,body.fh-app-body #ai-go:hover{background:var(--fh-violet)!important;color:#140b1b!important;transform:none!important}
body.fh-app-body input,body.fh-app-body textarea,body.fh-app-body select,body.fh-app-body .input,body.fh-app-body .form-control{background:#0a0a0a!important;border:1px solid var(--fh-line)!important;border-radius:8px!important;color:var(--fh-strong)!important;box-shadow:none!important}
body.fh-app-body input:focus,body.fh-app-body textarea:focus,body.fh-app-body select:focus,body.fh-app-body .input:focus,body.fh-app-body .form-control:focus{border-color:var(--fh-violet)!important;box-shadow:0 0 0 2px rgba(199,125,255,.18)!important}
body.fh-app-body table th{color:var(--fh-muted);border-color:var(--fh-line)}body.fh-app-body table td{color:var(--fh-ink);border-color:var(--fh-line)}
body.fh-app-body .fh-foot{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-top:36px;padding:18px 0 0;border-top:1px solid var(--fh-line);color:var(--fh-muted);font-size:.72rem}.fh-foot .fh-brand-mark{width:28px;height:28px;font-size:.6rem}.fh-foot strong{color:var(--fh-strong)}.fh-foot nav{display:flex;gap:14px;flex-wrap:wrap}.fh-foot nav a,.fh-foot p{color:var(--fh-muted)!important}
body.fh-app-body .fh-message-link{display:none!important}
body.fh-app-body .toast{background:var(--fh-surface)!important;border-color:var(--fh-violet)!important;color:var(--fh-strong)!important;box-shadow:none!important}
body.fh-app-body .premium-modal{background:rgba(0,0,0,.82)}body.fh-app-body .premium-modal-card{background:var(--fh-surface);border-color:var(--fh-violet);box-shadow:none}
body.fh-app-body .premium-badge{background:transparent;border:1px solid var(--fh-violet);color:var(--fh-violet)}
body.fh-app-body .fh-messenger-page .page{padding:0;max-width:none}
body.fh-app-body .messenger-shell{max-width:none;margin:0;background:var(--fh-surface);box-shadow:none;border:1px solid var(--fh-line)}
body.fh-app-body .messenger-sidebar,body.fh-app-body .chat-header{background:var(--fh-surface);border-color:var(--fh-line)}
body.fh-app-body .messenger-main,body.fh-app-body .messages-container,body.fh-app-body .typing-line,body.fh-app-body .composer-wrap{background:var(--fh-void);background-image:none}
body.fh-app-body .chat-row:hover,body.fh-app-body .folder-tab.active,body.fh-app-body .folder-tab:hover{background:var(--fh-surface-2);color:var(--fh-strong)}
body.fh-app-body .chat-row.active{background:rgba(199,125,255,.18);border:1px solid var(--fh-violet)}
body.fh-app-body .composer{background:var(--fh-surface);border-color:var(--fh-line);box-shadow:none}body.fh-app-body .send-btn{background:var(--fh-violet);color:#140b1b}body.fh-app-body .send-btn:hover{background:#e1b9ff}
body.fh-app-body .message-bubble{background:var(--fh-surface-2);box-shadow:none}.fh-app-body .mine .message-bubble{background:rgba(199,125,255,.18);border:1px solid rgba(199,125,255,.45)}
body.fh-app-body .ai-workspace{background:var(--fh-void)!important;color:var(--fh-ink)}body.fh-app-body .ai-nav,body.fh-app-body .ai-sidebar,body.fh-app-body .ai-chat-top,body.fh-app-body .ai-composer{background:var(--fh-surface)!important;border-color:var(--fh-line)!important}
body.fh-app-body .ai-input-wrap{background:#0a0a0a!important;border-color:var(--fh-line)!important;box-shadow:none!important}body.fh-app-body .ai-input-wrap:focus-within{border-color:var(--fh-violet)!important}
body.fh-app-body .ai-message.user{background:rgba(199,125,255,.16)!important;border-color:rgba(199,125,255,.45)!important}
body.fh-app-body .game-card{background:var(--fh-surface)!important;border-color:var(--fh-line)!important;box-shadow:none!important}.fh-app-body .game-card:hover{border-color:var(--fh-violet)!important;transform:none!important}.fh-app-body .game-art{filter:none!important}
body.fh-app-body ::selection{background:rgba(199,125,255,.35);color:var(--fh-strong)}body.fh-app-body *{scrollbar-color:#4a3a55 transparent}body.fh-app-body ::-webkit-scrollbar{width:8px;height:8px}body.fh-app-body ::-webkit-scrollbar-thumb{background:#4a3a55;border-radius:8px}
body.fh-app-body :focus-visible{outline:2px solid var(--fh-violet)!important;outline-offset:2px}
body.fh-app-body.fh-embed .fh-rail,body.fh-app-body.fh-embed .fh-shell-nav,body.fh-app-body.fh-embed .fh-foot{display:none!important}body.fh-app-body.fh-embed .fh-app-main{min-height:100vh}body.fh-app-body.fh-embed .page{max-width:none;padding:16px}
@media(max-width:780px){body.fh-app-body .fh-rail{width:60px;min-width:60px;padding:12px 4px max(10px,env(safe-area-inset-bottom));gap:5px}.fh-rail-brand,.fh-brand-mark,.fh-rail-item{width:42px;height:42px}.fh-rail-divider{width:40px;margin:3px 0}.fh-tab{min-width:130px}.fh-system-status{display:none}.fh-toolbar-account .fh-toolbar-link span{display:none}body.fh-app-body .page{padding:20px 12px 34px}}
@media(max-width:520px){.fh-tab-strip{padding-inline:5px}.fh-tab{min-width:112px;max-width:190px}.fh-route-display{font-size:10px}.fh-toolbar{gap:5px;padding-inline:6px}.fh-toolbar-group:first-child{display:none}.fh-toolbar-link{padding-inline:5px}.fh-rail-item::after{display:none}}
@media(prefers-reduced-motion:reduce){body.fh-app-body *,body.fh-app-body *::before,body.fh-app-body *::after{animation-duration:.01ms!important;transition:none!important}}

/* The launcher is the home tab's desktop view. Keep its existing window manager
   and routes, but bring the chrome into the same quiet browser-shell system. */
body.fh-home-body{background:var(--fh-void)!important;color:var(--fh-ink)!important;overflow:hidden!important;font-family:"Plus Jakarta Sans",Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif!important}
body.fh-home-body .shell{position:fixed;inset:0;display:flex;background:var(--fh-void);z-index:2}
body.fh-home-body .side{width:64px;min-width:64px;background:var(--fh-chrome);border-right:1px solid var(--fh-line);padding:10px 8px;gap:5px;scrollbar-color:#4a3a55 transparent}
body.fh-home-body .side .brand{justify-content:center;min-height:42px;padding:0;margin-bottom:8px;background:var(--fh-chrome);border:0;color:var(--fh-strong)}
body.fh-home-body .side .brand .bmono{width:34px;height:34px;border:1px solid var(--fh-violet);border-radius:9px;background:var(--fh-surface);color:var(--fh-violet);font-size:.7rem}
body.fh-home-body .side .brand .txt,body.fh-home-body .side .sect,body.fh-home-body .side .app>span:not(.tab-icon),body.fh-home-body .side .foot .fb>span:not(.tab-icon),body.fh-home-body .legal-links{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
body.fh-home-body .side .apps{padding:4px 0 2px;display:flex;flex-direction:column;gap:4px}
body.fh-home-body .side .app{justify-content:center;width:46px;height:40px;min-height:40px;padding:0;margin:0;border:1px solid transparent;border-radius:8px;color:var(--fh-muted);background:transparent}
body.fh-home-body .side .app:hover,body.fh-home-body .side .app:focus-visible{background:var(--fh-surface);border-color:var(--fh-line);color:var(--fh-strong)}
body.fh-home-body .side .app i,body.fh-home-body .side .app .tab-icon{width:18px;height:18px;color:var(--fh-violet);background:var(--fh-violet);font-size:.9rem;flex:0 0 18px}
body.fh-home-body .side .foot{padding:8px 0 0;margin-top:auto;border-top:1px solid var(--fh-line)}
body.fh-home-body .side .foot .fb{justify-content:center;width:46px;height:40px;min-height:40px;padding:0;border-color:transparent;border-radius:8px;background:transparent;color:var(--fh-muted)}
body.fh-home-body .side .foot .fb:hover{border-color:var(--fh-violet);background:var(--fh-surface);color:var(--fh-strong)}
body.fh-home-body .side .foot .tab-icon{width:18px;height:18px;background:var(--fh-violet);flex:0 0 18px}
body.fh-home-body .desktop{background:var(--fh-void);overflow:hidden}
body.fh-home-body .desktop .wall{background:var(--fh-void)}
body.fh-home-body .desktop .startpad{color:var(--fh-muted);font-size:.75rem;letter-spacing:.04em}
body.fh-home-body .desktop .startpad b{color:var(--fh-line);font-size:2rem}
body.fh-home-body .win{background:var(--fh-surface);border:1px solid var(--fh-line);border-radius:10px;box-shadow:none}
body.fh-home-body .win.active{border-color:var(--fh-violet)}
body.fh-home-body .win .titlebar{background:var(--fh-chrome);border-bottom:1px solid var(--fh-line);padding:7px 10px}
body.fh-home-body .win .titlebar i,body.fh-home-body .win .titlebar .tab-icon{color:var(--fh-violet);background:var(--fh-violet)}
body.fh-home-body .win .titlebar .tt{color:var(--fh-strong);font-size:.75rem}
body.fh-home-body .win .titlebar .tbtn{color:var(--fh-muted)}
body.fh-home-body .win .titlebar .tbtn:hover{background:var(--fh-surface);color:var(--fh-strong)}
body.fh-home-body .win iframe{background:var(--fh-void)}
body.fh-home-body .win.single-view{inset:0!important;left:0!important;top:0!important;width:100%!important;height:100%!important;min-width:0!important;min-height:0!important;border:0!important;border-radius:0!important;resize:none!important;background:var(--fh-void)!important}
body.fh-home-body .win.single-view .titlebar{display:none!important}
body.fh-home-body .win.single-view .wbody{height:100%;overflow:hidden}
body.fh-home-body .pop-back{background:rgba(0,0,0,.78)}
body.fh-home-body .pop{background:var(--fh-surface);border:1px solid var(--fh-violet);border-radius:10px;box-shadow:none}
body.fh-home-body .pbtn{background:var(--fh-void);border-color:var(--fh-line);border-radius:8px}
body.fh-home-body .pbtn:hover{border-color:var(--fh-violet)}
body.fh-home-body .pbtn .tab-icon,body.fh-home-body .pbtn i{background:var(--fh-violet);color:var(--fh-violet)}
body.fh-home-body .pclose{color:var(--fh-muted)}
body.fh-home-body .sw{border-color:var(--fh-line);border-radius:7px}
body.fh-home-body .sw.sel,body.fh-home-body .sw:hover{border-color:var(--fh-violet)}
body.fh-home-body .setrow{border-color:var(--fh-line)}
body.fh-home-body .setrow b{color:var(--fh-strong)}
body.fh-home-body .toast{background:var(--fh-surface);border-color:var(--fh-violet);box-shadow:none}
@media(max-width:760px){body.fh-home-body .side{width:54px;min-width:54px;padding-inline:4px}body.fh-home-body .side .app,body.fh-home-body .side .foot .fb{width:44px}}

/* Root launcher: a single, flat workspace matching the approved shell design. */
.fh-root-launcher{position:fixed;inset:0;z-index:100;display:flex;min-width:0;min-height:100vh;background:var(--fh-void);color:var(--fh-ink);font-family:"Plus Jakarta Sans",Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif}
.fh-root-rail{width:60px;min-width:60px;height:100dvh;display:flex;flex-direction:column;align-items:center;gap:6px;padding:14px 4px max(12px,env(safe-area-inset-bottom));overflow-y:auto;scrollbar-width:none;background:var(--fh-chrome);border-right:1px solid var(--fh-line)}
.fh-root-rail::-webkit-scrollbar{display:none}
.fh-root-brand,.fh-root-rail-link{display:grid;place-items:center;width:44px;height:44px;flex:none;border:1px solid transparent;border-radius:8px;background:transparent;color:var(--fh-muted);text-decoration:none!important;transition:background .15s ease,border-color .15s ease,color .15s ease}
.fh-root-rail-link .fh-nav-icon{width:21px;height:21px}
.fh-root-brand{margin-bottom:2px;color:var(--fh-strong);font-size:1.25rem;font-weight:700;letter-spacing:-.08em;border-color:var(--fh-cyan);background:var(--fh-surface)}.fh-root-brand img{display:block;width:22px;height:22px;object-fit:contain}
.fh-root-brand:hover,.fh-root-rail-link:hover{background:var(--fh-surface);border-color:var(--fh-line);color:var(--fh-strong)}
.fh-root-rail-link.is-current{border-color:var(--fh-cyan);color:var(--fh-cyan);background:var(--fh-surface)}
.fh-root-rail-divider{width:42px;height:1px;flex:none;margin:4px 0;background:var(--fh-line)}
.fh-root-rail-spacer{flex:1}
.fh-root-main{display:flex;min-width:0;min-height:100vh;flex:1;flex-direction:column;background:var(--fh-void)}
.fh-root-chrome{height:60px;min-height:60px;display:flex;align-items:flex-end;gap:6px;padding:0 14px;background:var(--fh-chrome);border-bottom:1px solid var(--fh-line)}
.fh-root-tab{display:flex;align-items:center;gap:10px;min-width:260px;height:44px;padding:0 14px;border:1px solid var(--fh-violet);border-bottom:0;border-radius:9px 9px 0 0;background:var(--fh-surface);color:var(--fh-strong);font-size:.84rem}
.fh-root-tab-logo{display:block;width:17px;height:17px;object-fit:contain}.fh-root-tab-close{margin-left:auto;color:var(--fh-muted);font-size:1.15rem}
.fh-root-new-tab,.fh-root-chrome-btn{display:grid;place-items:center;width:34px;height:34px;margin-bottom:4px;border:1px solid transparent;border-radius:7px;background:transparent;color:var(--fh-muted);cursor:pointer;font:inherit;font-size:1.2rem}
.fh-root-new-tab:hover,.fh-root-chrome-btn:hover{background:var(--fh-surface);border-color:var(--fh-line);color:var(--fh-strong)}
.fh-root-account{display:flex;align-items:center;gap:12px;margin:0 0 8px auto;color:var(--fh-muted);font-size:.72rem}
.fh-root-status{display:inline-flex;align-items:center;gap:7px;white-space:nowrap}.fh-root-status i{width:7px;height:7px;border-radius:50%;background:var(--fh-mint)}
.fh-root-signin{padding:8px 13px;border:1px solid var(--fh-line);border-radius:7px;color:var(--fh-ink)!important;text-decoration:none!important;font-weight:600}.fh-root-signin:hover{border-color:var(--fh-violet);color:var(--fh-strong)!important}
.fh-root-toolbar{height:56px;min-height:56px;display:flex;align-items:center;gap:10px;padding:0 18px;background:var(--fh-surface);border-bottom:1px solid var(--fh-line)}
.fh-root-toolbar-nav{display:flex;gap:4px}.fh-root-toolbar-btn{display:grid;place-items:center;width:30px;height:30px;border:0;border-radius:6px;background:transparent;color:var(--fh-muted);cursor:pointer;font:inherit;font-size:1.25rem}.fh-root-toolbar-btn:hover{background:var(--fh-surface-2);color:var(--fh-strong)}
.fh-root-route{display:flex;align-items:center;gap:9px;min-width:0;flex:1;height:34px;margin:0;padding:0 7px 0 12px;border:1px solid var(--fh-line);border-radius:7px;background:var(--fh-void);color:var(--fh-muted);font:12px/1.2 ui-monospace,SFMono-Regular,Menlo,monospace}.fh-root-route:focus-within{border-color:var(--fh-violet)}.fh-root-route>i{color:var(--fh-mint)}.fh-root-route input{min-width:0;width:100%;height:30px;padding:0;border:0;outline:0;background:transparent;color:var(--fh-strong);font:inherit}.fh-root-route input::placeholder{color:var(--fh-muted);opacity:1}.fh-root-route .fh-address-go{color:var(--fh-muted)}
.fh-root-content{min-width:0;flex:1;overflow-y:auto;padding:48px 30px 58px;background:var(--fh-void)}
.fh-root-inner{width:100%;max-width:1050px;margin:0 auto}
.fh-root-hero{display:flex;flex-direction:column;align-items:center;gap:20px;padding:0 12px 42px;border-bottom:1px solid var(--fh-line);text-align:center}.fh-root-eyebrow{margin:0 0 12px;color:var(--fh-muted);font:600 10px/1.2 ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.18em;text-transform:uppercase}.fh-root-hero h1{margin:0;color:var(--fh-strong);font-size:30px;line-height:1.18;letter-spacing:-.045em;font-weight:600}.fh-root-hero p{max-width:650px;margin:12px auto 0;color:var(--fh-muted);font-size:15px;line-height:1.8}.fh-root-live{display:inline-flex;align-items:center;gap:9px;color:var(--fh-muted);font-size:13px}.fh-root-live i{width:10px;height:10px;border-radius:50%;background:var(--fh-mint)}
.fh-root-search{display:flex;align-items:center;gap:12px;height:54px;margin:40px auto 38px;padding:0 15px;border:1px solid var(--fh-line);border-radius:8px;background:var(--fh-surface);color:var(--fh-muted)}.fh-root-search:focus-within{border-color:var(--fh-violet)}.fh-root-search i{font-size:1.1rem}.fh-root-search input{width:100%;border:0!important;outline:0;background:transparent!important;box-shadow:none!important;color:var(--fh-strong)!important;font:inherit;font-size:15px}.fh-root-search kbd{padding:3px 7px;border:1px solid var(--fh-line);border-radius:4px;background:var(--fh-surface-2);font:10px ui-monospace,SFMono-Regular,Menlo,monospace}
.fh-root-section-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}.fh-root-section-head h2{margin:0;color:var(--fh-ink);font-size:13px;line-height:1;text-transform:uppercase;letter-spacing:.14em;font-weight:600}.fh-root-section-head span{color:var(--fh-muted);font:10px ui-monospace,SFMono-Regular,Menlo,monospace}
.fh-root-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.fh-root-card{display:flex;min-height:142px;flex-direction:column;padding:17px;border:1px solid var(--fh-line);border-radius:8px;background:var(--fh-surface);color:var(--fh-strong)!important;text-decoration:none!important;transition:border-color .15s ease,background .15s ease,transform .15s ease}.fh-root-card:hover,.fh-root-card:focus-visible{border-color:var(--fh-violet);background:var(--fh-surface-2);transform:translateY(-1px)}.fh-root-card-icon{display:grid;place-items:center;width:40px;height:40px;margin-bottom:17px;border:1px solid var(--fh-line);border-radius:5px;color:var(--fh-ink);font-size:1rem}.fh-root-card:hover .fh-root-card-icon{border-color:var(--fh-violet);color:var(--fh-violet)}.fh-root-card strong{font-size:15px;font-weight:600}.fh-root-card small{margin-top:5px;color:var(--fh-muted);font-size:12px}.fh-root-footer{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-top:42px;padding-top:18px;border-top:1px solid var(--fh-line);color:var(--fh-muted);font-size:12px}.fh-root-footer a{color:var(--fh-muted)!important;text-decoration:none}.fh-root-footer a:hover{color:var(--fh-strong)!important}
.fh-root-community{margin-top:38px}.fh-root-grid-secondary .fh-root-card{min-height:112px}
@media(max-width:900px){.fh-root-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.fh-root-content{padding-inline:22px}.fh-root-status{display:none}}
@media(max-width:680px){.fh-root-rail{width:60px;min-width:60px;padding:12px 4px max(10px,env(safe-area-inset-bottom));gap:5px}.fh-root-brand,.fh-root-rail-link{width:42px;height:42px}.fh-root-rail-divider{width:40px;margin:3px 0}.fh-root-tab{min-width:190px}.fh-root-account{gap:4px}.fh-root-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.fh-root-content{padding:30px 16px 48px}.fh-root-hero h1{font-size:25px}.fh-root-route{font-size:10px}}
@media(max-width:430px){.fh-root-rail{width:56px;min-width:56px;padding-inline:3px}.fh-root-brand,.fh-root-rail-link{width:40px;height:40px}.fh-root-rail-divider{width:38px}.fh-root-chrome{padding-inline:8px}.fh-root-tab{min-width:150px;padding-inline:9px;font-size:.74rem}.fh-root-new-tab{width:28px}.fh-root-toolbar{padding-inline:8px;gap:4px}.fh-root-toolbar-nav{display:none}.fh-root-grid{grid-template-columns:1fr}.fh-root-footer{align-items:flex-start;flex-direction:column}}

/* Full-height workspaces need to account for the launcher chrome above them. */
body.fh-messenger-page .fh-app-frame,
body.fh-ai-page .fh-app-frame{height:100dvh;min-height:100dvh}
body.fh-messenger-page .fh-app-main,
body.fh-ai-page .fh-app-main{min-height:0}
body.fh-messenger-page .fh-app-main>.page,
body.fh-ai-page .fh-app-main>.page{width:100%;max-width:none;min-height:0;padding:0;display:flex;flex:1;overflow:hidden}
body.fh-messenger-page .fh-foot,
body.fh-ai-page .fh-foot{display:none}
body.fh-messenger-page .messenger-shell{height:100%;min-height:0;max-width:none;margin:0;width:100%;border-radius:0}
body.fh-ai-page .ai-workspace{height:100%;min-height:0;width:100%;background:var(--fh-void)!important}
body.fh-ai-page .ai-app{min-height:0;flex:1}

/* Standalone VPN portal: the portal keeps its API and download flow, while its
   presentation now uses the same flat browser-shell palette. */
body.fh-vpn-page{background:var(--fh-void)!important;color:var(--fh-ink)!important;font-family:"Plus Jakarta Sans",Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif!important}
body.fh-vpn-page .bg{background:var(--fh-void)!important}
body.fh-vpn-page .wrap{max-width:960px;padding:28px clamp(14px,4vw,48px) 48px}
body.fh-vpn-page .topnav{padding-bottom:16px;border-bottom:1px solid var(--fh-line)}
body.fh-vpn-page .topnav a{color:var(--fh-muted)}
body.fh-vpn-page .topnav a:hover{color:var(--fh-strong)}
body.fh-vpn-page .logo{background:var(--fh-surface)!important;border:1px solid var(--fh-violet);border-radius:8px;color:var(--fh-violet)!important}
body.fh-vpn-page h1{color:var(--fh-strong)}
body.fh-vpn-page .sub,body.fh-vpn-page .card p,body.fh-vpn-page .card li,body.fh-vpn-page .card h3,body.fh-vpn-page .card .v,body.fh-vpn-page .card .k{color:var(--fh-ink)}
body.fh-vpn-page .card,body.fh-vpn-page .plan,body.fh-vpn-page .qcell{background:var(--fh-surface)!important;border:1px solid var(--fh-line)!important;border-radius:var(--fh-radius)!important;box-shadow:none!important}
body.fh-vpn-page .location-card{background:var(--fh-surface)!important;border-color:var(--fh-violet)!important}
body.fh-vpn-page .btn{background:var(--fh-surface)!important;border:1px solid var(--fh-violet)!important;border-radius:8px!important;color:var(--fh-strong)!important}
body.fh-vpn-page .btn:hover{background:var(--fh-violet)!important;color:#140b1b!important}
body.fh-vpn-page .btn.ghost{border-color:var(--fh-line)!important;color:var(--fh-ink)!important}
body.fh-vpn-page .badge{background:transparent;border:1px solid var(--fh-violet);border-radius:6px;color:var(--fh-violet)}
body.fh-vpn-page .quota-left{color:var(--fh-mint)}
body.fh-vpn-page .quota-bar{background:#0a0a0a;border:1px solid var(--fh-line)}
body.fh-vpn-page .quota-fill{background:var(--fh-mint)}
body.fh-vpn-page .loc-btn{background:#0a0a0a;border-color:var(--fh-line);color:var(--fh-strong);border-radius:8px}
body.fh-vpn-page .loc-btn:hover,body.fh-vpn-page .loc-btn[aria-pressed="true"]{background:var(--fh-surface-2);border-color:var(--fh-violet);transform:none}
body.fh-vpn-page .link-input{background:#0a0a0a;border-color:var(--fh-line);color:var(--fh-strong)}
