:root{--ink: #1b2340;--muted: #5a6480;--bg: #eef1f6;--card: #fff;--line: #d5dbe6;--marker: #ffd23f;--teal: #17797a;--radius: 10px;font-family:Atkinson Hyperlegible,system-ui,-apple-system,Segoe UI,sans-serif;color:var(--ink);background:var(--bg);line-height:1.5}*{box-sizing:border-box}body{margin:0}h1{font-size:1.75rem;margin:0 0 .25rem;letter-spacing:-.01em}h2{font-size:1.1rem;margin:0 0 .6rem}p{margin:.25rem 0}.muted{color:var(--muted)}.small{font-size:.85rem}:focus-visible{outline:3px solid var(--teal);outline-offset:2px}.shell{display:grid;grid-template-columns:260px 1fr;min-height:100vh}.side{background:var(--ink);color:#fff;padding:1.5rem 1rem;position:sticky;top:0;height:100vh}.brand{font-weight:700;font-size:1.3rem;margin-bottom:1.5rem;padding-left:.5rem}.child{display:block;font-size:.85rem;margin-bottom:1.25rem}.child span{display:block;margin-bottom:.25rem;opacity:.75}.child select{width:100%}nav{display:grid;gap:.25rem}nav button{all:unset;cursor:pointer;padding:.6rem .75rem;border-radius:8px;display:flex;justify-content:space-between;border-left:4px solid transparent}nav button:hover{background:#ffffff14}nav button.on{background:#ffffff1f;border-left-color:var(--marker);font-weight:700}nav button:focus-visible{outline:3px solid var(--marker)}.badge{background:var(--marker);color:var(--ink);border-radius:99px;padding:0 .5rem;font-size:.8rem}.main{padding:2rem clamp(1rem,4vw,3rem);max-width:1000px;width:100%}.grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem;margin-top:1.25rem}.wide{grid-column:1 / -1}.cards{list-style:none;padding:0;margin:1rem 0;display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:1rem}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:1rem 1.1rem}.card.old{opacity:.55}.row{display:flex;justify-content:space-between;align-items:baseline;gap:.75rem}.rows{list-style:none;padding:0;margin:0 0 .5rem}.rows li{display:flex;align-items:baseline;gap:.75rem;padding:.4rem 0;border-bottom:1px solid var(--line);flex-wrap:wrap}.rows li:last-child{border-bottom:0}.time{min-width:3.4rem;font-variant-numeric:tabular-nums;color:var(--muted)}.when{font-weight:700}.cta{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap;background:var(--marker);border-color:var(--marker)}.cta .muted{color:var(--ink)}.tag{font-size:.8rem;padding:.1rem .6rem;border-radius:99px;border:1px solid var(--line);white-space:nowrap}.tag.mark{background:var(--marker);border-color:var(--marker)}.dot{display:inline-block;width:.6rem;height:.6rem;border-radius:50%;background:var(--teal);margin-right:.5rem}.btn{cursor:pointer;border:2px solid var(--ink);background:var(--ink);color:#fff;border-radius:8px;padding:.55rem 1rem;font:inherit;font-weight:700}.btn:hover{background:#2c3764}.btn.ghost{background:transparent;color:var(--ink)}.btn.ghost:hover{background:#1b234012}.cta .btn:hover{background:var(--ink);filter:brightness(1.3)}.link{all:unset;cursor:pointer;color:var(--teal);text-decoration:underline;font-weight:700}.link:focus-visible{outline:3px solid var(--teal)}.actions{display:flex;gap:.5rem;flex-wrap:wrap;margin-top:.75rem}.mail a{color:var(--teal);word-break:break-all}input,select,textarea{font:inherit;padding:.5rem .65rem;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--ink);width:100%}label{display:grid;gap:.25rem;font-weight:700;font-size:.9rem}label.check{display:flex;align-items:center;gap:.5rem;font-weight:400}label.check input{width:auto}.filters{display:flex;gap:1rem;align-items:center;flex-wrap:wrap;margin-top:1rem}.filters input[type=search]{max-width:320px}.form{display:grid;gap:.9rem;margin:1rem 0 1.5rem;max-width:560px}.two{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}.scroll{overflow-x:auto;margin-top:1rem}.plan{border-collapse:collapse;width:100%;min-width:640px;background:#fff;border:1px solid var(--line)}.plan th,.plan td{border:1px solid var(--line);padding:.5rem .6rem;text-align:left;vertical-align:top}.plan small{display:block;color:var(--muted);font-weight:400}.plan th.today,.plan td.today{background:#fff6cc}.plan thead th.today{box-shadow:inset 0 -4px 0 var(--marker)}dialog{border:0;border-radius:var(--radius);padding:1.25rem;width:min(520px,92vw)}dialog::backdrop{background:#1b23408c}.dlg{display:grid;gap:.75rem}@media(max-width:760px){.shell{grid-template-columns:1fr}.side{position:static;height:auto;padding:1rem}.brand{margin-bottom:.75rem}nav{grid-auto-flow:column;overflow-x:auto}nav button{white-space:nowrap;border-left:0;border-bottom:4px solid transparent}nav button.on{border-bottom-color:var(--marker)}.grid{grid-template-columns:1fr}}@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}.cal-head{display:flex;justify-content:space-between;align-items:center;margin:1rem 0 .5rem}.cal-head h2{margin:0;text-transform:capitalize}.cal-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border-top:1px solid var(--line);border-left:1px solid var(--line);background:#fff}.cal-dow{padding:.4rem;font-weight:700;font-size:.85rem;color:var(--muted);border-right:1px solid var(--line);border-bottom:1px solid var(--line)}.cal-cell{min-height:6rem;padding:.25rem;border-right:1px solid var(--line);border-bottom:1px solid var(--line);display:flex;flex-direction:column;gap:2px;min-width:0}.cal-cell.other{background:#f6f7fa;color:var(--muted)}.cal-cell.add{cursor:cell}.cal-cell.add:hover{background:#fffbe6}.num{all:unset;align-self:flex-start;min-width:1.6rem;height:1.6rem;display:grid;place-items:center;border-radius:50%;font-size:.85rem}button.num{cursor:pointer}button.num:focus-visible{outline:3px solid var(--teal)}.cal-cell.today .num{background:var(--ink);color:#fff;font-weight:700}.chip{all:unset;cursor:pointer;box-sizing:border-box;width:100%;font-size:.78rem;padding:1px 5px;border-left:4px solid var(--c);background:color-mix(in srgb,var(--c) 14%,#fff);color:var(--ink);border-radius:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chip:hover{background:color-mix(in srgb,var(--c) 28%,#fff)}.chip:focus-visible{outline:3px solid var(--teal)}.more{font-size:.75rem;color:var(--muted);padding-left:4px}.legend{display:flex;gap:1.25rem;flex-wrap:wrap;margin:.5rem 0}.sw{display:inline-block;width:.8rem;height:.8rem;border-radius:3px;margin-right:.4rem;flex:none}.detail{margin-top:1rem}.gap{margin-top:1.75rem}.admin{min-height:100vh}.admin-bar{background:var(--ink);color:#fff;padding:.8rem clamp(1rem,4vw,3rem);display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap}.admin-bar a{color:var(--marker)}.admin-bar .btn.ghost{color:#fff;border-color:#fff;padding:.3rem .8rem}.admin-body{padding:1.5rem clamp(1rem,4vw,3rem);max-width:1200px}.gate{display:grid;gap:.9rem;max-width:380px;margin:4rem auto}.error{color:#b02a2a;font-weight:700}.tabs{display:flex;gap:.25rem;border-bottom:2px solid var(--line);margin-bottom:1.25rem}.tabs button{all:unset;cursor:pointer;padding:.6rem 1rem;border-bottom:4px solid transparent;margin-bottom:-2px}.tabs button.on{font-weight:700;border-bottom-color:var(--marker)}.tabs button:focus-visible{outline:3px solid var(--teal)}.inline{display:flex;gap:.5rem;flex-wrap:wrap;margin:.75rem 0}.inline input,.inline select{width:auto;flex:1 1 160px}.admin-cal{display:grid;grid-template-columns:250px 1fr;gap:1.25rem;align-items:start}.admin-cal .rows li{justify-content:space-between;flex-wrap:nowrap}.admin-cal .cal-head{margin-top:0}@media(max-width:760px){.admin-cal{grid-template-columns:1fr}.cal-cell{min-height:4.2rem}.chip small{display:none}}
