:root {
    --bg: #03050a;
    --surface-low: rgba(255,255,255,0.02);
    --surface: rgba(255,255,255,0.04);
    --surface-high: rgba(255,255,255,0.08);
    --border-light: rgba(255,255,255,0.08);
    --border-hover: rgba(255,255,255,0.2);
    --primary: #ffffff;
    --primary-light: #e2e8f0;
    --cream: #f8fafc;
    --muted: #8b97a8;
    --danger: #ef4444;
    --danger-light: #fca5a5;
    --radius-sm: 10px;
    --radius: 16px;
    --radius-lg: 24px;
    --font-serif: 'Cormorant Garamond','Palatino Linotype','Book Antiqua',serif;
    --font-sans: 'Manrope','Inter',system-ui,sans-serif;
    --glow-shadow: 0 0 24px rgba(255,255,255,0.15);
    --fs-xs: 0.75rem;
    --fs-sm: 0.8125rem;
    --fs-base: 0.9375rem;
    --fs-md: 1.0625rem;
    --fs-lg: 1.25rem;
    --fs-xl: 1.5rem;
    --fs-2xl: 2rem;
    --fs-3xl: 2.75rem;
    --lh-tight: 1.15;
    --lh-snug: 1.3;
    --lh-normal: 1.55;
}

*,*::before,*::after{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;font-size:16px;-webkit-tap-highlight-color:transparent;}
body{background:var(--bg);color:var(--cream);font-family:var(--font-sans);font-size:var(--fs-base);font-weight:400;line-height:var(--lh-normal);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden;letter-spacing:0.01em;padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom);}
body::before{content:'';position:fixed;inset:0;z-index:-1;pointer-events:none;opacity:0.025;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");background-repeat:repeat;background-size:200px;}
img{max-width:100%;height:auto;display:block;}
h1,h2,h3,h4{font-family:var(--font-serif);font-weight:600;line-height:var(--lh-tight);letter-spacing:-0.02em;}
::selection{background:var(--primary);color:#000;}
::-webkit-scrollbar{width:6px;}::-webkit-scrollbar-track{background:transparent;}::-webkit-scrollbar-thumb{background:rgba(255,255,255,0.12);border-radius:3px;}
html{scrollbar-width:thin;scrollbar-color:rgba(255,255,255,0.12) transparent;}

.container{max-width:760px;margin:0 auto;padding:0 20px;}
.ambient-glow{position:fixed;top:-20%;left:-10%;width:50vw;height:50vw;background:radial-gradient(circle,rgba(255,255,255,0.025) 0%,transparent 60%);z-index:-1;pointer-events:none;}
.ambient-glow.right{top:40%;left:auto;right:-20%;background:radial-gradient(circle,rgba(59,130,246,0.025) 0%,transparent 60%);}
.lucide{stroke-width:1.5;transition:all 0.3s;}

/* Nav */
.topnav{position:fixed;top:0;width:100%;z-index:100;background:rgba(3,5,10,0.7);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);border-bottom:1px solid var(--border-light);}
.nav-inner{display:flex;align-items:center;justify-content:space-between;height:64px;}
.logo{display:flex;align-items:center;gap:8px;font-family:var(--font-serif);font-size:1.1rem;font-weight:700;color:var(--primary);text-decoration:none;letter-spacing:1.5px;transition:transform 0.3s;}
.logo:hover{transform:scale(1.02);}
.logo .lucide{width:20px;height:20px;}
.nav-links{display:flex;gap:16px;}
.nav-links a{color:var(--muted);text-decoration:none;font-size:var(--fs-sm);font-weight:500;transition:color 0.3s;display:inline-flex;align-items:center;gap:6px;}
.nav-links a .lucide{width:15px;height:15px;}
.nav-links a:hover{color:var(--primary);}
.nav-burger{display:none;background:none;border:1px solid var(--border-light);border-radius:10px;color:var(--cream);cursor:pointer;padding:10px;}
.nav-burger:hover{border-color:var(--border-hover);}
.nav-burger .lucide{width:18px;height:18px;}
.mobile-menu{display:none;flex-direction:column;padding:12px 20px 16px;border-top:1px solid var(--border-light);background:rgba(3,5,10,0.95);}
.mobile-menu.open{display:flex;}
.mobile-menu a{color:var(--muted);text-decoration:none;font-size:var(--fs-base);font-weight:500;padding:10px 0;display:flex;align-items:center;gap:8px;border-bottom:1px solid var(--border-light);transition:color 0.3s;}
.mobile-menu a:last-child{border-bottom:none;}
.mobile-menu a:hover{color:var(--cream);}
.mobile-menu .lucide{width:16px;height:16px;}

/* Buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font-family:var(--font-sans);font-weight:600;font-size:var(--fs-sm);letter-spacing:0.02em;text-decoration:none;border:none;border-radius:999px;cursor:pointer;transition:all 0.35s cubic-bezier(0.25,0.8,0.25,1);-webkit-user-select:none;user-select:none;min-height:44px;}
.btn-primary{background:var(--primary);color:#000;padding:11px 24px;box-shadow:0 4px 15px rgba(255,255,255,0.08);}
.btn-primary:hover{transform:translateY(-2px);box-shadow:var(--glow-shadow);color:#000;}
.btn-primary:active{transform:translateY(0);}
.btn-ghost{background:rgba(255,255,255,0.03);color:var(--cream);border:1px solid var(--border-light);padding:10px 22px;backdrop-filter:blur(10px);}
.btn-ghost:hover{background:rgba(255,255,255,0.08);border-color:var(--primary);color:#fff;transform:translateY(-2px);}
.btn-danger{background:var(--danger);color:#fff;padding:10px 22px;}
.btn-danger:hover{background:#dc2626;transform:translateY(-2px);}
.btn .lucide{width:16px;height:16px;}

.btn-icon{background:none;border:1px solid var(--border-light);border-radius:10px;color:var(--muted);cursor:pointer;padding:6px;display:flex;align-items:center;justify-content:center;transition:all 0.3s;min-width:32px;min-height:32px;-webkit-tap-highlight-color:transparent;}
.btn-icon:hover{border-color:var(--primary);color:var(--primary);}
.btn-icon-danger:hover{border-color:var(--danger);color:var(--danger);}
a.btn-icon{color:var(--muted);text-decoration:none;}a.btn-icon:hover{color:var(--primary);}

/* Auth */
.auth-section{padding:100px 0 32px;}
.auth-card{text-align:center;background:var(--surface);border:1px solid var(--border-light);border-radius:var(--radius-lg);padding:32px 24px;}
.auth-icon{width:48px;height:48px;margin:0 auto 16px;border-radius:50%;background:rgba(255,255,255,0.04);border:1px solid var(--border-light);display:flex;align-items:center;justify-content:center;}
.auth-icon .lucide{width:20px;height:20px;color:var(--primary-light);}
.auth-card h3{font-family:var(--font-sans);font-size:var(--fs-lg);font-weight:600;margin-bottom:6px;}
.auth-card>p{color:var(--muted);font-size:var(--fs-sm);margin-bottom:20px;}
.auth-form{display:flex;gap:10px;max-width:400px;margin:0 auto;}
.auth-form input{flex:1;background:var(--surface-low);border:1px solid var(--border-light);border-radius:999px;padding:10px 18px;color:var(--cream);font-family:var(--font-sans);font-size:var(--fs-sm);outline:none;transition:border-color 0.3s;min-height:44px;}
.auth-form input:focus{border-color:var(--primary);}
.auth-form input::placeholder{color:var(--muted);opacity:0.6;}

/* Stats */
.stats-bar{padding:88px 0 0;}
.stats-inner{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;}
.stat-card{display:flex;flex-direction:column;gap:6px;background:var(--surface);border:1px solid var(--border-light);border-radius:14px;padding:14px 16px;min-height:82px;justify-content:center;}
.stat-val{font-family:var(--font-serif);font-size:1.4rem;font-weight:700;color:var(--primary);letter-spacing:-0.02em;line-height:1;}
.stat-lbl{font-size:0.78rem;color:var(--muted);letter-spacing:0.02em;font-weight:600;}

/* Upload */
.upload-section{padding:20px 0 16px;}
.upload-zone{border:2px dashed var(--border-light);border-radius:var(--radius-lg);padding:36px 24px;text-align:center;cursor:pointer;transition:all 0.4s;background:var(--surface-low);-webkit-user-select:none;user-select:none;touch-action:manipulation;}
.upload-zone:hover,.upload-zone.dragover{border-color:var(--border-hover);background:var(--surface);box-shadow:0 0 40px rgba(255,255,255,0.03);}
.upload-zone.dragover{border-color:var(--primary);}
.upload-zone-icon{width:48px;height:48px;margin:0 auto 12px;border-radius:50%;background:rgba(255,255,255,0.04);border:1px solid var(--border-light);display:flex;align-items:center;justify-content:center;}
.upload-zone-icon .lucide{width:22px;height:22px;color:var(--primary-light);}
.upload-zone h3{font-family:var(--font-sans);font-size:var(--fs-lg);font-weight:600;margin-bottom:6px;}
.upload-zone p{color:var(--muted);font-size:var(--fs-sm);}
.upload-zone input[type="file"]{display:none;}
.upload-zone .btn{margin-top:14px;}

/* Progress */
.progress-container{margin-top:16px;display:none;}
.progress-container.active{display:block;}
.progress-bar-outer{width:100%;height:3px;background:var(--surface);border-radius:2px;overflow:hidden;}
.progress-bar-inner{height:100%;background:var(--primary);border-radius:2px;transition:width 0.3s;width:0%;}
.progress-text{text-align:center;color:var(--muted);font-size:var(--fs-xs);margin-top:8px;}

/* Results */
.results-section{padding:24px 0 32px;display:none;}
.results-section.active{display:block;}
.section-header{text-align:center;margin-bottom:24px;}
.section-icon{width:44px;height:44px;margin:0 auto 10px;border-radius:50%;background:rgba(255,255,255,0.04);border:1px solid var(--border-light);display:flex;align-items:center;justify-content:center;}
.section-icon .lucide{width:18px;height:18px;color:var(--primary-light);}
.section-subtitle{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:2px;color:var(--muted);font-weight:500;margin-bottom:2px;}
.section-title{font-size:var(--fs-2xl);color:var(--cream);}

/* Link Block — imgbb style column */
.link-block{background:var(--surface);border:1px solid var(--border-light);border-radius:var(--radius);padding:16px 20px;margin-bottom:16px;transition:border-color 0.3s;}
.link-block:hover{border-color:var(--border-hover);}
.link-block-header{display:flex;align-items:center;gap:12px;margin-bottom:14px;padding-bottom:14px;border-bottom:1px solid var(--border-light);}
.link-block-thumb{width:48px;height:48px;border-radius:var(--radius-sm);object-fit:cover;flex-shrink:0;}
.link-block-header span{font-family:var(--font-sans);font-size:var(--fs-sm);font-weight:600;color:var(--cream);}

.link-row{display:flex;align-items:center;gap:8px;margin-bottom:8px;background:var(--surface-low);border:1px solid var(--border-light);border-radius:var(--radius-sm);padding:8px 12px;transition:border-color 0.3s;}
.link-row:last-child{margin-bottom:0;}
.link-row:hover{border-color:var(--border-hover);}
.link-row-label{font-size:0.7rem;color:var(--muted);font-weight:600;min-width:56px;flex-shrink:0;text-transform:uppercase;letter-spacing:0.5px;}
.link-row-value{flex:1;font-size:0.72rem;color:var(--cream);word-break:break-all;font-family:'SF Mono','Fira Code','Consolas',monospace;-webkit-user-select:all;user-select:all;line-height:var(--lh-snug);}
.link-row button{background:none;border:1px solid var(--border-light);border-radius:8px;color:var(--muted);cursor:pointer;padding:6px 8px;transition:all 0.3s;flex-shrink:0;display:flex;align-items:center;justify-content:center;min-width:34px;min-height:34px;-webkit-tap-highlight-color:transparent;}
.link-row button:hover{border-color:var(--primary);color:var(--primary);}
.link-row button:active{background:rgba(255,255,255,0.05);}

/* Gallery */
.gallery-section{padding:24px 0 48px;}
.gallery-grid{display:grid;grid-template-columns:1fr;gap:10px;}
.gallery-empty{text-align:center;color:var(--muted);font-size:var(--fs-sm);padding:32px 0;}

.gallery-item{display:flex;align-items:center;gap:12px;background:var(--surface);border:1px solid var(--border-light);border-radius:var(--radius-sm);padding:12px 14px;transition:border-color 0.3s;}
.gallery-item:hover{border-color:var(--border-hover);}
.gallery-thumb{width:56px;height:56px;border-radius:10px;object-fit:cover;flex-shrink:0;cursor:pointer;transition:transform .2s,box-shadow .2s;}
.gallery-thumb:hover{transform:scale(1.05);box-shadow:0 0 12px rgba(255,255,255,.12);}
.gallery-info{flex:1;min-width:0;}
.gallery-id{font-family:'SF Mono','Fira Code','Consolas',monospace;font-size:var(--fs-xs);color:var(--cream);margin-bottom:2px;}
.gallery-meta{font-size:0.7rem;color:var(--muted);}
.gallery-actions{display:flex;gap:4px;flex-shrink:0;flex-wrap:wrap;justify-content:flex-end;}

/* Footer */
.site-footer{padding:40px 0 32px;border-top:1px solid var(--border-light);text-align:center;padding-bottom:calc(32px + env(safe-area-inset-bottom));}
.footer-brand{font-family:var(--font-serif);font-size:var(--fs-lg);font-weight:700;letter-spacing:2px;color:var(--primary);margin-bottom:12px;}
.footer-copy{color:var(--muted);font-size:var(--fs-xs);opacity:0.5;}

/* Toast */
.toast{position:fixed;bottom:calc(24px + env(safe-area-inset-bottom));left:50%;transform:translateX(-50%) translateY(100px);background:rgba(3,5,10,0.95);border:1px solid var(--border-light);border-radius:var(--radius);padding:12px 24px;font-size:var(--fs-sm);color:var(--cream);z-index:200;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);transition:transform 0.4s cubic-bezier(0.25,0.8,0.25,1);pointer-events:none;max-width:calc(100vw - 40px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.toast.show{transform:translateX(-50%) translateY(0);}
.toast.error{border-color:rgba(239,68,68,0.5);color:var(--danger-light);}

/* Modal */
.modal-overlay{position:fixed;inset:0;z-index:300;background:rgba(0,0,0,0.6);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);display:none;align-items:center;justify-content:center;padding:20px;}
.modal-overlay.active{display:flex;}
.modal{background:var(--bg);border:1px solid var(--border-light);border-radius:var(--radius-lg);padding:28px 24px;max-width:360px;width:100%;text-align:center;}
.modal h3{font-family:var(--font-sans);font-size:var(--fs-lg);font-weight:600;margin-bottom:8px;}
.modal p{color:var(--muted);font-size:var(--fs-sm);margin-bottom:20px;line-height:var(--lh-snug);}
.modal-actions{display:flex;gap:10px;justify-content:center;}

/* Responsive */
@media(min-width:641px){
    .container{padding:0 32px;}
    .nav-inner{height:72px;}
    .logo{font-size:1.3rem;}
    .auth-card{padding:40px 32px;}
    .link-row-value{font-size:var(--fs-xs);}
}
@media(max-width:640px){
    .nav-links{display:none;}
    .nav-burger{display:flex;}
    .section-title{font-size:var(--fs-xl);}
    .auth-form{flex-direction:column;align-items:stretch;}
    .auth-form .btn{width:100%;}
    .upload-zone{padding:28px 16px;}
    .upload-zone h3{font-size:var(--fs-base);}
    .stats-inner{grid-template-columns:1fr;gap:10px;}
    .stat-val{font-size:1.15rem;}
    .gallery-item{padding:8px 10px;flex-wrap:wrap;}
    .gallery-thumb{width:36px;height:36px;}
    .gallery-actions{gap:3px;}
    .btn-icon{min-width:28px;min-height:28px;padding:4px;}
    .filter-bar{flex-direction:column;}
    .tag-row{flex-direction:column;align-items:stretch;}
    .tag-row label{min-width:auto;}
    .manage-form{flex-direction:column;align-items:stretch;}
    .manage-form-split{grid-template-columns:1fr;}
}

/* Both-links block */
.link-block.both-links{border-color:rgba(255,255,255,0.15);background:var(--surface-high);}
.link-block.both-links .link-block-header{display:flex;align-items:center;gap:8px;margin-bottom:12px;font-family:var(--font-sans);font-size:var(--fs-sm);font-weight:600;color:var(--primary-light);}
.copy-both{width:100%;margin-top:4px;}

/* Tag form */
.tag-form{margin-top:16px;display:flex;flex-direction:column;gap:10px;}
.tag-row{display:flex;align-items:center;gap:12px;}
.tag-row label{min-width:56px;font-size:var(--fs-xs);color:var(--muted);font-weight:600;text-transform:uppercase;letter-spacing:0.5px;}
.tag-row select,.tag-row input,.manage-form select,.manage-form input{flex:1;background:var(--surface-low);border:1px solid var(--border-light);border-radius:var(--radius-sm);padding:10px 14px;color:var(--cream);font-family:var(--font-sans);font-size:var(--fs-sm);outline:none;transition:border-color 0.3s;min-height:44px;}
.tag-row select,.manage-form select{appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%238b97a8' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;}
.tag-row select:focus,.tag-row input:focus,.manage-form select:focus,.manage-form input:focus{border-color:var(--primary);}
.tag-row input::placeholder,.manage-form input::placeholder{color:var(--muted);opacity:.7;}
.btn-upload{width:100%;}

/* Filter bar */
.filter-bar{display:flex;gap:10px;margin-bottom:16px;}
.filter-bar select{flex:1;background:var(--surface-low);border:1px solid var(--border-light);border-radius:var(--radius-sm);padding:8px 14px;color:var(--cream);font-family:var(--font-sans);font-size:var(--fs-xs);outline:none;min-height:40px;appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 24 24' fill='none' stroke='%238b97a8' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center;}
.filter-bar select:focus{border-color:var(--primary);}

/* Location manager */
.manage-section{padding:8px 0 16px;}
.manage-card{background:var(--surface);border:1px solid var(--border-light);border-radius:var(--radius-lg);padding:18px;display:flex;flex-direction:column;gap:12px;}
.manage-form{display:flex;gap:10px;align-items:center;}
.manage-form-split{display:grid;grid-template-columns:1fr 1fr auto;gap:10px;}
.location-list{display:flex;flex-direction:column;gap:10px;margin-top:6px;}
.location-item{background:var(--surface-low);border:1px solid var(--border-light);border-radius:var(--radius);padding:14px;}
.location-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px;}
.location-city{font-family:var(--font-sans);font-size:var(--fs-md);font-weight:600;color:var(--cream);}
.location-chips{display:flex;flex-wrap:wrap;gap:8px;}
.location-chip{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border-radius:999px;background:rgba(255,255,255,0.05);border:1px solid rgba(255,255,255,0.12);font-size:0.72rem;color:var(--cream);}
.location-delete{border:none;background:none;color:var(--danger-light);cursor:pointer;font-size:0.9rem;line-height:1;padding:4px 8px;min-width:32px;min-height:32px;}
.location-delete:hover{color:var(--danger);}

/* Tags */
.gallery-tags{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:4px;}
.tag{font-size:0.65rem;padding:3px 8px;border-radius:999px;font-weight:600;letter-spacing:0.3px;}
.tag-product{background:rgba(255,255,255,0.06);border:1px solid rgba(255,255,255,0.12);color:var(--cream);}
.tag-batch{background:rgba(34,197,94,0.12);border:1px solid rgba(34,197,94,0.24);color:#bbf7d0;}
.tag-city{background:rgba(168,85,247,0.12);border:1px solid rgba(168,85,247,0.25);color:#d8b4fe;}
.tag-district{background:rgba(59,130,246,0.1);border:1px solid rgba(59,130,246,0.2);color:#93c5fd;}

/* Preview overlay */
.preview-overlay{position:fixed;inset:0;z-index:400;background:rgba(0,0,0,.85);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);display:none;align-items:center;justify-content:center;cursor:zoom-out;padding:20px;}
.preview-overlay.active{display:flex;}
.preview-overlay img{max-width:90vw;max-height:85vh;object-fit:contain;border-radius:12px;box-shadow:0 0 40px rgba(0,0,0,.5);}
.preview-close{position:fixed;top:16px;right:16px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.15);border-radius:999px;color:#fff;width:40px;height:40px;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:1.2rem;z-index:401;transition:background .2s;}
.preview-close:hover{background:rgba(255,255,255,.15);}
