:root{
  --gold:#b8860b;
  --rose:#c9184a;
  --rose-light:#fdeef1;
  --ink:#2b2130;
  --muted:#7a7186;
  --bg:#faf7f3;
  --card:#ffffff;
  --border:#eae3da;
  --radius:10px;
}
*{box-sizing:border-box;}
body{
  margin:0;
  font-family:'Segoe UI',Tahoma,Geneva,Verdana,sans-serif;
  background:var(--bg);
  color:var(--ink);
}
a{color:var(--rose);text-decoration:none;}
a:hover{text-decoration:underline;}

/* Top navigation */
.topbar{
  display:flex;align-items:center;justify-content:space-between;
  background:linear-gradient(90deg,#3d1f2b,#5a2a3d);
  color:#fff;padding:12px 24px;flex-wrap:wrap;gap:10px;
}
.brand{font-size:20px;font-weight:700;letter-spacing:.5px;}
.mainnav{display:flex;gap:18px;flex-wrap:wrap;}
.mainnav a{color:#f1dfe6;font-weight:500;padding:6px 4px;border-bottom:2px solid transparent;}
.mainnav a:hover, .mainnav a.active{color:#fff;border-bottom:2px solid var(--gold);text-decoration:none;}
.userbox{display:flex;align-items:center;gap:12px;font-size:14px;}
.logout-link{background:rgba(255,255,255,.15);padding:5px 12px;border-radius:6px;color:#fff;}

.container{max-width:1200px;margin:24px auto;padding:0 20px;}
.footer{text-align:center;color:var(--muted);font-size:13px;padding:24px;}

/* Cards & layout */
.card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:20px;margin-bottom:20px;box-shadow:0 1px 3px rgba(0,0,0,.04);}
.grid{display:grid;gap:16px;}
.grid-3{grid-template-columns:repeat(3,1fr);}
.grid-4{grid-template-columns:repeat(4,1fr);}
.grid-2{grid-template-columns:repeat(2,1fr);}
@media (max-width:800px){.grid-2,.grid-3,.grid-4{grid-template-columns:1fr 1fr;}}

h1{font-size:24px;margin:0 0 16px;color:#3d1f2b;}
h2{font-size:19px;color:#3d1f2b;}
.subtitle{color:var(--muted);margin-top:-10px;margin-bottom:20px;}

/* Stat boxes */
.stat-box{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:18px;text-align:center;}
.stat-box .num{font-size:28px;font-weight:700;color:var(--rose);}
.stat-box .label{color:var(--muted);font-size:13px;margin-top:4px;}

/* Forms */
label{display:block;font-weight:600;font-size:13px;margin:12px 0 4px;color:#4a3f52;}
input[type=text],input[type=tel],input[type=email],input[type=number],input[type=date],input[type=time],input[type=password],select,textarea{
  width:100%;padding:9px 11px;border:1px solid var(--border);border-radius:6px;font-size:14px;background:#fff;color:var(--ink);
}
textarea{resize:vertical;min-height:70px;}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
.form-row-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:16px;}
@media (max-width:700px){.form-row,.form-row-3{grid-template-columns:1fr;}}
.checkbox-list{display:flex;flex-wrap:wrap;gap:10px;margin-top:6px;}
.checkbox-list label{display:flex;align-items:center;gap:6px;font-weight:400;background:#fff;border:1px solid var(--border);padding:6px 10px;border-radius:20px;font-size:13px;cursor:pointer;}
.checkbox-list input{width:auto;}
input:disabled, select:disabled{background:#f2f0ee;color:#a79fac;cursor:not-allowed;}
.inline-check{display:flex;align-items:center;gap:8px;margin:8px 0 0;font-weight:400;}
.inline-check input{width:auto;}
.field-hint{color:var(--muted);font-size:12px;margin-top:4px;}

/* Wedding sub-function checklist box */
.subfunction-box{background:#fdf6e9;border:1px solid #f0dfae;border-radius:8px;padding:14px 16px;margin-top:6px;}
.subfunc-row{display:flex;align-items:center;gap:12px;padding:7px 0;border-bottom:1px dashed #ecdcb0;flex-wrap:wrap;}
.subfunc-row:last-child{border-bottom:none;}
.subfunc-row .subfunc-label{margin:0;display:flex;align-items:center;gap:6px;font-weight:600;min-width:130px;}
.subfunc-row .subfunc-label input{width:auto;}
.subfunc-row input[type=date]{width:180px;}

/* Buttons */
.btn{display:inline-block;padding:9px 18px;border-radius:6px;border:none;font-size:14px;font-weight:600;cursor:pointer;text-decoration:none;}
.btn-primary{background:var(--rose);color:#fff;}
.btn-primary:hover{background:#a30f3d;text-decoration:none;}
.btn-secondary{background:#fff;color:var(--ink);border:1px solid var(--border);}
.btn-secondary:hover{background:#f2ecf5;text-decoration:none;}
.btn-danger{background:#fff;color:#c62828;border:1px solid #f0b7b7;}
.btn-danger:hover{background:#fdeaea;text-decoration:none;}
.btn-sm{padding:5px 10px;font-size:12px;}

/* Tables */
table{width:100%;border-collapse:collapse;background:#fff;}
th,td{padding:10px 12px;border-bottom:1px solid var(--border);text-align:left;font-size:13.5px;}
th{background:#f6eef0;color:#3d1f2b;font-weight:700;white-space:nowrap;}
tr:hover td{background:#fdf9fb;}

/* Badges */
.badge{
    display:inline-block;
    padding:5px 12px;
    border-radius:20px;
    font-size:12px;
    font-weight:600;
    color:#fff;
    text-align:center;
}

.badge-primary{
    background:#0d6efd;      /* Blue */
}

.badge-success{
    background:#198754;      /* Green */
}

.badge-danger{
    background:#dc3545;      /* Red */
}

.badge-warning{
    background:#fd7e14;      /* Orange */
}

.tag-chip{display:inline-block;padding:2px 9px;border-radius:20px;font-size:11px;color:#000;margin-right:4px;margin-bottom:2px;}
.subfunc-chip{display:inline-block;padding:2px 8px;border-radius:20px;font-size:10.5px;color:#fff;background:#b8860b;margin-right:4px;margin-bottom:2px;}

/* Filter bar */
.filter-bar{display:flex;gap:12px;flex-wrap:wrap;align-items:end;background:#fff;border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px;margin-bottom:18px;}
.filter-bar .field{display:flex;flex-direction:column;}
.filter-bar label{margin:0 0 4px;}
.filter-bar .btn{white-space:nowrap;}

/* Alerts */
.alert{padding:12px 16px;border-radius:8px;margin-bottom:16px;font-size:14px;}
.alert-success{background:#e6f7ee;color:#1a7a44;border:1px solid #b7e6cc;}
.alert-error{background:#fdeaea;color:#a3262f;border:1px solid #f2bcbc;}

/* Login page */
.login-wrap{max-width:380px;margin:80px auto;background:#fff;padding:32px;border-radius:12px;border:1px solid var(--border);box-shadow:0 4px 16px rgba(0,0,0,.06);}
.login-wrap h1{text-align:center;}

/* Print */
@media print{
  .topbar, .no-print{display:none !important;}
  body{background:#fff;}
  .container{max-width:100%;margin:0;padding:0;}
  .card{box-shadow:none;border:none;}
}

.text-muted{color:var(--muted);}
.mb-0{margin-bottom:0;}
.flex-between{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:10px;}

.status-select{
    width:120px;
    padding:6px;
    border-radius:20px;
    color:#fff;
    border:none;
    font-weight:bold;
    text-align:center;
}

.status-open{
    background:#0d6efd;
}

.status-booked{
    background:#198754;
}

.status-lost{
    background:#dc3545;
}

.status-postpond{
    background:#fd7e14;
}

