@import url('https://fonts.googleapis.com/css2?family=DM+Sans:ital,opsz,wght@0,9..40,300..700;1,9..40,300..700&family=Space+Mono:wght@400;700&display=swap');

:root {
    --bg-primary: #0a0e14; --bg-secondary: #12171f; --bg-card: #171d27; --bg-card-hover: #1c2433;
    --bg-input: #0f1319; --border-color: #1e2736; --border-hover: #2a3546;
    --text-primary: #e8ecf2; --text-secondary: #8895a7; --text-muted: #556073; --text-label: #6b7a8d;
    --accent: #e8913a; --accent-hover: #f0a050; --accent-dim: rgba(232,145,58,0.12); --accent-border: rgba(232,145,58,0.25);
    --success: #3ecf72; --danger: #e84057; --warning: #e8c13a; --info: #3a9be8;
    --font-body: 'DM Sans', -apple-system, BlinkMacSystemFont, sans-serif;
    --font-mono: 'Space Mono', monospace;
    --max-width: 1440px; --radius-sm: 6px; --radius-md: 10px; --radius-lg: 16px; --header-height: 64px;
}

[data-theme="light"] {
    --bg-primary: #f4f5f7; --bg-secondary: #ffffff; --bg-card: #ffffff; --bg-card-hover: #f9fafb;
    --bg-input: #f0f1f3; --border-color: #e0e3e8; --border-hover: #c8cdd4;
    --text-primary: #1a1e24; --text-secondary: #5a6577; --text-muted: #8895a7; --text-label: #6b7a8d;
    --accent: #d07820; --accent-hover: #c06a15; --accent-dim: rgba(208,120,32,0.08);
    --accent-border: rgba(208,120,32,0.2);
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{font-size:16px;-webkit-font-smoothing:antialiased;scroll-behavior:smooth}
body{font-family:var(--font-body);background:var(--bg-primary);color:var(--text-primary);min-height:100vh;line-height:1.6}
a{color:var(--accent);text-decoration:none;transition:color .2s}
a:hover{color:var(--accent-hover)}
img{max-width:100%;height:auto;display:block}

/* Header */
.site-header{position:sticky;top:0;z-index:100;background:rgba(10,14,20,0.85);backdrop-filter:blur(20px);border-bottom:1px solid var(--border-color);height:var(--header-height)}
[data-theme="light"] .site-header{background:rgba(255,255,255,0.9)}
.header-inner{max-width:var(--max-width);margin:0 auto;padding:0 24px;height:100%;display:flex;align-items:center;gap:16px}
.site-logo{display:flex;align-items:center;gap:10px;color:var(--text-primary);font-family:var(--font-mono);font-weight:700;font-size:1.05rem;letter-spacing:-.5px;flex-shrink:0}
.site-logo img{height:32px;width:32px;object-fit:contain;filter:invert(1);flex-shrink:0}
[data-theme="light"] .site-logo img{filter:none}
.site-logo span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.header-nav{display:flex;align-items:center;gap:8px;margin-left:auto}
.nav-links{display:flex;align-items:center;gap:4px;list-style:none}
.nav-links a{color:var(--text-secondary);padding:8px 14px;border-radius:var(--radius-sm);font-size:.88rem;font-weight:500;transition:all .2s;white-space:nowrap}
.nav-links a:hover,.nav-links a.active{color:var(--text-primary);background:var(--accent-dim)}
.nav-links .nav-admin{color:var(--accent);border:1px solid var(--accent-border)}

/* Search input in nav */
.nav-search-item{list-style:none}
.nav-search-input{background:var(--bg-input);border:1px solid var(--border-color);border-radius:20px;padding:6px 14px;color:var(--text-primary);font-size:.85rem;width:160px;transition:all .2s;font-family:var(--font-body)}
.nav-search-input:focus{outline:none;border-color:var(--accent);width:210px}
.nav-search-input::placeholder{color:var(--text-muted)}

/* Theme toggle — always visible, always last */
.theme-toggle{background:none;border:1px solid var(--border-color);border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;padding:6px 10px;font-size:1rem;transition:all .2s;display:flex;align-items:center;flex-shrink:0}
.theme-toggle:hover{border-color:var(--accent);color:var(--text-primary)}

/* Burger — hidden on desktop */
.nav-toggle{display:none;background:none;border:none;color:var(--text-primary);font-size:1.5rem;cursor:pointer;padding:4px;flex-shrink:0}

/* Desktop: search first in nav row, then links, toggle outside nav-links */
@media(min-width:769px){
    .nav-search-item{order:-1}
}

/* Mobile */
@media(max-width:768px){
    .header-inner{padding:0 12px}
    .site-logo span{display:none !important}
    .site-logo{gap:0}
    .nav-toggle{display:block}
    .nav-links{display:none;position:absolute;top:var(--header-height);left:0;right:0;flex-direction:column;background:var(--bg-secondary);border-bottom:1px solid var(--border-color);padding:16px;gap:4px;z-index:200;box-shadow:0 8px 30px rgba(0,0,0,.4)}
    .nav-links.open{display:flex}
    .nav-links a{display:block;padding:12px 16px}
    .nav-search-item{padding:8px 16px}
    .nav-search-input{width:100% !important;border-radius:var(--radius-sm);padding:10px 14px;font-size:.9rem}
}
@media(max-width:480px){
    .main-content{padding:16px 12px}
    .photo-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:10px}
    .stats-bar{gap:16px;padding:16px}
    .stat-value{font-size:1.1rem}
    .search-form{padding:16px}
    .search-grid{grid-template-columns:1fr}
    .imgview-details{grid-template-columns:1fr}
}

/* Main */
.main-content{max-width:var(--max-width);margin:0 auto;padding:32px 24px;min-height:calc(100vh - var(--header-height) - 80px)}

/* Sections */
.section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px;padding-bottom:12px;border-bottom:1px solid var(--border-color)}
.section-title{font-family:var(--font-mono);font-size:.85rem;font-weight:700;text-transform:uppercase;letter-spacing:1.5px;color:var(--text-muted)}
.section-title .count{color:var(--accent);margin-left:8px}
.section-link{font-size:.85rem;color:var(--text-muted);font-weight:500}

/* Photo grid */
.photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px}
.photo-grid.compact{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px}
.photo-grid.large{grid-template-columns:1fr}

.photo-card{background:var(--bg-card);border-radius:var(--radius-md);overflow:hidden;border:1px solid var(--border-color);transition:all .25s;cursor:pointer;position:relative;text-decoration:none;color:inherit;display:block}
.photo-card:hover{border-color:var(--border-hover);background:var(--bg-card-hover);transform:translateY(-2px);box-shadow:0 8px 30px rgba(0,0,0,.3)}
.photo-card .thumb-wrap{aspect-ratio:4/3;overflow:hidden;background:var(--bg-primary);position:relative}
.photo-card .thumb-wrap img{width:100%;height:100%;object-fit:cover;transition:transform .4s}
.photo-card:hover .thumb-wrap img{transform:scale(1.05)}
.photo-card .card-info{padding:12px 14px}
.photo-card .card-reg{font-family:var(--font-mono);font-weight:700;font-size:.95rem;color:var(--text-primary);letter-spacing:.5px}
.photo-card .card-airline{font-size:.8rem;color:var(--text-secondary);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.photo-card .card-meta{display:flex;align-items:center;justify-content:space-between;margin-top:8px;font-size:.75rem;color:var(--text-muted)}

/* Large view mode cards */
.photo-grid.large .photo-card{display:grid;grid-template-columns:1fr 300px}
.photo-grid.large .thumb-wrap{aspect-ratio:auto;max-height:500px}
.photo-grid.large .card-info{padding:20px;display:flex;flex-direction:column;justify-content:center}
@media(max-width:768px){.photo-grid.large .photo-card{grid-template-columns:1fr}}

/* Regs-only view */
.regs-list{display:flex;flex-wrap:wrap;gap:6px}
.regs-list a{font-family:var(--font-mono);font-size:.85rem;font-weight:600;padding:4px 10px;background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-sm);color:var(--text-primary);transition:all .15s}
.regs-list a:hover{border-color:var(--accent);background:var(--accent-dim)}

/* View mode switcher */
.view-modes{display:flex;gap:4px}
.view-modes button{background:var(--bg-input);border:1px solid var(--border-color);border-radius:var(--radius-sm);color:var(--text-muted);cursor:pointer;padding:6px 10px;font-size:.85rem;transition:all .15s}
.view-modes button.active,.view-modes button:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-dim)}

/* Image view */
.imgview-container{max-width:1200px;margin:0 auto}
.imgview-photo{width:100%;border-radius:var(--radius-lg);overflow:hidden;background:var(--bg-secondary);border:1px solid var(--border-color);margin-bottom:24px}
.imgview-photo img{width:100%;cursor:zoom-in}
.imgview-details{display:grid;grid-template-columns:1fr 1fr;gap:24px}
@media(max-width:768px){.imgview-details{grid-template-columns:1fr}}
.detail-card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:24px}
.detail-card h3{font-family:var(--font-mono);font-size:.75rem;text-transform:uppercase;letter-spacing:1.5px;color:var(--text-muted);margin-bottom:16px}
.detail-row{display:flex;justify-content:space-between;padding:8px 0;border-bottom:1px solid var(--border-color);font-size:.9rem}
.detail-row:last-child{border-bottom:none}
.detail-row .label{color:var(--text-label);font-weight:500}
.detail-row .value{color:var(--text-primary);font-weight:500;text-align:right}
.detail-row .value a{color:var(--accent)}

/* Search */
.search-form{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:28px;margin-bottom:32px}
.search-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:16px}
.form-group{display:flex;flex-direction:column;gap:6px}
.form-group label{font-size:.78rem;font-weight:600;color:var(--text-label);text-transform:uppercase;letter-spacing:.5px}
.form-group input,.form-group select,.form-group textarea{background:var(--bg-input);border:1px solid var(--border-color);border-radius:var(--radius-sm);padding:10px 14px;color:var(--text-primary);font-family:var(--font-body);font-size:.9rem;transition:border-color .2s}
.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-dim)}
.form-group textarea{resize:vertical;min-height:80px}

/* Optgroup styling */
.form-group select optgroup{font-weight:700;color:var(--text-primary)}

/* Buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 20px;border-radius:var(--radius-sm);font-family:var(--font-body);font-size:.9rem;font-weight:600;border:none;cursor:pointer;transition:all .2s;text-decoration:none}
.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover{background:var(--accent-hover);color:#fff}
.btn-secondary{background:var(--bg-input);color:var(--text-secondary);border:1px solid var(--border-color)}.btn-secondary:hover{border-color:var(--border-hover);color:var(--text-primary)}
.btn-danger{background:var(--danger);color:#fff}
.btn-sm{padding:6px 14px;font-size:.8rem}
.btn-lg{padding:14px 32px;font-size:1rem}
.btn-block{width:100%}

/* Stats */
.stats-bar{display:flex;gap:32px;margin-bottom:40px;padding:20px 28px;background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-md);flex-wrap:wrap}
.stat-item{display:flex;flex-direction:column}
.stat-value{font-family:var(--font-mono);font-size:1.4rem;font-weight:700;color:var(--accent)}
.stat-label{font-size:.8rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px}

/* Gallery selector */
.gallery-selector{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;margin-bottom:32px}
.gallery-card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:24px;transition:all .2s;display:block;color:inherit}
.gallery-card:hover{border-color:var(--accent-border);background:var(--bg-card-hover)}
.gallery-card .gallery-name{font-size:1.1rem;font-weight:700;margin-bottom:4px}
.gallery-card .gallery-count{color:var(--text-muted);font-size:.85rem}

/* Admin layout */
.admin-layout{display:grid;grid-template-columns:240px 1fr;min-height:calc(100vh - var(--header-height))}
@media(max-width:900px){.admin-layout{grid-template-columns:1fr}.admin-sidebar{display:none}.admin-sidebar.open{display:block;position:fixed;z-index:50;left:0;top:var(--header-height);bottom:0;width:260px}}
.admin-sidebar{background:var(--bg-secondary);border-right:1px solid var(--border-color);padding:24px 16px}
.admin-sidebar .sidebar-nav{list-style:none;display:flex;flex-direction:column;gap:4px}
.admin-sidebar .sidebar-nav a{display:flex;align-items:center;gap:10px;padding:10px 14px;border-radius:var(--radius-sm);color:var(--text-secondary);font-size:.9rem;font-weight:500;transition:all .15s}
.admin-sidebar .sidebar-nav a:hover,.admin-sidebar .sidebar-nav a.active{background:var(--accent-dim);color:var(--text-primary)}
.admin-sidebar .sidebar-nav a.active{border-left:3px solid var(--accent)}
.admin-content{padding:32px;overflow-x:auto}
.admin-content h1{font-size:1.5rem;font-weight:700;margin-bottom:8px}
.admin-content .subtitle{color:var(--text-secondary);margin-bottom:28px}

/* Upload */
.upload-dropzone{border:2px dashed var(--border-color);border-radius:var(--radius-lg);padding:60px 40px;text-align:center;cursor:pointer;transition:all .25s;background:var(--bg-card)}
.upload-dropzone:hover,.upload-dropzone.dragover{border-color:var(--accent);background:var(--accent-dim)}
.upload-dropzone .drop-icon{font-size:3rem;margin-bottom:16px}
.upload-dropzone .drop-text{font-size:1.1rem;color:var(--text-secondary);margin-bottom:8px}
.upload-dropzone .drop-hint{font-size:.85rem;color:var(--text-muted)}
.upload-progress{margin-top:24px}
.upload-item{display:flex;align-items:center;gap:12px;padding:10px 14px;background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-sm);margin-bottom:8px}
.upload-item .upload-thumb{width:48px;height:36px;object-fit:cover;border-radius:4px}
.upload-item .upload-name{flex:1;font-size:.85rem;color:var(--text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.upload-item .upload-status{font-size:.8rem;font-weight:600}
.upload-item .upload-status.success{color:var(--success)}
.upload-item .upload-status.error{color:var(--danger)}
.upload-item .upload-status.uploading{color:var(--info)}
.progress-bar{width:120px;height:4px;background:var(--bg-input);border-radius:2px;overflow:hidden}
.progress-bar .fill{height:100%;background:var(--accent);border-radius:2px;transition:width .3s}

/* Tag wizard */
.tag-wizard{display:grid;grid-template-columns:1fr 400px;gap:24px;align-items:start}
@media(max-width:900px){.tag-wizard{grid-template-columns:1fr}}
.tag-wizard .preview-panel{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-md);overflow:hidden}
.tag-wizard .preview-panel img{width:100%;max-height:600px;object-fit:contain;background:#000}
.tag-wizard .preview-nav{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-top:1px solid var(--border-color)}
.tag-wizard .preview-counter{font-family:var(--font-mono);font-size:.85rem;color:var(--text-muted)}
.tag-wizard .form-panel{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:24px}
.tag-wizard .form-panel .form-group{margin-bottom:16px}

/* Pagination */
.pagination{display:flex;align-items:center;justify-content:center;gap:6px;margin-top:32px;flex-wrap:wrap}
.pagination a,.pagination span{display:inline-flex;align-items:center;justify-content:center;min-width:38px;height:38px;padding:0 10px;border-radius:var(--radius-sm);font-size:.85rem;font-weight:500;border:1px solid var(--border-color);color:var(--text-secondary);transition:all .15s}
.pagination a:hover{border-color:var(--accent);color:var(--accent)}
.pagination .active{background:var(--accent);border-color:var(--accent);color:#fff}
.pagination .ellipsis{border:none;color:var(--text-muted)}

/* Tables */
.data-table{width:100%;border-collapse:collapse}
.data-table th,.data-table td{padding:12px 16px;text-align:left;border-bottom:1px solid var(--border-color);font-size:.9rem}
.data-table th{font-family:var(--font-mono);font-size:.75rem;text-transform:uppercase;letter-spacing:1px;color:var(--text-muted);font-weight:600}
.data-table td{color:var(--text-secondary)}
.data-table tr:hover td{background:var(--accent-dim)}

/* Footer */
.site-footer{border-top:1px solid var(--border-color);padding:24px;text-align:center;font-size:.8rem;color:var(--text-muted)}
.site-footer a{color:var(--text-muted)}
.site-footer a:hover{color:var(--accent)}

/* Login */
.login-container{max-width:400px;margin:80px auto}
.login-card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:40px}
.login-card h1{font-size:1.3rem;margin-bottom:24px;text-align:center}
.login-card .form-group{margin-bottom:18px}

/* Alerts */
.alert{padding:12px 16px;border-radius:var(--radius-sm);font-size:.85rem;margin-bottom:16px}
.alert-error{background:rgba(232,64,87,0.1);border:1px solid rgba(232,64,87,0.2);color:var(--danger)}
.alert-success{background:rgba(62,207,114,0.1);border:1px solid rgba(62,207,114,0.2);color:var(--success)}
.alert-warning{background:rgba(232,193,58,0.1);border:1px solid rgba(232,193,58,0.2);color:var(--warning)}

/* Lightbox */
.lightbox-overlay{position:fixed;inset:0;background:rgba(0,0,0,.95);z-index:1000;display:flex;align-items:center;justify-content:center;cursor:zoom-out;opacity:0;visibility:hidden;transition:opacity .3s,visibility .3s}
.lightbox-overlay.active{opacity:1;visibility:visible}
.lightbox-overlay img{max-width:95vw;max-height:95vh;object-fit:contain}
.lightbox-close{position:absolute;top:20px;right:24px;background:none;border:none;color:#fff;font-size:2rem;cursor:pointer;opacity:.7;transition:opacity .2s}
.lightbox-close:hover{opacity:1}

/* Install */
.install-container{max-width:560px;margin:60px auto}
.install-card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:40px}
.install-card h1{font-size:1.5rem;margin-bottom:8px}
.install-card .subtitle{color:var(--text-secondary);margin-bottom:32px}
.install-card .form-group{margin-bottom:20px}
.check-list{list-style:none;margin-bottom:24px}
.check-list li{padding:8px 0;display:flex;align-items:center;gap:10px;font-size:.9rem}
.check-list .ok{color:var(--success)}.check-list .fail{color:var(--danger)}

/* Impressum page */
.legal-page{max-width:800px;margin:0 auto}
.legal-page h1{font-size:1.8rem;margin-bottom:24px}
.legal-page h2{font-size:1.2rem;margin-top:28px;margin-bottom:12px;color:var(--text-secondary)}
.legal-page p{margin-bottom:12px;color:var(--text-secondary);line-height:1.7}

/* Auto-fill hint */
.autofill-hint{margin-top:8px;padding:10px 14px;background:var(--accent-dim);border:1px solid var(--accent-border);border-radius:var(--radius-sm);font-size:.83rem;color:var(--text-secondary)}
.autofill-hint strong{color:var(--accent)}
.autofill-hint .apply-btn{background:var(--accent);color:#fff;border:none;padding:4px 12px;border-radius:4px;cursor:pointer;font-size:.8rem;font-weight:600;margin-left:8px}

/* Batch location selector */
.batch-location{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:16px 20px;margin-bottom:20px;display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.batch-location label{font-size:.85rem;font-weight:600;color:var(--text-label);white-space:nowrap}
.batch-location select{background:var(--bg-input);border:1px solid var(--border-color);border-radius:var(--radius-sm);padding:8px 12px;color:var(--text-primary);font-family:var(--font-body);font-size:.88rem}

/* Utilities */
.mt-4{margin-top:32px}.mb-4{margin-bottom:32px}.mb-2{margin-bottom:16px}
.text-center{text-align:center}.text-muted{color:var(--text-muted)}
.flex{display:flex}.gap-2{gap:16px}.gap-1{gap:8px}.flex-wrap{flex-wrap:wrap}
.items-center{align-items:center}.justify-between{justify-content:space-between}
.hidden{display:none!important}
