.file-drop-zone { border-style: dashed !important; border-width: 1px; border-color: #526c82; box-sizing: border-box; position: relative; transition: border-color .15s ease, box-shadow .15s ease, background-color .15s ease; }
.file-drop-zone.file-drop-active { border-color: #8ee5f0 !important; outline: 2px solid #8ee5f0; outline-offset: 3px; background-color: #123344 !important; box-shadow: inset 0 0 0 2px rgba(142,229,240,.25); }
.file-drop-zone[role=button]:focus-visible { outline: 2px solid #8ee5f0; outline-offset: 3px; }
.file-drop-zone[aria-disabled=true] { cursor: not-allowed; }
.file-drop-hint { display: block; color: #a9c4d4; font-size: .78rem; line-height: 1.5; margin: 8px 0 0; }
.file-drop-status { display: block; grid-column: 1/-1; color: #ffc9ce; font-size: .8rem; line-height: 1.5; }
.file-drop-status:empty { display: none; }
.standard-file-picker { position: relative; box-sizing: border-box; display: grid; grid-template-columns: 36px minmax(0,1fr) auto; align-items: center; gap: 12px; width: 100%; min-height: 64px; margin: 0; padding: 10px 13px; border: 1px dashed #2d465f; border-radius: 9px; background: #0b111d; color: #eef3f7; text-align: left; cursor: pointer; transition: border-color .15s ease, background-color .15s ease, box-shadow .15s ease; }
.standard-file-picker:hover, .standard-file-picker.file-drop-active { border-color: #66c5e7; background: #0d1724; }
.standard-file-picker input[type="file"] { position: absolute !important; inset: 0 auto auto 0; display: block !important; width: 1px !important; height: 1px !important; margin: 0 !important; padding: 0 !important; opacity: 0 !important; overflow: hidden; pointer-events: none; }
.standard-file-picker:focus-within { outline: 2px solid #8ee5f0; outline-offset: 3px; }
.standard-file-picker:has(input:disabled) { opacity: .6; cursor: not-allowed; }
.standard-file-picker-copy { min-width: 0; display: grid; gap: 3px; }
.standard-file-picker-copy strong { color: #eef3f7; font-size: .82rem; font-weight: 650; line-height: 1.25; }
.standard-file-picker-copy small { color: #9fb1c3; font-size: .71rem; font-weight: 400; line-height: 1.35; }
.standard-file-picker > span.standard-file-picker-icon { box-sizing: border-box; display: grid !important; flex: none; place-items: center; width: 36px !important; min-width: 36px; height: 36px !important; min-height: 36px !important; margin: 0; padding: 0 !important; border: 1px solid rgba(102,197,231,.55) !important; border-radius: 50% !important; background: #0d1b2a !important; color: #66c5e7 !important; font-size: 1rem !important; font-weight: 400 !important; }
.standard-file-picker > span.standard-file-picker-copy { box-sizing: border-box; display: grid !important; flex: 1 1 auto; place-items: initial; width: auto !important; min-width: 0; height: auto !important; min-height: 0 !important; margin: 0; padding: 0 !important; border: 0 !important; border-radius: 0; background: transparent !important; color: inherit !important; text-align: left; }
.standard-file-picker > span.standard-file-picker-chevron { box-sizing: border-box; display: block !important; flex: none; place-items: center; width: auto !important; min-width: 0; height: auto !important; min-height: 0 !important; margin: 0; padding: 0 !important; border: 0 !important; border-radius: 0; background: transparent !important; color: #9fb1c3 !important; font-size: 1.25rem !important; font-weight: 400 !important; line-height: 1; }
.standard-file-picker.memory-reference-upload { display: grid !important; grid-template-columns: 36px minmax(0,1fr) auto; }
.standard-file-picker.file-drop-active { outline: 2px solid #8ee5f0; outline-offset: 3px; box-shadow: inset 0 0 0 2px rgba(142,229,240,.16); }
.standard-file-picker[role=button]:focus-visible { outline: 2px solid #8ee5f0; outline-offset: 3px; }
.standard-file-picker[aria-disabled=true] { cursor: not-allowed; opacity: .6; }
.standard-file-picker:not(.memory-reference-upload) { display: grid; grid-template-columns: 36px minmax(0,1fr) auto; align-items: center; justify-items: stretch; row-gap: normal; text-align: left; }
.account-avatar-dropzone, .character-import-dropzone, .campaign-backup-dropzone { min-width: 0; border: 1px dashed #526c82; border-radius: 9px; padding: 18px; }
.import-dropzone.standard-file-picker { min-height: 64px; margin-top: 20px; border-color: #2d465f; background: #0b111d; }
.campaign-backup-dropzone.standard-file-picker { min-height: 64px; padding: 10px 13px; border-color: #2d465f; background: #0b111d; }
.token-style-field.file-drop-zone { border: 1px dashed #526c82; border-radius: 9px; padding: 14px; }
.token-style-field.token-frame-field.file-drop-zone { border: 0; padding: 0; background: transparent; }
.token-style-field.token-frame-field.file-drop-zone.file-drop-active { background: transparent !important; box-shadow: none; }
.token-style-field.token-frame-field.file-drop-active .token-frame-picker { border-color: #8ee5f0; background: #0d1724; }
.token-style-field .token-frame-picker { gap: 12px; }
.character-import-dropzone { display: grid; gap: 8px; }
.character-import-dropzone input, .account-avatar-dropzone input { max-width: 100%; }
.memory-reference-row.file-drop-zone { padding: 14px 10px; border-radius: 7px; }
.file-drop-zone.battlemap-edit-menu.file-drop-active { outline-offset: -5px; }
@media (max-width: 600px) { .account-avatar-dropzone, .character-import-dropzone, .campaign-backup-dropzone { padding: 14px; } .file-drop-hint { overflow-wrap: anywhere; } }
@media (max-width: 600px) { .standard-file-picker { gap: 10px; min-height: 64px; padding: 9px 11px; } .standard-file-picker-copy small { font-size: .69rem; } }
@media (prefers-reduced-motion: reduce) { .file-drop-zone, .standard-file-picker { transition: none; } }
