/* ===== Live Campus 3D (virtual campus) ===== */
.c3d{position:fixed;inset:0;z-index:70;background:#f1efea;overflow:hidden;font-family:var(--font);color:var(--text)}
:root[data-theme="dark"] .c3d{background:#0b1120}
.c3d canvas{position:absolute;inset:0;display:block;cursor:grab;touch-action:none}
.c3d canvas:active{cursor:grabbing}
.c3d-card{position:absolute;background:color-mix(in srgb,var(--surface) 92%,transparent);backdrop-filter:blur(14px);border:1px solid var(--border);border-radius:20px;box-shadow:0 18px 50px rgba(15,23,42,.12)}
.c3d-left{left:20px;top:20px;width:440px;padding:20px 22px}
.c3d-kick{font:600 11px/1.3 "JetBrains Mono",ui-monospace,Consolas,monospace;letter-spacing:.12em;color:var(--muted);text-transform:uppercase}
.c3d-title{font-family:var(--font-h);font-size:34px;font-weight:700;letter-spacing:-.8px;margin-top:2px}
.c3d-clock{font:600 20px "JetBrains Mono",ui-monospace,monospace}
.c3d-live{white-space:nowrap;margin-top:6px;border:0;background:var(--surface-3);color:var(--muted);font:600 11px "JetBrains Mono",monospace;letter-spacing:.1em;padding:4px 10px;border-radius:99px;cursor:pointer}
.c3d-live.on{background:var(--success-50);color:var(--success)}
.c3d-pct{font:600 22px "JetBrains Mono",monospace;color:#2563eb}
.c3d-bar{height:9px;border-radius:99px;background:var(--surface-3);overflow:hidden;margin-top:8px}
.c3d-bar i{display:block;height:100%;background:linear-gradient(90deg,#2563eb,#60a5fa);border-radius:99px;transition:width .6s}
.c3d-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:14px 10px;margin-top:16px}
.c3d-kpis b,.c3d-mini b{display:block;font:600 19px "JetBrains Mono",ui-monospace,monospace;letter-spacing:-.5px;white-space:nowrap}
.c3d-kpis span,.c3d-mini span{font:500 9.5px "JetBrains Mono",monospace;letter-spacing:.1em;color:var(--muted)}
.c3d-chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}
.c3d-chips button{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--border);background:var(--surface);border-radius:99px;padding:6px 12px 6px 7px;font:600 11px "JetBrains Mono",monospace;letter-spacing:.06em;text-transform:uppercase;cursor:pointer;color:var(--text)}
.c3d-chips button:hover{border-color:var(--border-2);box-shadow:var(--shadow-sm)}
.c3d-chips i{width:18px;height:18px;border-radius:6px}
.c3d-chips span{color:var(--muted)}
.c3d-right{right:20px;top:20px;bottom:120px;width:430px;display:flex;flex-direction:column;overflow:hidden}
.c3d-search{position:relative;margin:16px 16px 10px}
.c3d-search .i{position:absolute;left:12px;top:12px;color:var(--muted);width:16px;height:16px}
.c3d-search input{width:100%;height:42px;border:1px solid var(--border-2);border-radius:12px;padding:0 12px 0 36px;background:var(--surface);outline:none;font-size:14px}
.c3d-search input:focus{border-color:var(--brand)}
.c3d-tabs{display:flex;gap:4px;padding:0 16px 12px;border-bottom:1px solid var(--border);overflow-x:auto}
.c3d-tabs button,.c3d-tabsb button,.c3d-seg button{border:0;background:none;font:600 11px "JetBrains Mono",monospace;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);padding:8px 10px;border-radius:9px;cursor:pointer;white-space:nowrap}
.c3d-tabs button.on,.c3d-tabsb button.on,.c3d-seg button.on{background:#0b1020;color:#fff}
.c3d-tabs button:hover:not(.on),.c3d-tabsb button:hover:not(.on),.c3d-seg button:hover:not(.on):not(:disabled){color:var(--text)}
.c3d-pbody{flex:1;overflow:auto;padding:18px 20px 24px}
.c3d-h{font-family:var(--font-h);font-size:24px;font-weight:700;letter-spacing:-.5px}
.c3d-hint{font-size:13px;color:var(--text-2);border-left:2px solid var(--border-2);padding-left:12px;margin:12px 0 16px;line-height:1.6}
.c3d-sec{border:1px solid var(--border);border-radius:14px;padding:14px;margin-bottom:12px;background:var(--surface)}
.c3d-mini{display:grid;grid-template-columns:repeat(3,1fr);gap:12px 8px}
.c3d-row{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr) auto;gap:10px;align-items:center;font-size:13px;padding:5px 0;cursor:pointer}
.c3d-row span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.c3d-row b{font:500 12px "JetBrains Mono",monospace;color:var(--muted);text-align:right;white-space:nowrap}
.c3d-row:hover span{color:var(--brand)}
.c3d-rbar{height:7px;border-radius:99px;background:var(--surface-3);overflow:hidden}
.c3d-rbar i{display:block;height:100%;border-radius:99px}
.c3d-black{display:inline-block;border:0;background:#0b1020;color:#fff;font:600 12px "JetBrains Mono",monospace;letter-spacing:.1em;padding:10px 14px;border-radius:10px;cursor:pointer}
.c3d-black:hover{background:#1e293b}
.c3d-dcard{border:1px solid var(--border);border-radius:12px;padding:12px;margin-bottom:8px;cursor:pointer;background:var(--surface)}
.c3d-dcard:hover{border-color:var(--border-2);box-shadow:var(--shadow-sm)}
.c3d-dot{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:6px;vertical-align:middle}
.c3d-list{display:flex;flex-direction:column;gap:2px}
.c3d-li{display:flex;align-items:center;gap:10px;padding:7px 8px;border-radius:9px;cursor:pointer;font-size:13px}
.c3d-li:hover{background:var(--surface-3)}
.c3d-legend{display:flex;flex-wrap:wrap;gap:12px;font-size:12px;color:var(--muted)}
.c3d-legend i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:5px;vertical-align:middle}
.c3d-ctrl{position:absolute;right:466px;top:20px;display:flex;flex-direction:column;gap:6px}
.c3d-ctrl button{width:38px;height:38px;border-radius:11px;border:1px solid var(--border);background:var(--surface);display:grid;place-items:center;cursor:pointer;color:var(--text-2);box-shadow:var(--shadow-sm)}
.c3d-ctrl button:hover{color:var(--text);border-color:var(--border-2)}
.c3d-bottom{position:absolute;left:20px;bottom:84px;display:flex;flex-direction:column;gap:8px;align-items:flex-start}
.c3d-tabsb,.c3d-seg{display:flex;gap:2px;background:color-mix(in srgb,var(--surface) 92%,transparent);backdrop-filter:blur(10px);border:1px solid var(--border);border-radius:14px;padding:5px;box-shadow:var(--shadow-sm);flex-wrap:wrap}
.c3d-seg span{font:600 10.5px "JetBrains Mono",monospace;letter-spacing:.1em;color:var(--muted);padding:8px 8px 8px 6px}
.c3d-seg button:disabled{opacity:.4;cursor:not-allowed}
.c3d-tabsb button{padding:10px 14px;font-size:12px}
.c3d-portal{position:absolute;left:20px;bottom:20px;height:48px;padding:0 20px;border-radius:14px;border:1px solid var(--border);background:var(--surface);font:700 13px "JetBrains Mono",monospace;letter-spacing:.1em;cursor:pointer;box-shadow:var(--shadow-sm);color:var(--text)}
.c3d-portal:hover{border-color:var(--border-2)}
.c3d-ticker{position:absolute;left:150px;right:250px;bottom:20px;height:48px;border-radius:14px;background:#2b3240;color:#e5e7eb;font:500 13.5px "JetBrains Mono",ui-monospace,monospace;display:flex;align-items:center;gap:10px;padding:0 20px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.c3d-ticker .muted{color:#94a3b8}
.c3d-ticker.flash{animation:tickFlash 1.2s ease}
@keyframes tickFlash{0%{background:#4c1d95}100%{background:#2b3240}}
.c3d-tip{position:absolute;display:none;pointer-events:none;background:#0b1020;color:#f1f5f9;border-radius:11px;padding:9px 12px;font-size:12.5px;max-width:300px;box-shadow:0 12px 30px rgba(0,0,0,.3);z-index:5;line-height:1.45}
.c3d-tip b{font-size:13px}
.c3d-tip .muted{color:#94a3b8}
@media (max-width:1200px){.c3d-right{width:360px}.c3d-ctrl{right:392px}.c3d-left{width:380px}}
@media (max-width:900px){
  .c3d-left{left:10px;right:10px;top:10px;width:auto;padding:14px}
  .c3d-left .c3d-kpis,.c3d-left .c3d-chips,.c3d-left .small{display:none}
  .c3d-title{font-size:24px}
  .c3d-right{display:none}
  .c3d-ctrl{right:10px;top:auto;bottom:160px}
  .c3d-bottom{left:10px;bottom:76px;right:10px}
  .c3d-tabsb,.c3d-seg{overflow-x:auto;flex-wrap:nowrap;max-width:100%}
  .c3d-portal{left:10px;bottom:12px;height:44px;padding:0 14px}
  .c3d-ticker{left:120px;right:84px;bottom:12px;height:44px;font-size:12px;padding:0 12px}
}
