.confirm-overlay{position:fixed;inset:0;background:var(--overlay);display:flex;align-items:center;justify-content:center;z-index:1000}.confirm-modal{width:min(420px,90vw);background:var(--panel);color:var(--text);border-radius:8px;padding:20px 22px;box-shadow:0 20px 60px var(--shadow);border:1px solid var(--border);animation:confirm-in .15s ease-out}.confirm-modal h3{margin:0 0 8px;font-size:16px}.confirm-message{font-size:14px;color:var(--muted);line-height:1.5;margin:0 0 20px}.confirm-actions{display:flex;justify-content:flex-end;gap:8px}@keyframes confirm-in{0%{opacity:0;transform:translateY(6px) scale(.98)}to{opacity:1;transform:none}}.theme-switch{position:relative;width:52px;height:32px;border-radius:8px;border:none;background:var(--soft-2);cursor:pointer;padding:4px;outline:none;display:inline-flex;align-items:center;transition:all .3s cubic-bezier(.4,0,.2,1);box-shadow:inset 0 2px 4px #0000000d}.theme-switch:hover{background:var(--muted)}.theme-switch:focus-visible{box-shadow:0 0 0 2px var(--focus)}.theme-switch .thumb{width:24px;height:24px;border-radius:8px;background:var(--panel);color:var(--text);display:grid;place-items:center;font-size:14px;box-shadow:0 2px 4px #0000001a;transition:transform .3s cubic-bezier(.34,1.56,.64,1);z-index:10;-webkit-user-select:none;user-select:none}.theme-switch.dark .thumb{transform:translate(20px);background:var(--white);color:var(--text)}.theme-switch:active .thumb{transform:scale(.9)}.theme-switch.dark:active .thumb{transform:translate(20px) scale(.9)}.user-menu{position:relative;display:inline-flex}.user-menu__trigger{border:1px solid transparent;background:var(--soft);border-radius:8px;padding:0;cursor:pointer;transition:all .2s cubic-bezier(.4,0,.2,1)}.user-menu__trigger:hover{background:var(--soft-2);transform:scale(1.05)}.user-menu__trigger:focus-visible{outline:none;box-shadow:0 0 0 2px var(--focus)}.user-menu__trigger[aria-expanded=true]{background:var(--soft-2);box-shadow:0 0 0 2px var(--focus)}.user-menu__avatar{width:40px;height:28px;border-radius:8px;display:grid;place-items:center;font-weight:600;font-size:14px;background:var(--primary);color:var(--primary-text);box-shadow:0 2px 4px #0000001a}.user-menu__panel{width:100%}.user-menu__header{padding:16px;background:var(--soft);border-bottom:1px solid var(--border)}.user-menu__email{font-size:14px;font-weight:600;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-menu__role{display:inline-flex;margin-top:4px;font-size:12px;font-weight:700;padding:2px 8px;border-radius:8px;background:var(--soft-2);color:var(--muted);text-transform:uppercase;letter-spacing:.05em}.user-menu__role.admin{background:var(--primary);color:var(--primary-text)}.user-menu__items{padding:6px;display:flex;flex-direction:column;gap:2px}.user-menu__item{width:100%;text-align:left;border:none;background:transparent;color:var(--text);padding:10px 12px;border-radius:8px;cursor:pointer;font-size:14px;font-weight:500;text-decoration:none;transition:all .15s ease;display:flex;align-items:center}.user-menu__item:hover{background:var(--soft);color:var(--primary)}.user-menu__item:active{transform:scale(.98)}.user-menu__item.danger{color:var(--danger-text)}.user-menu__item.danger:hover{background:var(--danger-bg)}.mobile-nav{position:fixed;bottom:6px;left:2px;right:2px;height:70px;background:rgba(var(--bg-rgb),.85);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.1);border-radius:20px;display:flex;justify-content:space-evenly;align-items:center;z-index:1000;box-shadow:0 8px 32px #0003;padding:0 12px}@media(min-width:769px){.mobile-nav{display:none}}.mobile-nav .mobile-nav-item{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-decoration:none;color:var(--muted);font-size:16px;font-weight:500;max-width:130px;border-radius:12px;transition:all .2s cubic-bezier(.4,0,.2,1);position:relative}.mobile-nav .mobile-nav-item .icon{font-size:4px;transition:transform .3s cubic-bezier(.34,1.56,.64,1);filter:grayscale(100%) opacity(.7)}.mobile-nav .mobile-nav-item.is-active{color:var(--primary)}.mobile-nav .mobile-nav-item.is-active .icon{transform:translateY(-2px) scale(1);filter:grayscale(0%) opacity(1)}.mobile-nav .mobile-nav-item.is-active:after{content:"";position:absolute;bottom:8px;width:4px;height:4px;background:var(--primary);border-radius:50%;opacity:1;transform:scale(1);transition:transform .3s cubic-bezier(.34,1.56,.64,1)}.mobile-nav .mobile-nav-item:active{transform:scale(.92)}.menu-wrap{position:relative;display:inline-flex}.menu{position:fixed;width:180px;background:var(--panel);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid var(--border);border-radius:8px;box-shadow:var(--shadow),0 10px 14px -3px #0000000d;overflow:hidden;z-index:9999;padding:6px;display:flex;flex-direction:column;gap:2px;animation:menu-pop .2s cubic-bezier(.16,1,.3,1)}@keyframes menu-pop{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.menu.right{transform-origin:top right}.menu.left{transform-origin:top left}.menu.center{transform-origin:top center}.menu-item{width:100%;text-align:left;border:none;background:transparent;color:var(--text);padding:10px 12px;border-radius:8px;cursor:pointer;font-size:14px;font-weight:500;text-decoration:none;transition:all .15s ease;display:flex;align-items:center}.menu-item:hover{background:var(--soft)}.menu-item:active{transform:scale(.98)}.menu-item:disabled{opacity:.55;cursor:default}.menu-item:disabled:active{transform:none}.menu-item.danger{color:var(--danger-text)}.menu-item.danger:hover{background:var(--danger-bg)}*{box-sizing:border-box}html,body,#root{height:100%;overflow-x:hidden}@media(min-width:681px){html,body,#root{overflow:hidden}}body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;background:var(--bg);color:var(--text);line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}::selection{background:var(--primary);color:var(--primary-text)}a{color:inherit;text-decoration:none;transition:color .2s ease}input,textarea,select,button{font-family:inherit}input,textarea,select{background:var(--panel);color:var(--text);border:1px solid var(--border);outline:none;border-radius:8px;padding:10px 14px;font-size:14px;transition:all .14s ease}input::placeholder,textarea::placeholder,select::placeholder{color:var(--muted)}input:focus,textarea:focus,select:focus{border-color:var(--primary);background:var(--panel);box-shadow:0 0 0 2px var(--focus)}input:hover:not(:focus),textarea:hover:not(:focus),select:hover:not(:focus){border-color:var(--soft-2)}input.error,textarea.error,select.error{border-color:var(--danger-border);box-shadow:0 0 0 1px var(--danger-border)}input.error:focus,textarea.error:focus,select.error:focus{box-shadow:0 0 0 3px #ef444433}*::-webkit-scrollbar{width:8px;height:8px}*::-webkit-scrollbar-track{background:transparent}*::-webkit-scrollbar-thumb{background:var(--border);border-radius:8px;transition:background .2s ease}*::-webkit-scrollbar-thumb:hover{background:var(--muted)}*{scrollbar-width:thin;scrollbar-color:var(--soft-2) transparent}:root{--bg: #121212;--panel: #1e1e1e;--soft: #2c2c2c;--soft-2: #383838;--white: #ffffff;--text: #d3cdcd;--secondery-text: #b0b0b0;--muted: #c3c2c2;--border: #3c3c3c;--shadow: 0 4px 8px rgba(0, 0, 0, .5);--overlay: rgba(0, 0, 0, .7);--primary: #84aedd;--primary-bg: color-mix(in srgb, var(--primary) 16%, var(--bg));--primary-border: #d5d5d53d;--primary-text: #000000;--primary-hover: #74a9ffdb;--gold: goldenrod;--focus: #cddef14f;--success-bg: #6b6d6e5c;--success-border: #86d8fcdb;--success-text: #81c784;--info-bg: #3f4247db;--info-border: #86d8fcdb;--info-text: #90caf9;--danger-bg: color-mix(in srgb, #66a5eb 25%, var(--bg));--danger-border: #86d8fcdb;--danger-text: #e57373}[data-theme=light]{--bg: #f7f7f8;--panel: #ffffff;--soft: #f1f1f2;--soft-2: #e9e9eb;--text: #111113;--secondery-text: #111113bb;--muted: #6b6b73;--primary: #007aff;--info-bg: color-mix(in srgb, var(--primary) 8%, var(--bg));--info-border: #86d8fcdb;--info-text: #90caf9;--primary-bg: color-mix(in srgb, var(--primary) 8%, var(--bg));--primary-hover: #007affe8;--primary-border: #86d8fcdb;--primary-text: #ececec;--border: #e3e3e6;--shadow: rgba(0, 0, 0, .08);--overlay: rgba(0, 0, 0, .35);--gold: gold;--focus: rgba(0, 0, 0, .12);--danger-bg: rgba(220, 38, 38, .08);--danger-border: rgba(220, 38, 38, .18);--danger-text: #991b1b}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.primary-btn,.btn-primary{display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:8px;padding:10px 20px;font-weight:500;font-size:14px;letter-spacing:.01em;cursor:pointer;-webkit-user-select:none;user-select:none;border:1px solid transparent;transition:all .2s cubic-bezier(.4,0,.2,1)}.primary-btn:active,.btn-primary:active{transform:scale(.97)}.primary-btn:disabled,.btn-primary:disabled{opacity:.5;cursor:not-allowed;transform:none}.primary-btn,.btn-primary{background:var(--primary);color:var(--primary-text);box-shadow:0 2px 4px #6366f133}.primary-btn:hover:not(:disabled),.btn-primary:hover:not(:disabled){background:var(--primary-hover);box-shadow:0 4px 8px #6366f14d;transform:translateY(-1px)}.secondary-btn,.btn-secondary,.btn-outline{display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:8px;padding:10px 20px;font-weight:500;font-size:14px;letter-spacing:.01em;cursor:pointer;-webkit-user-select:none;user-select:none;border:1px solid transparent;transition:all .2s cubic-bezier(.4,0,.2,1)}.secondary-btn:active,.btn-secondary:active,.btn-outline:active{transform:scale(.97)}.secondary-btn:disabled,.btn-secondary:disabled,.btn-outline:disabled{opacity:.5;cursor:not-allowed;transform:none}.secondary-btn,.btn-secondary,.btn-outline{background:var(--panel);color:var(--text);border-color:var(--border)}.secondary-btn:hover:not(:disabled),.btn-secondary:hover:not(:disabled),.btn-outline:hover:not(:disabled){background:var(--soft);border-color:var(--soft-2)}.danger-btn,.btn-danger{display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:8px;padding:10px 20px;font-weight:500;font-size:14px;letter-spacing:.01em;cursor:pointer;-webkit-user-select:none;user-select:none;border:1px solid transparent;transition:all .2s cubic-bezier(.4,0,.2,1)}.danger-btn:active,.btn-danger:active{transform:scale(.97)}.danger-btn:disabled,.btn-danger:disabled{opacity:.5;cursor:not-allowed;transform:none}.danger-btn,.btn-danger{background:var(--danger-bg);border-color:var(--danger-border);color:var(--danger-text)}.danger-btn:hover:not(:disabled),.btn-danger:hover:not(:disabled){background:var(--danger-bg);border-color:var(--danger-border)}.text-btn{background:none;border:none;padding:6px 10px;font-size:14px;font-weight:500;color:var(--text);cursor:pointer;transition:all .2s ease;display:inline-flex;align-items:center;gap:6px}.text-btn:hover:not(:disabled){background:var(--soft);color:var(--text)}.text-btn:focus-visible{outline:none;box-shadow:0 0 0 2px var(--focus)}.text-btn.danger{color:var(--danger-text)}.text-btn.danger:hover:not(:disabled){background:var(--danger-bg)}.text-btn:disabled{opacity:.5;cursor:not-allowed}.icon-btn{padding:8px;border-radius:8px;background:transparent;color:var(--text)}.icon-btn:hover{background:var(--soft)}.icon-btn.active{background:var(--soft);color:var(--primary);animation:pop .3s cubic-bezier(.175,.885,.32,1.275)}@keyframes pop{0%{transform:scale(.9)}50%{transform:scale(1.1)}to{transform:scale(1)}}.app-layout{min-height:100vh;display:flex;flex-direction:column;background:var(--bg);color:var(--text)}.app-layout header{position:sticky;top:0;z-index:100;display:flex;justify-content:space-between;align-items:center;background:var(--bg);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--border);padding:16px 32px;gap:16px;transition:all .3s ease}.app-layout header .header-title{display:flex;align-items:center;gap:8px;margin:0;color:var(--text);font-size:24px;letter-spacing:-.02em;white-space:nowrap}.app-layout header nav{display:flex;gap:8px;background:var(--soft);padding:4px;border-radius:8px}.app-layout header nav a{text-decoration:none;color:var(--secondery-text);padding:6px 16px;border-radius:8px;font-weight:500;font-size:14px;transition:all .2s ease}.app-layout header nav a:hover{background:var(--panel)}.app-layout header nav a.is-active,.app-layout header nav a[aria-current=page]{background:var(--panel);color:var(--primary);box-shadow:0 1px 3px #0000001a}.app-layout header .header-right{display:flex;align-items:center;gap:16px}.app-layout main{flex:1;display:flex;flex-direction:column;padding:0;animation:fadeIn .4s ease-out}.app-layout .footer{padding:24px;background:var(--bg);border-top:1px solid var(--border);font-size:14px;color:var(--muted);text-align:center}@keyframes fadeIn{0%{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}@media(max-width:767px){.app-layout{padding-bottom:64px}.app-layout header{padding:12px 16px;flex-direction:column;gap:12px;align-items:stretch}.app-layout header .header-title{text-align:center;font-size:18px;justify-content:center}.app-layout header nav{display:none}.app-layout header .header-right{justify-content:center}}.page-loader{display:flex;justify-content:center;align-items:center;height:200px;color:var(--muted)}.mobile-floating-close{display:flex;position:fixed;bottom:140px;right:0;z-index:9999;align-items:center;justify-content:center;padding:12px 8px 12px 10px;background:color-mix(in srgb,var(--primary) 95%,transparent);border:1px solid rgba(255,255,255,.15);border-right:0;border-radius:12px 0 0 12px;box-shadow:-2px 4px 16px #00000040;color:var(--bg);cursor:pointer}.mobile-floating-close svg{width:20px;height:20px}.statusbar{position:fixed;left:50%;bottom:24px;transform:translate(-50%);z-index:1000;width:min(92vw,460px);background:var(--panel);border:1px solid var(--border);border-radius:8px;box-shadow:0 12px 40px var(--shadow);animation:slideUpFade .18s ease-out}.statusbar-inner{display:flex;padding:12px}.statusbar-inner .statusbar-icon{padding-right:12px}.statusbar-content{display:flex;align-items:flex-start;gap:14px;padding:14px 16px}.statusbar:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;border-radius:8px 0 0 8px}.statusbar-success{border-color:var(--success-border);background:linear-gradient(to right,var(--success-bg),var(--panel) 40%)}.statusbar-success:before{background:var(--success-border)}.statusbar-success .statusbar-title{color:var(--success-text)}.statusbar-error{border-color:var(--danger-border);background:linear-gradient(to right,var(--danger-bg),var(--panel) 40%)}.statusbar-error:before{background:var(--danger-border)}.statusbar-error .statusbar-title{color:var(--danger-text)}.statusbar-info{border-color:var(--info-border);background:linear-gradient(to right,var(--info-bg),var(--panel) 40%)}.statusbar-info:before{background:var(--info-border)}.statusbar-info .statusbar-title{color:var(--info-text)}.statusbar-text{flex:1}.statusbar-title{font-weight:600;margin-bottom:2px}.statusbar-message{color:var(--secondery-text);line-height:1.4}.statusbar-actions{display:flex;align-items:center;gap:8px}.statusbar-action{background:none;border:none;color:var(--primary);font-weight:500;cursor:pointer}.statusbar-close{background:var(--soft);border:none;border-radius:8px;padding:4px 8px;cursor:pointer;color:var(--muted)}@keyframes slideUpFade{0%{opacity:0;transform:translate(-50%) translateY(8px)}to{opacity:1;transform:translate(-50%) translateY(0)}}
