.modal-overlay{z-index:9999;background:#0006;justify-content:center;align-items:flex-start;padding-top:15vh;display:flex;position:fixed;inset:0}.modal-overlay-centered{align-items:center;padding-top:0}.modal-w-sm{width:400px}.modal-w-md{width:520px}.modal-w-lg{width:700px}.modal{--modal-px:16px;background:var(--surface);border-radius:var(--r-lg);border:1px solid var(--border-soft);padding:12px var(--modal-px);flex-direction:column;max-width:90vw;max-height:90vh;display:flex;position:relative;overflow:hidden}.modal-header-unified{justify-content:space-between;align-items:center;gap:12px;padding-bottom:16px;display:flex}.modal-header-unified .icon-btn{flex-shrink:0;padding:2px}.modal-back{appearance:none;cursor:pointer;border-radius:var(--r-sm);color:var(--text-2);background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;padding:4px;display:flex}.modal-back:hover{color:var(--text-1)}.modal-header-border{border-bottom:1px solid var(--border-soft);margin:-12px calc(-1 * var(--modal-px)) 12px;padding:12px var(--modal-px) 12px}.modal-header-content{min-width:0;font-size:var(--font-size-l);font-weight:var(--font-weight-m);line-height:var(--line-height-condensed);color:var(--grey-900);flex:1;margin:0}.modal-body{flex-direction:column;flex:1;gap:16px;min-height:0;display:flex}.modal-body-scrollable{margin-right:calc(-1 * var(--modal-px) + 2px)}.modal-body-scrollable .scroll-area-viewport{padding-right:calc(var(--modal-px) - 2px)}.modal-actions-unified{justify-content:flex-end;align-items:center;gap:6px;padding-top:16px;display:flex}.modal-close-standalone{align-self:flex-end}.modal-kv-grid{grid-template-columns:auto 1fr;gap:6px 16px;display:grid}.modal-confirm-message{font-size:var(--font-size-m);line-height:var(--line-height-condensed);color:var(--grey-700);margin:0}.modal-error{border-radius:var(--r);background:var(--red-soft);color:var(--red);margin:0;padding:10px 14px;font-size:13px}.modal-btn-cancel{border-radius:var(--r);border:1px solid var(--border);color:var(--text-2);cursor:pointer;transition:all .15s var(--ease);background:0 0;padding:6px 12px;font-size:13px;font-weight:500}.modal-btn-cancel:hover{background:var(--surface-dim)}.modal-btn-submit{border-radius:var(--r);background:var(--accent);color:#fff;cursor:pointer;transition:background .15s var(--ease);border:1px solid #0000;padding:6px 12px;font-size:13px;font-weight:600}.modal-btn-submit:hover{background:color-mix(in srgb, var(--accent) 85%, black)}.modal-btn-submit:disabled{opacity:.5;cursor:not-allowed}.modal-btn-secondary{border-radius:var(--r);border:1px solid var(--accent);background:var(--accent-soft);color:var(--accent);cursor:pointer;transition:all .15s var(--ease);align-items:center;gap:6px;padding:6px 12px;font-size:13px;font-weight:600;display:inline-flex}.modal-btn-secondary:hover{background:color-mix(in srgb, var(--accent-soft) 80%, var(--accent))}.modal-btn-secondary:disabled{opacity:.5;cursor:not-allowed}.modal-btn-danger{border-radius:var(--r);background:var(--red-500);color:#fff;cursor:pointer;transition:background .15s var(--ease);border:1px solid #0000;padding:6px 12px;font-size:13px;font-weight:600}.modal-btn-danger:hover{background:var(--red-600)}.modal-btn-danger:disabled{opacity:.5;cursor:not-allowed}@media (prefers-color-scheme:dark){.modal .modal-btn-submit{background:color-mix(in srgb, var(--accent) 20%, var(--surface));color:var(--link);border:1px solid color-mix(in srgb, var(--accent) 40%, transparent)}.modal .modal-btn-submit:hover{background:color-mix(in srgb, var(--accent) 30%, var(--surface))}.modal .modal-btn-danger{background:color-mix(in srgb, var(--red) 20%, var(--surface));color:var(--red);border:1px solid color-mix(in srgb, var(--red) 40%, transparent)}.modal .modal-btn-danger:hover{background:color-mix(in srgb, var(--red) 30%, var(--surface))}}@media (width<=768px){.modal-w-sm,.modal-w-md,.modal-w-lg{width:100%;max-width:calc(100vw - 32px)}}@media (width<=480px){.modal-actions-unified{flex-direction:column-reverse;align-items:stretch;gap:8px}.modal-actions-unified>button{justify-content:center;width:100%}}
