:root{--lime:#CCFF00;--ink:#000000;--lime-70:rgba(204,255,0,.7);--lime-40:rgba(204,255,0,.4);--lime-15:rgba(204,255,0,.15);--ink-70:rgba(0,0,0,.7);--ink-15:rgba(0,0,0,.15);--ui:"Archivo",system-ui,sans-serif;--mono:ui-monospace,"Cascadia Mono",Consolas,monospace;--brand:"Rubik Wet Paint",cursive;--t:.16s cubic-bezier(.2,.8,.3,1)}*{margin:0;padding:0;box-sizing:border-box}html,body{height:100%}body{background:var(--ink);color:var(--lime);font-family:var(--ui);font-size:14px;overflow:hidden;-webkit-font-smoothing:antialiased}::selection{background:var(--lime);color:var(--ink)}button{font-family:var(--ui);cursor:pointer}input,textarea{font-family:var(--ui)}a{color:var(--lime)}:focus-visible{outline:2px solid var(--lime);outline-offset:2px}.mono{font-family:var(--mono)}.boot{display:grid;place-items:center;height:100dvh}.boot-mark{font-family:var(--brand);font-size:clamp(28px,6vw,54px);opacity:.5}#app{height:100dvh;position:relative;overflow:hidden}.desk{height:100dvh;position:relative;overflow:hidden;background:radial-gradient(1200px 600px at 70% -10%,var(--lime-15),transparent 60%),var(--ink)}.desk-mark{position:absolute;top:18px;left:22px;font-family:var(--brand);font-size:26px;color:var(--lime);user-select:none;pointer-events:none}.desk-sub{position:absolute;top:52px;left:24px;font-family:var(--mono);font-size:11px;letter-spacing:.14em;color:var(--lime-70);text-transform:uppercase;user-select:none;pointer-events:none}.desk-actions{position:absolute;top:18px;right:20px;display:flex;gap:10px;z-index:500}.btn{font-weight:700;font-size:13px;letter-spacing:.05em;text-transform:uppercase;padding:10px 16px;border:2px solid var(--lime);background:var(--ink);color:var(--lime);transition:transform var(--t),background var(--t),color var(--t)}.btn:hover{background:var(--lime);color:var(--ink)}.btn:active{transform:scale(.97)}.btn.primary{background:var(--lime);color:var(--ink)}.btn.primary:hover{background:var(--ink);color:var(--lime)}.btn.small{padding:6px 10px;font-size:11px}.btn[disabled]{opacity:.4;pointer-events:none}.btn.danger:hover{background:var(--lime);color:var(--ink);text-decoration:line-through}.setup{min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:20px;overflow-y:auto;height:100dvh}.setup-card{margin:auto 0}.setup-card{width:min(480px,94vw);border:2px solid var(--lime);background:var(--ink);padding:34px 30px 30px;box-shadow:8px 8px 0 var(--lime-15)}.setup-card .wordmark{font-family:var(--brand);font-size:38px;margin-bottom:4px}.setup-card .tagline{font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--lime-70);margin-bottom:26px;line-height:1.8}.setup-card h2{font-size:16px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;margin-bottom:14px}.setup-points{list-style:none;margin-bottom:24px}.setup-points li{padding:10px 0 10px 26px;position:relative;font-size:13.5px;line-height:1.55;color:var(--lime);border-bottom:1px solid var(--lime-15)}.setup-points li:before{content:"▪";position:absolute;left:4px;color:var(--lime)}.setup-note{font-size:12px;line-height:1.6;color:var(--lime-70);border:1px solid var(--lime-40);padding:12px;margin-bottom:22px}.setup-actions{display:flex;flex-direction:column;gap:12px}.setup-status{font-family:var(--mono);font-size:12px;color:var(--lime-70);margin-top:14px;min-height:18px;word-break:break-all}.setup-err{color:var(--lime);border:1px solid var(--lime);padding:10px;font-size:12.5px;margin-top:12px}.tp-window{position:absolute;display:flex;flex-direction:column;background:var(--ink);border:2px solid var(--lime);box-shadow:6px 6px 0 var(--lime-15);min-width:300px;min-height:240px;transition:box-shadow var(--t)}.tp-window.active{box-shadow:8px 8px 0 var(--lime-40)}.tp-titlebar{display:flex;align-items:center;gap:10px;background:var(--lime);color:var(--ink);padding:7px 10px;cursor:grab;user-select:none;touch-action:none}.tp-titlebar:active{cursor:grabbing}.tp-titlebar .t-label{flex:1;font-weight:700;font-size:12px;letter-spacing:.06em;text-transform:uppercase;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tp-titlebar .t-sub{font-family:var(--mono);font-size:10px;opacity:.75}.tp-titlebar button{background:none;border:none;color:var(--ink);font-family:var(--mono);font-size:14px;font-weight:700;width:22px;height:22px;line-height:1;border:1.5px solid var(--ink)}.tp-titlebar button:hover{background:var(--ink);color:var(--lime)}.tp-body{flex:1;overflow:hidden;display:flex;flex-direction:column;min-height:0}.tp-resize{position:absolute;right:-2px;bottom:-2px;width:16px;height:16px;cursor:nwse-resize;touch-action:none;background:linear-gradient(135deg,transparent 46%,var(--lime) 48%,var(--lime) 56%,transparent 58%,transparent 70%,var(--lime) 72%,var(--lime) 80%,transparent 82%)}.tp-window.maxed{left:0!important;top:0!important;width:100vw!important;height:100dvh!important;z-index:900!important}.tp-window.maxed .tp-resize{display:none}.pager{position:fixed;left:0;right:0;bottom:0;z-index:800;display:flex;gap:8px;align-items:center;background:var(--ink);border-top:2px solid var(--lime);padding:8px 12px;min-height:44px;overflow-x:auto}.pager-label{font-family:var(--mono);font-size:10px;letter-spacing:.16em;color:var(--lime-70);flex:0 0 auto}.pager-chip{display:flex;align-items:center;gap:8px;flex:0 0 auto;background:var(--ink);border:1.5px solid var(--lime);color:var(--lime);font-size:11.5px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;padding:6px 10px}.pager-chip:hover{background:var(--lime);color:var(--ink)}.pager-chip .unread{font-family:var(--mono);font-size:10px;background:var(--lime);color:var(--ink);padding:1px 6px;min-width:18px;text-align:center}.pager-chip:hover .unread{background:var(--ink);color:var(--lime)}.bl-tabs{display:flex;border-bottom:2px solid var(--lime)}.bl-tab{flex:1;background:none;border:none;color:var(--lime-70);font-weight:700;font-size:12px;letter-spacing:.08em;text-transform:uppercase;padding:11px 8px;border-right:1px solid var(--lime-15)}.bl-tab:last-child{border-right:none}.bl-tab.on{background:var(--lime);color:var(--ink)}.bl-tab{position:relative}.bl-tab .tabcount{font-family:var(--mono);font-size:9px;font-weight:700;background:var(--lime);color:var(--ink);padding:1px 6px;margin-left:6px;min-width:16px;display:inline-block}.bl-tab.on .tabcount{background:var(--ink);color:var(--lime)}@keyframes tpFlash{0%,to{background:var(--ink);color:var(--lime-70)}50%{background:var(--lime);color:var(--ink)}}.bl-tab.flash,.pager-chip.flash{animation:tpFlash .55s ease-in-out 5}.bl-row .rowcount{font-family:var(--mono);font-size:10px;font-weight:700;background:var(--lime);color:var(--ink);padding:1px 7px;min-width:18px;text-align:center}.bl-row.has-unread .who{font-weight:700}.bl-list{flex:1;overflow-y:auto}.bl-row{display:flex;align-items:center;gap:10px;width:100%;text-align:left;background:none;border:none;border-bottom:1px solid var(--lime-15);color:var(--lime);padding:12px 14px}.bl-row:hover{background:var(--lime-15)}.bl-row .who{font-family:var(--mono);font-size:12.5px;font-weight:700;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bl-row .when{font-family:var(--mono);font-size:10px;color:var(--lime-70)}.bl-row .badge{font-family:var(--mono);font-size:9px;border:1px solid var(--lime);padding:1px 6px;letter-spacing:.1em}.bl-empty{padding:26px 18px;font-size:13px;color:var(--lime-70);line-height:1.6}.bl-foot{border-top:2px solid var(--lime);padding:10px;display:flex;gap:10px}.bl-foot .btn{flex:1}.chat-privacy{font-family:var(--mono);font-size:9.5px;letter-spacing:.12em;text-align:center;color:var(--lime-70);padding:6px 8px;border-bottom:1px solid var(--lime-15);text-transform:uppercase}.chat-scroll{flex:1;overflow-y:auto;padding:14px 12px;display:flex;flex-direction:column;gap:8px}.msg{max-width:82%;padding:9px 12px;font-size:13.5px;line-height:1.5;word-wrap:break-word;white-space:pre-wrap;border:1.5px solid var(--lime)}.msg.me{align-self:flex-end;background:var(--lime);color:var(--ink)}.msg.them{align-self:flex-start;background:var(--ink);color:var(--lime)}.msg .m-meta{display:block;font-family:var(--mono);font-size:9px;opacity:.65;margin-top:5px;text-transform:uppercase;letter-spacing:.08em}.msg.pending{opacity:.55}.msg.failed{border-style:dashed}.msg.failed .m-meta{opacity:1}.msg .m-retry{background:none;border:1px solid currentColor;color:inherit;font-size:9px;font-family:var(--mono);padding:1px 6px;margin-left:8px}.chat-compose{display:flex;gap:8px;border-top:2px solid var(--lime);padding:10px}.chat-compose textarea{flex:1;background:var(--ink);border:1.5px solid var(--lime);color:var(--lime);font-size:13.5px;padding:9px 10px;resize:none;height:42px;line-height:1.4}.chat-compose textarea::placeholder{color:var(--lime-40)}.chat-day{font-family:var(--mono);font-size:9.5px;color:var(--lime-40);text-align:center;letter-spacing:.14em;margin:6px 0}.nd-body{padding:18px 16px;display:flex;flex-direction:column;gap:14px;overflow-y:auto}.nd-body label{font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.nd-body input{background:var(--ink);border:1.5px solid var(--lime);color:var(--lime);font-family:var(--mono);font-size:13px;padding:11px 10px}.nd-body input::placeholder{color:var(--lime-40)}.nd-hint{font-size:12px;color:var(--lime-70);line-height:1.55}.nd-result{border:1.5px solid var(--lime);padding:14px}.nd-result .r-addr{font-family:var(--mono);font-size:12px;word-break:break-all;margin-bottom:8px}.nd-result .r-state{font-family:var(--mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--lime-70);margin-bottom:12px}.knock-note{font-size:11.5px;color:var(--lime-70);padding:10px 14px;border-bottom:1px solid var(--lime-15);line-height:1.5}.me-strip{border-top:1px solid var(--lime-15);padding:8px 14px;display:flex;align-items:center;gap:8px;font-family:var(--mono);font-size:10.5px;color:var(--lime-70)}.me-strip .dot{width:7px;height:7px;background:var(--lime);border-radius:50%;flex:0 0 auto}.tp-toast{position:fixed;bottom:58px;left:50%;transform:translate(-50%);z-index:950;background:var(--lime);color:var(--ink);font-weight:700;font-size:12.5px;letter-spacing:.04em;padding:10px 18px;border:2px solid var(--ink);display:none;max-width:90vw;text-align:center}@media (max-width: 700px){.tp-window{left:0!important;top:0!important;width:100vw!important;height:calc(100dvh - 46px)!important;box-shadow:none}.tp-resize{display:none}.desk-actions{top:auto;bottom:56px;right:12px;flex-direction:column}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{transition:none!important;animation:none!important}}
