:root{color-scheme:dark;--bg-0: #060606;--bg-1: #0a0a0a;--bg-2: #101010;--bg-3: #161616;--bg-4: #1d1d1d;--text-hi: #ededed;--text: #c9c9c9;--text-dim: #8a8a8a;--white: #ffffff;--line: rgba(255, 255, 255, .07);--line-strong: rgba(255, 255, 255, .16);--ring: rgba(255, 255, 255, .45);--selection: rgba(255, 255, 255, .18);--switch-on: rgba(255, 255, 255, .18);--scrim: rgba(0, 0, 0, .62);--red-ink: #c4685e;--red: #a34040;--red-deep: #7a2222;--red-deep-hi: #8e2a2a;--red-tint: rgba(163, 64, 64, .1);--green-ink: #7ba04e;--green: #4d7a22;--amber: #b08a3e;--amber-tint: rgba(176, 138, 62, .1);--font-ui: "Segoe UI", system-ui, -apple-system, Roboto, "Helvetica Neue", Arial, sans-serif;--font-mono: ui-monospace, "Cascadia Mono", "SF Mono", Menlo, Consolas, "Liberation Mono", monospace;--fw-2: 200;--fw-3: 300;--fw-4: 400;--fw-5: 500;--fs-micro: 11px;--fs-label: 12px;--fs-body: 14px;--fs-head: 16px;--fs-display: 30px;--fs-mono: 12px;--fs-mono-lg: 15px;--lh-body: 1.5;--lh-tight: 1.3;--lh-fp: 2;--ls-label: .14em;--ls-word: .22em;--s1: 2px;--s2: 4px;--s3: 6px;--s4: 8px;--s5: 12px;--s6: 16px;--s7: 20px;--s8: 24px;--s9: 32px;--s10: 48px;--r1: 2px;--r2: 4px;--bw: 1px;--dur-1: .12s;--dur-2: .15s;--dur-3: .18s;--ease: cubic-bezier(.2, .7, .3, 1);--dur-spin: .9s;--dur-pulse: 1.6s;--pane-left: 240px;--pane-right: 235px;--card-w: 400px;--modal-w: 420px;--menu-w: 150px;--tip-w: 248px;--thumb-w: 280px;--mobtabs-h: 52px;--tap: 28px;--tap-sm: 24px;--dot: 7px;--mark: 10px;--progress-h: 3px;--switch-w: 30px;--switch-h: 16px;--switch-knob: 12px;--seg-w: 52px;--seg-h: 56px;--z-mobtabs: 30;--z-ctx: 40;--z-tip: 50;--z-toasts: 60;--z-modal: 70;--z-lock: 80}*,*:before,*:after{box-sizing:border-box}*{margin:0}html{height:100%}body{min-height:100dvh;font-family:var(--font-ui);font-size:var(--fs-body);font-weight:var(--fw-3);line-height:var(--lh-body);color:var(--text);background:var(--bg-0);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;-webkit-tap-highlight-color:transparent}h1,h2,h3,h4{font-weight:var(--fw-3);line-height:var(--lh-tight);color:var(--text-hi)}h1{font-size:var(--fs-head);font-weight:var(--fw-2)}h2{font-size:var(--fs-head)}h3,h4{font-size:var(--fs-body)}strong,b{font-weight:var(--fw-4)}small{font-size:var(--fs-label)}code,kbd,samp,pre{font-family:var(--font-mono);font-variant-numeric:tabular-nums}a{color:var(--text-hi);text-decoration-thickness:var(--bw);text-decoration-color:var(--line-strong);text-underline-offset:var(--s1);transition:text-decoration-color var(--dur-1) var(--ease)}a:hover{text-decoration-color:var(--text-hi)}button,input,textarea,select{font:inherit;color:inherit}button{padding:0;background:none;border:0;cursor:pointer}button[disabled],input[disabled]{cursor:not-allowed}input,textarea{caret-color:var(--text-hi)}textarea{resize:none}::placeholder{color:var(--text-dim);opacity:.65}img{display:block;max-width:100%}ul[class],ol[class]{list-style:none;padding:0}:focus-visible{outline:var(--bw) solid var(--ring);outline-offset:var(--s1)}:focus:not(:focus-visible){outline:none}::selection{background:var(--selection);color:var(--text-hi)}html{scrollbar-width:thin;scrollbar-color:var(--bg-3) transparent}::-webkit-scrollbar{width:var(--s4);height:var(--s4)}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--bg-3);border-radius:var(--r2)}::-webkit-scrollbar-thumb:hover{background:var(--bg-4)}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}html{scroll-behavior:auto}}.enk-landing{position:relative;min-height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--s9);padding:var(--s8) var(--s6)}.landing__brand{text-align:center}.landing__foot{position:absolute;left:0;right:0;bottom:var(--s6);text-align:center}.enk-app{display:grid;grid-template-columns:var(--pane-left) minmax(0,1fr) var(--pane-right);height:100dvh;overflow:hidden;background:var(--bg-0)}.pane{display:flex;flex-direction:column;min-width:0;min-height:0}.pane--left{border-right:var(--bw) solid var(--line)}.pane--right{border-left:var(--bw) solid var(--line)}.pane__head{flex:none}.pane--left .pane__head{border-bottom:var(--bw) solid var(--line)}.pane__section{flex:1;min-height:0;overflow-y:auto;padding:var(--s5) var(--s6)}.pane__foot{flex:none;border-top:var(--bw) solid var(--line)}.pane--chat{min-width:0}.chat__scroll{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain}.composer{flex:none}.mobtabs{display:none}@media (max-width: 760px){.enk-app{display:flex;flex-direction:column}.pane{display:none;flex:1;border:0;width:auto}.enk-app[data-mobile-pane=left] .pane--left,.enk-app[data-mobile-pane=chat] .pane--chat,.enk-app[data-mobile-pane=right] .pane--right,.mobtabs{display:flex}.keyinput__seg{width:calc(var(--seg-w) - var(--s5));height:calc(var(--seg-h) - var(--s3))}.landing__card{padding:var(--s6)}.attach__thumb{max-width:100%}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--s2);padding:var(--s2) var(--s5);font-size:var(--fs-body);font-weight:var(--fw-3);line-height:var(--lh-tight);color:var(--text);background:var(--bg-3);border:var(--bw) solid transparent;border-radius:var(--r1);transition:background var(--dur-1) var(--ease),color var(--dur-1) var(--ease),border-color var(--dur-1) var(--ease)}.btn:hover{background:var(--bg-4)}.btn[disabled],.btn[disabled]:hover{background:var(--bg-2);color:var(--text-dim);cursor:not-allowed}.btn--primary{background:var(--text-hi);color:var(--bg-0);font-weight:var(--fw-4)}.btn--primary:hover{background:var(--white)}.btn--primary[disabled],.btn--primary[disabled]:hover{background:var(--bg-4);color:var(--text-dim)}.btn--ghost{background:transparent;border-color:var(--line-strong)}.btn--ghost:hover{background:transparent;border-color:var(--ring);color:var(--text-hi)}.btn--danger{background:transparent;border-color:var(--red);color:var(--red-ink)}.btn--danger:hover{background:var(--red-tint);color:var(--red-ink)}.btn--nuke{background:var(--red-deep);border-color:var(--red-deep);color:var(--text-hi);font-weight:var(--fw-4)}.btn--nuke:hover{background:var(--red-deep-hi);border-color:var(--red-deep-hi)}.iconbtn{display:inline-flex;align-items:center;justify-content:center;flex:none;width:var(--tap);height:var(--tap);color:var(--text-dim);border-radius:var(--r1);transition:color var(--dur-1) var(--ease),background var(--dur-1) var(--ease)}.iconbtn:hover{color:var(--text-hi);background:var(--bg-3)}.iconbtn[data-copied=true]{color:var(--green-ink)}.input{width:100%;padding:var(--s3) var(--s4);font-size:var(--fs-body);color:var(--text);background:var(--bg-2);border:var(--bw) solid var(--line);border-radius:var(--r1);transition:border-color var(--dur-1) var(--ease)}.input:focus{border-color:var(--line-strong)}.switch{position:relative;flex:none;width:var(--switch-w);height:var(--switch-h);background:var(--bg-4);border:var(--bw) solid var(--line);border-radius:calc(var(--switch-h) / 2);transition:background var(--dur-1) var(--ease)}.switch:after{content:"";position:absolute;top:var(--s1);left:var(--s1);width:var(--switch-knob);height:var(--switch-knob);border-radius:50%;background:var(--text-dim);transform:translate(0);transition:transform var(--dur-2) var(--ease),background var(--dur-1) var(--ease)}.switch[data-on=true]{background:var(--switch-on)}.switch[data-on=true]:after{background:var(--text-hi);transform:translate(calc(var(--switch-w) - var(--switch-knob) - (var(--bw) * 2) - (var(--s1) * 2)))}.dot{flex:none;width:var(--dot);height:var(--dot);border-radius:50%;background:var(--text-dim)}.fingerprint{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:var(--fs-mono);line-height:var(--lh-fp);letter-spacing:.02em;color:var(--text);overflow-wrap:break-word}.fp__group{display:inline-block;white-space:nowrap;margin-right:var(--s4)}.fp__group[data-mismatch=true]{color:var(--red-ink);text-decoration:underline;text-decoration-color:var(--red);text-underline-offset:var(--s1)}.sr-only{position:absolute;width:var(--bw);height:var(--bw);padding:0;margin:calc(var(--bw) * -1);overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.spinner{display:inline-block;width:var(--s5);height:var(--s5);border:var(--bw) solid var(--line-strong);border-top-color:var(--text-hi);border-radius:50%;animation:spin var(--dur-spin) linear infinite}.landing__wordmark{font-size:var(--fs-display);font-weight:var(--fw-2);letter-spacing:var(--ls-word);color:var(--text-hi)}.landing__tag{margin-top:var(--s3);font-size:var(--fs-micro);letter-spacing:var(--ls-label);text-transform:uppercase;color:var(--text-dim)}.landing__card{width:min(var(--card-w),100%);padding:var(--s7);background:var(--bg-1);border:var(--bw) solid var(--line);border-radius:var(--r2)}.tabs{display:flex;margin-bottom:var(--s6);border-bottom:var(--bw) solid var(--line)}.tab{flex:1;padding:var(--s3) var(--s2);margin-bottom:calc(var(--bw) * -1);text-align:center;font-size:var(--fs-body);color:var(--text-dim);border-bottom:var(--bw) solid transparent;transition:color var(--dur-1) var(--ease),border-color var(--dur-1) var(--ease)}.tab:hover{color:var(--text)}.tab[aria-selected=true]{color:var(--text-hi);font-weight:var(--fw-4);border-bottom-color:var(--line-strong)}.form{display:flex;flex-direction:column;gap:var(--s5)}.form .btn--primary{width:100%;padding-block:var(--s3)}.field{display:flex;flex-direction:column;gap:var(--s2)}.field__label{font-size:var(--fs-label);color:var(--text)}.field__hint{font-size:var(--fs-micro);color:var(--text-dim)}.field__error{font-size:var(--fs-micro);color:var(--red-ink)}.keyinput{display:flex;justify-content:center;gap:var(--s2)}.keyinput__seg{width:var(--seg-w);height:var(--seg-h);text-align:center;font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:var(--fs-mono-lg);text-transform:uppercase;color:var(--text-hi);background:var(--bg-2);border:var(--bw) solid var(--line);border-radius:var(--r1);caret-color:var(--text-hi);transition:border-color var(--dur-1) var(--ease)}.keyinput__seg:focus{border-color:var(--ring)}.landing__note{margin-top:var(--s6);padding-top:var(--s5);border-top:var(--bw) solid var(--line);font-size:var(--fs-micro);line-height:var(--lh-body);text-align:center;color:var(--text-dim)}.landing__foot{font-size:var(--fs-micro);color:var(--text-dim)}.pane--left .pane__head{padding:var(--s6)}.room__name{font-size:var(--fs-head);font-weight:var(--fw-4);line-height:var(--lh-tight);color:var(--text-hi);overflow-wrap:anywhere}.room__code{display:flex;align-items:center;gap:var(--s2);margin-top:var(--s2)}.room__code>code{font-size:var(--fs-mono);letter-spacing:.06em;color:var(--text-dim)}.room__code .iconbtn{width:var(--tap-sm);height:var(--tap-sm)}.pane__label{margin-bottom:var(--s3);font-size:var(--fs-micro);letter-spacing:var(--ls-label);text-transform:uppercase;color:var(--text-dim)}.roster{display:flex;flex-direction:column;gap:var(--s1)}.roster__item{display:flex;align-items:center;gap:var(--s3);padding:var(--s2);border-radius:var(--r1);cursor:default;transition:background var(--dur-1) var(--ease)}.roster__item:hover{background:var(--bg-2)}.roster__name{flex:1;min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-size:var(--fs-body);color:var(--text)}.roster__item[data-self] .roster__name{color:var(--text-hi);font-weight:var(--fw-4)}.roster__item[data-status=offline] .roster__name{color:var(--text-dim)}.roster__mark{flex:none;font-size:var(--fs-micro);line-height:1;color:var(--text-dim)}.roster__item[data-trust=ok] .roster__mark{color:var(--green-ink)}.roster__item[data-trust=warn] .roster__mark{color:var(--amber)}.roster__item[data-status=online] .dot{background:var(--green)}.roster__item[data-status=idle] .dot{background:transparent;box-shadow:inset 0 0 0 var(--bw) var(--green)}.roster__item[data-status=offline] .dot{background:var(--bg-4);box-shadow:inset 0 0 0 var(--bw) var(--line-strong)}.pane--left .pane__foot{padding:var(--s4) var(--s6)}.you{display:flex;align-items:center;gap:var(--s2);font-size:var(--fs-label);color:var(--text-dim)}.chat__scroll{padding:var(--s6) 0 var(--s4)}.daysep{display:flex;align-items:center;gap:var(--s4);margin:var(--s7) var(--s6) var(--s5);font-size:var(--fs-micro);letter-spacing:var(--ls-label);text-transform:uppercase;color:var(--text-dim)}.daysep:before,.daysep:after{content:"";flex:1;height:var(--bw);background:var(--line)}.msg{padding:var(--s4) var(--s6);transition:background var(--dur-1) var(--ease),opacity var(--dur-1) var(--ease)}.msg:hover{background:var(--bg-2)}.msg[data-state=sending]{opacity:.66}.msg[data-archived]{opacity:.45}.msg__quote{display:block;margin-bottom:var(--s2);padding:var(--s1) var(--s3);border-left:calc(var(--bw) * 2) solid var(--line-strong);font-size:var(--fs-label);color:var(--text-dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.msg__head{display:flex;align-items:baseline;gap:var(--s3)}.msg__author{font-weight:var(--fw-4);color:var(--text)}.msg[data-mine] .msg__author{color:var(--text-hi)}.msg__time{font-size:var(--fs-micro);color:var(--text-dim);font-variant-numeric:tabular-nums}.msg[data-state=failed] .msg__time{color:var(--red-ink)}.msg__body{margin-top:var(--s1);color:var(--text);white-space:pre-wrap;overflow-wrap:anywhere}.msg[data-state=failed] .msg__body{color:var(--text-dim)}.msg[data-state=undecryptable] .msg__body{color:var(--text-dim);font-style:italic}.attach{margin-top:var(--s3);display:flex;flex-direction:column;align-items:flex-start;gap:var(--s2)}.attach__thumb{position:relative;display:inline-block;max-width:var(--thumb-w);border:var(--bw) solid var(--line);border-radius:var(--r2);overflow:hidden}.attach__thumb img{display:block;max-width:100%;height:auto}.attach__thumb .progress{position:absolute;left:0;right:0;bottom:0;margin-top:0}.attach__thumb .progress__bar{border-radius:0;background:var(--scrim)}.attach__thumb .progress__label{display:none}.attach__file{display:flex;align-items:center;gap:var(--s3);width:min(var(--thumb-w),100%);padding:var(--s3);background:var(--bg-2);border:var(--bw) solid var(--line);border-radius:var(--r1)}.attach__file:before{content:"";flex:none;width:var(--s6);height:var(--s7);border:var(--bw) solid var(--line-strong);border-radius:var(--bw);background:linear-gradient(var(--line-strong),var(--line-strong)) var(--s2) var(--s3) / var(--s4) var(--bw),linear-gradient(var(--line-strong),var(--line-strong)) var(--s2) calc(var(--s5) - var(--s1)) / var(--s4) var(--bw),linear-gradient(var(--line-strong),var(--line-strong)) var(--s2) calc(var(--s6) - var(--s2)) / var(--s3) var(--bw);background-repeat:no-repeat}.attach__name{flex:1;min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-size:var(--fs-label);color:var(--text)}.attach__size{flex:none;font-size:var(--fs-micro);color:var(--text-dim);font-variant-numeric:tabular-nums}.progress{margin-top:var(--s3)}.progress__bar{position:relative;display:block;height:var(--progress-h);background:var(--bg-4);border-radius:calc(var(--progress-h) / 2);overflow:hidden}.progress__bar:before{content:"";position:absolute;inset:0;background:var(--text-hi);transform:scaleX(var(--p, 0));transform-origin:0 50%;transition:transform var(--dur-1) linear}.progress[data-state=active] .progress__bar:before{background:var(--text-hi)}.progress[data-state=done] .progress__bar:before{background:var(--green)}.progress[data-state=failed] .progress__bar:before{background:var(--red)}.progress__label{display:block;margin-top:var(--s2);font-size:var(--fs-micro);color:var(--text-dim);font-variant-numeric:tabular-nums}.progress[data-state=failed] .progress__label{color:var(--red-ink);cursor:pointer}.msg__meta{margin-top:var(--s2);display:flex;gap:var(--s3)}.receipt{font-size:var(--fs-micro);color:var(--text-dim)}.msg[data-state=failed] .receipt{color:var(--red-ink)}.msg--system{padding:var(--s3) var(--s6);text-align:center;font-size:var(--fs-label);color:var(--text-dim)}.composer{margin:0 var(--s6) var(--s5);background:var(--bg-2);border:var(--bw) solid var(--line);border-radius:var(--r2);transition:border-color var(--dur-1) var(--ease)}.composer:focus-within{border-color:var(--line-strong)}.composer__replybar{display:flex;align-items:center;gap:var(--s3);padding:var(--s3) var(--s4);border-bottom:var(--bw) solid var(--line)}.composer__replytext{flex:1;min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;padding-left:var(--s3);border-left:calc(var(--bw) * 2) solid var(--line-strong);font-size:var(--fs-label);color:var(--text-dim)}.composer__row{display:flex;align-items:flex-end;gap:var(--s2);padding:var(--s2)}.composer__plus{flex:none}.composer__input{flex:1;min-width:0;min-height:calc(var(--tap) - var(--s2));max-height:calc(var(--s10) * 3);padding:var(--s2);border:0;background:transparent;font-size:var(--fs-body);line-height:var(--lh-body);color:var(--text);field-sizing:content}.composer__send{flex:none;padding:var(--s2) var(--s3);font-size:var(--fs-label);font-weight:var(--fw-4);letter-spacing:var(--ls-label);text-transform:uppercase;color:var(--text-dim);border-radius:var(--r1);transition:color var(--dur-1) var(--ease)}.composer__send:hover{color:var(--text-hi)}.composer__queue{display:flex;flex-direction:column;gap:var(--s2);padding:var(--s3) var(--s4);border-top:var(--bw) solid var(--line)}.composer__queueitem{display:flex;align-items:center;gap:var(--s3);font-size:var(--fs-label);color:var(--text-dim)}.composer__queueitem .progress{flex:1;margin-top:0}.pane--right .pane__head{padding:var(--s6) var(--s6) var(--s4)}.pane__title{font-size:var(--fs-micro);letter-spacing:var(--ls-label);text-transform:uppercase;text-align:center;color:var(--text-dim)}.rnav{display:flex;flex-direction:column;align-items:center;gap:var(--s1);padding:var(--s4) var(--s6);border-bottom:var(--bw) solid var(--line)}.rnav__item{padding:var(--s2) var(--s3);font-size:var(--fs-label);color:var(--text-dim);text-decoration:underline;text-decoration-color:transparent;text-underline-offset:var(--s2);text-decoration-thickness:var(--bw);border-radius:var(--r1);cursor:pointer;transition:color var(--dur-1) var(--ease),text-decoration-color var(--dur-1) var(--ease)}.rnav__item:hover{color:var(--text)}.rnav__item[aria-current]:not([aria-current=false]){color:var(--text-hi);text-decoration-color:var(--line-strong)}.rpanel{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;padding:var(--s5) var(--s6);display:flex;flex-direction:column;gap:var(--s5)}.rpanel[data-depth="0"]{animation:rpanel-fade var(--dur-2) var(--ease)}.rpanel[data-depth="1"],.rpanel[data-depth="2"]{animation:rpanel-in var(--dur-2) var(--ease)}.rpanel__back{display:inline-flex;align-items:center;gap:var(--s2);align-self:flex-start;padding:var(--s1) 0;font-size:var(--fs-label);color:var(--text-dim);transition:color var(--dur-1) var(--ease)}.rpanel__back:before{content:"";width:var(--s3);height:var(--s3);border-left:var(--bw) solid currentColor;border-top:var(--bw) solid currentColor;transform:rotate(-45deg)}.rpanel__back:hover{color:var(--text-hi)}.rpanel[data-depth="0"]>.rpanel__back{display:none}.estat{display:grid;grid-template-columns:var(--mark) 1fr;column-gap:var(--s4);row-gap:var(--s1);align-items:center;padding:var(--s4);border:var(--bw) solid var(--line);border-radius:var(--r1);transition:border-color var(--dur-2) var(--ease),background var(--dur-2) var(--ease)}.estat__mark{grid-row:1 / 3;justify-self:center;width:var(--mark);height:var(--mark)}.estat__text{font-size:var(--fs-label);font-weight:var(--fw-4);color:var(--text-hi)}.estat__detail{font-size:var(--fs-micro);line-height:var(--lh-tight);color:var(--text-dim)}.estat[data-level=ok] .estat__mark{border-radius:50%;background:var(--green)}.estat[data-level=unverified] .estat__mark{border-radius:50%;box-shadow:inset 0 0 0 var(--bw) var(--text-dim)}.estat[data-level=warn]{background:var(--amber-tint)}.estat[data-level=warn] .estat__mark{width:0;height:0;border-left:calc(var(--mark) / 2) solid transparent;border-right:calc(var(--mark) / 2) solid transparent;border-bottom:var(--mark) solid var(--amber)}.estat[data-level=warn] .estat__detail{color:var(--amber)}.estat[data-level=bad]{background:var(--red-tint);border-color:var(--red)}.estat[data-level=bad] .estat__mark{background:var(--red);animation:estat-pulse var(--dur-pulse) var(--ease) infinite}.estat[data-level=bad] .estat__text{font-weight:var(--fw-5)}.estat[data-level=bad] .estat__detail{color:var(--red-ink)}.keylist{display:flex;flex-direction:column}.keylist__item{display:flex;align-items:center;justify-content:space-between;gap:var(--s3);padding:var(--s3) var(--s2);border-radius:var(--r1);cursor:pointer;transition:background var(--dur-1) var(--ease)}.keylist__item:hover{background:var(--bg-2)}.keylist__name{min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-size:var(--fs-body);color:var(--text)}.keylist__state{flex:none;font-size:var(--fs-micro);color:var(--text-dim)}.keylist__state[data-state=verified]{color:var(--green-ink)}.keylist__state[data-state=changed]{color:var(--amber)}.keyview{display:flex;flex-direction:column;gap:var(--s3)}.keyview__label{font-size:var(--fs-micro);letter-spacing:var(--ls-label);text-transform:uppercase;color:var(--text-dim)}.keyview__actions{display:flex;gap:var(--s3);margin-top:var(--s2)}.setgroup{display:flex;flex-direction:column}.setgroup__title{margin-bottom:var(--s2);font-size:var(--fs-micro);letter-spacing:var(--ls-label);text-transform:uppercase;color:var(--text-dim)}.setrow{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:var(--s4);align-items:center;padding:var(--s3) 0}.setrow+.setrow{border-top:var(--bw) solid var(--line)}.setrow__label{grid-column:1;font-size:var(--fs-label);color:var(--text)}.setrow__hint{grid-column:1;margin-top:var(--s1);font-size:var(--fs-micro);line-height:var(--lh-tight);color:var(--text-dim)}.setrow>.switch,.setrow>.btn{grid-column:2;grid-row:1 / 3;margin-left:auto}.pane--right .pane__foot{padding:var(--s5) var(--s6)}.e2e__title{display:flex;align-items:center;gap:var(--s2);font-size:var(--fs-label);font-weight:var(--fw-4);color:var(--text-hi)}.e2e__title:before{content:"";width:var(--s3);height:var(--s3);border-radius:50%;background:var(--green)}.e2e__sub{margin:var(--s1) 0 var(--s3);font-size:var(--fs-micro);color:var(--text-dim)}.mobtabs{flex:none;height:calc(var(--mobtabs-h) + env(safe-area-inset-bottom,0px));padding-bottom:env(safe-area-inset-bottom,0px);background:var(--bg-1);border-top:var(--bw) solid var(--line)}.mobtab{position:relative;flex:1;display:flex;align-items:center;justify-content:center;font-size:var(--fs-label);color:var(--text-dim)}.mobtab:before{content:"";position:absolute;top:0;left:25%;right:25%;height:var(--bw);background:transparent;transition:background var(--dur-1) var(--ease)}.mobtab[aria-current]:not([aria-current=false]){color:var(--text-hi)}.mobtab[aria-current]:not([aria-current=false]):before{background:var(--text-hi)}.ctxmenu{position:fixed;z-index:var(--z-ctx);min-width:var(--menu-w);padding:var(--s2);background:var(--bg-3);border:var(--bw) solid var(--line-strong);border-radius:var(--r1);animation:ctx-in var(--dur-1) var(--ease)}.ctxmenu__item{display:flex;width:100%;padding:var(--s2) var(--s3);border-radius:var(--r1);font-size:var(--fs-label);text-align:left;color:var(--text);transition:background var(--dur-1) var(--ease),color var(--dur-1) var(--ease)}.ctxmenu__item:hover{background:var(--bg-4);color:var(--text-hi)}.ctxmenu__item[data-danger]{color:var(--red-ink)}.ctxmenu__item[data-danger]:hover{background:var(--red-tint)}.tip{position:fixed;z-index:var(--z-tip);max-width:var(--tip-w);padding:var(--s3) var(--s4);background:var(--bg-3);border:var(--bw) solid var(--line-strong);border-radius:var(--r1);font-size:var(--fs-micro);line-height:var(--lh-tight);animation:tip-in var(--dur-1) var(--ease)}.tip:before{content:"";position:absolute;width:var(--s4);height:var(--s4);background:var(--bg-3);transform:rotate(45deg)}.tip[data-placement=top]:before{bottom:calc((var(--s4) / -2) - var(--bw));left:calc(50% - (var(--s4) / 2));border-right:var(--bw) solid var(--line-strong);border-bottom:var(--bw) solid var(--line-strong)}.tip[data-placement=bottom]:before{top:calc((var(--s4) / -2) - var(--bw));left:calc(50% - (var(--s4) / 2));border-left:var(--bw) solid var(--line-strong);border-top:var(--bw) solid var(--line-strong)}.tip[data-placement=left]:before{right:calc((var(--s4) / -2) - var(--bw));top:calc(50% - (var(--s4) / 2));border-top:var(--bw) solid var(--line-strong);border-right:var(--bw) solid var(--line-strong)}.tip[data-placement=right]:before{left:calc((var(--s4) / -2) - var(--bw));top:calc(50% - (var(--s4) / 2));border-bottom:var(--bw) solid var(--line-strong);border-left:var(--bw) solid var(--line-strong)}.tip__row{display:flex;gap:var(--s4);padding:var(--s1) 0}.tip__row+.tip__row{border-top:var(--bw) solid var(--line)}.tip__k{flex:none;min-width:calc(var(--s9) * 2);color:var(--text-dim)}.tip__v{min-width:0;overflow-wrap:anywhere;font-family:var(--font-mono);font-variant-numeric:tabular-nums;color:var(--text)}.toasts{position:fixed;left:50%;bottom:calc(var(--s8) + env(safe-area-inset-bottom,0px));transform:translate(-50%);z-index:var(--z-toasts);display:flex;flex-direction:column;align-items:center;gap:var(--s3);pointer-events:none}.toast{pointer-events:auto;max-width:min(var(--modal-w),calc(100vw - var(--s8)));padding:var(--s3) var(--s5);background:var(--bg-3);border:var(--bw) solid var(--line-strong);border-radius:var(--r1);font-size:var(--fs-label);color:var(--text);animation:toast-in var(--dur-2) var(--ease)}.toast[data-kind=warn]{border-color:var(--amber)}.toast[data-kind=error]{border-color:var(--red)}.modal-overlay{position:fixed;inset:0;z-index:var(--z-modal);display:grid;place-items:center;padding:var(--s6);background:var(--scrim);animation:fade-in var(--dur-2) var(--ease)}.modal{width:min(var(--modal-w),100%);max-height:calc(100dvh - var(--s10));overflow-y:auto;padding:var(--s7);background:var(--bg-1);border:var(--bw) solid var(--line-strong);border-radius:var(--r2);animation:modal-in var(--dur-2) var(--ease)}.modal__title{font-size:var(--fs-head);font-weight:var(--fw-3);color:var(--text-hi)}.modal__body{margin-top:var(--s3);font-size:var(--fs-body);color:var(--text)}.modal__actions{display:flex;justify-content:flex-end;gap:var(--s3);margin-top:var(--s6)}.lockscreen{position:fixed;inset:0;z-index:var(--z-lock);display:grid;place-items:center;text-align:center;background:var(--bg-0);color:var(--text-dim);animation:fade-in var(--dur-3) var(--ease)}@keyframes fade-in{0%{opacity:0}}@keyframes tip-in{0%{opacity:0}}@keyframes ctx-in{0%{opacity:0;transform:scale(.98)}}@keyframes toast-in{0%{opacity:0;transform:translateY(var(--s3))}}@keyframes modal-in{0%{opacity:0;transform:translateY(var(--s2))}}@keyframes rpanel-in{0%{opacity:0;transform:translate(var(--s5))}}@keyframes rpanel-fade{0%{opacity:0}}@keyframes estat-pulse{0%,to{opacity:1}50%{opacity:.3}}@keyframes spin{to{transform:rotate(1turn)}}:root{--veil: rgba(255, 255, 255, .04);--veil-strong: rgba(255, 255, 255, .08);--bloom: 0 0 12px rgba(255, 255, 255, .12);--dur-leave: .24s}.roster__item,.keylist__item,.msg,.ctxmenu__item,.rnav__item,.tab,.iconbtn,.composer__send,.btn,.input,.keyinput__seg{transition-duration:var(--dur-leave)}.setrow{transition:background var(--dur-leave) var(--ease)}.setrow__label,.mobtab,.receipt,.msg__time{transition:color var(--dur-leave) var(--ease)}.msg__quote{transition:color var(--dur-leave) var(--ease),border-color var(--dur-leave) var(--ease)}.fp__group{transition:background var(--dur-leave) var(--ease),color var(--dur-leave) var(--ease)}.room__code>code{transition:color var(--dur-leave) var(--ease)}.rpanel__back{transition:color var(--dur-leave) var(--ease),transform var(--dur-leave) var(--ease)}.attach__thumb{transition:border-color var(--dur-leave) var(--ease)}.attach__file{transition:background var(--dur-leave) var(--ease),border-color var(--dur-leave) var(--ease)}.composer{transition:border-color var(--dur-leave) var(--ease),box-shadow var(--dur-leave) var(--ease)}.switch{transition:background var(--dur-1) var(--ease),border-color var(--dur-1) var(--ease)}.btn:active,.iconbtn:active,.composer__send:active,.ctxmenu__item:active,.keylist__item:active,.roster__item:active,.tab:active,.mobtab:active,.rnav__item:active,.rpanel__back:active,.switch:active,.input:active,.keyinput__seg:active,.attach__thumb:active,.attach__file:active,.msg__quote:active,.receipt:active{transition-duration:0ms}@media (hover: hover) and (pointer: fine){.roster__item:hover,.keylist__item:hover,.setrow:hover,.msg:hover,.ctxmenu__item:hover,.rnav__item:hover,.tab:hover,.mobtab:hover,.iconbtn:hover,.composer__send:hover,.rpanel__back:hover,.receipt:hover,.msg__quote:hover,.fp__group:hover,.btn:hover,.attach__thumb:hover,.attach__file:hover,.input:hover,.keyinput__seg:hover,.setrow:hover .setrow__label,.room__code:hover>code,.msg:hover .msg__time,.msg:hover .msg__head:after{transition-duration:var(--dur-1)}}.roster__item:focus-visible,.keylist__item:focus-visible,.setrow:focus-within,.setrow:focus-within .setrow__label,.msg:focus-within,.msg:focus-within .msg__time,.msg:focus-within .msg__head:after,.ctxmenu__item[data-active=true],.rnav__item:focus-visible,.tab:focus-visible,.mobtab:focus-visible,.iconbtn:focus-visible,.composer__send:focus-visible,.rpanel__back:focus-visible,.receipt:focus-visible,.msg__quote:focus-visible,.btn:focus-visible,.attach__thumb:focus-visible,.attach__file:focus-visible{transition-duration:var(--dur-1)}.input:focus,.keyinput__seg:focus{transition-duration:var(--dur-1)}.setrow{border-radius:var(--r1)}@media (hover: hover) and (pointer: fine){.roster__item:hover,.keylist__item:hover,.setrow:hover,.msg:hover{background:var(--bg-2)}.setrow:hover .setrow__label{color:var(--text-hi)}.ctxmenu__item:hover{background:var(--bg-4);color:var(--text-hi)}}.roster__item:focus-visible,.keylist__item:focus-visible,.setrow:focus-within,.msg:focus-within{background:var(--bg-2)}.setrow:focus-within .setrow__label{color:var(--text-hi)}.ctxmenu__item[data-active=true]{background:var(--bg-4);color:var(--text-hi)}.roster__item:active,.keylist__item:active{background:var(--bg-3)}.ctxmenu__item:active{background-color:var(--bg-4);background-image:linear-gradient(var(--veil-strong),var(--veil-strong))}@media (hover: hover) and (pointer: fine){.rnav__item:hover{color:var(--text);text-decoration-color:var(--line-strong)}.tab:not([aria-selected=true]):hover{color:var(--text);border-bottom-color:var(--line)}.mobtab:hover{color:var(--text)}.mobtab:hover:before{background:var(--line-strong)}.iconbtn:hover,.composer__send:hover{color:var(--text-hi);background:var(--bg-3)}.rpanel__back:hover{color:var(--text-hi)}.receipt:hover{color:var(--text)}.msg__quote:hover{color:var(--text);border-color:var(--ring)}.fp__group:hover{background:var(--bg-3);color:var(--text-hi)}.room__code:hover>code{color:var(--text)}}.rnav__item:focus-visible{color:var(--text);text-decoration-color:var(--line-strong)}.tab:not([aria-selected=true]):focus-visible{color:var(--text);border-bottom-color:var(--line)}.mobtab:focus-visible{color:var(--text)}.mobtab:focus-visible:before{background:var(--line-strong)}.iconbtn:focus-visible,.composer__send:focus-visible{color:var(--text-hi);background:var(--bg-3)}.rpanel__back:focus-visible{color:var(--text-hi)}.receipt:focus-visible{color:var(--text)}.msg__quote:focus-visible{color:var(--text);border-color:var(--ring)}.rnav__item:active,.tab:active,.mobtab:active,.receipt:active,.msg__quote:active{color:var(--text-hi)}.rpanel__back:active{color:var(--text-hi);transform:translate(calc(var(--s1) * -1))}.iconbtn:active,.composer__send:active{color:var(--text-hi);background:var(--bg-4)}@media (hover: hover) and (pointer: fine){.btn:hover{background:var(--bg-4)}.btn--primary:hover{background:var(--white)}.btn--ghost:hover{border-color:var(--ring);color:var(--text-hi)}.input:hover,.keyinput__seg:hover,.switch:hover{border-color:var(--line-strong)}.switch:not([data-on=true]):hover:after{background:var(--text)}.attach__thumb:hover{border-color:var(--line-strong)}.attach__file:hover{background:var(--bg-3);border-color:var(--line-strong)}.estat:hover{background-image:linear-gradient(var(--veil),var(--veil))}.estat:not([data-level=bad]):hover{border-color:var(--line-strong)}}.btn:focus-visible{background:var(--bg-4)}.btn--primary:focus-visible{background:var(--white)}.btn--ghost:focus-visible{border-color:var(--ring);color:var(--text-hi)}.attach__thumb:focus-visible{border-color:var(--line-strong)}.attach__file:focus-visible{background:var(--bg-3);border-color:var(--line-strong)}.switch:focus-visible{border-color:var(--line-strong)}.switch:not([data-on=true]):focus-visible:after{background:var(--text)}.estat:focus-visible,.estat:focus-within{background-image:linear-gradient(var(--veil),var(--veil))}.estat:not([data-level=bad]):focus-visible,.estat:not([data-level=bad]):focus-within{border-color:var(--line-strong)}.btn:active{background-color:var(--bg-4);background-image:linear-gradient(var(--veil-strong),var(--veil-strong))}.btn--primary:active{background:var(--text);background-image:none}.btn--ghost:active{background:var(--bg-2);background-image:none;border-color:var(--ring);color:var(--text-hi)}.input:active,.keyinput__seg:active{background:var(--bg-3)}.switch:active,.attach__thumb:active{border-color:var(--ring)}.attach__file:active{background:var(--bg-4);border-color:var(--ring)}@media (hover: hover) and (pointer: fine){.btn--danger:hover{background:var(--red-tint);border-color:var(--red);color:var(--red-ink)}.btn--nuke:hover{background:var(--red-deep-hi);border-color:var(--red-deep-hi)}.ctxmenu__item[data-danger]:hover,.fp__group[data-mismatch=true]:hover{background:var(--red-tint);color:var(--red-ink)}}.btn--danger:focus-visible{background:var(--red-tint);border-color:var(--red);color:var(--red-ink)}.btn--nuke:focus-visible{background:var(--red-deep-hi);border-color:var(--red-deep-hi)}.ctxmenu__item[data-danger][data-active=true]{background:var(--red-tint);color:var(--red-ink)}.btn--danger:active{background:var(--red-tint);background-image:linear-gradient(var(--veil-strong),var(--veil-strong));border-color:var(--red-ink);color:var(--red-ink)}.btn--nuke:active{background:var(--red-deep);border-color:var(--red-deep);background-image:none}.ctxmenu__item[data-danger]:active{background:var(--red-tint);background-image:linear-gradient(var(--veil-strong),var(--veil-strong));color:var(--red-ink)}.msg:not(.msg--system){cursor:context-menu}.msg__author{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.msg__head:after{content:"reply";flex:none;margin-left:auto;font-size:var(--fs-micro);color:var(--text-dim);opacity:0;transition:opacity var(--dur-leave) var(--ease)}@media (hover: hover) and (pointer: fine){.msg:hover .msg__time{color:var(--text)}.msg:hover .msg__head:after{opacity:1}}.msg:focus-within .msg__time{color:var(--text)}.msg:focus-within .msg__head:after{opacity:1}.msg[data-flash=true]{background:var(--bg-3)}.composer:focus-within{box-shadow:var(--bloom);transition-duration:var(--dur-1)}.pane--chat{position:relative}.pane--chat[data-dragover=true]{outline:var(--bw) dashed var(--ring);outline-offset:calc((var(--s2) + var(--bw)) * -1);background-image:linear-gradient(var(--veil),var(--veil))}.pane--chat[data-dragover=true] .composer{border-color:var(--line-strong)}.pane--chat[data-dragover=true]:after{content:"Drop to encrypt and send";position:absolute;top:var(--s6);left:50%;transform:translate(-50%);z-index:1;padding:var(--s2) var(--s4);background:var(--bg-3);border:var(--bw) solid var(--line-strong);border-radius:var(--r1);font-size:var(--fs-label);color:var(--text-hi);white-space:nowrap;pointer-events:none}@media (hover: none),(pointer: coarse){a:hover{text-decoration-color:var(--line-strong)}.btn:hover{background:var(--bg-3)}.btn--primary:hover{background:var(--text-hi)}.btn--ghost:hover{background:transparent;border-color:var(--line-strong);color:var(--text)}.btn--danger:hover{background:transparent}.btn--nuke:hover{background:var(--red-deep);border-color:var(--red-deep)}.iconbtn:hover{color:var(--text-dim);background:transparent}.tab:hover{color:var(--text-dim)}.roster__item:hover,.keylist__item:hover,.msg:hover{background:transparent}.rnav__item:hover,.rpanel__back:hover,.composer__send:hover{color:var(--text-dim)}.ctxmenu__item:hover{background:transparent;color:var(--text)}.ctxmenu__item[data-danger]:hover{background:transparent;color:var(--red-ink)}}.msg[data-state=failed]:hover .msg__time,.msg[data-state=failed]:focus-within .msg__time{color:var(--red-ink)}.iconbtn[data-copied=true]:hover,.iconbtn[data-copied=true]:focus-visible,.iconbtn[data-copied=true]:active{color:var(--green-ink)}
