:root{--terminal-bg: #0a0a0a;--terminal-text: #aaaaaa;--terminal-green: #00ff00;--terminal-dim: #1a3a1a;--alert-text: #ff3333;--info-text: #33aaff;--choice-text: #00ccff;--choice-border: #00aaff;--choice-hover: #00ffff;--chat-bg: #0a0a0a;--chat-sender-caller: #b8b8b8;--chat-sender-dispatch: #ffffff;--chat-sender-guest: #ff9900;--chat-sender-you: #00ff88;--chat-text-default: #ffffff;--chat-text-muted: #b8b8b8;--chat-text-system: #ffffff;--chat-text-alert: #ff3333;--chat-text-police: #00ffff;--chat-text-fire: #ff00ff;--hold-bg: rgba(0, 0, 0, .95);--hold-accent: #00aaff;--fab-bg: rgba(0, 0, 0, .85);--fab-border: #333;--fab-border-hover: #555;--fab-radius: 8px;--fab-transition: all .25s cubic-bezier(.4, 0, .2, 1);--fab-ambulance: #ff4444;--fab-police: #4488ff;--fab-fire: #ff8844;--fab-rewind: #aa44ff;--fab-status: #00ff88;--touch-target-desktop: 36px;--touch-target-mobile: 44px;--mobile-max: 600px;--tablet-max: 1024px;--font-mono: "lores-9-minus-narrow", "lores-12", sans-serif;--font-mono-wide: "lores-9-minus-wide", sans-serif;--font-mono-bold: "lores-9-wide", sans-serif;--rank-receiver-primary: #00ff88;--rank-receiver-secondary: #00cc66;--rank-receiver-glow: rgba(0, 255, 136, .3);--rank-responder-primary: #00aaff;--rank-responder-secondary: #0088dd;--rank-responder-glow: rgba(0, 170, 255, .3);--rank-coordinator-primary: #ff8800;--rank-coordinator-secondary: #cc6600;--rank-coordinator-glow: rgba(255, 136, 0, .3);--rank-controller-primary: #ff00ff;--rank-controller-secondary: #cc00cc;--rank-controller-glow: rgba(255, 0, 255, .3);--rank-primary: var(--rank-receiver-primary);--rank-secondary: var(--rank-receiver-secondary);--rank-glow: var(--rank-receiver-glow)}body.rank-receiver{--rank-primary: var(--rank-receiver-primary);--rank-secondary: var(--rank-receiver-secondary);--rank-glow: var(--rank-receiver-glow)}body.rank-responder{--rank-primary: var(--rank-responder-primary);--rank-secondary: var(--rank-responder-secondary);--rank-glow: var(--rank-responder-glow)}body.rank-coordinator{--rank-primary: var(--rank-coordinator-primary);--rank-secondary: var(--rank-coordinator-secondary);--rank-glow: var(--rank-coordinator-glow)}body.rank-controller{--rank-primary: var(--rank-controller-primary);--rank-secondary: var(--rank-controller-secondary);--rank-glow: var(--rank-controller-glow)}body.large-font{--font-scale: 1.25}body.large-font .message-text,body.large-font .terminal-line,body.large-font .choice-button,body.large-font .menu-btn,body.large-font .settings-content{font-size:calc(1em * var(--font-scale, 1))}body.large-font .message-sender{font-size:calc(.8em * var(--font-scale, 1))}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body{height:100%;font-family:var(--font-mono);background:#000;color:var(--terminal-text);overflow:hidden;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{user-select:none;-webkit-user-select:none}.terminal-line{user-select:text;-webkit-user-select:text}:focus-visible{outline:2px solid var(--choice-hover);outline-offset:2px}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{background:#111}::-webkit-scrollbar-thumb{background:#333;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#444}@media(max-width:600px){::-webkit-scrollbar{width:0;display:none}}@supports (padding: env(safe-area-inset-top)){body{padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom);padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}}html{overscroll-behavior:none}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}@keyframes message-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes typing-dot{0%,80%,to{transform:translateY(0);opacity:.4}40%{transform:translateY(-6px);opacity:1}}@keyframes hold-pulse{0%,to{transform:scale(1);opacity:.8}50%{transform:scale(1.1);opacity:1}}@keyframes fab-expand{0%{transform:scale(0) translateY(0);opacity:0}to{transform:scale(1) translateY(var(--offset, 0));opacity:1}}@keyframes fab-item-enter{0%{opacity:0;transform:scale(.8) translateY(10px)}to{opacity:1;transform:scale(1) translateY(0)}}@keyframes fab-item-exit{0%{opacity:1;transform:scale(1) translateY(0)}to{opacity:0;transform:scale(.8) translateY(10px)}}@keyframes rank-pulse{0%,to{box-shadow:0 0 20px var(--rank-glow);transform:scale(1)}50%{box-shadow:0 0 40px var(--rank-glow);transform:scale(1.02)}}@keyframes rank-badge-pop{0%{transform:scale(0);opacity:0}60%{transform:scale(1.2);opacity:1}to{transform:scale(1);opacity:1}}@keyframes unlock-reveal{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.dnet-container{max-width:900px;margin:0 auto;padding:1rem;height:100vh;overflow-y:auto;background:var(--terminal-bg)}.dnet-header{border-bottom:1px solid var(--rank-primary);padding-bottom:.75rem;margin-bottom:1.5rem}.dnet-header-title{font-family:var(--font-mono-bold);font-size:1.2rem;color:var(--rank-primary);margin-bottom:.25rem}.dnet-header-subtitle{font-size:.8rem;color:var(--terminal-text);opacity:.7}.dnet-nav{display:flex;gap:1rem;margin-top:.75rem;flex-wrap:wrap}.dnet-nav-link{color:var(--choice-text);text-decoration:none;font-size:.85rem;padding:.25rem .5rem;border:1px solid transparent;transition:all .2s}.dnet-nav-link:hover{border-color:var(--choice-border)}.dnet-nav-link.active{color:var(--rank-primary);border-color:var(--rank-primary)}.dnet-nav-exit{color:var(--alert-text)}.dnet-nav-exit:hover{border-color:var(--alert-text)}.dnet-category{padding:1rem;border:1px solid #333;margin-bottom:.75rem;transition:border-color .2s,background .2s;cursor:pointer;background:transparent;color:inherit}.dnet-category:hover{border-color:var(--rank-primary);background:#ffffff05}.dnet-category.locked{opacity:.5;cursor:not-allowed}.dnet-category.locked:hover{border-color:#333;background:transparent}.dnet-category.redacted{background:repeating-linear-gradient(45deg,transparent,transparent 10px,rgba(255,0,0,.03) 10px,rgba(255,0,0,.03) 20px)}.dnet-category-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.dnet-category-name{font-family:var(--font-mono-bold);color:var(--terminal-green)}.dnet-category-count{font-size:.8rem;color:var(--terminal-text);opacity:.7}.dnet-category-desc{font-size:.85rem;color:var(--terminal-text)}.dnet-category-lock{font-size:.75rem;color:var(--alert-text);margin-top:.5rem;display:flex;align-items:center;gap:.5rem}.dnet-thread{padding:.75rem 1rem;border-bottom:1px solid #222;display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;transition:background .2s;background:transparent;color:inherit}.dnet-thread:hover{background:#ffffff05}.dnet-thread.pinned{background:rgba(var(--rank-primary-rgb, 0, 255, 136),.05);border-left:3px solid var(--rank-primary);padding-left:calc(1rem - 3px)}.dnet-thread.unread .dnet-thread-title{color:var(--terminal-green)}.dnet-thread-main{flex:1;min-width:0}.dnet-thread-title{color:var(--choice-text);font-size:.95rem;margin-bottom:.25rem;text-decoration:none;display:block}.dnet-thread-title:hover{color:var(--choice-hover)}.dnet-thread-meta{font-size:.75rem;color:var(--terminal-text);opacity:.7}.dnet-thread-stats{text-align:right;font-size:.75rem;color:var(--terminal-text);opacity:.7;white-space:nowrap}.dnet-post{border:1px solid #333;margin-bottom:1rem}.dnet-post.op{border-color:var(--rank-primary)}.dnet-post-header{background:#111;padding:.5rem 1rem;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:.5rem}.dnet-post-author{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.dnet-post-callsign{font-family:var(--font-mono-bold);font-size:.9rem}.dnet-post-meta{font-size:.75rem;color:var(--terminal-text);opacity:.7}.dnet-post-body{padding:1rem;white-space:pre-wrap;word-wrap:break-word;line-height:1.5}.dnet-post-footer{padding:.5rem 1rem;border-top:1px solid #222;display:flex;gap:1rem;align-items:center}.dnet-reaction{padding:.25rem .5rem;border:1px solid #444;cursor:pointer;font-family:var(--font-mono);font-size:.8rem;background:transparent;color:var(--terminal-text);transition:all .2s;display:inline-flex;align-items:center;gap:.25rem}.dnet-reaction:hover{border-color:var(--rank-primary);color:var(--rank-primary)}.dnet-reaction.active{background:var(--rank-primary);color:#000;border-color:var(--rank-primary)}.dnet-reaction.r104.active{background:var(--terminal-green);border-color:var(--terminal-green)}.dnet-reaction.r107.active{background:var(--alert-text);border-color:var(--alert-text)}.dnet-reaction:disabled{opacity:.4;cursor:not-allowed}.dnet-reaction.loading{opacity:.6;cursor:wait}.dnet-badge{display:inline-block;padding:.1rem .4rem;font-size:.65rem;border:1px solid currentColor;margin-left:.25rem;opacity:.8}.dnet-skill-badge{color:var(--info-text)}.dnet-grade{font-weight:700}.dnet-grade-0{color:#666}.dnet-grade-1{color:var(--rank-receiver-primary)}.dnet-grade-2{color:var(--rank-responder-primary)}.dnet-grade-3{color:var(--rank-coordinator-primary)}.dnet-grade-4,.dnet-grade-5{color:var(--rank-primary)}.dnet-grade-6{color:var(--rank-controller-primary)}.dnet-editor{border:1px solid #333;margin-top:1rem}.dnet-editor-header{background:#111;padding:.5rem 1rem;font-size:.85rem;color:var(--terminal-text);border-bottom:1px solid #333}.dnet-editor-body{padding:0}.dnet-editor textarea{width:100%;min-height:120px;padding:1rem;background:transparent;border:none;color:var(--terminal-text);font-family:var(--font-mono);font-size:.9rem;resize:vertical}.dnet-editor textarea:focus{outline:none}.dnet-editor-footer{padding:.5rem 1rem;border-top:1px solid #333;display:flex;justify-content:space-between;align-items:center}.dnet-editor-count{font-size:.75rem;color:var(--terminal-text);opacity:.7}.dnet-btn{padding:.5rem 1rem;background:transparent;border:1px solid var(--rank-primary);color:var(--rank-primary);font-family:var(--font-mono);font-size:.85rem;cursor:pointer;transition:all .2s}.dnet-btn:hover{background:var(--rank-primary);color:#000}.dnet-btn:disabled{opacity:.5;cursor:not-allowed}.dnet-btn:disabled:hover{background:transparent;color:var(--rank-primary)}.dnet-pagination{display:flex;justify-content:center;gap:.5rem;margin-top:1rem;padding-top:1rem;border-top:1px solid #222}.dnet-page-btn{padding:.25rem .5rem;border:1px solid #444;background:transparent;color:var(--terminal-text);font-family:var(--font-mono);font-size:.8rem;cursor:pointer;transition:all .2s}.dnet-page-btn:hover{border-color:var(--rank-primary)}.dnet-page-btn.active{background:var(--rank-primary);color:#000;border-color:var(--rank-primary)}.dnet-section{margin-bottom:.5rem}.dnet-section-title{font-family:var(--font-mono-bold);font-size:.9rem;color:var(--info-text);margin-bottom:.75rem}.dnet-glitch{animation:dnet-glitch .3s infinite}@keyframes dnet-glitch{0%,to{opacity:1;transform:translate(0)}20%{opacity:.8;transform:translate(-2px)}40%{opacity:.9;transform:translate(2px)}60%{opacity:.7;transform:translate(-1px)}80%{opacity:1;transform:translate(1px)}}.dnet-redacted-text{background:#333;color:#333;-webkit-user-select:none;user-select:none}.dnet-redacted-text.revealed{background:transparent;color:var(--terminal-text)}.dnet-empty{text-align:center;padding:3rem 1rem;color:var(--terminal-text);opacity:.7}.dnet-loading{text-align:center;padding:2rem;color:var(--terminal-text)}.dnet-loading:after{content:"...";animation:dnet-dots 1.5s infinite}@keyframes dnet-dots{0%,20%{content:"."}40%{content:".."}60%,to{content:"..."}}.dnet-freq{color:var(--terminal-text);opacity:.5;margin-right:.5rem}.dnet-profile{border:1px solid #333;padding:1.5rem}.dnet-profile-header{border-bottom:1px solid #333;padding-bottom:1rem;margin-bottom:1rem}.dnet-profile-callsign{font-family:var(--font-mono-bold);font-size:1.5rem;color:var(--rank-primary);margin-bottom:.25rem}.dnet-profile-grade{font-size:.9rem}.dnet-profile-section{margin-bottom:1rem}.dnet-profile-section-title{font-size:.75rem;color:var(--terminal-text);opacity:.7;margin-bottom:.5rem;text-transform:uppercase;letter-spacing:.1em}.dnet-profile-stats{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.75rem}.dnet-stat{padding:.5rem;border:1px solid #222}.dnet-stat-value{font-family:var(--font-mono-bold);font-size:1.1rem;color:var(--rank-primary)}.dnet-stat-label{font-size:.7rem;color:var(--terminal-text);opacity:.7}.dnet-back{display:inline-block;color:var(--terminal-text);text-decoration:none;font-size:.85rem;margin-bottom:1rem;opacity:.7;transition:opacity .2s}.dnet-back:hover{opacity:1;color:var(--choice-text)}.dnet-pin{color:var(--rank-primary);margin-right:.5rem}.dnet-lock{color:var(--alert-text);font-size:.75rem;margin-left:.5rem}
