:root{color-scheme:dark;--bg:#0e1110;--panel:#191d1b;--surface:#222823;--border:#343c37;--soft:#a8afa8;--text:#f6f6ef;--accent:#c7e2cf;--accent-dark:#15231a;--accent2:#b99a71;--danger:#f5b4ae;--font:'Manrope','DM Sans',system-ui,-apple-system,sans-serif}
*{box-sizing:border-box}html{min-height:100%;scroll-behavior:smooth}body{margin:0;min-height:100vh;background:radial-gradient(ellipse 750px 460px at 79% -10%,rgba(93,119,90,.13),transparent 70%),#0e1110;color:var(--text);font-family:var(--font);-webkit-font-smoothing:antialiased}button,input{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.48}button:focus-visible,input:focus-visible{outline:2px solid var(--accent);outline-offset:3px}a{color:inherit}svg{flex:none}#app{min-height:100vh}.micro,.eyebrow{font-size:10px;text-transform:uppercase;letter-spacing:.22em;font-weight:700;color:#929f94}.period{color:#b5d5bd}.muted-dot{color:#536259;margin:0 5px}.dot{display:inline-block;height:4px;width:4px;border-radius:50%;background:#536b57;margin:0 10px;vertical-align:middle}
.boot{min-height:100vh;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:16px}.boot .brandmark{font-size:56px}.boot p{font-size:13px;color:#9ba99e}.boot-skeleton{height:3px;width:75px;background:linear-gradient(90deg,transparent,var(--accent),transparent);animation:pulse 1.2s ease infinite}
.brandmark{font-size:31px;letter-spacing:-.12em;font-weight:800;line-height:1;color:#fafaf5}.brandmark span{font-weight:450}.brandbtn{display:flex;align-items:center;gap:14px;border:0;color:var(--text);background:none;text-align:left;padding:4px 0;white-space:nowrap}.brandline{height:31px;width:1px;background:#3a443d;margin-left:7px}.brandlabel{font-size:9px;letter-spacing:.17em;color:#879389;line-height:1.6;font-weight:700}
.topbar{position:sticky;top:0;z-index:10;background:#0e1110e8;backdrop-filter:blur(22px);border-bottom:1px solid #272e29}.toprow{max-width:1470px;margin:auto;min-height:89px;padding:14px 42px;display:grid;grid-template-columns:1fr auto 1fr;gap:20px;align-items:center}.tabs{border:1px solid #2e3730;padding:5px;display:flex;align-items:center;gap:4px;background:#191e1a;border-radius:16px}.tab{display:inline-flex;gap:10px;align-items:center;border:0;background:transparent;color:#9fa99e;font-weight:650;font-size:13px;letter-spacing:-.01em;border-radius:11px;padding:12px 19px;transition:all .2s ease}.tab:hover{background:#29322b;color:#fff}.tab.active{background:#334239;color:#f4fcf4;box-shadow:inset 0 0 0 1px #4c6151}.tab.active svg{color:#bed8c3}.account{display:flex;justify-content:flex-end;gap:11px;align-items:center}.avatar{width:34px;height:34px;border-radius:12px;display:grid;place-items:center;background:#29392c;color:#dceedd;font-size:12px;font-weight:800;border:1px solid #4c6352}.account-text{min-width:0;display:flex;flex-direction:column;align-items:start;gap:2px}.account-text b{font-size:11px;font-weight:700}.account-text small{font-size:9px;color:#9ca89f;max-width:185px;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.iconbtn{height:36px;width:36px;background:transparent;border:1px solid #38423b;color:#cbd6cc;border-radius:11px;display:inline-grid;place-items:center;transition:background .2s ease}.iconbtn:hover{background:#2d3930}.account-more{border-color:transparent}
.site-main{max-width:1470px;margin:auto}.page{padding:72px 54px 110px;min-height:76vh}.section-head{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:43px}.section-title h1{font-size:clamp(42px,5.6vw,76px);letter-spacing:-.09em;line-height:1.13;margin:14px 0 16px;font-weight:650}.section-title p{color:#a2ada4;font-size:14px;line-height:1.8;max-width:580px;margin:0}.section-actions{margin-bottom:6px;display:flex;gap:10px}.btn{min-height:43px;border:1px solid #3a463c;border-radius:12px;background:#222b24;color:#e5eee5;font-size:12px;font-weight:750;letter-spacing:.01em;padding:11px 18px;display:inline-flex;align-items:center;justify-content:center;gap:10px;white-space:nowrap;transition:transform .2s ease,background .2s ease,border-color .2s ease}.btn:hover:not(:disabled){transform:translateY(-2px);background:#2c3a2e;border-color:#536b56}.btn.primary{background:var(--accent);color:var(--accent-dark);border-color:var(--accent)}.btn.primary:hover{background:#d7efdd;border-color:#d7efdd}.btn.secondary{background:#252e27}.btn.muted-danger{color:#e9a8a2;background:#382724;border-color:#65423c}.btn svg{width:17px;height:17px}
.section-meta{display:flex;align-items:center;gap:9px;font-size:11px;font-weight:700;color:#8b988c;letter-spacing:.075em;text-transform:uppercase;white-space:nowrap}.live-dot{height:6px;width:6px;background:#a5d9b2;border-radius:50%;box-shadow:0 0 0 5px #31513d44}.archive-tools{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:27px}.searchbox{height:44px;display:flex;align-items:center;gap:11px;color:#85998a;background:#1b221d;border:1px solid #323d35;border-radius:11px;padding:0 14px;max-width:330px;width:100%}.searchbox input{background:none;border:0;color:#f4f8f4;outline:none;font-size:13px;flex:1;min-width:0}.searchbox input::placeholder{color:#899589}.searchbox input:focus-visible{outline:none}.searchbox:focus-within{border-color:#8bad95}.section-meta+.searchbox{margin-left:auto}
.photos-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:23px 18px;margin-top:27px}.shot-card{min-width:0;animation:rise .33s ease both}.shot-shell{position:relative;background:#242c26;border-radius:18px;padding:6px;border:1px solid #333d35;overflow:hidden;transition:transform .22s ease,border-color .22s ease,box-shadow .22s ease}.shot-card:hover .shot-shell{transform:translateY(-4px);border-color:#65836c;box-shadow:0 14px 32px #0008}.shot-open{display:block;border:0;position:relative;width:100%;aspect-ratio:3/4;background:linear-gradient(135deg,#39463b,#202621 58%,#343a32);border-radius:13px;overflow:hidden;padding:0;color:#708b75}.shot-open img{width:100%;height:100%;object-fit:cover;display:block;position:absolute;inset:0;z-index:2;transition:transform .45s ease}.shot-open:hover img{transform:scale(1.035)}.image-fallback{position:absolute;inset:0;display:grid;place-items:center}.shot-open img:not([src]){visibility:hidden}.card-switch{position:absolute;right:13px;top:13px;z-index:3;width:36px;height:36px;border-radius:12px;background:#101b13cc;backdrop-filter:blur(10px);color:#f7fff7;border:1px solid #ffffff3b;display:grid;place-items:center;box-shadow:0 6px 15px #0007;transition:background .2s,transform .2s}.card-switch:hover{background:#3e6246;transform:scale(1.08)}.card-switch.selected{background:#c7e2cf;color:#12311b;border-color:#d7f5df}.card-caption{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 4px 3px}.card-caption>span:first-child{font-size:12px;color:#d6ded5;font-weight:700;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.active-indicator{width:7px;height:7px;border-radius:50%;background:#b0dac0;box-shadow:0 0 0 4px #b0dac018;flex:none}.fineprint{font-size:11px;color:#707f73;margin-top:46px;letter-spacing:.01em;line-height:1.7}
.blank{background:radial-gradient(ellipse at 50% 0,#2b3a2f77,transparent 74%),#1b211d;border:1px dashed #435445;min-height:380px;border-radius:25px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:42px 20px;margin-top:28px}.blank-icon{width:75px;height:75px;border-radius:24px;background:#33443688;border:1px solid #4b5f4f;color:#bedbc2;display:grid;place-items:center}.blank h3{font-size:23px;letter-spacing:-.05em;margin:26px 0 8px;font-weight:700}.blank p{max-width:390px;line-height:1.7;font-size:13px;color:#a9b4aa;margin:0 0 24px}.blank .btn{margin-top:0}.loadmore{margin:30px auto 0;display:flex}
.table-page{max-width:100%}.table-topline{border-bottom:1px solid #313a32;padding:0 0 16px;margin:14px 0 0;display:flex;align-items:center;justify-content:space-between;gap:20px;color:#95a494;font-size:12px}.table-topline span:first-child{display:flex;align-items:center;gap:10px}.table-scroller{overflow:auto;width:100%;border:1px solid #39423a;border-radius:18px;margin-top:18px;background:#171e18;scrollbar-width:thin;scrollbar-color:#59685a #222822}.data-table{min-width:1290px;width:100%;border-collapse:separate;border-spacing:0;text-align:left}.data-table th{font-size:10px;letter-spacing:.08em;color:#96a897;font-weight:800;padding:17px 13px;background:#242e26;white-space:nowrap;border-bottom:1px solid #475247}.data-table td{padding:10px 7px;font-size:12px;border-bottom:1px solid #303c32;background:#19211b}.data-table tr:hover td{background:#253029}.data-table tr.dirty-row td{background:#33372c}.data-table tr:last-child td{border-bottom:none}.data-table .stick-cell{position:sticky;left:0;z-index:2;background:#202c23!important;box-shadow:1px 0 0 #475347;min-width:90px;padding:12px 15px}.data-table th:first-child{position:sticky;left:0;z-index:3;box-shadow:1px 0 0 #536257}.grid-input{background:transparent;border:1px solid transparent;border-radius:9px;padding:10px 8px;color:#f3f7f2;width:105px;min-width:0;font-size:12px;outline:0}.grid-input[data-field=last_name],.grid-input[data-field=first_name]{width:145px}.grid-input[data-field=room_number]{width:95px}.grid-input[data-field=arrival_date],.grid-input[data-field=departure_date]{width:139px;color-scheme:dark}.grid-input[data-field=drop_amount],.grid-input[data-field=limit_amount],.grid-input[data-field=credit_amount]{width:104px;text-align:right}.grid-input:focus{background:#2e3c31;border-color:#85ac8e}.grid-input:disabled{opacity:1;color:#ced6cc}.table-empty{text-align:center;padding:55px 20px!important;color:#9caa9d!important;font-size:13px!important}.row-delete{border:0;background:none;color:#7c8f80;padding:9px}.row-delete:hover{color:#f1a39e}.table-save{display:flex;align-items:center;justify-content:space-between;gap:15px;color:#a3afa4;font-size:11px;margin-top:19px}
.login-screen{min-height:100vh;display:grid;place-items:center;padding:30px;background:radial-gradient(ellipse at 69% 21%,#3b584033,transparent 54%),#0e1110}.login-card{width:min(100%,490px);padding:55px 47px;border:1px solid #3b4a3c;background:#1b221de8;border-radius:28px;box-shadow:0 30px 100px #0008;position:relative;overflow:hidden}.login-glow{position:fixed;width:500px;height:500px;background:#78917a23;filter:blur(120px);border-radius:50%;right:9%;top:-10%;pointer-events:none}.login-logo{font-size:57px;letter-spacing:-.13em;font-weight:800;line-height:1.3}.login-logo span{font-weight:400}.login-logo b{color:#c5dacb;font-weight:500}.login-card h1{font-size:39px;font-weight:690;line-height:1.25;letter-spacing:-.07em;margin:33px 0 12px}.login-card h1 em{font-style:normal;color:#bad4c1}.login-card p{font-size:13px;color:#a8b7aa;line-height:1.9;margin:0 0 29px}.login-card .micro{margin-top:8px}.login-google{width:100%;justify-content:space-between!important;padding:17px!important}.google-mark{font-weight:900;color:#2c5b43;background:#f7fff7;border-radius:7px;width:24px;height:24px;display:grid;place-items:center}.login-card small{display:block;font-size:10px;color:#809185;line-height:1.8;margin-top:19px}
.modal-open{overflow:hidden}.modal-layer{position:fixed;inset:0;z-index:40;display:grid;place-items:center;padding:18px}.modal-backdrop{position:absolute;inset:0;background:#050806df;backdrop-filter:blur(9px)}.sheet{position:relative;z-index:1;background:#1d251f;border:1px solid #52624f;box-shadow:0 22px 90px #000a;border-radius:25px;padding:27px;width:min(100%,480px);max-height:92vh;overflow:auto;animation:pop .25s ease}.sheet h2{font-size:28px;letter-spacing:-.06em;margin:14px 0 11px;font-weight:720}.sheet-sub{color:#9eafa0;line-height:1.7;font-size:12px;margin:0 0 19px}.dialog-close-row{display:flex;justify-content:space-between;align-items:center;gap:12px}.dialog-close-row .iconbtn{border:none}.sheet-actions{display:flex;gap:10px;justify-content:flex-end;flex-wrap:wrap;margin-top:27px}.form-field{display:flex;flex-direction:column;gap:9px;color:#b9c7bb;font-size:11px;font-weight:700;margin:15px 0}.form-field input{padding:13px 13px;border-radius:11px;background:#131b15;border:1px solid #3e4e41;color:#fff;width:100%;font-size:13px;min-width:0}.form-field input:focus{border-color:#a8d2b3}.form-grid{display:grid;grid-template-columns:1fr 1fr;column-gap:14px}.register-sheet{width:min(100%,660px)}
.photo-sheet{width:min(95vw,1100px);padding:9px;max-height:94vh;overflow:hidden}.photo-dialog{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(230px,.7fr);max-height:calc(94vh - 18px)}.photo-dialog-image{min-height:400px;max-height:calc(94vh - 18px);background:#101712;border-radius:18px;display:grid;place-items:center;overflow:hidden}.photo-dialog-image img{width:100%;height:100%;max-height:calc(94vh - 18px);object-fit:contain}.photo-dialog-side{padding:25px;min-width:0;display:flex;flex-direction:column}.photo-dialog-side h2{font-size:27px;overflow-wrap:anywhere}.photo-dialog-side p{font-size:12px;line-height:1.8;color:#adbbaf}.photo-dialog-actions{margin-top:auto;display:flex;flex-direction:column;gap:9px;padding-top:35px}.photo-dialog-actions .btn{justify-content:flex-start}.photo-dialog-actions .btn.muted-danger{margin-top:16px}
.upload-sheet{width:min(100%,600px)}.upload-top-icon{height:65px;width:65px;border-radius:20px;background:#334b39;color:#c6e2cd;display:grid;place-items:center;margin:14px 0 18px}.upload-sheet h2{font-size:29px}.progress-track{height:10px;background:#101914;border-radius:30px;overflow:hidden;margin-top:20px}.progress-track>div{width:0%;height:100%;border-radius:30px;background:linear-gradient(90deg,#719c7e,#d9efdb);transition:width .28s ease}.progress-meta{display:flex;justify-content:space-between;gap:10px;font-size:12px;color:#a8b9ab;margin-top:10px}.progress-meta strong{color:#f2fff3}.upload-scroll{max-height:240px;overflow:auto;margin-top:21px;scrollbar-width:thin}.upload-entry{display:flex;gap:15px;justify-content:space-between;align-items:center;border-top:1px solid #334035;padding:10px 0}.upload-entry span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:68%;color:#cbdacd;font-size:11px}.upload-entry em{font-size:10px;color:#879e8c;font-style:normal;max-width:35%;text-align:right;overflow-wrap:anywhere}.upload-entry .upload-ok{color:#b0e6bd}.upload-entry .upload-error{color:#efaaa5}.floating-progress{position:fixed;bottom:28px;right:28px;z-index:31;display:flex;align-items:center;gap:9px;border:1px solid #8db69a;background:#274531;color:#f3fff4;border-radius:13px;padding:15px 19px;box-shadow:0 15px 45px #0008;font-size:12px;font-weight:700}.account-actions{display:flex;flex-direction:column;gap:10px}.account-actions .btn{justify-content:flex-start}.staff-list{max-height:310px;overflow:auto;margin-top:18px}.staff-item{display:flex;justify-content:space-between;align-items:center;gap:12px;border-top:1px solid #374438;padding:11px 0;font-size:12px}.staff-item button{border:0;background:transparent;color:#b9cdbc}
#toast{position:fixed;left:50%;bottom:28px;transform:translate(-50%,25px);opacity:0;z-index:100;border:1px solid #66836a;background:#263a2b;color:#e8fae9;box-shadow:0 12px 35px #0009;border-radius:13px;padding:14px 18px;display:flex;align-items:center;gap:10px;pointer-events:none;transition:transform .2s ease,opacity .2s ease;font-size:12px;max-width:88vw}#toast.visible{transform:translate(-50%,0);opacity:1}#toast.error{background:#452c28;color:#fbe4df;border-color:#9d5c51}
.mobile-nav{display:none}@keyframes pop{from{opacity:0;transform:translateY(13px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes rise{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse{50%{opacity:.45}}@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
@media(max-width:1180px){.toprow{padding:16px 26px}.photos-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}.account-text small{max-width:90px}.page{padding:58px 35px 95px}}
@media(max-width:850px){.toprow{grid-template-columns:1fr auto;min-height:72px}.toprow .tabs{display:none}.account-text{display:none}.page{padding:43px 22px 105px}.mobile-nav{position:fixed;bottom:0;inset-inline:0;z-index:20;display:grid;grid-template-columns:repeat(3,1fr);padding:8px 10px calc(8px + env(safe-area-inset-bottom));background:#141c16f7;backdrop-filter:blur(20px);border-top:1px solid #354337}.mobile-nav button{border:0;background:transparent;color:#8fa392;display:flex;flex-direction:column;align-items:center;gap:5px;padding:10px 4px;border-radius:10px}.mobile-nav button.active{background:#344a39;color:#d8efdc}.mobile-nav small{font-size:10px;font-weight:800}.photos-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}.section-title h1{font-size:55px}.section-head{align-items:flex-start}.section-actions{align-self:flex-end}.fineprint{margin-bottom:40px}.table-page{padding-left:14px;padding-right:14px}}
@media(max-width:600px){.toprow{padding:13px 18px}.brandmark{font-size:27px}.brandline{height:26px}.brandlabel{font-size:8px}.account{gap:4px}.avatar{height:32px;width:32px}.page{padding:38px 16px 110px}.section-head{flex-direction:column;gap:22px;margin-bottom:28px}.section-title h1{font-size:clamp(41px,12vw,59px);margin-top:12px;margin-bottom:13px}.section-title p{font-size:12px;line-height:1.8}.section-actions,.section-actions .btn{width:100%}.photos-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}.shot-shell{border-radius:14px;padding:4px}.shot-open{border-radius:11px}.card-switch{right:9px;top:9px;width:32px;height:32px;border-radius:10px}.card-caption>span:first-child{font-size:11px}.archive-tools{align-items:stretch;flex-direction:column;gap:15px}.searchbox{max-width:none}.blank{min-height:320px;border-radius:18px;padding:24px 16px}.blank h3{font-size:19px}.blank p{font-size:12px}.section-meta{font-size:10px}.table-topline>span:last-child{display:none}.data-table{min-width:1180px}.sheet{padding:20px;border-radius:19px}.sheet h2{font-size:25px}.photo-sheet{max-height:94vh;padding:6px}.photo-dialog{grid-template-columns:1fr;overflow:auto;max-height:calc(94vh - 12px)}.photo-dialog-image{height:min(55vh,560px);min-height:230px}.photo-dialog-image img{max-height:55vh}.photo-dialog-side{padding:17px}.photo-dialog-side h2{font-size:20px}.photo-dialog-actions{padding-top:10px}.photo-dialog-actions .btn{min-height:39px}.form-grid{grid-template-columns:1fr 1fr;gap:0 10px}.login-card{padding:42px 25px}.login-card h1{font-size:33px}.floating-progress{bottom:84px;right:12px}#toast{bottom:87px}}
