:root{--paper: #ffffff;--surface: #ffffff;--surface-sunken: #eceef3;--ink: #11131a;--ink-secondary: #4d5361;--ink-tertiary: #747b89;--on-accent: #ffffff;--hairline: rgba(17, 19, 26, .08);--hairline-strong: rgba(17, 19, 26, .18);--route-cyan: #69e7ff;--route-rose: #ff5c8a;--route-amber: #eed07a;--route-violet: #a78bfa;--route-grey: #98a2b3;--space-xs: 4px;--space-sm: 8px;--space-md: 12px;--space-lg: 16px;--space-xl: 24px;--space-xxl: 32px;--rounded-chip: 12px;--rounded-card: 22px;--rounded-sheet: 28px;--rounded-pill: 999px;--font-signage: "Helvetica Neue", Helvetica, Arial, sans-serif;--font-body: -apple-system, BlinkMacSystemFont, "SF Pro Text", system-ui, sans-serif;color-scheme:light dark}@media(prefers-color-scheme:dark){:root{--paper: #000000;--surface: #0d0d0d;--surface-sunken: #171717;--ink: #f7f7f2;--ink-secondary: #cfcfcf;--ink-tertiary: #969696;--on-accent: #000000;--hairline: rgba(255, 255, 255, .12);--hairline-strong: rgba(255, 255, 255, .24)}}*{box-sizing:border-box}body{margin:0;font-family:var(--font-body);font-size:17px;line-height:1.45;background:var(--paper);color:var(--ink);-webkit-font-smoothing:antialiased}.app{max-width:1120px;margin:0 auto;padding:28px 32px 64px}.portal-header{position:sticky;top:0;z-index:50;display:flex;align-items:center;gap:1rem;margin:-28px -32px 40px;padding:.7rem clamp(1rem,3vw,2rem);background:color-mix(in srgb,var(--paper),transparent 8%);border-bottom:3px solid var(--ink);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}.brand{display:inline-flex;align-items:center;gap:.6rem;color:var(--ink);text-decoration:none;font-family:var(--font-signage);font-size:1rem;font-weight:800}.brand-name{letter-spacing:0;text-transform:lowercase}.brand-sep{color:var(--ink-tertiary);font-weight:500}.brand-kana{display:block;width:2.2rem;height:1.58rem;flex:0 0 2.2rem;object-fit:contain}.portal-nav{display:flex;align-items:center;gap:.2rem;margin-left:auto;min-width:0;overflow-x:auto;scrollbar-width:none}.portal-nav::-webkit-scrollbar{display:none}.portal-nav a{position:relative;flex:0 0 auto;font-family:var(--font-signage);font-size:.73rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-secondary);text-decoration:none;padding:.45rem .7rem}.portal-nav a:hover,.portal-nav a.active{color:var(--ink)}.portal-nav a:after{content:"";position:absolute;right:.7rem;bottom:.16rem;left:.7rem;height:2px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .18s ease}.portal-nav a:hover:after,.portal-nav a.active:after{transform:scaleX(1)}.portal-account-menu{position:relative;flex:0 0 auto;margin-left:.5rem}.portal-account-trigger{display:inline-flex;align-items:center;max-width:14rem;gap:.35rem;padding:.45rem .5rem;color:var(--ink-tertiary);background:transparent;border-radius:var(--rounded-chip);font:700 .72rem var(--font-body);letter-spacing:0;text-transform:none}.portal-account-trigger>span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.portal-account-trigger:hover,.portal-account-trigger[aria-expanded=true]{color:var(--ink);background:var(--surface-sunken)}.portal-account-chevron{font-size:1rem;line-height:.7}.portal-account-dropdown{position:absolute;top:calc(100% + 8px);right:0;z-index:60;display:grid;min-width:156px;padding:5px;background:var(--surface);border:1px solid var(--hairline-strong);border-radius:var(--rounded-chip);box-shadow:0 12px 30px #11131a29}.portal-account-dropdown a,.portal-account-dropdown button{display:block;width:100%;padding:9px 10px;color:var(--ink-secondary);background:transparent;border-radius:8px;font:700 12px var(--font-body);letter-spacing:0;text-align:left;text-decoration:none;text-transform:none}.portal-account-dropdown a:hover,.portal-account-dropdown button:hover{color:var(--ink);background:var(--surface-sunken)}.translate-page{max-width:960px;margin:0 auto}.translate-heading{display:flex;align-items:end;justify-content:space-between;margin-bottom:24px}.pane-label{font-family:var(--font-signage);font-size:11px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-tertiary)}.translate-heading h1{font-size:38px;letter-spacing:-.035em;margin-top:3px}.translator{background:var(--surface);border-radius:var(--rounded-sheet);overflow:hidden;box-shadow:0 1px 0 var(--hairline-strong),0 16px 42px #11131a0f}.language-dock{min-height:68px;display:flex;align-items:center;justify-content:center;gap:24px;border-bottom:1px solid var(--hairline)}.language-dock label{display:flex;align-items:center;gap:9px}.language-dock select,.tone-control select{border:0;background:transparent;color:var(--ink);font:700 14px var(--font-signage);cursor:pointer}.language-dot{width:10px;height:10px;border-radius:50%;display:inline-block}.dot-source{background:var(--route-rose)}.dot-target{background:var(--route-cyan)}.swap{color:var(--ink-tertiary);background:transparent;padding:4px 8px;font-size:20px}.swap:hover{color:var(--ink)}.translation-grid{display:grid;grid-template-columns:1fr 1fr;min-height:360px}.editor-pane,.result-pane{position:relative;padding:24px 28px 42px}.editor-pane{border-right:1px solid var(--hairline)}.pane-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.pane-actions{justify-content:flex-end}.editor-pane textarea,.context-field{width:100%;resize:vertical;border:0;background:transparent;color:var(--ink);font:400 24px/1.38 var(--font-body);outline:0;padding:28px 0 0;min-height:244px}.paste-action{display:inline-flex;align-items:center;gap:6px;padding:5px 0;color:var(--ink-secondary);background:transparent;border-radius:0;font:800 11px var(--font-signage);letter-spacing:.06em;text-transform:uppercase}.paste-action:hover{color:var(--ink)}.paste-action .pela-icon{width:15px;height:15px}textarea::placeholder{color:var(--ink-tertiary);opacity:.8}.char-count{position:absolute;left:28px;bottom:22px;font-size:12px;color:var(--ink-tertiary)}.result-placeholder{margin:28px 0 0;color:var(--ink-tertiary);font-size:19px}.translated-text{margin:28px 0 0;font-size:26px;line-height:1.35;white-space:pre-wrap}.result-actions{position:absolute;right:24px;bottom:17px;display:flex;gap:16px}.icon-action,.control-link{background:transparent;color:var(--ink-secondary);padding:6px 0;font-size:13px}.control-link{display:inline-flex;align-items:center;gap:6px}.pela-icon{display:inline-block;flex:0 0 auto}.icon-action:hover,.icon-action.active,.control-link:hover,.control-link.active{color:var(--ink)}.translator-controls{display:flex;align-items:center;gap:22px;padding:15px 24px;border-top:1px solid var(--hairline);background:color-mix(in srgb,var(--surface-sunken),transparent 44%)}.tone-control{display:flex;align-items:center;gap:8px;color:var(--ink-tertiary);font:700 12px var(--font-signage);text-transform:uppercase;letter-spacing:.06em}.tone-control .pela-icon{width:16px;height:16px}.translate-button{margin-left:auto;border-radius:var(--rounded-chip);padding:13px 24px}@media(prefers-color-scheme:dark){.translate-button{background:#f7f7f2;color:#11131a}.translate-button:disabled{background:#8b909d;color:#11131a;opacity:1}}.context-field{display:block;min-height:80px;padding:16px 24px 20px;border-top:1px solid var(--hairline);font-size:16px}.saved-strip{margin-top:46px}.saved-list{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:14px}.saved-item{text-align:left;background:var(--surface-sunken);color:var(--ink);border-radius:var(--rounded-card);padding:16px;min-height:94px}.saved-item span,.saved-item strong{display:block}.saved-item span{color:var(--ink-secondary);font-size:14px;margin-bottom:8px}.saved-item strong{font-size:17px}@media(max-width:760px){.app{padding:18px 16px 40px}.portal-header{margin:-18px -16px 32px;padding:.6rem 1rem}.portal-account-menu{margin-left:auto}.portal-account-trigger{max-width:8.5rem}.translate-heading h1{font-size:32px}.translation-grid{grid-template-columns:1fr}.editor-pane{border-right:0;border-bottom:1px solid var(--hairline);min-height:240px}.result-pane{min-height:230px}.language-dock{gap:12px;justify-content:space-around}.language-dock select{max-width:110px;font-size:13px}.translator-controls{flex-wrap:wrap}.translate-button{width:100%;margin-left:0}.saved-list{grid-template-columns:1fr}}.conversation-page{max-width:1040px;margin:0 auto}.module-heading{display:flex;align-items:end;justify-content:space-between;gap:40px;margin-bottom:24px}.module-heading h1{font-size:38px;margin-top:3px}.conversation-workspace{display:grid;grid-template-columns:240px minmax(0,1fr);gap:18px}.conversation-history{min-width:0;padding:8px 2px}.conversation-sidebar-tabs{display:grid;grid-template-columns:1fr 1fr;gap:4px;margin:0 0 16px;padding:4px;background:var(--surface-sunken);border-radius:var(--rounded-chip)}.conversation-sidebar-tabs button{padding:8px 6px;color:var(--ink-secondary);background:transparent;border-radius:calc(var(--rounded-chip) - 4px);font:800 10px var(--font-signage);letter-spacing:.07em;text-transform:uppercase}.conversation-sidebar-tabs button.is-active{color:var(--ink);background:var(--surface);box-shadow:0 1px 2px #11131a14}.conversation-history .new-conversation{width:100%;margin-bottom:20px;border-radius:var(--rounded-chip)}.conversation-history ol{list-style:none;margin:0;padding:0;display:grid;gap:4px}.conversation-history li button{width:100%;display:block;padding:12px 14px;text-align:left;color:var(--ink-secondary);background:transparent;border-radius:var(--rounded-chip)}.conversation-history li button:hover,.conversation-history li button.is-active{color:var(--ink);background:var(--surface-sunken)}.conversation-history li button:disabled{opacity:1}.conversation-history strong,.conversation-history span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.conversation-history strong{font:700 14px/1.35 var(--font-body)}.conversation-history span{margin-top:4px;color:var(--ink-tertiary);font:700 10px var(--font-signage);text-transform:uppercase;letter-spacing:.06em}.conversation-surface{min-width:0;background:var(--surface);border-radius:var(--rounded-sheet);box-shadow:0 1px 0 var(--hairline-strong),0 16px 42px #11131a0f;overflow:hidden}.conversation-feed{min-height:500px;max-height:58vh;overflow-y:auto;padding:30px}.conversation-empty{min-height:440px;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;color:var(--ink-secondary)}.empty-mark{font-size:42px;line-height:1;color:var(--route-violet)}.conversation-empty h2{color:var(--ink);font:700 22px var(--font-signage);margin:22px 0 8px}.conversation-empty p{margin:0;max-width:330px}.message{max-width:82%;margin:0 0 28px}.message-user{margin-left:auto;text-align:right}.message p{margin:7px 0 0;font-size:19px;white-space:pre-wrap}.message-label{font:800 11px var(--font-signage);letter-spacing:.1em;color:var(--ink-tertiary)}.message-user .message-label{color:var(--route-rose)}.message-assistant .message-label{color:var(--route-violet)}.typing{color:var(--ink-tertiary)}.composer{display:flex;gap:16px;align-items:end;padding:18px 22px;border-top:1px solid var(--hairline)}.composer textarea{flex:1;resize:none;min-height:54px;max-height:140px;border:0;outline:0;background:var(--surface-sunken);border-radius:var(--rounded-chip);padding:14px 16px;color:var(--ink);font:16px/1.4 var(--font-body)}.composer button{border-radius:var(--rounded-chip)}.composer-tone{display:grid;gap:6px;flex:0 0 auto;color:var(--ink-tertiary);font:700 11px var(--font-signage);text-transform:uppercase;letter-spacing:.06em}.composer-tone>span{display:inline-flex;align-items:center;gap:5px}.composer-tone .pela-icon{width:14px;height:14px}.composer-tone select{min-height:42px;border:1px solid var(--hairline);border-radius:var(--rounded-chip);background:var(--surface-sunken);color:var(--ink);padding:0 30px 0 12px;font:700 13px var(--font-signage);cursor:pointer}.conversation-error{padding:0 22px 18px}@media(max-width:760px){.module-heading,.conversation-workspace{display:block}.conversation-history{margin-bottom:16px}.conversation-history .new-conversation{width:auto;margin:0 10px 0 0;vertical-align:top}.conversation-history ol{display:inline-flex;width:calc(100% - 92px);overflow-x:auto;vertical-align:top}.conversation-history li{flex:0 0 180px}.conversation-sidebar-tabs{max-width:260px}.conversation-feed{padding:22px 18px;min-height:450px}.message{max-width:92%}.composer{padding:14px;gap:10px;flex-wrap:wrap}.composer-tone{order:-1;width:100%}.composer-tone select{width:100%}.composer button{padding-inline:16px}}.contacts-page{max-width:800px;margin:0 auto}.contacts-panel{min-width:0}.contacts-panel-heading{margin:0 0 12px}.contacts-panel-heading>p{margin:0 0 10px;color:var(--ink-tertiary);font:800 10px var(--font-signage);letter-spacing:.07em}.contacts-panel input[type=search]{box-sizing:border-box;width:100%;padding:10px 12px;color:var(--ink);background:var(--surface-sunken);border:0;border-radius:var(--rounded-chip);font:14px var(--font-body)}.contacts-panel .contacts-list li{grid-template-columns:36px minmax(0,1fr);gap:10px;padding:10px 4px}.contacts-panel .contact-avatar{width:36px;height:36px;font-size:11px}.contacts-panel .contact-identity strong{font-size:14px}.contacts-panel .contact-identity span{font-size:12px}.contacts-panel .contact-details{grid-column:2;text-align:left}.contacts-panel .contact-details a{font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.contacts-panel-empty{line-height:1.5}.contacts-section-label{margin:18px 0 6px;color:var(--ink-tertiary);font:800 10px var(--font-signage);letter-spacing:.07em}.contact-request,.directory-user{display:grid;grid-template-columns:36px minmax(0,1fr) auto;gap:10px;align-items:center;padding:10px 4px;border-top:1px solid var(--hairline)}.contact-request .contact-identity small{display:block;margin-top:4px;color:var(--ink-tertiary);font-size:12px;line-height:1.35}.contact-request-actions{display:flex;gap:6px}.contact-request-actions button,.directory-user>button{padding:7px 9px;color:var(--route-cyan);background:transparent;border-radius:var(--rounded-chip);font:800 10px var(--font-signage);letter-spacing:.04em;text-transform:uppercase}.contact-request-actions .contact-decline{color:var(--ink-tertiary)}.contact-request-actions button:hover,.directory-user>button:hover{background:var(--surface-sunken);color:var(--ink)}.contacts-heading p{margin-top:4px}.contacts-heading input[type=search]{width:min(280px,42vw);padding:12px 16px;color:var(--ink);background:var(--surface-sunken);border:0;border-radius:var(--rounded-chip);font:15px var(--font-body)}.contacts-list{list-style:none;margin:0;padding:0}.contacts-list li{display:grid;grid-template-columns:48px minmax(0,1fr) minmax(0,auto);gap:16px;align-items:center;padding:18px 4px;border-top:1px solid var(--hairline)}.contact-avatar{display:grid;place-items:center;width:48px;height:48px;border-radius:50%;background:var(--surface-sunken);color:var(--ink-secondary);font:800 13px var(--font-signage);letter-spacing:.04em}.contact-avatar img{width:100%;height:100%;object-fit:cover;border-radius:inherit}.contact-identity strong,.contact-identity span,.contact-details a{display:block}.contact-identity strong{min-width:0;overflow:hidden;text-overflow:ellipsis;font-size:17px}.contact-identity span{margin-top:2px;color:var(--ink-tertiary);font-size:14px}.contact-name-row{display:flex;align-items:center;min-width:0;gap:8px}.contact-remove{display:inline-grid;place-items:center;flex:0 0 18px;width:18px;height:18px;min-width:0;min-height:0;margin:0 0 0 auto;padding:0!important;color:var(--ink-tertiary);background:transparent!important;border:0;border-radius:0;line-height:1}.contact-remove:hover{color:var(--route-rose);background:transparent!important}.contact-remove:disabled{opacity:.35}.contact-remove svg{display:block;width:15px;height:15px}.contact-details{text-align:right}.contact-details a{color:var(--ink-secondary);text-decoration:none;font-size:14px}.contact-details a:hover{color:var(--ink);text-decoration:underline}.contacts-empty{min-height:380px;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;color:var(--ink-secondary)}.contacts-empty h2{margin:22px 0 8px;color:var(--ink);font:700 22px var(--font-signage)}.contacts-empty p{margin:0;max-width:340px}.contacts-sync-note{margin:26px 0 0;color:var(--ink-tertiary);font-size:12px}@media(max-width:600px){.contacts-heading input[type=search]{width:100%;margin-top:16px}.contacts-list li{grid-template-columns:48px minmax(0,1fr)}.contact-details{grid-column:2;text-align:left}.contacts-sync-note{line-height:1.5}}.flashcards-page{max-width:960px;margin:0 auto}.flashcards-empty{min-height:360px;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;color:var(--ink-secondary)}.flashcards-empty h2{color:var(--ink);font:700 22px var(--font-signage);margin:22px 0 8px}.flashcards-empty p{margin:0;max-width:330px}.flashcards-group{margin-top:34px}.flashcards-group-name{display:flex;align-items:baseline;gap:10px;font:800 13px var(--font-signage);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-secondary);margin:0 0 14px}.flashcards-group-count{font-size:12px;color:var(--ink-tertiary)}.flashcards-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:14px}.flashcard{display:flex;flex-direction:column;gap:8px;align-items:flex-start;text-align:left;min-height:120px;padding:18px;background:var(--surface-sunken);color:var(--ink);border:0;border-radius:var(--rounded-card);cursor:pointer;transition:transform .16s ease}.flashcard:hover{transform:translateY(-2px)}.flashcard.is-flipped{background:var(--surface);box-shadow:inset 0 0 0 1px var(--hairline-strong)}.flashcard-face{font:500 20px/1.3 var(--font-body)}.flashcard-phonetic{font-size:14px;color:var(--route-cyan)}.flashcard-note{font-size:13px;color:var(--ink-tertiary)}.keys-page{max-width:800px;margin:0 auto}.keys-surface{background:var(--surface);border-radius:var(--rounded-sheet);box-shadow:0 1px 0 var(--hairline-strong),0 16px 42px #11131a0f;overflow:hidden}.key-generator{display:flex;align-items:end;gap:18px;padding:26px;border-bottom:1px solid var(--hairline)}.key-generator div{flex:1}.key-generator input{display:block;width:100%;margin-top:10px;padding:14px 16px;border:0;border-radius:var(--rounded-chip);background:var(--surface-sunken);color:var(--ink);font:16px var(--font-body)}.key-generator button{border-radius:var(--rounded-chip)}.new-key-box{margin:22px 26px 0;padding:18px;border-left:4px solid var(--route-cyan);background:var(--surface-sunken)}.new-key-box strong{display:block;font-size:14px}.new-key-box code{display:block;margin:14px 0;overflow-wrap:anywhere;color:var(--ink);font:14px/1.4 ui-monospace,monospace}.copy-key,.revoke-button{padding:5px 0;background:transparent;color:var(--ink-secondary);font-size:11px}.keys-list{padding:28px 26px}.keys-list-head{display:flex;justify-content:space-between;margin-bottom:14px}.key-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 0;border-top:1px solid var(--hairline)}.key-row strong,.key-row span{display:block}.key-row span{margin-top:4px;color:var(--ink-tertiary);font-size:13px}.revoke-button{color:var(--route-rose)}.revoke-button:disabled{color:var(--ink-tertiary)}h1{font-family:var(--font-signage);font-size:24px;font-weight:700;letter-spacing:-.01em;margin:0}.panel{display:flex;flex-direction:column;gap:var(--space-lg)}.row{display:flex;gap:var(--space-md);align-items:center}.row.spread{justify-content:space-between}.stack{display:flex;flex-direction:column;gap:var(--space-md);align-items:stretch}input[type=text],input:not([type]),input[type=number]{flex:1;min-width:0;padding:var(--space-md) var(--space-lg);font-family:var(--font-body);font-size:17px;color:var(--ink);background:var(--surface-sunken);border:0;border-radius:var(--rounded-chip)}input::placeholder{color:var(--ink-tertiary)}input:focus-visible{outline:2px solid var(--ink);outline-offset:2px}button{padding:var(--space-md) 22px;font-family:var(--font-signage);font-size:14px;font-weight:700;letter-spacing:.02em;color:var(--on-accent);background:var(--ink);border:0;border-radius:var(--rounded-pill);cursor:pointer}button:disabled{opacity:.35;cursor:default}button:focus-visible{outline:2px solid var(--ink);outline-offset:2px}button.ghost{padding:var(--space-sm) 0;color:var(--ink-tertiary);background:none;border-radius:0;align-self:flex-start}button.ghost:hover{color:var(--ink)}fieldset{border:0;padding:0;margin:0;display:flex;gap:var(--space-lg);align-items:center}fieldset label{display:flex;align-items:center;gap:var(--space-xs);font-size:15px;color:var(--ink)}legend{padding:0;font-family:var(--font-signage);font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-tertiary)}.messages{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-lg);min-height:180px;max-height:46vh;overflow-y:auto}.messages li{display:flex;flex-direction:column;gap:var(--space-xs)}.messages p{margin:0}.sender{font-family:var(--font-signage);font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-tertiary)}.original{font-size:15px;color:var(--ink-secondary)}.muted{color:var(--ink-secondary);margin:0}.small{font-size:13px}.error{color:var(--route-rose);margin:0;font-size:15px}.pill{display:inline-flex;align-items:center;gap:var(--space-xs);font-family:var(--font-signage);font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:var(--space-xs) var(--space-md);border-radius:var(--rounded-pill);background:var(--surface-sunken);color:var(--ink-secondary)}.pill:before{content:"";width:8px;height:8px;border-radius:var(--rounded-pill);background:var(--route-grey)}.pill-connected:before{background:var(--route-cyan)}.pill-connecting:before,.pill-reconnecting:before{background:var(--route-amber)}.pill-disconnected:before,.pill-unauthorized:before{background:var(--route-rose)}.gate{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-lg);padding:var(--space-xxl) 0}
