@keyframes modal-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}:root{--bg-0:#0f0f10;--bg-1:#141416;--bg-2:#1b1c1f;--border:#2a2b2f;--text:#e5e7eb;--text-muted:#a1a1aa;--accent:#e11d48;--accent-600:#be123c;--accent-700:#9f1239;--success:#22c55e;--warning:#f59e0b;--danger:#ef4444;--focus:#c026d3;--radius:10px;--shadow:0 2px 10px #00000080;--safe-top:env(safe-area-inset-top,0px);--safe-right:env(safe-area-inset-right,0px);--safe-bottom:env(safe-area-inset-bottom,0px);--safe-left:env(safe-area-inset-left,0px);--vh:1vh}*{box-sizing:border-box;scrollbar-color:var(--border) #0000;scrollbar-width:thin}.btn,body{color:var(--text)}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-text-size-adjust:100%;background:var(--bg-0);font-family:Mulish,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;margin:0;overscroll-behavior-y:contain;padding-bottom:var(--safe-bottom);padding-top:var(--safe-top)}code{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}button{font-family:inherit}.btn{align-items:center;background:var(--bg-2);border:1px solid var(--border);border-radius:8px;cursor:pointer;display:inline-flex;gap:8px;justify-content:center;padding:10px 14px;transition:background .15s ease,border-color .15s ease,transform .05s ease}.btn:hover{background:#212226}.btn:active{transform:translateY(1px)}.btn:disabled{cursor:not-allowed;opacity:.6}.btn-primary{background:var(--accent);border-color:var(--accent-600)}.btn-primary:hover{background:var(--accent-600);border-color:var(--accent-700)}.btn-secondary{background:var(--bg-2);border-color:var(--border)}.btn-secondary:hover{background:#212226}.btn-danger{background:var(--danger);border-color:#b91c1c}.btn-danger:hover{background:#dc2626}.btn-success{background:var(--success);border-color:#16a34a}.btn-success:hover{background:#16a34a}input,input[type=color],select,textarea{background:var(--bg-2);border:1px solid var(--border)}input,select,textarea{border-radius:8px;color:var(--text);outline:0;padding:10px 12px;width:100%}input[type=color]{border-radius:6px;cursor:pointer;height:28px;padding:0;width:44px}input[type=color]::-webkit-color-swatch-wrapper{padding:2px}input[type=color]::-webkit-color-swatch{border:1px solid var(--border);border-radius:4px}input[type=number]{padding-right:28px}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{-webkit-appearance:inner-spin-button;cursor:pointer;filter:invert(1) opacity(.85);height:auto;margin:0;opacity:.8;-webkit-transition:opacity .15s ease,filter .15s ease,transform .05s ease;transition:opacity .15s ease,filter .15s ease,transform .05s ease}input[type=number]:hover::-webkit-inner-spin-button,input[type=number]:hover::-webkit-outer-spin-button{filter:invert(1);opacity:.95}input[type=number]:active::-webkit-inner-spin-button,input[type=number]:active::-webkit-outer-spin-button{transform:translateY(.2px)}.form-actions{align-items:center;display:flex;flex-wrap:wrap;gap:8px}input::placeholder,textarea::placeholder{color:var(--text-muted)}input:focus,select:focus,textarea:focus{border-color:var(--accent-600);box-shadow:none}.card{background:var(--bg-1);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow)}::-webkit-scrollbar{height:10px;width:10px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border);background-clip:padding-box;border:2px solid #0000;border-radius:8px}::-webkit-scrollbar-thumb:hover{background:var(--accent-600)}::-webkit-scrollbar-thumb:active{background:var(--accent)}::-webkit-scrollbar-corner{background:0 0}.muted{color:var(--text-muted)}.modal-overlay{align-items:center;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#0000008c;display:flex;inset:0;justify-content:center;padding:16px;position:fixed;z-index:1000}.modal{animation:modal-in .16s ease-out;background:var(--bg-1);border:1px solid var(--border);border-radius:12px;box-shadow:0 20px 60px #00000080;display:flex;flex-direction:column;max-height:90vh;max-width:560px;overflow:hidden;width:100%}.modal-header{align-items:center;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;padding:14px 16px}.modal-body{flex:1 1 auto;min-height:0;overflow-y:auto;padding:14px 16px}.modal-footer{border-top:1px solid var(--border);display:flex;gap:8px;justify-content:flex-end;padding:12px 16px}.modal-close{background:0 0;border:0;color:var(--text-muted);cursor:pointer}.tag,input[type=checkbox]{background:var(--bg-2);border:1px solid var(--border)}.material-symbols-outlined,.tag{align-items:center;display:inline-flex;line-height:1}.tag{border-radius:999px;color:var(--text);font-size:12px;gap:6px;padding:4px 8px}.material-symbols-outlined{font-feature-settings:"liga";-webkit-font-smoothing:antialiased;direction:ltr;font-family:Material Symbols Outlined;font-size:20px;font-style:normal;font-weight:400;justify-content:center;letter-spacing:normal;text-transform:none;vertical-align:middle;white-space:nowrap}.btn .material-symbols-outlined{font-size:18px}input[type=checkbox]{appearance:none;-webkit-appearance:none;-moz-appearance:none;border-radius:4px;box-sizing:border-box;cursor:pointer;display:inline-block;height:18px;margin:0;padding:0;position:relative;transition:background .15s ease,border-color .15s ease,box-shadow .15s ease;vertical-align:-2px;width:18px}input[type=checkbox]:hover{border-color:var(--accent-600)}input[type=checkbox]:focus-visible{border-color:var(--accent-600);box-shadow:0 0 0 3px #be123c40}input[type=checkbox]:checked{background:var(--accent);border-color:var(--accent-600)}input[type=checkbox]:checked:after{color:#fff;content:"✓";display:inline-block;font-size:12px;left:50%;line-height:1;position:absolute;text-align:center;top:50%;transform:translate(-50%,-50%);width:100%}input[type=checkbox][disabled]{cursor:not-allowed;opacity:.6}input[type=checkbox]:indeterminate{background:var(--accent);border-color:var(--accent-600)}input[type=checkbox]:indeterminate:after{background:#fff;border-radius:1px;content:"";height:2px;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);width:10px}.checkbox-label,.permission-label{align-items:center;cursor:pointer;display:inline-flex;gap:8px;line-height:1;min-height:20px;-webkit-user-select:none;user-select:none}.checkbox-label input[type=checkbox],.permission-label input[type=checkbox]{flex:0 0 auto}.checkbox-label input[type=checkbox]{margin-right:8px;position:relative;top:1px}.permission-label input[type=checkbox]{position:relative;top:2px}.permission-label input[type=checkbox]:checked:after{transform:translate(-50%,-52%)}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}}@media (max-width:700px){.btn{padding:9px 12px}input,select,textarea{font-size:14px;padding:10px}.form-actions{flex-wrap:wrap;gap:8px}}@supports (height:100dvh){:root{--vh:1dvh}}#root,body,html{height:100%}.login-container{align-items:center;background:radial-gradient(1200px 600px at 50% -10%,#fe6e6e14,#0000),var(--bg-0);display:flex;justify-content:center;min-height:100vh;padding:16px;padding-bottom:calc(16px + var(--safe-bottom))}.login-card{background:var(--bg-1);border:1px solid var(--border);border-radius:12px;box-shadow:0 10px 24px #00000059;padding:20px;width:min(92vw,380px)}.login-header{color:var(--text);text-align:center}.login-header .logo-icon{color:var(--accent);font-size:36px}.login-header h1{font-size:20px;margin:8px 0 4px}.login-header p{color:var(--text-muted);font-size:13px;margin:0}.login-form{display:grid;gap:12px;margin-top:16px}.login-form label{display:grid;gap:6px}.login-form span{color:var(--text-muted);font-size:12px}.login-form input{background:var(--bg-2);border:1px solid var(--border);border-radius:8px;color:var(--text);outline:0;padding:10px 12px}.login-form input:focus{border-color:var(--accent);box-shadow:0 0 0 2px #6ea8fe26}.login-error{background:#ff7a7a14;border:1px solid #ff7a7a40;border-radius:8px;color:var(--danger);font-size:13px;padding:8px 10px}.login-button{background:var(--accent);border:0;border-radius:8px;color:#0b1220;cursor:pointer;font-weight:800;padding:12px}.login-button:disabled{cursor:default;opacity:.6}.login-footer{color:var(--text-muted);font-size:12px;margin-top:10px;text-align:center}@media (max-width:700px){.login-header h1{font-size:18px}.login-form{gap:10px}.login-button{padding:11px 12px}}