:root{--ink:#111;--line:#cfcfcf;--line2:#eee;--muted:#767676;--fill:#f4f4f4}*{box-sizing:border-box}html,body{margin:0}body{color:var(--ink);background:#fff;font:14px/1.45 -apple-system,Segoe UI,Roboto,Arial,sans-serif}a{color:var(--ink);text-decoration:none}a:hover{text-decoration:underline}b{font-weight:650}.wf{min-height:100vh}.side{padding:16px 12px 40px}.brand{letter-spacing:.1em;text-transform:uppercase;padding:0 8px 4px;font-size:12px;font-weight:700}.brand .ver{letter-spacing:.06em;color:var(--muted);text-transform:none;margin-top:2px;font-size:10px;font-weight:400;display:block}.side h6{letter-spacing:.14em;color:var(--muted);text-transform:uppercase;margin:18px 8px 6px;font-size:10px;font-weight:600}.side a{border-radius:4px;justify-content:space-between;align-items:baseline;gap:8px;padding:5px 8px;font-size:13px;display:flex}.side a:hover{background:#f6f6f6;text-decoration:none}.side a.on{color:#fff;background:#111}.side a .r{color:#999;font:10px ui-monospace,SFMono-Regular,Consolas,monospace}.side a.on .r{color:#aaa}.main{min-width:0;max-width:1200px;margin:0 auto;padding:22px 26px 70px}.top{border-bottom:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:18px;padding-bottom:12px;display:flex}h1{letter-spacing:-.01em;margin:0;font-size:20px}.sub{color:var(--muted);margin:3px 0 0;font-size:12px}.right{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.route{color:#555;border:1px dashed var(--line);white-space:nowrap;border-radius:3px;padding:3px 7px;font:11px ui-monospace,SFMono-Regular,Consolas,monospace}.search{border:1px solid var(--line);color:var(--muted);border-radius:4px;min-width:240px;padding:7px 10px;font-size:12px}.grid{gap:12px;display:grid}.g4{grid-template-columns:repeat(4,1fr)}.g3{grid-template-columns:repeat(3,1fr)}.g2{grid-template-columns:repeat(2,1fr)}.split{grid-template-columns:1.7fr 1fr;align-items:start;gap:12px;display:grid}.card{border:1px solid var(--line);border-radius:6px;padding:12px 14px}.card h3{letter-spacing:.1em;text-transform:uppercase;color:#444;margin:0 0 10px;font-size:12px;font-weight:650}.card h3 .hint{float:right;letter-spacing:0;text-transform:none;color:var(--muted);font-size:11px;font-weight:400}.k{letter-spacing:.12em;text-transform:uppercase;color:var(--muted);font-size:10px}.big{letter-spacing:-.01em;margin-top:2px;font-size:21px;font-weight:650}.money{font-variant-numeric:tabular-nums}.muted{color:var(--muted)}.note{border:1px dashed var(--line);color:#666;border-radius:6px;padding:10px 12px;font-size:12px}.btn{color:#fff;cursor:pointer;background:#111;border:1px solid #111;border-radius:4px;padding:7px 12px;font-size:12px;display:inline-block}.btn.ghost{color:#111;background:#fff}.btn.sm{padding:4px 9px;font-size:11px}.tag{border:1px solid var(--line);letter-spacing:.06em;text-transform:uppercase;color:#555;background:#fff;border-radius:99px;padding:1px 8px;font-size:10px;display:inline-block}.tag.on{color:#fff;background:#111;border-color:#111}.tag.ok{color:#111;border-color:#111;font-weight:600}.ph{color:#9b9b9b;letter-spacing:.08em;text-transform:uppercase;background:repeating-linear-gradient(45deg,#fafafa,#fafafa 6px,#f1f1f1 6px 12px);border:1px dashed #c4c4c4;border-radius:4px;justify-content:center;align-items:center;font-size:11px;display:flex}.bar{background:#ececec;border-radius:99px;height:6px;margin:8px 0 4px;overflow:hidden}.bar i{background:#111;height:100%;display:block}.bar.sm{height:4px;margin:4px 0 0}table{border-collapse:collapse;width:100%;font-size:13px}th{text-align:left;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);border-bottom:1px solid var(--line);padding:7px 8px;font-size:10px;font-weight:600}td{border-bottom:1px solid var(--line2);vertical-align:top;padding:8px}tbody tr:hover td{background:#fafafa}td.num,th.num{text-align:right}tfoot td{border-bottom:0;border-top:1px solid var(--ink);padding-top:8px;font-weight:650}.cell{line-height:1.35;display:block}.cell .price{color:var(--muted);font-size:11px}.list{margin:0;padding:0;list-style:none}.list li{border-bottom:1px solid var(--line2);justify-content:space-between;align-items:baseline;gap:12px;padding:8px 0;display:flex}.list li:last-child{border-bottom:0}.list .l{align-items:baseline;gap:8px;display:flex}.time{color:var(--muted);min-width:44px;font:11px ui-monospace,SFMono-Regular,Consolas,monospace}.cap{border:1px solid var(--line);border-radius:6px;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:14px;padding:8px 10px;display:flex}.cap input{color:#111;background:0 0;border:0;outline:0;flex:1;min-width:220px;font:13px inherit}.cap input::placeholder{color:#9b9b9b}.chips{flex-wrap:wrap;gap:6px;display:flex}.stars{letter-spacing:2px}.cover{width:34px;height:46px}.kv{border-bottom:1px solid var(--line2);justify-content:space-between;gap:10px;padding:5px 0;font-size:13px;display:flex}.kv:last-child{border-bottom:0}ul.plain{margin:6px 0 0;padding-left:16px}ul.plain li{margin:3px 0}@media (width<=900px){.wf{grid-template-columns:1fr}.side{border-right:0;border-bottom:1px solid var(--line);height:auto;position:static}.g4,.g3,.g2,.split{grid-template-columns:1fr 1fr}.main{padding:16px 16px 60px}}@media (width<=620px){.g4,.g3,.g2,.split{grid-template-columns:1fr}.search{width:100%;min-width:0}}table.week{table-layout:fixed}table.week th:first-child,table.week td:first-child{width:82px}table.week th:last-child,table.week td:last-child{text-align:right;width:96px}table.week td{height:74px;padding:6px}table.week td.day{vertical-align:middle;font-size:12px;font-weight:650}table.week td.day .dd{color:var(--muted);font-size:10px;font-weight:400;display:block}table.week .cell{margin:0;font-size:12px}table.week .cell .price{color:var(--muted);margin-top:2px;font-size:10px;display:block}table.week td.tot{vertical-align:middle;font-variant-numeric:tabular-nums}table.week td.empty{color:#b5b5b5;text-align:center;vertical-align:middle;font-size:11px}table.week td.weekend{background:#fbfbfb}.pub{max-width:860px;margin:0 auto;padding:0 22px 80px}.pubbar{border-bottom:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:14px;padding:16px 0;display:flex}.pubbar .nm{letter-spacing:.02em;font-weight:700}.pubbar nav{color:#444;gap:16px;font-size:12px;display:flex}.hero{border-bottom:1px solid var(--line2);padding:52px 0 34px}.hero h2{letter-spacing:-.02em;margin:0 0 12px;font-size:34px;font-weight:700;line-height:1.15}.hero p{color:#444;max-width:56ch;margin:0;font-size:15px}.sechead{letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin:34px 0 12px;font-size:10px;font-weight:600}.authwrap{justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex}.authcard{border:1px solid var(--line);border-radius:8px;width:100%;max-width:352px;padding:22px}.authcard h1{font-size:17px}.fld{margin:12px 0}.fld label{letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:4px;font-size:10px;display:block}.fld input{border:1px solid var(--line);border-radius:4px;width:100%;padding:8px 10px;font:13px inherit}.side{z-index:50;border-right:1px solid var(--line);background:#fff;flex-direction:column;width:270px;height:100%;padding:14px 10px 0;transition:transform .18s;display:flex;position:fixed;top:0;bottom:0;left:0;overflow:hidden;transform:translate(-103%)}.sbrand{border-bottom:1px solid var(--line2);margin-bottom:8px;padding:0 8px 12px}.sbrand b{letter-spacing:.1em;text-transform:uppercase;font-size:12px;font-weight:700;display:block}.sbrand span{color:var(--muted);letter-spacing:.04em;margin-top:2px;font-size:10px;display:block}.snav{flex:auto;padding-bottom:10px;overflow:auto}.snav a[aria-current]:after{content:""}.sfoot{border-top:1px solid var(--line2);color:var(--muted);padding:10px 8px 14px;font-size:10px;line-height:1.6}.sfoot a{color:var(--ink);font-size:10px}.mbar{z-index:30;border-bottom:1px solid var(--line);background:#fff;align-items:center;gap:10px;padding:9px 14px;display:flex;position:sticky;top:0}.mbar .mt{letter-spacing:.1em;text-transform:uppercase;font-size:11px;font-weight:700}.mbar .mr{color:var(--muted);margin-left:auto;font:10px ui-monospace,Consolas,monospace}.mbtn{border:1px solid var(--line);cursor:pointer;background:#fff;border-radius:4px;justify-content:center;align-items:center;width:30px;height:28px;padding:0;font-size:14px;line-height:1;display:flex}.mbtn:hover{background:#f6f6f6}.backhome{letter-spacing:.08em;text-transform:uppercase;color:#555;border:1px solid var(--line);background:#fff;border-radius:4px;align-items:center;gap:6px;margin-bottom:10px;padding:3px 9px;font-size:11px;line-height:1.4;display:inline-flex}.backhome:hover{color:#111;border-color:#111;text-decoration:none}body.navopen .side{transform:none}body.navopen{overflow:hidden}.scrim{display:none}body.navopen .scrim{z-index:45;background:#00000052;display:block;position:fixed;inset:0}.closebtn{display:flex}@media (width<=900px){.main{padding:16px 16px 60px}}.closebtn{border:1px solid var(--line);cursor:pointer;background:#fff;border-radius:4px;justify-content:center;align-items:center;width:26px;height:24px;margin-left:auto;padding:0;font-size:13px}.sbrand .row{align-items:center;gap:8px;display:flex}.uc{border:1px dashed var(--line);text-align:center;border-radius:8px;padding:38px 24px}.uc h2{letter-spacing:-.01em;margin:0 0 8px;font-size:18px}.uc p{color:var(--muted);max-width:44ch;margin:0 auto;font-size:13px}.uc .tag{margin-top:16px;display:inline-block}.drop{text-align:center;color:var(--muted);background:repeating-linear-gradient(45deg,#fcfcfc,#fcfcfc 8px,#f7f7f7 8px 16px);border:1px dashed #c4c4c4;border-radius:6px;padding:26px;font-size:12px}.drop b{color:var(--ink);margin-bottom:4px;font-size:13px;display:block}.tabs{border:1px solid var(--line);border-radius:5px;display:inline-flex;overflow:hidden}.tabs a{border-right:1px solid var(--line);color:#555;padding:5px 12px;font-size:12px}.tabs a:last-child{border-right:0}.tabs a.on{color:#fff;background:#111}.tabs a:hover{background:#f4f4f4;text-decoration:none}.tabs a.on:hover{background:#111}.kpi-row{color:var(--muted);flex-wrap:wrap;gap:18px;font-size:12px;display:flex}.kpi-row b{color:var(--ink)}.sfoot a{color:var(--ink);background:0 0;padding:0;font-size:10px;display:inline}.sfoot a:hover{background:0 0;text-decoration:underline}a.card,a.card:visited{color:var(--ink);text-decoration:none;transition:border-color .12s,background .12s;display:block}a.card:hover{background:#fcfcfc;border-color:#111;text-decoration:none}a.card .k:after{content:" →";color:#c9c9c9}a.card:hover .k:after{color:#111}.card h3 a{text-decoration:none}.card h3 a:hover{text-decoration:underline}tr.today td{background:#f7f7f7;font-weight:600}tr.today td .muted{font-weight:400}.fld select{border:1px solid var(--line);background:#fff;border-radius:4px;width:100%;padding:8px 10px;font:13px inherit}.fld+.fld{margin-top:0}form.inline{display:inline}td .cell+.cell{border-top:1px dashed var(--line2);margin-top:8px;padding-top:8px}.btn.danger{color:#111;background:#fff;border-color:#111}.empty{border:1px dashed var(--line);text-align:center;color:var(--muted);border-radius:6px;padding:18px;font-size:12px}.rangeform{grid-template-columns:1.2fr .8fr auto auto;align-items:end;gap:10px;display:grid}.tablewrap{overflow-x:auto}table.meals{table-layout:fixed;min-width:780px}table.meals th:first-child,table.meals td:first-child{width:118px}table.meals th,table.meals td{border-right:1px solid var(--line2)}table.meals th:last-child,table.meals td:last-child{border-right:0}table.meals td{vertical-align:top;padding:6px}table.meals .meal-line{justify-content:space-between;align-items:baseline;gap:6px;display:flex}table.meals .meal-name{word-break:break-word;font-size:12px;line-height:1.35}table.meals .meal-name.eaten{color:var(--muted);text-decoration:line-through}table.meals .price{color:var(--muted);white-space:nowrap;font-size:10px}table.meals .inline{margin:0;display:inline}table.meals .quick{gap:4px;margin-top:8px;display:flex}table.meals .quick input[name=name]{flex:1;min-width:0}table.meals .quick input{border:1px solid var(--line2);color:#111;background:#fff;border-radius:3px;padding:3px 5px;font:11px inherit}table.meals .quick input[name=price]{text-align:right;width:58px}table.meals .quick button{padding:2px 7px;line-height:1.4}table.meals tr.daydone td{background:#fafafa}@media (width<=700px){.rangeform{grid-template-columns:1fr 1fr}}.searchrow{align-items:center;gap:8px;display:flex}.searchrow input,.searchrow select{border:1px solid var(--line);color:#111;background:#fff;border-radius:4px;flex:1;min-width:0;padding:8px 10px;font:13px inherit}.searchrow .btn{flex:none}.checklist{margin:0;padding:0;list-style:none}.checklist li{border-bottom:1px solid var(--line2);align-items:center;gap:10px;padding:8px 0;display:flex}.checklist li:last-child{border-bottom:0}.checklist .grow{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.checklist .nm{word-break:break-word;font-size:13px}.checklist .sub{font-size:11px}.checklist li.bought .nm{color:var(--muted);text-decoration:line-through}.checkform{margin:0;display:inline}.check{cursor:pointer;color:#111;background:#fff;border:1px solid #111;border-radius:3px;place-items:center;width:20px;height:20px;padding:0;font-size:12px;line-height:1;display:grid}.checklist li.bought .check{color:#fff;background:#111}.checklist .money{color:#444;white-space:nowrap;font-size:12px}.songs{margin:0;padding:0;list-style:none}.song{border-bottom:1px solid var(--line2);padding:10px 0}.song:last-child{border-bottom:0}.songhead{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;display:flex}.chordform{align-items:center;gap:6px;display:flex}.chordform input{border:1px solid var(--line);background:#fff;border-radius:4px;min-width:150px;padding:5px 8px;font:12px inherit}.lyrics{white-space:pre-wrap;border:1px solid var(--line2);color:#333;background:#fafafa;border-radius:4px;max-height:280px;margin:8px 0 0;padding:10px;font:12px/1.55 ui-monospace,Consolas,monospace;overflow:auto}.streak{gap:3px;display:flex}.dot{border:1px solid var(--line);color:#b5b5b5;border-radius:3px;place-items:center;width:18px;height:18px;font-size:9px;display:grid}.dot.on{color:#fff;background:#111;border-color:#111}.rowactions{flex-wrap:wrap;gap:4px;margin-top:6px;display:flex}.divider{background:var(--line2);height:1px;margin:16px 0}
