/* Version 3: portal modules (agents, projects, files, messages, notifications, reports).
   The agent, project and file-manager rules are taken unchanged from the single-file website
   so these screens look exactly as they do there. */
.ag-2{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.ag-2>.pcard{margin-bottom:18px}
.ag-tiers td{font-size:.86rem}
.ag-tiers tr.cur td{background:#FFF4EA}
.ag-prog{margin-bottom:14px}
.ag-bar{height:12px;border-radius:999px;background:var(--paper);border:1px solid var(--line);overflow:hidden}
.ag-bar i{display:block;height:100%;background:linear-gradient(90deg,var(--teal),var(--marigold));border-radius:999px}
.ag-prog-l{display:flex;justify-content:space-between;font-family:var(--mono);font-size:.62rem;color:var(--muted);margin-top:5px}
.ag-prog p{font-size:.86rem;margin-top:8px}
.ag-link{display:flex;gap:8px}
.ag-link input{flex:1;min-width:0;border:1.5px solid var(--line);border-radius:9px;padding:9px 11px;font-family:var(--mono);font-size:.74rem;background:var(--paper);color:var(--ink)}
.ag-mine{border-left:4px solid var(--teal)}
.ag-mine .k{display:block;font-family:var(--mono);font-size:.6rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-bottom:8px}
.ag-mine-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.ag-mine-row b{display:block;font-family:var(--disp)}
.ag-mine-row span{font-size:.82rem;color:var(--muted)}
.ag-mine-act{margin-left:auto;display:flex;gap:6px}
.ag-feed{display:grid;gap:2px}
.ag-feed>div{display:flex;gap:10px;align-items:center;padding:9px 4px;border-bottom:1px dashed var(--line);font-size:.86rem}
.ag-feed>div>span:nth-child(2){flex:1}
.ag-feed small{font-family:var(--mono);font-size:.62rem;color:var(--muted);white-space:nowrap}
.ag-share{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}
.ag-code{display:flex;gap:12px;align-items:center;flex-wrap:wrap;background:var(--paper);border:1px dashed var(--marigold);border-radius:11px;padding:10px 14px;margin:6px 0 8px}
.ag-code>span:first-child{font-family:var(--mono);font-size:.62rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.ag-code b{font-size:1.1rem;color:var(--ink)}
.ag-embed{width:100%;min-height:80px;font-family:var(--mono);font-size:.72rem;border:1.5px solid var(--line);border-radius:9px;padding:10px;background:var(--paper)}
.ag-rules{list-style:none;display:grid;gap:9px}
.ag-rules li{position:relative;padding-left:22px;font-size:.88rem;line-height:1.5}
.ag-rules li::before{content:"✓";position:absolute;left:0;color:var(--teal);font-weight:800}
.ag-form{display:grid;grid-template-columns:1fr 1fr;gap:0 14px}
.ag-form .ag-full{grid-column:1/-1}
.ag-kv{display:grid;grid-template-columns:auto 1fr;gap:6px 14px;font-size:.84rem;margin-top:10px}
.ag-kv span{color:var(--muted)}
.ag-prod{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px}
.ag-prod>div{display:grid;grid-template-columns:auto 1fr;gap:2px 10px;align-items:center;border:1px solid var(--line);border-radius:11px;padding:11px 12px;background:#fff}
.ag-prod .em{grid-row:span 2;font-size:1.3rem}.ag-prod b{font-size:.86rem;line-height:1.25}.ag-prod small{font-family:var(--mono);font-size:.62rem;color:var(--muted)}
.pj-wrap{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:18px;align-items:start}
.pj-side{position:sticky;top:12px}
.pj-n{display:inline-grid;place-items:center;width:24px;height:24px;border-radius:50%;background:var(--ink);color:#fff;font-size:.78rem;margin-right:8px}
.pj-form{display:grid;grid-template-columns:1fr 1fr;gap:0 14px}
.pj-form .pj-full{grid-column:1/-1}
.pj-sug{background:#FFF8F1;border:1px dashed var(--marigold);border-radius:12px;padding:12px;margin-bottom:14px}
.pj-sug>b{display:block;font-size:.84rem;margin-bottom:8px}
.pj-sug>div{display:flex;flex-wrap:wrap;gap:6px}
.pj-chip{border:1.5px solid var(--line);background:#fff;border-radius:999px;padding:6px 12px;font:600 .78rem var(--body);cursor:pointer;color:var(--ink)}
.pj-chip.on{background:var(--teal);border-color:var(--teal);color:#fff}
.pj-sel{display:grid;gap:8px;max-height:330px;overflow:auto}
.pj-sel-row{border:1px solid var(--line);border-radius:10px;padding:9px 10px;font-size:.82rem;background:var(--paper)}
.pj-sel-row .top,.pj-sel-row .mid{display:flex;justify-content:space-between;gap:8px;align-items:center}
.pj-sel-row .mid{color:var(--muted);margin:3px 0 6px}
.pj-sel-row input{width:100%;box-sizing:border-box;border:1px solid var(--line);border-radius:7px;padding:6px 8px;font:inherit;font-size:.76rem;background:#fff}
.pj-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}
.pj-card{display:flex;flex-direction:column;gap:6px;text-align:left;background:#fff;border:1px solid var(--line);border-radius:14px;padding:14px;cursor:pointer;font-family:var(--body);color:var(--ink)}
.pj-card:hover{border-color:var(--marigold)}
.pj-card .top,.pj-card .bot{display:flex;justify-content:space-between;align-items:center}
.pj-card>b{font-family:var(--disp);font-size:1rem}
.pj-card .bot{font-size:.8rem;color:var(--muted);margin-top:4px}.pj-card .bot b{color:var(--ink);font-size:.95rem}
.pj-steps-mini{display:flex;gap:4px;margin-top:4px}
.pj-steps-mini i{flex:1;height:5px;border-radius:3px;background:var(--line)}
.pj-steps-mini i.on{background:var(--teal)}
.pj-track{display:flex;gap:4px;flex-wrap:wrap}
.pj-track span{flex:1;min-width:88px;text-align:center;font-family:var(--mono);font-size:.58rem;letter-spacing:.06em;text-transform:uppercase;padding:7px 4px;border-radius:8px;background:var(--paper);color:var(--muted);border:1px solid var(--line)}
.pj-track span.on{background:rgba(8,126,43,.08);color:var(--teal);border-color:rgba(8,126,43,.3)}
.pj-track span.cur{background:var(--teal);color:#fff;border-color:var(--teal)}
.pj-prop{border:2px solid var(--marigold)}
.pj-prop-amt{font-family:var(--disp);font-weight:800;font-size:1.7rem}
.pj-msgs{display:grid;gap:8px;margin-bottom:10px}
.pj-msg{max-width:80%;background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:9px 12px}
.pj-msg.me{justify-self:end;background:#EEF3FB;border-color:#CFDDF2}
.pj-msg small{font-family:var(--mono);font-size:.6rem;color:var(--muted)}
.pj-msg p{margin:3px 0 0;font-size:.86rem;line-height:1.45}
.pj-reply{display:flex;gap:8px;align-items:flex-end}
.pj-reply textarea{flex:1;min-height:56px;border:1.5px solid var(--line);border-radius:10px;padding:9px;font:inherit;font-size:.86rem}
@media(max-width:1000px){.pj-wrap{grid-template-columns:1fr}.pj-side{position:static}}
@media(max-width:560px){.pj-form{grid-template-columns:1fr}.pj-msg{max-width:92%}}
.fm-quota{margin-bottom:14px}.fm-qh{display:flex;align-items:baseline;gap:6px;flex-wrap:wrap}.fm-qh b{font-family:var(--disp);font-size:1.35rem}
.fm-bar{height:10px;background:var(--paper);border:1px solid var(--line);border-radius:999px;overflow:hidden;margin:10px 0 8px}.fm-bar.sm{height:6px;margin:6px 0 0}
.fm-bar i{display:block;height:100%;background:var(--teal);border-radius:999px;min-width:2px}.fm-bar i.mid{background:var(--marigold)}.fm-bar i.hi{background:#d43f3a}
.fm-card{position:relative}
.fm-tools{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:12px}
.fm-right{margin-left:auto;display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.fm-q{padding:8px 12px;border:1.5px solid var(--line);border-radius:10px;font:inherit;font-size:.86rem;min-width:200px}
.fm-sort{padding:8px 10px;border:1.5px solid var(--line);border-radius:10px;font:inherit;font-size:.84rem;background:#fff}
.fm-crumb{font-size:.88rem;margin:4px 0 10px}.fm-crumb a{color:var(--marigold-deep);cursor:pointer}
.fm-name{display:inline-flex;gap:8px;align-items:center;cursor:pointer;font-weight:600;color:var(--ink);overflow-wrap:break-word;word-break:normal}.fm-sheet{display:flex;flex-direction:column;gap:8px;margin-top:10px}.fm-sheet .btn{justify-content:flex-start}.fm-name:hover{color:var(--marigold-deep)}
.fm-ic{font-size:1.2rem;flex:none}
.fm-acts{white-space:nowrap;text-align:right}.fm-acts .btn{padding:5px 8px}
.fm-empty{padding:40px 10px}
@media(max-width:700px){.fm-right{margin-left:0;width:100%}.fm-q{flex:1;min-width:0}.fm-table th:nth-child(3),.fm-table td:nth-child(3),.fm-table th:nth-child(4),.fm-table td:nth-child(4){display:none}
  .fm-acts .btn:not(.fm-more){display:none}}
@media(max-width:900px){.ag-2{grid-template-columns:1fr}}
@media(max-width:560px){.ag-form{grid-template-columns:1fr}.ag-link{flex-direction:column}}

/* ---- search / filter bar and pager (every list screen) ---- */
.v3-filter{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin:0 0 12px}
.v3-filter input[type=search],.v3-filter input[type=text],.v3-filter input[type=date]{flex:1;min-width:180px;padding:9px 12px;border:1.5px solid var(--line);border-radius:10px;font:inherit;font-size:.86rem;background:#fff}
.v3-filter select{padding:9px 10px;border:1.5px solid var(--line);border-radius:10px;font:inherit;font-size:.84rem;background:#fff;max-width:100%}
.v3-chips{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:12px}
.v3-chips a{border:1px solid var(--line);background:#fff;border-radius:999px;padding:6px 12px;font-size:.78rem;font-weight:600;color:var(--ink);text-decoration:none}
.v3-chips a.on{background:var(--ink);color:#fff;border-color:var(--ink)}
.v3-chips a b{font-family:var(--mono);font-size:.68rem;margin-left:4px;opacity:.7}
.pager{display:flex;gap:6px;align-items:center;flex-wrap:wrap;margin-top:12px;font-size:.82rem}
.pager a,.pager span{min-width:34px;text-align:center;padding:6px 10px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--ink);text-decoration:none}
.pager span.cur{background:var(--ink);color:#fff;border-color:var(--ink)}
.pager .info{border:0;background:none;color:var(--muted);margin-left:auto}

/* ---- notification bell in the dashboard top bar ---- */
.ptop .who{gap:12px}
.bell{position:relative;display:inline-grid;place-items:center;width:38px;height:38px;border-radius:50%;border:1px solid var(--line);background:#fff;font-size:1.05rem;text-decoration:none;flex:none}
.bell b{position:absolute;top:-4px;right:-4px;min-width:18px;height:18px;padding:0 4px;border-radius:999px;background:var(--marigold);color:#fff;font:700 .62rem/18px var(--mono);text-align:center}
.notif-list{display:grid;gap:0}
.notif-list>a,.notif-list>div{display:flex;gap:12px;align-items:flex-start;padding:12px 6px;border-bottom:1px dashed var(--line);color:var(--ink);text-decoration:none}
.notif-list .unread{background:#FFF8F1}
.notif-list .t{flex:1;min-width:0}.notif-list b{display:block;font-size:.9rem}.notif-list p{margin:2px 0 0;font-size:.84rem;color:var(--muted);line-height:1.45}
.notif-list small{font-family:var(--mono);font-size:.62rem;color:var(--muted);white-space:nowrap}

/* ---- messaging ---- */
.chat-wrap{display:grid;grid-template-columns:300px minmax(0,1fr);gap:18px;align-items:start}
.thread-list{display:grid;gap:6px;max-height:70vh;overflow:auto}
.thread-list a{display:block;border:1px solid var(--line);border-radius:11px;padding:10px 12px;background:#fff;color:var(--ink);text-decoration:none}
.thread-list a.on{border-color:var(--teal);background:rgba(8,126,43,.05)}
.thread-list a b{display:block;font-size:.86rem}.thread-list a small{font-family:var(--mono);font-size:.6rem;color:var(--muted)}
.thread-list a .navbadge{float:right}
.pj-msgs{max-height:60vh;overflow:auto;padding:4px}
.pj-msg .att{display:inline-flex;gap:6px;align-items:center;margin-top:6px;font-size:.8rem;color:var(--marigold-deep)}
@media(max-width:900px){.chat-wrap{grid-template-columns:1fr}.thread-list{max-height:none}}

/* ---- reports ---- */
.rbars{display:grid;gap:8px}
.rbar{display:grid;grid-template-columns:120px minmax(0,1fr) 110px;gap:10px;align-items:center;font-size:.82rem}
.rbar i{display:block;height:12px;border-radius:999px;background:linear-gradient(90deg,var(--teal),var(--marigold));min-width:2px}
.rbar span:last-child{text-align:right;font-family:var(--mono);font-size:.74rem}
@media(max-width:560px){.rbar{grid-template-columns:80px minmax(0,1fr) 84px}}
.perm-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:6px 14px}
.audit-d{font-family:var(--mono);font-size:.7rem;color:var(--muted);word-break:break-word}
.right{text-align:right}
.pnav-group{display:block;font-family:var(--mono);font-size:.56rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted-ivory,#9aa3b5);opacity:.75;padding:12px 14px 4px}
/* grid children may shrink below their content,so wide tables scroll inside their card instead of widening the page */
.papp>.pmain,.ag-2>*,.pj-wrap>*,.pj-main,.chat-wrap>*,.pcard{min-width:0}
.tbl-wrap{max-width:100%;-webkit-overflow-scrolling:touch}
.ag-kv b{word-break:break-word;min-width:0}
