.modal-overlay{position:fixed;inset:0;background:#00000080;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:flex-end;justify-content:center;z-index:10000;animation:fadeIn var(--duration-3) var(--ease-standard);padding:0;overflow-y:auto;-webkit-overflow-scrolling:touch}@media(min-width:768px){.modal-overlay{align-items:center;padding:var(--spacing-lg)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal-content{background:var(--background);border-radius:var(--radius-xl) var(--radius-xl) 0 0;box-shadow:var(--shadow-2xl);width:100%;max-width:100vw;max-height:90vh;max-height:90dvh;overflow:hidden;display:flex;flex-direction:column;animation:slideUp var(--duration-3) var(--ease-emphasized);border:none;border-top:1px solid var(--border);margin:0;padding-bottom:env(safe-area-inset-bottom,0);position:relative}@media(min-width:768px){.modal-content{border-radius:var(--radius-lg);border:1px solid var(--border);border-top:1px solid var(--border);width:90%;max-width:400px;max-height:90vh;max-height:90dvh;animation:scaleIn var(--duration-3) var(--ease-emphasized);padding-bottom:0;margin:0}}@keyframes slideUp{0%{transform:translateY(100%);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes scaleIn{0%{transform:scale(.95);opacity:0}to{transform:scale(1);opacity:1}}.modal-small{width:100%;max-width:100vw}@media(min-width:768px){.modal-small{width:90%;max-width:400px}}.modal-medium{width:100%;max-width:100vw}@media(min-width:768px){.modal-medium{width:90%;max-width:600px}}.modal-large{width:100%;max-width:100vw}@media(min-width:768px){.modal-large{width:90%;max-width:900px}}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-md) var(--spacing-lg);border-bottom:1px solid var(--border);flex-shrink:0;position:relative}@media(max-width:767px){.modal-header:before{content:"";position:absolute;top:var(--spacing-sm);left:50%;transform:translate(-50%);width:40px;height:4px;background:var(--border);border-radius:2px}}@media(min-width:768px){.modal-header{padding:var(--spacing-lg)}}.modal-header h2{margin:0;font-size:var(--font-size-lg);color:var(--foreground);font-weight:var(--font-weight-semibold)}@media(min-width:640px){.modal-header h2{font-size:var(--font-size-xl)}}.modal-close{background:none;border:none;font-size:var(--font-size-xl);color:var(--muted-foreground);cursor:pointer;padding:0;width:var(--touch-target-min);height:var(--touch-target-min);min-width:var(--touch-target-min);min-height:var(--touch-target-min);display:flex;align-items:center;justify-content:center;border-radius:var(--radius);transition:var(--transition-base);-webkit-tap-highlight-color:transparent;touch-action:manipulation}@media(hover:hover)and (pointer:fine){.modal-close:hover{background:var(--surface);color:var(--foreground)}}.modal-close:active{transform:scale(.95)}.modal-close:focus-visible{outline:var(--ring-width) solid var(--ring);outline-offset:var(--ring-offset);box-shadow:0 0 0 calc(var(--ring-width) + var(--ring-offset)) color-mix(in srgb,var(--ring) 20%,transparent)}.modal-body{padding:var(--spacing-md) var(--spacing-lg);overflow-y:auto;overflow-x:hidden;color:var(--foreground);line-height:var(--line-height-relaxed);flex:1;min-height:0;-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:var(--primary) var(--card)}.modal-body::-webkit-scrollbar{width:6px}.modal-body::-webkit-scrollbar-track{background:var(--card)}.modal-body::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}@media(min-width:768px){.modal-body{padding:var(--spacing-lg)}}.modal-body p{margin-bottom:var(--spacing-md)}.modal-body input,.modal-body textarea{width:100%;padding:var(--spacing-md);margin-bottom:var(--spacing-md);background:var(--card);border:1px solid var(--input);border-radius:var(--radius);color:var(--foreground);font-size:var(--font-size-base);min-height:var(--touch-target-min);transition:var(--transition-base);box-sizing:border-box}.modal-body input:focus,.modal-body textarea:focus{outline:none;border-color:var(--ring);box-shadow:0 0 0 calc(var(--ring-width) + var(--ring-offset)) color-mix(in srgb,var(--ring) 20%,transparent)}.modal-body textarea{min-height:100px;resize:vertical;font-family:inherit;line-height:var(--line-height-normal)}.modal-footer{display:flex;flex-direction:column;gap:var(--spacing-sm);padding:var(--spacing-md) var(--spacing-lg);padding-bottom:max(var(--spacing-md),calc(var(--spacing-md) + env(safe-area-inset-bottom,0)));border-top:1px solid var(--border);flex-shrink:0}@media(min-width:768px){.modal-footer{flex-direction:row;justify-content:flex-end;gap:var(--spacing-md);padding:var(--spacing-lg);padding-bottom:var(--spacing-lg)}}.modal-footer .btn{width:100%}@media(min-width:768px){.modal-footer .btn{width:auto}}.modal-message{padding:var(--spacing-md);border-radius:var(--radius);margin-bottom:var(--spacing-md);font-size:var(--font-size-sm);line-height:var(--line-height-normal)}.modal-message.success{background:color-mix(in srgb,var(--success) 15%,transparent);border:1px solid color-mix(in srgb,var(--success) 40%,transparent);color:var(--success)}.modal-message.error{background:color-mix(in srgb,var(--danger) 15%,transparent);border:1px solid color-mix(in srgb,var(--danger) 40%,transparent);color:var(--danger)}.modal-message.warning{background:color-mix(in srgb,var(--warning) 15%,transparent);border:1px solid color-mix(in srgb,var(--warning) 40%,transparent);color:var(--warning)}.modal-message.info{background:color-mix(in srgb,var(--info) 15%,transparent);border:1px solid color-mix(in srgb,var(--info) 40%,transparent);color:var(--info)}
