:root { --bg: #080a0f; --panel: rgba(18, 22, 32, 0.86); --panel-strong: #121720; --line: rgba(255, 255, 255, 0.12); --text: #edf4ff; --muted: #91a0b6; --faint: #536176; --cyan: #00e5ff; --green: #39ff88; --yellow: #ffe45e; --red: #ff4f6d; --blue: #6275ff; --shadow: 0 24px 70px rgba(0, 0, 0, 0.46); } * { box-sizing: border-box; } body { margin: 0; min-height: 100vh; color: var(--text); font-family: Manrope, sans-serif; background: radial-gradient(circle at 12% 8%, rgba(0, 229, 255, 0.18), transparent 32rem), radial-gradient(circle at 88% 0%, rgba(98, 117, 255, 0.2), transparent 28rem), linear-gradient(145deg, #05060a, var(--bg)); overflow-x: hidden; } body::before { content: ""; position: fixed; inset: 0; pointer-events: none; background-image: linear-gradient(rgba(255,255,255,0.035) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,0.035) 1px, transparent 1px); background-size: 42px 42px; mask-image: linear-gradient(to bottom, black, transparent 84%); } button, select { font: inherit; } .shell { width: min(1440px, calc(100% - 32px)); margin: 0 auto; padding: 28px 0 44px; } .hero { display: grid; grid-template-columns: 1.2fr 0.8fr; gap: 18px; align-items: stretch; margin-bottom: 18px; } .brand-card, .status-card, .tab-panel, .content-card { border: 1px solid var(--line); background: var(--panel); backdrop-filter: blur(18px); box-shadow: var(--shadow); } .brand-card { position: relative; padding: 28px; border-radius: 28px; overflow: hidden; min-height: 190px; } .brand-card::after { content: "WATCHER"; position: absolute; right: -14px; bottom: -20px; font-family: "Archivo Black", sans-serif; font-size: clamp(58px, 9vw, 132px); letter-spacing: -0.08em; color: rgba(255,255,255,0.035); line-height: 0.78; } .eyebrow { display: inline-flex; align-items: center; gap: 10px; margin-bottom: 18px; color: var(--cyan); font: 700 12px/1 "JetBrains Mono", monospace; text-transform: uppercase; letter-spacing: 0.18em; } .pulse { width: 9px; height: 9px; border-radius: 999px; background: var(--green); box-shadow: 0 0 20px var(--green); } h1 { margin: 0; max-width: 840px; font-family: "Archivo Black", sans-serif; font-size: clamp(40px, 6vw, 82px); line-height: 0.88; letter-spacing: -0.06em; text-transform: uppercase; } .subtitle { margin: 18px 0 0; max-width: 720px; color: var(--muted); font-size: 15px; line-height: 1.7; } .status-card { border-radius: 28px; padding: 24px; display: grid; gap: 14px; } .status-row { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 14px 0; border-bottom: 1px solid var(--line); } .status-row:last-child { border-bottom: 0; } .status-label { color: var(--muted); font: 700 12px/1 "JetBrains Mono", monospace; text-transform: uppercase; letter-spacing: 0.12em; } .status-value { display: inline-flex; align-items: center; gap: 8px; color: var(--text); font: 700 13px/1 "JetBrains Mono", monospace; } .dot { width: 9px; height: 9px; border-radius: 99px; background: var(--faint); } .dot.on { background: var(--green); box-shadow: 0 0 16px var(--green); } .dot.warn { background: var(--yellow); box-shadow: 0 0 16px var(--yellow); } .tab-panel { position: sticky; top: 14px; z-index: 5; display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px; border-radius: 24px; margin-bottom: 18px; } .tabs { display: flex; gap: 8px; flex-wrap: wrap; } .tab-btn { border: 1px solid transparent; color: var(--muted); background: transparent; border-radius: 16px; padding: 12px 16px; cursor: pointer; font-weight: 800; transition: 160ms ease; } .tab-btn:hover { color: var(--text); background: rgba(255,255,255,0.06); } .tab-btn.active { color: #061014; background: linear-gradient(135deg, var(--cyan), var(--green)); box-shadow: 0 12px 28px rgba(0,229,255,0.18); } .filter-row { display: flex; align-items: center; gap: 10px; color: var(--muted); font-size: 13px; } select { min-width: 240px; color: var(--text); background: rgba(5,8,14,0.78); border: 1px solid var(--line); border-radius: 14px; padding: 11px 14px; outline: none; } .grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 18px; } .tab-content { display: none; } .tab-content.active { display: block; } .voice-layout { display: grid; grid-template-columns: 380px 1fr; gap: 18px; } .content-card { border-radius: 28px; padding: 22px; } .card-title { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 18px; } .card-title h2 { margin: 0; font-family: "Archivo Black", sans-serif; font-size: 26px; letter-spacing: -0.04em; text-transform: uppercase; } .mini { color: var(--faint); font: 700 11px/1 "JetBrains Mono", monospace; text-transform: uppercase; letter-spacing: 0.12em; } .field-group { display: grid; gap: 8px; margin-bottom: 14px; } .field-group label { color: var(--muted); font-size: 13px; font-weight: 800; } .button-row { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; } .btn { border: 0; border-radius: 16px; padding: 13px 16px; color: #061014; cursor: pointer; font-weight: 900; transition: transform 140ms ease, filter 140ms ease; } .btn:hover { transform: translateY(-1px); filter: brightness(1.08); } .btn-primary { background: linear-gradient(135deg, var(--cyan), var(--blue)); color: white; } .btn-success { background: linear-gradient(135deg, var(--green), var(--cyan)); } .btn-danger { background: linear-gradient(135deg, var(--red), #ff9a6b); color: white; } .voice-status { color: var(--muted); font-size: 13px; margin-top: 12px; min-height: 20px; } .visualizer { display: flex; align-items: flex-end; gap: 5px; height: 130px; padding: 16px; border: 1px solid var(--line); border-radius: 20px; background: rgba(0,0,0,0.22); overflow: hidden; } .bar { flex: 1; min-width: 5px; border-radius: 999px; height: 3px; background: linear-gradient(to top, var(--blue), var(--cyan), var(--green)); box-shadow: 0 0 18px rgba(0,229,255,0.16); } .participants { display: grid; gap: 10px; } .user-item { display: flex; align-items: center; gap: 12px; padding: 12px; border: 1px solid var(--line); border-radius: 18px; background: rgba(255,255,255,0.035); } .user-item.speaking { border-color: rgba(57,255,136,0.55); background: rgba(57,255,136,0.08); } .user-item img { width: 34px; height: 34px; border-radius: 999px; } .feed { display: grid; gap: 12px; } .event-card { display: grid; gap: 10px; padding: 16px; border: 1px solid var(--line); border-radius: 20px; background: rgba(255,255,255,0.035); } .event-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; } .author { display: flex; align-items: center; gap: 10px; min-width: 0; } .avatar { width: 34px; height: 34px; border-radius: 999px; background: linear-gradient(135deg, var(--blue), var(--cyan)); flex: 0 0 auto; } .avatar img { width: 100%; height: 100%; border-radius: inherit; object-fit: cover; } .name { font-weight: 900; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .time { color: var(--faint); font: 600 11px/1 "JetBrains Mono", monospace; white-space: nowrap; } .message-text { color: #dbe6f7; line-height: 1.6; white-space: pre-wrap; word-break: break-word; } .sticker-strip, .attachment-strip { display: flex; gap: 10px; flex-wrap: wrap; } .sticker-img { width: 96px; height: 96px; object-fit: contain; border-radius: 16px; background: rgba(0,0,0,0.22); border: 1px solid var(--line); padding: 8px; } .attachment-chip { color: var(--cyan); text-decoration: none; border: 1px solid var(--line); border-radius: 14px; padding: 8px 10px; font: 700 12px/1 "JetBrains Mono", monospace; background: rgba(0,229,255,0.06); } .embed-card { border-left: 4px solid var(--blue); border-radius: 16px; padding: 12px; background: rgba(98,117,255,0.08); display: grid; gap: 8px; } .embed-title { font-weight: 900; color: var(--text); } .embed-description { color: var(--muted); line-height: 1.5; white-space: pre-wrap; } .embed-image { max-width: 360px; width: 100%; border-radius: 14px; border: 1px solid var(--line); } .badges { display: flex; gap: 8px; flex-wrap: wrap; } .badge { border: 1px solid var(--line); border-radius: 999px; padding: 5px 9px; color: var(--muted); font: 700 10px/1 "JetBrains Mono", monospace; text-transform: uppercase; } .badge.edit { color: var(--yellow); border-color: rgba(255,228,94,0.36); } .badge.delete { color: var(--red); border-color: rgba(255,79,109,0.42); } .filename { font-size: 13px; font-weight: 900; word-break: break-word; } .link { color: var(--cyan); text-decoration: none; font-weight: 900; } .link:hover { text-decoration: underline; } .empty { padding: 34px; text-align: center; color: var(--faint); border: 1px dashed var(--line); border-radius: 22px; } .error { display: none; margin-bottom: 14px; padding: 12px 14px; color: #ffd8df; border: 1px solid rgba(255,79,109,0.5); border-radius: 16px; background: rgba(255,79,109,0.12); } @media (max-width: 980px) { .hero, .voice-layout { grid-template-columns: 1fr; } .tab-panel { align-items: stretch; flex-direction: column; } .filter-row { align-items: stretch; flex-direction: column; } select { width: 100%; min-width: 0; } }