:root{--ground:#f5f4f0;--ink:#15171a;--muted:#5b5f66;--soft:#4a4e55;--line:#e2e0da;--line2:#eceae5;--chip:#e7e5df;--blue:#1f4e79;--blue-tint:#eef3f8;--blue-deep:#173c5e;--green:#1e5636;--green-tint:#e8f3ec;--green-line:#b9d6c4;--warn:#8a3b12;--warn-tint:#fcede3}*{box-sizing:border-box}html,body{margin:0}body{background:var(--ground);color:var(--ink);-webkit-font-smoothing:antialiased;font-family:Inter,system-ui,sans-serif}a{color:var(--ink)}a:hover{color:var(--blue)}h1,h2,h3{letter-spacing:-.01em;margin:0;font-family:Archivo,sans-serif}button{cursor:pointer;font-family:inherit}button:disabled{cursor:not-allowed;opacity:.6}input:focus-visible,textarea:focus-visible,select:focus-visible,button:focus-visible,a:focus-visible{outline:2px solid var(--blue);outline-offset:2px}.stack{flex-direction:column;gap:16px;display:flex}.row{flex-wrap:wrap;align-items:flex-start;gap:20px;display:flex}.row>*{flex:340px;min-width:0}.sub{color:var(--muted);margin:0;font-size:14px;line-height:1.45}.eyebrow{color:var(--muted);text-transform:uppercase;letter-spacing:.06em;font-size:13px;font-weight:600}.h1{letter-spacing:-.02em;font-size:40px;font-weight:800}.display{letter-spacing:-.02em;font-size:56px;font-weight:800;line-height:1.02}.lede{color:var(--muted);max-width:680px;margin:0;font-size:16px;line-height:1.5}.card{border:1px solid var(--line);background:#fff;border-radius:12px;flex-direction:column;gap:14px;min-width:0;padding:24px;display:flex}.card.dark{background:var(--ink);color:var(--ground);border-color:var(--ink)}.card.dark .sub,.card.dark p{color:#c9cbcf}.card.dark .eyebrow{color:#a9adb3}.field{flex-direction:column;gap:6px;display:flex}label{font-size:14px;font-weight:600}.input,.textarea,.select{min-height:48px;color:var(--ink);background:#fff;border:1px solid #cfccc4;border-radius:8px;width:100%;padding:0 14px;font:400 16px Inter,sans-serif}.textarea{resize:vertical;min-height:96px;padding:12px 14px;line-height:1.45}.btn{min-width:100px;min-height:44px;color:var(--ink);background:#fff;border:1px solid #cfccc4;border-radius:8px;flex:none;justify-content:center;align-items:center;padding:0 14px;font-size:14px;font-weight:600;text-decoration:none;display:inline-flex}.btn.done{border-color:var(--green-line);background:var(--green-tint);color:var(--green)}.btn.primary{background:var(--ink);border-color:var(--ink);color:#fff}.btn.blue{background:var(--blue);border-color:var(--blue);color:#fff}.btn.quiet{color:var(--muted);background:0 0;border-color:#0000;min-width:0}.cta{background:var(--ink);color:#fff;border:0;border-radius:10px;justify-content:center;align-items:center;width:100%;min-height:52px;font-size:16px;font-weight:600;text-decoration:none;display:flex}.cta:hover{color:#fff;opacity:.92}.note{background:var(--blue-tint);color:var(--blue);border-radius:10px;padding:14px;font-size:15px;font-weight:600;line-height:1.45}.warn{background:var(--warn-tint);color:var(--warn);border-radius:10px;padding:12px 14px;font-size:14px;font-weight:600;line-height:1.45}.badge{background:var(--green-tint);min-height:28px;color:var(--green);border-radius:999px;align-self:flex-start;align-items:center;padding:0 10px;font-size:13px;font-weight:600;display:inline-flex}.badge.blue{background:var(--blue-tint);color:var(--blue)}.badge.grey{background:var(--chip);color:var(--soft)}.item{border-top:1px solid var(--line2);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding:14px 0;display:flex}.item>.grow{flex-direction:column;flex:220px;gap:4px;min-width:0;display:flex}.item .t{font-size:15px;font-weight:600}.shell{flex-wrap:wrap;min-height:100vh;display:flex}.side{background:var(--ink);color:var(--ground);flex-direction:column;flex:220px;gap:24px;padding:28px 20px;display:flex}.side.blue{background:var(--blue)}.brand{align-items:center;gap:10px;font-family:Archivo,sans-serif;font-weight:700;display:flex}.brand-word{letter-spacing:.08em;text-transform:uppercase;font-size:14px}.mark{border:2px solid;justify-content:center;align-items:center;width:32px;height:32px;font-family:Archivo,sans-serif;font-weight:800;display:flex}.mark-lg{width:40px;height:40px;font-size:20px}.nav{flex-direction:column;gap:4px;display:flex}.nav a{color:#d5d7db;border-radius:8px;align-items:center;min-height:44px;padding:0 12px;font-size:15px;text-decoration:none;display:flex}.nav a.on{color:#fff;background:#ffffff1f;font-weight:600}.who{color:#b9bdc3;word-break:break-all;padding:0 12px;font-size:13px;line-height:1.4}.signout{color:#b9bdc3;text-align:left;background:0 0;border:0;min-height:44px;padding:0 12px;font-size:14px}.main{flex-direction:column;flex:999 560px;gap:24px;min-width:0;max-width:1120px;padding:40px 32px;display:flex}.center-page{justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex}.login{flex-wrap:wrap;min-height:100vh;display:flex}.login-left{background:var(--ink);color:var(--ground);flex-direction:column;flex:420px;justify-content:space-between;gap:48px;padding:56px 48px;display:flex}.login-lede{color:#c9cbcf;margin:0;font-size:18px;line-height:1.55}.muted-dark{color:#a9adb3;font-size:14px}.login-right{flex:999 520px;justify-content:center;align-items:center;min-width:0;padding:56px 24px;display:flex}.login-form{flex-direction:column;gap:24px;width:100%;max-width:440px;display:flex}.bar{background:var(--chip);border-radius:999px;height:10px;overflow:hidden}.bar>div{background:var(--blue);border-radius:999px;height:10px}.weeks{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;display:grid}.wk{border:1px solid var(--blue);min-height:48px;color:var(--blue);background:#fff;border-radius:8px;justify-content:center;align-items:center;font-size:15px;font-weight:600;text-decoration:none;display:flex}.wk.done{background:var(--blue);color:#fff}.wk.done:hover{color:#fff}.wk.cur{border-width:2px}.wk.lock{color:#8a8e95;border-color:var(--line);background:#f1efea}.wk.sel{outline:2px solid var(--ink);outline-offset:1px}.table{border-collapse:collapse;width:100%;font-size:14px}.table th{text-align:left;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);border-bottom:1px solid var(--line);padding:10px 8px;font-size:12px}.table td{border-bottom:1px solid var(--line2);vertical-align:middle;padding:12px 8px}.scroll-x{overflow-x:auto}@media (max-width:600px){.main{padding:28px 16px}.h1{font-size:32px}.display{font-size:44px}.login-left{padding:40px 24px}.side{gap:16px;padding:20px 16px}}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}
