html:has([aria-modal=true]){overflow:hidden!important}html:has([aria-modal=true]) body{overflow:hidden!important}[aria-modal=true],[aria-modal=true] *{overscroll-behavior:contain}.fk-modal-backdrop{z-index:3000;background:#0000008c;justify-content:center;align-items:center;padding:24px;animation:.15s ease-out fk-fade;display:flex;position:fixed;inset:0}.fk-modal{background:var(--bg-card);width:100%;max-width:560px;max-height:calc(100dvh - 48px);color:var(--text);border:1px solid var(--border);text-align:left;border-radius:12px;outline:none;flex-direction:column;animation:.18s cubic-bezier(.2,0,.2,1) fk-pop;display:flex;position:relative;box-shadow:0 16px 48px #00000073}.fk-modal-sm{max-width:420px}.fk-modal-lg{max-width:880px}.fk-modal-head{padding:18px 56px 0 20px}.fk-modal-title{color:var(--text);margin:0;font-size:1.1429rem;font-weight:700;line-height:1.35}.fk-modal-body{min-height:0;color:var(--text-secondary);flex:1;padding:12px 20px 20px;line-height:1.55;overflow-y:auto}.fk-modal-notitle .fk-modal-body{padding-top:52px}.fk-modal-foot{border-top:1px solid var(--border);background:var(--bg-surface);border-radius:0 0 12px 12px;flex-wrap:wrap;justify-content:flex-end;gap:8px;padding:12px 20px;display:flex}.fk-modal-x{z-index:5;border:1px solid var(--border);background:var(--bg-card);width:32px;height:32px;color:var(--text-muted);cursor:pointer;transition:background var(--transition,.15s ease), color var(--transition,.15s ease);border-radius:999px;justify-content:center;align-items:center;padding:0;display:inline-flex;position:absolute;top:12px;right:12px}.fk-modal-x:hover:not(:disabled){background:var(--bg-hover);color:var(--text)}.fk-modal-x:disabled{opacity:.5;cursor:default}.fk-modal-x:focus-visible{outline:2px solid var(--purple);outline-offset:2px}@keyframes fk-fade{0%{opacity:0}to{opacity:1}}@keyframes fk-pop{0%{opacity:0;transform:translateY(8px)scale(.98)}to{opacity:1;transform:none}}@keyframes fk-rise{0%{transform:translateY(100%)}to{transform:none}}.fk-btn{border:1px solid var(--border);border-radius:var(--radius,8px);background:var(--bg-surface);min-height:38px;color:var(--text);white-space:nowrap;cursor:pointer;transition:background var(--transition,.15s ease), opacity var(--transition,.15s ease);justify-content:center;align-items:center;gap:8px;padding:8px 18px;font-family:inherit;font-size:.9286rem;font-weight:600;display:inline-flex}.fk-btn:hover:not(:disabled){background:var(--bg-hover)}.fk-btn:disabled{opacity:.5;cursor:not-allowed}.fk-btn:focus-visible{outline:2px solid var(--purple);outline-offset:2px}.fk-btn-primary{background:var(--purple);border-color:var(--purple);color:#fff}.fk-btn-primary:hover:not(:disabled){background:var(--purple);opacity:.9}.fk-btn-danger{background:var(--red);border-color:var(--red);color:#fff}.fk-btn-danger:hover:not(:disabled){background:var(--red);opacity:.9}.fk-input{border:1px solid var(--border);border-radius:var(--radius,8px);background:var(--bg-input);width:100%;color:var(--text);font:inherit;padding:9px 12px}.fk-input:focus{border-color:var(--purple);outline:none}.fk-confirm-msg{white-space:pre-line;margin:0}.fk-confirm-type{color:var(--text-muted);flex-direction:column;gap:6px;margin-top:14px;font-size:.8571rem;display:flex}.fk-confirm-type strong{color:var(--text);font-weight:700}.fk-status .fk-modal-body{text-align:center;padding-top:24px}.fk-status-icon{border-radius:50%;justify-content:center;align-items:center;width:48px;height:48px;margin-bottom:10px;display:inline-flex}.fk-status-success .fk-status-icon{color:var(--green);background:var(--bg-highlight-green)}.fk-status-error .fk-status-icon{color:var(--red);background:#c26b6b29}.fk-status-info .fk-status-icon{color:var(--purple);background:#6b5cc729}.fk-status-title{color:var(--text);margin:0 0 6px;font-size:1.1429rem;font-weight:700}.fk-status-msg{white-space:pre-line;margin:0}.fk-status .fk-modal-foot{justify-content:center}.fk-ld{vertical-align:middle;align-items:center;gap:8px;max-width:100%;display:inline-flex}.fk-ld-center{width:100%;color:var(--text-muted);justify-content:center;padding:24px 0;display:flex}.fk-ld-spin{opacity:.75;border:2px solid;border-right-color:#0000;border-radius:50%;flex:none;animation:.8s linear infinite fk-spin;display:inline-block}.fk-ld-text{min-width:0}@keyframes fk-spin{to{transform:rotate(360deg)}}.fk-busy{align-items:center;gap:8px;display:inline-flex}.fk-savebar{z-index:60;background:var(--bg-card);border-top:1px solid var(--border);flex-wrap:wrap;justify-content:center;align-items:center;gap:12px;padding:10px 20px;animation:.18s ease-out fk-rise;display:flex;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -4px 16px #00000040}@media (width>=901px){.app-layout.is-sidebar-open .fk-savebar{left:220px}}body:has(.fk-savebar) .main-content{padding-bottom:96px}.fk-savebar-dirty{color:var(--orange);align-items:center;gap:6px;font-size:.8571rem;font-weight:600;display:inline-flex}.fk-savebar-dot{background:currentColor;border-radius:50%;width:8px;height:8px}.fk-savebar-reason{color:var(--text-muted);font-size:.8571rem}.fk-savebar-actions{gap:8px;display:inline-flex}@media (width<=600px){.fk-modal-backdrop{padding:12px}.fk-modal{max-height:calc(100dvh - 24px)}.fk-modal-head{padding:16px 52px 0 16px}.fk-modal-body{padding:10px 16px 16px}.fk-modal-foot{padding:12px 16px}.fk-modal-foot .fk-btn{flex:auto}.fk-savebar{gap:8px;padding:10px 12px}}@media (prefers-reduced-motion:reduce){.fk-ld-spin{animation-duration:2.4s}.fk-modal-backdrop,.fk-modal,.fk-savebar{animation:none}}
