.fp-dialog { position:fixed;z-index:10050;inset:0;display:grid;place-items:center;box-sizing:border-box;padding:14px;background:rgba(18,33,52,.48);backdrop-filter:blur(5px);color:#1d2d43; }
.fp-dialog-form { display:grid;grid-template-rows:auto minmax(0,1fr) auto;width:min(520px,calc(100vw - 28px));max-width:100%;max-height:min(760px,calc(100dvh - 28px));overflow:hidden;border:1px solid #d7e2ef;border-radius:18px;background:#fff;box-shadow:0 28px 90px rgba(20,40,68,.24); }
.fp-dialog-head { position: sticky; z-index: 2; top: 0; padding: 16px; border-bottom: 1px solid #e5ebf3; background: rgba(255, 255, 255, .96); backdrop-filter: blur(12px); }
.fp-dialog-head h2 { margin: 0; font-size: 18px; }
.fp-dialog-head p { margin: 8px 0 0; color: #66778d; line-height: 1.55; }
.fp-dialog-body { display: grid; min-height: 0; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; overflow-y: auto; overscroll-behavior: contain; padding: 16px; }
.fp-dialog-field { display: grid; min-width: 0; gap: 7px; color: #41536b; font-size: 13px; font-weight: 700; }
.fp-dialog-field:only-child,.fp-dialog-field.is-wide { grid-column: 1 / -1; }
.fp-dialog-field input,
.fp-dialog-field select,
.fp-dialog-field textarea {
  box-sizing: border-box;
  width: 100%;
  min-width: 0;
  max-width: 100%;
  min-height: 42px;
  padding: 10px 12px;
  border: 1px solid #cfdbe8;
  border-radius: 9px;
  outline: none;
  background: #fff;
  color: #1e2d42;
  font: inherit;
  font-weight: 500;
}
.fp-dialog-field input[type="checkbox"] { width: 18px; height: 18px; min-height: 18px; padding: 0; }
.fp-dialog-field textarea { resize: vertical; line-height: 1.5; }
.fp-dialog-field input::placeholder,
.fp-dialog-field textarea::placeholder { color: #93a1b3; }
.fp-dialog-field input:focus,
.fp-dialog-field select:focus,
.fp-dialog-field textarea:focus { border-color: #5790e8; box-shadow: 0 0 0 3px rgba(47, 102, 208, .14); }
.fp-dialog-field [aria-invalid="true"] { border-color: #d45460; }
.fp-dialog-hint { font-size: 12px; color: #4a5d73; font-weight: 500; overflow-wrap: anywhere; }
.fp-dialog-error { font-size: 12px; min-height: 0; color: #c33e4a; font-weight: 600; }
.fp-dialog-actions { position: sticky; z-index: 2; bottom: 0; display: flex; justify-content: flex-end; gap: 10px; padding: 12px 16px max(12px, env(safe-area-inset-bottom)); border-top: 1px solid #e5ebf3; background: rgba(255, 255, 255, .96); backdrop-filter: blur(12px); }
.fp-dialog-actions button {
  box-sizing: border-box;
  min-width: 96px;
  min-height: 42px;
  padding: 9px 14px;
  border: 1px solid #2f66d0;
  border-radius: 9px;
  background: #2f66d0;
  color: #fff;
  font: inherit;
  font-weight: 750;
  cursor: pointer;
}
.fp-dialog-actions button:hover { border-color: #2452aa; background: #2452aa; }
.fp-dialog-actions .fp-dialog-cancel { border-color: #d6e0e9; background: #fff; color: #52657c; }
.fp-dialog-actions .fp-dialog-cancel:hover { border-color: #b8c9dd; background: #f6f8fb; color: #314963; }
.fp-dialog-actions .danger { border-color: #b6424d; background: #c33e4a; color: #fff; }
.fp-dialog-actions .danger:hover { border-color: #9f303b; background: #ad343f; }
.fp-dialog-actions button:focus-visible { outline: 3px solid rgba(47, 102, 208, .25); outline-offset: 2px; }
.fp-dialog-toast { position: fixed; z-index: 1400; right: 18px; bottom: 18px; box-sizing: border-box; width: min(420px, calc(100vw - 28px)); max-width: 100%; margin: 0; padding: 12px 15px; border: 1px solid #d7e2ef; border-radius: 11px; background: #fff; color: #263950; box-shadow: 0 16px 44px rgba(16, 34, 58, .18); overflow-wrap: anywhere; }
.fp-dialog-toast.error { border-color: #efc8cd; background: #fff6f7; color: #a43440; }
@media (max-width: 430px) {
  .fp-dialog { padding: 8px; }
  .fp-dialog-form { width: calc(100vw - 16px); max-height: calc(100dvh - 16px); }
  .fp-dialog-head { padding: 14px; }
  .fp-dialog-body { grid-template-columns: minmax(0,1fr); padding: 14px; }
  .fp-dialog-field input:not([type="checkbox"]),.fp-dialog-field select,.fp-dialog-actions button { min-height: 44px; }
  .fp-dialog-actions { display: grid; grid-template-columns: 1fr 1fr; }
  .fp-dialog-actions button { width: 100%; min-width: 0; }
  .fp-dialog-toast { right: 14px; bottom: 14px; }
}
