.pmcp-portal { max-width:880px; margin:0 auto; font-family:-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif; color:#222; line-height:1.55; }
.pmcp-portal h2 { margin-top:0; }
.pmcp-portal h3 { margin-top:32px; padding-bottom:6px; border-bottom:1px solid #eee; }
.pmcp-portal h4 { margin:0 0 6px; font-size:11px; text-transform:uppercase; letter-spacing:.6px; color:#666; }
.pmcp-portal .pmcp-muted { color:#777; font-size:13px; }

.pmcp-portal-header { display:flex; justify-content:space-between; align-items:center; padding-bottom:16px; margin-bottom:24px; border-bottom:1px solid #eee; }

.pmcp-portal .pmcp-stats { display:grid; grid-template-columns:repeat(auto-fit,minmax(140px,1fr)); gap:12px; margin:0 0 28px; }
.pmcp-portal .pmcp-stat { background:#fafafa; border:1px solid #eee; border-radius:6px; padding:14px 16px; }
.pmcp-portal .pmcp-stat .num { display:block; font-size:22px; font-weight:600; }
.pmcp-portal .pmcp-stat .lbl { display:block; color:#777; font-size:12px; margin-top:2px; text-transform:uppercase; letter-spacing:.4px; }

.pmcp-portal .pmcp-card { background:#fafafa; border:1px solid #eee; border-radius:6px; padding:14px 18px; margin:12px 0; }

.pmcp-portal .pmcp-list { list-style:none; padding:0; margin:0; }
.pmcp-portal .pmcp-list li { padding:12px 0; border-bottom:1px solid #eee; }
.pmcp-portal .pmcp-list li:last-child { border-bottom:none; }
.pmcp-portal .pmcp-list .pmcp-meta { display:block; font-size:12px; color:#777; margin-top:4px; }

.pmcp-portal .pmcp-table { width:100%; border-collapse:collapse; margin:8px 0; }
.pmcp-portal .pmcp-table th, .pmcp-portal .pmcp-table td { padding:10px 8px; text-align:left; border-bottom:1px solid #eee; font-size:14px; }
.pmcp-portal .pmcp-table th { color:#666; font-size:11px; text-transform:uppercase; letter-spacing:.4px; font-weight:600; }
.pmcp-portal .pmcp-table td.num, .pmcp-portal .pmcp-table th.num { text-align:right; white-space:nowrap; }

.pmcp-portal .pmcp-tasks { list-style:none; padding:0; margin:0; }
.pmcp-portal .pmcp-task { display:flex; justify-content:space-between; align-items:flex-start; gap:16px; padding:12px 14px; background:#fff; border:1px solid #eee; border-radius:6px; margin-bottom:8px; }
.pmcp-portal .pmcp-task-completed { opacity:.7; }
.pmcp-portal .pmcp-task-completed strong { text-decoration:line-through; }
.pmcp-portal .pmcp-task-meta { text-align:right; font-size:12px; color:#666; flex-shrink:0; }

.pmcp-portal .pmcp-thread { background:#fafafa; border:1px solid #eee; border-radius:6px; padding:12px; margin-bottom:12px; max-height:420px; overflow-y:auto; }
.pmcp-portal .pmcp-msg { padding:10px 14px; border-radius:8px; margin-bottom:8px; max-width:85%; }
.pmcp-portal .pmcp-msg .meta { font-size:11px; color:#777; margin-bottom:4px; }
.pmcp-portal .pmcp-msg.pmcp-msg-client { background:#dcf0ff; margin-left:auto; }
.pmcp-portal .pmcp-msg.pmcp-msg-admin { background:#fff; border:1px solid #ddd; }
.pmcp-portal .pmcp-msg p { margin:0; }

.pmcp-portal .pmcp-form { margin:16px 0; }
.pmcp-portal .pmcp-form label { display:block; font-weight:600; margin-bottom:6px; font-size:13px; }
.pmcp-portal .pmcp-form input[type=email],
.pmcp-portal .pmcp-form input[type=text],
.pmcp-portal .pmcp-form textarea { width:100%; padding:10px 12px; border:1px solid #ccc; border-radius:4px; font-size:14px; font-family:inherit; margin-bottom:12px; }
.pmcp-portal .pmcp-form textarea { min-height:90px; }
.pmcp-portal .pmcp-btn { display:inline-block; padding:10px 18px; background:#222; color:#fff; border:none; border-radius:4px; cursor:pointer; font-size:14px; text-decoration:none; }
.pmcp-portal .pmcp-btn:hover { background:#444; color:#fff; }
.pmcp-portal .pmcp-btn-primary { background:#2271b1; }
.pmcp-portal .pmcp-btn-primary:hover { background:#135e96; }

.pmcp-portal .pmcp-notice { padding:12px 16px; border-radius:4px; margin-bottom:16px; }
.pmcp-portal .pmcp-success { background:#e7f6ea; border-left:4px solid #00a32a; }
.pmcp-portal .pmcp-error { background:#fcebec; border-left:4px solid #d63638; }

.pmcp-portal .pmcp-link { color:#2271b1; text-decoration:none; }
.pmcp-portal .pmcp-link:hover { text-decoration:underline; }

.pmcp-badge { display:inline-block; padding:2px 8px; color:#fff; font-size:10px; border-radius:10px; text-transform:uppercase; letter-spacing:.4px; }

.pmcp-invoice-header { display:flex; justify-content:space-between; align-items:flex-start; gap:24px; padding-bottom:20px; border-bottom:2px solid #222; margin-bottom:20px; }
.pmcp-invoice-header .pmcp-logo { max-height:60px; max-width:200px; }
.pmcp-invoice-header .pmcp-company { margin:0 0 6px; }
.pmcp-bill-to { margin-bottom:20px; }

@media (max-width:600px) {
    .pmcp-portal-header { flex-direction:column; align-items:flex-start; gap:8px; }
    .pmcp-invoice-header { flex-direction:column; }
    .pmcp-task { flex-direction:column; }
    .pmcp-task-meta { text-align:left; }
}

.pmcp-stamp { display:inline-block; padding:6px 16px; font-weight:700; letter-spacing:.5px; border:2px solid; border-radius:4px; transform:rotate(-4deg); margin-top:8px; }
.pmcp-stamp.paid { color:#0a7d2c; border-color:#0a7d2c; }
.pmcp-stamp.overdue { color:#b6131e; border-color:#b6131e; }
.pmcp-stamp.void { color:#666; border-color:#666; }
