:root{--navy:#102b3c;--ink:#173344;--muted:#6f7d82;--gold:#9c8051;--cream:#f5f2eb;--line:#e7e2d7;--font:'Manrope','Noto Sans Thai',sans-serif}*{box-sizing:border-box}body{margin:0;font-family:var(--font);color:var(--ink);background:#f7f7f3;font-size:14px;line-height:1.7}button,input,select,textarea{font:inherit}button,a{cursor:pointer}button{color:inherit}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid #bfa375;outline-offset:3px}a{color:inherit;text-decoration:none}button:disabled{opacity:.55;cursor:wait}h1,h2,h3,p{margin:0}h1,h2,h3{font-weight:500}h1{font-size:34px;line-height:1.5}h2{font-size:18px}h3{font-size:17px}.skip{position:fixed;left:15px;top:-80px;z-index:99;background:white;padding:10px}.skip:focus{top:15px}.brand{font-family:Manrope,sans-serif;font-size:30px;line-height:1.2;font-weight:700;letter-spacing:-1.5px;display:block}.brand>span{color:#b09565}.brand small{display:block;font-size:8px;letter-spacing:3px;font-weight:500;margin-top:7px;color:#a28963}.app-shell{display:grid;grid-template-columns:235px 1fr;min-height:100vh}.sidebar{position:sticky;top:0;height:100vh;display:flex;flex-direction:column;padding:38px 25px 24px;background:#102b3c;color:#e9edf0}.sidebar .brand{padding:0 10px}.property-label{margin:38px 10px 22px}.property-label>span{display:block;font-size:8px;letter-spacing:1.5px;color:#a8b7be}.property-label b{font-size:12px;display:block;font-weight:400;margin-top:6px}.sidebar nav{display:grid;gap:8px}.nav-item{display:flex;align-items:center;gap:12px;background:transparent;border:0;border-radius:6px;text-align:left;min-height:47px;color:#b6c3c9;font-size:13px;padding:11px 13px}.nav-item>span{font-size:21px;width:22px;text-align:center;color:#b9a17b}.nav-item:hover{background:#ffffff08}.nav-item.active{background:#f3ebdc;color:#193243}.nav-item i{width:5px;height:5px;border-radius:50%;background:#d5b57a;margin-left:auto}.sidebar-footer{margin-top:auto;padding:28px 10px 0;border-top:1px solid #ffffff12}.sidebar-footer span{font-size:6px;letter-spacing:1px;color:#b39b72}.sidebar-footer p{font-size:10px;color:#a8b6bd;margin-top:8px}.app-body{min-width:0}.topbar{display:flex;justify-content:space-between;align-items:center;gap:24px;padding:20px 36px;background:#fffffff0;border-bottom:1px solid var(--line)}.topbar>div:first-child>b{display:block;font-size:15px;font-weight:500}.topbar>div:first-child>span{display:block;font-size:9px;color:var(--muted);margin-top:3px;letter-spacing:.6px}.topbar-actions{display:flex;gap:18px;align-items:center}.icon-btn{display:grid;place-items:center;width:40px;height:40px;border:1px solid var(--line);border-radius:50%;background:white;font-size:20px;line-height:1}.account{display:flex;align-items:center;gap:10px}.account b{display:block;font-size:12px;font-weight:500}.account small{display:block;font-size:10px;color:var(--muted)}.avatar{width:35px;height:35px;display:grid;place-items:center;border-radius:50%;background:#efe6d5;color:#80653e;font-size:13px;flex-shrink:0}.trial-banner{display:flex;justify-content:space-between;gap:15px;align-items:center;background:#f0eadc;border-bottom:1px solid #e4d8bd;padding:9px 36px;color:#786344;font-size:10px}.trial-banner>label{display:flex;gap:12px;align-items:center}.trial-banner select{padding:5px 9px;background:#fffdf7;border:1px solid #ded0b6;border-radius:4px;font-size:11px;color:#786344}.content{padding:32px 36px 45px;max-width:1600px;margin:auto}.eyebrow{color:#9f865c;font-size:9px;font-weight:500;letter-spacing:2px;margin-bottom:10px}.dashboard-hero{position:relative;border-radius:9px;overflow:hidden;min-height:290px;color:#fff;padding:36px;background:#25424d}.dashboard-hero>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 58%}.dashboard-hero:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#102b3ce8 0%,#102b3cbf 38%,#102b3c05 100%)}.dashboard-hero>div{position:relative;z-index:1}.dashboard-hero .eyebrow{color:#d3bf99;margin-bottom:12px}.dashboard-hero h1{font-size:33px;line-height:1.5}.dashboard-hero p:not(.eyebrow){color:#d4dce0;font-size:12px;margin-top:12px}.hero-actions{display:flex;align-items:center;gap:24px;margin-top:25px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:22px;min-height:45px;border:1px solid var(--navy);border-radius:5px;background:var(--navy);color:#fff;padding:10px 18px;font-size:12px;font-weight:500}.btn:hover{background:#264d60}.light-btn{background:#f4ead8;border-color:#f4ead8;color:#173344}.light-btn:hover{background:#f9f3e8}.ghost-btn{background:transparent;border:0;color:#f4ead8;font-size:12px;min-height:44px}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin:22px 0 28px}.stats article{display:flex;gap:16px;align-items:center;padding:21px;background:white;border:1px solid var(--line);border-radius:7px}.stats article>span{width:37px;height:37px;display:grid;place-items:center;border-radius:50%;background:#f3eee4;color:#a38a5c;font-size:23px;flex-shrink:0}.stats b{display:block;font-size:27px;font-weight:500;line-height:1.2}.stats small{display:block;color:var(--muted);font-size:10px;margin-top:5px}.card{background:white;border:1px solid var(--line);border-radius:8px;padding:23px}.card-heading{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:18px}.card-heading h2{font-size:17px}.text-btn{background:transparent;border:0;font-size:11px;color:#8b7148;padding:4px 0;min-height:36px}.overview-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:23px}.record{display:flex;align-items:center;gap:15px;width:100%;background:white;color:var(--ink);border:0;border-bottom:1px solid #eee9e0;padding:18px 0;text-align:left;min-height:82px}.record:last-child{border-bottom:0}.ticket-record:hover{background:#f9f7f2}.record-icon{width:39px;height:39px;display:grid;place-items:center;background:#f4f1e9;color:#a28a5f;border-radius:7px;font-size:22px;flex-shrink:0}.record-body{flex:1;min-width:0}.record b{display:block;font-size:13px;font-weight:500;overflow-wrap:anywhere}.record small{display:block;font-size:10px;color:var(--muted);margin-top:4px;overflow-wrap:anywhere}.tag{display:inline-block;border-radius:4px;font-size:9px;line-height:1.6;padding:5px 8px;background:#edf0ee;color:#677e75;white-space:nowrap}.tag.open,.tag.waiting{background:#f6ecd9;color:#997632}.tag.in_progress{background:#e6eff5;color:#41738e}.tag.resolved,.tag.confirmed,.tag.collected{background:#e8f0e9;color:#4e7a59}.tag.closed,.tag.cancelled{background:#eff0ee;color:#7e8880}.arrow{color:#a68c62;font-size:18px}.category{display:inline-block;font-size:10px;padding:4px 9px;border:1px solid #ded2bc;border-radius:3px;color:#987c4c}.featured-news{padding:8px 0}.featured-news h3{margin:14px 0 11px;font-size:19px}.featured-news p{font-size:12px;line-height:2;color:var(--muted);white-space:pre-wrap;overflow-wrap:anywhere}.featured-news small{display:block;color:#a7a69c;font-size:10px;margin-top:22px}.empty{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;min-height:190px;padding:28px 20px}.empty>span{font-size:35px;color:#b6a27c;line-height:1;margin-bottom:18px}.empty h3{font-size:16px}.empty p{font-size:12px;color:var(--muted);max-width:330px;margin:9px 0 17px}.page-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:26px}.page-heading p:not(.eyebrow){font-size:12px;color:var(--muted);margin-top:8px}.filters{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:20px}.filters button{border:1px solid #e0d9ca;border-radius:5px;background:white;color:#7b7f79;min-height:38px;padding:7px 12px;font-size:11px}.filters .selected{background:#efe6d5;border-color:#bda777;color:#826838}.small-btn{min-height:37px;background:#fffdf8;border:1px solid #ddceb1;border-radius:4px;color:#8e7349;font-size:11px;padding:7px 12px;white-space:nowrap}.small-btn:hover{background:#f2ecdf}.amenities{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-bottom:30px}.amenity{padding:25px;background:#ede9df;border:1px solid #ddd5c5;border-radius:8px}.amenity>span{font-size:8px;letter-spacing:1.6px;color:#9b855f}.amenity-art{height:125px;display:grid;place-items:center;font-size:64px;color:#b0976c;background:radial-gradient(ellipse,#faf7ef,#ebe4d6);border-radius:70px 6px 6px 6px;margin:20px 0}.amenity h2{font-size:20px}.amenity p{font-size:11px;color:var(--muted);margin:8px 0}.amenity small{font-size:9px;display:block;color:#8e887b}.amenity .text-btn{margin-top:13px}.news-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px}.news h2{font-size:21px;line-height:1.6;margin:17px 0 12px}.news p{font-size:13px;line-height:2.1;color:var(--muted);white-space:pre-wrap;overflow-wrap:anywhere}.news footer{border-top:1px solid var(--line);padding-top:15px;margin-top:25px;color:#a29d90;font-size:10px}.member-card{margin-top:24px}.setup-guide{margin-top:25px;background:#eae5d9;border-radius:8px;padding:24px}.setup-guide p{font-size:12px;color:var(--muted);margin:9px 0 16px}.app-footer{display:flex;justify-content:space-between;gap:20px;padding:17px 36px;border-top:1px solid var(--line);font-size:10px;color:#98a09b}.app-footer span{color:#a19071}.loading{display:grid;place-items:center;min-height:100vh;font-size:16px;color:var(--muted)}dialog{width:min(560px,calc(100% - 30px));max-height:90vh;border:1px solid #ddd3bd;border-radius:10px;color:var(--ink);padding:27px;background:#fffdf8;box-shadow:0 30px 100px #102b3c30}dialog::backdrop{background:#102b3c99;backdrop-filter:blur(5px)}.dialog-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:22px}.dialog-heading h2{font-size:24px;line-height:1.5}.dialog-heading .eyebrow{font-size:8px;margin-bottom:6px}.dialog-heading .icon-btn{flex-shrink:0}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}form label{display:block;font-size:12px;color:#5e7179;margin:0 0 16px}form input,form select,form textarea,.invite-code{display:block;width:100%;padding:11px;border:1px solid #d9d4c7;border-radius:5px;background:white;color:var(--ink);margin-top:7px;font-size:13px;min-height:43px}textarea{resize:vertical}form input::placeholder,form textarea::placeholder{color:#a5aaa6}.form-actions{display:flex;justify-content:end;align-items:center;gap:12px;margin-top:20px}.help{font-size:11px;color:var(--muted);margin:10px 0 18px;line-height:1.9}.form-error{font-size:12px;color:#aa4f37;white-space:pre-wrap}.ticket-meta{display:flex;gap:15px;align-items:center;font-size:11px;color:var(--muted)}.ticket-description{font-size:13px;white-space:pre-wrap;overflow-wrap:anywhere;line-height:2;margin:18px 0}.history{padding:0 0 0 20px;margin:20px 0;list-style:none;border-left:1px solid #dfd4bd}.history li{margin-bottom:17px;position:relative}.history li:before{content:'';position:absolute;left:-24px;top:8px;width:7px;height:7px;border-radius:50%;background:#bea478}.history b{font-size:12px;font-weight:400;display:block;overflow-wrap:anywhere}.history small{font-size:10px;color:var(--muted);display:block;margin-top:4px}.availability{font-size:11px;color:#8f744a;background:#f1eadc;padding:12px;border-radius:5px;margin:8px 0}.invite-code{font-family:monospace;font-size:17px;text-align:center;letter-spacing:1px}#toast{position:fixed;right:24px;bottom:24px;z-index:100;background:#102b3c;color:white;padding:13px 20px;border:1px solid #a58e67;border-radius:7px;font-size:12px;max-width:calc(100% - 40px);opacity:0;transform:translateY(15px);pointer-events:none;transition:.2s}#toast.visible{opacity:1;transform:none}.welcome{min-height:100vh;display:grid;grid-template-columns:1.1fr 1fr;background:#faf8f2}.welcome-photo{background:linear-gradient(0deg,#102b3c44,#102b3c00),url('assets/residence.webp') center/cover}.welcome-card{display:flex;flex-direction:column;justify-content:center;padding:70px}.welcome-card .brand{margin-bottom:55px}.welcome-card h1{font-size:42px;line-height:1.5;margin-bottom:22px}.welcome-card>p:not(.eyebrow){color:var(--muted);font-size:14px;line-height:2}.welcome-card .btn{margin:30px 0 20px;align-self:start}.welcome-note{font-size:11px;color:#9c8863}.join-screen{width:min(520px,calc(100% - 36px));margin:50px auto}.join-screen .brand{margin-bottom:35px}.join-screen h1{font-size:30px}.join-screen>p{margin:15px 0 25px;font-size:13px;color:var(--muted)}
@media(max-width:1200px){.app-shell{grid-template-columns:205px 1fr}.sidebar{padding:30px 18px 20px}.content{padding:28px}.topbar,.trial-banner{padding-left:28px;padding-right:28px}.stats{gap:12px}.stats article{gap:10px;padding:18px 13px}.stats article>span{width:32px;height:32px;font-size:20px}.overview-grid{grid-template-columns:1fr}.amenities{gap:15px}.amenity{padding:20px}.record{gap:12px}}
@media(max-width:900px){.app-shell{display:block}.sidebar{position:relative;top:auto;height:auto;padding:20px 25px 12px;display:block}.sidebar .brand{font-size:28px;display:inline-block;padding:0}.sidebar .brand small{font-size:7px;letter-spacing:2px;margin-top:4px}.property-label,.sidebar-footer{display:none}.sidebar nav{display:flex;overflow:auto;gap:6px;margin-top:21px;padding-bottom:6px}.nav-item{white-space:nowrap;min-height:40px;font-size:11px;padding:9px 12px;border-radius:5px}.nav-item>span{font-size:18px;width:18px}.topbar{padding:15px 25px}.topbar-actions{gap:12px}.content{padding:25px}.stats b{font-size:24px}.stats article>span{display:none}.stats small{font-size:10px}.news-grid{gap:18px}.app-footer{padding:17px 25px}.trial-banner{padding-left:25px;padding-right:25px}}
@media(max-width:600px){h1{font-size:29px}.sidebar{padding:18px 18px 7px}.nav-item{font-size:11px;gap:7px}.topbar{padding:14px 18px;gap:10px}.topbar-actions{gap:10px}.account>div{display:none}.account .avatar{width:31px;height:31px}.topbar>div:first-child>b{font-size:14px}.topbar>div:first-child>span{font-size:8px}.trial-banner{padding:10px 18px;flex-direction:column;align-items:start;gap:7px}.trial-banner>label{width:100%;justify-content:space-between}.content{padding:21px 18px 30px}.dashboard-hero{padding:27px 23px;min-height:295px}.dashboard-hero h1{font-size:28px}.dashboard-hero:after{background:linear-gradient(90deg,#102b3ce5,#102b3c77)}.hero-actions{gap:15px;flex-wrap:wrap}.hero-actions .btn{font-size:11px;padding:10px 13px}.hero-actions .ghost-btn{font-size:11px}.stats{grid-template-columns:1fr 1fr;gap:10px;margin:17px 0 21px}.stats article{padding:18px}.stats article>span{display:grid;width:30px;height:30px;font-size:18px}.stats b{font-size:25px}.stats small{font-size:9px}.card{padding:18px}.card-heading h2{font-size:16px}.record{flex-wrap:wrap;gap:9px;padding:17px 0}.record-icon{width:31px;height:31px;font-size:20px}.record-body{flex-basis:calc(100% - 43px);min-width:0}.record .tag{margin-left:40px;font-size:9px}.record .arrow{margin-left:auto}.record .small-btn{margin-left:auto;min-height:39px}.record b{font-size:12px}.record small{font-size:10px}.page-heading{align-items:start;flex-direction:column;gap:16px;margin-bottom:22px}.page-heading .eyebrow{font-size:8px}.page-heading p:not(.eyebrow){font-size:12px}.filters{gap:7px}.filters button{font-size:10px;min-height:36px;padding:6px 10px}.amenities{grid-template-columns:1fr;gap:15px}.amenity{padding:22px;display:grid;grid-template-columns:1fr 100px;column-gap:20px}.amenity>span,.amenity h2,.amenity p,.amenity small,.amenity .text-btn{grid-column:1}.amenity-art{grid-column:2;grid-row:1 / 6;height:130px;width:100px;margin:0;font-size:45px;border-radius:50px 5px 5px 5px}.amenity h2{font-size:19px;margin-top:15px}.amenity p{font-size:10px}.amenity small{font-size:9px}.amenity .text-btn{text-align:left}.news-grid{grid-template-columns:1fr}.news h2{font-size:20px}.news p{font-size:12px}.app-footer{padding:15px 18px;flex-wrap:wrap;gap:5px;font-size:9px}.welcome{display:block}.welcome-photo{height:250px}.welcome-card{padding:30px 25px}.welcome-card .brand{margin-bottom:30px}.welcome-card h1{font-size:34px}.welcome-card>p:not(.eyebrow){font-size:13px}.welcome-note{font-size:10px}dialog{padding:20px}.dialog-heading h2{font-size:21px}.form-grid{gap:12px}.form-actions{justify-content:space-between}.ticket-meta{flex-wrap:wrap}.invite-code{font-size:14px}#toast{right:18px;bottom:18px;font-size:11px}.empty{min-height:175px;padding:20px 12px}.empty p{font-size:11px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
@media(max-width:900px){.sidebar nav{scrollbar-width:none}.sidebar nav::-webkit-scrollbar{display:none}}
