:root{--bg-primary: #1a1a1a;--bg-secondary: #252525;--bg-tertiary: #111111;--text-primary: #e0e0e0;--text-secondary: #999999;--accent: #4a90a4;--accent-hover: #5ba3b8;--border: #333333;--error: #e74c3c;--success: #27ae60;--overlay-bg: rgba(37, 37, 37, .8);--overlay-text: #e0e0e0;--overlay-text-secondary: #bbbbbb}[data-theme=light]{--bg-primary: #e8e8e8;--bg-secondary: #f5f5f5;--bg-tertiary: #d4d4d4;--text-primary: #1a1a2e;--text-secondary: #4a4a4a;--accent: #3a7a8e;--accent-hover: #2d6070;--border: #b8b8b8;--error: #c62828;--success: #2e7d32;--overlay-bg: rgba(255, 255, 255, .85);--overlay-text: #1a1a2e;--overlay-text-secondary: #4a4a4a}*{box-sizing:border-box;margin:0;padding:0}html{font-size:16px}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,sans-serif;background-color:var(--bg-primary);color:var(--text-primary);line-height:1.6;min-height:100vh}.app{display:flex;flex-direction:column;min-height:100vh}.main-content{flex:1;padding:24px;max-width:1400px;margin:0 auto;width:100%}.header{background-color:var(--bg-tertiary);padding:16px 24px;border-bottom:1px solid var(--border)}.header-content{max-width:1400px;margin:0 auto;display:flex;justify-content:space-between;align-items:center}.brand-link{display:flex;align-items:center;text-decoration:none;color:var(--text-primary)}.brand-logo{height:40px;width:auto}.header-nav{display:flex;gap:16px;align-items:center}.header-nav a{color:var(--text-secondary);text-decoration:none;font-size:16px;padding:8px 16px;border-radius:4px;transition:background-color .2s,color .2s}.header-nav a:hover,.header-nav a:focus{color:var(--text-primary);background-color:var(--bg-secondary)}.nav-divider{width:1px;height:24px;background-color:var(--border);flex-shrink:0}.footer{background-color:var(--bg-tertiary);padding:16px 24px;border-top:1px solid var(--border);text-align:center;color:var(--text-secondary);font-size:14px}.btn{display:inline-flex;align-items:center;justify-content:center;padding:12px 24px;font-size:16px;font-weight:500;border:none;border-radius:4px;cursor:pointer;text-decoration:none;min-width:44px;min-height:44px;transition:background-color .2s,transform .1s}.btn:focus{outline:3px solid var(--accent);outline-offset:2px}.btn-primary{background-color:var(--accent);color:#fff}.btn-primary:hover{background-color:var(--accent-hover)}.btn-secondary{background-color:var(--bg-secondary);color:var(--text-primary);border:1px solid var(--border)}.btn-secondary:hover{background-color:var(--border)}.btn-danger{background-color:var(--error);color:#fff}.btn-danger:hover{background-color:#c0392b}.btn:disabled{opacity:.6;cursor:not-allowed}.form-group{margin-bottom:20px}.form-label{display:block;margin-bottom:8px;font-size:16px;font-weight:500;color:var(--text-primary)}.form-input,.form-select,.form-textarea{width:100%;padding:12px 16px;font-size:16px;background-color:var(--bg-secondary);border:1px solid var(--border);border-radius:4px;color:var(--text-primary);min-height:44px}.form-input:focus,.form-select:focus,.form-textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px #4a90a433}.form-input::placeholder,.form-textarea::placeholder{color:var(--text-secondary)}.form-textarea{min-height:120px;resize:vertical}.form-error{color:var(--error);font-size:14px;margin-top:8px}.form-checkbox-group{display:flex;flex-wrap:wrap;gap:12px}.form-checkbox-label{display:flex;align-items:center;gap:8px;padding:8px 12px;background-color:var(--bg-secondary);border:1px solid var(--border);border-radius:4px;cursor:pointer;min-height:44px;font-size:16px}.form-checkbox-label:hover{border-color:var(--accent)}.form-checkbox-label input[type=checkbox]{width:20px;height:20px;cursor:pointer}.card{background-color:var(--bg-secondary);border:1px solid var(--border);border-radius:8px;overflow:hidden}.gallery-container{display:flex;gap:24px}.filter-panel{width:280px;flex-shrink:0}.filter-panel h2{font-size:18px;margin-bottom:20px;color:var(--text-primary)}.gallery-main{flex:1}.artwork-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:24px}.artwork-card{background-color:var(--bg-secondary);border:1px solid var(--border);border-radius:8px;overflow:hidden;transition:transform .2s,box-shadow .2s;position:relative}.artwork-card:hover{transform:translateY(-4px);box-shadow:0 8px 24px #0000004d}.artwork-card a{text-decoration:none;color:inherit;display:block}.artwork-card-image{width:100%;height:280px;object-fit:cover;background-color:var(--bg-tertiary)}.artwork-card-image-placeholder{width:100%;height:280px;background-color:var(--bg-tertiary);display:flex;align-items:center;justify-content:center;color:var(--text-secondary);font-size:14px}.artwork-card-content{padding:16px;position:absolute;bottom:0;left:0;right:0;background-color:var(--overlay-bg)}.artwork-card-title{font-size:18px;font-weight:600;margin-bottom:8px;color:var(--overlay-text)}.artwork-card-artist{font-size:16px;color:var(--overlay-text-secondary);margin-bottom:4px}.artwork-card-year{font-size:14px;color:var(--overlay-text-secondary)}.pagination{display:flex;justify-content:center;align-items:center;gap:8px;margin-top:32px;flex-wrap:wrap}.pagination-btn{min-width:44px;min-height:44px;padding:8px 16px;background-color:var(--bg-secondary);border:1px solid var(--border);border-radius:4px;color:var(--text-primary);font-size:16px;cursor:pointer;transition:background-color .2s}.pagination-btn:hover:not(:disabled){background-color:var(--border)}.pagination-btn:disabled{opacity:.5;cursor:not-allowed}.pagination-btn.active{background-color:var(--accent);border-color:var(--accent)}.pagination-info{font-size:16px;color:var(--text-secondary);margin:0 16px}.artwork-detail{max-width:1000px;margin:0 auto}.artwork-detail-back{margin-bottom:24px}.artwork-detail-content{display:grid;grid-template-columns:1fr 1fr;gap:40px}.artwork-detail-image{width:100%;border-radius:8px;background-color:var(--bg-secondary)}.artwork-detail-image-placeholder{width:100%;height:400px;background-color:var(--bg-secondary);border-radius:8px;display:flex;align-items:center;justify-content:center;color:var(--text-secondary)}.artwork-detail-info h1{font-size:32px;margin-bottom:16px}.artwork-detail-meta{margin-bottom:24px}.artwork-detail-meta p{font-size:18px;margin-bottom:8px;color:var(--text-secondary)}.artwork-detail-meta strong{color:var(--text-primary)}.artwork-detail-description{margin-top:24px;padding-top:24px;border-top:1px solid var(--border)}.artwork-detail-description h2{font-size:20px;margin-bottom:12px}.artwork-detail-description p{font-size:16px;line-height:1.8;color:var(--text-secondary)}.artwork-detail-single-column{max-width:900px}.artwork-detail-single-column .artwork-detail-title{font-size:36px;margin-bottom:24px;text-align:center}.artwork-detail-single-column .artwork-detail-image-container{display:flex;justify-content:center;margin-bottom:16px}.artwork-detail-single-column .artwork-detail-image-large{max-width:100%;max-height:70vh;border-radius:8px;background-color:var(--bg-secondary);object-fit:contain}.artwork-detail-single-column .artwork-detail-image-placeholder-large{width:100%;height:500px;background-color:var(--bg-secondary);border-radius:8px;display:flex;align-items:center;justify-content:center;color:var(--text-secondary)}.artwork-detail-single-column .artwork-detail-info{margin-top:24px;padding-top:24px;border-top:1px solid var(--border)}.artwork-detail-single-column .artwork-detail-meta{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px 24px}.artwork-detail-tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}.artwork-navigation{display:flex;justify-content:space-between;align-items:center;margin-top:16px;padding:16px 0;gap:16px}.artwork-nav-btn{min-width:120px}.artwork-nav-btn:disabled{opacity:.4;cursor:not-allowed}.artwork-nav-info{color:var(--text-secondary);font-size:14px}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.modal-content{background-color:var(--bg-secondary);border:1px solid var(--border);border-radius:8px;padding:32px;max-width:600px;width:100%;max-height:90vh;overflow-y:auto}.modal-content h2{margin-bottom:24px;font-size:24px}.modal-content h3{color:var(--text-secondary)}.tag{padding:6px 12px;background-color:var(--bg-tertiary);border-radius:4px;font-size:14px;color:var(--text-secondary)}.login-page{max-width:400px;margin:60px auto}.login-page h1{text-align:center;margin-bottom:32px}.login-form{background-color:var(--bg-secondary);padding:32px;border-radius:8px;border:1px solid var(--border)}.login-error{background-color:#e74c3c1a;border:1px solid var(--error);color:var(--error);padding:12px 16px;border-radius:4px;margin-bottom:20px;font-size:16px}.login-footer{text-align:center;margin-top:24px}.login-footer a{color:var(--accent);text-decoration:none}.login-footer a:hover{text-decoration:underline}.editor-page h1{margin-bottom:24px}.editor-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.editor-table{width:100%;border-collapse:collapse;background-color:var(--bg-secondary);border-radius:8px;overflow:hidden}.editor-table th,.editor-table td{padding:16px;text-align:left;border-bottom:1px solid var(--border);font-size:16px}.editor-table th{background-color:var(--bg-tertiary);font-weight:600}.editor-table tr:last-child td{border-bottom:none}.editor-table tr:hover td{background-color:#4a90a41a}.editor-actions{display:flex;gap:8px}.editor-filters{display:flex;gap:16px;margin-bottom:20px;flex-wrap:wrap;align-items:flex-end}.editor-filter-group{display:flex;flex-direction:column;min-width:150px}.editor-filter-group .form-label{margin-bottom:4px;font-size:14px}.editor-filter-group .form-input,.editor-filter-group .form-select{min-height:40px;padding:8px 12px}.editor-thumbnail{width:50px;height:50px;object-fit:cover;border-radius:4px;background-color:var(--bg-tertiary)}.editor-thumbnail-placeholder{width:50px;height:50px;display:flex;align-items:center;justify-content:center;background-color:var(--bg-tertiary);border-radius:4px;color:var(--text-secondary);font-size:12px}.artwork-edit-page{max-width:800px;margin:0 auto}.artwork-edit-page h1{margin-bottom:32px}.artwork-edit-form{background-color:var(--bg-secondary);padding:32px;border-radius:8px;border:1px solid var(--border)}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:20px}.form-actions{display:flex;gap:16px;margin-top:32px;padding-top:32px;border-top:1px solid var(--border)}.image-upload{display:block;border:2px dashed var(--border);border-radius:8px;padding:32px;text-align:center;cursor:pointer;transition:border-color .2s}.image-upload:hover{border-color:var(--accent)}.image-upload input{display:none}.image-upload-preview{max-width:100%;max-height:300px;border-radius:4px;margin-bottom:16px}.image-upload-text{color:var(--text-secondary);font-size:16px}@keyframes spin{to{transform:rotate(360deg)}}.upload-spinner{width:28px;height:28px;border:3px solid var(--border);border-top-color:var(--primary);border-radius:50%;animation:spin .7s linear infinite}.upload-spinner-wrapper{display:flex;align-items:center;gap:10px;color:var(--text-secondary);font-size:14px;padding:12px 0}.loading{display:flex;justify-content:center;align-items:center;padding:60px;color:var(--text-secondary);font-size:18px}.error-message{background-color:#e74c3c1a;border:1px solid var(--error);color:var(--error);padding:16px 20px;border-radius:4px;font-size:16px}.success-message{background-color:#27ae601a;border:1px solid var(--success);color:var(--success);padding:16px 20px;border-radius:4px;font-size:16px}@media (max-width: 900px){.gallery-container{flex-direction:column}.filter-panel{width:100%}.artwork-detail-content,.form-row{grid-template-columns:1fr}}@media (max-width: 600px){.main-content{padding:16px}.header-content{flex-direction:column;gap:16px}.artwork-grid{grid-template-columns:1fr}}.theme-toggle{position:fixed;bottom:20px;left:20px;z-index:999;min-width:44px;min-height:44px;padding:10px 16px;background-color:var(--bg-secondary);border:1px solid var(--border);border-radius:8px;color:var(--text-primary);font-size:14px;cursor:pointer;transition:background-color .2s,color .2s,border-color .2s;box-shadow:0 2px 8px #0003}.theme-toggle:hover{background-color:var(--accent);color:#fff}.artists-page{width:100%}.artists-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.artists-table{width:100%;border-collapse:collapse;background-color:var(--bg-secondary);border-radius:8px;overflow:hidden}.artists-table th,.artists-table td{padding:16px;text-align:left;border-bottom:1px solid var(--border);font-size:16px;color:var(--text-primary)}.artists-table th{background-color:var(--bg-tertiary);font-weight:600}.artists-table tr:last-child td{border-bottom:none}.artists-table tbody tr{cursor:pointer;transition:background-color .15s}.artists-table tbody tr:hover td{background-color:#4a90a41a}.artist-thumbnail{width:50px;height:50px;object-fit:cover;border-radius:50%;background-color:var(--bg-tertiary)}.artist-thumbnail-placeholder{width:50px;height:50px;display:flex;align-items:center;justify-content:center;background-color:var(--bg-tertiary);border-radius:50%;color:var(--text-secondary);font-size:20px}.artist-detail{max-width:900px;margin:0 auto}.artist-detail-back{margin-bottom:24px;display:flex;gap:12px;align-items:center}.artist-detail-title{font-size:36px;margin-bottom:24px;text-align:center;color:var(--text-primary)}.artist-detail-main-image{width:100%;max-height:60vh;object-fit:contain;border-radius:8px;margin-bottom:24px;background-color:var(--bg-secondary)}.artist-detail-bio{font-size:18px;line-height:1.8;color:var(--text-secondary);margin:24px 0;padding:24px 0;border-top:1px solid var(--border);border-bottom:1px solid var(--border);white-space:pre-wrap}.artist-detail-sub-image{width:100%;max-height:50vh;object-fit:contain;border-radius:8px;margin-top:24px;background-color:var(--bg-secondary)}.artist-detail-years{text-align:center;color:var(--text-secondary);font-size:18px;margin-bottom:24px}.artist-detail-no-bio{text-align:center;color:var(--text-secondary);font-size:16px;padding:48px 0}.contact-page{max-width:700px;margin:0 auto}.contact-page h1{margin-bottom:24px}.contact-image{width:100%;max-height:400px;object-fit:contain;border-radius:8px;margin-bottom:24px;background-color:var(--bg-secondary)}.contact-name{font-size:28px;margin-bottom:16px}.contact-details{background-color:var(--bg-secondary);border:1px solid var(--border);border-radius:8px;padding:24px}.contact-details p{margin-bottom:12px;font-size:16px;color:var(--text-primary)}.contact-details p:last-child{margin-bottom:0}.contact-details a{color:var(--accent);text-decoration:none}.contact-details a:hover{text-decoration:underline}.landing-page{max-width:1000px;margin:0 auto;text-align:center}.landing-page h1{margin-bottom:16px}.carousel-visible{opacity:1}.carousel-hidden{opacity:0}
