:root{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;line-height:1.5;font-weight:400;--bg-primary: #0a0a0f;--bg-secondary: #141419;--bg-tertiary: #1c1c24;--text-primary: #e8e8ea;--text-secondary: #8a8a93;--text-tertiary: #5a5a63;--accent-subtle: #2c2c38;--accent-color: #4f46e5;--error-color: #dc2626;--success-color: #16a34a;--qr-glow: rgba(255,255,255,.08);--border-color: rgba(255,255,255,.08);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}html{background:var(--bg-primary);background-attachment:fixed;min-height:100vh}body{margin:0;min-width:320px;min-height:100vh;overflow-x:hidden;background:var(--bg-primary);color:var(--text-primary);padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom)}#root{width:100%;min-height:100vh;background:var(--bg-primary)}@supports (-webkit-touch-callout: none){button,input,select,textarea{-webkit-tap-highlight-color:transparent}}@keyframes slideDown{0%{opacity:0;transform:translate(-50%) translateY(-20px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.qr-display{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:1.5rem 1rem;gap:1.75rem;width:100%;max-width:500px;margin:0 auto}@media(max-width:480px){.qr-display{padding:1rem .75rem;gap:1.5rem}}.qr-display__code{background:#fff;padding:3px;border-radius:32px;display:block;width:100%;max-width:340px;transition:all .4s cubic-bezier(.4,0,.2,1);position:relative;overflow:hidden;box-shadow:0 0 0 1px #ffffff0d,0 8px 32px #ffffff14,0 16px 64px #ffffff0f,0 0 80px #ffffff0a}.qr-display__code:before{content:"";position:absolute;inset:-2px;border-radius:34px;padding:2px;background:linear-gradient(135deg,#ffffff26,#ffffff0d,#ffffff26);-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none;opacity:.5}@media(hover:hover){.qr-display__code:hover{transform:translateY(-2px);box-shadow:0 0 0 1px #ffffff14,0 12px 40px #ffffff1f,0 20px 72px #ffffff14,0 0 100px #ffffff0f}}@media(max-width:480px){.qr-display__code{padding:3px;border-radius:28px;max-width:320px}}.qr-display__image{width:100%;height:auto;display:block;border-radius:20px;overflow:hidden;-webkit-touch-callout:none;-webkit-user-select:none;-webkit-user-drag:none;pointer-events:none}.qr-display__timer{position:relative;width:100px;height:100px;margin:0 auto}@media(max-width:480px){.qr-display__timer{width:90px;height:90px}}.qr-display__timer svg{transform:rotate(-90deg);filter:drop-shadow(0 2px 8px rgba(0,0,0,.4))}.qr-display__timer-bg{stroke:#ffffff0d}.qr-display__timer-progress{transition:stroke-dashoffset 1s linear,stroke .3s ease;stroke-linecap:round}.qr-display__timer-text{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:2.25rem;font-weight:700;color:var(--text-primary);font-family:SF Pro Display,-apple-system,BlinkMacSystemFont,Segoe UI,system-ui,sans-serif;display:flex;align-items:center;justify-content:center;width:100%;height:100%;line-height:1;text-shadow:0 2px 8px rgba(0,0,0,.3)}@media(max-width:480px){.qr-display__timer-text{font-size:2rem}}.qr-display__countdown-text{font-size:.875rem;color:var(--text-tertiary);text-align:center;font-weight:400;letter-spacing:.01em}@media(max-width:480px){.qr-display__countdown-text{font-size:.8125rem}}.qr-display--loading,.qr-display--error{min-height:400px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem}@media(max-width:480px){.qr-display--loading,.qr-display--error{min-height:350px}}.qr-display__loading{font-size:1.125rem;color:var(--text-secondary);font-weight:400;animation:pulse 1.5s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}.qr-display__error{font-size:1rem;color:var(--error-color);text-align:center;padding:2rem;font-weight:400;line-height:1.5}.qr-display__retry{margin-top:1rem;padding:.875rem 1.75rem;background:var(--bg-tertiary);color:var(--text-secondary);border:1px solid var(--border-color);border-radius:10px;cursor:pointer;font-size:.9375rem;font-weight:500;transition:all .2s ease;font-family:inherit}@media(hover:hover){.qr-display__retry:hover{background:var(--accent-subtle);color:var(--text-primary);transform:translateY(-1px)}}.qr-display__retry:active{transform:translateY(0) scale(.96)}@keyframes fadeInUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.qr-display__code{animation:fadeInUp .5s cubic-bezier(.4,0,.2,1) forwards}.qr-display__timer{animation:fadeInUp .5s cubic-bezier(.4,0,.2,1) .1s forwards;opacity:0;animation-fill-mode:both}.qr-display__countdown-text{animation:fadeInUp .5s cubic-bezier(.4,0,.2,1) .2s forwards;opacity:0;animation-fill-mode:both}.debug-logger{position:fixed;bottom:0;left:0;right:0;max-height:50vh;background:#000000f2;color:#fff;font-family:Courier New,monospace;font-size:11px;z-index:9999;display:flex;flex-direction:column;border-top:2px solid #667eea;box-shadow:0 -4px 20px #00000080}.debug-logger__header{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;background:#667eea33;border-bottom:1px solid rgba(102,126,234,.5);flex-shrink:0}.debug-logger__title{font-weight:700;font-size:13px;color:#667eea}.debug-logger__buttons{display:flex;gap:6px}.debug-logger__button{padding:4px 8px;background:#ffffff1a;border:1px solid rgba(255,255,255,.2);border-radius:4px;color:#fff;font-size:11px;cursor:pointer;transition:all .2s}.debug-logger__button:active{background:#fff3;transform:scale(.95)}.debug-logger__content{flex:1;overflow-y:auto;padding:8px 12px;display:flex;flex-direction:column;gap:4px}.debug-logger__empty{text-align:center;padding:20px;color:#ffffff80;font-size:12px}.debug-logger__entry{display:flex;gap:8px;padding:6px 8px;border-radius:4px;background:#ffffff0d;border-left:3px solid transparent;word-break:break-word;line-height:1.4}.debug-logger__entry--log{border-left-color:#4caf50}.debug-logger__entry--warn{border-left-color:#ffc107;background:#ffc1071a}.debug-logger__entry--error{border-left-color:#f44336;background:#f443361a}.debug-logger__timestamp{color:#ffffff80;font-size:10px;flex-shrink:0;min-width:70px}.debug-logger__message{flex:1;white-space:pre-wrap}.debug-logger__footer{padding:12px 16px;background:#00000008;border-top:1px solid rgba(0,0,0,.1);display:flex;justify-content:space-between;align-items:center;font-size:12px;margin-top:24px}.debug-logger__copyright{color:#00000080;font-size:12px}.debug-logger__link{color:#667eea;text-decoration:underline;cursor:pointer;font-size:12px;transition:color .2s}.debug-logger__link:hover{color:#5568d3}.debug-logger__link:active{color:#4451b8}.debug-logger__content::-webkit-scrollbar{width:6px}.debug-logger__content::-webkit-scrollbar-track{background:#ffffff0d}.debug-logger__content::-webkit-scrollbar-thumb{background:#667eea80;border-radius:3px}.debug-logger__content::-webkit-scrollbar-thumb:hover{background:#667eeab3}.sites-overlay{position:fixed;inset:0;background:#000000bf;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem;animation:fadeIn .2s ease-out}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.sites-modal{background:linear-gradient(145deg,#1a1a2e,#16213e);border-radius:20px;width:100%;max-width:420px;max-height:80vh;overflow:hidden;box-shadow:0 25px 50px -12px #00000080;animation:slideUp .3s ease-out}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.sites-header{display:flex;align-items:center;justify-content:space-between;padding:1.25rem 1.5rem;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.sites-title{margin:0;font-size:1.25rem;font-weight:600;display:flex;align-items:center;gap:.5rem}.sites-icon{font-size:1.5rem}.sites-close{width:32px;height:32px;border:none;background:#fff3;color:#fff;border-radius:50%;font-size:1.5rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s}.sites-close:hover{background:#ffffff4d}.sites-content{padding:1rem 0;max-height:60vh;overflow-y:auto}.sites-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem 1rem;color:#ffffffb3}.sites-spinner{width:40px;height:40px;border:3px solid rgba(255,255,255,.1);border-top-color:#667eea;border-radius:50%;animation:spin 1s linear infinite;margin-bottom:1rem}.sites-error{display:flex;flex-direction:column;align-items:center;padding:2rem 1rem;text-align:center;color:#ffffffb3}.sites-error-icon{font-size:2.5rem;margin-bottom:.75rem}.sites-retry{margin-top:1rem;padding:.5rem 1.5rem;background:#667eea;color:#fff;border:none;border-radius:8px;font-size:.95rem;cursor:pointer;transition:background .2s}.sites-retry:hover{background:#5567d3}.sites-empty{display:flex;flex-direction:column;align-items:center;padding:3rem 1rem;text-align:center;color:#fff9}.sites-empty-icon{font-size:3rem;margin-bottom:.75rem}.sites-empty-hint{font-size:.85rem;opacity:.7;margin-top:.5rem}.sites-list{list-style:none;margin:0;padding:0}.sites-item{display:flex;align-items:center;padding:1rem 1.5rem;border-bottom:1px solid rgba(255,255,255,.05);transition:background .2s}.sites-item:hover{background:#ffffff08}.sites-item:last-child{border-bottom:none}.sites-item-icon{font-size:1.75rem;margin-right:1rem;flex-shrink:0}.sites-item-info{flex:1;min-width:0}.sites-item-name{font-size:1rem;font-weight:500;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sites-item-address{font-size:.85rem;color:#ffffff80;margin-top:.25rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sites-item-status{width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.875rem;font-weight:600;flex-shrink:0;margin-left:.5rem}.sites-item-status.active{background:#22c55e33;color:#22c55e}.sites-item-status.inactive{background:#ef444433;color:#ef4444}.sites-footer{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1.5rem;border-top:1px solid rgba(255,255,255,.05)}.sites-update-time{font-size:.8rem;color:#fff6}.sites-refresh{width:32px;height:32px;border:none;background:#ffffff1a;border-radius:50%;font-size:1rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s}.sites-refresh:hover:not(:disabled){background:#fff3;transform:rotate(180deg)}.sites-refresh:disabled{opacity:.5;cursor:not-allowed}.schedule-overlay{position:fixed;inset:0;background:#000000bf;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem;animation:fadeIn .2s ease-out}.schedule-modal{background:linear-gradient(145deg,#1a1a2e,#16213e);border-radius:20px;width:100%;max-width:400px;max-height:90vh;overflow:hidden;box-shadow:0 25px 50px -12px #00000080;animation:slideUp .3s ease-out}.schedule-header{display:flex;align-items:center;justify-content:space-between;padding:1.25rem 1.5rem;background:linear-gradient(135deg,#22c55e,#16a34a);color:#fff}.schedule-title{margin:0;font-size:1.25rem;font-weight:600;display:flex;align-items:center;gap:.5rem}.schedule-icon{font-size:1.5rem}.schedule-close{width:32px;height:32px;border:none;background:#fff3;color:#fff;border-radius:50%;font-size:1.5rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s}.schedule-close:hover{background:#ffffff4d}.schedule-work-hours{padding:1rem 1.5rem;background:#ffffff0d;border-bottom:1px solid rgba(255,255,255,.05);text-align:center}.work-hours-label{font-size:.75rem;text-transform:uppercase;letter-spacing:.1em;color:#ffffff80;margin-bottom:.5rem}.work-hours-value{font-size:1.75rem;font-weight:600;color:#fff;font-family:SF Mono,Monaco,Consolas,monospace}.work-hours-separator{margin:0 .5rem;opacity:.5}.work-hours-tolerance{font-size:.75rem;color:#fff6;margin-top:.5rem}.schedule-nav{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.5rem;background:#ffffff08}.schedule-nav-btn{width:36px;height:36px;border:none;background:#ffffff1a;color:#fff;border-radius:50%;font-size:1rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s}.schedule-nav-btn:hover{background:#fff3;transform:scale(1.1)}.schedule-nav-title{font-size:1rem;font-weight:600;color:#fff}.schedule-content{padding:1rem;max-height:50vh;overflow-y:auto}.schedule-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem 1rem;color:#ffffffb3}.schedule-spinner{width:40px;height:40px;border:3px solid rgba(255,255,255,.1);border-top-color:#22c55e;border-radius:50%;animation:spin 1s linear infinite;margin-bottom:1rem}.schedule-error{display:flex;flex-direction:column;align-items:center;padding:2rem 1rem;text-align:center;color:#ffffffb3}.schedule-error-icon{font-size:2.5rem;margin-bottom:.75rem}.schedule-retry{margin-top:1rem;padding:.5rem 1.5rem;background:#22c55e;color:#fff;border:none;border-radius:8px;font-size:.95rem;cursor:pointer;transition:background .2s}.schedule-retry:hover{background:#16a34a}.schedule-empty{display:flex;flex-direction:column;align-items:center;padding:3rem 1rem;text-align:center;color:#fff9}.schedule-empty-icon{font-size:3rem;margin-bottom:.75rem}.schedule-empty-hint{font-size:.85rem;opacity:.7;margin-top:.5rem}.schedule-weekdays{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;margin-bottom:.5rem}.schedule-weekday{text-align:center;font-size:.75rem;font-weight:600;color:#ffffff80;padding:.5rem 0}.schedule-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.schedule-day{aspect-ratio:1;display:flex;flex-direction:column;align-items:center;justify-content:center;border-radius:10px;position:relative;transition:all .2s}.schedule-day--empty{background:transparent}.schedule-day--work{background:#22c55e33;border:1px solid rgba(34,197,94,.3)}.schedule-day--off{background:#ffffff0d;border:1px solid rgba(255,255,255,.1)}.schedule-day--vacation{background:#3b82f633;border:1px solid rgba(59,130,246,.3)}.schedule-day--sick_leave{background:#ef444433;border:1px solid rgba(239,68,68,.3)}.schedule-day--today{box-shadow:0 0 0 2px #22c55e}.schedule-day-num{font-size:.875rem;font-weight:500;color:#fff}.schedule-day--off .schedule-day-num{color:#ffffff80}.schedule-day-icon{font-size:.625rem;position:absolute;bottom:2px}.schedule-legend{display:flex;justify-content:center;gap:1rem;margin-top:1rem;padding-top:1rem;border-top:1px solid rgba(255,255,255,.05)}.legend-item{display:flex;align-items:center;gap:.375rem;font-size:.7rem;color:#fff9}.legend-color{width:12px;height:12px;border-radius:4px}.legend-color--work{background:#22c55e80;border:1px solid rgba(34,197,94,.7)}.legend-color--off{background:#ffffff1a;border:1px solid rgba(255,255,255,.2)}.legend-color--vacation{background:#3b82f680;border:1px solid rgba(59,130,246,.7)}.bottom-nav{position:fixed;bottom:0;left:0;right:0;display:flex;align-items:center;justify-content:space-around;background:linear-gradient(to top,#0f0f23fa,#191937f2);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);padding:.5rem .25rem;padding-bottom:max(.5rem,env(safe-area-inset-bottom));border-top:1px solid rgba(255,255,255,.08);z-index:100}.bottom-nav-item{flex:1;display:flex;flex-direction:column;align-items:center;gap:.25rem;padding:.5rem .25rem;background:transparent;border:none;color:#ffffff80;cursor:pointer;transition:all .2s ease;border-radius:12px;margin:0 .25rem}.bottom-nav-item:hover{color:#ffffffb3;background:#ffffff0d}.bottom-nav-item.active{color:#fff;background:linear-gradient(135deg,#667eea4d,#764ba24d)}.bottom-nav-item.active .bottom-nav-icon{transform:scale(1.1)}.bottom-nav-icon{font-size:1.5rem;line-height:1;transition:transform .2s ease}.bottom-nav-label{font-size:.7rem;font-weight:500;letter-spacing:.02em}.bottom-nav-item:active{transform:scale(.95)}@media(max-width:360px){.bottom-nav-icon{font-size:1.25rem}.bottom-nav-label{font-size:.65rem}}.qr-page{min-height:100vh;display:flex;flex-direction:column;background:var(--bg-primary);color:var(--text-primary);padding:0 0 8rem;box-sizing:border-box;position:relative;overflow-x:hidden}.qr-page__header{padding:max(env(safe-area-inset-top),1.5rem) 1.5rem 1rem;text-align:center;position:relative;z-index:1;background:var(--bg-primary);border-bottom:1px solid var(--border-color)}@media(max-width:480px){.qr-page__header{padding:max(env(safe-area-inset-top),1rem) 1rem .75rem}}.qr-page__title{font-size:1.5rem;font-weight:600;margin:0 0 .25rem;color:var(--text-primary);letter-spacing:-.02em}@media(max-width:480px){.qr-page__title{font-size:1.25rem}}.qr-page__subtitle{font-size:.875rem;color:var(--text-secondary);margin:0;font-weight:400}.qr-page__user{margin-top:1rem;padding:.875rem 1rem;background:var(--bg-secondary);border-radius:12px;border:1px solid var(--border-color)}.qr-page__name{font-size:1rem;font-weight:500;margin-bottom:.25rem;color:var(--text-primary)}.qr-page__id{font-size:.75rem;color:var(--text-tertiary);font-family:SF Mono,Monaco,Consolas,monospace;letter-spacing:-.01em}.qr-page__content{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem 1.5rem 5rem;gap:2rem;position:relative;z-index:1}@media(max-width:480px){.qr-page__content{padding:1.5rem 1rem 4.5rem;gap:1.5rem}}.qr-page__totp-section{width:100%;max-width:420px;margin:0 auto}.qr-page__totp-title{font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:.1em;color:var(--text-tertiary);margin-bottom:.75rem;text-align:center}.qr-page__totp-code{font-size:2.5rem;font-weight:700;font-family:SF Mono,Monaco,Consolas,monospace;color:var(--text-primary);margin:0;text-align:center;letter-spacing:.15em;padding:1.25rem;background:var(--bg-secondary);border-radius:16px;border:1px solid var(--border-color)}@media(max-width:480px){.qr-page__totp-code{font-size:2rem;padding:1rem}}.qr-page__totp-separator{opacity:.3;margin:0 .2em}.qr-page__totp-hint{margin-top:.75rem;font-size:.8125rem;color:var(--text-tertiary);text-align:center;line-height:1.5}.qr-page__permissions{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center;margin-top:1rem;padding:0 1rem}.qr-page__permission{display:inline-flex;align-items:center;gap:.25rem;padding:.5rem .875rem;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:16px;font-size:.75rem;font-weight:500;color:var(--text-secondary)}.qr-page__permission--developer{background:var(--accent-subtle);border-color:var(--accent-subtle);color:var(--text-primary)}.qr-page__footer{display:none}.qr-page__settings,.qr-page__logout{padding:.75rem 1.5rem;background:var(--bg-tertiary);color:var(--text-secondary);border:1px solid var(--border-color);border-radius:10px;cursor:pointer;font-size:.875rem;font-weight:500;transition:all .2s ease;white-space:nowrap;font-family:inherit}.qr-page__settings:active,.qr-page__logout:active{transform:scale(.96)}@media(hover:hover){.qr-page__settings:hover,.qr-page__logout:hover{background:var(--accent-subtle);color:var(--text-primary);transform:translateY(-1px)}}.qr-page__logout{background:var(--error-color);color:#fff;border-color:var(--error-color)}@media(hover:hover){.qr-page__logout:hover{background:#b91c1c;border-color:#b91c1c}}@media(max-width:480px){.qr-page__settings,.qr-page__logout{padding:.625rem 1.25rem;font-size:.8125rem;flex:1;min-width:calc(50% - .5rem)}}@supports (-webkit-touch-callout: none){.qr-page__settings,.qr-page__logout{-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}}.qr-page__dialog-overlay{position:fixed;inset:0;background:#000000d9;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.qr-page__dialog{background:var(--bg-secondary);border-radius:20px;padding:2rem;max-width:400px;width:100%;box-shadow:0 20px 60px #0009;border:1px solid var(--border-color)}.qr-page__dialog h3{margin:0 0 1rem;color:var(--text-primary);font-size:1.375rem;font-weight:600}.qr-page__dialog p{margin:0 0 1.5rem;color:var(--text-secondary);line-height:1.6;font-size:.9375rem}.qr-page__dialog-actions{display:flex;gap:.75rem}.qr-page__dialog-button{flex:1;padding:.875rem;border-radius:10px;cursor:pointer;font-size:.9375rem;font-weight:500;font-family:inherit;border:none;transition:all .2s ease}.qr-page__dialog-button--cancel{background:var(--bg-tertiary);color:var(--text-secondary);border:1px solid var(--border-color)}.qr-page__dialog-button--cancel:hover{background:var(--accent-subtle);color:var(--text-primary)}.qr-page__dialog-button--danger{background:var(--error-color);color:#fff}.qr-page__dialog-button--danger:hover{background:#b91c1c}.qr-page__dialog-button:active{transform:scale(.96)}.qr-page__admin-badge{display:inline-flex;align-items:center;gap:.375rem;padding:.5rem 1rem;background:linear-gradient(135deg,#ffc10733,#ff980033);border:1px solid rgba(255,193,7,.3);border-radius:20px;font-size:.875rem;font-weight:500;color:#ffc107}.onboarding-page{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem 1.5rem max(env(safe-area-inset-bottom),2rem);background:var(--bg-primary);color:var(--text-primary);box-sizing:border-box}@media(max-width:480px){.onboarding-page{padding:1.5rem 1rem max(env(safe-area-inset-bottom),1.5rem)}}.onboarding-page__container{max-width:480px;width:100%;padding:2.5rem 2rem;background:var(--bg-secondary);border-radius:24px;border:1px solid var(--border-color);box-shadow:0 8px 32px #0006}@media(max-width:480px){.onboarding-page__container{padding:2rem 1.5rem;border-radius:20px}}.onboarding-page__title{font-size:1.75rem;font-weight:600;margin:0 0 .5rem;text-align:center;color:var(--text-primary);letter-spacing:-.02em}@media(max-width:480px){.onboarding-page__title{font-size:1.5rem}}.onboarding-page__subtitle{font-size:.9375rem;color:var(--text-secondary);text-align:center;margin:0 0 2rem;line-height:1.5}@media(max-width:480px){.onboarding-page__subtitle{font-size:.875rem;margin-bottom:1.5rem}}.onboarding-page__scanner{margin-bottom:1.5rem;border-radius:16px;overflow:hidden;background:var(--bg-tertiary);border:1px solid var(--border-color);min-height:300px;display:flex;align-items:center;justify-content:center}.onboarding-page__video{width:100%;height:auto;display:block}.onboarding-page__status{margin:1.5rem 0;text-align:center}.onboarding-page__status--loading{color:var(--text-secondary);font-size:.9375rem;animation:pulse 1.5s ease-in-out infinite}.onboarding-page__status--success{color:var(--success-color);font-size:1rem;font-weight:500}.onboarding-page__status--error{color:var(--error-color);font-size:.9375rem;line-height:1.5}.onboarding-page__button{width:100%;padding:.875rem;background:var(--bg-tertiary);color:var(--text-secondary);border:1px solid var(--border-color);border-radius:12px;cursor:pointer;font-size:.9375rem;font-weight:500;transition:all .2s ease;margin-top:1rem;font-family:inherit}@media(hover:hover){.onboarding-page__button:hover{background:var(--accent-subtle);color:var(--text-primary);transform:translateY(-1px)}}.onboarding-page__button:active{transform:translateY(0) scale(.98)}.onboarding-page__button--primary{background:var(--accent-color);color:#fff;border-color:var(--accent-color)}@media(hover:hover){.onboarding-page__button--primary:hover{background:#4338ca;border-color:#4338ca}}.onboarding-page__button:disabled{opacity:.4;cursor:not-allowed;transform:none!important}.onboarding-page__info{margin-top:1.5rem;padding:1rem;background:var(--bg-tertiary);border-radius:12px;border:1px solid var(--border-color)}.onboarding-page__info-title{font-size:.875rem;font-weight:600;color:var(--text-primary);margin:0 0 .5rem}.onboarding-page__info-text{font-size:.8125rem;color:var(--text-secondary);margin:0;line-height:1.5}.onboarding-page__instructions{margin-top:1.5rem;padding:0;list-style:none}.onboarding-page__instruction{display:flex;align-items:flex-start;gap:.75rem;margin-bottom:1rem;font-size:.875rem;color:var(--text-secondary);line-height:1.5}.onboarding-page__instruction-number{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;background:var(--accent-subtle);color:var(--text-primary);font-size:.75rem;font-weight:600;flex-shrink:0}.onboarding-page__progress{width:100%;height:4px;background:var(--bg-tertiary);border-radius:2px;overflow:hidden;margin-bottom:1.5rem}.onboarding-page__progress-bar{height:100%;background:var(--accent-color);transition:width .3s ease;border-radius:2px}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.onboarding-page__container{animation:fadeIn .5s ease-out}.onboarding-page__video-container{position:relative;width:100%;aspect-ratio:1 / 1;max-width:400px;margin:0 auto 1.5rem;border-radius:16px;overflow:hidden;background:var(--bg-tertiary);border:1px solid var(--border-color)}@media(max-width:480px){.onboarding-page__video-container{max-width:320px;border-radius:12px}}.onboarding-page__video{width:100%;height:100%;object-fit:cover;position:absolute;top:0;left:0}.onboarding-page__scan-overlay{position:absolute;inset:0;z-index:10;pointer-events:none;display:flex;align-items:center;justify-content:center}.onboarding-page__scan-frame{position:relative;width:250px;height:250px;border:3px solid var(--accent-color, #4f46e5);border-radius:16px;box-shadow:0 0 0 9999px #00000080,0 0 20px #4f46e580;animation:scan-pulse 2s ease-in-out infinite}@keyframes scan-pulse{0%,to{border-color:var(--accent-color, #4f46e5);box-shadow:0 0 0 9999px #00000080,0 0 20px #4f46e580}50%{border-color:#6366f1;box-shadow:0 0 0 9999px #00000080,0 0 30px #6366f1cc}}.onboarding-page__scan-frame:before,.onboarding-page__scan-frame:after{content:"";position:absolute;width:40px;height:40px;border:4px solid var(--accent-color, #4f46e5)}.onboarding-page__scan-frame:before{top:-3px;left:-3px;border-right:none;border-bottom:none;border-top-left-radius:16px}.onboarding-page__scan-frame:after{bottom:-3px;right:-3px;border-left:none;border-top:none;border-bottom-right-radius:16px}.onboarding-page__scan-frame .corner-tr,.onboarding-page__scan-frame .corner-bl{content:"";position:absolute;width:40px;height:40px;border:4px solid var(--accent-color, #4f46e5)}@media(max-width:480px){.onboarding-page__scan-frame{width:220px;height:220px}.onboarding-page__scan-frame:before,.onboarding-page__scan-frame:after{width:32px;height:32px}}.onboarding-page__scan-line{position:absolute;left:10px;right:10px;height:2px;background:linear-gradient(90deg,transparent,var(--accent-color, #4f46e5),transparent);animation:scan-line 2s linear infinite;border-radius:2px}@keyframes scan-line{0%{top:10px}50%{top:calc(100% - 12px)}to{top:10px}}.onboarding-page__scan-hint{position:absolute;bottom:1.5rem;left:50%;transform:translate(-50%);padding:.625rem 1.25rem;background:#000000d9;color:#fff;border-radius:8px;font-size:.8125rem;font-weight:500;z-index:11;white-space:nowrap;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}@media(max-width:480px){.onboarding-page__scan-hint{font-size:.75rem;padding:.5rem 1rem;bottom:1rem}}.onboarding-page__status--scanning{color:var(--accent-color, #4f46e5);font-weight:500}.onboarding-page__status--processing{color:var(--warning-color, #f59e0b);animation:pulse 1.5s ease-in-out infinite}.onboarding-page__error{margin:1rem 0;padding:1rem;background:#ef44441a;border:1px solid rgba(239,68,68,.3);border-radius:12px;color:var(--error-color, #ef4444);font-size:.875rem;line-height:1.5;text-align:center}.onboarding-page__loader{width:16px;height:16px;border:2px solid transparent;border-top-color:currentColor;border-radius:50%;animation:spin .8s linear infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.6}}.onboarding-page__card{background:var(--bg-secondary);border-radius:16px;border:1px solid var(--border-color);padding:1.5rem;box-shadow:0 4px 16px #0003}@media(max-width:480px){.onboarding-page__card{padding:1rem;border-radius:12px}}.onboarding-page__header{text-align:center;margin-bottom:1.5rem}.onboarding-page__content{max-width:480px;width:100%}.onboarding-page__instructions-title{font-size:.9375rem;font-weight:600;color:var(--text-primary);margin-bottom:1rem}.onboarding-page__instructions-list{list-style:none;padding:0;margin:0 0 1.5rem}.onboarding-page__instructions-item{display:flex;align-items:center;gap:.75rem;padding:.75rem 0;font-size:.875rem;color:var(--text-secondary);border-bottom:1px solid var(--border-color)}.onboarding-page__instructions-item:last-child{border-bottom:none}.onboarding-page__instructions-number{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;min-width:28px;border-radius:50%;background:var(--accent-subtle, rgba(79, 70, 229, .1));color:var(--accent-color, #4f46e5);font-size:.8125rem;font-weight:600}.onboarding-page__button--secondary{background:transparent;border:1px solid var(--border-color);color:var(--text-secondary)}@media(hover:hover){.onboarding-page__button--secondary:hover{border-color:var(--accent-color);color:var(--accent-color)}}.install-page{min-height:100vh;background:linear-gradient(135deg,#667eea,#764ba2);display:flex;align-items:center;justify-content:center;padding:1rem}.install-page__container{background:#fff;border-radius:24px;padding:2rem;max-width:500px;width:100%;box-shadow:0 20px 60px #0000004d}.install-page__header{text-align:center;margin-bottom:2rem}.install-page__icon{font-size:4rem;margin-bottom:1rem;animation:bounce 2s infinite}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.install-page__title{font-size:2rem;font-weight:700;color:#1a1a2e;margin:0 0 .5rem}.install-page__subtitle{font-size:1rem;color:#666;margin:0;line-height:1.5}.install-page__instructions{margin-bottom:2rem}.install-page__instructions-title{font-size:1.5rem;font-weight:600;color:#1a1a2e;margin:0 0 1.5rem;text-align:center}.install-page__steps{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:1.5rem}.install-page__step{display:flex;gap:1rem;align-items:flex-start}.install-page__step-icon{font-size:1.5rem;flex-shrink:0;width:2.5rem;height:2.5rem;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#667eea,#764ba2);border-radius:50%;color:#fff;font-weight:600}.install-page__step-content{flex:1;padding-top:.25rem}.install-page__step-content p{margin:0 0 .75rem;font-size:1rem;line-height:1.6;color:#333}.install-page__step-content strong{color:#667eea;font-weight:600}.install-page__button-example{display:inline-flex;align-items:center;gap:.5rem;padding:.5rem 1rem;background:#f5f5f5;border-radius:8px;font-size:.875rem;color:#333;border:2px solid #e0e0e0;margin-top:.5rem}.install-page__button-example svg{width:20px;height:20px;color:#667eea}.install-page__button-example--secondary{background:#e8f0fe;border-color:#667eea;color:#667eea}.install-page__footer{text-align:center;padding-top:1.5rem;border-top:1px solid #e0e0e0}.install-page__footer-text{margin:0;font-size:.875rem;color:#666;line-height:1.5}@media(max-width:480px){.install-page{padding:.5rem}.install-page__container{padding:1.5rem;border-radius:16px}.install-page__icon{font-size:3rem}.install-page__title{font-size:1.75rem}.install-page__subtitle{font-size:.9375rem}.install-page__instructions-title{font-size:1.25rem}.install-page__step{gap:.75rem}.install-page__step-icon{width:2rem;height:2rem;font-size:1.25rem}.install-page__step-content p{font-size:.9375rem}}.profile-page{min-height:100vh;background:linear-gradient(135deg,#1a1a2e,#0f0f1e);padding:2rem 1rem 12rem;display:flex;flex-direction:column;gap:1.5rem;position:relative}.profile-loading,.profile-error{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;padding:3rem 1rem;color:#fff}.spinner{width:48px;height:48px;border:4px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite}.profile-header{text-align:center;color:#fff;padding:1rem}.profile-avatar{width:100px;height:100px;border-radius:50%;background:linear-gradient(135deg,#f093fb,#f5576c);display:flex;align-items:center;justify-content:center;font-size:3rem;font-weight:700;margin:0 auto 1rem;box-shadow:0 8px 32px #0003}.profile-name{font-size:1.75rem;font-weight:700;margin:.5rem 0}.profile-role{font-size:1.125rem;font-weight:600;opacity:.95;margin:.25rem 0}.profile-position{font-size:1rem;opacity:.85;margin:.5rem 0 0}.profile-info{display:flex;flex-direction:column;gap:1rem}.info-section{background:#1e1e32f2;border-radius:16px;padding:1.25rem;box-shadow:0 4px 16px #0000004d;border:1px solid rgba(255,255,255,.1)}.info-section h2{font-size:1.125rem;font-weight:600;color:#e0e0e0;margin:0 0 1rem;display:flex;align-items:center;gap:.5rem}.info-item{display:flex;justify-content:space-between;align-items:center;padding:.75rem 0;border-bottom:1px solid rgba(255,255,255,.1)}.info-item:last-child{border-bottom:none}.info-label{font-weight:500;color:#999}.info-value{font-weight:600;color:#e0e0e0;text-align:right}.info-id{font-size:.75rem;font-family:monospace;color:#666;word-break:break-all}.info-badge{padding:.375rem .75rem;border-radius:12px;font-size:.875rem;font-weight:600}.info-badge.active{background:#28a74533;color:#4caf50;border:1px solid #4caf50}.info-badge.inactive{background:#dc354533;color:#f44336;border:1px solid #f44336}.info-empty{color:#666;font-style:italic;margin:.5rem 0}.sites-list{display:flex;flex-direction:column;gap:.5rem}.site-item{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:.875rem 1rem;border-radius:12px;font-weight:500;box-shadow:0 2px 8px #0000004d;border:1px solid rgba(255,255,255,.2)}.profile-actions{display:flex;flex-direction:column;gap:.75rem;margin-top:1rem}.btn-reset,.btn-retry{padding:1rem 1.5rem;border:none;border-radius:12px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s;box-shadow:0 4px 16px #0000004d}.btn-reset,.btn-retry{background:#667eea33;color:#667eea;border:2px solid #667eea}.btn-reset:active,.btn-retry:active{transform:scale(.98);box-shadow:0 2px 8px #0000001a}.modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.modal-content{background:#1e1e32;border-radius:16px;padding:2rem;max-width:400px;width:100%;box-shadow:0 8px 32px #00000080;border:1px solid rgba(255,255,255,.1)}.modal-content h2{margin:0 0 1rem;font-size:1.5rem;color:#e0e0e0}.modal-content p{margin:0 0 1.5rem;color:#999;line-height:1.6}.modal-actions{display:flex;gap:.75rem}.btn-cancel,.btn-confirm-reset{flex:1;padding:.875rem 1.5rem;border:none;border-radius:12px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s}.btn-cancel{background:#80808033;color:#999;border:2px solid #666}.btn-confirm-reset{background:#dc35454d;color:#ff6b6b;border:2px solid #dc3545}.btn-cancel:active,.btn-confirm-reset:active{transform:scale(.98)}@media(max-width:400px){.profile-page{padding:1.5rem .75rem}.profile-avatar{width:80px;height:80px;font-size:2.5rem}.profile-name{font-size:1.5rem}.info-section{padding:1rem}.modal-content{padding:1.5rem}}.update-notification{position:fixed;top:20px;left:50%;transform:translate(-50%);z-index:999999;animation:slide-down .4s cubic-bezier(.16,1,.3,1);pointer-events:none}.update-notification--success .update-notification__content{background:#4caf50f2;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px)}.update-notification__content{display:flex;align-items:center;gap:14px;background:#1a1a1af2;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);color:#fff;padding:18px 26px;border-radius:16px;box-shadow:0 8px 32px #0006,0 0 0 1px #ffffff1a;min-width:320px;pointer-events:auto}.update-notification__icon{display:flex;align-items:center;justify-content:center;width:40px;height:40px;background:#ffffff26;border-radius:50%;font-size:22px;flex-shrink:0}.update-notification__spinner{width:40px;height:40px;border:3px solid rgba(255,255,255,.2);border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite;flex-shrink:0}@keyframes spin{to{transform:rotate(360deg)}}.update-notification__text{flex:1;min-width:0}.update-notification__title{font-size:16px;font-weight:600;margin-bottom:4px;letter-spacing:-.01em}.update-notification__message{font-size:13px;opacity:.85;font-weight:500}@keyframes slide-down{0%{opacity:0;transform:translate(-50%) translateY(-30px) scale(.95)}to{opacity:1;transform:translate(-50%) translateY(0) scale(1)}}.update-notification--success{animation:slide-down .4s cubic-bezier(.16,1,.3,1),fade-out .3s ease-in 2.7s forwards}@keyframes fade-out{to{opacity:0;transform:translate(-50%) translateY(-20px) scale(.95)}}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#root{min-height:100vh}
