.common-modal__backdrop{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.5);display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem;animation:fadeIn .2s ease-out}.common-modal{background:var(--bg-white);border-radius:12px;box-shadow:0 25px 50px -12px rgba(0,0,0,.25);max-width:90vw;max-height:90vh;overflow:hidden;display:flex;flex-direction:column;animation:slideIn .3s ease-out;font-family:var(--font-inter),system-ui,sans-serif}.common-modal--small{width:400px}.common-modal--medium{width:600px}.common-modal--large{width:800px}.common-modal--full{width:95vw;height:95vh}.common-modal__header{display:flex;align-items:center;justify-content:space-between;padding:1rem 2rem;border-bottom:1px solid var(--border-color);background:var(--bg-white)}.common-modal__title{font-size:1rem!important;font-weight:600;color:var(--text-primary);margin:0!important;padding:.3rem!important;line-height:1.4}@media(max-width:768px){.common-modal__header{padding:1rem 1.5rem}.common-modal__title{font-size:.95rem}}@media(max-width:480px){.common-modal__header{padding:1rem}.common-modal__title{font-size:.9rem}}.common-modal__close{background:none;border:none;padding:.5rem;border-radius:6px;cursor:pointer;color:var(--text-secondary);transition:all .2s ease;display:flex;align-items:center;justify-content:center}.common-modal__close svg{width:1.25rem;height:1.25rem}.common-modal__close:hover{background:var(--bg-light);color:var(--text-primary)}.common-modal__close:focus{outline:2px solid var(--primary-color);outline-offset:2px}.common-modal__body{padding:2rem;overflow-y:auto;flex:1 1;color:var(--text-primary);line-height:1.6}.common-modal__footer{padding:1rem 2rem;border-top:1px solid var(--border-color);background:var(--bg-white);display:flex;align-items:center;justify-content:flex-end;gap:.75rem}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideIn{0%{opacity:0;transform:translateY(-20px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}@media(max-width:768px){.common-modal__backdrop{padding:.5rem}.common-modal{width:100%!important;max-width:100%;max-height:100vh}.common-modal__header{padding:1rem 1.5rem}.common-modal__body{padding:1.5rem}.common-modal__footer{padding:1rem 1.5rem}.common-modal__title{font-size:1rem}}@media(max-width:480px){.common-modal__body,.common-modal__footer,.common-modal__header{padding:1rem}}.common-select{display:flex;flex-direction:column}.common-select .common-select__helper{font-size:var(--control-font-size-sm);color:var(--text-tertiary)}.progress-bar{font-family:var(--font-inter);display:flex;align-items:center;gap:.75rem}.progress-bar__label{font-size:.875rem;font-weight:500;color:var(--text-primary);min-width:3rem;text-align:right}.progress-bar__container{flex:1 1;min-width:0}.progress-bar__track{width:100%;background:var(--bg-light);border-radius:8px;overflow:hidden;position:relative;border:1px solid var(--border-color)}.progress-bar__fill{height:100%;background:var(--primary-gradient);border-radius:6px;transition:width .3s ease;position:relative}.progress-bar--small .progress-bar__track{height:.5rem}.progress-bar--small .progress-bar__label{font-size:.75rem;min-width:2.5rem}.progress-bar--medium .progress-bar__track{height:.75rem}.progress-bar--medium .progress-bar__label{font-size:.875rem;min-width:3rem}.progress-bar--large .progress-bar__track{height:1rem}.progress-bar--large .progress-bar__label{font-size:1rem;min-width:3.5rem}.progress-bar--default .progress-bar__fill{background:var(--primary-gradient)}.progress-bar--success .progress-bar__fill{background:var(--success-color)}.progress-bar--warning .progress-bar__fill{background:var(--warning-color)}.progress-bar--error .progress-bar__fill{background:var(--error-color)}.progress-bar--info .progress-bar__fill{background:var(--product-info-color,#3b82f6)}.progress-bar__track--animated .progress-bar__fill{background:linear-gradient(90deg,var(--primary-color) 0,rgba(59,130,246,.8) 50%,var(--primary-color) 100%);background-size:200% 100%;animation:progress-shimmer 2s ease-in-out infinite}.progress-bar__track--striped .progress-bar__fill{background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 0,transparent 50%,rgba(255,255,255,.15) 0,rgba(255,255,255,.15) 75%,transparent 0,transparent);background-size:1rem 1rem;animation:progress-stripe 1s linear infinite}.progress-bar--circular{flex-direction:column;align-items:center;gap:.5rem}.progress-bar--circular .progress-bar__svg{transform:rotate(-90deg)}.progress-bar--circular .progress-bar__bg{fill:none;stroke:var(--bg-light);stroke-width:3}.progress-bar--circular .progress-bar__progress{fill:none;stroke:var(--primary-color);stroke-width:3;transition:stroke-dashoffset .3s ease}.progress-bar--circular .progress-bar__label{text-align:center;min-width:auto;font-size:.875rem;font-weight:600}.progress-bar--circular.progress-bar--small .progress-bar__label{font-size:.75rem}.progress-bar--circular.progress-bar--large .progress-bar__label{font-size:1rem}.progress-bar--circular.progress-bar--success .progress-bar__progress{stroke:var(--success-color)}.progress-bar--circular.progress-bar--warning .progress-bar__progress{stroke:var(--warning-color)}.progress-bar--circular.progress-bar--error .progress-bar__progress{stroke:var(--error-color)}.progress-bar--circular.progress-bar--info .progress-bar__progress{stroke:var(--product-info-color,#3b82f6)}.progress-bar--complete .progress-bar__fill{background:var(--success-color)}.progress-bar--complete.progress-bar--circular .progress-bar__progress{stroke:var(--success-color)}.progress-bar--indeterminate .progress-bar__fill{background:linear-gradient(90deg,transparent 0,var(--primary-color) 50%,transparent 100%);background-size:200% 100%}.progress-bar-group{display:flex;flex-direction:column;gap:1rem}@keyframes progress-shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes progress-stripe{0%{background-position:0 0}to{background-position:1rem 0}}@keyframes progress-indeterminate{0%{transform:translateX(-100%)}50%{transform:translateX(0)}to{transform:translateX(100%)}}@keyframes progress-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@media(max-width:768px){.progress-bar{gap:.5rem}.progress-bar__label{font-size:.75rem;min-width:2.5rem}.progress-bar--circular .progress-bar__label{font-size:.75rem}}@media(max-width:480px){.progress-bar{flex-direction:column;align-items:stretch;gap:.5rem}.progress-bar__label{text-align:left;min-width:auto}.progress-bar--circular{flex-direction:column;align-items:center}}