.tm-card{border:1px solid var(--border);border-radius:var(--r-lg);background:var(--bg-card);box-shadow:var(--shadow);overflow:hidden}
.tm-head{display:flex;gap:10px;align-items:center;padding:8px 12px;border-bottom:1px solid var(--border);font-size:13px}
.tm-head b{font-size:14px}
.tm-body{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:0}
.tm-inputs{padding:16px;display:grid;gap:12px;border-right:1px solid var(--border);align-content:start;min-width:0}
.tm-inputs label{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--text-muted)}
.tm-inputs input,.tm-inputs select{width:100%;font:inherit;font-size:14px;color:var(--text);background:var(--bg);border:1px solid var(--border);border-radius:6px;padding:7px 10px;min-width:0}
.tm-inputs input#tm-expr{font-family:var(--mono);font-size:16px;border-color:color-mix(in srgb,var(--accent) 60%,var(--border))}
.tm-inputs input:focus,.tm-inputs select:focus{outline:none;border-color:var(--accent)}
.tm-two{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.tm-read{font-size:13px;color:var(--text-muted)}
.tm-outs{padding:16px;display:grid;gap:6px;align-content:start;background:var(--bg-panel)}
.tm-asof{font-size:12px;color:var(--text-muted);margin-bottom:6px}
.tm-asof b{color:var(--text);font-weight:600}
.tm-out{display:flex;justify-content:space-between;gap:12px;padding:8px 10px;border:1px solid var(--border);border-radius:6px;background:var(--bg);font-size:13px}
.tm-out span{color:var(--text-muted)}
.tm-out code{color:var(--accent);font-size:13px;text-align:right}
.tm-cal{font-size:12px;color:var(--text-muted);margin-top:6px}

.tm-month{border:1px solid var(--border);border-radius:var(--r-lg);background:var(--bg-panel);padding:16px}
.tm-mhead{display:flex;justify-content:space-between;gap:10px;margin-bottom:10px;font-size:13px;flex-wrap:wrap}
.tm-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;text-align:center;font-size:13px;font-variant-numeric:tabular-nums}
.tm-grid b{font-size:11px;color:var(--text-muted);font-weight:600;padding-bottom:4px}
.tm-grid span{padding:7px 0;border-radius:6px;border:1px solid transparent;background:var(--bg)}
.tm-grid span:empty{background:none}
.tm-grid .wk{color:var(--text-muted);opacity:.6}
.tm-grid .hol{background:var(--error-soft);color:var(--error);text-decoration:line-through}
.tm-grid .early{background:var(--warning-soft);color:var(--warning)}
.tm-grid .asof{border-color:var(--text-muted);font-weight:700}
.tm-grid .hit{background:var(--accent);color:var(--on-accent);font-weight:700;text-decoration:none;opacity:1}
.tm-legend{display:flex;gap:14px;flex-wrap:wrap;margin-top:10px;font-size:12px;color:var(--text-muted)}
.tm-legend i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:5px;vertical-align:-1px;border:1px solid transparent}
.tm-legend i.asof{border-color:var(--text-muted)}
.tm-legend i.hit{background:var(--accent)}
.tm-legend i.hol{background:var(--error-soft);border-color:var(--error)}
.tm-legend i.early{background:var(--warning-soft);border-color:var(--warning)}

table.tm-ex{width:100%;border-collapse:collapse;font-size:14px;min-width:620px}
.tm-ex th,.tm-ex td{padding:10px 14px;border-bottom:1px solid var(--border);text-align:left;vertical-align:top}
.tm-ex th{background:var(--bg-card);font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted)}
.tm-ex td code{color:var(--accent)}
.tm-ex tr:last-child td{border-bottom:0}
.tm-try{border:1px solid var(--border);background:var(--bg);border-radius:6px;padding:3px 8px}
.tm-try:hover{border-color:var(--accent)}
.gram{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.gram > div{border:1px solid var(--border);border-radius:var(--r);background:var(--bg-panel);padding:16px;font-size:14px;color:var(--text-muted)}
.gram h3{color:var(--text);margin-bottom:6px;font-size:15px}
.gram code{color:var(--accent)}
@media (max-width:1020px){.tm-layout{grid-template-columns:1fr!important}}
@media (max-width:860px){.tm-body{grid-template-columns:1fr}.tm-inputs{border-right:0;border-bottom:1px solid var(--border)}.gram{grid-template-columns:1fr}}
