.speed-field>label{display:block;cursor:text}
.speed-input-group{display:flex;align-items:stretch;min-width:0;gap:8px}
.speed-input-group>input{flex:1;width:0;min-width:0}
.speed-calculate{flex-shrink:0;min-width:64px;padding:9px 14px;border:1px solid var(--line);border-radius:3px;background:var(--panel-2);color:var(--accent);font:inherit;font-weight:650;cursor:pointer;transition:background .15s,border-color .15s}
.speed-calculate:hover{background:var(--panel);border-color:var(--accent)}
.speed-calculate:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.speed-dialog{width:620px;max-width:calc(100vw - 32px);max-height:calc(100dvh - 32px);border:0;padding:0;margin:auto;background:transparent;color:var(--ink)}
.speed-dialog::backdrop{background:#03060cbf;backdrop-filter:blur(5px)}
.speed-dialog .speed-dialog-shell{display:grid;grid-template-rows:auto minmax(0,1fr) auto;padding:0;overflow:hidden;max-height:calc(100dvh - 48px);border-top:2px solid var(--accent)}
.speed-dialog-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;padding:24px 28px 18px}
.speed-dialog-heading .eyebrow{font-size:.75rem;letter-spacing:2px}
.speed-dialog-heading h2{margin:7px 0 0;font-size:1.5rem;line-height:1.4}
.speed-dialog-heading .icon-button{width:32px;height:32px;flex-shrink:0;font-size:1.5rem;color:var(--muted)}
.speed-dialog-body{padding:0 28px 24px;min-height:0;overflow-y:auto;overscroll-behavior:contain}
.speed-sample-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}
.speed-sample-grid .field{margin:0;min-width:0}
.speed-sample-grid input,.speed-sample-grid select{min-width:0;width:100%}
.speed-base{display:flex;justify-content:space-between;gap:14px;margin:20px 0;padding:13px 15px;background:var(--panel-2);border:1px solid var(--line);font-size:.875rem;line-height:1.6}
.speed-base>span{flex-shrink:0;color:var(--muted)}
.speed-base>strong{text-align:right;font-family:var(--mono)}
.speed-duration{padding:0;margin:0;border:0;min-width:0}
.speed-duration legend{margin-bottom:10px;font-size:.875rem;color:var(--muted)}
.speed-duration>div{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}
.speed-duration label{display:flex;align-items:center;min-width:0;gap:6px}
.speed-duration input{width:0;flex:1;min-width:0;padding:10px 7px;border:1px solid var(--line);border-radius:3px;background:var(--panel-2);color:var(--ink);font:1rem var(--mono);min-height:46px}
.speed-duration span{font-size:.8125rem;color:var(--muted);flex-shrink:0}
.speed-help{margin:12px 0 20px;font-size:.8125rem;color:var(--muted);line-height:1.8}
.speed-estimate{border:1px solid var(--line);background:var(--panel-2);padding:18px 20px;text-align:center;min-height:120px;display:flex;flex-direction:column;justify-content:center;gap:5px}
.speed-estimate>span{color:var(--muted);font-size:.875rem}
.speed-estimate>strong{font-family:var(--mono);font-size:2rem;line-height:1.5;color:var(--accent);overflow-wrap:anywhere}
.speed-estimate strong small{font-size:1rem;margin-left:4px}
.speed-estimate p{margin:0;color:var(--muted);font-size:.8125rem;line-height:1.7}
.speed-estimate.empty,.speed-estimate.invalid{font-size:.875rem;line-height:1.8;color:var(--muted)}
.speed-estimate.invalid{color:var(--accent)}
.speed-formula{font-size:.75rem;color:var(--soft);text-align:center;line-height:1.8;margin:13px 0 0}
.speed-dialog-actions{display:flex;justify-content:flex-end;gap:10px;padding:16px 28px;border-top:1px solid var(--line);background:var(--panel-2)}
.speed-dialog-actions .btn{min-height:42px}
.speed-dialog-actions .btn:disabled{opacity:.4;cursor:not-allowed}
.speed-dialog input:focus-visible,.speed-dialog select:focus-visible,.speed-dialog button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
@media(max-width:600px){.speed-dialog{max-width:calc(100vw - 24px)}.speed-dialog .speed-dialog-shell{max-height:calc(100dvh - 28px)}.speed-dialog-heading{padding:20px 20px 16px}.speed-dialog-heading h2{font-size:1.3rem}.speed-dialog-body{padding:0 20px 20px}.speed-sample-grid{gap:13px}.speed-duration>div{grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}.speed-base{margin:17px 0}.speed-dialog-actions{padding:14px 20px}.speed-calculate{min-width:58px;padding:9px 11px}.speed-formula{font-size:.75rem}.speed-estimate{padding:16px 12px}}
