:root{--bg-primary: #0a0e1a;--bg-secondary: #111827;--glass-bg: rgba(255, 255, 255, .05);--glass-border: rgba(255, 255, 255, .1);--neon-blue: #00d4ff;--neon-green: #00ff88;--neon-purple: #a855f7;--neon-red: #ff4757;--text-primary: #f1f5f9;--text-secondary: #94a3b8;--radius: 12px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%;max-width:100vw;overflow-x:hidden}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:var(--bg-primary);color:var(--text-primary);overflow:hidden}.app-layout{display:flex;height:100vh;gap:16px;padding:16px}.app-layout__video{flex:0 0 60%;display:flex;flex-direction:column;gap:12px;min-width:0}.app-layout__panel{flex:1;display:flex;flex-direction:column;gap:12px;overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--glass-border) transparent;min-width:0}.glass{background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:var(--radius);padding:16px}@supports (backdrop-filter: blur(12px)){.glass,.locale-switcher{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}}.no-face-banner{position:absolute;top:12px;left:50%;transform:translate(-50%);width:max-content;padding:10px 3.5em;text-align:center;font-size:13px;color:#ffffffd9;background:#000000b3;border-radius:8px;z-index:10}.header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px}.header__title{font-size:18px;font-weight:700;white-space:nowrap;background:linear-gradient(135deg,var(--neon-blue),var(--neon-purple));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.header__status{display:flex;gap:8px;align-items:center;white-space:nowrap}.status-dot{width:8px;height:8px;border-radius:50%}.status-dot--ok{background:var(--neon-green);box-shadow:0 0 6px var(--neon-green)}.status-dot--loading{background:var(--neon-blue);animation:pulse-dot 1s infinite}.status-dot--error{background:var(--neon-red)}@keyframes pulse-dot{0%,to{opacity:1}50%{opacity:.4}}.camera-container{position:relative;flex:1;border-radius:var(--radius);overflow:hidden;background:#000;min-height:0}.camera-container video,.camera-container canvas{position:absolute;top:0;inset-inline-start:0;width:100%;height:100%;object-fit:cover}.camera-container video{transform:scaleX(-1)}.camera-container canvas{transform:scaleX(-1);pointer-events:none}.camera-container__placeholder{display:flex;align-items:center;justify-content:center;height:100%;color:var(--text-secondary);font-size:14px}.camera-container__overlay{position:absolute;inset:0;z-index:5;display:flex;align-items:center;justify-content:center;color:var(--text-secondary);font-size:14px;cursor:pointer;background:#0006}.metric-card{display:flex;flex-direction:column;gap:4px;transition:border-color .3s}.metric-card__label{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary)}.metric-card__value{font-size:28px;font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:color .3s}.metric-card__sub{font-size:12px;color:var(--text-secondary)}.metric-card--blue .metric-card__value{color:var(--neon-blue)}.metric-card--green .metric-card__value{color:var(--neon-green)}.metric-card--purple .metric-card__value{color:var(--neon-purple)}.metric-card--red .metric-card__value{color:var(--neon-red)}.metrics-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.mode-selector{display:flex;gap:8px}.mode-selector button{flex:1;padding:8px 12px;border:1px solid var(--glass-border);border-radius:8px;background:transparent;color:var(--text-secondary);font-size:13px;cursor:pointer;transition:all .2s}.mode-selector button.active{border-color:var(--neon-blue);color:var(--neon-blue);background:#00d4ff14}.photo-upload{border:2px dashed var(--glass-border);border-radius:var(--radius);display:flex;align-items:center;justify-content:center;flex:1;min-height:200px;cursor:pointer;transition:border-color .2s;color:var(--text-secondary);font-size:14px}.photo-upload:hover,.photo-upload.dragging{border-color:var(--neon-blue)}.photo-upload img{max-width:100%;max-height:100%;object-fit:contain}.toggles{display:flex;flex-wrap:wrap;gap:8px}.toggle-chip{padding:4px 10px;border-radius:16px;border:1px solid var(--glass-border);background:transparent;color:var(--text-secondary);font-size:12px;cursor:pointer;transition:all .2s}.toggle-chip.active{border-color:var(--neon-green);color:var(--neon-green);background:#00ff8814}.pulse-row{grid-column:1 / -1;display:flex;gap:12px;align-items:stretch}.pulse-row__card{flex-shrink:0;width:156px;display:flex}.pulse-row__card .metric-card{width:100%}.pulse-row__chart{flex:1;min-width:0;position:relative}.pulse-chart{position:absolute;inset:0;border-radius:8px;overflow:hidden}.pulse-chart canvas{width:100%;height:100%}.loading-screen{position:fixed;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;background:var(--bg-primary);z-index:100;gap:24px}.loading-screen__title{font-size:24px;font-weight:700;background:linear-gradient(135deg,var(--neon-blue),var(--neon-purple));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.loading-bar{width:240px;height:4px;background:var(--glass-border);border-radius:2px;overflow:hidden}.loading-bar__fill{height:100%;background:linear-gradient(90deg,var(--neon-blue),var(--neon-purple));border-radius:2px;transition:width .3s}.loading-screen__label{font-size:13px;color:var(--text-secondary)}.modal-overlay{position:fixed;inset:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:200;padding:16px}.modal{max-width:480px;width:100%;padding:24px;display:flex;flex-direction:column;gap:16px}.modal h2{font-size:18px}.modal p{font-size:14px;color:var(--text-secondary);line-height:1.6}.modal button{padding:10px 20px;border:none;border-radius:8px;background:linear-gradient(135deg,var(--neon-blue),var(--neon-purple));color:#fff;font-size:14px;font-weight:600;cursor:pointer;align-self:flex-end}.error-boundary{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;gap:16px;color:var(--neon-red);text-align:center;padding:24px}.heart-icon{display:inline-block;font-size:20px}.heart-icon--pulsing{animation:heartbeat var(--beat-duration, 1s) infinite}@keyframes heartbeat{0%,to{transform:scale(1)}15%{transform:scale(1.25)}30%{transform:scale(1)}}.tooltip-wrapper{position:relative}.tooltip-wrapper .tooltip-text{visibility:hidden;opacity:0;position:absolute;bottom:calc(100% + 6px);left:50%;transform:translate(-50%);padding:6px 10px;border-radius:6px;background:var(--bg-secondary);border:1px solid var(--glass-border);color:var(--text-secondary);font-size:11px;white-space:nowrap;z-index:10;transition:opacity .15s;pointer-events:none}.tooltip-wrapper:hover .tooltip-text{visibility:visible;opacity:1}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--glass-border);border-radius:3px}@media(max-width:1024px){.app-layout{flex-direction:column;overflow-y:auto;overflow-x:hidden;padding:12px;gap:12px}.app-layout__video{flex:none;height:50vh}@media(orientation:landscape){.app-layout__video{height:80vh}}.app-layout__panel{flex:none;overflow-y:visible;padding-bottom:24px}.header__title{font-size:14px}.metrics-grid{grid-template-columns:repeat(2,1fr)}.metric-card__value{font-size:18px}.pulse-row__card{width:auto;flex:1}.pulse-row__chart{flex:1}}.locale-switcher{position:fixed;bottom:16px;right:16px;z-index:50;display:flex;gap:2px;background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:8px;padding:4px}.locale-btn{padding:2px 6px;border:1px solid transparent;border-radius:4px;background:transparent;color:var(--text-secondary);font-size:11px;font-weight:500;cursor:pointer;transition:all .15s;line-height:1}.locale-btn:hover{color:var(--text-primary)}.locale-btn.active{border-color:var(--neon-blue);color:var(--neon-blue)}[dir=rtl] .camera-container video,[dir=rtl] .camera-container canvas{transform:scaleX(1)}[dir=rtl] .locale-switcher{right:auto;left:16px}[dir=rtl] .tooltip-wrapper .tooltip-text{left:auto;right:50%;transform:translate(50%)}
