:root { --pt-green:#155f5d; --pt-green-soft:#4b8884; --pt-mint:#c9eade; --pt-cream:#fffdf5; --pt-paper:#fffff8; --pt-gold:#d3a12c; --pt-line:rgba(21,95,93,.15); }
* { box-sizing:border-box; }
.pt-portal-body { min-height:100vh; margin:0; background:#f7f5ec; color:var(--pt-green); font-family:Inter,"Segoe UI",sans-serif; }
.pt-portal-shell { min-height:100vh; display:grid; grid-template-columns:245px minmax(0,1fr); }
.pt-portal-sidebar { position:sticky; top:0; height:100vh; display:flex; flex-direction:column; padding:28px 22px; border-right:1px solid var(--pt-line); background:var(--pt-cream); }
.pt-portal-sidebar img { width:140px; height:auto; display:block; margin:0 auto 35px; }
.pt-portal-sidebar nav { display:flex; min-height:0; flex:1; flex-direction:column; gap:6px; overflow-y:auto; }
.pt-portal-sidebar nav a,.pt-portal-logout { padding:11px 14px; border-radius:7px; color:var(--pt-green-soft); font-size:14px; font-weight:600; text-decoration:none; }
.pt-portal-sidebar nav a:hover,.pt-portal-sidebar nav a.is-active { background:var(--pt-mint); color:var(--pt-green); }
.pt-portal-logout { margin-top:auto; }
.pt-portal-content { min-width:0; padding:clamp(28px,5vw,65px); }
.pt-portal-workspace { color:#243f3e; }
.pt-portal-workspace .pt-erp-wrap { max-width:none; margin:0; }
.pt-portal-workspace .pt-erp-heading { margin-top:0; }
.pt-portal-workspace table { width:100%; border-collapse:collapse; background:#fff; }
.pt-portal-workspace th,.pt-portal-workspace td { padding:11px 12px; border:1px solid rgba(21,95,93,.13); text-align:left; vertical-align:top; }
.pt-portal-workspace th { background:#f1f8f5; color:var(--pt-green); }
.pt-portal-workspace .button,.pt-portal-workspace input[type=submit] { display:inline-block; min-height:36px; padding:7px 13px; border:1px solid var(--pt-green); border-radius:4px; background:#fff; color:var(--pt-green); font-weight:700; text-decoration:none; cursor:pointer; }
.pt-portal-workspace .button-primary,.pt-portal-workspace input[type=submit] { background:var(--pt-green); color:#fff; }
.pt-portal-workspace .notice { margin:0 0 18px; padding:10px 14px; border-left:4px solid var(--pt-gold); background:#fff; }
.pt-portal-workspace .notice-success { border-left-color:#228b5b; }
.pt-portal-workspace .notice-error { border-left-color:#b32d2e; }
.pt-portal-workspace select,.pt-portal-workspace input,.pt-portal-workspace textarea { max-width:100%; padding:8px 10px; border:1px solid rgba(21,95,93,.25); border-radius:3px; background:#fff; }
.pt-quote-status-form { display:grid; grid-template-columns:minmax(220px,360px) auto; align-items:end; gap:12px; margin:18px 0 28px; padding:16px; background:#f1f8f5; }
.pt-portal-content>header { display:flex; align-items:flex-start; justify-content:space-between; gap:30px; margin-bottom:35px; }
.pt-portal-content h1 { margin:3px 0 7px; font-family:Georgia,serif; font-size:clamp(32px,5vw,54px); font-weight:400; letter-spacing:-.04em; }
.pt-portal-content header p:last-child { margin:0; color:var(--pt-green-soft); }
.pt-portal-content header>span { color:var(--pt-green-soft); font-size:12px; }
.pt-portal-kicker { margin:0; color:var(--pt-green-soft); font-size:10px; font-weight:800; letter-spacing:.16em; text-transform:uppercase; }
.pt-portal-metrics { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:15px; margin-bottom:20px; }
.pt-portal-metrics article { min-height:125px; display:flex; flex-direction:column; justify-content:space-between; padding:21px; border:1px solid var(--pt-line); background:var(--pt-paper); }
.pt-portal-metrics span { color:var(--pt-green-soft); font-size:11px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.pt-portal-metrics strong { font-family:Georgia,serif; font-size:39px; font-weight:400; }
.pt-portal-grid { display:grid; grid-template-columns:1.15fr .85fr; gap:20px; }
.pt-portal-panel { padding:25px; border:1px solid var(--pt-line); background:var(--pt-paper); }
.pt-portal-panel-title { display:flex; align-items:center; justify-content:space-between; gap:20px; margin-bottom:18px; }
.pt-portal-panel h2 { margin:4px 0 0; font-family:Georgia,serif; font-size:25px; font-weight:400; }
.pt-portal-panel-title a,.pt-portal-button { padding:9px 13px; border-radius:999px; background:var(--pt-green); color:#fff; font-size:11px; font-weight:700; text-decoration:none; }
.pt-portal-list article { display:flex; align-items:center; justify-content:space-between; gap:15px; padding:14px 0; border-top:1px solid var(--pt-line); }
.pt-portal-list article div { display:flex; min-width:0; flex-direction:column; }
.pt-portal-list small { margin-top:3px; overflow:hidden; color:var(--pt-green-soft); font-size:11px; text-overflow:ellipsis; white-space:nowrap; }
.pt-portal-list b { white-space:nowrap; }
.pt-portal-alert { padding:5px 8px; border-radius:999px; background:#fff0c7; color:#7a5b00; font-size:10px; font-weight:800; }
.pt-portal-login { min-height:100vh; display:grid; place-items:center; padding:25px; background:radial-gradient(circle at 15% 15%,var(--pt-mint) 0 7px,transparent 8px),var(--pt-cream); }
.pt-portal-login>section { width:min(100%,460px); padding:45px; border:1px solid var(--pt-line); background:var(--pt-paper); box-shadow:0 25px 80px rgba(21,95,93,.12); }
.pt-portal-login img { width:155px; height:auto; display:block; margin:0 auto 25px; }
.pt-portal-login h1 { margin:6px 0 10px; font-family:Georgia,serif; font-size:39px; font-weight:400; }
.pt-portal-login>section>p:not(.pt-portal-kicker) { color:var(--pt-green-soft); }
.pt-portal-login form { margin-top:25px; }
.pt-portal-login form p { margin:0 0 15px; }
.pt-portal-login label { display:block; color:var(--pt-green); font-size:12px; font-weight:700; }
.pt-portal-login input[type=text],.pt-portal-login input[type=password] { width:100%; min-height:46px; margin-top:5px; padding:10px 12px; border:1px solid var(--pt-line); background:#fff; }
.pt-portal-login input[type=submit] { width:100%; min-height:46px; border:0; border-radius:0; background:var(--pt-green); color:#fff; font-weight:700; cursor:pointer; }
@media(max-width:1000px){.pt-portal-metrics{grid-template-columns:repeat(2,1fr)}.pt-portal-grid{grid-template-columns:1fr}}
@media(max-width:720px){.pt-portal-shell{display:block}.pt-portal-sidebar{position:static;width:100%;height:auto;display:block;padding:15px}.pt-portal-sidebar>a:first-child,.pt-portal-logout{display:none}.pt-portal-sidebar nav{flex-direction:row;overflow-x:auto}.pt-portal-sidebar nav a{white-space:nowrap}.pt-portal-content{padding:25px 16px}.pt-portal-content>header{display:block}.pt-portal-content header>span{display:block;margin-top:12px}.pt-portal-metrics{grid-template-columns:1fr 1fr}.pt-portal-login>section{padding:32px 25px}}
