*,:after,:before{box-sizing:border-box;margin:0;padding:0}:root{--gold:#c9a84c;--gold-light:#e2c97e;--dark:#0d0b08;--dark-card:#1a1713;--dark-input:#131008;--border:#c9a84c2e;--text:#e8dfc8;--text-muted:#7a7060;--danger:#c0392b;--success:#27ae60;--radius:14px;--shadow:0 8px 40px #0000008c}body,html{background:var(--dark);min-height:100vh;color:var(--text);font-family:Jost,system-ui,sans-serif;font-size:15px;line-height:1.6}#login-screen{background:radial-gradient(ellipse at 50% 0,#2a1f0a 0,var(--dark) 70%);flex-direction:column;justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex}.login-logo{opacity:.92;width:80px;margin-bottom:24px}.login-card{background:var(--dark-card);border:1px solid var(--border);border-radius:var(--radius);width:100%;max-width:400px;box-shadow:var(--shadow);padding:40px 36px}.login-title{color:var(--gold);text-align:center;letter-spacing:.03em;margin-bottom:6px;font-family:Cormorant Garamond,serif;font-size:26px;font-weight:600}.login-sub{color:var(--text-muted);text-align:center;margin-bottom:28px;font-size:13px}.field-label{letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted);margin-bottom:8px;font-size:12px;font-weight:600;display:block}.field-input{background:var(--dark-input);border:1px solid var(--border);width:100%;color:var(--text);border-radius:8px;outline:none;padding:12px 16px;font-size:15px;transition:border-color .2s}.field-input:focus{border-color:var(--gold)}.btn-primary{background:var(--gold);color:#0d0b08;letter-spacing:.08em;text-transform:uppercase;cursor:pointer;border:none;border-radius:8px;width:100%;margin-top:22px;padding:13px 0;font-size:14px;font-weight:700;transition:background .2s,transform .1s;display:block}.btn-primary:hover{background:var(--gold-light)}.btn-primary:active{transform:scale(.98)}.login-error{color:var(--danger);text-align:center;min-height:18px;margin-top:14px;font-size:13px}#admin-screen{display:none}.admin-header{z-index:100;background:var(--dark-card);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;height:60px;padding:0 32px;display:flex;position:sticky;top:0;box-shadow:0 2px 20px #0006}.admin-header-brand{align-items:center;gap:12px;display:flex}.admin-header-brand img{opacity:.9;height:32px}.admin-header-brand span{color:var(--text);letter-spacing:.05em;font-family:Cormorant Garamond,serif;font-size:18px}.badge-admin{letter-spacing:.1em;text-transform:uppercase;color:#17150a;background:var(--gold);border-radius:20px;padding:2px 10px;font-size:10px;font-weight:700}.btn-logout{color:var(--text-muted);border:1px solid var(--border);cursor:pointer;background:0 0;border-radius:8px;padding:7px 16px;font-size:13px;font-weight:600;transition:color .2s,border-color .2s}.btn-logout:hover{color:var(--text);border-color:var(--text-muted)}.admin-tabs{border-bottom:1px solid var(--border);background:var(--dark-card);gap:4px;padding:20px 32px 0;display:flex;overflow-x:auto}.tab-btn{color:var(--text-muted);letter-spacing:.04em;cursor:pointer;text-transform:uppercase;background:0 0;border:none;border-bottom:2px solid #0000;flex-shrink:0;padding:10px 18px 12px;font-size:13px;font-weight:600;transition:color .2s,border-color .2s}.tab-btn:hover{color:var(--text)}.tab-btn.active{color:var(--gold);border-bottom-color:var(--gold)}.admin-content{max-width:1000px;padding:32px}.tab-panel{display:none}.tab-panel.active{display:block}.panel-title{color:var(--gold);margin-bottom:6px;font-family:Cormorant Garamond,serif;font-size:24px;font-weight:600}.panel-desc{color:var(--text-muted);margin-bottom:28px;font-size:13px}.slots-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:20px;display:grid}.slot-card{background:var(--dark-card);border:1px solid var(--border);border-radius:var(--radius);transition:border-color .2s;overflow:hidden}.slot-card:hover{border-color:#c9a84c59}.slot-preview{aspect-ratio:4/3;background:#0d0b08;width:100%;position:relative;overflow:hidden}.slot-preview img{-o-object-fit:cover;object-fit:cover;width:100%;height:100%;transition:opacity .3s}.slot-overlay{opacity:0;background:#00000080;justify-content:center;align-items:center;transition:opacity .2s;display:flex;position:absolute;inset:0}.slot-card:hover .slot-overlay{opacity:1}.slot-overlay-text{color:#fff;letter-spacing:.04em;font-size:13px;font-weight:600}.slot-info{padding:16px}.slot-name{color:var(--text);margin-bottom:4px;font-size:13px;font-weight:600}.slot-key{color:var(--text-muted);margin-bottom:14px;font-family:monospace;font-size:11px}.slot-actions{gap:8px;display:flex}.btn-upload{background:var(--gold);color:#0d0b08;cursor:pointer;text-align:center;border:none;border-radius:8px;flex:1;padding:9px 12px;font-size:13px;font-weight:700;transition:background .2s}.btn-upload:hover{background:var(--gold-light)}.btn-upload:disabled{color:var(--text-muted);cursor:not-allowed;background:#3a3020}.btn-reset{border:1px solid var(--border);color:var(--text-muted);cursor:pointer;background:0 0;border-radius:8px;padding:9px 12px;font-size:12px;font-weight:600;transition:color .2s,border-color .2s}.btn-reset:hover{color:var(--danger);border-color:var(--danger)}.slot-status{min-height:16px;color:var(--text-muted);margin-top:10px;font-size:12px}.slot-status.uploading{color:var(--gold)}.slot-status.success{color:var(--success)}.slot-status.error{color:var(--danger)}.config-card{background:var(--dark-card);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:20px;padding:24px}.config-title{color:var(--gold);letter-spacing:.05em;text-transform:uppercase;margin-bottom:16px;font-size:14px;font-weight:700}.config-row{grid-template-columns:1fr 1fr;gap:16px;display:grid}.config-field{margin-bottom:16px}.info-box{border:1px solid var(--border);color:var(--text-muted);background:#c9a84c12;border-radius:8px;padding:14px 16px;font-size:13px;line-height:1.7}.info-box a{color:var(--gold)}.btn-save-config{background:var(--gold);color:#0d0b08;cursor:pointer;border:none;border-radius:8px;margin-top:4px;padding:11px 28px;font-size:13px;font-weight:700;transition:background .2s}.btn-save-config:hover{background:var(--gold-light)}.gallery-admin-toolbar{flex-wrap:wrap;align-items:center;gap:12px;margin-top:18px;margin-bottom:20px;display:flex}.gallery-btn-action{cursor:pointer;border:none;border-radius:8px;align-items:center;gap:8px;padding:10px 18px;font-family:inherit;font-size:13px;font-weight:600;transition:all .2s;display:inline-flex}.gallery-btn-primary{background:var(--gold);color:#140e08}.gallery-btn-primary:hover{background:var(--gold-light);transform:translateY(-1px)}.gallery-btn-secondary{color:var(--gold-soft);border:1px solid var(--border);background:#ffffff0f}.gallery-btn-secondary:hover{border-color:var(--gold-soft);background:#ffffff1f}.gallery-admin-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:18px;margin-top:10px;display:grid}.gallery-admin-item{border:1px solid var(--border);background:var(--dark-card);border-radius:12px;flex-direction:column;transition:border-color .2s,box-shadow .2s,transform .2s;display:flex;position:relative;overflow:hidden}.gallery-admin-item:hover{border-color:#c9a84c66;box-shadow:0 8px 24px #0006}.gallery-admin-thumb{aspect-ratio:4/3;background:#0d0a07;width:100%;position:relative;overflow:hidden}.gallery-admin-thumb img{-o-object-fit:cover;object-fit:cover;width:100%;height:100%;transition:transform .3s}.gallery-admin-item:hover .gallery-admin-thumb img{transform:scale(1.03)}.gallery-admin-item .item-delete{color:#fff;cursor:pointer;opacity:.85;z-index:3;background:#c0392be0;border:none;border-radius:50%;justify-content:center;align-items:center;width:28px;height:28px;font-size:15px;transition:opacity .2s,transform .2s,background .2s;display:flex;position:absolute;top:8px;right:8px}.gallery-admin-item .item-delete:hover{opacity:1;background:#e74c3c;transform:scale(1.1)}.gallery-admin-order-badge{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);color:var(--gold-soft);background:#000000a6;border:1px solid #ffffff1a;border-radius:4px;padding:2px 7px;font-size:11px;font-weight:700;position:absolute;top:8px;left:8px}.gallery-admin-meta{background:#130f0bf2;border-top:1px solid #ffffff0d;flex-direction:column;gap:8px;padding:12px;display:flex}.gallery-admin-label{text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);margin-bottom:2px;font-size:10px;font-weight:600}.gallery-admin-input{border:1px solid var(--border);color:#fff;box-sizing:border-box;background:#ffffff0a;border-radius:6px;width:100%;padding:7px 10px;font-family:inherit;font-size:13px;transition:border-color .2s}.gallery-admin-input:focus{border-color:var(--gold);outline:none}.gallery-admin-select{color:var(--gold-soft);box-sizing:border-box;background:#1e1710;outline:none;padding:7px 10px;font-weight:500}.gallery-admin-btn-save,.gallery-admin-select{border:1px solid var(--border);cursor:pointer;border-radius:6px;width:100%;font-family:inherit;font-size:12px}.gallery-admin-btn-save{color:var(--gold);background:#c9a84c26;margin-top:4px;padding:6px 10px;font-weight:600;transition:all .2s}.gallery-admin-btn-save:hover{background:var(--gold);color:#120e09}.gallery-add-btn{border:2px dashed var(--border);min-height:240px;color:var(--text-muted);cursor:pointer;background:#ffffff04;border-radius:12px;flex-direction:column;justify-content:center;align-items:center;gap:10px;font-size:28px;transition:border-color .2s,color .2s,background .2s;display:flex}.gallery-add-btn span{letter-spacing:.04em;text-transform:uppercase;font-size:12px;font-weight:600}.gallery-add-btn:hover{border-color:var(--gold);color:var(--gold);background:#c9a84c0a}#admin-toast{background:var(--dark-card);border:1px solid var(--border);color:var(--text);box-shadow:var(--shadow);opacity:0;z-index:9999;border-radius:10px;max-width:340px;padding:14px 22px;font-size:14px;transition:transform .3s,opacity .3s;position:fixed;bottom:28px;right:28px;transform:translateY(80px)}#admin-toast.show{opacity:1;transform:translateY(0)}#admin-toast.success{border-color:var(--success)}#admin-toast.error{border-color:var(--danger)}input[type=file]{display:none}@media (width<=600px){.admin-tabs{padding:16px 16px 0}.admin-content{padding:20px 16px}.admin-header{padding:0 16px}.config-row{grid-template-columns:1fr}}
