:root{--ink:#203a32;--muted:#73847b;--green:#214f40;--line:#dfe5de;--bg:#f5f6f2;--gold:#ad8951;font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;color:var(--ink);background:var(--bg)}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button{cursor:pointer}button:disabled{opacity:.5;cursor:default}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #88ad95;outline-offset:3px}a{color:inherit}.loading-page{padding:80px;text-align:center}.layout{min-height:100vh;display:grid;grid-template-columns:230px minmax(0,1fr)}.sidebar{background:#fff;border-right:1px solid var(--line);padding:32px 20px;display:flex;flex-direction:column;gap:30px;position:sticky;top:0;height:100vh}.logo{display:flex;align-items:center;gap:12px;padding:0 10px}.logo-mark{width:39px;height:43px;background:var(--green);border-radius:18px 18px 8px 8px;color:#e8e8cc;display:grid;place-items:center;font:25px Georgia}.logo strong{font:22px Georgia;letter-spacing:-.5px}.logo small{display:block;color:var(--muted);font-size:9px;letter-spacing:2px;margin-top:4px}.slabel{font-size:10px;letter-spacing:1.8px;color:#97a297;padding:0 13px;margin-bottom:10px}.side-nav{display:grid;gap:5px}.side-nav button{padding:13px 14px;border:0;border-radius:9px;text-align:left;color:#7d8c83;background:transparent;font-size:13px;display:flex;align-items:center;gap:12px}.side-nav button.active{background:#eaf0e8;color:#28533f;font-weight:650}.navicon{font-size:18px;width:21px}.side-villas{display:grid;gap:6px}.side-villas button{background:none;border:0;padding:10px 13px;display:flex;gap:10px;text-align:left;align-items:center;font-size:12px;color:#718278}.villa-dot{height:7px;width:7px;border-radius:100%;background:#b5c4ac}.side-villas button.selected{color:var(--green);font-weight:700}.side-villas button.selected .villa-dot{background:var(--green)}.side-bottom{margin-top:auto;border-top:1px solid var(--line);padding:19px 8px 0;font-size:11px;color:var(--muted);line-height:1.8}.side-bottom button{margin-top:10px;border:0;background:transparent;color:#6e8174;font-size:11px;padding:0}.workspace{min-width:0}.topbar{height:78px;background:#fff;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;padding:0 36px;gap:16px}.breadcrumb{font-size:12px;color:#8b988f}.breadcrumb strong{color:#425c4d;font-weight:500}.profile{display:flex;align-items:center;gap:10px;font-size:11px;color:#74867a}.avatar{width:32px;height:32px;border-radius:50%;background:#e9edde;display:grid;place-items:center;color:#6b7e5c;font:17px Georgia}.content{padding:32px 36px 40px;max-width:1500px;margin:auto}.pagehead{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:25px}.eyebrow{font-size:9px;letter-spacing:2px;text-transform:uppercase;color:#89977c;font-weight:650}h1{font:36px/1.2 Georgia,serif;letter-spacing:-1px;margin:7px 0 9px}p{font-size:12px;line-height:1.7;color:#7d8a80}.pagehead p{margin:0}.button{border:1px solid #d6dfd3;background:white;border-radius:8px;padding:10px 15px;display:inline-flex;justify-content:center;align-items:center;gap:8px;color:#48614f;text-decoration:none;font-size:11px;min-height:38px}.button.primary{background:#244d3e;color:white;border-color:#244d3e}.button.danger{color:#a64442;border-color:#e3c8c2;background:#fff8f4}.button.soft{background:#eef2e9}.button.full{width:100%}.actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.villa-tabs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:23px}.villa-tab{border:1px solid var(--line);background:white;border-radius:10px;padding:15px 17px;display:flex;align-items:center;gap:11px;text-align:left}.villa-tab.selected{border-color:#4f7561;background:#edf2e9;box-shadow:0 0 0 1px #4f756112}.villa-letter{width:35px;height:35px;border:1px solid #e0e6d9;background:#f8f9f4;border-radius:50%;display:grid;place-items:center;font:17px Georgia;color:#637b54}.selected .villa-letter{background:#315c46;border-color:#315c46;color:#edf0d8}.villa-tab strong{display:block;font-size:12px;font-weight:600}.villa-tab small{display:block;font-size:9px;color:#9aa38e;margin-top:4px}.calendar-layout{display:grid;grid-template-columns:minmax(0,1fr) 250px;gap:20px}.cal-panel{background:white;border:1px solid var(--line);border-radius:13px;overflow:hidden}.cal-toolbar{display:flex;justify-content:space-between;align-items:center;padding:20px 22px;border-bottom:1px solid #edf0e8;gap:10px}.cal-month{font:24px Georgia;color:#344d3e}.cal-sub{font-size:9px;color:#95a08f;margin-top:5px}.cal-nav{display:flex;align-items:center;gap:7px}.cal-nav button{border:1px solid #e1e6dc;background:white;border-radius:6px;min-width:30px;height:30px;color:#71856c;font-size:16px}.cal-nav .today-button{font-size:10px;padding:0 10px}.admin-week,.admin-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.admin-week{padding:14px 10px 10px;font-size:9px;color:#98a08e;letter-spacing:.4px;text-align:center}.admin-grid{padding:0 10px 10px;gap:5px}.day-tile{min-width:0;min-height:104px;padding:10px 8px;border:1px solid #e9ece3;background:#fff;border-radius:7px;text-align:left;display:flex;flex-direction:column;gap:8px;color:#435641;transition:box-shadow .15s,transform .15s}.day-tile:hover{box-shadow:0 3px 13px #29452b14;transform:translateY(-1px)}.day-tile.placeholder{visibility:hidden}.day-tile .day-num{font-size:15px;line-height:1}.day-tile .day-status{font-size:8px;letter-spacing:.3px;font-weight:700}.day-tile .guest-name{font-size:9px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;color:#7d8268;margin-top:auto}.day-tile.SOLD{background:#fff8d9;border-color:#f1e6b9}.day-tile.HOLD{background:#e8f1dd;border-color:#d7e5c5}.day-tile.KOL{background:#fff0dc;border-color:#f2d8b4}.day-tile.UNVERIFIED{background:#f1f2ef;border-color:#e7e9e3;color:#93998d}.day-tile.MAINTENANCE{background:#eee9f1;border-color:#ded5e7}.day-tile.is-today{outline:1px solid #567b5d;outline-offset:-2px}.day-tile.is-today .day-num{font-weight:750;color:#315a40}.cal-legend{padding:15px 20px;display:flex;gap:15px;flex-wrap:wrap;border-top:1px solid #edf0e8;font-size:9px;color:#92a08d}.legend-item{display:flex;align-items:center;gap:5px}.color-chip{height:7px;width:7px;border-radius:2px;display:inline-block}.color-chip.SOLD{background:#e8d37c}.color-chip.HOLD{background:#97bd75}.color-chip.KOL{background:#deb077}.color-chip.KOSONG{border:1px solid #bbc8b6;background:white}.color-chip.UNVERIFIED{background:#c6ccc0}.aside-stack{display:flex;flex-direction:column;gap:16px}.info-card{padding:20px;background:white;border:1px solid var(--line);border-radius:12px}.info-card.tint{background:#eaf0e4;border-color:#dee7d6}.card-kicker{font-size:9px;letter-spacing:1.3px;color:#829374;text-transform:uppercase}.info-card h3{font:21px Georgia;margin:9px 0 10px;color:#42603d}.info-card p{font-size:10px;line-height:1.8;margin:0}.info-card .button{margin-top:16px}.mini-row{display:flex;justify-content:space-between;gap:10px;padding:12px 0;border-bottom:1px solid #ebeee5;font-size:10px;color:#84927c}.mini-row:last-child{border-bottom:0;padding-bottom:0}.mini-row b{font-weight:600;color:#506947}.mini-number{font:30px Georgia;margin:9px 0;color:#385c3c}.tiny{font-size:9px;color:#929f8c;line-height:1.7}.statusline{display:flex;gap:7px;align-items:center;margin-top:15px;font-size:9px;color:#91a084}.status-led{width:5px;height:5px;border-radius:50%;background:#7da472}.footnote{margin:20px 0 0;font-size:9px;line-height:1.7;color:#94a18e}.demo-bar{padding:9px 20px;background:#e5ddc4;text-align:center;font-size:10px;color:#77633f;line-height:1.7}.demo-tools{display:flex;gap:10px;align-items:center;justify-content:center;flex-wrap:wrap;margin-top:4px}.demo-tools input{border:1px solid #cbbf9c;background:#f5f0e0;padding:4px 7px;border-radius:4px;font:10px inherit}.demo-tools button{font-size:10px;background:none;border:0;text-decoration:underline;color:inherit;cursor:pointer}.reminder-summary{display:flex;gap:14px;flex-wrap:wrap;align-items:center;margin-bottom:22px;color:#85977b;font-size:11px}.count-pill{border:1px solid #dfe7d8;border-radius:20px;padding:8px 13px;background:white}.count-pill strong{color:#3b5f3e;margin-right:5px}.reminder-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.reminder-card{background:white;border:1px solid var(--line);border-radius:12px;overflow:hidden}.reminder-heading{display:flex;align-items:center;gap:12px;padding:18px 20px;background:#fbfcf8;border-bottom:1px solid #e9eee3}.reminder-heading h2{font:20px Georgia;margin:0}.reminder-heading span:last-child{margin-left:auto;font-size:9px;color:#899a7b}.task-category{padding:17px 20px 6px}.task-category h3{margin:0 0 10px;font-size:10px;color:#7c8c70;font-weight:600}.task-row{display:flex;align-items:start;gap:10px;padding:11px 0;border-bottom:1px solid #eff1e9}.task-row:last-child{border-bottom:0}.task-row input[type=checkbox]{height:21px;width:21px;flex:none;accent-color:#376747;margin:1px 0}.task-main{flex:1;min-width:0}.task-name{font-size:12px;color:#435b40}.task-meta{font-size:9px;color:#96a18d;line-height:1.7;margin-top:3px}.task-state{font-size:8px;color:#6b8760;border-radius:4px;background:#eef3e7;padding:4px 6px;display:inline-block;margin-top:5px}.task-state.late{background:#fcf0de;color:#ac854f}.task-mini{font-size:9px;color:#8a986e;border:0;background:transparent;text-decoration:underline;padding:6px 0}.empty-task{font-size:10px;color:#acb4a2;padding:4px 0 11px}.drawer{position:fixed;inset:0;z-index:30;background:#152b2375;display:flex;justify-content:flex-end;backdrop-filter:blur(2px)}.drawer-panel{width:min(440px,100vw);height:100%;background:#fff;box-shadow:-10px 0 60px #16332122;overflow:auto;padding:28px}.drawer-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.drawer-top h2{font:27px Georgia;margin:5px 0;color:#34543e}.close-btn{background:#f0f3eb;border:0;border-radius:50%;height:30px;width:30px;font-size:20px;color:#6d8469}.field{margin-bottom:17px}.field label{display:block;font-size:11px;font-weight:600;color:#627857;margin-bottom:7px}.field input,.field select{width:100%;height:43px;border:1px solid #d9e2d2;border-radius:7px;padding:10px 12px;color:#40583b;background:white;min-width:0}.field input[type=checkbox]{width:17px;height:17px;accent-color:#376747}.field .checkbox-label{display:flex;gap:9px;align-items:center;font-weight:400}.two-fields{display:grid;grid-template-columns:1fr 1fr;gap:12px}.drawer-hint{padding:12px 14px;background:#f1f5eb;border:1px solid #e6eddc;border-radius:7px;font-size:10px;line-height:1.8;color:#839374;margin:0 0 20px}.drawer-footer{border-top:1px solid var(--line);padding-top:18px;margin-top:20px;display:flex;gap:10px;flex-wrap:wrap}.form-error{color:#a05044;background:#fff5ef;border:1px solid #eed7c8;padding:12px;font-size:11px;border-radius:7px;line-height:1.8;margin:12px 0}.form-error:empty{display:none}.login-wrap{min-height:100vh;display:grid;place-items:center;padding:35px;background:radial-gradient(at top left,#e6ebdf,#f5f5ef 70%)}.login-card{width:min(420px,100%);padding:35px;background:white;border:1px solid #dce4d4;border-radius:18px;box-shadow:0 20px 80px #223b2110}.login-card h1{font-size:32px;margin-top:25px}.login-card .logo{padding:0}.login-card p{font-size:11px;margin-bottom:25px}.login-card .button{margin-top:10px}.login-footer{font-size:9px;text-align:center;color:#a0aa94;margin-top:20px}.guest .demo-bar{background:#293b2e;color:#c7d0b5}.guest #toast{background:#dce8cd;color:#24402d}.guest .shell{max-width:970px}.guest .title h1{font-size:45px}.guest .error{line-height:1.8}.guest .shell .actions{display:flex}.guest .notice{color:#8fa095}.guest .cell{cursor:default}.guest .sync{display:block;margin-top:9px}.guest .hide{display:none}#toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);padding:13px 22px;border-radius:10px;background:#254d3e;color:white;font-size:12px;box-shadow:0 8px 35px #223c2525;z-index:50;max-width:90vw;display:none}#toast.visible{display:block}.error-banner{padding:14px;background:#fff2eb;border:1px solid #efdad0;border-radius:8px;color:#a25e50;font-size:12px;margin-bottom:16px}.link-list{display:grid;gap:10px}.link-list a{font-size:11px;text-decoration:none;color:#6c8461}.reminder-empty{padding:25px;color:#8e9b81}.no-scroll{overflow:hidden}
@media(min-width:1600px){.day-tile{min-height:120px}}@media(max-width:1150px){.layout{grid-template-columns:190px minmax(0,1fr)}.sidebar{padding:28px 12px}.content{padding:25px 24px}.topbar{padding:0 24px}.calendar-layout{grid-template-columns:minmax(0,1fr)}.aside-stack{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.info-card{padding:16px}.day-tile{min-height:95px}}@media(max-width:760px){.layout{grid-template-columns:1fr}.sidebar{position:static;height:auto;padding:14px 16px;display:flex;flex-direction:row;align-items:center;justify-content:space-between;border-right:0;border-bottom:1px solid var(--line);gap:10px}.sidebar .logo{padding:0}.logo strong{font-size:19px}.logo small{font-size:8px}.logo-mark{width:30px;height:34px;font-size:21px}.side-nav{display:flex;gap:3px}.side-nav button{font-size:10px;padding:9px}.navicon{font-size:15px;width:auto}.sidebar .slabel,.side-villas,.side-bottom{display:none}.topbar{height:49px;padding:0 16px}.profile .profile-label{display:none}.content{padding:22px 14px}.pagehead{align-items:start;gap:10px;margin-bottom:20px}.pagehead h1{font-size:30px}.pagehead p{font-size:10px;max-width:230px}.pagehead .actions{justify-content:flex-end}.pagehead .button{padding:8px 9px;font-size:10px;min-height:34px}.villa-tabs{gap:6px;margin-bottom:16px}.villa-tab{padding:10px 5px;gap:6px;justify-content:center}.villa-letter{width:25px;height:25px;font-size:13px}.villa-tab strong{font-size:10px}.villa-tab small{display:none}.cal-toolbar{padding:16px 12px}.cal-month{font-size:21px}.cal-sub{font-size:8px}.cal-nav{gap:4px}.cal-nav .today-button{display:none}.admin-week{font-size:7px;padding:13px 5px 9px}.admin-grid{padding:0 5px 7px;gap:3px}.day-tile{min-height:82px;padding:8px 4px;gap:9px;border-radius:5px}.day-tile .day-num{font-size:13px}.day-tile .day-status{font-size:6px;letter-spacing:0}.day-tile .guest-name{font-size:7px}.cal-legend{padding:12px;gap:10px;font-size:8px}.aside-stack{grid-template-columns:1fr}.aside-stack .info-card:not(.tint){display:none}.info-card.tint{padding:17px;display:grid;grid-template-columns:1fr auto;gap:5px 15px;align-items:center}.info-card.tint .card-kicker{grid-column:1/-1}.info-card.tint h3{font-size:19px;margin:3px 0}.info-card.tint p{grid-column:1;max-width:230px}.info-card.tint .button{grid-column:2;grid-row:2/4;margin:0;font-size:9px;padding:9px}.reminder-grid{grid-template-columns:1fr}.reminder-heading{padding:16px}.task-category{padding:15px 16px 6px}.drawer-panel{padding:24px 20px}.reminder-summary{gap:7px;font-size:10px}.count-pill{padding:7px 10px}.demo-bar{font-size:9px;padding:8px 12px}.guest .title h1{font-size:34px}.guest .shell{padding:20px 14px}.guest .cell{padding:10px 4px;min-height:80px}.guest .cell .date{font-size:18px}.guest .cell .status{font-size:8px}.guest .calendar{padding:16px 10px}.guest .grid,.guest .week{gap:4px}.guest .week{font-size:8px}.guest .bottom{flex-direction:column}.guest .primary{width:100%}.guest .month{font-size:22px}.footnote{font-size:8px}.login-wrap{padding:20px}.login-card{padding:27px}.sidebar nav{margin:0}.two-fields{gap:9px}}
.available-dot{background:#83bd96}.sold-dot{background:#efa1a7}.guest #refresh{margin-top:12px}.guest .month{font-family:Georgia,serif}
