.morse-shell{display:grid;gap:24px}.morse-controls{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.morse-panel{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:26px;box-shadow:0 12px 32px rgba(5,26,52,.07)}.control-row{display:grid;grid-template-columns:1fr auto;gap:16px;align-items:center;margin:14px 0}.control-row input[type=range]{width:100%}.morse-display{min-height:64px;padding:14px 16px;background:#061a34;color:#ffcc33;border-radius:12px;font:700 1.25rem/1.5 ui-monospace,Consolas,monospace;word-break:break-word}.morse-key{width:100%;min-height:150px;border:0;border-radius:20px;background:linear-gradient(145deg,#0b3d86,#061a34);color:#fff;font-size:1.25rem;font-weight:800;cursor:pointer}.morse-key.active{transform:translateY(3px);background:linear-gradient(145deg,#ffcc33,#e4a900);color:#14202b}.morse-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:24px}.morse-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}.morse-actions button{border:0}.text-input,select{width:100%;padding:12px 14px;border:1px solid #c9d6e5;border-radius:10px;font:inherit;background:#fff}.answer-status{min-height:32px;font-weight:800;margin-top:12px}.answer-status.good{color:#147a34}.answer-status.bad{color:#a82d2d}.progress-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.progress-box{background:#edf4fb;border-radius:14px;padding:17px;text-align:center}.progress-box strong{display:block;font-size:1.7rem;color:#0b3d86}.morse-table{display:grid;grid-template-columns:repeat(6,1fr);gap:10px}.morse-char{background:#fff;border:1px solid var(--line);border-radius:10px;padding:10px;text-align:center;cursor:pointer}.morse-char strong{display:block}.morse-char span{font-family:ui-monospace,monospace;color:#0b3d86}.small-note{font-size:.92rem;color:var(--muted)}@media(max-width:900px){.morse-controls,.progress-grid{grid-template-columns:repeat(2,1fr)}.morse-grid{grid-template-columns:1fr}.morse-table{grid-template-columns:repeat(4,1fr)}}@media(max-width:600px){.morse-controls,.progress-grid{grid-template-columns:1fr}.morse-table{grid-template-columns:repeat(3,1fr)}}