:root{color-scheme:dark;--background:#191919;--foreground:#f1f1f1;--muted:#929292;--grid:#2b2b2b;--attendance:#2d6bc8;--assessment:#f5d650;--reps:#e988bb;--line:#363636;font:14px/1.6 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
*{box-sizing:border-box}body{margin:0;background:var(--background);color:var(--foreground)}main{padding:27px 40px 20px;max-width:1800px;margin:auto}h1,h2,h3,p{margin:0}h1{font-size:18px;font-weight:500;letter-spacing:-.025em}h2{font-size:20px;font-weight:500;line-height:1.4}h3{font-size:14px;font-weight:500}button,input,select,textarea{font:inherit;color:inherit}button,a,select{cursor:pointer}button,input,select,textarea{border:1px solid var(--line);border-radius:5px;background:transparent;padding:7px 10px}button:hover{background:#ffffff0b}button:focus-visible,input:focus-visible,select:focus-visible,a:focus-visible,summary:focus-visible{outline:2px solid var(--foreground);outline-offset:3px}a{color:var(--foreground);text-underline-offset:4px}select{background:var(--background);font-size:12px;width:100%;padding:7px 25px 7px 8px}textarea{width:100%;resize:vertical;font-size:13px;line-height:1.7;padding:10px}small{font-size:12px;color:var(--muted)}.map-header{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:19px}.map-header p{color:var(--muted);font-size:12px;margin-top:3px}.date-control{display:flex;gap:6px;align-items:center}.date-control button{padding:5px 9px;font-size:12px}.date-control button:first-child,.date-control button:nth-child(3){font-size:18px;line-height:1.4;padding:1px 10px}.date-control input{font-size:12px;max-width:147px;padding:5px 7px}.map-controls{display:flex;gap:16px;align-items:flex-end;margin-bottom:13px}.map-controls label{font-size:11px;color:var(--muted);display:block;width:240px;max-width:100%}.map-controls select{display:block;margin-top:4px;color:var(--foreground)}.map-controls .unit-control{width:430px}.map-controls #week-context{font-size:12px;color:var(--muted);padding-bottom:6px;margin-left:auto;text-align:right}.legend{display:flex;gap:18px;flex-wrap:wrap;align-items:center;color:var(--muted);font-size:11px;margin:16px 0 14px}.legend>span{display:flex;gap:6px;align-items:center}.legend i{width:8px;height:8px;display:inline-block;flex-shrink:0}.circle{border-radius:50%}.diamond{transform:rotate(45deg)}.attendance{background:var(--attendance)}.assessment{background:var(--assessment)}.reps{background:var(--reps)}.legend .map-hint{margin-left:auto;font-size:10px}.timeline-scroll{width:100%;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-color:#555 transparent;scrollbar-width:thin}.timeline-scroll::-webkit-scrollbar{height:7px}.timeline-scroll::-webkit-scrollbar-thumb{background:#555;border-radius:8px}#timeline{min-width:1100px}#timeline svg{display:block;width:100%;touch-action:pan-x pan-y}#timeline svg text{font-size:12px;font-weight:400;fill:var(--foreground);pointer-events:none}#timeline svg text.label{font-size:12.5px;font-weight:500}#timeline svg text.minor{fill:var(--muted)}#timeline svg .mark{cursor:pointer}#timeline svg .mark:hover{filter:brightness(1.3)}#timeline svg .mark:focus{outline:none}#timeline svg .mark:focus .focus-ring{stroke:var(--foreground);stroke-width:1;fill:none}#timeline svg .mark .focus-ring{fill:none;stroke:transparent}#timeline svg .calendar-hit{cursor:crosshair}.selected-status{font-size:12px;color:var(--muted);padding:12px 0 18px;min-height:40px}.reference{border-top:1px solid var(--line);padding:16px 0}.reference summary{font-size:13px;cursor:pointer}.reference>div:not(.reference-actions){padding:18px 0 5px;max-width:1000px;color:var(--muted);font-size:13px}.reference p+p{margin-top:12px}.reference strong{color:var(--foreground);font-weight:500}.reference ol{padding-left:23px;display:grid;grid-template-columns:1fr 1fr;column-gap:35px;row-gap:12px;margin:16px 0}.reference li{padding-left:3px}.reference li small{display:block;margin-top:4px;font-size:11px}.reference-actions{display:flex;gap:25px;flex-wrap:wrap;padding-top:12px;font-size:12px}footer{font-size:11px;color:var(--muted);padding-top:20px;border-top:1px solid var(--line)}dialog{background:#202020;color:var(--foreground);border:1px solid #444;border-radius:10px;padding:23px;width:min(530px,calc(100% - 28px));max-height:90vh;overflow:auto;box-shadow:0 24px 90px #0007}dialog::backdrop{background:#0009;backdrop-filter:blur(3px)}.detail-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:13px;gap:10px}.detail-top small{font-size:11px}.detail-top button{border:0;font-size:22px;padding:0 4px}.detail-date{font-size:13px;color:var(--assessment);margin:11px 0 18px}.detail-description{font-size:13px;color:#bdbdbd;white-space:pre-line;line-height:1.8}.detail-source{padding:15px 0;margin:17px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);font-size:12px;color:var(--muted)}.detail-source strong{display:block;font-weight:500;color:var(--foreground);margin:4px 0}.detail-source a{display:inline-block;margin-top:8px;font-size:12px}.note-label{display:block;font-size:12px;color:#bdbdbd;margin-top:17px}.note-label textarea{display:block;margin-top:7px}.done-label{display:flex;align-items:center;gap:8px;font-size:12px;margin:17px 0 0;color:#bdbdbd}.done-label input{accent-color:var(--assessment);margin:0}.save-status{font-size:11px;color:var(--muted);min-height:20px;padding-top:7px}.detail-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:17px}.detail-actions button{font-size:12px}.detail-actions .primary{background:var(--foreground);color:var(--background);border-color:transparent}.conflict{color:var(--reps);font-size:12px;padding-top:12px}
#timeline svg .mark .focus-ring,#timeline svg .mark:focus .focus-ring{fill:transparent}
.zoom-controls{display:flex;align-items:center;gap:5px;margin-left:auto;color:var(--foreground)}.zoom-controls button{font-size:11px;padding:3px 7px;white-space:nowrap}.zoom-controls button[aria-pressed=true]{background:#ffffff15;border-color:#747474}.zoom-controls output{font-size:10px;min-width:29px;text-align:center;font-variant-numeric:tabular-nums}.legend .zoom-controls{display:flex}.timeline-scroll{position:relative;overflow:hidden;min-height:160px;flex:1;touch-action:none;cursor:grab;background:var(--background)}.timeline-scroll.dragging{cursor:grabbing}#timeline{min-width:0;position:absolute;top:0;left:0;transform-origin:0 0}#timeline svg{touch-action:none}.selected-status{font-size:10px;padding:5px 0 0;min-height:21px;flex-shrink:0;white-space:normal}.map-header{margin-bottom:8px;flex-shrink:0}.map-controls{margin-bottom:6px;gap:12px;flex-shrink:0}.map-controls label{font-size:10px}.map-controls select{padding-top:4px;padding-bottom:4px}.map-header h1{font-size:16px}.map-header p{font-size:10px}.legend{margin:6px 0 9px;gap:12px;flex-shrink:0}body{height:100dvh;overflow:hidden}main{height:100dvh;max-width:none;padding:14px 22px 8px;display:flex;flex-direction:column}#timeline svg .calendar-hit{cursor:inherit}.cluster-count{font-size:9px!important}.cluster-list{display:grid;gap:0;padding:10px 0}.cluster-item{width:100%;display:block;text-align:left;border:0;border-bottom:1px solid var(--line);padding:11px 0;border-radius:0;font-size:12px}.cluster-item small{font-size:10px;display:block;margin-top:3px}.guide-content{color:#bdbdbd;font-size:12px;line-height:1.8}.guide-content h3{margin:18px 0 9px;color:var(--foreground)}.guide-content ol{padding-left:20px}.guide-content li{margin-bottom:12px}.guide-content li small{display:block}.guide-content p+p{margin-top:10px}#guide:focus-visible{outline:2px solid var(--foreground)}
@media(min-width:1500px){main{padding-left:30px;padding-right:30px}}
@media(max-width:900px){main{padding:12px 16px 6px}.map-header{align-items:flex-start;flex-wrap:wrap}.map-controls{flex-wrap:wrap;gap:8px}.map-controls label{flex:1;min-width:180px}.map-controls #week-context{font-size:10px}.legend .zoom-controls{margin-left:0;flex-wrap:wrap}.legend{font-size:10px}}
@media(max-width:520px){main{padding:10px 10px 5px}.map-controls label{min-width:0;width:auto}.map-controls .unit-control{width:auto}.map-header{gap:8px;margin-bottom:7px}.map-header h1{font-size:15px}.map-header p{font-size:10px}.map-header>div:first-child{width:100%}.legend{gap:9px;font-size:9px}.legend .zoom-controls{width:100%;gap:4px}.zoom-controls button{font-size:10px;padding:3px 6px}.reference ol{grid-template-columns:1fr}.date-control{flex-wrap:wrap}.map-controls #week-context{width:100%;text-align:left;padding:0}.map-controls{margin-bottom:5px}}

.wheel-link{margin-left:12px;font-size:11px;color:var(--foreground);text-underline-offset:3px}
