:root{--g:#0f9d6b;--r:#c0264b;--b:#e5e7eb;--bg:#f6f7f9}
*{box-sizing:border-box}body{margin:0;font:14px system-ui,sans-serif;background:var(--bg);color:#111}
.w{max-width:1200px;margin:auto;padding:16px}
header{display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:space-between;margin-bottom:14px}
h1{font-size:20px;margin:0}h3{margin:4px 0 12px}
.row{display:flex;gap:8px;flex-wrap:wrap}.top{margin-top:14px}.end{justify-content:flex-end}
.btn{border:1px solid var(--b);background:#fff;padding:8px 12px;border-radius:8px;cursor:pointer;text-decoration:none;color:#111;font:inherit}
.btn:disabled{opacity:.5;cursor:not-allowed}
.g{background:var(--g);color:#fff;border-color:var(--g)}.r{color:var(--r)}.gc{color:var(--g)}.mute{color:#888}.c{text-align:center}
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;margin-bottom:14px}
.card{background:#fff;border:1px solid var(--b);border-radius:12px;padding:16px}.gb{border-color:var(--g)}
.card small{color:#666}.big{font:700 26px ui-monospace,monospace;margin:14px 0 6px}
.split{margin-top:10px;display:flex;justify-content:space-between;align-items:center}
.main{display:grid;grid-template-columns:1fr 320px;gap:14px}
@media(max-width:850px){.main{grid-template-columns:1fr}}
.bar{display:flex;gap:8px;align-items:center;margin-bottom:10px}.mt{font-size:18px}
.cal{display:grid;grid-template-columns:repeat(7,1fr);background:#fff;border:1px solid var(--b);border-radius:12px;overflow:hidden}
.cal>div{min-height:92px;padding:6px;border-right:1px solid var(--b);border-bottom:1px solid var(--b);font-size:12px}
.hd{min-height:auto!important;text-align:center;font-weight:600;color:#555;background:#fafafa}
a.day{display:block;color:inherit;text-decoration:none}.sel{outline:2px solid var(--g);outline-offset:-2px}
.tag{display:block;font:11px ui-monospace,monospace;padding:2px 4px;margin-top:3px;border-radius:4px;white-space:nowrap;overflow:hidden}
.ts{background:#e6f7f0;color:#08754f}.te{background:#fde8ee;color:var(--r)}
.side{background:#fff;border:1px solid var(--b);border-radius:12px;padding:16px;height:fit-content}
.dayb{padding:10px;display:flex;justify-content:space-between;margin-bottom:10px}.dayb small{text-align:right}
.item{display:flex;justify-content:space-between;gap:8px;padding:8px 0;border-bottom:1px solid var(--b)}
.x{border:0;background:none;color:#999;cursor:pointer}
dialog{border:0;border-radius:14px;padding:22px;width:min(420px,92vw)}dialog::backdrop{background:#0006}
dialog h3{margin:0}label{display:block;margin:12px 0 4px;font-weight:600}
input[type=date],input[type=number],input[type=text]{width:100%;padding:9px;border:1px solid var(--b);border-radius:8px;font:inherit}
.seg{display:flex;gap:6px}.seg label{flex:1;margin:0;font-weight:500}.seg input{display:none}
.seg span{display:block;text-align:center;padding:8px;border:1px solid var(--b);border-radius:8px;cursor:pointer}
.seg input:checked+span{background:var(--g);color:#fff}.seg input[value=expense]:checked+span{background:var(--r)}

/* Partners page */
.hero{background:#111c18;color:#fff;border-radius:12px;padding:16px;margin-bottom:14px;display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;align-items:flex-start}
.hero h1{margin:8px 0 4px}.hero small{color:#9fd8c0}.hero .btn{background:#222;color:#fff;border-color:#444}
.pill{display:inline-block;font-size:11px;font-weight:600;padding:3px 8px;border-radius:6px;background:#e6f7f0;color:#08754f;border:1px solid #b5e3d0}
.sec{background:#fff;border:1px solid var(--b);border-radius:12px;padding:16px;margin-bottom:14px}
.sec.yel{background:#fffbea;border-color:#f3d98b}.sec h3{margin:8px 0}.mid{align-items:center}.sb{justify-content:space-between}
.chip{display:inline-block;padding:5px 10px;border:1px solid var(--b);border-radius:8px;background:#fff;color:#111;text-decoration:none;font-size:12px}
.chip.ok{background:#e6f7f0;color:#08754f;border-color:#b5e3d0}
.toggle{margin-left:auto;display:inline-flex;border:1px solid var(--b);border-radius:8px;overflow:hidden}
.toggle a{padding:7px 12px;text-decoration:none;color:#111;font-size:12px}.toggle a.on{background:#eef;font-weight:700}
.trio{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px;margin-top:12px}
.two{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:14px;margin:14px 0}
.card.rb{border-color:#f3b7c6;background:#fff8fa}.card h2{margin:10px 0 2px;font-family:Georgia,serif}
input.amt{width:100%;padding:10px;margin:8px 0 4px;border:1px solid var(--b);border-radius:8px;font:600 18px ui-monospace,monospace}
.stat{background:#fff;border:1px solid var(--b);border-radius:8px;padding:10px;margin:12px 0;font-size:12px}.stat.done{color:#08754f;background:#e6f7f0}
.alert{background:#fde8ee;color:var(--r);border:1px solid #f3b7c6;border-radius:8px;padding:10px;margin-bottom:14px}
.scroll{overflow-x:auto}.tbl{border-collapse:collapse;width:100%;font-size:13px}
.tbl th,.tbl td{padding:10px;border-bottom:1px solid var(--b);text-align:left;white-space:nowrap}.tbl th{font-size:11px;color:#555}.n{text-align:right!important}

/* Day "+" button and popup */
.cell{position:relative}a.day{min-height:78px}
.plus{position:absolute;top:2px;right:6px;border:0;background:none;color:var(--g);font-size:20px;line-height:1;cursor:pointer;opacity:0;transition:opacity .15s}
.cell:hover .plus,.plus:focus{opacity:1}@media(hover:none){.plus{opacity:.7}}
dialog{padding:0!important}dialog form{padding:22px}
.mh{display:flex;justify-content:space-between;gap:10px;margin:-22px -22px 0;padding:18px 22px;background:#eafaf3;border-bottom:1px solid #c9ecdc;border-radius:14px 14px 0 0}
.mh h3{font-family:Georgia,serif;font-size:19px}.mh small{color:#555}
dialog.exp .mh{background:#fdeef2;border-color:#f6cbd6}
label.sp{display:flex;justify-content:space-between}
.pre{display:flex;align-items:center;border:1px solid var(--b);border-radius:8px;padding-left:10px}
.pre input{border:0!important;font:600 16px ui-monospace,monospace!important}.pre input:focus{outline:0}
.chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.chips button{border:1px solid var(--b);background:#fff;border-radius:999px;padding:5px 10px;font-size:12px;cursor:pointer}
dialog.exp #sv{background:var(--r);border-color:var(--r)}

/* Login */
body.lg{display:grid;place-items:center;min-height:100vh}
.lbox{background:#fff;border:1px solid var(--b);border-radius:14px;padding:26px;width:min(380px,92vw)}
.lbox h2{margin:10px 0 4px;font-family:Georgia,serif}.lbox input{width:100%;padding:10px;border:1px solid var(--b);border-radius:8px;font:inherit}
.btn.wide{width:100%;margin-top:18px;padding:11px}
