.fl-photo-editor { margin-block: 1rem; min-width: 0; }
.fl-photo-editor [hidden] { display: none !important; }
.fl-photo-editor label { display: grid; gap: .45rem; margin-block: .9rem; font-size: 1rem; }
.fl-photo-editor input[type="file"] { width: 100%; max-width: 100%; font: inherit; font-size: .9rem; }
.fl-photo-editor input[type="range"] { width: 100%; padding: 0; margin-block: .25rem; accent-color: #d7b780; }
.fl-photo-editor select { width: 100%; box-sizing: border-box; border: 1px solid #6e675a; border-radius: .4rem; padding: .55rem .7rem; background: #171a29; color: #f5efdf; font: inherit; }
.fl-photo-editor button { min-height: 44px; padding: .6rem .9rem; border: 1px solid #d7b780; border-radius: .45rem; background: #d7b780; color: #191a27; font: inherit; cursor: pointer; }
.fl-photo-editor button.fl-photo-secondary { background: transparent; color: #f3e7cf; border-color: #827354; }
.fl-photo-editor button:disabled { opacity: .55; cursor: wait; }
.fl-photo-editor :is(button, select, input):focus-visible { outline: 2px solid #f8d99b; outline-offset: 3px; }
.fl-photo-editor .fl-photo-panel { margin-top: 1rem; padding: 1rem; border: 1px solid #655b48; border-radius: .7rem; background: #141725; }
.fl-photo-editor .fl-photo-canvas-wrap { display: grid; place-items: center; width: 100%; min-width: 0; background: #090c19; border-radius: .4rem; overflow: hidden; }
.fl-photo-editor canvas { display: block; width: auto; height: auto; max-width: 100%; max-height: 340px; object-fit: contain; touch-action: none; cursor: grab; }
.fl-photo-editor canvas:active { cursor: grabbing; }
.fl-photo-editor[data-photo-shape="circle"] canvas { border-radius: 50%; }
.fl-photo-editor[data-photo-shape="heart"] canvas { -webkit-mask: url('/images/couple-photo-heart.svg') center / 100% 100% no-repeat; mask: url('/images/couple-photo-heart.svg') center / 100% 100% no-repeat; }
.fl-photo-editor .fl-photo-help, .fl-photo-editor .fl-photo-status { font-size: .9rem; line-height: 1.65; color: #ded5c4; }
.fl-photo-editor .fl-photo-status { min-height: 1.65em; margin-bottom: 0; }
.fl-photo-editor .fl-photo-tools, .fl-photo-editor .fl-photo-actions { display: flex; flex-wrap: wrap; gap: .6rem; margin-top: .8rem; }
@media (max-width: 420px) { .fl-photo-editor .fl-photo-panel { padding: .8rem; } }
