.herbie-login-layout { display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:start; }
.herbie-login-box { background:#fff;border:1px solid var(--herbie-line);border-radius:18px;padding:30px;max-width:520px; }
.herbie-login-box h3 { font-size:24px;font-weight:500;color:var(--herbie-primary); }
.herbie-login-box>p { color:var(--herbie-muted);font-size:13px;margin-bottom:25px; }
.herbie-login-box label,.herbie-invoice-detail form label { display:flex;flex-direction:column;gap:7px;font-size:12px;font-weight:550;margin:14px 0; }
.herbie-login-box input,.herbie-invoice-detail form input,.herbie-invoice-detail form textarea { width:100%;border:1px solid var(--herbie-line);border-radius:8px;padding:11px 12px;min-height:44px;font-size:14px;background:#fff;color:var(--herbie-ink); }
.herbie-login-box input[name=code] { letter-spacing:.3em;font-size:22px; }
.herbie-login-box [data-herbie-code-wrap] { border-top:1px solid var(--herbie-line);padding-top:12px;margin-top:20px; }
.herbie-block-resident_portal { padding-top:20px; }
.herbie-block-resident_login { background:var(--herbie-soft);padding:55px 0 75px; }
.herbie-portal { font-size:13px; }
.herbie-portal-welcome { display:flex;justify-content:space-between;gap:25px;align-items:start;margin-bottom:30px; }
.herbie-portal-welcome h2 { font-family:Georgia,serif;font-size:37px;font-weight:400;color:var(--herbie-primary);margin-bottom:12px; }
.herbie-portal-welcome p { color:var(--herbie-muted); }
.herbie-portal-metrics { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin-bottom:30px; }
.herbie-portal-metrics>div { display:flex;flex-direction:column;gap:9px;border:1px solid var(--herbie-line);border-radius:13px;padding:22px;background:var(--herbie-soft); }
.herbie-portal-metrics span { color:var(--herbie-muted);font-size:11px; }
.herbie-portal-metrics strong { color:var(--herbie-primary);font-size:26px;font-weight:600;letter-spacing:-.035em; }
.herbie-portal-nav { display:flex;gap:10px;flex-wrap:wrap;padding-bottom:20px;border-bottom:1px solid var(--herbie-line);margin-bottom:25px; }
.herbie-portal-nav>a { padding:10px 18px;border-radius:7px;font-size:12px;font-weight:550;color:var(--herbie-muted); }
.herbie-portal-nav>a[aria-current=page] { background:var(--herbie-primary);color:#fff; }
.herbie-portal-bookings { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px; }
.herbie-portal-booking { display:grid;grid-template-columns:135px minmax(0,1fr);gap:22px;border:1px solid var(--herbie-line);border-radius:13px;overflow:hidden;padding:15px; }
.herbie-portal-room-photo .herbie-image { width:100%;height:170px;object-fit:cover;border-radius:8px; }
.herbie-portal-reference { font-size:9px;color:var(--herbie-secondary); }
.herbie-portal-booking h3 { font-size:20px;font-weight:550;margin:8px 0; }
.herbie-portal-booking p { color:var(--herbie-muted);font-size:11px;margin:6px 0; }
.herbie-portal-booking .herbie-text-link { display:flex;font-size:11px;margin-top:12px; }
.herbie-status { display:inline-flex;align-items:center;border-radius:5px;background:#f0e7f6;color:var(--herbie-primary);font-size:10px;line-height:1.5;padding:5px 9px; }
.herbie-status-overdue { background:#fce4e9;color:#a12d50; }
.herbie-status-paid { background:#e4f4e9;color:#25714a; }
.herbie-status-cancelled { background:#f2edf3;color:#87738e; }
.herbie-status-partial { background:#fbf0dc;color:#8c681f; }
.herbie-portal-table-wrap { overflow-x:auto;border:1px solid var(--herbie-line);border-radius:12px; }
.herbie-portal-table { width:100%;min-width:680px;border-collapse:collapse;text-align:left; }
.herbie-portal-table th { padding:17px;background:var(--herbie-soft);color:var(--herbie-secondary);font-size:10px;font-weight:650; }
.herbie-portal-table td { padding:18px 17px;vertical-align:top;border-top:1px solid var(--herbie-line);font-size:12px; }
.herbie-portal-table td small { display:block;color:var(--herbie-muted);font-size:10px;margin-top:6px; }
.herbie-portal-table .herbie-text-link { font-size:11px; }
.herbie-portal-panel { border:1px solid var(--herbie-line);border-radius:15px;padding:30px;background:#fff; }
.herbie-portal-panel>h3 { font-size:24px;font-weight:550;color:var(--herbie-primary); }
.herbie-portal-panel h4 { margin:25px 0 12px;font-size:16px;font-weight:600; }
.herbie-person-summary { padding:15px 0;border-bottom:1px solid var(--herbie-line); }
.herbie-person-summary p { font-size:12px;color:var(--herbie-muted);margin:5px 0; }
.herbie-person-summary small { color:var(--herbie-muted);font-size:10px; }
.herbie-person-summary .herbie-text-link { font-size:11px;margin-left:15px; }
.herbie-invoice-title { display:flex;justify-content:space-between;gap:25px;align-items:start;border-bottom:1px solid var(--herbie-line);padding-bottom:25px; }
.herbie-invoice-title h3 { font-size:26px;font-weight:550;color:var(--herbie-primary);margin-bottom:9px; }
.herbie-invoice-title p { font-size:12px;color:var(--herbie-muted); }
.herbie-invoice-facts { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;margin:25px 0; }
.herbie-invoice-facts dt { color:var(--herbie-secondary);font-size:10px;margin-bottom:6px; }
.herbie-invoice-facts dd { margin:0;font-size:13px;font-weight:550; }
.herbie-invoice-totals { display:flex;flex-direction:column;gap:14px;border:1px solid var(--herbie-line);border-radius:10px;padding:22px;background:var(--herbie-soft); }
.herbie-invoice-totals>span { display:flex;justify-content:space-between;gap:20px;color:var(--herbie-muted);font-size:12px; }
.herbie-invoice-totals strong { color:var(--herbie-primary);font-size:15px;font-weight:650; }
.herbie-invoice-totals>span:last-child { padding-top:12px;border-top:1px solid var(--herbie-line); }
.herbie-invoice-totals>span:last-child strong { font-size:22px; }
.herbie-bank-list { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px;margin:15px 0; }
.herbie-bank { display:flex;flex-direction:column;gap:5px;border:1px solid var(--herbie-line);border-radius:9px;padding:18px; }
.herbie-bank strong { color:var(--herbie-primary);font-size:13px; }
.herbie-bank span { font-size:19px;letter-spacing:.04em; }
.herbie-bank small { color:var(--herbie-muted);font-size:11px; }
.herbie-portal-notice { border:1px solid #e5d7b4;border-radius:9px;background:#fff8e7;color:#8a6920;padding:18px;margin:25px 0; }
.herbie-invoice-detail form { margin:28px 0;padding-top:5px;border-top:1px solid var(--herbie-line); }
@media (max-width:1000px) {
.herbie-login-layout { gap:45px; }
.herbie-portal-bookings { grid-template-columns:1fr; }
}
@media (max-width:680px) {
.herbie-login-layout { grid-template-columns:1fr;gap:25px; }
.herbie-login-box { padding:23px 20px;max-width:none; }
.herbie-login-box input,.herbie-invoice-detail form input,.herbie-invoice-detail form textarea { font-size:16px; }
.herbie-portal-welcome h2 { font-size:29px; }
.herbie-portal-metrics { grid-template-columns:1fr;gap:12px; }
.herbie-portal-metrics>div { flex-direction:row;align-items:center;justify-content:space-between;padding:17px; }
.herbie-portal-metrics strong { font-size:22px; }
.herbie-portal-nav { display:grid;grid-template-columns:1fr 1fr;gap:7px; }
.herbie-portal-nav>a { padding:11px 12px;font-size:11px;text-align:center; }
.herbie-portal-booking { grid-template-columns:90px minmax(0,1fr);gap:16px;padding:12px; }
.herbie-portal-room-photo .herbie-image { height:130px; }
.herbie-portal-booking h3 { font-size:18px; }
.herbie-portal-panel { padding:23px 18px; }
.herbie-invoice-title { flex-direction:column;gap:12px; }
.herbie-invoice-title h3 { font-size:22px;overflow-wrap:anywhere; }
.herbie-invoice-facts { gap:20px; }
.herbie-invoice-facts dd { font-size:12px; }
.herbie-invoice-totals { padding:17px; }
.herbie-invoice-totals strong { font-size:13px; }
.herbie-invoice-totals>span:last-child strong { font-size:18px; }
.herbie-bank-list { grid-template-columns:1fr; }
.herbie-invoice-detail .herbie-form-two { grid-template-columns:1fr;gap:0; }
}
@media print {
.herbie-portal-welcome,.herbie-portal-metrics,.herbie-portal-nav,.herbie-page-heading,.herbie-invoice-detail form,.herbie-actions { display:none!important; }
.herbie-invoice-detail { border:0;padding:0; }
.herbie-block-resident_portal { padding:0; }
.herbie-invoice-title,.herbie-invoice-facts,.herbie-bank-list,.herbie-invoice-totals { break-inside:avoid; }
}
