/* NovaFolio client portal — AbodyStudio Limited */
*{box-sizing:border-box;margin:0;padding:0}
:root{--bg:#08090f;--panel:#10131f;--line:rgba(130,145,255,.14);--txt:#e9ebf8;--mut:#8d93bb;--acc:#6c7bff;--acc2:#37e6c3;--ok:#2fd98c;--bad:#ff5d7a;--warn:#ffb84d}
body{font-family:Inter,system-ui,sans-serif;background:radial-gradient(900px 500px at 75% -10%,#171b3a,var(--bg));color:var(--txt);min-height:100vh;display:flex;flex-direction:column;font-size:.94rem;line-height:1.6}
body.rtl{font-family:'Cairo',Inter,sans-serif}
body.rtl h1,body.rtl h2,body.rtl .pt-logo,body.rtl .pt-btn{font-family:'Cairo',sans-serif}
a{color:var(--acc2);text-decoration:none}
h1{font-family:'Space Grotesk',sans-serif;font-size:1.6rem}
h2{font-family:'Space Grotesk',sans-serif;font-size:1rem;margin-bottom:14px}
.muted{color:var(--mut)}
.pt-wrap{width:100%;max-width:1080px;margin:0 auto;padding:22px 20px;flex:1}
.pt-header{border-bottom:1px solid var(--line);background:rgba(8,9,15,.7);backdrop-filter:blur(10px);position:sticky;top:0;z-index:10}
.pt-header-inner{display:flex;align-items:center;justify-content:space-between;padding:14px 20px}
.pt-header-right{display:flex;align-items:center;gap:16px}
.pt-logo{font-family:'Space Grotesk',sans-serif;font-weight:700;font-size:1.1rem}
.pt-logo span{color:var(--acc2)}
.pt-langs{display:flex;gap:2px;border:1px solid var(--line);border-radius:999px;padding:3px}
.pt-langs a{font-size:.66rem;font-weight:700;padding:4px 9px;border-radius:999px;color:var(--mut)}
.pt-langs a.active{background:var(--acc);color:#fff}
.pt-card{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:22px;margin-bottom:18px}
.pt-btn{display:inline-flex;align-items:center;gap:9px;padding:11px 22px;border-radius:11px;border:none;background:linear-gradient(90deg,var(--acc),#8e6cff);color:#fff;font-weight:600;font-size:.9rem;cursor:pointer;font-family:inherit}
.pt-btn:hover{box-shadow:0 8px 26px rgba(108,123,255,.35)}
.pt-btn-sm{padding:8px 14px;font-size:.8rem}
.pt-btn-ghost{background:transparent;border:1px solid var(--line);color:var(--mut)}
label{display:block;font-size:.78rem;font-weight:600;color:var(--mut);margin:14px 0 6px}
input,textarea{width:100%;padding:12px 14px;background:#0a0c16;border:1px solid var(--line);border-radius:10px;color:var(--txt);font:inherit;outline:none}
input:focus,textarea:focus{border-color:var(--acc)}
.pt-alert{padding:12px 16px;border-radius:10px;margin-bottom:14px;font-size:.88rem}
.pt-alert-success{background:rgba(47,217,140,.12);color:var(--ok);border:1px solid rgba(47,217,140,.3)}
.pt-alert-error{background:rgba(255,93,122,.12);color:var(--bad);border:1px solid rgba(255,93,122,.3)}
.pt-login{flex:1;display:flex;align-items:center;justify-content:center;padding:30px 16px}
.pt-login-card{width:100%;max-width:400px;text-align:center}
.pt-login-card form{text-align:start}
.pt-login-card .pt-btn{width:100%;justify-content:center;margin-top:20px}
.pt-login-card .pt-langs{justify-content:center;margin:18px auto 8px;width:max-content}
.pt-back{display:inline-block;margin-bottom:14px;color:var(--mut);font-size:.85rem}
.pt-projects{display:grid;grid-template-columns:repeat(2,1fr);gap:18px;margin-top:20px}
.pt-project-card{display:block;color:var(--txt);transition:border-color .25s,transform .2s}
.pt-project-card:hover{border-color:var(--acc);transform:translateY(-3px)}
.pt-project-card-top{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}
.pt-project-card-meta{display:flex;justify-content:space-between;color:var(--mut);font-size:.78rem;margin-top:10px}
.pt-pill{display:inline-block;padding:4px 12px;border-radius:999px;font-size:.68rem;font-weight:700;white-space:nowrap}
.pt-st-planned{background:rgba(255,184,77,.15);color:var(--warn)}
.pt-st-in_progress{background:rgba(108,123,255,.18);color:#aab4ff}
.pt-st-review{background:rgba(255,184,77,.15);color:var(--warn)}
.pt-st-completed{background:rgba(47,217,140,.15);color:var(--ok)}
.pt-st-on_hold{background:rgba(255,93,122,.15);color:var(--bad)}
.pt-progress{height:9px;border-radius:999px;background:rgba(255,255,255,.07);overflow:hidden}
.pt-progress i{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,var(--acc),var(--acc2))}
.pt-progress-big{display:flex;align-items:center;gap:14px}
.pt-progress-big span{font-family:'Space Grotesk',sans-serif;font-weight:700;font-size:1.3rem;color:var(--acc2)}
.pt-progress-big .pt-progress{flex:1}
.pt-project-head{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-bottom:8px}
.pt-grid-meta{display:grid;grid-template-columns:2fr 1fr;gap:18px;margin:20px 0}
.pt-meta-label{font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--mut);margin-bottom:10px}
.pt-cols{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.pt-task{display:flex;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid rgba(255,255,255,.05)}
.pt-task i{color:var(--mut)}
.pt-task-done i{color:var(--ok)}
.pt-task-doing i{color:var(--acc2)}
.pt-task-done span{text-decoration:line-through;color:var(--mut)}
.pt-task em{margin-inline-start:auto;color:var(--mut);font-size:.74rem;font-style:normal}
.pt-task span{flex:1}
.pt-file{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid rgba(255,255,255,.05);flex-wrap:wrap}
.pt-file em{color:var(--mut);font-size:.74rem;font-style:normal}
.pt-upload{display:flex;gap:10px;margin-top:16px;align-items:center}
.pt-upload input[type=file]{padding:9px}
.pt-chat-scroll{max-height:420px;overflow-y:auto;margin-bottom:14px;padding-inline-end:6px}
.pt-msg{border:1px solid var(--line);border-radius:13px;padding:12px 15px;margin-bottom:10px;background:rgba(255,255,255,.02);max-width:92%}
.pt-msg.mine{border-color:rgba(55,230,195,.3);background:rgba(55,230,195,.05);margin-inline-start:auto}
.pt-msg .who{font-size:.72rem;color:var(--mut);margin-bottom:5px}
.pt-chat textarea{margin-bottom:10px}
.pt-footer{text-align:center;color:var(--mut);font-size:.76rem;padding:20px;border-top:1px solid var(--line)}
.captcha-box{margin:18px 0;padding:14px;border:1px dashed var(--line);border-radius:10px;font-size:.88rem}
.captcha-box input{max-width:90px;margin-inline-start:8px}
@media(max-width:820px){.pt-projects,.pt-cols,.pt-grid-meta{grid-template-columns:1fr}}

/* ===== portal v2 ===== */
.pt-nav{border-bottom:1px solid var(--line);background:rgba(8,9,15,.5);backdrop-filter:blur(8px)}
.pt-nav-inner{display:flex;gap:6px;padding:0 20px;overflow-x:auto}
.pt-nav a{padding:13px 16px;color:var(--mut);font-size:.86rem;font-weight:600;border-bottom:2px solid transparent;white-space:nowrap;display:flex;align-items:center;gap:8px}
.pt-nav a:hover{color:var(--txt)}
.pt-nav a.active{color:var(--acc2);border-bottom-color:var(--acc2)}
.pt-scheme{background:transparent;border:1px solid var(--line);color:var(--mut);width:34px;height:34px;border-radius:50%;cursor:pointer;transition:.25s}
.pt-scheme:hover{color:var(--acc2);border-color:var(--acc2)}
.pt-bell{position:relative;width:34px;height:34px;border:1px solid var(--line);border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--mut)}
.pt-bell:hover{color:var(--acc2);border-color:var(--acc2)}
.pt-badge{position:absolute;top:-6px;inset-inline-end:-6px;background:var(--bad);color:#fff;font-size:.62rem;font-weight:700;border-radius:999px;padding:2px 6px}
.pt-deliv{border:1px solid var(--line);border-radius:13px;padding:14px 16px;margin-bottom:12px;background:rgba(255,255,255,.02)}
.pt-deliv-top{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.pt-deliv-review{margin-top:12px}
.pt-deliv-review textarea{margin-top:4px}
.pt-inv-table{width:100%;border-collapse:collapse;font-size:.9rem}
.pt-inv-table th{text-align:start;color:var(--mut);font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;padding:9px 8px;border-bottom:1px solid var(--line)}
.pt-inv-table td{padding:11px 8px;border-bottom:1px solid rgba(255,255,255,.05)}
.pt-inv-tot td{color:var(--mut)}
.pt-inv-grand td{font-weight:700;font-size:1.05rem;color:var(--acc2);border-bottom:none}
.pt-notif{display:flex;gap:14px;align-items:flex-start;padding:13px 4px;border-bottom:1px solid rgba(255,255,255,.05)}
.pt-notif i{color:var(--acc2);margin-top:3px}
.pt-request label{margin-top:12px}
select{font:inherit}
.pt-hide-sm{}
@media(max-width:640px){.pt-hide-sm{display:none}}

/* ===== light scheme ===== */
html.pt-light body{--bg:#f3f4fa;--panel:#ffffff;--line:rgba(40,50,120,.13);--txt:#181a28;--mut:#5d6280;background:radial-gradient(900px 500px at 75% -10%,#e6e9ff,#f3f4fa);}
html.pt-light .pt-header,html.pt-light .pt-nav{background:rgba(243,244,250,.8)}
html.pt-light input,html.pt-light textarea,html.pt-light select{background:#fff;color:#181a28}
html.pt-light .pt-msg{background:#f7f8fd}
html.pt-light .pt-msg.mine{background:rgba(35,180,150,.06)}
html.pt-light .pt-deliv{background:#f9fafd}
