:root{color-scheme:dark;--bg:#090909;--surface:#101010;--surface-2:#151515;--line:#2c2c2c;--text:#f4f4f1;--muted:#a3a39e;--silver:#c4c4be;--accent:#e9e9e5;--heading:'Montserrat',Arial,sans-serif;--body:'Century Gothic',Arial,sans-serif}
*{box-sizing:border-box}body{margin:0;min-height:100vh;background:radial-gradient(ellipse at 50% -20%,#1a1a1a 0,transparent 48%),var(--bg);color:var(--text);font:15px/1.55 var(--body)}a{color:inherit;text-decoration:none}button,input,select{font:inherit}.admin-header{height:80px;display:flex;align-items:center;gap:18px;padding:0 clamp(18px,5vw,68px);border-bottom:1px solid #252525;background:rgba(5,5,5,.9)}.admin-brand{width:55px;height:55px;display:grid;place-items:center}.admin-brand img{width:100%;height:100%;object-fit:contain}.header-title{display:grid;gap:3px}.header-title span,.eyebrow{font-size:9px;letter-spacing:.17em;color:#aaa;text-transform:uppercase}.header-title strong{font:600 13px var(--heading);letter-spacing:-.02em}.back-link{margin-left:auto;color:#d7d7d2;font-size:11px;border:1px solid #515151;padding:9px 12px}.admin-main{width:min(1160px,calc(100% - 36px));margin:44px auto 90px}.login-card{width:min(470px,100%);margin:8vh auto;padding:32px;border:1px solid var(--line);background:linear-gradient(145deg,#141414,#0c0c0c);box-shadow:0 20px 70px #0007}.login-card h1,.welcome-row h1{margin:8px 0 10px;font:600 clamp(26px,4vw,38px)/1.12 var(--heading);letter-spacing:-.05em}.intro,.muted{color:var(--muted);font-size:13px;line-height:1.6}.login-card form{display:grid;gap:9px;margin-top:24px}.login-card label,.upload-card form>label:not(.file-drop){font-size:11px;color:#d2d2ce}.login-card input,.inline-form input,.upload-card select{width:100%;min-height:44px;border:1px solid #454545;background:#080808;color:var(--text);padding:10px 12px;border-radius:3px}.login-card input:focus,.inline-form input:focus,.upload-card select:focus{outline:2px solid #bdbdb8;outline-offset:2px}.primary-button{display:inline-flex;justify-content:space-between;align-items:center;gap:18px;min-height:42px;padding:10px 15px;border:1px solid var(--accent);background:var(--accent);color:#111;font:600 11px var(--heading);cursor:pointer}.primary-button:hover{background:#ccc}.primary-button:disabled{opacity:.55;cursor:wait}.login-card .primary-button{margin-top:8px}.form-message{min-height:20px;margin:10px 0 0;color:#d7d7d1;font-size:12px}.form-message.is-error{color:#ffb2a8}.welcome-row{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:28px}.welcome-row .intro{max-width:690px;margin:0}.quiet-button{border:1px solid #4b4b4b;background:transparent;color:#ddd;padding:9px 13px;font-size:11px;cursor:pointer}.quiet-button:hover{border-color:#aaa}.admin-layout{display:grid;grid-template-columns:minmax(260px,.8fr) minmax(0,1.2fr);gap:16px}.panel-card{padding:22px;border:1px solid var(--line);background:linear-gradient(140deg,#131313,#0b0b0b);margin-bottom:16px}.panel-heading{display:flex;align-items:center;justify-content:space-between;gap:18px}.panel-heading h2,.upload-card h2{margin:2px 0 0;font:600 20px/1.2 var(--heading);letter-spacing:-.035em}.panel-heading .eyebrow,.upload-card .eyebrow{margin:0 0 8px}.count-badge{min-width:34px;height:34px;display:grid;place-items:center;border:1px solid #454545;border-radius:50%;color:#ddd;font-size:11px}.inline-form{display:grid;grid-template-columns:1fr auto;gap:8px;margin:20px 0 15px}.inline-form input{min-width:0}.folder-list{display:grid;gap:7px}.folder-row{display:flex;align-items:center;gap:10px;padding:10px;border:1px solid #292929;background:#0a0a0a}.folder-icon{font-size:17px;color:#bdbdb7}.folder-name{min-width:0;flex:1;font-size:12px;overflow-wrap:anywhere}.folder-count{color:#8e8e89;font-size:10px}.remove-folder,.remove-photo{border:1px solid #3e3e3e;background:transparent;color:#aaa;cursor:pointer}.remove-folder{width:27px;height:27px;font-size:16px}.remove-folder:hover,.remove-photo:hover{border-color:#be756d;color:#ffb2a8}.empty-state{padding:18px 12px;color:#858580;text-align:center;font-size:12px;border:1px dashed #393939}.upload-card .muted{margin:10px 0 20px}.upload-card form{display:grid;gap:10px}.upload-card select{appearance:auto}.file-input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.file-drop{min-height:142px;display:grid;place-content:center;justify-items:center;gap:7px;border:1px dashed #666;background:#0b0b0b;text-align:center;cursor:pointer;transition:border-color .2s,background .2s}.file-drop:hover,.file-drop:focus-within{border-color:#ddd;background:#141414}.upload-icon{font-size:29px;line-height:1;color:#d8d8d2}.file-drop strong{font:600 12px var(--heading)}.file-drop small{color:#898984;font-size:10px}.selected-files{min-height:17px;margin:0;color:#aaa;font-size:10px}.full-button{width:100%}.library-card{margin-top:4px}.library-card .panel-heading{align-items:flex-start;margin-bottom:18px}.library-card .muted{margin:7px 0 0}.photo-admin-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.admin-photo{min-width:0;border:1px solid #2b2b2b;background:#080808;overflow:hidden}.admin-photo img{display:block;width:100%;height:180px;object-fit:contain;background:#050505}.admin-photo-info{padding:10px}.admin-photo-title{display:block;color:#eee;font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.admin-photo-category{display:block;margin-top:3px;color:#858580;font-size:9px}.remove-photo{width:100%;margin-top:9px;padding:7px;font-size:10px}.visually-hidden{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}[hidden]{display:none!important}
@media(max-width:850px){.admin-layout{grid-template-columns:1fr}.photo-admin-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.admin-main{margin-top:30px}}
@media(max-width:560px){.admin-header{height:68px;padding:0 14px;gap:10px}.admin-brand{width:43px;height:43px}.header-title span{font-size:8px}.header-title strong{font-size:11px}.back-link{font-size:9px;padding:8px}.admin-main{width:calc(100% - 24px);margin:22px auto 50px}.login-card{margin:10vh auto;padding:23px}.welcome-row{display:block}.quiet-button{margin-top:12px}.panel-card{padding:16px}.panel-heading h2,.upload-card h2{font-size:18px}.photo-admin-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.admin-photo img{height:145px}.photo-admin-grid .remove-photo{font-size:9px}}

.appearance-card{margin-top:22px}
.appearance-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.appearance-view{display:grid;grid-template-columns:1fr;gap:12px;margin:0;padding:17px;border:1px solid var(--line);min-width:0}
.appearance-view legend{padding:0 7px;font:600 12px var(--heading);letter-spacing:.02em}
.appearance-view label{display:flex;justify-content:space-between;align-items:center;gap:12px;color:var(--muted);font-size:12px}
.appearance-view input{width:82px;border:1px solid var(--line);background:#090909;color:var(--text);padding:8px 9px}
.appearance-actions{grid-column:1/-1;display:flex;align-items:center;gap:14px}
.appearance-actions .form-message{margin:0}
@media(max-width:700px){.appearance-form{grid-template-columns:1fr}.appearance-actions{grid-column:auto;align-items:flex-start;flex-direction:column}}


/* Biblioteca con búsqueda y editor de fotos. */
.library-tools{display:grid;grid-template-columns:minmax(220px,1fr) minmax(200px,.55fr);gap:12px;margin:0 0 5px}
.library-tools label,.editor-controls>label{display:grid;gap:6px;color:#d0d0ca;font-size:11px}
.library-tools input,.library-tools select,.editor-controls input[type="text"],.editor-controls select{width:100%;min-height:42px;border:1px solid #444;background:#080808;color:var(--text);padding:9px 11px;border-radius:3px}
.library-tools input:focus,.library-tools select:focus,.editor-controls input:focus,.editor-controls select:focus{outline:2px solid #bdbdb8;outline-offset:2px}
.library-result-count{min-height:18px;margin:0 0 12px;color:#8e8e89;font-size:10px}
.admin-photo-info{display:grid;gap:2px}
.admin-photo-actions{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:9px}
.admin-photo-actions button{min-width:0;margin:0;padding:7px 5px;border:1px solid #414141;background:transparent;color:#deded9;font-size:10px;cursor:pointer}
.admin-photo-actions .edit-photo:hover{border-color:#aaa;background:#171717}
.admin-photo-actions .remove-photo{color:#aaa}
.admin-photo-actions .remove-photo:hover{border-color:#be756d;color:#ffb2a8}
.photo-edited-badge{display:inline-block;width:max-content;margin-top:6px;padding:2px 6px;border:1px solid #555;color:#c9c9c3;font-size:8px;letter-spacing:.05em;text-transform:uppercase}
.editor-dialog{width:min(1100px,calc(100vw - 24px));max-width:1100px;max-height:calc(100dvh - 24px);padding:0;border:1px solid #484848;background:#0b0b0b;color:var(--text);box-shadow:0 25px 90px #000b;overflow:auto}
.editor-dialog::backdrop{background:rgba(0,0,0,.82);backdrop-filter:blur(4px)}
.editor-header{position:sticky;top:0;z-index:2;display:flex;justify-content:space-between;align-items:center;padding:17px 20px;border-bottom:1px solid #303030;background:#0b0b0b}
.editor-header .eyebrow{margin:0 0 4px}
.editor-header h2{margin:0;font:600 19px/1.2 var(--heading);letter-spacing:-.03em}
.editor-close{width:36px;height:36px;border:1px solid #444;border-radius:50%;background:#111;color:#fff;font-size:23px;cursor:pointer}
.editor-layout{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(320px,.85fr);gap:20px;padding:20px}
.editor-preview-wrap{min-width:0;align-self:start;position:sticky;top:78px}
#photo-editor-canvas{display:block;width:100%;max-height:calc(100dvh - 150px);object-fit:contain;background-color:#111;background-image:linear-gradient(45deg,#191919 25%,transparent 25%),linear-gradient(-45deg,#191919 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#191919 75%),linear-gradient(-45deg,transparent 75%,#191919 75%);background-size:24px 24px;background-position:0 0,0 12px,12px -12px,-12px 0}
.editor-note{margin:9px 0 0;color:#92928d;font-size:10px;line-height:1.5}
.editor-controls{display:grid;align-content:start;gap:12px}
.editor-fieldset{display:grid;gap:11px;margin:0;padding:12px;border:1px solid #333;min-width:0}
.editor-fieldset legend{padding:0 6px;color:#e1e1dc;font:600 10px var(--heading);letter-spacing:.06em}
.editor-fieldset label{display:grid;grid-template-columns:1fr auto;gap:6px 10px;align-items:center;color:#bbb;font-size:10px}
.editor-fieldset label input[type="range"]{grid-column:1/-1;width:100%;accent-color:#deded9}
.editor-fieldset label select{grid-column:1/-1}
.editor-fieldset label span{color:#ddd;font-variant-numeric:tabular-nums}
.editor-button-row{display:flex;flex-wrap:wrap;gap:6px}
.editor-button-row button{flex:1 1 105px;min-height:34px;padding:7px 8px;border:1px solid #444;background:#111;color:#ddd;font-size:10px;cursor:pointer}
.editor-button-row button:hover{border-color:#aaa;color:#fff}
.editor-message{min-height:18px;margin:0;color:#cfcfc9;font-size:11px}
.editor-message.is-error{color:#ffb2a8}
.editor-actions{position:sticky;bottom:0;display:flex;flex-wrap:wrap;justify-content:flex-end;gap:7px;padding:10px 0 2px;background:linear-gradient(0deg,#0b0b0b 80%,transparent)}
.editor-actions .quiet-button,.editor-actions .primary-button{min-height:38px;font-size:10px}
.editor-actions .editor-restore{margin-right:auto}
@media(max-width:760px){
  .editor-layout{grid-template-columns:1fr;gap:14px;padding:14px}
  .editor-preview-wrap{position:relative;top:auto}
  #photo-editor-canvas{max-height:40dvh}
}
@media(max-width:560px){
  .library-tools{grid-template-columns:1fr;gap:8px}
  .editor-dialog{width:100vw;max-width:none;max-height:100dvh;height:100dvh;border:0}
  .editor-header{padding:13px 14px}
  .editor-layout{padding:11px;gap:11px}
  #photo-editor-canvas{max-height:34dvh}
  .editor-actions{display:grid;grid-template-columns:1fr 1fr}
  .editor-actions #editor-save{grid-column:1/-1;grid-row:1}
  .editor-actions .editor-restore{margin:0}
  .editor-actions [data-editor-close]{grid-column:2}
}


/* Selección previa y creación rápida de categorías */
.upload-category-heading{display:flex;align-items:center;justify-content:space-between;gap:10px}
.upload-category-heading>label{font-size:11px;color:#d2d2ce}
.text-button{border:0;background:transparent;color:#d8d8d2;padding:5px 0;font-size:10px;cursor:pointer;text-decoration:underline;text-underline-offset:3px}
.text-button:hover{color:#fff}
.quick-category-form{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;padding:10px;border:1px solid #343434;background:#0a0a0a}
.quick-category-form[hidden]{display:none}
.quick-category-form input{min-width:0;min-height:40px;border:1px solid #454545;background:#080808;color:var(--text);padding:9px 10px;border-radius:3px}
.quick-category-form input:focus{outline:2px solid #bdbdb8;outline-offset:2px}
.quick-category-form .primary-button{min-height:40px;padding:8px 10px}
.upload-preview-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.upload-preview-card{position:relative;min-width:0;overflow:hidden;border:1px solid #333;background:#0a0a0a}
.upload-preview-card img{display:block;width:100%;aspect-ratio:1.25;object-fit:cover;background:#171717}
.upload-preview-details{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:6px;padding:7px 8px}
.upload-preview-name{overflow:hidden;color:#ddd;font-size:9px;text-overflow:ellipsis;white-space:nowrap}
.upload-preview-size{color:#8e8e89;font-size:9px;white-space:nowrap}
.upload-preview-remove{position:absolute;top:5px;right:5px;width:25px;height:25px;border:1px solid #666;border-radius:50%;background:#090909e8;color:#fff;font-size:17px;line-height:1;cursor:pointer}
.upload-preview-remove:hover{border-color:#ffb2a8;color:#ffb2a8}
@media(max-width:560px){.upload-preview-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.quick-category-form{grid-template-columns:1fr}.quick-category-form .primary-button{width:100%}}
