.jovo-portal-page{background-color:#FFFFFF;min-height:100vh}.jovo-portal-card{border-radius:22px;border:1px solid #e8e8e8;box-shadow:0 1px 3px rgba(0,0,0,.04);background:#FFFFFF}.jovo-portal-input{background-color:#F7F7F7;border:none;border-radius:8px;height:44px;color:#212121;font-size:.9375rem}.jovo-portal-input::placeholder{color:#9E9E9E}.jovo-portal-input:focus{outline:none;box-shadow:0 0 0 1px #8E44AD}.jovo-portal-label{font-size:.875rem;font-weight:400;color:#212121;margin-bottom:6px;display:block}.jovo-portal-button{border-radius:12px;font-weight:500;transition:all .2s}.jovo-portal-button-primary{background-color:#8E44AD;color:#FFFFFF}.jovo-portal-button-primary:hover{background-color:#7D3C98}.jovo-portal-metric-card{border-radius:16px;border:1px solid #e8e8e8;background:#FFFFFF;box-shadow:0 1px 3px rgba(0,0,0,.04)}.jovo-portal-section-title{font-size:1.25rem;font-weight:600;color:#212121;margin-bottom:1.5rem}.jovo-portal-empty-state{text-align:center;padding:3rem 1rem;color:#757575;font-size:.9375rem}.portal-dnd-zone{border-color:#E0E0E0;background:linear-gradient(180deg,#FAFAFA,#F5F5F5)}.portal-dnd-zone--active{border-color:#8E44AD;background:linear-gradient(180deg,#F8F2FC,#F1E5FD);box-shadow:0 0 0 3px rgba(142,68,173,.15)}.portal-dnd-icon-wrapper{background:linear-gradient(135deg,#8E44AD,#6C3483);box-shadow:0 4px 14px rgba(142,68,173,.35);transition:transform .25s ease,box-shadow .25s ease}.portal-dnd-zone:hover .portal-dnd-icon-wrapper{transform:scale(1.05);box-shadow:0 6px 20px rgba(142,68,173,.4)}.portal-dnd-browse{text-decoration:underline;text-underline-offset:3px}.portal-upload-progress{border-radius:14px;background:#FFFFFF;border:1px solid #e8e8e8;box-shadow:0 2px 8px rgba(0,0,0,.06);overflow:hidden;animation:portal-slide-up .35s ease-out}.portal-upload-progress-bar{height:4px;background:linear-gradient(90deg,#8E44AD,#6C3483);border-radius:0 0 4px 4px;transition:width .3s ease}.portal-file-card{border-radius:16px;border:1px solid #e8e8e8;background:#FFFFFF;box-shadow:0 1px 3px rgba(0,0,0,.04);transition:box-shadow .2s ease,transform .2s ease}.portal-file-card:hover{box-shadow:0 4px 12px rgba(0,0,0,.08)}.portal-file-card-thumb{border-radius:12px;overflow:hidden;background:#F7F7F7}.portal-upload-inline{transition:box-shadow .25s ease}.portal-upload-inline:focus-within{box-shadow:0 4px 20px rgba(142,68,173,.12)}.portal-file-card-hover:hover{transform:translateY(-1px);box-shadow:0 6px 16px rgba(0,0,0,.08)}.portal-photo-item{border-radius:16px;overflow:hidden;border:1px solid #e8e8e8;box-shadow:0 2px 8px rgba(0,0,0,.06);transition:transform .3s cubic-bezier(.34,1.56,.64,1),box-shadow .3s ease}.portal-photo-item:hover{transform:translateY(-4px) scale(1.02);box-shadow:0 12px 32px rgba(0,0,0,.14)}.portal-photo-item-actions{opacity:0;transition:opacity .3s ease,transform .3s ease;background:linear-gradient(0deg,rgba(0,0,0,.7) 0,rgba(0,0,0,.4) 50%,transparent);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);display:flex;align-items:flex-end;justify-content:center;padding:0 .5rem 1rem;gap:.375rem;flex-wrap:wrap;box-sizing:border-box}.portal-photo-item:hover .portal-photo-item-actions{opacity:1}.portal-photo-item .portal-action-btn{transition:transform .2s ease,box-shadow .2s ease;border-radius:10px;font-weight:500;box-shadow:0 2px 8px rgba(0,0,0,.15);flex-shrink:0;min-height:32px;padding-left:.5rem;padding-right:.5rem;font-size:.75rem}.portal-photo-item:hover .portal-action-btn:hover{transform:scale(1.08);box-shadow:0 4px 12px rgba(0,0,0,.2)}@keyframes portal-slide-up{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes portal-fade-in{0%{opacity:0}to{opacity:1}}@keyframes portal-scale-in{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}.portal-animate-in{animation:portal-scale-in .3s ease-out}.portal-modal-content{animation:portal-scale-in .25s ease-out}.portal-btn-delete{transition:color .2s ease,transform .2s ease}.portal-btn-delete:hover{color:#E74C3C;transform:scale(1.08)}