/* =============================================================
   NS ENTERPRISE V7 — SHARED DESIGN SYSTEM
   Local, framework-safe UI layer for all public/admin/member views.
   ============================================================= */
:root{
  --ns7-navy-950:#030a14;--ns7-navy-900:#061426;--ns7-navy-850:#081b32;--ns7-navy-800:#0a2340;
  --ns7-blue-700:#1657ca;--ns7-blue-600:#1e6ce8;--ns7-blue-500:#2e82ff;--ns7-cyan:#16c6f4;
  --ns7-gold:#f5a524;--ns7-gold-2:#ffd166;--ns7-green:#18a873;--ns7-red:#dc4560;--ns7-purple:#7868ff;
  --ns7-ink:#10233c;--ns7-muted:#667a92;--ns7-bg:#f2f7fc;--ns7-bg-2:#eaf3fb;--ns7-surface:#ffffff;
  --ns7-line:#dbe7f2;--ns7-line-strong:#c6d8e9;--ns7-shadow-sm:0 8px 24px rgba(19,55,94,.08);
  --ns7-shadow:0 22px 70px rgba(13,46,84,.13);--ns7-shadow-dark:0 24px 80px rgba(0,0,0,.30);
  --ns7-radius-sm:12px;--ns7-radius:18px;--ns7-radius-lg:26px;--ns7-radius-xl:34px;
  --ns7-font:Inter,Manrope,"Segoe UI",Roboto,Arial,sans-serif;
}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{font-family:var(--ns7-font);text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}img{max-width:100%;height:auto}a{text-decoration:none}button,input,select,textarea{font:inherit}
::selection{background:rgba(46,130,255,.24);color:inherit}.text-muted{color:var(--ns7-muted)!important}.small,small{line-height:1.5}.place-items-center{place-items:center}.fw-black{font-weight:950}.min-w-0{min-width:0}.object-fit-cover{object-fit:cover}
/* Common panels used by legacy and V6/V7 views */
.panel,.ns-panel,.member-panel,.card{background:var(--ns7-surface);border:1px solid var(--ns7-line);border-radius:var(--ns7-radius-lg);box-shadow:var(--ns7-shadow-sm);overflow:hidden;color:var(--ns7-ink)}
.panel-header,.panel-head{padding:20px 22px;border-bottom:1px solid var(--ns7-line);background:linear-gradient(180deg,#fff,rgba(247,251,255,.82));display:flex;align-items:center;justify-content:space-between;gap:14px}.panel-header h5,.panel-head h3,.panel-title{font-weight:900;letter-spacing:-.02em}.panel-body{padding:22px}.panel>.table-responsive{border-radius:inherit}.panel a:not(.btn){color:var(--ns7-blue-600);font-weight:750}.panel a:not(.btn):hover{color:var(--ns7-cyan)}
.metric-card,.admin-kpi{position:relative;border:1px solid var(--ns7-line);border-radius:22px;background:linear-gradient(145deg,#fff,#f7fbff);box-shadow:var(--ns7-shadow-sm);overflow:hidden;transition:transform .24s ease,box-shadow .24s ease}.metric-card:before,.admin-kpi:before{content:"";position:absolute;inset:0 auto 0 0;width:4px;background:linear-gradient(180deg,var(--ns7-blue-500),var(--ns7-cyan),var(--ns7-gold))}.metric-card:hover,.admin-kpi:hover{transform:translateY(-4px);box-shadow:var(--ns7-shadow)}.metric-icon,.admin-kpi .icon{display:grid;place-items:center;width:48px;height:48px;border-radius:15px;background:linear-gradient(135deg,rgba(46,130,255,.13),rgba(22,198,244,.16));color:var(--ns7-blue-600);font-size:20px}.metric-value{font-size:2rem;font-weight:950;letter-spacing:-.05em}
.btn{border-radius:12px;font-weight:800;min-height:42px;display:inline-flex;align-items:center;justify-content:center;gap:7px}.btn-sm{min-height:34px;border-radius:10px}.btn-ns,.button{border:0;color:#fff!important;background:linear-gradient(135deg,var(--ns7-blue-700),var(--ns7-blue-500) 56%,var(--ns7-cyan));box-shadow:0 12px 28px rgba(30,108,232,.22);transition:.2s}.btn-ns:hover,.button:hover{transform:translateY(-2px);filter:saturate(1.15);box-shadow:0 17px 36px rgba(30,108,232,.28)}.btn-outline-primary{border-color:#b9d5f5;color:var(--ns7-blue-700)}.btn-outline-primary:hover{background:var(--ns7-blue-600);border-color:var(--ns7-blue-600)}.btn-outline-secondary{border-color:var(--ns7-line-strong);color:#4b6179}.btn-danger,.btn-outline-danger:hover{background:var(--ns7-red);border-color:var(--ns7-red)}
.form-label,label>span{font-size:.77rem;font-weight:850;color:#465d77;letter-spacing:.035em}.form-control,.form-select,input,select,textarea{border:1px solid var(--ns7-line-strong);border-radius:13px;min-height:46px;background:#fff;color:var(--ns7-ink);box-shadow:0 1px 0 rgba(12,37,67,.02);transition:border-color .2s,box-shadow .2s,background .2s}.form-control,.form-select{padding:.72rem .9rem}.form-control:focus,.form-select:focus,input:focus,select:focus,textarea:focus{outline:0;border-color:var(--ns7-blue-500);box-shadow:0 0 0 .23rem rgba(46,130,255,.12)}textarea.form-control,textarea{min-height:110px}.form-check-input:checked{background-color:var(--ns7-blue-600);border-color:var(--ns7-blue-600)}.input-group-text{border-color:var(--ns7-line-strong);background:#f6f9fd;border-radius:13px}.readonly-note,.locked-id,.client-id-chip,.code-chip{display:inline-flex;align-items:center;gap:5px;padding:5px 9px;border-radius:9px;background:#e9f8f4;color:#0d775e;font:800 .7rem ui-monospace,SFMono-Regular,Consolas,monospace}.form-hint{font-size:.72rem;color:var(--ns7-muted)}
.table{--bs-table-bg:transparent;color:var(--ns7-ink);margin-bottom:0}.table-ns thead th,.ns-table thead th,.table thead th{padding:13px 16px;border-color:var(--ns7-line);background:#f5f9fd;color:#63778e;font-size:.67rem;text-transform:uppercase;letter-spacing:.11em;font-weight:900;white-space:nowrap}.table-ns td,.ns-table td,.table td{padding:14px 16px;border-color:var(--ns7-line);vertical-align:middle}.table tbody tr{transition:background .16s}.table tbody tr:hover{background:rgba(46,130,255,.035)}
.status-badge,.ns-status,.member-status{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border-radius:999px;background:#eaf2ff;color:#1a5ebd;font-size:.69rem;font-weight:850;text-transform:capitalize;white-space:nowrap}.status-badge:before,.ns-status:before,.member-status:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}.status-badge.active,.status-badge.live,.status-badge.completed,.status-badge.approved,.status-badge.paid,.status-badge.success{background:#e6f8f1;color:#0b7d5b}.status-badge.pending,.status-badge.warning,.status-badge.waiting_client,.status-badge.proposal,.status-badge.draft{background:#fff3dc;color:#98620b}.status-badge.inactive,.status-badge.rejected,.status-badge.cancelled,.status-badge.failed,.status-badge.locked{background:#fde9ed;color:#b02d48}
.progress{height:8px;border-radius:999px;background:#e7eef6;overflow:hidden}.progress-bar{border-radius:inherit;background:linear-gradient(90deg,var(--ns7-blue-600),var(--ns7-cyan))}
.alert,.ns-alert,.member-alert{border:0;border-radius:16px;padding:14px 16px}.alert-info{background:#e8f5ff;color:#155b91}.alert-success{background:#e4f8ef;color:#0f704f}.alert-warning{background:#fff3db;color:#8d5a08}.alert-danger{background:#fde7ec;color:#a52c45}
.list-group-item{border-color:var(--ns7-line);padding:15px 18px;background:transparent;color:var(--ns7-ink)}.dropdown-menu{border:1px solid var(--ns7-line);border-radius:16px;box-shadow:var(--ns7-shadow);padding:8px}.dropdown-item{border-radius:10px;padding:9px 12px;font-weight:650}.badge{border-radius:9px;padding:.45em .65em}
/* Universal premium page helpers */
.ns7-page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:22px}.ns7-page-head h2{font-size:clamp(1.45rem,2vw,2rem);font-weight:950;letter-spacing:-.04em;margin:.25rem 0}.ns7-page-head p{margin:0;color:var(--ns7-muted);max-width:720px}.ns7-eyebrow{display:inline-flex;align-items:center;gap:7px;color:var(--ns7-blue-600);font-size:.68rem;font-weight:900;text-transform:uppercase;letter-spacing:.16em}.ns7-eyebrow:before{content:"";width:21px;height:2px;border-radius:99px;background:linear-gradient(90deg,var(--ns7-blue-500),var(--ns7-cyan))}.ns7-actions{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.ns7-grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.ns7-grid-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.ns7-grid-4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.ns7-empty{text-align:center;padding:50px 22px;color:var(--ns7-muted)}.ns7-empty i{font-size:2.6rem;color:var(--ns7-blue-500)}
.ns7-glass{background:rgba(255,255,255,.77);backdrop-filter:blur(22px);border:1px solid rgba(255,255,255,.72);box-shadow:var(--ns7-shadow)}.ns7-hero-panel{position:relative;overflow:hidden;border-radius:30px;padding:28px;color:#fff;background:linear-gradient(125deg,var(--ns7-navy-900),#0b3a72 56%,#0a7ec0);box-shadow:0 24px 70px rgba(5,42,88,.28)}.ns7-hero-panel:before{content:"";position:absolute;width:350px;height:350px;right:-150px;top:-210px;border:55px solid rgba(255,255,255,.07);border-radius:50%}.ns7-hero-panel:after{content:"";position:absolute;inset:auto auto -110px -80px;width:260px;height:260px;border-radius:50%;background:radial-gradient(circle,rgba(22,198,244,.28),transparent 68%)}.ns7-hero-panel>*{position:relative;z-index:1}
.ns7-chip{display:inline-flex;align-items:center;gap:7px;padding:7px 11px;border-radius:999px;border:1px solid var(--ns7-line);background:#f7fbff;color:#536b84;font-size:.7rem;font-weight:800}.ns7-icon-box{width:46px;height:46px;display:grid;place-items:center;border-radius:15px;background:linear-gradient(135deg,#e8f1ff,#e7fbff);color:var(--ns7-blue-600);font-size:20px}.ns7-separator{height:1px;background:var(--ns7-line);margin:18px 0}
/* Mobile table cards */
@media(max-width:760px){.table-responsive{overflow:visible}.table-ns.mobile-cards thead,.ns-table.mobile-cards thead{display:none}.table-ns.mobile-cards,.table-ns.mobile-cards tbody,.table-ns.mobile-cards tr,.table-ns.mobile-cards td,.ns-table.mobile-cards,.ns-table.mobile-cards tbody,.ns-table.mobile-cards tr,.ns-table.mobile-cards td{display:block;width:100%}.table-ns.mobile-cards tr,.ns-table.mobile-cards tr{border:1px solid var(--ns7-line);border-radius:16px;margin-bottom:12px;padding:9px;background:#fff;box-shadow:var(--ns7-shadow-sm)}.table-ns.mobile-cards td,.ns-table.mobile-cards td{border:0;padding:7px 8px}.ns7-grid-4{grid-template-columns:repeat(2,1fr)}.ns7-grid-3,.ns7-grid-2{grid-template-columns:1fr}.ns7-page-head{align-items:flex-start;flex-direction:column}.ns7-actions{width:100%}.ns7-actions .btn{flex:1}}
@media(max-width:480px){.ns7-grid-4{grid-template-columns:1fr}.panel-body{padding:17px}.panel-header,.panel-head{padding:16px 17px}.panel,.ns-panel,.member-panel,.card{border-radius:18px}.btn{min-height:44px}.form-control,.form-select,input,select{font-size:16px}}
/* Automatic responsive conversion for all legacy portal tables */
@media(max-width:680px){
  .table-responsive{overflow:visible!important}
  .table-ns thead,.ns-table thead{display:none}
  .table-ns,.table-ns tbody,.table-ns tr,.table-ns td,.ns-table,.ns-table tbody,.ns-table tr,.ns-table td{display:block;width:100%}
  .table-ns tr,.ns-table tr{border:1px solid var(--ns7-line);border-radius:16px;margin:0 0 12px;padding:9px;background:var(--ns7-surface);box-shadow:var(--ns7-shadow-sm)}
  .table-ns td,.ns-table td{border:0!important;padding:7px 8px!important;text-align:left!important}
  .table-ns td:before,.ns-table td:before{content:attr(data-label);display:block;margin-bottom:2px;color:var(--ns7-muted);font-size:.58rem;font-weight:900;letter-spacing:.09em;text-transform:uppercase}
}
/* NS Copilot floating assistant */
.portal-ai-launch{position:fixed;right:20px;bottom:20px;z-index:1800;border:0;border-radius:16px;padding:13px 17px;background:linear-gradient(135deg,#246ee8,#725cff 58%,#16c6f4);color:#fff;font-weight:900;box-shadow:0 18px 45px rgba(48,75,180,.32);display:flex;align-items:center;gap:9px}.portal-ai-launch:hover{transform:translateY(-2px)}.portal-ai-panel{position:fixed;right:20px;bottom:82px;z-index:1800;width:min(390px,calc(100vw - 28px));height:min(590px,calc(100vh - 110px));background:var(--ns7-surface);color:var(--ns7-ink);border:1px solid var(--ns7-line);border-radius:23px;box-shadow:0 30px 100px rgba(4,12,24,.28);overflow:hidden;display:grid;grid-template-rows:auto 1fr auto auto}.portal-ai-panel[hidden]{display:none}.portal-ai-panel header{padding:16px 18px;background:linear-gradient(135deg,#07111f,#12467b);color:#fff;display:flex;justify-content:space-between;align-items:center}.portal-ai-panel header div{display:grid}.portal-ai-panel header small{color:#afd0e8}.portal-ai-panel header button{border:0;background:rgba(255,255,255,.1);color:#fff;width:34px;height:34px;border-radius:10px;font-size:22px}.portal-ai-log{padding:16px;overflow:auto;background:var(--ns7-bg)}.portal-ai-message{max-width:88%;padding:11px 13px;border-radius:14px;margin-bottom:10px;font-size:13px;white-space:pre-wrap}.portal-ai-message.bot{background:var(--ns7-surface);border:1px solid var(--ns7-line)}.portal-ai-message.user{margin-left:auto;background:linear-gradient(135deg,#246ee8,#725cff);color:#fff}.portal-ai-prompts{display:flex;gap:7px;overflow:auto;padding:10px 12px;border-top:1px solid var(--ns7-line)}.portal-ai-prompts button{white-space:nowrap;border:1px solid var(--ns7-line);background:var(--ns7-surface);color:var(--ns7-ink);border-radius:10px;padding:7px 10px;font-size:11px}.portal-ai-panel form{display:flex;gap:8px;padding:10px;border-top:1px solid var(--ns7-line)}.portal-ai-panel input{flex:1;border:1px solid var(--ns7-line-strong);border-radius:12px;padding:10px 12px;outline:none;background:var(--ns7-surface);color:var(--ns7-ink)}.portal-ai-panel form button{width:43px;border:0;border-radius:12px;background:#286fe7;color:#fff}@media(max-width:575px){.portal-ai-launch{right:14px;bottom:14px}.portal-ai-launch span{display:none}.portal-ai-panel{right:14px;bottom:72px}}
/* Smart searchable select results */
.smart-select-wrap{position:relative}.smart-select-results{position:absolute;left:0;right:0;top:100%;z-index:1500;padding:7px;margin-top:5px;border:1px solid var(--ns7-line);border-radius:14px;background:var(--ns7-surface);box-shadow:var(--ns7-shadow);max-height:260px;overflow:auto}.smart-select-results button{display:block;width:100%;border:0;background:transparent;color:var(--ns7-ink);padding:9px 10px;border-radius:9px;text-align:left}.smart-select-results button:hover{background:var(--ns7-bg);color:var(--ns7-blue-600)}
