:root{color:#172120;background:#f5f7f7;font-family:-apple-system,BlinkMacSystemFont,SF Pro Display,SF Pro Text,Segoe UI,PingFang SC,Microsoft YaHei,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility;--ink: #172120;--muted: #71807d;--line: #d9e2e0;--surface: #ffffff;--soft: #edf3f1;--teal: #087f73;--teal-dark: #05675e;--coral: #d86b5a;--blue: #0071e3;--shadow: 0 20px 48px rgba(28, 60, 54, .075)}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh}button,input,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.52}button:active:not(:disabled){transform:scale(.97);transition:transform .1s ease-out}.app-shell{min-height:100vh;display:flex;flex-direction:column;background:#f5f7f7}.app-header{height:76px;display:flex;align-items:center;justify-content:space-between;max-width:1240px;width:calc(100% - 64px);margin:0 auto;position:sticky;top:0;z-index:10;background:#f5f7f7c2;backdrop-filter:blur(18px) saturate(145%);-webkit-backdrop-filter:blur(18px) saturate(145%)}.brand{display:inline-flex;align-items:center;gap:10px;color:var(--ink);text-decoration:none;font-weight:800;font-size:18px;letter-spacing:0}.brand-mark{width:33px;height:33px;border-radius:10px;object-fit:cover;box-shadow:0 5px 13px #087f733b}.mode-switch{display:flex;padding:4px;border:1px solid rgba(179,197,192,.62);background:#e1eae7b8;border-radius:13px;box-shadow:inset 0 1px #fffc}.mode-switch button{border:0;background:transparent;color:var(--muted);border-radius:8px;padding:8px 16px;display:inline-flex;align-items:center;gap:7px;font-weight:700;font-size:13px}.mode-switch button.selected{color:var(--ink);background:#fffffff5;box-shadow:0 3px 10px #223f3921,inset 0 1px #ffffffe0}.header-status{color:var(--muted);font-size:12px;display:inline-flex;align-items:center;gap:7px}.status-pip,.live-dot{width:7px;height:7px;border-radius:50%;background:#42a66d;display:inline-block;box-shadow:0 0 0 4px #42a66d1c}main{flex:1;display:flex;width:100%}.send-layout,.receive-layout{width:min(1120px,calc(100% - 64px));margin:0 auto;align-self:center;padding:66px 0 74px;animation:surface-in .42s cubic-bezier(.22,1,.36,1) both}.send-layout{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(300px,.7fr);gap:72px;align-items:start}.compose-column{min-width:0}.section-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:28px;margin-bottom:32px}.eyebrow{color:var(--teal);margin:0 0 11px;text-transform:uppercase;font:500 11px/1 ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;letter-spacing:.08em}h1{font-size:clamp(34px,4vw,54px);line-height:1.06;letter-spacing:-.02em;margin:0;font-weight:800}.secure-mark{color:var(--muted);font-size:12px;display:inline-flex;align-items:center;gap:6px;white-space:nowrap;padding-top:7px}.dropzone{min-height:244px;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:12px;border:1px dashed #a8c1bb;background:#ffffffd1;transition:border-color .2s,background .2s,transform .2s,box-shadow .2s;border-radius:15px;box-shadow:var(--shadow)}.dropzone:hover,.dropzone.is-dragging{border-color:var(--teal);background:#f1f8f5;transform:translateY(-2px)}.dropzone:focus-visible{outline:3px solid rgba(0,113,227,.28);outline-offset:4px}.drop-icon{width:54px;height:54px;display:grid;place-items:center;color:var(--teal);background:#def0e9;border-radius:50%}.dropzone strong{font-size:15px}.dropzone>span:last-of-type{color:var(--muted);font-size:12px}.message-compose{margin-top:25px;border-bottom:1px solid var(--line);padding-bottom:18px}.input-title{display:flex;gap:7px;align-items:center;color:var(--ink);font-size:13px;font-weight:700;margin-bottom:9px}.message-compose textarea{width:100%;min-height:94px;resize:vertical;border:0;padding:0;color:var(--ink);background:transparent;outline:none;font-size:15px;line-height:1.65}.message-compose textarea::placeholder{color:#9aa8a5}.composer-footer{display:flex;justify-content:space-between;align-items:center;color:var(--muted);font:11px ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace}.primary-button,.secondary-button{border:0;display:inline-flex;align-items:center;justify-content:center;gap:8px;font-weight:700;transition:transform .18s,background .18s,box-shadow .18s}.primary-button{color:#fff;background:var(--teal);border-radius:9px;padding:13px 17px;box-shadow:0 7px 16px #087f732e}.primary-button:hover:not(:disabled){transform:translateY(-1px);background:var(--teal-dark);box-shadow:0 10px 22px #0b74683d}.primary-button.compact{padding:9px 13px;font-size:12px}.secondary-button{color:var(--ink);background:var(--soft);border-radius:8px;padding:10px 13px;font-size:12px;width:100%}.secondary-button:hover{background:#e2ebe8}.file-list{margin-top:19px;display:grid;gap:8px}.file-row{min-height:52px;display:flex;align-items:center;gap:11px;padding:8px 10px;border-bottom:1px solid var(--line)}.file-type{width:32px;height:32px;display:grid;place-items:center;color:var(--teal);background:#e8f2ef;border-radius:7px;flex:0 0 auto}.file-details{min-width:0;display:flex;flex-direction:column;gap:3px;flex:1}.file-details strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:700}.file-details small{color:var(--muted);font-size:11px}.icon-button{width:32px;height:32px;display:grid;place-items:center;color:var(--teal);border:0;background:transparent;border-radius:7px}.icon-button:hover{background:var(--soft)}.muted-icon{color:var(--muted)}.spin{animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.session-column{min-width:0;padding-top:30px}.session-panel{background:#ffffffdb;border:1px solid rgba(255,255,255,.88);border-radius:16px;padding:27px;box-shadow:var(--shadow);backdrop-filter:blur(18px) saturate(125%);-webkit-backdrop-filter:blur(18px) saturate(125%);animation:surface-in .42s cubic-bezier(.22,1,.36,1) both}.active-panel{border-top:3px solid var(--teal)}.panel-topline{display:flex;align-items:center;gap:9px;color:var(--teal);font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.03em}.session-panel p{color:var(--muted);font-size:13px;line-height:1.6;margin:17px 0 14px}.code-badge{display:flex;align-items:baseline;gap:13px;padding:16px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.code-label{color:var(--muted);font-size:11px}.code-badge strong{flex:1;font:500 27px/1 ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;letter-spacing:.07em}.code-copy{width:30px;height:30px;display:grid;place-items:center;color:var(--teal);border:0;background:var(--soft);border-radius:6px}.qr-wrap{margin:24px auto 19px;width:168px;height:168px;display:grid;place-items:center;background:#fff;border:1px solid var(--line);border-radius:8px}.expiry{color:var(--muted);display:flex;justify-content:center;align-items:center;gap:6px;font-size:11px;margin-top:15px}.text-button{border:0;background:transparent;color:var(--muted);margin:16px auto 0;display:flex;align-items:center;gap:6px;font-size:12px}.text-button:hover{color:var(--ink)}.empty-panel{border-color:var(--line);min-height:260px;position:relative;overflow:hidden}.panel-number{color:var(--coral);font:500 12px ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace}.empty-panel h2{font-size:23px;letter-spacing:-.02em;margin:30px 0 10px}.empty-panel p{margin-bottom:22px;max-width:260px}.mini-note{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:11px;margin-top:18px;padding-left:4px}.receive-layout{display:grid;grid-template-columns:minmax(280px,.72fr) minmax(0,1fr);gap:100px;align-items:center}.receive-intro h1{margin-bottom:22px;font-size:clamp(36px,4.5vw,60px)}.intro-copy{color:var(--muted);line-height:1.75;max-width:360px;font-size:13px;margin:0}.intro-rule{width:48px;height:3px;background:var(--coral);margin:34px 0 17px}.intro-meta{color:var(--ink);display:flex;align-items:center;gap:8px;font-size:12px}.receive-column{min-width:0}.code-form{padding-bottom:23px;border-bottom:1px solid var(--line)}.code-form label{display:block;color:var(--muted);font:500 11px ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;text-transform:uppercase;letter-spacing:.08em;margin-bottom:11px}.code-input-wrap{display:flex;gap:10px;align-items:stretch}.code-input-wrap input{min-width:0;flex:1;border:0;border-bottom:2px solid var(--ink);outline:none;background:transparent;color:var(--ink);font:500 27px ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;letter-spacing:.08em;padding:7px 0 11px;text-transform:uppercase}.code-input-wrap input::placeholder{color:#bdc7c4}.code-actions{display:flex;gap:8px;align-items:stretch;flex:0 0 auto;align-self:flex-end}.code-actions .primary-button{flex:0 0 auto}.scan-button{border:1px solid var(--line);color:var(--ink);background:var(--surface);border-radius:8px;padding:9px 12px;display:inline-flex;align-items:center;justify-content:center;gap:7px;font-size:12px;font-weight:700;white-space:nowrap;transition:background .18s,border-color .18s,transform .18s}.scan-button:hover:not(:disabled){background:var(--soft);border-color:#b7c9c5}.scan-button:active:not(:disabled){transform:scale(.97)}.receive-placeholder{min-height:220px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;color:#8e9a97;font-size:12px;border-bottom:1px solid var(--line);animation:surface-in .34s cubic-bezier(.22,1,.36,1) both}.received-content{margin-top:23px}.content-header{display:flex;justify-content:space-between;gap:20px;color:var(--muted);font-size:11px}.content-header>div{display:flex;align-items:center;gap:8px;color:var(--teal);font-weight:700}.message-list{margin:18px 0 7px;display:grid;gap:9px}.message-list p{margin:0;padding:14px 15px;color:var(--ink);background:#eaf3f0;border-radius:8px;font-size:13px;line-height:1.6;white-space:pre-wrap}.message-list time{display:block;color:var(--muted);font:10px ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;margin-top:6px}.received-content .file-list{margin-top:14px}.empty-content{min-height:140px;display:grid;place-items:center;color:var(--muted);font-size:12px;border-bottom:1px solid var(--line)}.error-empty{display:flex;gap:9px}.scanner-backdrop{position:fixed;inset:0;z-index:40;display:grid;place-items:center;padding:20px;background:#0a151394;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);animation:scanner-fade-in .2s ease-out both}.scanner-dialog{width:min(430px,100%);padding:22px;color:var(--ink);background:var(--surface);border:1px solid rgba(255,255,255,.75);border-radius:16px;box-shadow:0 25px 70px #00000047;animation:surface-in .3s cubic-bezier(.22,1,.36,1) both}.scanner-header{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:17px}.scanner-header .eyebrow{margin-bottom:8px}.scanner-header h2{margin:0;font-size:24px;letter-spacing:-.02em}.scanner-close{color:var(--muted);background:var(--soft)}.scanner-close:hover{color:var(--ink);background:var(--line)}.scanner-viewport{position:relative;overflow:hidden;width:100%;aspect-ratio:1 / 1;background:#101817;border-radius:11px}.scanner-viewport video{display:block;width:100%;height:100%;object-fit:cover}.scanner-viewport:after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(transparent 49.7%,rgba(255,255,255,.26) 50%,transparent 50.3%);opacity:.4}.scanner-corner{position:absolute;z-index:2;width:30px;height:30px;border-color:#fff;border-style:solid;filter:drop-shadow(0 1px 3px rgba(0,0,0,.35))}.scanner-corner.top-left{left:17%;top:17%;border-width:3px 0 0 3px;border-radius:5px 0 0}.scanner-corner.top-right{right:17%;top:17%;border-width:3px 3px 0 0;border-radius:0 5px 0 0}.scanner-corner.bottom-left{left:17%;bottom:17%;border-width:0 0 3px 3px;border-radius:0 0 0 5px}.scanner-corner.bottom-right{right:17%;bottom:17%;border-width:0 3px 3px 0;border-radius:0 0 5px}.scanner-error{position:absolute;inset:0;z-index:3;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:11px;padding:28px;color:#fff;text-align:center;background:#101817c7;font-size:13px;line-height:1.6}.scanner-hint{margin:14px 0 17px;color:var(--muted);font-size:12px;line-height:1.6}.scanner-dialog>.secondary-button{width:100%}@keyframes scanner-fade-in{0%{opacity:0}to{opacity:1}}.app-footer{max-width:1240px;width:calc(100% - 64px);margin:0 auto;border-top:1px solid var(--line);padding:16px 0 20px;display:flex;justify-content:space-between;color:#8c9996;font-size:11px}.app-footer span:last-child{display:inline-flex;align-items:center;gap:5px}.download-band{width:100%;border-top:1px solid var(--line);background:#edf3f1ad}.download-band-inner{width:min(1120px,calc(100% - 64px));margin:0 auto;padding:27px 0 29px;display:flex;align-items:center;justify-content:space-between;gap:30px}.download-band h2{margin:0;font-size:20px;letter-spacing:-.01em}.download-band p:not(.eyebrow){margin:8px 0 0;color:var(--muted);font-size:12px}.download-actions{display:flex;gap:10px;flex:0 0 auto}.download-button{display:inline-flex;align-items:center;justify-content:center;gap:7px;color:#fff;background:var(--teal);text-decoration:none;border-radius:8px;padding:10px 13px;font-size:12px;font-weight:700;box-shadow:0 6px 14px #087f7326;transition:transform .18s,background .18s,box-shadow .18s}.download-button:hover{color:#fff;background:var(--teal-dark);transform:translateY(-1px);box-shadow:0 9px 19px #087f7333}.download-button.secondary-download{color:var(--ink);background:var(--surface);box-shadow:0 4px 12px #1c3c3614}.download-button.secondary-download:hover{color:var(--ink);background:#fff}.toast{position:fixed;left:50%;bottom:28px;transform:translate(-50%);display:flex;align-items:center;gap:8px;color:#fff;background:var(--ink);border-radius:7px;padding:11px 15px;box-shadow:0 10px 30px #17212033;font-size:12px;z-index:20}.toast.error{background:#a64537}.primary-button:active:not(:disabled),.secondary-button:active:not(:disabled),.code-copy:active,.icon-button:active{transform:scale(.97)}@keyframes surface-in{0%{opacity:0;transform:translateY(8px) scale(.995)}to{opacity:1;transform:translateY(0) scale(1)}}@media(prefers-reduced-transparency:reduce){.app-header,.session-panel{background:var(--surface);backdrop-filter:none;-webkit-backdrop-filter:none}}@media(prefers-color-scheme:dark){:root{color:#f5f7f7;background:#111817;--ink: #f5f7f7;--muted: #a0b0ac;--line: #2e3b38;--surface: #1a2422;--soft: #22312e;--shadow: 0 20px 48px rgba(0, 0, 0, .25)}.app-shell{background:#111817}.app-header{background:#111817c2}.mode-switch{background:#1e2b28d1;border-color:#354742}.mode-switch button.selected{background:#273632;color:#fff;box-shadow:0 3px 10px #00000038}.dropzone{background:#1a2422db;border-color:#53716a}.dropzone:hover,.dropzone.is-dragging{background:#203b36}.session-panel{background:#1a2422e6;border-color:#2e3b38}.qr-wrap{background:#fff}.message-list p{background:#203b36}}@media(max-width:820px){.app-header,.app-footer,.send-layout,.receive-layout{width:calc(100% - 36px)}.app-header{height:66px}.header-status{display:none}.send-layout,.receive-layout{display:block;padding:42px 0 55px}.section-heading{margin-bottom:25px}h1,.receive-intro h1{font-size:38px}.secure-mark{padding-top:3px}.session-column{padding-top:28px}.receive-intro{margin-bottom:44px}.receive-intro h1 br{display:none}.receive-layout{max-width:560px}.app-footer{gap:14px;flex-direction:column}.download-band-inner{width:calc(100% - 36px);align-items:flex-start;flex-direction:column;gap:19px}}@media(max-width:520px){.app-header,.app-footer,.send-layout,.receive-layout{width:calc(100% - 28px)}.brand{font-size:16px}.mode-switch button{padding:7px 10px;font-size:12px}.mode-switch{margin-left:auto;margin-right:12px}.section-heading{display:block}.secure-mark{margin-top:15px}h1,.receive-intro h1{font-size:34px}.dropzone{min-height:210px}.session-panel{padding:22px 18px}.code-input-wrap{display:block}.code-input-wrap input{width:100%;margin-bottom:14px}.code-actions{align-self:stretch}.code-actions .primary-button,.code-actions .scan-button{flex:1}.code-badge strong{font-size:23px}.app-footer{font-size:10px}.download-band-inner{width:calc(100% - 28px)}.download-actions{width:100%}.download-button{flex:1}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;transition-duration:.01ms!important}}
