@import"https://fonts.googleapis.com/css2?family=Public+Sans:ital,wght@0,400;0,500;0,600;0,700;1,400&family=JetBrains+Mono:wght@400;500;600&display=swap";.ant-form-item-label>label{white-space:normal;height:auto!important}.gct{--bg:#f3f5f9;--surface:#ffffff;--surface-2:#eaeef5;--fg:#15213a;--muted:#5c6778;--line:#d6dce7;--accent:#1d4f91;--accent-soft:#e3ecf9;--accent-ink:#163d70;--on:#1f8a4c;--on-bg:#dcf2e4;--watch:#b4761a;--watch-bg:#fbefd3;--behind:#c0332f;--behind-bg:#fadfdd;--none:#5f6b7d;--none-bg:#e4e8ef;--upcoming:#f1f3f7;--break:#e8eefb;--break-ink:#4463a0;--font-ui:"Public Sans",system-ui,-apple-system,"Segoe UI",sans-serif;--font-data:"JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,monospace;--radius:6px;--shadow:0 1px 2px rgba(21,33,58,.06),0 4px 14px rgba(21,33,58,.05);background:var(--bg);color:var(--fg);font-family:var(--font-ui);font-size:14px;line-height:1.45}@media (prefers-color-scheme:dark){.gct:not([data-theme=light]){--bg:#0f141d;--surface:#171d29;--surface-2:#1f2634;--fg:#e7ebf3;--muted:#9ba6ba;--line:#2b3446;--accent:#7fabe8;--accent-soft:#1b2a44;--accent-ink:#bcd3f5;--on:#4fc784;--on-bg:#143826;--watch:#e4ad3f;--watch-bg:#3b2f10;--behind:#f0706a;--behind-bg:#45201e;--none:#8d98ab;--none-bg:#262d3b;--upcoming:#161c27;--break:#1b2438;--break-ink:#9db7e6;--shadow:0 1px 2px rgba(0,0,0,.4),0 4px 14px rgba(0,0,0,.3);color-scheme:dark}}.gct[data-theme=dark]{--bg:#0f141d;--surface:#171d29;--surface-2:#1f2634;--fg:#e7ebf3;--muted:#9ba6ba;--line:#2b3446;--accent:#7fabe8;--accent-soft:#1b2a44;--accent-ink:#bcd3f5;--on:#4fc784;--on-bg:#143826;--watch:#e4ad3f;--watch-bg:#3b2f10;--behind:#f0706a;--behind-bg:#45201e;--none:#8d98ab;--none-bg:#262d3b;--upcoming:#161c27;--break:#1b2438;--break-ink:#9db7e6;--shadow:0 1px 2px rgba(0,0,0,.4),0 4px 14px rgba(0,0,0,.3);color-scheme:dark}.gct *{box-sizing:border-box}.gct .wrap{max-width:1280px;margin:0 auto;padding-block:20px 48px;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}.gct h1,.gct h2,.gct h3{margin:0;text-wrap:balance;font-weight:600}.gct h1{font-size:22px;letter-spacing:-.01em}.gct h2{font-size:16px}.gct h3{font-size:13px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;font-weight:600}.gct p{margin:0}.gct a{color:var(--accent)}.gct .num{font-family:var(--font-data);font-variant-numeric:tabular-nums}.gct .muted{color:var(--muted)}.gct .small{font-size:12px}.gct .topbar{display:flex;flex-wrap:wrap;gap:12px 24px;align-items:flex-end;justify-content:space-between;padding-bottom:14px;border-bottom:1px solid var(--line);margin-bottom:18px}.gct .brand{display:flex;gap:12px;align-items:center}.gct .brand .mark{font-family:var(--font-data);font-weight:500;font-size:18px;letter-spacing:.08em;color:var(--accent);border:2px solid var(--accent);padding:2px 8px;border-radius:4px}.gct .brand .sub{color:var(--muted);font-size:12px}.gct .controls{display:flex;flex-wrap:wrap;gap:8px 16px;align-items:center;font-size:13px}.gct .controls label{display:flex;gap:6px;align-items:center;color:var(--muted)}.gct input[type=date],.gct select{font:inherit;font-family:var(--font-data);font-size:12px;color:var(--fg);background:var(--surface);border:1px solid var(--line);border-radius:4px;padding:4px 6px}.gct input[type=date]:focus-visible,.gct select:focus-visible,.gct button:focus-visible,.gct tr[tabindex]:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.gct .tabs{display:flex;gap:2px;background:var(--surface-2);padding:3px;border-radius:var(--radius)}.gct .jump{display:inline-flex;flex-wrap:wrap;gap:4px;align-items:center}.gct .jump button{font:inherit;font-size:12px;border:1px solid var(--line);background:var(--surface);color:var(--accent);padding:3px 9px;border-radius:999px;cursor:pointer}.gct .jump button[aria-pressed=true]{background:var(--accent-soft);border-color:var(--accent);color:var(--accent-ink)}.gct .tabs button{font:inherit;font-size:13px;font-weight:500;border:0;background:transparent;color:var(--muted);padding:5px 12px;border-radius:4px;cursor:pointer}.gct .tabs button[aria-selected=true]{background:var(--surface);color:var(--fg);box-shadow:var(--shadow)}.gct .tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin-bottom:18px}.gct .tile{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:10px 12px;min-width:0}.gct .tile .k{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.gct .tile .v{font-family:var(--font-data);font-size:22px;font-weight:500;line-height:1.2;margin-top:2px;font-variant-numeric:tabular-nums}.gct .tile .v small{font-size:12px;color:var(--muted);font-weight:400;margin-left:4px}.gct .tile.on .v{color:var(--on)}.gct .tile.watch .v{color:var(--watch)}.gct .tile.behind .v{color:var(--behind)}.gct .tile.none .v{color:var(--none)}.gct .pill{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:600;letter-spacing:.02em;padding:2px 8px;border-radius:999px;white-space:nowrap}.gct .pill:before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor}.gct .pill.on{color:var(--on);background:var(--on-bg)}.gct .pill.watch{color:var(--watch);background:var(--watch-bg)}.gct .pill.behind{color:var(--behind);background:var(--behind-bg)}.gct .pill.none{color:var(--none);background:var(--none-bg)}.gct .pill.upcoming{color:var(--muted);background:var(--upcoming)}.gct .pill.break{color:var(--break-ink);background:var(--break)}.gct .pill.na{color:var(--muted);background:transparent;border:1px dashed var(--line)}.gct .src{display:inline-block;font-size:10px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;padding:1px 6px;border-radius:3px;white-space:nowrap}.gct .src.acc{background:var(--accent-soft);color:var(--accent-ink)}.gct .src.inf{border:1px dashed var(--muted);color:var(--muted)}.gct .legend{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:12px;color:var(--muted);align-items:center;margin:10px 0 0}.gct .legend .sw{display:inline-block;width:12px;height:12px;border-radius:3px;vertical-align:-2px;margin-right:5px}.gct .sw.on{background:var(--on)}.gct .sw.watch{background:var(--watch)}.gct .sw.behind{background:var(--behind)}.gct .sw.none{background:var(--none-bg);border:1px solid var(--none)}.gct .sw.upcoming{background:var(--upcoming);border:1px solid var(--line)}.gct .sw.break{background:var(--break)}.gct .sw.na{border:1px dashed var(--line)}.gct .panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:14px 16px;margin-bottom:16px;min-width:0}.gct .panel-head{display:flex;flex-wrap:wrap;gap:6px 16px;align-items:baseline;justify-content:space-between;margin-bottom:10px}.gct .scroll{overflow-x:auto}.gct table{border-collapse:collapse;width:100%;font-size:13px}.gct th{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-weight:600;text-align:left;padding:6px 8px;border-bottom:1px solid var(--line);white-space:nowrap}.gct td{padding:7px 8px;border-bottom:1px solid var(--line);vertical-align:middle;white-space:nowrap}.gct tr.row{cursor:pointer}.gct tr.row:hover td{background:var(--surface-2)}.gct td.name{font-weight:600}.gct td.name .sub{display:block;font-weight:400;font-size:11px;color:var(--muted)}.gct .wk-head{display:flex;gap:2px}.gct .wk-head span{width:16px;text-align:center;font-family:var(--font-data);font-size:9px;color:var(--muted)}.gct .wk-head span.cur{color:var(--accent);font-weight:600}.gct .weeks{display:flex;gap:2px}.gct .cell{width:16px;height:16px;border-radius:3px;background:var(--upcoming);border:1px solid transparent;position:relative}.gct .cell.on{background:var(--on)}.gct .cell.watch{background:var(--watch)}.gct .cell.behind{background:var(--behind)}.gct .cell.none{background:var(--none-bg);border-color:var(--none)}.gct .cell.break{background:var(--break)}.gct .cell.upcoming{background:var(--upcoming);border-color:var(--line)}.gct .cell.na{background:transparent;border:1px dashed var(--line)}.gct .cell.cur{box-shadow:0 0 0 2px var(--accent)}.gct .cell.r-hours:after{content:"";position:absolute;left:50%;top:50%;width:5px;height:5px;margin:-2.5px 0 0 -2.5px;border-radius:50%;background:var(--surface)}.gct .cell.r-assess:after{content:"";position:absolute;left:3px;right:3px;top:50%;height:3px;margin-top:-1.5px;border-radius:1px;background:var(--surface)}.gct .sw.r-hours,.gct .sw.r-assess{position:relative;background:var(--behind)}.gct .sw.r-hours:after{content:"";position:absolute;left:50%;top:50%;width:4px;height:4px;margin:-2px 0 0 -2px;border-radius:50%;background:var(--surface)}.gct .sw.r-assess:after{content:"";position:absolute;left:2px;right:2px;top:50%;height:2px;margin-top:-1px;background:var(--surface)}.gct .phase-tabs{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px}.gct .phase-tabs button{font:inherit;font-size:13px;border:1px solid var(--line);background:var(--surface);color:var(--fg);padding:7px 14px;border-radius:var(--radius);cursor:pointer;text-align:left;min-width:0}.gct .phase-tabs button[aria-selected=true]{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent);background:var(--accent-soft)}.gct .phase-tabs button:disabled{opacity:.5;cursor:default}.gct .phase-tabs button b{display:block;font-weight:600}.gct .phase-tabs button span{display:block;font-size:11px;color:var(--muted)}.gct .phases{display:flex;gap:4px;flex-wrap:nowrap}.gct .ph{display:inline-flex;align-items:center;gap:4px;font-size:10px;font-weight:600;letter-spacing:.02em;padding:1px 6px;border-radius:3px;white-space:nowrap;border:1px solid transparent;cursor:pointer;font-family:var(--font-ui)}.gct .ph.on{color:var(--on);background:var(--on-bg)}.gct .ph.behind{color:var(--behind);background:var(--behind-bg)}.gct .ph.running{color:var(--accent-ink);background:var(--accent-soft)}.gct .ph.upcoming{color:var(--muted);background:var(--upcoming);border-color:var(--line);cursor:default}.gct .ph.na{color:var(--muted);border:1px dashed var(--line);cursor:default}.gct .ph .cu{font-weight:500;opacity:.85}.gct .phase-group{border:1px solid var(--line);border-radius:var(--radius);margin-bottom:12px;overflow:hidden}.gct .phase-group>summary,.gct .phase-group>.ph-head{display:flex;flex-wrap:wrap;gap:6px 14px;align-items:center;justify-content:space-between;padding:10px 12px;background:var(--surface-2);font-weight:600;cursor:pointer;list-style:none}.gct .phase-group>.ph-head{cursor:default}.gct .phase-group>summary::-webkit-details-marker{display:none}.gct .phase-group>summary:after{content:"Show weeks";font-size:12px;color:var(--accent);font-weight:500}.gct .phase-group[open]>summary:after{content:"Hide weeks"}.gct .phase-group .sum{font-weight:400;font-size:12px;color:var(--muted)}.gct .phase-group .weeklist{padding:0 12px}.gct th.r,.gct td.r{text-align:right}.gct .bar-h{display:inline-block;height:6px;background:var(--accent);border-radius:3px;vertical-align:middle;margin-right:6px}.gct .stu-head{display:flex;flex-wrap:wrap;gap:10px 20px;align-items:flex-end;justify-content:space-between;margin-bottom:14px}.gct .back{font:inherit;font-size:13px;color:var(--accent);background:none;border:0;padding:0;cursor:pointer;text-decoration:underline;text-underline-offset:3px}.gct .chart-wrap{position:relative}.gct .chart-wrap svg{display:block;width:100%;height:auto;max-width:100%}.gct .tip{position:absolute;pointer-events:none;background:var(--fg);color:var(--bg);font-size:12px;padding:6px 9px;border-radius:4px;box-shadow:var(--shadow);white-space:nowrap;z-index:5;transform:translate(-50%,calc(-100% - 10px))}.gct .tip b{font-family:var(--font-data);font-weight:500}.gct .chart-legend{display:flex;flex-wrap:wrap;gap:6px 16px;font-size:12px;color:var(--muted);margin-top:6px}.gct .chart-legend i{display:inline-block;width:12px;height:12px;vertical-align:-2px;margin-right:5px;border-radius:2px}.gct .weeklist{display:grid;gap:8px}.gct .wkrow{display:grid;grid-template-columns:120px minmax(0,1fr) auto;gap:12px;align-items:start;padding:10px 0;border-top:1px solid var(--line);min-width:0}.gct .wkrow:first-child{border-top:0}.gct .wkrow .wk{font-weight:600}.gct .wkrow .wk .sub{display:block;font-weight:400;font-size:11px;color:var(--muted)}.gct .wkrow .st{justify-self:end}.gct .items{display:grid;gap:6px;min-width:0}.gct .item{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 12px;align-items:start;font-size:13px;min-width:0}@media (max-width:900px){.gct .item{grid-template-columns:1fr}.gct .item .dates{white-space:normal}}.gct .item .nm{overflow-wrap:anywhere}.gct .item .dates{font-family:var(--font-data);font-size:11px;color:var(--muted);white-space:nowrap}.gct .item.inf .nm{color:var(--muted)}.gct .item .ok{color:var(--on)}.gct .item .late{color:var(--behind)}.gct .item .open{color:var(--watch)}.gct .hours-line{font-size:12px;color:var(--muted)}.gct .hours-line .num{color:var(--fg)}@media (max-width:640px){.gct .wkrow{grid-template-columns:1fr;gap:6px}.gct .wkrow .st{justify-self:start}}.gct details summary{cursor:pointer;font-weight:600;list-style:none;display:flex;justify-content:space-between;align-items:baseline;gap:12px}.gct details summary::-webkit-details-marker{display:none}.gct details summary:after{content:"Show";font-size:12px;color:var(--accent);font-weight:500}.gct details[open] summary:after{content:"Hide"}.gct .log td{font-size:12px}.gct .log td.when{font-family:var(--font-data);font-size:11px;white-space:nowrap}.gct .log .ontime{color:var(--on)}.gct .log .latev{color:var(--behind)}.gct .log .est{color:var(--watch)}.gct pre{font-family:var(--font-data);font-size:12px;line-height:1.5;background:var(--surface-2);border-radius:4px;padding:12px;overflow-x:auto;margin:0}.gct .two{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:16px}.gct .notes-grid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:16px;align-items:start}@media (max-width:820px){.gct .notes-grid{grid-template-columns:1fr}}.gct .note-form{display:grid;gap:8px}.gct textarea{font:inherit;font-size:13px;color:var(--fg);background:var(--surface);border:1px solid var(--line);border-radius:4px;padding:8px 10px;width:100%;min-height:68px;resize:vertical}.gct textarea:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.gct .btn{font:inherit;font-size:13px;font-weight:600;border:1px solid var(--accent);background:var(--accent);color:#fff;padding:6px 14px;border-radius:4px;cursor:pointer}.gct .btn.secondary{background:transparent;color:var(--accent)}.gct .btn.danger{border-color:var(--behind);color:var(--behind);background:transparent}.gct .btn:disabled{opacity:.5;cursor:default}.gct .btn.small,.gct .btn-link{font-size:12px;padding:3px 8px}.gct .btn-link{font:inherit;font-size:12px;background:none;border:0;color:var(--accent);cursor:pointer;padding:0 4px;text-decoration:underline;text-underline-offset:3px}.gct .btn-link.danger{color:var(--behind)}.gct .note-list{display:grid;gap:10px;margin-top:12px}.gct .note{border-top:1px solid var(--line);padding-top:10px;display:grid;gap:4px}.gct .note .meta{display:flex;flex-wrap:wrap;gap:4px 10px;font-size:11px;color:var(--muted);align-items:baseline}.gct .note .meta b{color:var(--fg);font-weight:600}.gct .note .who{font-family:var(--font-data)}.gct .note .text{white-space:pre-wrap;overflow-wrap:anywhere;font-size:13px}.gct .note .actions{display:flex;gap:4px;margin-left:auto}.gct .empty{font-size:12px;color:var(--muted);padding:8px 0}.gct .check-phase{border-top:1px solid var(--line);padding:10px 0}.gct .check-phase:first-of-type{border-top:0;padding-top:0}.gct .check-phase h3{margin-bottom:6px}.gct .check{display:grid;grid-template-columns:1fr auto;gap:6px 12px;align-items:center;padding:4px 0;font-size:13px;min-width:0}.gct .check .lbl{overflow-wrap:anywhere}.gct .seg{display:inline-flex;border:1px solid var(--line);border-radius:4px;overflow:hidden}.gct .seg button{font:inherit;font-size:12px;border:0;background:transparent;color:var(--muted);padding:3px 9px;cursor:pointer;border-left:1px solid var(--line)}.gct .seg button:first-child{border-left:0}.gct .seg button[aria-pressed=true]{background:var(--accent-soft);color:var(--accent-ink);font-weight:600}.gct .seg button[aria-pressed=true].yes{background:var(--on-bg);color:var(--on)}.gct .seg button[aria-pressed=true].no{background:var(--behind-bg);color:var(--behind)}.gct .seg button:disabled{cursor:default;opacity:.6}.gct .counter{display:inline-flex;align-items:center;border:1px solid var(--line);border-radius:4px;overflow:hidden}.gct .counter button{font:inherit;font-size:14px;border:0;background:transparent;color:var(--accent);width:28px;height:26px;cursor:pointer}.gct .counter button:disabled{opacity:.4;cursor:default}.gct .counter span{font-family:var(--font-data);font-size:12px;min-width:26px;text-align:center;border-left:1px solid var(--line);border-right:1px solid var(--line);line-height:26px}.gct .saving{font-size:11px;color:var(--muted);font-family:var(--font-data)}.gct .readonly-note{font-size:12px;color:var(--muted);background:var(--surface-2);border-radius:4px;padding:8px 10px;margin-bottom:10px}.gct td.chk{font-family:var(--font-data);font-size:12px;text-align:center}.gct th.c{text-align:center;font-size:10px;padding-left:4px;padding-right:4px}.gct .mark{display:inline-block;min-width:20px;height:20px;line-height:20px;border-radius:4px;font-size:12px;font-weight:600;text-align:center;padding:0 4px}.gct .mark.yes{background:var(--on-bg);color:var(--on)}.gct .mark.no{background:var(--behind-bg);color:var(--behind)}.gct .mark.nr{color:var(--muted);background:var(--surface-2)}.gct .mark.n{background:var(--accent-soft);color:var(--accent-ink)}.gct .mark.zero{color:var(--muted)}.gct td.lastnote{white-space:normal;max-width:300px;min-width:200px;font-size:12px;line-height:1.35}.gct td.lastnote .meta{font-size:11px;color:var(--muted);font-family:var(--font-data)}.gct td.lastnote .txt{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.gct .rules ol,.gct .rules ul{margin:6px 0 0;padding-left:20px}.gct .rules li{margin:4px 0}.gct .note-sm{font-size:12px;color:var(--muted);margin-top:8px}@media (prefers-reduced-motion:no-preference){.gct .cell,.gct .pill{transition:box-shadow .15s}}
