/* NEXUS OS — premium visual system */
:root { --safe-b: env(safe-area-inset-bottom, 0px); }
* { -webkit-tap-highlight-color: transparent; }
body { overscroll-behavior-y: none; }
::-webkit-scrollbar { width: 4px; height: 4px; }
::-webkit-scrollbar-thumb { background: #263042; border-radius: 4px; }

.glass { background: linear-gradient(160deg, rgba(20,26,38,.92), rgba(13,17,24,.96)); border: 1px solid #1c2432; backdrop-filter: blur(14px); }
.card { background: #0d1118; border: 1px solid #1c2432; border-radius: 1rem; transition: border-color .2s, transform .15s; }
.card:active { transform: scale(.985); }
.card:hover { border-color: #2a3650; }

.glow-ring { box-shadow: 0 0 0 1px rgba(91,140,255,.35), 0 0 32px rgba(91,140,255,.18); }
.grad-text { background: linear-gradient(90deg, #5b8cff, #9d7bff, #3ddc97); -webkit-background-clip: text; background-clip: text; color: transparent; }
.hero-grid { background-image: radial-gradient(circle at 20% 10%, rgba(91,140,255,.12), transparent 40%), radial-gradient(circle at 80% 90%, rgba(157,123,255,.1), transparent 45%), linear-gradient(#0d1118 1px, transparent 1px), linear-gradient(90deg, #0d1118 1px, transparent 1px); background-size: 100% 100%, 100% 100%, 44px 44px, 44px 44px; }

.pill { font-size: .65rem; padding: .15rem .55rem; border-radius: 999px; font-weight: 600; letter-spacing: .03em; }
.pill-urgent { background: rgba(255,93,115,.14); color: #ff8296; border: 1px solid rgba(255,93,115,.3); }
.pill-high { background: rgba(245,166,35,.13); color: #f7b955; border: 1px solid rgba(245,166,35,.3); }
.pill-normal { background: rgba(91,140,255,.13); color: #86aaff; border: 1px solid rgba(91,140,255,.28); }
.pill-low { background: rgba(148,163,184,.12); color: #94a3b8; border: 1px solid rgba(148,163,184,.25); }
.pill-ok { background: rgba(61,220,151,.13); color: #5fe8ae; border: 1px solid rgba(61,220,151,.3); }

.bottom-nav { padding-bottom: calc(.5rem + var(--safe-b)); }
.nav-item.active { color: #5b8cff; }
.nav-item.active .nav-dot { opacity: 1; transform: scaleX(1); }
.nav-dot { opacity: 0; transform: scaleX(.3); transition: all .25s; }

.mic-pulse { animation: micpulse 1.6s ease-out infinite; }
@keyframes micpulse { 0% { box-shadow: 0 0 0 0 rgba(255,93,115,.5);} 70% { box-shadow: 0 0 0 26px rgba(255,93,115,0);} 100% { box-shadow: 0 0 0 0 rgba(255,93,115,0);} }

.fade-in { animation: fadein .3s ease both; }
@keyframes fadein { from { opacity: 0; transform: translateY(8px);} to { opacity: 1; transform: none;} }

.director-mode { font-size: 1.15rem; }
.director-mode .dbtn { min-height: 92px; font-size: 1.25rem; }

.timeline-clip { background: linear-gradient(135deg, #1a2233, #10161f); border: 1px solid #2a3650; }
.kanban-col { min-width: 240px; }
input, textarea, select { color-scheme: dark; }
.modal-bg { background: rgba(4,6,10,.78); backdrop-filter: blur(6px); }
.typing::after { content: '▋'; animation: blink 1s steps(1) infinite; color: #5b8cff; }
@keyframes blink { 50% { opacity: 0; } }
