@import url("https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,500;9..144,600;9..144,700&family=IBM+Plex+Sans:wght@400;500;600&family=IBM+Plex+Mono:wght@500;600&display=swap");*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}body,html{height:100%}body{font-family:IBM Plex Sans,system-ui,sans-serif;color:#16242e;background:#e7e1d3}.mono{font-family:IBM Plex Mono,monospace;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.disp{font-family:Fraunces,serif}button{font-family:inherit}.login{min-height:100dvh;display:grid;place-items:center;padding:24px;background:#13303a;background-image:radial-gradient(circle at 1px 1px,rgba(233,226,209,.05) 1px,transparent 0);background-size:24px 24px}.login .card{background:#f4f1ea;border-radius:20px;padding:34px 30px;width:100%;max-width:380px;border-top:4px solid #c8923d;box-shadow:0 24px 60px rgba(0,0,0,.35)}.login h1{font-family:Fraunces,serif;font-size:28px;font-weight:600;margin-bottom:4px}.login .sub{font-size:13px;color:#6b7681;margin-bottom:24px;letter-spacing:.3px}.login label{display:block;font-size:11px;font-weight:600;color:#6b7681;text-transform:uppercase;letter-spacing:.5px;margin-bottom:7px}.login input{width:100%;border:1px solid #d8d1c1;background:#fff;border-radius:11px;padding:13px 14px;font-size:15px;font-family:inherit;outline:none}.login input:focus{border-color:#2d5a7c}.login button{width:100%;margin-top:16px;border:none;border-radius:12px;padding:14px;font-size:15px;font-weight:600;background:#1f5562;color:#fff;cursor:pointer}.login button:disabled{opacity:.6;cursor:default}.login .msg{margin-top:18px;font-size:13.5px;line-height:1.5;padding:13px 14px;border-radius:11px}.login .msg.ok{background:#e2efe5;color:#2c6a44}.login .msg.err{background:#f6ddd6;color:#9a2f20}.app{min-height:100dvh}.scroll{overflow-x:auto}.shell{display:grid;grid-template-columns:252px 1fr 322px;min-height:100dvh;min-width:1180px;background:#efebe0;background-image:radial-gradient(circle at 1px 1px,rgba(22,36,46,.04) 1px,transparent 0);background-size:24px 24px}.side{background:#13303a;color:#e9e2d1;display:flex;flex-direction:column;border-right:3px solid #c8923d}.brand{padding:26px 24px 20px;border-bottom:1px solid rgba(233,226,209,.12)}.brand h1{font-family:Fraunces,serif;font-weight:600;font-size:24px;letter-spacing:.4px}.brand p{margin-top:4px;font-size:11px;letter-spacing:1.6px;text-transform:uppercase;opacity:.6}.nav{padding:18px 14px;display:flex;flex-direction:column;gap:3px}.nav button{display:flex;align-items:center;gap:12px;background:none;border:none;color:#c9c0ad;font-size:14.5px;font-weight:500;padding:11px 14px;border-radius:11px;cursor:pointer;text-align:left;transition:.15s}.nav button:hover{background:rgba(233,226,209,.07);color:#f1ead8}.nav button.on{background:#1f5562;color:#fff}.nav .badge{margin-left:auto;background:#c8923d;color:#13303a;font-size:11px;font-weight:700;min-width:20px;height:20px;border-radius:999px;display:grid;place-items:center;padding:0 5px}.legend{margin-top:auto;padding:18px 22px;border-top:1px solid rgba(233,226,209,.12)}.legend .lt{font-size:10.5px;letter-spacing:1.4px;text-transform:uppercase;opacity:.55;margin-bottom:12px}.legrow{display:flex;align-items:center;gap:10px;font-size:13px;margin-bottom:9px;color:#d8d0bd}.swatch{width:13px;height:13px;border-radius:4px;flex-shrink:0}.me{padding:16px 22px 24px;border-top:1px solid rgba(233,226,209,.12);font-size:12px}.me .nm{color:#f1ead8;font-weight:600;font-size:13px}.me .out{margin-top:10px;background:none;border:1px solid rgba(233,226,209,.25);color:#c9c0ad;border-radius:9px;padding:7px 12px;font-size:12px;font-weight:600;cursor:pointer;display:flex;align-items:center;gap:7px}.me .out:hover{border-color:#c8923d;color:#f1ead8}.main{padding:26px 30px;overflow:hidden}.top{display:flex;align-items:center;gap:18px;margin-bottom:22px;flex-wrap:wrap}.month{font-family:Fraunces,serif;font-weight:600;font-size:34px;line-height:1;text-transform:capitalize}.month span{color:#9a8f78;font-weight:500}.navbtns{display:flex;gap:6px}.ib{width:40px;height:40px;border-radius:11px;border:1px solid #d8d1c1;background:#fbf9f3;display:grid;place-items:center;cursor:pointer;color:#16242e;transition:.15s}.ib:hover{background:#fff;border-color:#c8923d}.today-b{height:40px;padding:0 16px;border-radius:11px;border:1px solid #d8d1c1;background:#fbf9f3;font-weight:600;font-size:13.5px;cursor:pointer}.spacer{flex:1 1}.tabs{display:flex;background:#e3ddce;border-radius:12px;padding:4px}.tabs button{border:none;background:none;font-size:13.5px;font-weight:600;padding:8px 16px;border-radius:9px;cursor:pointer;color:#6b7681}.tabs button.on{background:#fbf9f3;color:#13303a;box-shadow:0 1px 3px rgba(22,36,46,.1)}.addb{height:40px;padding:0 16px;border-radius:11px;border:none;background:#c8923d;color:#13303a;font-weight:600;font-size:13.5px;cursor:pointer;display:flex;align-items:center;gap:7px}.filters{display:flex;gap:8px;margin-bottom:16px;flex-wrap:wrap}.pill{display:flex;align-items:center;gap:7px;border:1px solid #d8d1c1;background:#fbf9f3;border-radius:999px;padding:7px 14px;font-size:13px;font-weight:600;cursor:pointer;color:#46505a}.pill.on{border-color:#13303a;background:#13303a;color:#f1ead8}.pill .swatch{width:11px;height:11px;border-radius:3px}.cal{background:#fbf9f3;border:1px solid #e1dac9;border-radius:18px;overflow:hidden;box-shadow:0 6px 24px rgba(22,36,46,.06)}.dow{display:grid;grid-template-columns:repeat(7,1fr);border-bottom:1px solid #ece5d4}.dow span{padding:13px 14px;font-size:11px;font-weight:600;letter-spacing:1px;text-transform:uppercase;color:#9a8f78}.grid{display:grid;grid-template-columns:repeat(7,1fr)}.cell{min-height:116px;border-right:1px solid #ece5d4;border-bottom:1px solid #ece5d4;padding:8px 9px;cursor:pointer;position:relative;transition:.12s}.cell:nth-child(7n){border-right:none}.cell:hover{background:#f4efe3}.cell.out{background:#f3eee2}.cell.out .dn{color:#c3bba8}.dn{font-size:13.5px;font-weight:600;color:#46505a;display:inline-grid;place-items:center;width:26px;height:26px;border-radius:8px}.cell.today .dn{background:#c8923d;color:#fff}.chip{display:flex;align-items:center;gap:6px;background:#fff;border-radius:7px;padding:4px 7px;margin-top:5px;border-left:3px solid;font-size:11.5px;line-height:1.2;box-shadow:0 1px 2px rgba(22,36,46,.06);overflow:hidden}.chip .ct{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chip.done{opacity:.5}.more{font-size:11px;color:#9a8f78;font-weight:600;margin-top:5px;padding-left:2px}.panel{background:#fbf9f3;border:1px solid #e1dac9;border-radius:18px;padding:8px 20px 20px;box-shadow:0 6px 24px rgba(22,36,46,.06)}.agday{display:flex;gap:18px;padding:16px 0;border-bottom:1px solid #ece5d4;align-items:flex-start}.agday:last-child{border-bottom:none}.agdate{flex-shrink:0;width:84px;text-align:right}.agdate .dd{font-family:Fraunces,serif;font-size:26px;font-weight:600;line-height:1}.agdate .dm{font-size:12px;color:#9a8f78;text-transform:uppercase;letter-spacing:.5px}.agitems{flex:1 1;display:flex;flex-direction:column;gap:8px;min-width:0}.agrow{display:flex;align-items:center;gap:12px;background:#fff;border:1px solid #ece5d4;border-left:3px solid;border-radius:10px;padding:11px 14px;cursor:pointer}.agrow .t{font-weight:600;font-size:14px}.agrow .c{font-size:12.5px;color:#6b7681}.clrow{display:flex;align-items:center;gap:14px;padding:14px 0;border-bottom:1px solid #ece5d4;cursor:pointer}.clrow:last-child{border-bottom:none}.av{width:44px;height:44px;border-radius:12px;display:grid;place-items:center;color:#fff;font-family:Fraunces,serif;font-weight:600;font-size:18px;flex-shrink:0}.rail{padding:26px 22px;border-left:1px solid #e1dac9;flex-direction:column;gap:22px;overflow-y:auto}.rail,.rt{display:flex}.rt{font-size:11px;font-weight:600;letter-spacing:1.2px;text-transform:uppercase;color:#9a8f78;align-items:center;gap:7px;margin-bottom:11px}.rcard{background:#fbf9f3;border:1px solid #e6dfce;border-radius:14px;padding:13px 14px;margin-bottom:9px}.rcard .rrow{display:flex;align-items:center;gap:10px}.rcard .t{font-weight:600;font-size:13.5px}.rcard .c{font-size:12px;color:#6b7681;margin-top:1px}.tag{font-size:10.5px;font-weight:700;padding:3px 8px;border-radius:999px;white-space:nowrap}.empty{font-size:12.5px;color:#9a8f78;padding:8px 2px}.kpis{display:flex;gap:10px;margin-bottom:6px}.kpi{flex:1 1;background:#fbf9f3;border:1px solid #e6dfce;border-radius:14px;padding:13px;text-align:center}.kpi .n{font-family:Fraunces,serif;font-size:26px;font-weight:600;line-height:1}.kpi .l{font-size:10px;color:#9a8f78;text-transform:uppercase;letter-spacing:.5px;margin-top:5px}.dot{width:8px;height:8px;border-radius:999px;flex-shrink:0}.fab,.mobnav,.mobtop{display:none}.ov{position:fixed;inset:0;background:rgba(19,48,58,.42);display:flex;align-items:center;justify-content:center;z-index:60;padding:16px}.sheet{background:#f4f1ea;width:520px;max-width:100%;border-radius:18px;max-height:90dvh;overflow-y:auto;padding:24px;box-shadow:0 24px 60px rgba(19,48,58,.4)}.sheet h2{font-family:Fraunces,serif;font-size:22px;font-weight:600;margin-bottom:16px}.fld{margin-bottom:13px}.fld label{display:block;font-size:11px;font-weight:600;color:#6b7681;text-transform:uppercase;letter-spacing:.5px;margin-bottom:6px}.fld input,.fld select,.fld textarea{width:100%;border:1px solid #d8d1c1;background:#fff;border-radius:10px;padding:11px 12px;font-size:14.5px;font-family:inherit;color:#16242e;outline:none}.fld input:focus,.fld select:focus,.fld textarea:focus{border-color:#2d5a7c}.fld textarea{resize:vertical;min-height:58px}.two{display:flex;gap:12px}.two>*{flex:1 1}.btn{width:100%;border:none;border-radius:12px;padding:13px;font-size:14.5px;font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px}.btn.pri{background:#1f5562;color:#fff}.btn.gho{color:#6b7681}.btn.dng,.btn.gho{background:transparent}.btn.dng{color:#b3402f;border:1px solid #e9cdc6}.tog{display:flex;align-items:center;gap:10px;padding:11px 12px;border:1px solid #d8d1c1;border-radius:10px;background:#fff;cursor:pointer}.tog .box{width:22px;height:22px;border-radius:6px;border:2px solid #d8d1c1;display:grid;place-items:center;flex-shrink:0}.tog.on .box{background:#c8923d;border-color:#c8923d}.x{background:none;border:none;color:#6b7681;cursor:pointer;padding:4px;display:grid;place-items:center}.ownsel{display:flex;gap:10px}.ownopt{flex:1 1;display:flex;align-items:center;gap:9px;border:1px solid #d8d1c1;border-radius:10px;padding:11px;cursor:pointer;background:#fff;font-size:13.5px;font-weight:600}.ownopt.on{border-width:2px}.loading{min-height:100dvh;display:grid;place-items:center;color:#6b7681;font-size:14px}@media (max-width:899px){.scroll{overflow-x:hidden}.shell{grid-template-columns:1fr;min-width:0}.rail,.side{display:none}.main{padding:0 0 88px}.mobtop{display:flex;align-items:center;gap:12px;position:-webkit-sticky;position:sticky;top:0;z-index:20;background:linear-gradient(180deg,#13303a,#1b414e);color:#f1ead8;padding:16px 18px;border-bottom:3px solid #c8923d}.mobtop h1{font-family:Fraunces,serif;font-size:21px;font-weight:600}.mobtop .mout{margin-left:auto;background:none;border:none;color:#c9c0ad;cursor:pointer}.top{padding:16px 16px 0;margin-bottom:14px;gap:12px}.month{font-size:26px}.filters{padding:0 16px}.cal,.panel{margin:0 12px;border-radius:14px}.cell{min-height:74px;padding:5px}.chip{font-size:9.5px;padding:3px 4px;gap:3px}.chip .mono{display:none}.dn{width:22px;height:22px;font-size:12.5px}.tabs{order:3}.addb{display:none}.fab{display:grid;place-items:center;right:18px;bottom:84px;z-index:40;width:56px;height:56px;border-radius:18px;background:#c8923d;color:#13303a;border:none;box-shadow:0 8px 20px rgba(200,146,61,.4);cursor:pointer}.fab,.mobnav{position:fixed}.mobnav{display:grid;grid-template-columns:repeat(4,1fr);bottom:0;left:0;right:0;z-index:30;background:rgba(251,250,246,.96);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-top:1px solid #e1dac9;padding:8px 0 16px}.mobnav button{background:none;border:none;display:flex;flex-direction:column;align-items:center;gap:3px;color:#9a8f78;font-size:10.5px;font-weight:600;cursor:pointer}.mobnav button.on{color:#1f5562}.mobnav .mb{position:absolute;transform:translate(13px,-5px);background:#c8923d;color:#13303a;font-size:9px;font-weight:700;min-width:16px;height:16px;border-radius:999px;display:grid;place-items:center;padding:0 3px}.wrapm{padding:16px 16px 0}}