/* Shukan Sky Portal — base styles */
:root{
  --navy:#13315c;
  --blue:#2e75b6;
  --blue-light:#eaf2fb;
  --accent:#c9952c;
  --green:#1e8e5a;
  --green-bg:#e6f4ec;
  --red:#c0392b;
  --red-bg:#fbe9e7;
  --amber-bg:#fff7e6;
  --ink:#1f2937;
  --muted:#6b7280;
  --border:#e3e7ee;
  --bg:#f5f7fb;
  --radius:10px;
  --shadow:0 1px 3px rgba(16,24,40,.08), 0 1px 2px rgba(16,24,40,.04);
}
*{box-sizing:border-box;}
body{
  margin:0;
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  background:var(--bg);
  color:var(--ink);
}
a{color:var(--blue); text-decoration:none;}
a:hover{text-decoration:underline;}

.topbar{
  background:linear-gradient(135deg,var(--navy),#1d4a85);
  color:#fff;
  box-shadow:var(--shadow);
}
.topbar-inner{
  max-width:1180px;
  margin:0 auto;
  padding:14px 20px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  flex-wrap:wrap;
  gap:10px;
}
.brand{display:flex; align-items:center; gap:10px; color:#fff;}
.brand:hover{text-decoration:none;}
.brand-mark{
  display:inline-flex; align-items:center; justify-content:center;
  width:34px; height:34px; border-radius:8px;
  background:var(--accent); color:#1f2937; font-weight:700; font-size:13px;
}
.brand-text{font-weight:600; font-size:16px;}
.topnav{display:flex; align-items:center; gap:16px; flex-wrap:wrap;}
.topnav a{color:#eaf2ff; font-size:14px;}
.topnav a:hover{color:#fff;}
.logout-link{
  background:rgba(255,255,255,.12);
  padding:6px 12px;
  border-radius:6px;
}
.user-pill{
  font-size:13px; color:#dce8fb; background:rgba(255,255,255,.08);
  padding:5px 10px; border-radius:20px;
}

.page{max-width:1180px; margin:0 auto; padding:24px 20px 60px;}

.card{
  background:#fff;
  border:1px solid var(--border);
  border-radius:var(--radius);
  box-shadow:var(--shadow);
  padding:22px;
  margin-bottom:22px;
}
.card h2{margin-top:0; font-size:18px;}

.search-bar{
  display:flex; gap:10px; flex-wrap:wrap; align-items:flex-end;
}
.search-bar .field{flex:1; min-width:220px;}
.field label{display:block; font-size:12px; color:var(--muted); margin-bottom:5px; font-weight:600; text-transform:uppercase; letter-spacing:.03em;}
input[type=text], input[type=password], input[type=number], select{
  width:100%;
  padding:10px 12px;
  border:1px solid var(--border);
  border-radius:8px;
  font-size:14px;
  background:#fcfdff;
}
input:focus, select:focus{outline:2px solid var(--blue); outline-offset:1px; border-color:var(--blue);}

.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:6px;
  border:none; cursor:pointer;
  padding:10px 18px;
  border-radius:8px;
  font-size:14px; font-weight:600;
  background:var(--blue); color:#fff;
}
.btn:hover{background:var(--navy);}
.btn.secondary{background:#fff; color:var(--blue); border:1px solid var(--blue);}
.btn.secondary:hover{background:var(--blue-light);}
.btn.danger{background:var(--red);}
.btn.danger:hover{background:#992d22;}
.btn.small{padding:6px 12px; font-size:13px;}

.alert{padding:12px 16px; border-radius:8px; margin-bottom:16px; font-size:14px;}
.alert.success{background:var(--green-bg); color:var(--green); border:1px solid #b6e3c8;}
.alert.error{background:var(--red-bg); color:var(--red); border:1px solid #f1c0b8;}
.alert.info{background:var(--blue-light); color:var(--navy); border:1px solid #cfe1f7;}

/* Search result detail card */
.result-grid{
  display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
  gap:14px; margin-top:16px;
}
.result-card{
  border:1px solid var(--border); border-radius:var(--radius);
  padding:18px; background:#fbfcfe;
}
.result-card .flat-title{
  font-size:20px; font-weight:700; color:var(--navy); margin-bottom:2px;
}
.result-card .badge{
  display:inline-block; font-size:11px; font-weight:700; padding:3px 9px;
  border-radius:20px; text-transform:uppercase; letter-spacing:.03em; margin-bottom:12px;
}
.badge.owner{background:var(--green-bg); color:var(--green);}
.badge.tenant{background:var(--amber-bg); color:#946200;}
.detail-table{width:100%; border-collapse:collapse; font-size:14px;}
.detail-table td{padding:6px 4px; vertical-align:top; border-bottom:1px dashed var(--border);}
.detail-table td.k{color:var(--muted); width:42%; font-weight:600;}
.due-pill{font-weight:700; padding:2px 8px; border-radius:6px;}
.due-pill.zero{background:var(--green-bg); color:var(--green);}
.due-pill.pos{background:var(--red-bg); color:var(--red);}
.result-actions{margin-top:12px; display:flex; gap:8px;}

table.data-table{
  width:100%; border-collapse:collapse; font-size:13.5px;
}
table.data-table th, table.data-table td{
  padding:9px 10px; border-bottom:1px solid var(--border); text-align:left; white-space:nowrap;
}
table.data-table th{
  background:var(--blue-light); color:var(--navy); position:sticky; top:0;
  font-size:12px; text-transform:uppercase; letter-spacing:.02em;
}
table.data-table tbody tr:hover{background:#f7faff;}
.table-wrap{overflow-x:auto; border:1px solid var(--border); border-radius:var(--radius);}
.actions-cell{display:flex; gap:6px;}

.pagination{display:flex; gap:6px; margin-top:16px; flex-wrap:wrap;}
.pagination a, .pagination span{
  padding:6px 11px; border:1px solid var(--border); border-radius:6px; font-size:13px; color:var(--ink);
}
.pagination a:hover{background:var(--blue-light); text-decoration:none;}
.pagination .active{background:var(--blue); color:#fff; border-color:var(--blue);}

.summary-strip{display:flex; gap:14px; flex-wrap:wrap; margin-bottom:20px;}
.summary-box{
  flex:1; min-width:150px; background:#fff; border:1px solid var(--border);
  border-radius:var(--radius); padding:14px 18px; box-shadow:var(--shadow);
}
.summary-box .num{font-size:22px; font-weight:700; color:var(--navy);}
.summary-box .lbl{font-size:12px; color:var(--muted); text-transform:uppercase; letter-spacing:.03em;}

.form-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:16px;}
.form-grid .full{grid-column:1/-1;}
@media (max-width:700px){
  .form-grid{grid-template-columns:1fr;}
}

.footer{text-align:center; color:var(--muted); font-size:12px; padding:20px 0 40px;}

.login-wrap{
  min-height:90vh; display:flex; align-items:center; justify-content:center;
}
.login-card{
  width:100%; max-width:380px; background:#fff; border-radius:var(--radius);
  box-shadow:var(--shadow); padding:30px; border:1px solid var(--border);
}
.login-card h1{font-size:18px; text-align:center; color:var(--navy); margin-bottom:4px;}
.login-card .sub{text-align:center; color:var(--muted); font-size:13px; margin-bottom:20px;}
.login-card .btn{width:100%; margin-top:6px;}
.field-spacer{margin-bottom:14px;}
