.tr-wrap{gap:22px;display:grid}.tr-box{border:1px solid var(--line);background:var(--bg);padding:16px}.tr-box.compact{padding:12px}.tr-box h2,.tr-box h3{font:800 .78rem var(--sans);text-transform:uppercase;letter-spacing:.08em;color:var(--blue);margin:0 0 10px}.tr-cal-head{justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px;display:flex}.tr-cal-head b{font:700 1rem var(--serif);text-transform:capitalize}.tr-grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:3px;display:grid}.tr-dow{text-align:center;font:700 .68rem var(--sans);color:var(--muted);padding:2px 0}.tr-day{aspect-ratio:1;border:1px solid var(--line);background:var(--bg);color:var(--text);cursor:pointer;place-items:center;padding:0;font-size:.82rem;display:grid;position:relative}.tr-day:hover{border-color:var(--accent)}.tr-day.empty{cursor:default;background:0 0;border:0}.tr-day.today{outline:2px solid var(--blue);outline-offset:-2px}.tr-day.sel{border-color:var(--accent);box-shadow:inset 0 0 0 2px var(--accent)}.tr-day.did{background:var(--accent);color:var(--accent-ink);font-weight:700}.tr-day.logged:not(.did){background:var(--bg2)}.tr-streak{flex-wrap:wrap;gap:22px;margin:10px 0 0;display:flex}.tr-streak b{font:800 1.6rem/1 var(--serif);color:var(--accent);display:block}.tr-streak span{color:var(--muted);font-size:.78rem}.tr-form{gap:12px;display:grid}.tr-form .two{grid-template-columns:1fr 1fr;gap:12px;display:grid}.tr-form label{color:var(--muted);gap:4px;font-size:.88rem;display:grid}.tr-form input,.tr-form select,.tr-form textarea{width:100%}.tr-form .check{color:var(--text);align-items:center;gap:8px;display:flex}.tr-form .check input{width:auto}.tr-plan{background:var(--bg2);border-left:3px solid var(--yellow);padding:10px 12px;font-size:.88rem}.tr-plan b{font:700 .8rem var(--sans);text-transform:uppercase;color:var(--blue);display:block}.tr-rank{margin:0;padding:0;list-style:none}.tr-rank li{border-bottom:1px solid var(--line);grid-template-columns:28px 36px 1fr auto;align-items:center;gap:10px;padding:8px 0;display:grid}.tr-rank li:last-child{border-bottom:0}.tr-rank .pos{font:800 1.2rem var(--serif);color:var(--accent)}.tr-rank .avatar{width:32px;height:32px;font-size:.9rem}.tr-rank .val{text-align:right;font-weight:700}.tr-rank .val small{color:var(--muted);font-size:.72rem;font-weight:400;display:block}.tr-tabs{flex-wrap:wrap;gap:6px;margin-bottom:10px;display:flex}.tr-tabs button{border:1px solid var(--line);background:var(--bg);color:var(--text);cursor:pointer;padding:4px 12px;font-size:.82rem}.tr-tabs button[aria-pressed=true]{background:var(--blue);color:var(--bg);border-color:var(--blue)}.tr-quiz-opts{gap:8px;margin:12px 0;display:grid}.tr-quiz-opts button{text-align:left;border:1px solid var(--line);background:var(--bg);color:var(--text);cursor:pointer;padding:10px 12px}.tr-quiz-opts button:hover:not(:disabled){border-color:var(--accent)}.tr-quiz-opts button.right{background:var(--ok);border-color:var(--ok);color:#fff}.tr-quiz-opts button.wrong{background:var(--err);border-color:var(--err);color:#fff}.tr-score{font:800 2.4rem/1 var(--serif);color:var(--accent)}.tr-ex{gap:8px;display:grid}.tr-ex-item{border:1px solid var(--line);text-align:left;background:var(--bg);color:var(--text);cursor:pointer;padding:10px 12px}.tr-ex-item:hover{border-color:var(--accent)}.tr-ex-item small{color:var(--muted);display:block}.tr-ex-detail ol{padding-left:20px}.tr-wx{gap:8px;display:grid}.tr-wx .temp{font:800 2rem/1 var(--serif)}.tr-wx select{max-width:100%}.tr-map{background:var(--bg2);border:0;width:100%;height:320px}.tr-map.compact{height:200px}.tr-gate{background:var(--bg2);border:1px dashed var(--line);padding:14px}.tr-gate .btns{flex-wrap:wrap;gap:8px;margin-top:8px;display:flex}.tr-log-form{grid-template-columns:1fr 1fr 1fr auto;align-items:end;gap:8px;display:grid}.tr-log-form label{color:var(--muted);gap:4px;font-size:.82rem;display:grid}@media (width<=640px){.tr-form .two,.tr-log-form{grid-template-columns:1fr}}.tr-photo{border-top:1px solid var(--line);gap:8px;margin-top:14px;padding-top:12px;display:grid}.tr-photo img{object-fit:contain;border:1px solid var(--line);justify-self:start;max-width:100%;max-height:360px}
