.modal{position:fixed;inset:0;z-index:9;display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity .3s var(--ease)}.modal.is-open{opacity:1;pointer-events:auto}.modal__panel{position:relative;width:min(440px,92vw);max-height:86vh;overflow-y:auto;background:var(--panel);border:var(--border);border-radius:var(--radius);padding:30px 26px;box-shadow:var(--shadow-flat-lg);transform:scale(.95);opacity:0;transition:transform .28s var(--ease-spring),opacity .22s var(--ease)}.modal.is-open .modal__panel{transform:scale(1);opacity:1}.modal__title{font-family:var(--font-display);font-size:22px;margin:0 0 6px;color:var(--ink)}.modal__sub{font-size:13px;color:var(--text-dim);margin:0 0 22px;line-height:1.5}.field{display:block;margin-bottom:16px}.field__label{display:block;font-size:12px;color:var(--text-dim);margin-bottom:6px;letter-spacing:.02em;font-weight:600}.field__sublabel{display:block;font-size:11px;color:var(--text-faint);margin-bottom:4px;font-weight:600;letter-spacing:.02em}.field__input{width:100%;padding:11px 13px;background:var(--panel-alt);border:var(--border-thin);border-radius:var(--radius-sm);color:var(--text);font-family:var(--font-body);font-size:13px;transition:transform .15s var(--ease),box-shadow .15s var(--ease)}.field__input:focus{outline:0;box-shadow:var(--shadow-flat-sm);transform:translate(-1px,-1px)}.field__input.field--invalid{border-color:var(--coral);box-shadow:0 0 0 2px rgba(255,89,100,.25)}.field__input.field--invalid:focus{box-shadow:var(--shadow-flat-sm),0 0 0 2px rgba(255,89,100,.25)}.field__hint{display:block;font-size:11px;color:var(--text-faint);margin-top:5px}.field__hint--error{color:var(--coral);font-weight:600}.field__row+.field__row{margin-top:8px}.field__row--split{display:flex;gap:8px}.field__row--split .field__input{flex:1;min-width:0}.field__locate-btn{width:100%;padding:12px;margin-bottom:10px;background:var(--sky-2,#dff0ff);border:var(--border-thin);border-radius:var(--radius-sm);box-shadow:var(--shadow-flat-sm);color:var(--ink);font-size:13px;font-weight:700;cursor:pointer;transition:transform 180ms var(--ease-spring),box-shadow 180ms var(--ease-spring),background 180ms var(--ease-spring)}.field__locate-btn:hover{transform:translate(-3px,-3px);box-shadow:var(--shadow-flat-lg)}.field__locate-btn:active{transform:translate(3px,3px);box-shadow:1px 1px 0 var(--ink)}.field__locate-btn:disabled{background:var(--sun);cursor:wait;transform:none;box-shadow:var(--shadow-flat-sm)}.field__autocomplete{position:relative}.field__suggestions{position:absolute;top:calc(100% + 6px);left:0;right:0;z-index:20;list-style:none;margin:0;padding:6px;background:var(--panel);border:var(--border-thin);border-radius:var(--radius-sm);box-shadow:var(--shadow-flat-sm);max-height:220px;overflow-y:auto}.field__suggestion{padding:9px 10px;font-size:12px;color:var(--text);border-radius:6px;cursor:pointer;transition:background 120ms var(--ease)}.field__suggestion+.field__suggestion{margin-top:2px}.field__suggestion:hover{background:var(--panel-alt)}.btn{width:100%;padding:13px;border-radius:var(--radius-sm);border:var(--border);font-family:var(--font-display);font-weight:700;font-size:14px;cursor:pointer;box-shadow:var(--shadow-flat-sm);transition:transform 180ms var(--ease-spring),box-shadow 180ms var(--ease-spring)}.btn:hover{transform:translate(-3px,-3px);box-shadow:var(--shadow-flat-lg)}.btn:active{transform:translate(3px,3px);box-shadow:1px 1px 0 var(--ink)}.btn--primary{background:var(--sun);color:var(--ink)}.btn--margin{display:block;text-align:center}.btn--ghost{background:var(--panel);color:var(--text);margin-top:6px}.modal__success{text-align:center;padding-top:6px}.modal__success p{font-size:13px;color:var(--text-dim);line-height:1.6}.modal__success-icon{width:46px;height:46px;margin:4px auto 14px;display:flex;align-items:center;justify-content:center;background:var(--sun);border:var(--border);border-radius:50%;box-shadow:var(--shadow-flat-sm);font-family:var(--font-display);font-weight:700;font-size:20px;color:var(--ink)}.modal__success-text{margin:0 0 20px}.toast{position:fixed;left:50%;bottom:28px;z-index:12;transform:translate(-50%,20px);background:var(--panel);border:var(--border);color:var(--text);font-size:13px;font-weight:600;padding:12px 20px;border-radius:999px;opacity:0;pointer-events:none;transition:transform .35s var(--ease),opacity .35s var(--ease);box-shadow:var(--shadow-flat)}.toast.is-visible{opacity:1;transform:translate(-50%,0)}