.app-modal-root{position:fixed;inset:0;z-index:200;display:flex;align-items:flex-end;justify-content:center}.app-modal-backdrop{position:absolute;inset:0;width:100%;height:100%;padding:0;margin:0;border:none;background:rgba(15,23,42,.55);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);cursor:pointer;animation:app-modal-backdrop-in .18s ease-out}.app-modal-sheet{position:relative;z-index:1;width:100%;max-width:520px;max-height:90vh;overflow-y:auto;animation:app-modal-sheet-in .24s cubic-bezier(.2,.7,.3,1)}@keyframes app-modal-backdrop-in{0%{opacity:0}to{opacity:1}}@keyframes app-modal-sheet-in{0%{transform:translateY(40px);opacity:0}to{transform:translateY(0);opacity:1}}.app-modal{--modal-accent:var(--accent);display:flex;flex-direction:column;background:var(--surface);border-radius:16px 16px 0 0;border:1px solid var(--border);border-top:3px solid var(--modal-accent);overflow:hidden}.app-modal--feedback{--modal-accent:#2563eb}.app-modal--win{--modal-accent:#15803d}.app-modal--bust{--modal-accent:#b91c1c}@media (min-width:720px){.app-modal-root{align-items:center}.app-modal{border-radius:16px}@keyframes app-modal-sheet-in{0%{transform:translateY(20px) scale(.97);opacity:0}to{transform:translateY(0) scale(1);opacity:1}}}.app-modal-header{display:flex;align-items:center;gap:10px;padding:16px 18px;border-bottom:1px solid var(--border)}.app-modal-icon{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:10px;flex:0 0 auto;color:var(--modal-accent);background:color-mix(in srgb,var(--modal-accent) 14%,transparent)}.app-modal-title{margin:0;flex:1 1;min-width:0;font-size:1.05rem;font-weight:700;color:var(--text)}.app-modal-close{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;background:transparent;color:var(--muted);cursor:pointer;padding:6px;border-radius:8px;display:inline-flex;flex:0 0 auto}.app-modal-close:focus-visible,.app-modal-close:hover:not(:disabled){background:var(--surface-muted);color:var(--text);outline:none}.app-modal-close:disabled{opacity:.5;cursor:default}.app-modal-body{padding:16px 18px;display:flex;flex-direction:column;gap:14px}.app-modal-actions{display:flex;gap:10px;padding:14px 18px;border-top:1px solid var(--border)}.app-modal-actions>*{flex:1 1}.app-modal-field{display:flex;flex-direction:column;gap:6px}fieldset.app-modal-field{border:0;margin:0;padding:0;min-width:0}fieldset.app-modal-field>legend{padding:0;margin-bottom:6px}.app-modal-field-label{display:inline-flex;align-items:center;gap:6px;font-size:.72rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.app-modal-field-label-hint{text-transform:none;letter-spacing:0;font-weight:400}.app-modal-input-shell{display:flex;align-items:center;gap:4px;min-width:0;padding:0 10px;height:44px;background:var(--surface-muted);border:1px solid var(--border);border-radius:10px;transition:border-color .12s ease,box-shadow .12s ease}.app-modal-input-shell:focus-within{border-color:var(--modal-accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--modal-accent) 20%,transparent)}.app-modal-input{flex:1 1;min-width:0;width:100%;background:transparent;border:none;outline:none;font:inherit;font-size:1rem;font-weight:600;color:var(--text)}.app-modal-textarea{width:100%;background:var(--surface-muted);border:1px solid var(--border);border-radius:10px;padding:10px 12px;font:inherit;font-size:.95rem;color:var(--text);resize:vertical;min-height:92px;transition:border-color .12s ease,box-shadow .12s ease}.app-modal-textarea:focus{outline:none;border-color:var(--modal-accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--modal-accent) 20%,transparent)}.app-modal-select{width:100%;height:44px;background:var(--surface-muted);border:1px solid var(--border);border-radius:10px;padding:0 10px;font:inherit;font-size:.95rem;color:var(--text)}.app-modal-select:focus{outline:none;border-color:var(--modal-accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--modal-accent) 20%,transparent)}.app-modal-actions .button-primary,.app-modal-actions .button-secondary{height:44px;border-radius:10px;display:inline-flex;align-items:center;justify-content:center;gap:8px;font-weight:600;cursor:pointer;border:1px solid transparent}.app-modal-actions .button-primary{background:var(--modal-accent);color:#fff}.app-modal-actions .button-primary:hover:not(:disabled){filter:brightness(1.05)}.app-modal-actions .button-primary:disabled{opacity:.55;cursor:default}.app-modal-actions .button-secondary{background:var(--surface-muted);border-color:var(--border);color:var(--text)}.app-modal-actions .button-secondary:hover:not(:disabled){background:color-mix(in srgb,var(--text) 8%,var(--surface-muted))}