
:root{
  --navy:#092b66; --navy-2:#123f8f; --blue:#1b4f9d; --ink:#14213f;
  --muted:#6c7890; --line:#dfe7f2; --bg:#f4f7fc; --card:#fff;
  --success:#20a36a; --warning:#e7a33a; --danger:#ef6b6b; --soft:#edf4ff;
  --shadow:0 10px 28px rgba(30,62,113,.08);
}
*{box-sizing:border-box}
body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:var(--bg);color:var(--ink)}
button,input,select{font:inherit}
button{cursor:pointer}
a{text-decoration:none;color:inherit}
.logo{display:flex;align-items:center;gap:10px;font-weight:800;color:var(--navy)}
.logo-mark{width:38px;height:38px;border-radius:12px;background:linear-gradient(135deg,#0a3d88,#194995);color:#fff;display:grid;place-items:center;font-weight:900}
.logo small{display:block;font-size:10px;color:#6f80a0;font-weight:600;letter-spacing:.3px}
.login{min-height:100vh;display:grid;grid-template-columns:1.2fr .8fr;background:#eef4fb}
.login-hero{background:linear-gradient(rgba(8,40,93,.08),rgba(8,40,93,.12)),url('https://images.unsplash.com/photo-1570077188670-e3a8d69ac5ff?auto=format&fit=crop&w=1800&q=90') center/cover;position:relative}
.login-card-wrap{display:flex;align-items:center;justify-content:center;padding:44px}
.login-card{width:min(430px,100%);background:#fff;border-radius:20px;padding:36px;box-shadow:var(--shadow)}
.login-card h1{font-size:30px;margin:30px 0 6px}
.muted{color:var(--muted);font-size:13px}
.field{margin-top:16px}
.field label{display:block;font-size:12px;font-weight:700;margin-bottom:7px}
.field input,.field select{width:100%;padding:12px 13px;border:1px solid #cfd9e8;border-radius:9px;background:#fff}
.primary,.outline,.ghost{border-radius:9px;padding:10px 14px;border:0}
.primary{background:var(--navy);color:#fff}
.outline{background:#fff;border:1px solid var(--line);color:var(--navy)}
.ghost{background:#eef4ff;color:var(--navy)}
.full{width:100%}
.app{min-height:100vh;background:var(--bg)}
.topnav{height:72px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;padding:0 22px;gap:24px;position:sticky;top:0;z-index:20}
.topnav .navlinks{display:flex;gap:4px;align-items:center;overflow:auto;flex:1}
.topnav .navlinks a{padding:10px 12px;border-radius:9px;font-size:13px;color:#33425d;white-space:nowrap}
.topnav .navlinks a.active,.topnav .navlinks a:hover{background:#eaf1ff;color:var(--navy);font-weight:700}
.search{width:260px;padding:10px 12px;border:1px solid var(--line);border-radius:9px;background:#f8fbff}
.user{display:flex;align-items:center;gap:8px}
.avatar{width:34px;height:34px;border-radius:50%;background:#163f84;color:#fff;display:grid;place-items:center;font-weight:800}
.page{padding:22px}
.page-head{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:18px}
.page-head h1{margin:0 0 4px;font-size:28px}
.card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:16px;box-shadow:var(--shadow)}
.grid{display:grid;gap:14px}
.stats{grid-template-columns:repeat(4,minmax(0,1fr))}
.stat b{font-size:24px;display:block;margin-top:7px}
.delta{color:var(--success);font-size:12px;font-weight:700}
.dashboard{display:grid;grid-template-columns:1.25fr .95fr .8fr;gap:14px;margin-top:14px}
.attention-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:14px}
.attention{border-left:4px solid var(--danger)}
.attention.warn{border-color:var(--warning)}
.attention.blue{border-color:#2d70d6}
.section-title{font-size:14px;font-weight:800;margin-bottom:12px}
.timeline{list-style:none;padding:0;margin:0}
.timeline li{padding:10px 0;border-bottom:1px solid #edf2f8;font-size:13px}
.ai-card{background:#eef5ff;border:1px solid #c9dcf7;border-radius:12px;padding:14px}
.chart{height:140px;display:flex;align-items:end;gap:8px;padding-top:12px}
.bar{flex:1;background:linear-gradient(180deg,#3d7be4,#174c9c);border-radius:5px 5px 0 0}
.reservation-layout{display:grid;grid-template-columns:1.15fr .85fr;gap:14px}
.list-card{padding:12px}
.tabs{display:flex;gap:8px;margin-bottom:12px}
.tabs button{background:#f1f5fb;border:0;border-radius:20px;padding:8px 12px;font-size:12px}
.tabs button.active{background:#dce9ff;color:var(--navy);font-weight:700}
.reservation-row{display:grid;grid-template-columns:48px 1fr auto;gap:12px;align-items:center;border:1px solid var(--line);border-radius:12px;padding:11px;margin-bottom:9px}
.reservation-row:hover{background:#f8fbff}
.mini-avatar{width:38px;height:38px;border-radius:50%;background:#1b4f9d;color:#fff;display:grid;place-items:center;font-size:12px;font-weight:800}
.badge{display:inline-block;border-radius:999px;padding:5px 8px;font-size:11px;font-weight:800}
.Confirmed,.Active{background:#e5f6ee;color:#168653}
.Pending{background:#fff1d7;color:#a96a00}
.detail{position:sticky;top:90px;height:max-content}
.detail-hero{height:130px;border-radius:12px;background-size:cover;background-position:center;margin-bottom:14px}
.detail-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.metric{border:1px solid var(--line);border-radius:10px;padding:9px}
.metric b{display:block}
.properties{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.property{overflow:hidden;padding:0}
.property-photo{height:175px;background-size:cover;background-position:center}
.property-body{padding:15px}
.property-head{display:flex;justify-content:space-between;gap:10px}
.property-head h3{margin:0 0 4px}
.property-kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:12px}
.calendar-shell{display:grid;grid-template-columns:180px repeat(7,1fr);border:1px solid var(--line);border-radius:12px;overflow:hidden}
.calendar-shell>div{padding:9px;min-height:70px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);font-size:12px}
.calendar-shell .head{background:#f8fbff;font-weight:700;min-height:auto}
.booking{padding:7px;border-radius:7px;background:#dff2e7;color:#176b48}
.booking.blue{background:#dfeaff;color:#1d58a5}
.booking.orange{background:#fff0d9;color:#9b6200}
.inbox{display:grid;grid-template-columns:260px 1fr;gap:14px}
.thread{padding:11px;border-bottom:1px solid #edf2f8}
.message{max-width:68%;padding:10px 12px;border-radius:12px;background:#edf3ff;margin:10px 0}
.message.me{margin-left:auto;background:var(--navy);color:#fff}
.table-wrap{overflow:auto;background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow)}
table{width:100%;border-collapse:collapse;min-width:760px}
th,td{text-align:left;padding:13px 14px;border-bottom:1px solid #eaf0f7;font-size:13px}
th{background:#f8fbff;color:#60708d}
.mobile-frame{width:340px;margin:auto;background:#fff;border:10px solid #10213f;border-radius:30px;overflow:hidden;box-shadow:var(--shadow)}
.mobile-top{background:var(--navy);color:#fff;padding:18px}
.quick-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;padding:14px}
.quick{background:#fff;border:1px solid var(--line);border-radius:12px;padding:14px;text-align:center}
.toast{position:fixed;right:22px;bottom:22px;background:#122243;color:#fff;padding:12px 15px;border-radius:10px;box-shadow:var(--shadow);z-index:50}
@media(max-width:1100px){.stats{grid-template-columns:repeat(2,1fr)}.dashboard{grid-template-columns:1fr}.attention-grid{grid-template-columns:repeat(2,1fr)}.properties{grid-template-columns:repeat(2,1fr)}.reservation-layout{grid-template-columns:1fr}.detail{position:static}}
@media(max-width:780px){.login{grid-template-columns:1fr}.login-hero{display:none}.topnav{gap:10px}.topnav .navlinks{display:none}.search{width:45vw}.page{padding:14px}.stats,.attention-grid,.properties{grid-template-columns:1fr}.inbox{grid-template-columns:1fr}}

/* Functional v2 additions */
.login-help{text-align:center;margin-top:14px;color:#174c9c;font-weight:700}.attention-number{font-size:28px;font-weight:900}.attention-link{display:flex;justify-content:space-between;width:100%;border:0;background:transparent;color:#174c9c;font-weight:800;padding:10px 0 0}.attention.purple{border-color:#7b59bf}.timeline li{display:flex;align-items:center;gap:7px}.timeline li button{margin-left:auto;border:0;background:#edf4ff;color:#174c9c;border-radius:7px;padding:5px 8px}
.back-link,.back-on-photo{border:0;background:transparent;color:#174c9c;font-weight:800;padding:0;margin-bottom:8px}.page-actions{display:flex;gap:8px}.attention-page{display:grid;gap:12px}.queue-item{display:grid;grid-template-columns:48px 1fr auto;align-items:center;gap:14px}.queue-icon{width:46px;height:46px;border-radius:13px;display:grid;place-items:center;color:#fff;font-weight:900;font-size:18px}.queue-icon.late{background:#e56969}.queue-icon.payments{background:#e4a13f}.queue-icon.cleaning{background:#3674d2}.queue-icon.maintenance{background:#7956b7}.queue-item h3{margin:0 0 4px}.queue-item p{margin:0;color:var(--muted)}.queue-status{display:inline-block;margin-top:7px;background:#fff1dc;color:#9d6200;padding:5px 8px;border-radius:999px;font-size:11px;font-weight:800}.queue-actions{display:flex;gap:7px}
.reservation-table-head,.reservation-row.detailed{display:grid;grid-template-columns:1.2fr 1.4fr .6fr .5fr 32px;gap:12px;align-items:center}.reservation-table-head{padding:10px 12px;color:var(--muted);font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.05em}.guest-info{display:flex;gap:10px;align-items:center}.guest-info b,.guest-info small{display:block}.guest-info small{color:var(--muted);margin-top:3px}.reservation-row.detailed{cursor:pointer}.row-arrow{border:0;background:#edf4ff;color:#174c9c;width:30px;height:30px;border-radius:8px}
.reservation-hero{display:grid;grid-template-columns:300px 1fr;gap:18px}.reservation-property-photo{min-height:190px;border-radius:12px;background-size:cover;background-position:center}.reservation-summary{padding:8px}.large-avatar{width:58px;height:58px;border-radius:50%;display:grid;place-items:center;background:#153f86;color:#fff;font-size:18px;font-weight:900}.reservation-summary h2{margin:0}.reservation-summary p{color:var(--muted)}.summary-metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;margin-top:18px}.summary-metrics div,.stay-grid div{border:1px solid var(--line);border-radius:10px;padding:10px}.summary-metrics span,.stay-grid span{display:block;color:var(--muted);font-size:11px}.summary-metrics b,.stay-grid b{display:block;margin-top:4px}.detail-tabs{display:flex;gap:8px;overflow:auto;margin:14px 0}.detail-tabs button{border:1px solid var(--line);background:#fff;padding:9px 13px;border-radius:9px;color:#43516b}.detail-tabs button.active{background:var(--navy);color:#fff;border-color:var(--navy)}.detail-columns{display:grid;grid-template-columns:1fr 1fr;gap:14px}.detail-columns.wide-left{grid-template-columns:1.3fr .7fr}.top-card,.top-gap{margin-top:14px}.stay-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:9px}.event-list{list-style:none;padding:0;margin:0}.event-list li{padding:11px 0;border-bottom:1px solid #edf2f7}.event-list b,.event-list span{display:block}.event-list span{color:var(--muted);font-size:12px;margin-top:3px}.info-row{display:flex;justify-content:space-between;padding:12px 0;border-bottom:1px solid #edf2f7}.info-row.total{font-size:18px}.green-text{color:#168653}.payment-total{display:flex;justify-content:space-between;font-size:22px;padding:15px;background:#f4f8ff;border-radius:10px;margin-bottom:8px}.conversation-detail{min-height:420px}.message-compose{display:flex;gap:8px;margin-top:25px}.message-compose input{flex:1;border:1px solid var(--line);border-radius:9px;padding:11px}.operation-task{border:1px solid var(--line);border-radius:11px;padding:12px;margin-bottom:9px}.operation-task>.badge{float:right}.operation-task p{color:var(--muted);font-size:12px}.document-row{display:grid;grid-template-columns:30px 1fr auto;align-items:center;padding:12px 0;border-bottom:1px solid #edf2f7}
.clickable{cursor:pointer;transition:.2s transform,.2s box-shadow}.clickable:hover{transform:translateY(-4px);box-shadow:0 18px 36px rgba(32,68,124,.16)}.photo-badge{position:absolute;right:12px;top:12px;background:rgba(255,255,255,.9);border-radius:999px;padding:5px 8px;font-size:11px;font-weight:800}.property-photo{position:relative}.property-open{width:100%;border:0;background:#edf4ff;color:#174c9c;border-radius:9px;padding:10px;margin-top:12px;font-weight:800}
.property-detail-hero{height:310px;border-radius:18px;background-size:cover;background-position:center;display:flex;align-items:flex-end;padding:28px;color:#fff;position:relative}.property-detail-hero h1{font-size:38px;margin:10px 0 4px}.property-detail-hero p{margin:0;color:#d8e4f5}.back-on-photo{position:absolute;top:20px;left:22px;color:#fff;background:rgba(0,0,0,.25);padding:8px 10px;border-radius:9px}.property-detail-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:14px}.warning-text{color:#b36b00;font-size:12px}.large-chart{height:240px}.huge-chart{height:300px}.rate-row{display:grid;grid-template-columns:1fr auto auto;gap:10px;align-items:center;padding:12px 0;border-bottom:1px solid #edf2f7}.rate-row b,.rate-row span{display:block}.rate-row span{color:var(--muted);font-size:12px}.impact-box{background:#fff;padding:14px;border-radius:10px;margin:14px 0}.impact-box b,.impact-box span{display:block}.impact-box b{font-size:24px;color:#168653}.photo-gallery{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.gallery-image{height:260px;border-radius:15px;background-size:cover;background-position:center;display:flex;align-items:flex-end;justify-content:flex-end;padding:14px}.gallery-image button{background:#fff;border:0;border-radius:9px;padding:9px 12px}.settings-form{max-width:760px}.settings-form label{display:block;font-size:12px;font-weight:700;margin-bottom:14px}.settings-form input,.settings-form select,.modal input,.modal select{width:100%;padding:11px;border:1px solid var(--line);border-radius:9px;margin-top:6px}
.calendar-toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}.calendar-toolbar>div{display:flex;gap:7px}.calendar-shell.advanced{grid-template-columns:190px repeat(7,1fr)}.property-label small{display:block;color:var(--muted);margin-top:4px}.calendar-cell{position:relative}.booking{width:100%;border:0;text-align:left}.booking small{display:block;margin-top:3px}.maintenance-block{width:100%;border:0;background:#f1e7ff;color:#6b3ea4;padding:7px;border-radius:7px;font-size:10px}.detail-hero.tall{height:240px}.thread-list{border-right:1px solid var(--line)}.thread{display:block;width:100%;border:0;background:#fff;text-align:left;position:relative}.thread.active{background:#edf4ff}.thread span{display:block;color:var(--muted);font-size:11px;margin-top:4px}.thread time{position:absolute;right:9px;top:11px;color:#8793a6;font-size:9px}.conversation-pane{padding-left:7px}.conversation-head{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);padding-bottom:12px}.owner-grid,.report-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.owner-card{text-align:center}.owner-logo{width:58px;height:58px;border-radius:50%;background:#edf4ff;color:#174c9c;display:grid;place-items:center;margin:auto;font-weight:900}.owner-card p,.report-card p{color:var(--muted)}.owner-metrics{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin:14px 0}.owner-metrics span{background:#f5f8fd;border-radius:9px;padding:8px;font-size:10px}.owner-metrics b{display:block;font-size:14px}.revenue-row{display:grid;grid-template-columns:1fr auto;gap:8px;padding:11px 0;border-bottom:1px solid #edf2f7}.revenue-row span{display:block;color:var(--muted);font-size:11px;margin-top:3px}.progress{grid-column:1/3;height:6px;border-radius:999px;background:#edf2f7}.progress i{display:block;height:100%;background:#2c68cb;border-radius:999px}.ai-workspace{display:grid;grid-template-columns:1.3fr .7fr;gap:14px}.ai-chat{text-align:center;padding:35px}.ai-hero-icon{font-size:48px;color:#1e5ba9}.ai-prompt{display:flex;gap:8px;margin-top:20px}.ai-prompt input{flex:1;border:1px solid var(--line);border-radius:9px;padding:12px}.ai-result{text-align:left;background:#edf4ff;border-radius:12px;padding:15px;margin-top:16px}.command{margin-bottom:8px;text-align:left}.market-category{display:inline-block;background:#edf4ff;color:#174c9c;padding:5px 7px;border-radius:999px;font-size:10px;font-weight:800}.marketplace-card .full{margin-top:12px}.report-card span{font-size:28px;color:#174c9c}
.modal-backdrop{position:fixed;inset:0;background:rgba(4,17,43,.55);display:grid;place-items:center;z-index:100}.modal{width:min(520px,92vw);background:#fff;border-radius:16px;padding:24px;position:relative;box-shadow:0 30px 70px rgba(0,0,0,.3)}.modal-close{position:absolute;right:14px;top:12px;border:0;background:transparent;font-size:25px}.modal label{display:block;font-size:12px;font-weight:700;margin:14px 0}.modal-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.empty-state{text-align:center;padding:45px;color:var(--muted)}
@media(max-width:1100px){.owner-grid,.report-grid{grid-template-columns:repeat(2,1fr)}.reservation-hero{grid-template-columns:1fr}.property-detail-summary{grid-template-columns:repeat(2,1fr)}.ai-workspace{grid-template-columns:1fr}}
@media(max-width:760px){.queue-item{grid-template-columns:45px 1fr}.queue-actions{grid-column:1/3;flex-wrap:wrap}.reservation-table-head{display:none}.reservation-row.detailed{grid-template-columns:1fr auto}.reservation-row.detailed>:nth-child(2){grid-column:1/2}.reservation-row.detailed>:nth-child(4){display:none}.summary-metrics,.property-detail-summary{grid-template-columns:repeat(2,1fr)}.detail-columns,.detail-columns.wide-left{grid-template-columns:1fr}.photo-gallery{grid-template-columns:1fr}.owner-grid,.report-grid{grid-template-columns:1fr}.modal-grid{grid-template-columns:1fr}.calendar-shell.advanced{min-width:900px}.card:has(.calendar-shell){overflow:auto}}
