.generation-page{color:#281a28;max-width:1240px;margin:auto;padding:36px}.generation-page header h1{margin:8px 0;font-size:44px}.generation-page header small{color:#78647a;letter-spacing:.14em}.gen-panel,.locks,.results{background:#fff;border:1px solid #e8e0e8;border-radius:22px;margin-top:20px;padding:24px;box-shadow:0 12px 35px #281a2810}.generation-page label{gap:7px;font-weight:650;display:grid}.generation-page input,.generation-page select{background:#fff;border:1px solid #d7ccd8;border-radius:10px;padding:11px}.mode-grid,.style-grid,.route-grid,.result-grid{gap:12px;margin-top:18px;display:grid}.mode-grid{grid-template-columns:repeat(3,1fr)}.mode-grid button{text-align:left;background:#fff;border:1px solid #ded4df;border-radius:14px;gap:6px;padding:18px;display:grid}.mode-grid button.active{background:#f4ffcf;border-color:#281a28}.mode-grid span{color:#78647a}.style-grid,.route-grid{grid-template-columns:repeat(4,1fr)}.gen-actions,.result-head{align-items:center;gap:14px;margin-top:20px;display:flex}.gen-actions .primary{color:#fff;background:#281a28;margin-left:auto}.generation-page button{cursor:pointer;background:#fff;border:1px solid #281a28;border-radius:10px;padding:10px 15px}.generation-page button:disabled{opacity:.5}.gen-error{color:#9b2c21;background:#fff0ed;border-radius:14px;margin-top:16px;padding:16px}.gen-error pre{white-space:pre-wrap}.locks div{border-bottom:1px solid #eee;grid-template-columns:90px 1fr;padding:8px;display:grid}.result-grid{grid-template-columns:repeat(4,1fr)}.result-grid article{background:#f7f3f7;border:2px solid #0000;border-radius:16px;gap:9px;padding:12px;display:grid}.result-grid article.selected{border-color:#281a28}.result-grid img,.placeholder{aspect-ratio:1;object-fit:cover;background:#e9e2e9;border-radius:10px;place-items:center;width:100%;display:grid}.result-grid progress{width:100%}@media (max-width:800px){.mode-grid,.style-grid,.route-grid,.result-grid{grid-template-columns:1fr}.gen-actions,.result-head{flex-direction:column;align-items:stretch}.gen-actions .primary{margin-left:0}}
