:root{--red:#b0362e;--red-dark:#8f2b25;--gold:#c49a3c;--ink:#1a1a1a;--cream:#f4f4f1;--paper:#ffffff;--line:#dcdcd6;--muted:#6b6b64;--ok:#2f6b3a;--warn:#9a6a12;--r:3px}*{box-sizing:border-box}body,html{margin:0}body{font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;background:var(--cream);color:var(--ink);font-size:16px;line-height:1.45}a{color:var(--red)}h1{font-size:1.6rem;letter-spacing:-.01em;margin:0 0 1rem}h1,h2{font-weight:700}h2{font-size:1.15rem;margin:1.75rem 0 .75rem}.topbar{background:var(--paper);justify-content:space-between;padding:.4rem 1rem;position:-webkit-sticky;position:sticky;top:0;z-index:10;border-top:3px solid var(--red);border-bottom:1px solid var(--line)}.brand,.topbar{color:var(--ink);display:flex;align-items:center}.brand{gap:.6rem;font-weight:700;text-decoration:none;justify-self:start}.brand span{color:var(--muted);letter-spacing:.12em;font-size:.8rem}.brand-logo{height:46px;width:auto;display:block}main{max-width:1000px;margin:0 auto;padding:1.25rem 1rem 6rem}.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));grid-gap:.75rem;gap:.75rem}.kpi{background:var(--paper);border:1px solid var(--line);border-radius:var(--r);padding:.9rem 1rem}.kpi .label{font-size:.75rem;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}.kpi .value{font-size:1.7rem;font-weight:700;margin-top:.2rem;color:var(--ink)}.card{background:var(--paper);border:1px solid var(--line);border-radius:var(--r);padding:1rem;margin-bottom:.75rem}.row{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}.between{justify-content:space-between}.muted{color:var(--muted);font-size:.9rem}.stack>*+*{margin-top:.5rem}.table-wrap{overflow-x:auto;background:var(--paper);border:1px solid var(--line);border-radius:var(--r)}table{width:100%;border-collapse:collapse;font-size:.95rem}td,th{text-align:left;padding:.6rem .75rem;border-bottom:1px solid var(--line);white-space:nowrap}th{font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);background:var(--cream);font-weight:600}tr:last-child td{border-bottom:0}td.num,th.num{text-align:right}input,select,textarea{font:inherit;padding:.55rem .65rem;border:1px solid #c9c9c2;border-radius:var(--r);background:#fff;color:var(--ink);min-width:0}input:focus,select:focus,textarea:focus{outline:2px solid var(--red);outline-offset:-1px;border-color:var(--red)}textarea{width:100%}label.field{display:flex;flex-direction:column;gap:.25rem;font-size:.85rem;color:var(--muted)}.grid-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));grid-gap:.6rem;gap:.6rem;align-items:end}.btn,button{font:inherit;font-weight:600;border:1px solid transparent;border-radius:var(--r);cursor:pointer;padding:.6rem 1rem;background:var(--red);color:#fff;text-decoration:none;display:inline-block}.btn:hover,button:hover{background:var(--red-dark)}button.secondary{background:#fff;color:var(--ink);border-color:#c9c9c2}button.secondary:hover{background:var(--cream)}button.gold{background:var(--gold);color:var(--ink)}button.gold:hover{background:#b08a33}button.big{padding:.85rem 1.1rem;font-size:1.05rem}.link-btn{background:none;color:var(--muted);padding:0;font-weight:400;font-size:.9rem;border:0}.link-btn:hover{background:none;color:var(--ink);text-decoration:underline}.pill{display:inline-block;font-size:.75rem;font-weight:600;padding:.15rem .5rem;border-radius:var(--r);background:var(--cream);border:1px solid var(--line)}.pill.ok{color:var(--ok);border-color:#b9d6bd;background:#eef6ef}.pill.warn{color:var(--warn);border-color:#ead7a8;background:#fbf4e2}.pill.bad{color:var(--red);border-color:#e8b9b4;background:#fbecea}.daytabs{display:flex;gap:0;overflow-x:auto;margin-bottom:1rem;border:1px solid var(--line);border-radius:var(--r);background:var(--paper);width:-moz-fit-content;width:fit-content;max-width:100%}.daytabs a{text-decoration:none;padding:.5rem .85rem;border-right:1px solid var(--line);color:var(--ink);font-size:.9rem;white-space:nowrap}.daytabs a:last-child{border-right:0}.daytabs a.on{background:var(--ink);color:#fff}.member-name{font-weight:700;font-size:1.05rem}.done{opacity:.6}details summary{cursor:pointer;font-weight:600}.empty{text-align:center;padding:2rem 1rem;color:var(--muted)}.login{max-width:380px;margin:10vh auto;padding:0 1rem}.pub{max-width:460px;margin:0 auto;padding:1.5rem 1rem 3rem}.pub .farm{font-weight:700;font-size:1.1rem;text-align:center;margin-bottom:1.25rem}.pub .farm span{color:var(--red)}.pub .pay{display:block;width:100%;text-align:left;padding:1rem 1.1rem;font-size:1.1rem;margin-top:.75rem}.pub .pay small{display:block;font-weight:400;font-size:.85rem;opacity:.9;margin-top:.15rem}.pub .fine{color:var(--muted);font-size:.85rem;margin-top:1.5rem}.pub .notice{background:#fbf4e2;border:1px solid #ead7a8;border-radius:var(--r);padding:.7rem .9rem;margin-bottom:1rem}.pub .join{display:flex;flex-direction:column;gap:.85rem}.pub .join input:not([type=radio]):not([type=checkbox]),.pub .join select{width:100%;padding:.7rem .75rem;font-size:1rem}.pub .join fieldset{border:1px solid var(--line);border-radius:var(--r);padding:.6rem .8rem .8rem;margin:0;display:flex;flex-direction:column;gap:.6rem}.pub .join legend{font-size:.85rem;color:var(--muted);padding:0 .25rem}.pub .choice{display:flex;gap:.65rem;align-items:flex-start;font-size:.95rem;cursor:pointer}.pub .choice input{width:1.25rem;height:1.25rem;margin-top:.15rem;flex:none;accent-color:var(--red)}.pub .choice small{display:block;color:var(--muted);font-size:.85rem;margin-top:.1rem}.pub .hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}.notice{border-radius:var(--r)}.notice.bad{background:#fbecea;border-color:#e8b9b4}.flash{border-radius:var(--r);padding:.6rem .9rem;margin-bottom:1rem;background:#eef6ef;border:1px solid #b9d6bd}.flash.bad{background:#fbecea;border-color:#e8b9b4}.autopay-actions{display:flex;flex-wrap:wrap;gap:.35rem;margin-top:.35rem}.autopay-actions button{padding:.35rem .6rem;font-size:.85rem}.topnav{display:none}.topnav a{color:var(--ink);text-decoration:none;padding:.85rem 1.1rem;font-size:.95rem;font-weight:500;border-bottom:3px solid transparent;margin-bottom:-.4rem}.topnav a:hover{background:var(--cream)}.topnav a.on{color:var(--red);font-weight:700;border-bottom-color:var(--red)}.bottomnav{position:fixed;left:0;right:0;bottom:0;z-index:20;display:flex;background:var(--paper);border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom)}.bottomnav a{flex:1 1;display:flex;flex-direction:column;align-items:center;gap:2px;padding:.55rem 0 .5rem;color:var(--muted);font-size:.72rem;text-decoration:none;border-top:3px solid transparent;margin-top:-1px}.bottomnav a.on{color:var(--red);font-weight:700;border-top-color:var(--red)}@media (min-width:760px){.topbar{display:grid;grid-template-columns:1fr auto 1fr}.topbar form{justify-self:end}.topnav{display:flex;justify-self:center;gap:.1rem}.bottomnav{display:none}main{padding-bottom:4rem}}.src-head td{background:#fafaf8}.src-detail td{color:var(--muted);font-size:.9rem}td.indent{padding-left:1.75rem}main.wide{max-width:1320px}.page-head{display:flex;align-items:center;justify-content:space-between;gap:.75rem;flex-wrap:wrap;margin-bottom:.5rem}.page-head h1{margin:0}.view-tabs{display:flex;gap:0;overflow-x:auto;border-bottom:1px solid var(--line);margin-bottom:.75rem}.view-tabs a{padding:.6rem 1rem;text-decoration:none;color:var(--muted);border-bottom:3px solid transparent;margin-bottom:-1px;white-space:nowrap;font-size:.95rem}.view-tabs a.on,.view-tabs a:hover{color:var(--ink)}.view-tabs a.on{font-weight:700;border-bottom-color:var(--red)}.toolbar{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;margin-bottom:.75rem}.toolbar input[type=search]{min-width:14rem;flex:1 1;max-width:22rem}.toolbar .clear{font-size:.9rem;margin-left:.25rem}.grid-table{background:var(--paper);border:1px solid var(--line);border-radius:var(--r);overflow-x:auto}.grid-table table{font-size:.93rem}.grid-table th a{color:inherit;text-decoration:none}.grid-table th a:hover{color:var(--ink)}.grid-table tbody tr:hover td{background:#fafaf8}.name-cell{display:flex;align-items:center;gap:.6rem}.name-cell a{font-weight:600;text-decoration:none}.name-cell a:hover{text-decoration:underline}.avatar{flex:none;width:34px;height:34px;border-radius:var(--r);background:var(--cream);border:1px solid var(--line);display:grid;place-items:center;font-size:.78rem;font-weight:700;color:var(--muted)}.avatar.lg{width:52px;height:52px;font-size:1.05rem}.table-foot{justify-content:space-between;flex-wrap:wrap;gap:.5rem;padding:.6rem .25rem;color:var(--muted);font-size:.9rem}.pager,.table-foot{display:flex;align-items:center}.pager{gap:.15rem}.pager a,.pager span{padding:.3rem .6rem;border:1px solid transparent;border-radius:var(--r);text-decoration:none;color:var(--ink)}.pager a:hover{background:var(--cream)}.pager .cur{border-color:var(--line);background:#fff;font-weight:700}.pager .off{color:#b5b5ae}@media (max-width:759px){.hide-sm{display:none}}.rec{display:grid;grid-template-columns:minmax(0,1fr);grid-gap:1rem;gap:1rem;align-items:start}@media (min-width:1000px){.rec{grid-template-columns:290px minmax(0,1fr) 300px}}.rec .col{display:grid;grid-gap:1rem;gap:1rem;min-width:0;align-content:start}.panel{background:var(--paper);border:1px solid var(--line);border-radius:var(--r)}.panel>header{display:flex;justify-content:space-between;align-items:center;gap:.5rem;padding:.65rem 1rem;border-bottom:1px solid var(--line);font-weight:700;font-size:.93rem}.panel>.body{padding:.85rem 1rem}.panel details>summary{padding:.5rem 1rem}.rec-top{display:flex;gap:.75rem;align-items:center}.rec-top h1{margin:0;font-size:1.3rem}.props{margin:0}.props dt{font-size:.76rem;color:var(--muted);margin-top:.75rem}.props dt:first-child{margin-top:0}.props dd{margin:.1rem 0 0;word-break:break-word}.qa{display:flex;gap:1rem;margin-top:.9rem;flex-wrap:wrap}.qa a,.qa button.qa-btn{display:flex;flex-direction:column;align-items:center;gap:.25rem;font-size:.76rem;color:var(--ink);text-decoration:none;background:none;border:0;padding:0;cursor:pointer;font-weight:400}.qa .ic{width:36px;height:36px;border:1px solid #c9c9c2;border-radius:var(--r);display:grid;place-items:center;background:#fff;color:var(--ink)}.qa a:hover .ic{border-color:var(--red);color:var(--red)}.rec-tabs{display:flex;border-bottom:1px solid var(--line);background:var(--paper);border:1px solid var(--line);border-radius:var(--r) var(--r) 0 0}.rec-tabs a{flex:1 1;text-align:center;padding:.75rem .5rem;text-decoration:none;color:var(--muted);border-bottom:3px solid transparent;font-weight:500}.rec-tabs a.on{color:var(--ink);font-weight:700;border-bottom-color:var(--red)}.rec-main{display:grid;grid-gap:.85rem;gap:.85rem}.filter-chips{display:flex;gap:.25rem;flex-wrap:wrap}.filter-chips a{padding:.3rem .7rem;border:1px solid var(--line);border-radius:var(--r);background:#fff;color:var(--ink);text-decoration:none;font-size:.85rem}.filter-chips a.on{background:var(--ink);color:#fff;border-color:var(--ink)}.tl-month{font-size:.85rem;font-weight:700;color:var(--muted);margin:.25rem 0 .1rem}.tl-item{display:grid;grid-template-columns:1fr auto;grid-gap:.25rem .75rem;gap:.25rem .75rem;background:var(--paper);border:1px solid var(--line);border-radius:var(--r);padding:.75rem 1rem}.tl-item .what{font-weight:600}.tl-item .when{color:var(--muted);font-size:.85rem;white-space:nowrap}.tl-item .note{grid-column:1/-1;color:var(--ink)}.tl-item.sys .what{font-weight:500;color:var(--muted)}.kv{width:100%;font-size:.9rem}.kv td{padding:.35rem 0;border:0;white-space:normal;vertical-align:top}.kv td:first-child{color:var(--muted);width:42%;padding-right:.5rem}.metrics{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:.75rem;gap:.75rem}.metrics .m-label{font-size:.75rem;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}.metrics .m-val{font-size:1.4rem;font-weight:700}.bar{height:8px;background:var(--cream);border-radius:var(--r);overflow:hidden;margin:2px 0}.bar span{display:block;height:100%}.printonly{display:none}.small{font-size:.82rem}a.plain{color:inherit;text-decoration:none;font-weight:600}.sheet-day{margin-bottom:1.5rem}.sheet-head h2{margin:0}table.sheet td.chk,table.sheet th.chk{width:2.2rem;text-align:center}table.sheet .box{display:inline-block;width:1.05rem;height:1.05rem;border:1.5px solid var(--ink);border-radius:2px;vertical-align:middle}@media print{.bottomnav,.noprint,.topbar{display:none!important}.printonly{display:block;font-size:1.1rem;margin:0 0 .75rem}body{background:#fff}main,main.wide{max-width:none;padding:0}.sheet-day{page-break-inside:avoid;break-inside:avoid;page-break-after:always;margin-bottom:0}.sheet-day:last-child{page-break-after:auto}.grid-table{border:0;overflow:visible}table.sheet td,table.sheet th{padding:.45rem .4rem;border-bottom:1px solid #bbb}.pill{border:0;background:none;padding:0;color:#000}}