.asset_main {display:block; width:100%; max-width:1120px; flex:1; margin:0 auto; padding:48px 32px 64px;}
.asset_field select {width:100%; font:inherit; color:var(--ink); background:#fff;}
.asset_tabs {display:flex; flex-wrap:wrap; gap:8px; margin:0 0 22px;}
.asset_tabs button {padding:12px 18px; border:1px solid var(--line); border-radius:8px; background:#fff; color:var(--ink); cursor:pointer; font:inherit; font-size:14px;}
.asset_tabs button[aria-selected="true"] {background:var(--green); border-color:var(--green); color:#fff;}
.asset_tabs button:focus-visible {outline:3px solid var(--line); outline-offset:3px;}
.asset_modal {position:fixed; inset:0; z-index:90000; overflow-y:auto; background:rgba(0,0,0,.7); padding:32px 16px;}
.asset_modal_card {width:100%; max-width:600px; margin:0 auto; padding:30px; background:#fff; border-radius:16px;}
.asset_modal_card h2 {font-size:26px;}
body.has_asset_modal {overflow:hidden;}
.global_loader {display:none; position:fixed; inset:0; width:100%; height:100%; background:rgba(0,0,0,.7); z-index:99999;}
.global_loader_card {position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); width:calc(100% - 40px); max-width:360px; text-align:center; color:#fff;}
.global_loader_card p {font-size:15px; line-height:1.6;}
.global_spinner {display:inline-block; width:46px; height:46px; border:4px solid rgba(255,255,255,.3); border-top-color:#fff; border-radius:50%; animation:vootter_spin .8s linear infinite;}
@keyframes vootter_spin {to {transform:rotate(360deg);}}
.global_notice {display:none; position:fixed; top:20px; left:50%; transform:translateX(-50%); width:calc(100% - 32px); max-width:560px; max-height:40vh; overflow-y:auto; padding:18px 48px 18px 20px; z-index:100000; color:#fff; background:#247342; border-radius:10px; box-shadow:0 8px 30px rgba(0,0,0,.15); font-size:14px; line-height:1.6; overflow-wrap:anywhere;}
.global_notice.is_error {background:#ae3434;}
#close_global_notice {position:absolute; top:8px; right:10px; border:0; background:transparent; color:#fff; font-size:26px; cursor:pointer; padding:4px 8px;}
.gallery_progress {margin:20px 0;}
.gallery_progress progress, #global_upload_progress {display:block; width:100%; height:14px; accent-color:#4dae70;}
.gallery_progress p {font-size:13px; color:var(--muted);}
@media (prefers-reduced-motion:reduce) {.global_spinner {animation-duration:2s;}}
.asset_page_heading {display:flex; align-items:center; justify-content:space-between; gap:24px; margin-bottom:28px;}
.asset_page_heading .btn {width:auto; flex-shrink:0;}
.asset_page_heading h1 {font-size:34px;}
.asset_page_heading p {margin:10px 0 0; color:var(--muted); font-size:14px; line-height:1.6;}
.asset_panel {padding:30px; margin-bottom:24px; border:1px solid var(--line); border-radius:16px; background:#fff;}
.asset_panel h2 {font-size:23px; margin-bottom:18px;}
.asset_form {max-width:760px;}
.asset_field {margin-bottom:25px;}
.asset_field label {margin-bottom:10px;}
.asset_field input[type="text"], .asset_field textarea {width:100%; padding:12px 14px; border:1px solid var(--line); border-radius:8px; color:var(--ink); background:#fff; font:inherit;}
.asset_field input[type="file"] {display:block; width:100%; max-width:100%; font-size:13px; color:var(--ink);}
.asset_field input[type="file"]::file-selector-button {margin-right:12px; padding:10px 13px; border:1px solid var(--line); border-radius:7px; background:#fff; color:var(--ink); font:inherit; cursor:pointer;}
.asset_field textarea {min-height:180px; resize:vertical; font-size:14px; line-height:1.6;}
.asset_field input:focus-visible, .asset_field textarea:focus-visible, .crop_panel button:focus-visible, .gallery_delete:focus-visible {outline:3px solid var(--line); outline-offset:3px;}
.asset_actions {display:flex; align-items:center; flex-wrap:wrap; gap:12px; margin-top:24px;}
.asset_actions .btn {width:auto; min-width:150px;}
.asset_actions a:not(.btn) {font-size:14px; text-underline-offset:4px;}
.asset_note {margin:10px 0 0; font-size:12px; color:var(--muted); line-height:1.65;}
#asset_message, #gallery_message {padding:13px 16px; margin:20px 0; border:1px solid var(--line); border-radius:8px; color:var(--ink); background:#fff; font-size:14px; line-height:1.6;}
#asset_message.is_error, #gallery_message.is_error {border-color:#d29c96; color:#87352c;}
#description_editor {min-height:200px; border:1px solid var(--line); border-radius:0 0 8px 8px; color:var(--ink); font-size:15px;}
#description_editor .ql-editor {min-height:200px; line-height:1.7;}
#description_editor .ql-editor h2 {font-size:23px; letter-spacing:normal; margin:10px 0;}
.asset_field .ql-toolbar.ql-snow {border-color:var(--line); border-radius:8px 8px 0 0; background:#fff;}
.crop_panel, #crop_panel {margin-top:20px; padding:20px; border:1px solid var(--line); border-radius:12px;}
#crop_canvas {display:block; width:100%; max-width:400px; height:auto; margin:0 0 20px; border:1px solid var(--line); border-radius:8px; background:#fff;}
.crop_controls {max-width:400px;}
.crop_controls label {display:block; margin:15px 0 6px; font-size:12px;}
#crop_zoom, #crop_x, #crop_y {display:block; width:100%; max-width:400px; margin:8px 0 18px; accent-color:var(--green);}
#crop_panel button {padding:10px 14px; border:1px solid var(--line); border-radius:7px; background:#fff; color:var(--ink); font:inherit; font-size:13px; cursor:pointer;}
#crop_panel #apply_crop {background:var(--green); border-color:var(--green); color:#fff;}
#crop_panel button:disabled {opacity:.6; cursor:wait;}
#primary_preview {display:block; width:180px; max-width:100%; height:auto; aspect-ratio:1; object-fit:cover; margin:16px 0; border:1px solid var(--line); border-radius:10px;}
.asset_grid {display:grid; grid-template-columns:repeat(3, minmax(0, 1fr)); gap:22px;}
.asset_card {overflow:hidden; border:1px solid var(--line); border-radius:13px; background:#fff;}
.asset_card_image {display:block; width:100%; aspect-ratio:1; object-fit:cover; background:#fff;}
.asset_card_body {padding:18px; overflow-wrap:anywhere;}
.asset_card_body h2, .asset_card_body h3 {margin:0 0 10px; font-size:20px; letter-spacing:-.3px; line-height:1.3;}
.asset_card_body a {text-decoration:none;}
.asset_card_body p {font-size:13px; line-height:1.6; color:var(--muted); margin:8px 0;}
.asset_card_body .btn {margin-top:16px; font-size:13px;}
.asset_gallery {display:grid; grid-template-columns:repeat(4, minmax(0, 1fr)); gap:16px; margin-top:24px;}
.gallery_item {position:relative; overflow:hidden; border:1px solid var(--line); border-radius:10px; background:#fff;}
.gallery_item img {display:block; width:100%; aspect-ratio:1; object-fit:cover;}
.gallery_item form {margin:0; padding:10px;}
.gallery_delete {width:100%; min-height:36px; border:1px solid var(--line); border-radius:6px; color:var(--ink); background:#fff; cursor:pointer; font-size:12px;}
.gallery_delete:hover {border-color:var(--muted);}
.gallery_delete:disabled {opacity:.6; cursor:wait;}
.asset_main .empty_posts {margin-top:18px;}
.account_menu, #account_menu {position:relative;}
#account_menu > summary {cursor:pointer; list-style:none;}
#account_menu > summary::-webkit-details-marker {display:none;}
#account_menu > summary:focus-visible {outline:3px solid var(--line); outline-offset:4px;}
.account_menu_dropdown {position:absolute; right:0; top:calc(100% + 10px); z-index:30; width:220px; max-width:calc(100vw - 32px); padding:7px; border:1px solid var(--line); border-radius:12px; background:#fff; box-shadow:0 10px 30px rgba(0,0,0,.08);}
.account_menu_dropdown a, .account_menu_dropdown button {display:block; width:100%; padding:12px; border:0; border-radius:7px; background:transparent; color:var(--ink); text-align:left; text-decoration:none; font:inherit; font-size:13px; cursor:pointer;}
.account_menu_dropdown a:hover, .account_menu_dropdown button:hover {background:var(--line);}
.account_menu_dropdown a:focus-visible, .account_menu_dropdown button:focus-visible {outline:2px solid var(--green); outline-offset:-2px;}
.account_menu_dropdown form {margin:0;}
@media screen and (max-width:800px) {
    .asset_grid {grid-template-columns:repeat(2, minmax(0, 1fr));}
    .asset_gallery {grid-template-columns:repeat(3, minmax(0, 1fr));}
}
@media screen and (max-width:520px) {
    .asset_main {padding:30px 16px 48px;}
    .asset_page_heading {align-items:flex-start; flex-direction:column; gap:18px;}
    .asset_page_heading h1 {font-size:29px;}
    .asset_panel {padding:21px 18px;}
    .asset_grid {grid-template-columns:1fr; gap:18px;}
    .asset_gallery {grid-template-columns:repeat(2, minmax(0, 1fr)); gap:12px;}
    .asset_actions .btn {min-width:0;}
    .crop_panel, #crop_panel {padding:14px;}
}
