:root{color-scheme:light dark;font-family:Inter,Segoe UI,system-ui,-apple-system,sans-serif;line-height:1.5;background:#0f172a;color:#e2e8f0;--panel-bg: rgba(15, 23, 42, .85);--panel-border: rgba(148, 163, 184, .25);--accent: #22d3ee;--accent-strong: #0ea5e9;--danger: #ef4444;--success: #34d399}*{box-sizing:border-box}body{margin:0;min-height:100vh;display:flex;justify-content:center;padding:2rem;background:radial-gradient(circle at top left,rgba(14,165,233,.3),transparent 60%),radial-gradient(circle at bottom right,rgba(15,118,110,.3),transparent 55%),#0f172a}main.wrap{width:min(1024px,100%);display:grid;gap:1.2rem}header{text-align:center;padding:1.5rem;background:var(--panel-bg);border:1px solid var(--panel-border);border-radius:1.2rem;box-shadow:0 24px 48px #0f172a66}h1{margin:0 0 .5rem;font-size:clamp(1.8rem,3vw,2.6rem)}p{margin:.3rem 0}.panel{background:var(--panel-bg);border:1px solid var(--panel-border);border-radius:1.1rem;overflow:hidden;box-shadow:0 16px 32px #0f172a73}.panel-header{display:flex;align-items:center;justify-content:space-between;padding:.9rem 1.1rem;border-bottom:1px solid var(--panel-border);gap:.75rem}.panel-body{padding:1rem 1.1rem 1.3rem;display:grid;gap:.8rem}label{font-weight:600}.row{display:flex;gap:.6rem;flex-wrap:wrap}input[type=text],input[type=file],button,textarea{border-radius:.7rem;border:1px solid rgba(148,163,184,.3);padding:.6rem .9rem;font-size:1rem;color:inherit;background:#0f172ae6}input[type=text]:focus,button:focus,textarea:focus{outline:2px solid var(--accent);outline-offset:2px}button{cursor:pointer;background:#22d3ee1a;border-color:#22d3ee99;transition:background .15s ease,transform .15s ease,opacity .15s ease}button:hover{background:#0ea5e933;transform:translateY(-1px)}button:disabled{cursor:default;opacity:.55;transform:none}.meta{font-size:.85rem;color:#e2e8f0b8}.hint{font-size:.85rem;color:#e2e8f099}.peer-list{list-style:none;margin:0;padding:0;display:grid;gap:.6rem}.peer{display:flex;align-items:center;justify-content:space-between;background:#0f172abf;border:1px solid rgba(148,163,184,.25);border-radius:.9rem;padding:.75rem 1rem;gap:.8rem}.peer button{background:#22c55e2e;border-color:#22c55e85}.peer button:hover{background:#22c55e47}.badge{display:inline-flex;align-items:center;gap:.35rem;border-radius:999px;padding:.2rem .6rem;font-size:.75rem;border:1px solid rgba(226,232,240,.3);background:#0f172ab3}.badge.success{border-color:#34d39966;background:#16a34a40;color:#bbf7d0}.badge.danger{border-color:#f8717166;background:#ef444440;color:#fecaca}.toolbar{display:flex;gap:.6rem;align-items:center;flex-wrap:wrap}.toolbar button{background:#3b82f61a;border-color:#3b82f68c}.toolbar button:hover{background:#3b82f633}.log{border:1px solid rgba(148,163,184,.2);background:#0f172ab3;border-radius:.8rem;padding:.8rem;min-height:140px;max-height:260px;overflow-y:auto;font-size:.92rem}.log-entry{margin-bottom:.45rem}.log-entry:last-child{margin-bottom:0}.transfer-list{display:grid;gap:.6rem}.transfer{display:flex;flex-direction:column;gap:.35rem;padding:.7rem .9rem;border-radius:.8rem;background:#22d3ee14;border:1px solid rgba(14,165,233,.25)}.transfer .progress{height:6px;background:#0f172a99;border-radius:4px;overflow:hidden}.transfer .progress span{display:block;height:100%;width:0%;background:linear-gradient(90deg,var(--accent),var(--accent-strong));transition:width .12s ease}.transfer a{color:#38bdf8;text-decoration:none}.transfer a:hover{text-decoration:underline}.dialog-backdrop{position:fixed;inset:0;background:#0f172aa6;display:flex;justify-content:center;align-items:center;padding:1.5rem;z-index:20}.dialog{background:#0f172aeb;border:1px solid rgba(148,163,184,.32);border-radius:1rem;padding:1.3rem;max-width:420px;width:100%;display:grid;gap:1rem;box-shadow:0 24px 48px #0f172a80}.dialog-actions{display:flex;gap:.7rem;justify-content:flex-end}.dialog-actions button:first-child{background:#22c55e2e;border-color:#22c55e8c}.dialog-actions button:last-child{background:#f871712e;border-color:#f871718c}.session-status{display:flex;align-items:center;gap:.6rem}.session-controls{display:flex;gap:.6rem;flex-wrap:wrap}textarea{width:100%;min-height:80px;resize:vertical}@media (max-width: 720px){body{padding:1.2rem}.panel-body{padding:.85rem}.row,.toolbar,.session-controls{flex-direction:column;align-items:stretch}button,input[type=text],input[type=file],textarea{width:100%}}
