*{margin:0;padding:0;box-sizing:border-box}html,body{margin:0;padding:0;height:100%}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif;background:#fafafa;color:#333;display:flex;flex-direction:column;height:100dvh;overflow:hidden}.navbar{background:#fff;border-bottom:1px solid #e0e0e0;padding:.6rem 1rem;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;flex-shrink:0}.navbar-left{display:flex;justify-content:flex-start}.navbar-info{font-size:.75rem;color:#666}.navbar-title{font-size:.85rem;font-weight:600;color:#333;display:flex;align-items:center;gap:.4rem}.logo-icon{font-size:1.2rem}.navbar-right{display:flex;justify-content:flex-end;gap:.5rem}.navbar-btn{background:#333;color:#fff;border:none;padding:.4rem .5rem;border-radius:4px;cursor:pointer;transition:background .2s ease;display:flex;align-items:center;justify-content:center}.navbar-btn:hover{background:#111}.container{display:flex;flex-direction:column;flex:1;min-height:0;max-width:1200px;margin:0 auto;width:100%;padding:.5rem 1rem;gap:.5rem}.response-container{flex:1;display:flex;flex-direction:column;background:#fff;border:1px solid #e0e0e0;border-radius:8px;overflow:hidden;min-height:0}.response-header{padding:.75rem 1rem;border-bottom:1px solid #e0e0e0;background:#fafafa;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:.5rem}.response-controls{display:flex;gap:.5rem}.control-btn{background:#fff;border:1px solid #ddd;padding:.4rem .75rem;border-radius:4px;font-size:.8rem;cursor:pointer;display:flex;align-items:center;gap:.4rem;transition:all .2s ease;color:#333}.control-btn:hover{background:#f5f5f5;border-color:#ccc}.control-btn.active{background:#e8f0fe;border-color:#1a56db;color:#1a56db}.control-btn:disabled{opacity:.5;cursor:not-allowed}.response-content{flex:1;overflow:hidden;min-height:0;display:flex;align-items:center;justify-content:center;position:relative}.canvas-wrap{width:100%;height:100%;position:relative;display:flex;align-items:center;justify-content:center}.canvas-wrap canvas{max-width:100%;max-height:100%;cursor:crosshair;touch-action:none}.canvas-wrap .hint{position:absolute;bottom:8px;left:50%;transform:translate(-50%);background:#000000b3;color:#fff;padding:4px 12px;border-radius:12px;font-size:.72rem;white-space:nowrap;pointer-events:none}.canvas-toolbar{display:flex;gap:.4rem;flex-wrap:wrap;align-items:center}.vision-panel{border-top:1px solid #e0e0e0;background:#fafafa;padding:.75rem 1rem;max-height:200px;overflow-y:auto}.vision-panel-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.vision-panel-header h3{font-size:.85rem;font-weight:600;color:#333}.vision-response{font-size:.82rem;line-height:1.5;color:#444;white-space:pre-wrap;word-break:break-word}.vision-response.loading{color:#888;font-style:italic}.vision-response.error{color:#d32f2f}.vision-empty{color:#999;font-size:.82rem;text-align:center;padding:1rem}.mobile-size-controls{display:flex;gap:1rem;padding:.5rem 1rem;background:#f8f8f8;border-top:1px solid #e0e0e0;flex-wrap:wrap}.size-control{flex:1;min-width:140px}.size-control.hidden{display:none}.size-control__header{display:flex;justify-content:space-between;font-size:.75rem;margin-bottom:.25rem}.size-control__value{color:#666}.size-control input[type=range]{width:100%;accent-color:#333}.generated-image-container{position:relative;cursor:pointer;max-width:100%;max-height:100%;display:flex;flex-direction:column;align-items:center;gap:1rem;padding:1rem}.generated-image{max-width:100%;max-height:calc(100vh - 300px);object-fit:contain;border-radius:8px;box-shadow:0 2px 8px #0000001a;transition:transform .2s ease,box-shadow .2s ease}.generated-image-container:hover .generated-image{transform:scale(1.02);box-shadow:0 4px 16px #00000026}.image-overlay{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);background:#000000b3;color:#fff;padding:1rem 2rem;border-radius:8px;opacity:0;transition:opacity .2s ease;pointer-events:none;display:flex;flex-direction:column;align-items:center;gap:.5rem}.generated-image-container:hover .image-overlay{opacity:1}.image-info{text-align:center}.image-prompt{font-size:.85rem;color:#555;margin-bottom:.25rem;max-width:600px;word-break:break-word}.image-meta{font-size:.75rem;color:#999}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.75rem;color:#999;padding:2rem;text-align:center}.empty-state svg{opacity:.5}.empty-hint{font-size:.85rem}.input-container{flex-shrink:0;display:flex;flex-direction:column;gap:.5rem}.input-wrapper{display:flex;align-items:flex-end;gap:.5rem;background:#fff;border:1px solid #ddd;border-radius:8px;padding:.6rem;transition:border-color .2s ease}.input-wrapper:focus-within{border-color:#333}.input-textarea{flex:1;border:none;outline:none;resize:none;font-family:inherit;font-size:.9rem;padding:.4rem;background:transparent;min-height:44px;max-height:120px}.input-buttons{display:flex;gap:.4rem;align-items:flex-end}.send-btn{background:#333;color:#fff;border:none;padding:.5rem;border-radius:6px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s ease;min-width:40px;min-height:40px}.send-btn:hover:not(:disabled){background:#111}.send-btn:disabled{background:#ccc;cursor:not-allowed}.enhance-btn{background:#f0f0f0;border:1px solid #ddd;padding:.5rem;border-radius:6px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease;min-width:40px;min-height:40px;color:#555}.enhance-btn:hover:not(:disabled){background:#e0e0e0;color:#333}.enhance-btn:disabled{opacity:.5;cursor:not-allowed}.restore-btn{background:transparent;border:1px solid #ddd;padding:.5rem;border-radius:6px;cursor:pointer;display:flex;align-items:center;justify-content:center;color:#999;min-width:40px;min-height:40px;transition:all .2s ease}.restore-btn:hover{color:#333;border-color:#aaa}.input-footer{display:flex;justify-content:space-between;align-items:center;padding:0 .25rem}.input-footer-left{display:flex;align-items:center;gap:.75rem}.char-count{font-size:.7rem;color:#aaa}.status-bar{padding:.5rem 1rem;border-radius:6px;font-size:.82rem;text-align:center}.status-bar.info{background:#e8f0fe;color:#1a56db}.status-bar.success{background:#e6f4ea;color:#1e7e34}.status-bar.error{background:#fce8e6;color:#c5221f}.status-bar.loading{background:#fef7e0;color:#b06000}.modal-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.modal-content{background:#fff;border-radius:12px;max-width:560px;width:90%;max-height:80vh;overflow-y:auto;box-shadow:0 20px 60px #0000004d}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:1.25rem 1.5rem;border-bottom:1px solid #e0e0e0;position:sticky;top:0;background:#fff;z-index:1}.modal-header h2{font-size:1.1rem;font-weight:600}.close-btn{background:none;border:none;font-size:1.5rem;cursor:pointer;color:#666;padding:.25rem .5rem;line-height:1}.modal-body{padding:1.25rem 1.5rem}.params-section{margin-bottom:1.5rem}.params-section:last-child{margin-bottom:0}.params-section h3{font-size:.9rem;font-weight:600;margin-bottom:.75rem;color:#333}.param-group{margin-bottom:.75rem}.param-group:last-child{margin-bottom:0}.param-group label{display:flex;flex-direction:column;gap:.35rem}.param-group label span{font-size:.8rem;color:#555;font-weight:500}.param-group input[type=range]{width:100%;accent-color:#333}.param-group select{width:100%;padding:.4rem .6rem;border:1px solid #ddd;border-radius:4px;font-size:.85rem;background:#fff}.param-description{font-size:.72rem;color:#999}.seed-input-row{display:flex;gap:.4rem;align-items:center}.seed-input{flex:1;padding:.4rem .6rem;border:1px solid #ddd;border-radius:4px;font-size:.85rem}.seed-random-btn,.seed-clear-btn{background:#f5f5f5;border:1px solid #ddd;padding:.4rem .6rem;border-radius:4px;cursor:pointer;font-size:.85rem;white-space:nowrap}.seed-random-btn:hover,.seed-clear-btn:hover{background:#e8e8e8}.lightbox-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:#000000e6;display:flex;align-items:center;justify-content:center;z-index:2000}.lightbox-content{max-width:95vw;max-height:95vh;position:relative;display:flex;flex-direction:column;align-items:center}.lightbox-content img{max-width:95vw;max-height:80vh;object-fit:contain}.lightbox-close{position:absolute;top:-40px;right:0;background:none;border:none;color:#fff;font-size:2rem;cursor:pointer;z-index:1}.lightbox-info{color:#fff;text-align:center;margin-top:1rem;max-width:600px}.lightbox-prompt{font-size:.9rem;margin-bottom:.25rem}.lightbox-meta{font-size:.8rem;opacity:.7}.vision-presets{display:flex;gap:.4rem;flex-wrap:wrap;margin-bottom:.5rem}.vision-preset-btn{font-size:.7rem;padding:.25rem .6rem;background:#f0f0f0;border:1px solid #ddd;border-radius:12px;cursor:pointer;white-space:nowrap;transition:all .15s ease}.vision-preset-btn:hover{background:#e0e0e0}.spinner{animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.vision-input-row{display:flex;gap:.5rem;align-items:flex-end;margin-bottom:.5rem}.vision-input-row textarea{flex:1;border:1px solid #ddd;border-radius:6px;padding:.5rem;font-family:inherit;font-size:.85rem;resize:vertical;min-height:40px}.vision-send-btn{background:#1a56db;color:#fff;border:none;padding:.5rem 1rem;border-radius:6px;cursor:pointer;font-size:.82rem;font-weight:500;white-space:nowrap;transition:background .2s ease}.vision-send-btn:hover:not(:disabled){background:#1447b3}.vision-send-btn:disabled{background:#a0b8e8;cursor:not-allowed}@media(max-width:768px){.container{padding:.25rem .5rem;gap:.35rem}.navbar-title{font-size:.7rem}.response-container{min-height:120px}.response-content{padding:.5rem}.input-container{padding:.25rem 0}.input-wrapper{padding:.4rem;gap:.35rem}.input-textarea{font-size:.85rem;padding:.3rem;min-height:38px}.input-buttons{gap:.25rem}.send-btn,.enhance-btn,.restore-btn{min-width:34px;min-height:34px;padding:.35rem}.send-btn svg,.enhance-btn svg,.restore-btn svg{width:16px;height:16px}.modal-content{width:95%;max-height:90dvh}.canvas-toolbar{gap:.2rem}.canvas-toolbar .control-btn{padding:.25rem .4rem;font-size:.68rem}.generated-image{max-height:calc(100dvh - 320px)}.char-count{text-align:center}.input-footer{flex-direction:column;align-items:center}}
