:root{--ink:#17201d;--muted:#68736f;--line:#dce3df;--paper:#fff;--canvas:#f4f6f3;--green:#174f3c;--green2:#246b50;--mint:#dceee5;--gold:#c7923c;--danger:#ad3b35;--shadow:0 16px 40px rgba(25,45,38,.08);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:var(--canvas)}*{box-sizing:border-box}body{margin:0}a{color:var(--green);text-decoration:none}button,input,select,textarea{font:inherit}.app-shell{display:grid;grid-template-columns:245px 1fr;min-height:100vh}.sidebar{position:sticky;top:0;height:100vh;background:#102d24;color:#eaf3ee;padding:28px 20px;display:flex;flex-direction:column}.brand{display:flex;align-items:center;gap:10px;font-weight:750;color:inherit;letter-spacing:-.02em}.brand span,.pass-brand>span{display:grid;place-items:center;width:34px;height:34px;border-radius:10px;background:#dbad61;color:#173a2e;font-weight:900}.sidebar nav{display:grid;gap:7px;margin-top:44px}.sidebar nav a{color:#bcd0c7;padding:11px 13px;border-radius:9px}.sidebar nav a:hover,.sidebar nav a.active{background:rgba(255,255,255,.1);color:white}.sidebar-user{margin-top:auto;display:grid;gap:3px;padding:14px 10px;border-top:1px solid rgba(255,255,255,.15)}.sidebar-user small{text-transform:capitalize;color:#a8c0b6}.link-button{border:0;background:none;padding:6px 0;color:inherit;cursor:pointer;text-align:left}.sidebar-user .link-button{color:#d5e6df;margin-top:6px}.main{padding:42px clamp(24px,5vw,72px);max-width:1500px;width:100%}.page-header{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:28px}.page-header h1,.auth-card h1{font-family:Georgia,serif;font-size:clamp(2rem,4vw,3.4rem);line-height:1;margin:6px 0 10px;letter-spacing:-.035em}.eyebrow{text-transform:uppercase;font-size:.72rem;letter-spacing:.16em;font-weight:800;color:var(--green2);margin:0 0 7px}.muted{color:var(--muted);margin:0}.back{display:inline-block;margin-bottom:15px;font-size:.9rem}.button{display:inline-flex;align-items:center;justify-content:center;border:1px solid transparent;border-radius:9px;padding:10px 16px;font-weight:700;cursor:pointer;white-space:nowrap}.button.primary{background:var(--green);color:#fff}.button.primary:hover{background:var(--green2)}.button.secondary{background:#fff;border-color:var(--line);color:var(--ink)}.button.ghost{border-color:var(--line);color:var(--ink);background:transparent}.panel{background:var(--paper);border:1px solid var(--line);border-radius:16px;padding:24px;box-shadow:var(--shadow)}.panel.compact{padding:22px}.panel h2{font-family:Georgia,serif;margin:3px 0 18px;font-size:1.45rem}.panel-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.panel-head h2{margin:0}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:22px}.stats article{background:var(--paper);border:1px solid var(--line);border-radius:14px;padding:20px}.stats span{display:block;color:var(--muted);font-size:.86rem}.stats strong{display:block;font-family:Georgia,serif;font-size:2.1rem;margin-top:8px}.table-wrap{overflow:auto;margin:0 -24px -24px}table{width:100%;border-collapse:collapse;min-width:760px}th,td{text-align:left;padding:15px 24px;border-top:1px solid #e8ecea}th{font-size:.72rem;text-transform:uppercase;letter-spacing:.1em;color:var(--muted)}td{font-size:.91rem}.row-title{font-weight:750;color:var(--ink)}td small{display:block;color:var(--muted);margin-top:4px}.badge{display:inline-flex;padding:5px 9px;border-radius:999px;background:#edf0ee;color:#53605b;font-size:.72rem;font-weight:800}.badge.confirmed,.badge.checked_in,.badge.verified,.badge.active{background:#dceee5;color:#14533b}.badge.pending,.badge.manual,.badge.unverified{background:#fff0d6;color:#865912}.badge.cancelled,.badge.mismatch,.badge.revoked{background:#f9dfdc;color:#9a302b}.empty{text-align:center;padding:48px 20px;color:var(--muted)}.empty strong{display:block;color:var(--ink);font-size:1.1rem}.split{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(280px,.75fr);gap:20px}.split.equal{grid-template-columns:1fr 1fr}.card-list,.simple-list{display:grid;gap:10px}.property-card{display:flex;align-items:center;justify-content:space-between;gap:20px;border:1px solid var(--line);border-radius:12px;padding:17px;color:var(--ink)}.property-card:hover{border-color:#9db5aa}.property-card p{color:var(--muted);margin:4px 0 0}.property-card>span{color:var(--muted);font-size:.84rem}.simple-list>div{display:flex;justify-content:space-between;border-bottom:1px solid var(--line);padding:10px 2px}.simple-list small{color:var(--muted)}.stack{display:grid;gap:16px}.small-gap{gap:9px;margin-top:20px}label{display:grid;gap:7px;font-size:.82rem;font-weight:700}input,select,textarea{width:100%;border:1px solid #ccd6d1;border-radius:9px;padding:11px 12px;background:#fff;color:var(--ink)}input:focus,select:focus,textarea:focus{outline:3px solid #d9ebe3;border-color:var(--green2)}textarea{resize:vertical}.inline-form{display:flex;gap:9px;align-items:center;margin-top:20px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.form-grid.small{grid-template-columns:repeat(3,1fr) auto;align-items:end}.form-section,.span-2,.form-actions{grid-column:1/-1}.form-section{border-bottom:1px solid var(--line);padding:4px 0 6px}.form-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:8px}.flash{padding:13px 16px;border-radius:10px;background:#dceee5;color:#14533b;margin-bottom:18px}.flash.error{background:#f9dfdc;color:#8b2d29}.auth-shell{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at 15% 20%,#dce9df 0,transparent 32%),#f4f2eb}.auth-card{width:min(440px,100%);background:white;padding:42px;border:1px solid var(--line);border-radius:20px;box-shadow:var(--shadow)}.auth-brand{margin-bottom:38px}.detail-grid{display:grid;grid-template-columns:1.3fr .8fr .8fr;gap:16px;margin-bottom:18px}.stay-summary>div{display:flex;align-items:center;gap:20px}.stay-summary span{display:grid;gap:5px;color:var(--muted);font-size:.78rem}.stay-summary strong{font-size:1rem;color:var(--ink)}.stay-summary i{font-style:normal;color:var(--gold)}.guest-list{display:grid}.guest-list article{display:grid;grid-template-columns:42px 1.5fr 1fr auto;gap:14px;align-items:center;padding:15px 0;border-top:1px solid var(--line)}.guest-avatar{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;background:var(--mint);font-weight:800;color:var(--green)}.guest-name small,.guest-list article>div small{display:block;color:var(--muted);margin-top:4px}.row-actions{display:flex;align-items:center;gap:12px}.danger{color:var(--danger)}.add-guest{margin-top:18px}.header-badges{display:flex;gap:8px}.print-toolbar{display:flex;justify-content:space-between;margin-bottom:20px}.pass-sheet{background:white;border:1px solid var(--line);max-width:900px;margin:auto;padding:48px;box-shadow:var(--shadow)}.pass-brand{display:flex;align-items:center;gap:12px;padding-bottom:30px;border-bottom:1px solid var(--line)}.pass-brand strong,.pass-brand small{display:block}.pass-brand small{color:var(--muted)}.pass-content{display:grid;grid-template-columns:1fr 380px;gap:40px;align-items:center;padding:40px 0}.pass-content h1{font-family:Georgia,serif;font-size:2.5rem;margin:4px 0}.pass-content dl{display:grid;grid-template-columns:100px 1fr;gap:10px;margin-top:30px}.pass-content dt{color:var(--muted)}.pass-content dd{margin:0;font-weight:700}.qr{text-align:center}.qr svg{width:100%;height:auto}.qr small{color:var(--muted)}.pass-sheet footer{border-top:1px solid var(--line);padding-top:20px;color:var(--muted);font-size:.85rem}.empty-page{text-align:center;padding:15vh 20px}.empty-page .button{margin-top:20px}@media(max-width:980px){.app-shell{grid-template-columns:1fr}.sidebar{position:static;height:auto;flex-direction:row;align-items:center;padding:16px 20px}.sidebar nav{display:flex;margin:0 0 0 auto}.sidebar-user{display:none}.main{padding:28px 20px}.stats{grid-template-columns:repeat(2,1fr)}.detail-grid{grid-template-columns:1fr 1fr}.stay-summary{grid-column:1/-1}.split{grid-template-columns:1fr}.guest-list article{grid-template-columns:42px 1fr auto}.guest-list article>div:nth-child(3){display:none}.form-grid.small{grid-template-columns:1fr 1fr}.pass-content{grid-template-columns:1fr}}@media(max-width:640px){.sidebar{align-items:flex-start;flex-wrap:wrap}.sidebar nav{order:2;width:100%;margin:12px 0 0;overflow:auto}.main{padding:24px 14px}.page-header{align-items:flex-start;flex-direction:column}.stats{grid-template-columns:1fr 1fr}.form-grid,.form-grid.small,.split.equal,.detail-grid{grid-template-columns:1fr}.guest-list article{grid-template-columns:40px 1fr}.row-actions{grid-column:2}.pass-sheet{padding:24px}.pass-content{grid-template-columns:1fr}.auth-card{padding:28px}}@media print{.sidebar,.print-toolbar,.flash{display:none!important}.app-shell{display:block}.main{padding:0}.pass-sheet{border:0;box-shadow:none;max-width:none}.pass-content{grid-template-columns:1fr 340px}body{background:white}}
/* Veyra brand system */
:root{--ink:#182321;--muted:#697570;--line:#d9e0dc;--paper:#fff;--canvas:#f5f3ed;--green:#123b35;--green2:#28695d;--mint:#dcebe5;--gold:#c6a15b;--danger:#a8423a;--shadow:0 18px 48px rgba(20,45,39,.09)}
.sidebar{background:#31574f;color:#f6f3ea}
.sidebar nav a{color:#d3e1dc}
.sidebar nav a:hover,.sidebar nav a.active{background:rgba(255,255,255,.14);color:#fff}
.sidebar .brand-copy small{color:#e2ebe7;opacity:.86}
.brand img{display:block;width:38px;height:38px;border-radius:11px;box-shadow:0 5px 16px rgba(0,0,0,.14)}
.brand-copy{display:grid;gap:1px;line-height:1}
.brand-copy strong{font-family:Georgia,serif;font-size:1.18rem;letter-spacing:-.02em}
.brand-copy small{font-size:.58rem;letter-spacing:.14em;text-transform:uppercase;font-weight:700;opacity:.68}
.auth-shell{background:radial-gradient(circle at 12% 18%,rgba(198,161,91,.17) 0,transparent 30%),radial-gradient(circle at 88% 82%,rgba(40,105,93,.13) 0,transparent 32%),#f5f3ed}
.auth-card{border-color:#d9d8cf;box-shadow:0 26px 70px rgba(18,59,53,.12)}
.auth-brand{margin-bottom:34px;color:var(--green)}
.auth-brand img{width:54px;height:54px;border-radius:15px}
.auth-brand .brand-copy strong{font-size:1.55rem}
.platform-mark{display:block;margin-top:24px;color:#98a19d;font-size:.65rem;letter-spacing:.13em;text-transform:uppercase;text-align:center}
.pass-brand>img{display:block;width:46px;height:46px;border-radius:13px}
.pass-sheet footer .platform-mark{float:right;margin:0;text-align:right}
