:root{color:#202c35;font-synthesis:none;--ink:#202c35;--muted:#71808b;--line:#e4e9ed;--paper:#fff;--accent:#315eac;--accent-dark:#254d94;--soft:#edf3ff;--danger:#b4444e;background:#f7f8fa;font-family:Inter,Noto Sans SC,Microsoft YaHei,system-ui,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:#f7f8fa;margin:0}button,input,select,textarea{font:inherit}button{color:#293946;cursor:pointer;background:#fff;border:1px solid #dce3ea;border-radius:10px;justify-content:center;align-items:center;gap:.4rem;padding:.56rem .84rem;font-weight:600;transition:background .16s,border-color .16s,transform .16s,box-shadow .16s;display:inline-flex}button:hover:not(:disabled){color:#203b6b;background:#f3f6fb;border-color:#afc2df}button:active:not(:disabled){transform:translateY(1px)}button:disabled{opacity:.52;cursor:not-allowed}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,.composer-editor:focus-visible,a:focus-visible{outline-offset:2px;outline:3px solid #95b5ef}input,select,textarea{min-width:0;color:var(--ink);background:#fff;border:1px solid #d8e0e7;border-radius:10px;padding:.68rem .8rem}input[type=checkbox]{accent-color:var(--accent);width:16px;height:16px;padding:0}input::placeholder,textarea::placeholder{color:#95a0aa}label{color:#42525f;gap:.42rem;font-size:.85rem;font-weight:650;display:grid}.app-root{min-height:100dvh}.app-root.is-authenticated{flex-direction:column;height:100dvh;min-height:0;display:flex;overflow:hidden}.app-root.is-authenticated footer{display:none}.masthead{border-bottom:1px solid var(--line);background:#fff;flex:0 0 72px;justify-content:space-between;align-items:center;height:72px;margin:0;padding:0 2rem;display:flex}.brand{color:#1e324f;align-items:center;gap:.7rem;display:flex}.brand-mark{color:#fff;background:#315eac;border-radius:11px;place-items:center;width:36px;height:36px;display:grid;transform:rotate(-9deg)}.brand-mark svg{transform:rotate(9deg)}.brand>div{gap:.18rem;line-height:1.1;display:grid}.brand strong{letter-spacing:-.045em;font-size:1.17rem}.brand small{color:#7b8a97;letter-spacing:.02em;font-size:.67rem}.topbar-actions{align-items:center;gap:.8rem;display:flex}.topbar-user{color:#5a6976;font-size:.86rem;font-weight:650}.mobile-menu{display:none}.app-layout{flex:1;grid-template-columns:236px minmax(0,1fr);min-height:0;display:grid;overflow:hidden}.sidebar{border-right:1px solid var(--line);background:#fff;flex-direction:column;height:100%;min-height:0;padding:2.1rem 1rem 1rem;display:flex;position:relative}.sidebar-intro{gap:.2rem;margin:0 .8rem 2rem;display:grid}.eyebrow{text-transform:uppercase;letter-spacing:.14em;color:#6080ad;font-size:.7rem;font-weight:800}.sidebar-intro strong{letter-spacing:-.03em;font-size:1.1rem}.side-nav{gap:.33rem;display:grid}.side-nav button{color:#60707d;background:0 0;border:0;border-radius:11px;justify-content:flex-start;width:100%;padding:.82rem .9rem;font-weight:650}.side-nav button:hover{background:#f4f7fb}.side-nav button.active{color:#264d92;background:#ebf1fc}.side-nav button.active svg{stroke-width:2.25px}.sidebar-bottom{border-top:1px solid var(--line);margin-top:auto;padding-top:1rem}.identity-strip{background:0 0;border-radius:0;align-items:center;gap:.65rem;margin:0;padding:.5rem .65rem;display:flex}.avatar{color:#315eac;background:#dfeafc;border-radius:10px;place-items:center;width:35px;height:35px;font-weight:800;display:grid}.identity-strip div{gap:.12rem;display:grid}.identity-strip strong{font-size:.87rem}.identity-strip small{color:#86939e;font-size:.72rem}.logout-button{color:#788692;background:0 0;border:0;justify-content:flex-start;width:100%;margin-top:.3rem;padding:.7rem .65rem}.page-area{width:100%;min-width:0;max-width:1380px;height:100%;min-height:0;margin:auto;padding:2rem clamp(1.2rem,3vw,3.2rem);overflow-y:auto}.app-root.view-messages .page-area{max-width:none;padding:1.25rem clamp(.75rem,2vw,2rem);overflow:hidden}.page-heading{margin:.1rem 0 1.5rem}.page-heading h1{letter-spacing:-.055em;color:#1c2b3d;margin:.32rem 0 .25rem;font-size:clamp(1.65rem,2.7vw,2.15rem);line-height:1.2}.page-heading p{color:#86939d;margin:0;font-size:.91rem}.panel{background:#fff;border:1px solid #e8ecf0;border-radius:18px;margin:0 0 1.3rem;padding:1.5rem;box-shadow:0 8px 28px #20334a09}.section-heading{color:#5374ae;align-items:flex-start;gap:.8rem;margin-bottom:1.2rem;display:flex}.section-heading h2{letter-spacing:-.02em;color:#293844;margin:0;font-size:1.13rem}.section-heading p{color:#84909b;margin:.3rem 0 0;font-size:.84rem;line-height:1.5}.primary{background:var(--accent);border-color:var(--accent);color:#fff;box-shadow:0 3px 8px #315eac22}.primary:hover:not(:disabled){background:var(--accent-dark);border-color:var(--accent-dark);color:#fff}.quiet{color:#536576;background:#f6f8fb;border-color:#0000}.danger{color:var(--danger);background:#fff;border-color:#efd5d8}.danger:hover:not(:disabled){color:#a53340;background:#fff4f5;border-color:#dd9ca4}.link-button{color:#315eac;font-size:inherit;background:0 0;border:0;padding:.25rem;text-decoration:none}.link-button:hover{background:0 0;text-decoration:underline}.icon-action{color:#667b8d;background:0 0;border:0;border-radius:9px;width:38px;height:38px;padding:0}.form-row{flex-wrap:wrap;align-items:end;gap:.7rem;margin:.9rem 0;display:flex}.form-row label{flex:1;min-width:180px}.records{margin:0;padding:0;list-style:none}.records>li{border-top:1px solid #edf0f3;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;padding:1rem 0;display:flex}.record-title{gap:.28rem;display:grid}.record-title strong{font-size:.94rem}.record-title span{color:#8a97a1;font-size:.8rem;line-height:1.5}.record-actions{flex-wrap:wrap;gap:.5rem;display:flex}.record-actions input{max-width:180px}.device-key{color:#8996a0;font-size:.78rem;line-height:1.6}.empty{color:#8996a0;font-size:.88rem}.banner{border-radius:11px;max-width:900px;margin:1rem auto 0;padding:.8rem 1rem;box-shadow:0 4px 16px #20334a0a}.banner.error{color:#9e3643;background:#fff0f1}.banner.notice{color:#2d7255;background:#eaf5ef}.toast-stack{z-index:100;pointer-events:none;gap:.6rem;width:min(390px,100vw - 2rem);display:grid;position:fixed;top:84px;right:clamp(1rem,2.5vw,2.5rem)}.toast{color:#26394a;pointer-events:auto;background:#fff;border:1px solid #e1e8f0;border-radius:12px;align-items:center;gap:.7rem;padding:.85rem 1rem;font-size:.85rem;line-height:1.4;animation:.18s ease-out toast-in;display:flex;box-shadow:0 12px 38px #182a3b2b}.toast.notice>svg{color:#3c9c73;flex:none}.toast.error>svg{color:#c65360;flex:none}.toast span{overflow-wrap:anywhere;flex:1}.toast button{box-shadow:none;color:#7b8a98;background:0 0;border:0;padding:.2rem}@keyframes toast-in{0%{opacity:0;transform:translateY(-7px)}to{opacity:1;transform:translateY(0)}}.settings-view,.trash-view,.admin-view{max-width:950px;margin:auto}.storage-stats{grid-template-columns:repeat(3,1fr);gap:.7rem;display:grid}.storage-stats>div{background:#f8fafd;border:1px solid #edf1f6;border-radius:12px;gap:.3rem;padding:.9rem 1rem;display:grid}.storage-stats span{color:#87949e;font-size:.76rem}.storage-stats strong{color:#2e4151;font-size:1rem}.secret-box{background:#f7f9fd;border:1px solid #e0e7f0;border-radius:13px;gap:.7rem;margin:.9rem 0;padding:1rem;display:grid}.secret-box code{word-break:break-all;color:#244b88;font-size:.86rem}.secret-box>div{flex-wrap:wrap;gap:.5rem;display:flex}.messages-view{scrollbar-gutter:stable;height:100%;min-height:0;padding-right:.25rem;padding-bottom:env(safe-area-inset-bottom);flex-direction:column;gap:1rem;display:flex;overflow-y:auto}.history-panel{min-height:0;box-shadow:none;background:0 0;border:0;flex-direction:column;flex:none;margin:0;padding:0;display:flex;overflow:visible}.history-heading{justify-content:space-between;align-items:center;gap:1rem;display:flex}.history-tools{flex-wrap:wrap;align-items:center;gap:.6rem;margin:0 0 .85rem;display:flex}.filter-toggle{font-size:.84rem}.filter-panel{border:1px solid var(--line);background:#fff;border-radius:14px;margin-bottom:1rem;padding:1rem 1.2rem;box-shadow:0 6px 18px #20334a07}.filter-panel .form-row{margin:0}.filter-row{flex-wrap:wrap;align-items:center;gap:.7rem 1.2rem;margin:1rem 0 0;display:flex}.filter-row>span{color:#798894;font-size:.8rem;font-weight:700}.filter-row label.inline{white-space:nowrap;align-items:center;gap:.3rem;font-size:.8rem;display:flex}.favorite-filter{margin-left:auto}.active-filter{color:#5d7396;background:#edf3ff;border-radius:9px;align-items:center;gap:.4rem;margin-bottom:1rem;padding:.55rem .8rem;font-size:.8rem;display:flex}.empty-state{text-align:center;color:#8c9aa6;background:#fff;border:1px dashed #dce4ee;border-radius:17px;flex:1;align-content:center;place-items:center;gap:.45rem;min-height:180px;margin:0 0 .9rem;padding:2rem;display:grid}.empty-state strong{color:#475b6b;font-size:1rem}.empty-state span{font-size:.82rem}.message-list{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:.85rem;width:100%;margin:0;padding:0 0 1rem;display:grid}.records>li.message-card{background:0 0;border:0;width:100%;margin:0!important;padding:0!important;display:block!important}.message-time{text-align:center;color:#9aa6af;margin:1rem 0 .55rem;font-size:.72rem;font-weight:650}.message-bubble{background:#fff;border:1px solid #e8ebef;border-radius:16px;max-width:100%;padding:1rem 1.15rem .65rem;box-shadow:0 7px 23px #21364c08}.message-content{gap:.7rem;min-height:1rem;display:grid}.message-text{white-space:pre-wrap;overflow-wrap:anywhere;color:#253440;margin:0;font-size:.94rem;line-height:1.7}.message-image{color:#748391;text-align:left;width:min(100%,300px);min-width:0;box-shadow:none;cursor:zoom-in;background:0 0;border:0;justify-items:start;gap:.35rem;padding:0;font-size:.76rem;text-decoration:none;display:grid}.message-image img{object-fit:contain;background:#f7f9fb;border:1px solid #e6ebf0;border-radius:11px;width:100%;max-height:200px;display:block}.message-video{color:#748391;gap:.3rem;font-size:.76rem;display:grid}.message-video video{background:#172331;border-radius:11px;width:min(100%,540px);max-height:340px;display:block}.message-file{color:#39587d;background:#f6f8fc;border:1px solid #e7edf5;border-radius:12px;align-items:center;gap:.75rem;width:min(100%,400px);padding:.78rem;text-decoration:none;display:flex}.message-file>span{flex:1;gap:.15rem;min-width:0;display:grid}.message-file strong{color:#314458;text-overflow:ellipsis;white-space:nowrap;font-size:.82rem;overflow:hidden}.message-file small{color:#8a98a4;font-size:.72rem}.message-note{color:#63758a;overflow-wrap:anywhere;background:#f7f9fd;border-left:3px solid #b4c6e3;border-radius:0 7px 7px 0;margin-top:.9rem;padding:.55rem .7rem;font-size:.8rem}.message-footer{color:#9aa5ae;border-top:1px solid #f0f2f4;justify-content:space-between;align-items:center;gap:.5rem;margin-top:.8rem;padding-top:.55rem;font-size:.73rem;display:flex}.message-actions{align-items:center;gap:.12rem;display:flex}.message-actions button{box-shadow:none;color:#82909c;background:0 0;border:0;width:30px;height:30px;padding:.28rem}.message-actions button:hover{background:#f2f6fc}.message-actions .star-button.active{color:#c18b2a}.select-message{color:#8d9aa5;align-items:center;gap:.25rem;font-size:.72rem;font-weight:500;display:flex}.select-message input{margin:0}.list-footer{border-top:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.7rem;width:100%;margin:0 0 .5rem;padding:1rem 0;display:flex}.list-footer>div,.pagination{flex-wrap:wrap;align-items:center;gap:.45rem;display:flex}.pagination span{color:#8c99a4;margin:0 .3rem;font-size:.8rem}.list-footer button{padding:.48rem .68rem;font-size:.79rem}.compose-panel{border-color:#dae5f3;flex:none;width:100%;margin:0;padding:.85rem;position:relative;box-shadow:0 4px 18px #243a5609}.compose-head{justify-content:space-between;align-items:end;gap:.5rem;margin-bottom:.65rem;display:flex}.compose-head h2{letter-spacing:-.025em;margin:.1rem 0 0;font-size:1rem}.compose-tip{color:#9aa5ae;font-size:.75rem}.mixed-composer{background:#fbfcfe;border:1px solid #dce5ef;border-radius:13px;overflow:hidden}.composer-surface{min-height:88px;max-height:min(65dvh,600px);position:relative;overflow:hidden auto}.composer-editor{overflow-wrap:anywhere;outline:0;min-height:88px;padding:.85rem .95rem;line-height:1.7}.composer-editor p{margin:0}.composer-placeholder{pointer-events:none;color:#9ca9b4;font-size:.88rem;position:absolute;top:.9rem;left:.96rem}.composer-toolbar{background:#fff;border-top:1px solid #e8edf3;justify-content:space-between;align-items:center;gap:.5rem;padding:.18rem .45rem;display:flex}.composer-tools{align-items:center;gap:.12rem;display:flex}.toolbar-hint{color:#a1acb6;align-items:center;gap:.3rem;margin-left:.2rem;font-size:.72rem;display:flex}.composer-attachment{vertical-align:middle;color:#3a5c8d;cursor:grab;-webkit-user-select:none;user-select:none;background:#edf3fd;border:1px solid #d7e3f4;border-radius:9px;align-items:center;gap:.35rem;max-width:220px;margin:.15rem .22rem;padding:.22rem .52rem;display:inline-flex}.composer-attachment.is-image{padding:.18rem}.composer-attachment img{object-fit:cover;border-radius:6px;width:82px;height:58px}.composer-attachment-name{white-space:nowrap;text-overflow:ellipsis;max-width:130px;font-size:.74rem;overflow:hidden}.composer-file-icon{font-size:1rem;line-height:1}.composer-locked-note{color:#7d8c9b;align-items:center;gap:.35rem;margin:.5rem 0 0;font-size:.76rem;display:flex}.visually-hidden{clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important;width:1px!important;height:1px!important;margin:-1px!important;padding:0!important;position:absolute!important;overflow:hidden!important}.resume-box{color:#526c93;background:#eef4ff;border-radius:10px;margin:.7rem 0;padding:.7rem;font-size:.81rem}.resume-box p{margin:0 0 .5rem}.resume-box input{background:#fff;max-width:100%}.transfer-progress{color:#39745e;background:#eef7f3;border-radius:8px;padding:.5rem .7rem;font-size:.78rem}.compose-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:.7rem;margin-top:.7rem;display:flex}.compose-actions>span{color:#677b8b;margin-right:auto;font-size:.74rem}.compose-actions>div{flex-wrap:wrap;align-items:center;gap:.45rem;display:flex}.compose-actions button{font-size:.82rem}.detail-backdrop{z-index:30;background:#1b293775;place-items:center;padding:1rem;display:grid;position:fixed;inset:0}.message-detail{background:#fff;border-radius:18px;width:min(100%,780px);max-height:min(90dvh,900px);padding:1.3rem;overflow:auto;box-shadow:0 25px 65px #101e2c45}.detail-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:1rem;padding-bottom:.8rem;display:flex}.detail-head strong{font-size:1.05rem}.note-editor{background:#f8faff;border:1px solid #e5ebf3;border-radius:10px;justify-items:start;gap:.55rem;margin:.6rem 0;padding:.75rem;display:grid}.note-editor label,.note-editor textarea{width:100%}.detail-block{border-top:1px solid #e9edf1;padding:.7rem 0}.detail-text{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.7}.detail-media img{border-radius:10px;max-width:min(100%,560px);max-height:380px}.detail-video{max-width:100%;max-height:400px;display:block}.detail-media a,.download-link{color:#315eac;font-weight:650}.detail-content{margin:.9rem 0 1.2rem}.detail-content .message-image{width:100%}.detail-content .message-image img{object-fit:contain;width:auto;max-width:100%;height:auto;max-height:none}.detail-content .message-video video{width:100%;max-height:60dvh}.image-viewer{z-index:90;color:#fff;background:#101923ec;flex-direction:column;display:flex;position:fixed;inset:0}.image-viewer-toolbar{background:#131f2ceb;justify-content:space-between;align-items:center;gap:1rem;min-height:60px;padding:.8rem clamp(1rem,2vw,2rem);display:flex}.image-viewer-toolbar>span{text-overflow:ellipsis;white-space:nowrap;font-size:.85rem;overflow:hidden}.image-viewer-toolbar>div{flex:none;align-items:center;gap:.25rem;display:flex}.image-viewer-toolbar button{color:#fff;width:36px;height:36px;box-shadow:none;background:0 0;border:0;place-items:center;padding:0;display:grid}.image-viewer-toolbar button:hover{background:#ffffff23}.image-viewer-toolbar>div>span{text-align:center;color:#c9d1d9;min-width:3rem;font-size:.76rem}.image-viewer-stage{cursor:zoom-out;flex:1;place-items:center;min-height:0;padding:1rem;display:grid;overflow:hidden}.image-viewer-stage img{object-fit:contain;cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;max-width:100%;max-height:100%;display:block}.image-viewer-stage img.dragging{cursor:grabbing}footer{text-align:center;color:#a5afb7;margin:0;padding:1rem;font-size:.72rem}.login-panel{width:min(92vw,440px);max-width:none;margin:clamp(3rem,10vh,7rem) auto;padding:2rem;box-shadow:0 18px 60px #24375015}.login-symbol{color:#315eac;background:#eaf1ff;border-radius:15px;place-items:center;width:52px;height:52px;margin-bottom:1.2rem;display:grid}.login-panel .section-heading h1{letter-spacing:-.05em;margin:.25rem 0;font-size:1.9rem}.login-panel .section-heading p{color:#8c99a3}.login-panel form{gap:.7rem;display:grid}.login-panel form button{margin-top:.4rem;padding:.75rem}.login-help{color:#a0aab2;margin:1.25rem 0 0;font-size:.73rem}mark{color:inherit;background:#ffe6a6;border-radius:3px;padding:0 .08em}@media (width<=900px){.app-layout{grid-template-columns:200px minmax(0,1fr)}.page-area{padding:1.5rem}.sidebar{padding:1.5rem .7rem}.compose-tip{display:none}}@media (width<=680px){.masthead{flex-basis:60px;height:60px;padding:0 1rem}.mobile-menu{display:inline-flex}.topbar-user{font-size:.78rem}.app-layout{min-height:0;display:block}.sidebar{z-index:50;width:min(82vw,290px);height:auto;min-height:0;transition:transform .2s;position:fixed;top:60px;bottom:0;left:0;transform:translate(-105%);box-shadow:12px 0 30px #15273b1a}.sidebar.mobile-open{transform:translate(0)}.nav-scrim{z-index:40;background:#17293d70;position:fixed;inset:60px 0 0}.page-area{padding:1rem .75rem 0}.messages-view{height:100%}.panel{border-radius:14px;padding:1rem}.page-heading h1{font-size:1.62rem}.history-tools{margin:0 0 .5rem}.message-list{gap:.4rem}.message-bubble{border-radius:13px;padding:.85rem .9rem .55rem}.message-time{margin:.75rem 0 .4rem}.message-image{width:min(100%,260px)}.message-image img{max-height:175px}.detail-content .message-image{width:100%}.detail-content .message-image img{max-height:none}.toast-stack{top:70px;right:1rem}.image-viewer-toolbar{padding:.55rem .7rem}.image-viewer-toolbar>div{gap:0}.image-viewer-toolbar button{width:31px;height:34px}.compose-panel{border-radius:14px;width:100%;margin:0;padding:.65rem}.compose-head{display:none}.composer-surface{min-height:54px;max-height:60dvh}.composer-editor{min-height:54px;padding:.55rem .7rem}.composer-placeholder{top:.6rem;left:.7rem}.toolbar-hint{display:none}.compose-actions>span{width:100%}.compose-actions{justify-content:flex-end}.compose-actions button{padding:.5rem .7rem}.filter-panel{padding:.8rem}.filter-panel .form-row label{flex-basis:100%}.favorite-filter{margin-left:0}.storage-stats{grid-template-columns:1fr}.record-actions{width:100%}.record-actions input{flex:1;max-width:none}.form-row>*{max-width:100%}.detail-backdrop{align-items:stretch;padding:0}.message-detail{border-radius:0;width:100%;height:100dvh;max-height:none;padding:1rem}.list-footer{align-items:flex-start}.list-footer>div{width:100%}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}.secondary{color:#2d55a0;background:#f5f8ff;border-color:#c7d8f2}.secondary:hover:not(:disabled){background:#eaf2ff;border-color:#9db9e8}.sidebar-realtime{border:1px solid var(--line);color:#85939e;border-radius:9px;align-items:center;gap:.4rem;margin:.9rem .75rem 0;padding:.45rem .6rem;font-size:.72rem;line-height:1.3;display:flex}.sidebar-realtime.online{color:#2f7a5c;background:#f3fbf6;border-color:#cfe6da}.direct-targets{background:#f9fbfe;border:1px solid #e3eaf1;border-radius:10px;flex-wrap:wrap;align-items:center;gap:.45rem .6rem;margin:0 0 .65rem;padding:.55rem .65rem;display:flex}.direct-target-label{color:#5d7084;white-space:nowrap;align-items:center;gap:.3rem;font-size:.78rem;font-weight:750;display:inline-flex}.target-chip{color:#40556b;cursor:pointer;background:#fff;border:1px solid #dce5ef;border-radius:999px;align-items:center;gap:.32rem;padding:.32rem .55rem;font-size:.78rem;font-weight:650;transition:all .15s;display:inline-flex}.target-chip input{width:13px;height:13px;accent-color:var(--accent);padding:0}.target-chip.selected{color:#294f93;background:#edf3ff;border-color:#9db9e8;box-shadow:0 0 0 2px #e4edfc}.presence-dot{background:#46a97c;border-radius:50%;width:7px;height:7px;display:inline-block}.target-empty{color:#8a98a4;font-size:.76rem}.realtime-state{color:#8a98a4;white-space:nowrap;align-items:center;gap:.25rem;margin-left:auto;font-size:.7rem;display:inline-flex}.realtime-state.online{color:#2f7a5c}.direct-panel{max-width:820px;margin:0 auto .6rem;padding:.9rem 1rem}.direct-panel-head{justify-content:space-between;align-items:flex-start;gap:.8rem;margin-bottom:.55rem;display:flex}.direct-panel-head h2{margin:.1rem 0;font-size:1.05rem}.direct-panel-head p{color:var(--muted);margin:.2rem 0;font-size:.76rem}.direct-list{gap:.55rem;display:grid}.direct-card{background:#fbfcfe;border:1px solid #e2e9f0;border-radius:10px;padding:.65rem .75rem}.direct-card-head{justify-content:space-between;align-items:center;gap:.6rem;display:flex}.direct-route{color:#657789;font-size:.78rem}.direct-route strong{color:#2e4053}.direct-state{color:#3a6c97;white-space:nowrap;background:#eaf2fa;border-radius:999px;padding:.14rem .5rem;font-size:.69rem;font-weight:750}.direct-state-failed .direct-state,.direct-state-rejected .direct-state{color:#a4444e;background:#fbeaec}.direct-state-complete .direct-state{color:#2f7a5c;background:#eaf7ef}.direct-summary{color:#40515f;word-break:break-word;margin:.4rem 0;font-size:.82rem}.direct-progress{align-items:center;gap:.5rem;display:flex}.direct-progress progress{height:6px;accent-color:var(--accent);flex:1}.direct-progress span{color:#697b8b;text-align:right;min-width:2.7rem;font-size:.7rem}.direct-detail{color:#7b8b98;margin:.3rem 0;font-size:.73rem}.direct-detail.error{color:#a4444e}.direct-received{border-top:1px dashed #e1e8ef;gap:.4rem;margin-top:.5rem;padding-top:.5rem;display:grid}.direct-image{max-width:300px}.direct-actions{justify-content:flex-end;margin-top:.4rem;display:flex}.direct-actions button{padding:.32rem .6rem;font-size:.73rem}.invite-backdrop{z-index:80;background:#14223573;place-items:center;padding:1rem;display:grid;position:fixed;inset:0}.invite-stack{gap:.7rem;width:min(460px,100%);max-height:calc(100dvh - 2rem);display:grid;overflow:auto}.invite-card{background:#fff;border:1px solid #dce6f1;border-radius:15px;padding:1.15rem;box-shadow:0 20px 55px #17293d3d}.invite-card h2{margin:.2rem 0 .4rem;font-size:1.18rem}.invite-preview{color:#334a5e;word-break:break-word;margin:.3rem 0;line-height:1.55}.invite-note{color:#7d8c98;margin:.35rem 0 .85rem;font-size:.78rem;line-height:1.5}.invite-actions{justify-content:flex-end;gap:.55rem;display:flex}@media (width<=640px){.direct-targets{gap:.4rem}.target-chip{font-size:.74rem}.realtime-state{width:100%;margin-left:0}.direct-panel{padding:.75rem}.direct-panel-head{flex-direction:column}.direct-panel-head button{width:100%}}.composer-editor{word-wrap:break-word;white-space:pre-wrap;position:relative}.composer-editor p{white-space:pre-wrap}.composer-attachment.ProseMirror-selectednode{outline-offset:2px;border-radius:8px;outline:2px solid #95b5ef}.target-chip small{color:#8291a0;font-size:.66rem;font-weight:500}.self-badge{color:#3b63a0;vertical-align:middle;background:#eaf3ff;border-radius:999px;margin-left:.35rem;padding:.08rem .35rem;font-size:.65rem;font-weight:750;display:inline-block}.direct-message,.invite-message{max-width:100%}.direct-message .direct-card-head,.invite-message .direct-card-head{margin-bottom:.25rem}.direct-ephemeral{color:#8a98a4;background:#f1f4f7;border-radius:999px;margin-left:.4rem;padding:.08rem .38rem;font-size:.65rem;font-weight:600;display:inline-block}.invite-message{background:#fbfdff;border-color:#d9e5f5}.invite-message .invite-actions{justify-content:flex-start;margin-top:.55rem}.direct-message .message-content .message-image,.direct-received .message-image{margin:.25rem 0}.compact-bubble{cursor:default;justify-content:space-between;align-items:flex-end;gap:.8rem;min-height:58px;padding:.72rem .85rem .62rem;transition:border-color .15s,background .15s;display:flex;position:relative}.compact-bubble:hover{background:#fcfdff;border-color:#c6d8ee}.compact-actions{align-items:center;gap:.3rem;display:flex;position:absolute;top:.42rem;right:.5rem}.compact-actions button{border-radius:8px;width:auto;height:29px;padding:.18rem .48rem;font-size:.72rem}.compact-actions .star-button{place-items:center;width:31px;padding:0;display:grid}.compact-bottom{color:#8996a2;flex-wrap:wrap;align-items:center;gap:.65rem;min-width:0;padding-right:5.5rem;font-size:.73rem;display:flex}.compact-time{color:#7f8d99;font-weight:650}.compact-stats{color:#526678;font-weight:700}.compact-p2p{color:#3d668f;font-weight:650}.invite-check,.invite-cross{place-items:center;border-radius:50%!important;width:31px!important;height:31px!important;padding:0!important;display:grid!important}.invite-check{color:#2f7a5c!important;background:#f1faf5!important;border-color:#bcdccb!important}.invite-cross{color:#a4444e!important;background:#fff7f7!important;border-color:#edc9cd!important}.direct-detail-modal{max-width:680px}.detail-meta{color:#7d8c99;margin-top:.15rem;padding-right:0;font-size:.75rem}.detail-content .message-text{white-space:pre-wrap;margin:.35rem 0;line-height:1.7}.message-file.as-static{cursor:default}@media (width<=640px){.compact-bottom{gap:.45rem;padding-right:5rem;font-size:.7rem}.compact-actions{top:.32rem;right:.35rem}}.route-badge{color:#5a6b7c;white-space:nowrap;background:#f0f4f8;border-radius:999px;padding:.1rem .42rem;font-size:.66rem;font-weight:700}.route-badge.route-direct{color:#2f7a5c;background:#eaf7ef}.route-badge.route-relay{color:#8a6118;background:#fdf3e3}.direct-detail-modal .direct-route{color:#5f7387;word-break:break-word;margin:.25rem 0 .35rem;font-size:.75rem;line-height:1.55}.batch-message{cursor:default;background:#f9fbff;border-color:#dbe6f3;display:block}.batch-message .compact-actions{justify-content:flex-end;margin:-.1rem 0 .3rem;position:static}.batch-message .compact-bottom{margin-top:.4rem;padding-right:0}.batch-outcome{color:#4d6072;white-space:nowrap;background:#eef2f7;border-radius:999px;padding:.14rem .5rem;font-size:.69rem;font-weight:750}.batch-complete .batch-outcome{color:#2f7a5c;background:#eaf7ef}.batch-partial .batch-outcome{color:#8a6118;background:#fdf3e3}.batch-detail{color:#40515f;flex-wrap:wrap;align-items:baseline;gap:.55rem;font-size:.8rem;display:flex}.batch-detail span{color:#697b8b;font-size:.74rem}.compact-actions .batch-retry{color:#3a6c97}@media (width<=640px){.batch-message .compact-actions{justify-content:space-between}.batch-outcome{font-size:.66rem}.compact-actions .batch-retry{padding:.15rem .4rem;font-size:.68rem}}.compact-content-card{min-height:0;padding-top:2.35rem;display:block}.compact-content-card .compact-actions{top:.38rem}.compact-content-card .card-content{margin:.05rem 0 .35rem}.compact-content-card .compact-bottom{border-top:1px solid #edf1f5;margin-top:.55rem;padding-top:.5rem;padding-right:0}.card-content{margin:.05rem 0 .4rem}.card-text{color:#2f3d49;white-space:pre-wrap;word-break:break-word;cursor:text;-webkit-user-select:text;user-select:text;margin:.12rem 0;font-size:.86rem;line-height:1.55}.card-thumb{cursor:zoom-in;background:0 0;border:0;flex-direction:column;align-items:flex-start;gap:.2rem;width:auto;max-width:240px;margin:.25rem 0;padding:0;display:inline-flex}.card-thumb img{border:1px solid var(--line);background:#f3f6fa;border-radius:10px;width:auto;max-width:240px;height:auto;max-height:170px;display:block}.card-thumb span{color:#8a98a4;word-break:break-all;max-width:240px;font-size:.69rem}.card-file{border-radius:10px;gap:.55rem;width:min(100%,330px);margin:.24rem 0;padding:.5rem .62rem}.card-file>span{flex:1;min-width:0}.card-file strong{font-size:.78rem}.card-file small{font-size:.68rem}.card-download{color:#456b94;background:#eef4fb;border:1px solid #dce7f3;border-radius:8px;flex:none;place-items:center;width:29px;height:29px;text-decoration:none;display:grid}.card-download:hover{color:#315a85;background:#e2edf9}@media (width<=640px){.compact-content-card{padding-top:2.2rem}.card-thumb,.card-thumb img{max-width:200px}.card-thumb img{max-height:140px}.card-text{font-size:.82rem}}.relay-message{background:#fbfcff;border-color:#dbe6f3}.relay-message.relay-state-ready{border-color:#c9dff2}.relay-message.relay-state-complete{background:#f8fcf9}.relay-offer{color:#3a6c97}.relay-expiry{color:#7a6a4d;white-space:nowrap;background:#fdf6e9;border-radius:999px;padding:.08rem .42rem;font-size:.66rem}.relay-detail{color:#5f7387;word-break:break-word;margin:.15rem 0 0;font-size:.73rem;line-height:1.5}.relay-message .direct-state{white-space:nowrap}.relay-state-failed .direct-state{color:#a4444e}.relay-state-expired .direct-state,.relay-state-cancelled .direct-state{color:#7d8c99}.relay-confirm-dialog{gap:.8rem;max-width:560px;display:grid}.relay-confirm-dialog p{color:#40515f;margin:0;font-size:.86rem;line-height:1.65}.relay-confirm-points{color:#5f7387;gap:.3rem;margin:0;padding-left:1.15rem;font-size:.79rem;line-height:1.65;display:grid}.relay-confirm-dialog .form-row{justify-content:flex-end;margin:0}@media (width<=640px){.relay-expiry{display:none}.relay-confirm-dialog .form-row{justify-content:stretch}.relay-confirm-dialog .form-row button{flex:1}}.share-page{background:radial-gradient(circle at top,#eef5fb,var(--bg) 55%);flex-direction:column;align-items:center;gap:1rem;min-height:100dvh;padding:2.5rem 1rem;display:flex}.share-brand{color:#31475a;align-items:center;gap:.6rem;display:flex}.share-brand .brand-mark{background:var(--accent);color:#fff;border-radius:11px;place-items:center;width:34px;height:34px;font-weight:800;display:grid}.share-brand div{line-height:1.1;display:grid}.share-brand small{color:#7b8b98;font-size:.7rem;font-weight:500}.share-card{background:#fff;border:1px solid #e1e9f1;border-radius:20px;width:min(100%,760px);padding:1.5rem;box-shadow:0 20px 52px #1b29371a}.share-center{justify-items:start;gap:.9rem;max-width:560px;display:grid}.share-center h1{color:#243745;margin:0;font-size:1.35rem}.share-center p{color:#5b7082;margin:0;font-size:.88rem;line-height:1.7}.share-note{background:#f4f9ff;border:1px solid #dbe9f7;border-radius:10px;padding:.7rem .8rem}.share-error{color:#a4444e!important}.share-fineprint{color:#8a98a4!important;font-size:.72rem!important}.share-content-card{gap:.8rem;display:grid}.share-content-head{justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.share-content-head h1{margin:.1rem 0 0;font-size:1.1rem}.share-content{gap:.45rem;display:grid}.share-footer{color:#8a98a4;text-align:center;padding-bottom:1rem;font-size:.7rem}.share-created{background:#f4f9ff;border:1px solid #dbe9f7;border-radius:12px;gap:.55rem;margin:.6rem 0;padding:.8rem;display:grid}.share-created input{width:100%;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.76rem}.share-list{gap:.5rem;margin-top:.7rem;display:grid}.share-list-head{justify-content:space-between;align-items:center;display:flex}.share-list .records{margin:0}.button-link{color:#315169;background:#fff;border:1px solid #cfdae6;border-radius:9px;justify-content:center;align-items:center;padding:.42rem .75rem;font-size:.8rem;text-decoration:none;display:inline-flex}.qr-dialog{gap:.7rem;max-width:620px;display:grid}.qr-preview{resize:vertical;background:#f8fafc;width:100%;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.78rem;line-height:1.55}.qr-capacity{color:#7b8b98;margin:0;font-size:.72rem}.qr-error{color:#a4444e;margin:0;font-size:.78rem}.qr-result{border-top:1px dashed #dce5ee;justify-items:center;gap:.55rem;padding-top:.8rem;display:grid}.qr-result img{background:#fff;border:1px solid #e1e9f1;border-radius:10px;max-width:100%;height:auto}.qr-result label{color:#5b7082;align-items:center;gap:.5rem;font-size:.76rem;display:flex}@media (width<=640px){.share-page{padding:1rem .6rem}.share-card{border-radius:16px;padding:1rem}.share-content-head{flex-direction:column}.qr-result img{max-width:100%}}.share-resume-note{color:#4d6580;background:#f4f9ff;border:1px solid #dbe9f7;border-radius:10px;margin:0;padding:.7rem .8rem;font-size:.8rem;line-height:1.6}.message-search{border:1px solid var(--line);min-width:200px;color:var(--muted);background:#fff;border-radius:12px;flex:1;align-items:center;gap:.5rem;padding:.25rem .35rem .25rem .75rem;display:flex}.message-search input{background:0 0;border:0;flex:1;width:100%;padding:.45rem .2rem;font-size:.85rem}.message-search button{flex:none;font-size:.8rem}.message-card{min-width:0}.message-list .compact-actions{flex-wrap:wrap;justify-content:flex-end;gap:.3rem;margin-bottom:.65rem;position:static}.message-list .compact-bubble{padding:.75rem .85rem;display:block}.message-list .compact-bottom{padding-right:0}.message-list .card-thumb,.message-list .card-thumb img,.message-list .card-thumb span{max-width:100%}.message-list .card-thumb img{max-height:210px}.message-list .message-bubble:has(.select-message input:checked){background:#f8fbff;border-color:#90ade0;box-shadow:0 0 0 1px #90ade0}.composer-help{border:1px solid var(--line);width:min(520px,100vw - 2rem);max-height:85dvh;color:var(--ink);border-radius:18px;padding:1.2rem;overflow:auto;box-shadow:0 24px 70px #15293c33}.composer-help::backdrop{background:#1b293775}.composer-help dl{gap:.35rem;margin:1rem 0 .2rem;display:grid}.composer-help dt{color:#355a88;font-size:.9rem;font-weight:700}.composer-help dd{color:#667887;margin:0 0 .7rem;font-size:.85rem;line-height:1.7}@media (width>=1440px){.message-list{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width<=1000px) and (width>=681px){.message-list{grid-template-columns:1fr}}@media (width<=680px){.app-root.view-messages .page-area{padding:.75rem .6rem 0}.messages-view{gap:.75rem}.history-panel{padding:0}.message-list{grid-template-columns:1fr;gap:.65rem}.message-search{flex-basis:100%}.history-tools .filter-toggle{min-height:40px}.compose-actions>div{justify-content:flex-end}.composer-tools .icon-action{width:40px;height:40px}.list-footer{gap:.8rem;padding-bottom:1rem}.pagination{justify-content:space-between}}.message-day{min-width:0;margin-bottom:.75rem}.message-day-heading{color:#35495b;align-items:center;gap:.65rem;margin:.3rem 0 .8rem;font-size:.96rem;display:flex}.message-day-heading span{color:#8493a0;font-size:.73rem;font-weight:500}.message-view-bar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.6rem;margin:0 0 1rem;display:flex}.message-view-bar>span{color:#788997;font-size:.75rem}.layout-switch{border:1px solid var(--line);background:#edf1f6;border-radius:11px;padding:3px;display:flex}.layout-switch button{color:#738393;background:0 0;border:0;padding:.4rem .7rem;font-size:.77rem}.layout-switch button[aria-pressed=true]{color:#315eac;background:#fff;box-shadow:0 2px 5px #243a5612}.message-list.layout-masonry{grid-auto-rows:1px;grid-auto-flow:dense}.message-list.layout-timeline{grid-template-columns:minmax(0,1fr);grid-auto-rows:auto}.message-list .card-time{color:#5f7387;font-variant-numeric:tabular-nums;white-space:nowrap;margin-right:auto;font-size:.76rem;font-weight:650}.message-list .card-thumb{width:min(100%,280px)}.message-list .card-thumb img{aspect-ratio:4/3;object-fit:contain;background:#f3f6fa;width:100%;height:auto}.new-entries-notice{z-index:6;justify-content:center;height:0;display:flex;position:sticky;top:0;overflow:visible}.new-entries-notice button{color:#fff;background:#315eac;border-color:#315eac;height:38px;font-size:.8rem;transform:translateY(.3rem);box-shadow:0 4px 14px #243a5633}@media (width<=1000px){.message-list.layout-masonry{grid-auto-rows:auto;grid-auto-flow:row}}.app-root.view-settings .page-area,.app-root.view-trash .page-area{max-width:none;padding:1.25rem clamp(.75rem,2vw,2rem)}.settings-view.utility-view,.trash-view.utility-view{width:100%;min-width:0;max-width:none;margin:0}.utility-view .panel{border-radius:15px;margin:0 0 1rem;padding:1rem;box-shadow:0 4px 18px #243a5607}.utility-heading{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.7rem;margin-bottom:.9rem;display:flex}.utility-heading h2{color:#35495b;flex-wrap:wrap;align-items:center;gap:.5rem;margin:0;font-size:1.04rem;display:flex}.utility-heading h2>svg{color:#5374ae;flex:none}.utility-count{color:#8393a1;font-size:.73rem;font-weight:500}.utility-actions{flex-wrap:wrap;align-items:center;gap:.4rem;display:flex}.utility-actions button,.utility-view .device-register button,.device-card-actions button{padding:.5rem .65rem;font-size:.8rem}.utility-actions .icon-action{padding:0}.settings-view .storage-stats{grid-template-columns:repeat(4,minmax(0,1fr));gap:.7rem}.settings-view .storage-stats>div{min-width:0;padding:.8rem .9rem}.settings-view .storage-stats strong{overflow-wrap:anywhere;font-variant-numeric:tabular-nums;font-size:1.2rem}.device-register{flex-wrap:wrap;align-items:flex-end;gap:.6rem;margin-bottom:.6rem;display:flex}.device-register label{flex:1;min-width:160px;font-size:.77rem}.device-register input{width:100%;padding:.55rem .7rem}.device-register button{min-height:39px}.device-advanced{color:#758594;border-bottom:1px solid var(--line);margin:0 0 1rem;padding:.35rem 0 .7rem;font-size:.76rem}.device-advanced summary{cursor:pointer;width:fit-content;padding:.3rem 0}.device-advanced summary:focus-visible{outline-offset:3px;border-radius:4px;outline:3px solid #95b5ef}.device-advanced .device-key{overflow-wrap:anywhere;margin:.4rem 0}.device-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;display:grid}.records>li.device-card{border:1px solid var(--line);background:#fbfcfe;border-radius:12px;gap:.65rem;min-width:0;padding:.85rem;display:grid}.device-card-heading{color:#44648b;align-items:center;gap:.5rem;min-width:0;display:flex}.device-card-heading>svg,.device-card-heading .self-badge{flex:none}.device-card-heading strong{overflow-wrap:anywhere;color:#33495e;min-width:0;font-size:.9rem}.device-card-meta{color:#8292a0;overflow-wrap:anywhere;font-size:.72rem}.device-card-actions{align-items:center;gap:.35rem;min-width:0;display:flex}.device-card-actions input{flex:1;width:0;padding:.5rem .6rem;font-size:.8rem}.device-card-actions button{flex:none}.trash-card-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.4rem;margin-bottom:.7rem;display:flex}.trash-card-head time{color:#7b8c9b;overflow-wrap:anywhere;font-size:.7rem}.trash-preview{-webkit-line-clamp:6;overflow-wrap:anywhere;-webkit-box-orient:vertical;margin:.25rem 0 .7rem;display:-webkit-box;overflow:hidden}.trash-card-meta{color:#788c9c;overflow-wrap:anywhere;flex-wrap:wrap;gap:.3rem .65rem;font-size:.73rem;display:flex}.trash-card-bottom{border-top:1px solid var(--line);gap:.6rem;margin-top:.7rem;padding-top:.6rem;display:grid}.trash-card-bottom>span{color:#8b99a5;font-size:.7rem}.trash-card-bottom .utility-actions{justify-content:flex-end}.trash-card.is-selected{background:#f8fbff;border-color:#90ade0;box-shadow:0 0 0 1px #90ade0}.trash-clear-row{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:.7rem;margin:.65rem 0 1rem;display:flex}.trash-clear-row span{color:#8997a3;font-size:.73rem}.trash-clear-row button{font-size:.78rem}.trash-view .filter-panel.form-row{align-items:flex-end;margin:0 0 1rem}.trash-view .empty-state{min-height:160px}.utility-view .empty-state{margin-bottom:1rem}@media (width>=1440px){.device-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width<=1100px){.device-grid{grid-template-columns:minmax(0,1fr)}}@media (width<=680px){.app-root.view-settings .page-area,.app-root.view-trash .page-area{padding:.75rem .6rem calc(.75rem + env(safe-area-inset-bottom))}.utility-view .panel{margin-bottom:.75rem;padding:.8rem}.utility-heading{gap:.6rem}.utility-heading h2{font-size:1rem}.settings-view .storage-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem}.settings-view .storage-stats>div{padding:.65rem}.settings-view .storage-stats strong{font-size:1.05rem}.device-register label{flex-basis:100%}.device-register button{margin-left:auto}.utility-view .utility-actions button,.device-card-actions button{min-height:40px}.trash-view .filter-panel label{flex-basis:100%;min-width:0}.trash-card-bottom .utility-actions,.trash-clear-row{justify-content:space-between}}
