:root{--primary:#ff69b4;--primary-dark:#e91e63;--secondary:#6b7280;--danger:#f87171;--success:#34d399;--bg:#fff;--bg-secondary:#f9fafb;--bg-tertiary:#e5e7eb;--border:#d1d5db;--text:#111827;--text-secondary:#6b7280}*{box-sizing:border-box;margin:0;padding:0}html,body,#app{width:100%;height:100%}body{background-color:var(--bg-secondary);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif;line-height:1.6}.login-container{flex-direction:column;justify-content:center;align-items:center;max-width:400px;height:100%;margin:0 auto;padding:2rem;display:flex}.login-container h1{text-align:center;margin-bottom:.5rem;font-size:2.5rem}.login-subtitle{color:var(--text-secondary);text-align:center;margin-bottom:2rem;font-size:1.1rem}.form-group{flex-direction:column;width:100%;margin-bottom:1.5rem;display:flex}.form-group label{margin-bottom:.5rem;font-weight:600}.form-group input{border:1px solid var(--border);background-color:var(--bg);color:var(--text);border-radius:.5rem;padding:.75rem;font-size:1rem}.form-group input:focus{border-color:var(--primary);outline:none;box-shadow:0 0 0 3px #ff69b433}.btn-primary,.btn-secondary,.btn-danger{cursor:pointer;border:none;border-radius:.5rem;padding:.75rem 1.5rem;font-size:1rem;font-weight:600;transition:all .2s}.btn-primary{background-color:var(--primary);color:#fff}.btn-primary:hover{background-color:var(--primary-dark)}.btn-secondary{background-color:var(--secondary);color:#fff}.btn-secondary:hover{opacity:.8}.btn-danger{background-color:var(--danger);color:#fff}.btn-danger:hover{opacity:.8}button:disabled{opacity:.5;cursor:not-allowed}#main-app{flex-direction:column;height:100%;display:flex}.app-header{background-color:var(--bg);border-bottom:2px solid var(--border);justify-content:space-between;align-items:center;padding:1.5rem;display:flex;box-shadow:0 1px 3px #0000000d}.app-header-brand h1{color:var(--primary);margin:0;font-size:1.5rem}.app-container{flex:1;gap:0;display:flex;overflow:hidden}.input-panel,.gallery-panel{flex:1;padding:2rem;overflow-y:auto}.input-panel{background-color:var(--bg);border-right:2px solid var(--border);max-width:500px}.input-panel h2{color:var(--text);margin-bottom:1rem;font-size:1.25rem}#prompt-input{border:2px solid var(--border);resize:vertical;background-color:var(--bg);width:100%;color:var(--text);border-radius:.5rem;margin-bottom:1rem;padding:1rem;font-family:inherit;font-size:1rem}#prompt-input:focus{border-color:var(--primary);outline:none;box-shadow:0 0 0 3px #ff69b433}.style-selector{margin-bottom:1rem}.style-selector label{margin-bottom:.5rem;font-weight:600;display:block}.style-buttons{gap:.5rem;display:flex}.style-btn{border:2px solid var(--border);background-color:var(--bg);cursor:pointer;text-align:center;color:var(--text);border-radius:.5rem;flex:1;padding:.75rem;font-size:.95rem;transition:all .2s}.style-btn:hover{border-color:var(--primary);background-color:#ff69b40d}.style-btn.active{border-color:var(--primary);color:var(--primary);background-color:#ff69b41a;font-weight:600}#generate-btn{width:100%;margin-bottom:.5rem}.upload-section{border-top:2px solid var(--border);margin-top:2rem;padding-top:2rem}.upload-section h3{color:var(--text);margin-bottom:1rem;font-size:1.1rem}.upload-zone{border:2px dashed var(--border);text-align:center;cursor:pointer;background-color:var(--bg-secondary);border-radius:.5rem;padding:2rem;transition:all .2s}.upload-zone:hover,.upload-zone.drag-over{border-color:var(--primary);background-color:#ff69b40d}.upload-zone p{color:var(--text);margin:.5rem 0}.upload-hint{color:var(--text-secondary);font-size:.85rem}.error-message,.status-message{border-radius:.5rem;margin-top:.5rem;padding:.75rem;font-size:.9rem;display:none}.error-message.show,.status-message.show{display:block}.error-message,.status-message.error{color:#dc2626;background-color:#ef44441a;border:1px solid #fecaca}.status-message.info{color:#2563eb;background-color:#3b82f61a;border:1px solid #bfdbfe}.status-message.success{color:#059669;background-color:#10b9811a;border:1px solid #a7f3d0}.panel-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.5rem;display:flex}.panel-header h2{margin:0;font-size:1.25rem}.filter-buttons{gap:.5rem;display:flex}.filter-btn{border:1px solid var(--border);background-color:var(--bg);cursor:pointer;color:var(--text);border-radius:.5rem;padding:.5rem 1rem;font-size:.9rem;transition:all .2s}.filter-btn:hover{background-color:var(--bg-secondary)}.filter-btn.active{background-color:var(--primary);color:#fff;border-color:var(--primary)}.gallery{grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:1.5rem;display:grid}.gallery-item{background-color:var(--bg);border:2px solid var(--border);cursor:pointer;border-radius:.5rem;transition:all .2s;overflow:hidden}.gallery-item:hover{border-color:var(--primary);transform:translateY(-2px);box-shadow:0 4px 12px #ff69b433}.gallery-item img{object-fit:cover;width:100%;height:250px;display:block}.gallery-item-info{padding:1rem}.gallery-item-info h3{color:var(--text);margin:0 0 .5rem;font-size:1rem}.gallery-item-meta{color:var(--text-secondary);margin-bottom:.5rem;font-size:.85rem}.completed-badge,.upload-badge{border-radius:.25rem;margin-top:.5rem;padding:.25rem .5rem;font-size:.75rem;display:inline-block}.completed-badge{color:#059669;background-color:#10b98133}.upload-badge{color:#2563eb;background-color:#3b82f633}.empty-message{text-align:center;color:var(--text-secondary);padding:3rem;font-size:1.1rem}.image-viewer{z-index:1000;background-color:#000c;justify-content:center;align-items:center;padding:1rem;animation:.2s fadeIn;display:flex;position:fixed;inset:0}.image-viewer.hidden{display:none}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.viewer-modal{background-color:var(--bg);border-radius:1rem;flex-direction:column;width:100%;max-width:1000px;max-height:90vh;animation:.3s slideUp;display:flex;box-shadow:0 20px 50px #00000080}.viewer-header{border-bottom:2px solid var(--border);background-color:var(--bg-secondary);border-radius:1rem 1rem 0 0;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;padding:1.5rem;display:flex}.viewer-header h2{min-width:200px;color:var(--text);flex:1;margin:0}.viewer-actions{flex-wrap:wrap;gap:.5rem;display:flex}.viewer-actions button{padding:.5rem 1rem;font-size:.9rem}.viewer-content{flex-direction:column;flex:1;align-items:center;padding:2rem;display:flex;overflow-y:auto}#viewer-image{border:2px solid var(--border);border-radius:.5rem;max-width:100%;max-height:60vh;margin-bottom:1rem}.viewer-meta{text-align:center;color:var(--text-secondary);font-size:.9rem}.viewer-meta p{margin:.25rem 0}.print-preview{z-index:2000;background-color:#fff;display:none;position:fixed;inset:0}.print-preview.hidden{display:none}.print-container{justify-content:center;align-items:center;width:100%;height:100%;padding:1rem;display:flex}#print-image{max-width:100%;max-height:100%;display:block}@media print{body{background:#fff;margin:0;padding:0}.app-header,.app-container,.viewer-header,.viewer-actions,.filter-buttons,.btn-primary,.btn-secondary,.btn-danger,button,.image-viewer,.viewer-modal,.viewer-meta,.gallery-item-info,.completed-badge,.upload-badge,.status-message,nav,header,footer{display:none!important}.print-preview{background:#fff;width:100%;height:100%;position:static;display:block!important}.print-container{justify-content:center;align-items:center;width:100%;height:100%;margin:0;padding:0;display:flex}#print-image{page-break-inside:avoid;width:100%;max-width:8.5in;height:auto;max-height:11in;margin:0 auto;display:block}@page{size:letter;margin:.25in}*{overflow:visible!important}}@media (width<=768px){.app-container{flex-direction:column}.input-panel{border-right:none;border-bottom:2px solid var(--border);max-width:none}.style-buttons{flex-direction:row}.panel-header{flex-direction:column;align-items:flex-start}.filter-buttons{width:100%}.gallery{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:1rem}.gallery-item img{height:150px}.viewer-modal{max-height:95vh;margin:.5rem}.viewer-header{flex-direction:column;align-items:stretch}.viewer-actions{width:100%}.viewer-actions button{flex:1}.input-panel,.gallery-panel{padding:1rem}}@media (width<=480px){.app-header h1{font-size:1.1rem}.login-container h1{font-size:2rem}.style-btn{padding:.5rem;font-size:.85rem}.btn-primary,.btn-secondary,.btn-danger{padding:.5rem 1rem;font-size:.9rem}.viewer-actions{flex-direction:column}.viewer-actions button{width:100%}.gallery{grid-template-columns:1fr}}
