:root{--navy:#123b4a;--navy2:#0b2b36;--accent:#c69b55;--bg:#f4f7f8;--card:#fff;--text:#17242a;--muted:#64747b;--border:#dbe4e7;--danger:#b42318;--success:#16794b;--warning:#9a6700;--radius:14px;--shadow:0 6px 22px rgba(18,59,74,.08)}*{box-sizing:border-box}html{font-family:Inter,system-ui,-apple-system,"Segoe UI",sans-serif;color:var(--text);background:var(--bg)}body{margin:0;min-height:100vh}a{color:var(--navy);text-decoration:none}button,input,select,textarea{font:inherit}.topbar{height:68px;background:var(--navy2);color:#fff;display:flex;align-items:center;padding:0 28px;gap:28px;position:sticky;top:0;z-index:20;box-shadow:0 2px 12px rgba(0,0,0,.16)}.brand{color:#fff;display:flex;align-items:center;gap:10px;font-weight:750;white-space:nowrap}.brand-mark{display:grid;place-items:center;width:38px;height:38px;border:1px solid rgba(255,255,255,.4);border-radius:50%;color:#f5d9a7}.topbar nav{display:flex;align-self:stretch;gap:4px}.topbar nav a{display:flex;align-items:center;color:#c8d8de;padding:0 13px;border-bottom:3px solid transparent}.topbar nav a:hover,.topbar nav a.active{color:#fff;border-color:var(--accent)}.user-menu{margin-left:auto;display:flex;gap:14px;align-items:center;color:#dbe7ea;font-size:.9rem}.user-menu a{color:#f5d9a7}.menu-toggle{display:none;background:none;border:0;color:#fff;font-size:1.45rem}.container{max-width:1320px;margin:0 auto;padding:30px 24px 70px}.auth-container{max-width:520px;padding-top:8vh}.page-title{display:flex;justify-content:space-between;align-items:center;gap:18px;margin-bottom:22px}.page-title h1{margin:0;font-size:1.65rem;color:var(--navy)}.card,.install-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:22px}.install-card{width:min(760px,calc(100% - 28px));margin:6vh auto}.install-card h1{color:var(--navy)}.grid{display:grid;gap:18px}.grid.cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid.cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.stat{padding:20px}.stat .number{font-size:2rem;font-weight:800;color:var(--navy)}.stat .label{color:var(--muted);margin-top:4px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.form-grid .full{grid-column:1/-1}label{display:flex;flex-direction:column;gap:7px;font-weight:650;font-size:.91rem;color:#30464e}input,select,textarea{width:100%;border:1px solid #bdcbd0;border-radius:9px;padding:10px 12px;background:#fff;color:var(--text)}textarea{min-height:110px;resize:vertical}input:focus,select:focus,textarea:focus{outline:3px solid rgba(18,59,74,.12);border-color:var(--navy)}.button{display:inline-flex;align-items:center;justify-content:center;gap:7px;border:1px solid var(--border);background:#fff;color:var(--navy);border-radius:9px;padding:10px 15px;font-weight:750;cursor:pointer}.button.primary{background:var(--navy);color:#fff;border-color:var(--navy)}.button.accent{background:var(--accent);color:#221a0e;border-color:var(--accent)}.button.danger{color:var(--danger);border-color:#f0b8b3}.button.small{padding:6px 10px;font-size:.85rem}.actions{display:flex;gap:9px;flex-wrap:wrap}.alert{padding:12px 15px;border-radius:10px;margin-bottom:16px;border:1px solid}.alert-success{background:#ecfdf3;border-color:#a6e6c2;color:#12613d}.alert-error{background:#fff0ef;border-color:#f1b7b2;color:#912018}.alert-warning{background:#fff8e6;border-color:#ecd28b;color:#7b5500}.table-wrap{overflow:auto;border:1px solid var(--border);border-radius:12px;background:#fff}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:12px 14px;border-bottom:1px solid var(--border);vertical-align:middle}th{font-size:.78rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);background:#f8fafb}tr:last-child td{border-bottom:0}.badge{display:inline-flex;padding:5px 9px;border-radius:999px;font-size:.79rem;font-weight:800}.status-new{background:#e9f2ff;color:#245a9b}.status-offer{background:#f3ebff;color:#6b32a8}.status-waiting{background:#fff3d7;color:#845a00}.status-booked{background:#ddf6e8;color:#11623c}.status-cancelled{background:#ffe8e5;color:#9c2b22}.muted{color:var(--muted)}.detail-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.detail{padding:13px;background:#f8fafb;border-radius:10px}.detail strong{display:block;font-size:.78rem;text-transform:uppercase;color:var(--muted);margin-bottom:5px}.section-title{display:flex;justify-content:space-between;align-items:center;margin:28px 0 12px}.section-title h2{margin:0;font-size:1.15rem;color:var(--navy)}.calendar-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px}.calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border-top:1px solid var(--border);border-left:1px solid var(--border);background:#fff}.calendar .dow{padding:9px;text-align:center;font-weight:800;color:var(--muted);background:#edf3f5}.calendar .day,.calendar .dow{border-right:1px solid var(--border);border-bottom:1px solid var(--border)}.calendar .day{min-height:130px;padding:8px}.calendar .day.empty{background:#f7f9fa}.day-number{font-weight:800;margin-bottom:6px}.calendar-event{display:block;font-size:.76rem;padding:5px 6px;border-radius:6px;margin:4px 0;background:#edf3f5;overflow:hidden;text-overflow:ellipsis}.calendar-event.booked{background:#dff6e8;border-left:4px solid #198754}.calendar-event.priority{background:#fff1cb;border-left:4px solid #c58b00}.priority-list{display:flex;flex-direction:column;gap:7px}.priority-item{display:flex;justify-content:space-between;align-items:center;padding:10px 12px;border:1px solid var(--border);border-radius:9px}.countdown{font-weight:800;color:var(--danger)}.editor{min-height:420px;font-family:ui-monospace,SFMono-Regular,monospace;font-size:.84rem}.footer{text-align:center;padding:20px;color:var(--muted);font-size:.8rem}.login-body{background:linear-gradient(135deg,#0b2b36,#1d5669);min-height:100vh;padding:1px}.auth-container .card{margin-top:10vh}.permissions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.check{flex-direction:row;align-items:center;background:#f7f9fa;padding:9px;border-radius:8px}.check input{width:auto}.inline-form{display:flex;gap:8px;align-items:end;flex-wrap:wrap}.inline-form label{min-width:160px}.tabs{display:flex;gap:8px;margin-bottom:18px;flex-wrap:wrap}.tabs a{padding:8px 11px;border-radius:8px;background:#e8eef0}.tabs a.active{background:var(--navy);color:#fff}@media(max-width:900px){.menu-toggle{display:block;margin-left:auto}.topbar{padding:0 16px}.topbar nav{display:none;position:absolute;top:68px;left:0;right:0;background:var(--navy2);height:auto;flex-direction:column;padding:8px 14px}.nav-open .topbar nav{display:flex}.topbar nav a{padding:13px;border-bottom:0;border-left:3px solid transparent}.topbar nav a.active{border-left-color:var(--accent)}.user-menu span{display:none}.grid.cols-3,.grid.cols-4,.detail-list{grid-template-columns:repeat(2,minmax(0,1fr))}.calendar{min-width:850px}.calendar-head+.table-wrap{overflow:auto}}@media(max-width:620px){.container{padding:22px 14px 60px}.form-grid,.grid.cols-2,.grid.cols-3,.grid.cols-4,.detail-list,.permissions{grid-template-columns:1fr}.page-title{align-items:flex-start}.form-grid .full{grid-column:auto}.card{padding:16px}.user-menu{margin-left:0}.brand span:last-child{display:none}}
.contact-card{border:1px solid var(--border);border-radius:12px;padding:16px;display:grid;gap:12px;background:#f8fafb}.contact-card h3{margin:0;color:var(--navy)}[hidden]{display:none!important}.calendar-jump{display:flex;align-items:end;gap:10px;flex-wrap:wrap;margin-bottom:18px}.calendar-jump label{min-width:220px}.selected-day{box-shadow:inset 0 0 0 3px var(--accent);background:#fffbf3}.cancellation-reason{margin-top:16px;padding:12px 14px;border-left:4px solid var(--danger);background:#fff0ef;border-radius:8px}.current-record{background:#edf3f5;color:var(--muted)}.vendor-item{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:11px 0;border-bottom:1px solid var(--border)}.vendor-item:last-of-type{border-bottom:0}.danger-zone{border-color:#efb2ad}.danger-zone h2{color:var(--danger)}@media(max-width:620px){.vendor-item{align-items:flex-start;flex-direction:column}.calendar-jump>*{width:100%}}
.finance-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:16px}.finance-summary>div{padding:13px;border-radius:10px;background:#f1f6f7}.finance-summary span{display:block;color:var(--muted);font-size:.78rem;text-transform:uppercase;margin-bottom:5px}.finance-summary strong{font-size:1.18rem;color:var(--navy)}.finance-amount-form{padding:14px 0;border-top:1px solid var(--border);border-bottom:1px solid var(--border)}.payment-history{margin-top:14px}.payment-row{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;padding:11px 0;border-bottom:1px solid var(--border)}.payment-row:last-child{border-bottom:0}.payment-form{margin-top:18px;padding-top:16px;border-top:1px solid var(--border)}.payment-form h3{margin:0;color:var(--navy)}@media(max-width:620px){.finance-summary{grid-template-columns:1fr}.payment-row{align-items:flex-start}}

/* K5 common K Systems shell alignment — 2026-08-26 */
:root{
  --navy:#8A3F52;
  --navy2:#8A3F52;
  --accent:#8A3F52;
  --shadow:0 2px 8px rgba(0,0,0,.03);
}

.topbar{
  height:auto;
  min-height:54px;
  background:#fff;
  color:#18202a;
  border-bottom:1px solid #e2ddd3;
  padding:10px max(16px,calc((100% - 1220px)/2 + 16px));
  gap:16px;
  box-shadow:none;
}

.brand{
  color:#8A3F52;
  gap:8px;
  font-family:system-ui,-apple-system,"Segoe UI",Arial,sans-serif;
  font-size:16px;
  font-weight:950;
  line-height:1;
}

.brand-mark{
  width:auto;
  height:auto;
  display:inline;
  border:0;
  border-radius:0;
  color:#8A3F52;
  font-size:16px;
  font-weight:950;
}

.topbar nav{
  margin-left:auto;
  align-self:auto;
  gap:5px;
  font-family:system-ui,-apple-system,"Segoe UI",Arial,sans-serif;
  font-size:13px;
}

.topbar nav a{
  padding:7px 9px;
  color:#26352d;
  font-size:13px;
  font-weight:400;
  border:0;
  border-radius:7px;
}

.topbar nav a:hover{
  color:#26352d;
  background:#f7eef1;
}

.topbar nav a.active{
  color:#8A3F52;
  background:transparent;
  border:0;
  font-weight:800;
}

.user-menu{
  margin-left:0;
  gap:10px;
  color:#6b7480;
  font-size:12px;
}

.user-menu a{
  color:#8A3F52;
  font-size:13px;
  font-weight:750;
}

.menu-toggle{
  margin-left:auto;
  width:42px;
  height:38px;
  padding:7px;
  border:1px solid #d8d2c7;
  border-radius:8px;
  background:#fff;
  color:#8A3F52;
  line-height:1;
}

.auth-container{
  max-width:420px;
  padding-top:8vh;
}

.auth-container .card{
  margin-top:0;
  padding:30px;
  border-radius:16px;
}

.auth-container .card h1{
  margin-top:0;
  color:#8A3F52;
  font-size:24px;
}

.auth-container .button.primary{
  background:#8A3F52;
  border-color:#8A3F52;
}

input:focus,
select:focus,
textarea:focus{
  outline:3px solid rgba(138,63,82,.12);
  border-color:#8A3F52;
}

@media(max-width:900px){
  .topbar{
    padding:10px 16px;
    flex-wrap:wrap;
  }

  .topbar nav{
    top:55px;
    background:#fff;
    border-bottom:1px solid #e2ddd3;
    padding:8px 16px 12px;
  }

  .topbar nav a{
    color:#26352d;
    padding:10px 8px;
    border:0;
  }

  .topbar nav a.active{
    color:#8A3F52;
    background:#f7eef1;
    border:0;
  }
}

@media(max-width:620px){
  .auth-container{
    padding-top:5vh;
  }

  .auth-container .card{
    padding:24px;
  }
}

/* K5 common user/logout menu — 2026-08-26 */
.user-menu{
  position:relative;
}

.user-menu-btn{
  border:1px solid #8A3F52;
  border-radius:7px;
  background:#8A3F52;
  color:#fff;
  padding:7px 9px;
  font-size:13px;
  font-weight:750;
  cursor:pointer;
  white-space:nowrap;
}

.user-menu-panel{
  display:none;
  position:absolute;
  right:0;
  top:calc(100% + 4px);
  min-width:210px;
  background:#fff;
  color:#18202a;
  border:1px solid var(--border);
  border-radius:10px;
  padding:6px;
  box-shadow:0 12px 30px rgba(0,0,0,.16);
  z-index:100;
}

.user-menu.open .user-menu-panel{
  display:block;
}

.nav-user{
  padding:9px 10px;
  color:#6b7480;
  font-size:12px;
  font-weight:700;
  border-bottom:1px solid var(--border);
  margin-bottom:5px;
}

.user-menu .user-logout{
  display:block;
  padding:9px 10px;
  border-radius:7px;
  color:#18202a;
  font-size:13px;
  font-weight:400;
}

.user-menu .user-logout:hover{
  background:#f7eef1;
  color:#8A3F52;
}

@media(max-width:900px){
  .user-menu{
    margin-left:0;
  }

  .user-menu-panel{
    right:0;
  }
}

/* K5 shell refinements aligned with K3 — 2026-08-26 */
.brand{
  display:block;
  min-width:108px;
  line-height:.95;
}

.brand-mark{
  display:block;
  font-size:16px;
  font-weight:950;
  line-height:.95;
}

.brand small{
  display:block;
  margin-top:2px;
  color:#647067;
  font-size:10px;
  font-weight:700;
  line-height:1.1;
}

.user-menu-btn{
  min-width:auto;
  padding:7px 10px;
}

.user-menu-panel a{
  display:block;
  padding:9px 10px;
  border-radius:7px;
  color:#18202a;
  font-size:13px;
  font-weight:400;
}

.user-menu-panel a:hover{
  background:#f7eef1;
}

.user-menu-panel a.active{
  color:#8A3F52;
  font-weight:800;
}

.user-menu-panel .user-logout{
  color:#18202a;
}

@media(max-width:900px){
  .brand{
    min-width:90px;
  }
}

/* K5 login aligned with K3 — 2026-08-26 */
body:has(.auth-container){
  min-height:100vh;
  background:#111827;
}

.auth-container{
  max-width:none;
  min-height:calc(100vh - 60px);
  display:grid;
  place-items:center;
  padding:32px 16px;
}

.auth-container .login-card{
  width:min(420px,calc(100% - 32px));
  margin:0;
  padding:30px;
  border:0;
  border-radius:16px;
  box-shadow:none;
}

.login-brand{
  width:48px;
  height:48px;
  display:grid;
  place-items:center;
  margin-bottom:22px;
  border-radius:12px;
  background:#8A3F52;
  color:#fff;
  font-size:21px;
  font-weight:900;
}

.auth-container .form-grid{
  grid-template-columns:1fr;
  gap:14px;
}

.auth-container label{
  font-size:13px;
  font-weight:650;
  color:#18202a;
}

.auth-container input{
  padding:10px 11px;
  border:1px solid #cfd6df;
  border-radius:9px;
}

.auth-container .button.primary{
  min-height:42px;
  margin-top:1px;
  background:#8A3F52;
  border-color:#8A3F52;
  color:#fff;
  font-weight:700;
}

body:has(.auth-container) .footer{
  display:none;
}

@media(max-width:620px){
  .auth-container{
    min-height:100vh;
    padding:16px;
  }

  .auth-container .login-card{
    width:min(420px,100%);
    padding:24px;
  }
}

/* Exact vertical centering for K5 login */
.auth-container{
  min-height:100vh;
}


/* K5 final shell alignment with K3 — 2026-08-26 */
.topbar{
  min-height:54px;
  padding:10px max(16px,calc((100% - 1220px)/2 + 16px));
  gap:16px;
}

.topbar nav{
  margin-left:auto;
  gap:5px;
  align-items:center;
}

.topbar nav a{
  padding:7px 9px;
  font-size:13px;
  font-weight:400;
}

.topbar nav a:hover{
  background:#f7eef1;
}

.topbar nav a.active{
  color:#8A3F52;
  font-weight:800;
}

.user-menu{
  margin-left:0;
}

.user-menu-btn{
  padding:7px 9px;
  font-size:13px;
  font-weight:750;
  border:1px solid #8A3F52;
  border-radius:7px;
  background:#8A3F52;
  color:#fff;
}

.menu-toggle{
  display:none;
}

@media(max-width:850px){
  .topbar{
    padding:10px 16px;
    align-items:center;
    flex-wrap:wrap;
  }

  .menu-toggle{
    display:flex;
    align-items:center;
    justify-content:center;
    margin-left:auto;
  }

  .topbar nav{
    display:none;
    position:static;
    width:100%;
    margin-left:0;
    flex-direction:column;
    align-items:stretch;
    gap:3px;
    padding:6px 0 0;
    border:0;
    background:#fff;
  }

  .nav-open .topbar nav{
    display:flex;
  }

  .topbar nav a{
    width:100%;
    padding:10px 8px;
    color:#26352d;
  }

  .topbar nav a.active{
    color:#8A3F52;
    background:#f7eef1;
  }

  .user-menu{
    width:100%;
  }

  .user-menu-btn{
    width:100%;
    text-align:left;
  }

  .user-menu-panel{
    position:static;
    width:100%;
    margin-top:5px;
    box-shadow:none;
  }
}
