/* BSG365 V15.1 platform extensions */
:root{--v15-purple:#6d5dfc;--v15-purple-soft:#f1efff;--v15-border:#e9e7f4;--v15-ink:#242238;--v15-muted:#77758a;--v15-success:#159b73;--v15-danger:#d84f68;--v15-warn:#d49325}
.bsg-v15 .sidebar-scroll{overflow:auto;padding-bottom:24px}.bsg-v15 .side-navigation{gap:3px}.bsg-v15 .side-link{min-height:40px}.bsg-v15 .page-content{padding-bottom:64px}
.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:18px 0}.metric-card{background:#fff;border:1px solid var(--v15-border);border-radius:18px;padding:18px;box-shadow:0 6px 20px rgba(56,47,120,.05)}.metric-card span,.metric-card small{display:block;color:var(--v15-muted)}.metric-card strong{display:block;font-size:1.8rem;margin:7px 0;color:var(--v15-ink)}
.active-timer{display:flex;align-items:center;justify-content:space-between;gap:16px;border-left:4px solid var(--v15-success)}.active-timer>div{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.pulse-dot{width:10px;height:10px;border-radius:99px;background:var(--v15-success);box-shadow:0 0 0 0 rgba(21,155,115,.35);animation:pulse 1.8s infinite}@keyframes pulse{70%{box-shadow:0 0 0 10px rgba(21,155,115,0)}100%{box-shadow:0 0 0 0 rgba(21,155,115,0)}}
.goal-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.goal-card-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.goal-card-head>strong{font-size:1.6rem}.progress-track{height:10px;background:#efedf7;border-radius:99px;overflow:hidden;margin:18px 0}.progress-track span{display:block;height:100%;background:linear-gradient(90deg,#6d5dfc,#9f91ff);border-radius:inherit}.success-pill{background:#e7f8f2!important;color:#087552!important}
.permission-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:12px 0}.check-card{display:flex!important;align-items:flex-start;gap:10px;border:1px solid var(--v15-border);padding:10px 12px;border-radius:12px;background:#fbfaff}.check-card input{width:auto;margin-top:3px}.check-card span{display:flex;flex-direction:column}.check-card small{color:var(--v15-muted)}.role-row{display:grid;grid-template-columns:minmax(160px,1fr) minmax(140px,1fr) auto;gap:10px;align-items:center;padding:10px 0;border-bottom:1px solid var(--v15-border)}.role-row>div{display:flex;flex-direction:column}.role-row small{color:var(--v15-muted)}
.steps-list{display:grid;gap:14px}.steps-list>div{display:flex;align-items:center;gap:12px}.steps-list b{display:grid;place-items:center;width:34px;height:34px;border-radius:12px;background:var(--v15-purple-soft);color:var(--v15-purple)}.template-launch{display:grid;grid-template-columns:minmax(160px,1fr) 1fr auto 1fr auto;gap:8px;align-items:center;padding:12px 0;border-bottom:1px solid var(--v15-border)}.template-launch>div{display:flex;flex-direction:column}.compact-check{display:flex!important;gap:6px;align-items:center;white-space:nowrap}.compact-check input{width:auto}
.workload-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.workload-card{position:relative;overflow:hidden}.workload-card:before{content:"";position:absolute;inset:0 auto 0 0;width:4px;background:#63b591}.workload-card.medium:before{background:#e4ae49}.workload-card.heavy:before{background:#d85f72}.workload-head{display:flex;align-items:center;gap:12px}.workload-head>div:nth-child(2){flex:1}.workload-head h2{margin:0}.workload-head small{color:var(--v15-muted)}.avatar{width:42px;height:42px;border-radius:13px;background:var(--v15-purple-soft);color:var(--v15-purple);display:grid;place-items:center;font-weight:800}.load-badge{font-size:.75rem;text-transform:uppercase;background:#f4f2f9;padding:5px 8px;border-radius:99px}.workload-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:18px}.workload-stats div{background:#faf9fd;border-radius:12px;padding:10px;text-align:center}.workload-stats strong,.workload-stats span{display:block}.workload-stats span{font-size:.72rem;color:var(--v15-muted);margin-top:4px}
.bar-chart{display:grid;gap:12px}.bar-chart>div{display:grid;grid-template-columns:120px 1fr 38px;gap:10px;align-items:center}.bar-chart i{height:10px;background:#efedf7;border-radius:99px;overflow:hidden}.bar-chart b{display:block;height:100%;background:linear-gradient(90deg,#6d5dfc,#9d90ff);border-radius:inherit}.insight-callout{border-left:4px solid var(--v15-purple)}
.ai-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:18px}.ai-chat{padding:0!important;overflow:hidden}.ai-messages{min-height:420px;max-height:62vh;overflow:auto;padding:20px;display:grid;gap:14px}.ai-message{max-width:82%;padding:14px 16px;border-radius:16px;background:#f5f3fb}.ai-message.user{margin-left:auto;background:var(--v15-purple);color:#fff}.ai-message.assistant{margin-right:auto}.ai-message strong,.ai-message small{display:block;margin-bottom:6px}.ai-message small{opacity:.65;margin:8px 0 0}.ai-empty{text-align:center;padding:70px 20px;color:var(--v15-muted)}.ai-empty>span{font-size:2.2rem;color:var(--v15-purple)}.ai-composer{border-top:1px solid var(--v15-border);padding:14px;background:#fff}.ai-composer textarea{resize:vertical}.prompt-list{display:grid;gap:8px}.prompt-list button{background:#f7f5ff;color:#4f46c7;border:1px solid #e6e1ff;text-align:left}.secret-banner{border:1px solid #eadca5;background:#fffaf0}.secret-banner input{margin-top:10px;font-family:monospace}.attachment-list{display:grid;gap:8px}.attachment-list a{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border:1px solid var(--v15-border);border-radius:12px;text-decoration:none;background:#fbfaff}.attachment-list small{color:var(--v15-muted)}.upload-form{display:flex;align-items:center;gap:10px;margin-top:10px}.upload-form input{flex:1}.task-time-box{display:flex;align-items:center;justify-content:space-between;gap:14px}.external-comment{border-left:3px solid #47a9c6!important}
.public-intake,.client-portal{background:linear-gradient(180deg,#f7f5ff,#fff);min-height:100vh}.public-shell,.portal-shell{width:min(940px,calc(100% - 32px));margin:0 auto;padding:30px 0}.public-brand{display:flex;align-items:center;gap:10px;margin-bottom:28px}.public-brand small{margin-left:auto;color:var(--v15-muted)}.public-form-card{max-width:700px;margin:0 auto}.success-state{text-align:center;padding:40px 20px}.success-state>span{display:grid;place-items:center;width:58px;height:58px;border-radius:99px;background:#e7f8f2;color:#087552;font-size:1.7rem;margin:0 auto 12px}.portal-header{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:12px 0 24px}.portal-header>div{display:flex;align-items:center;gap:10px}.portal-header>div:last-child{flex-direction:column;align-items:flex-end}.portal-hero{padding:24px 0}.project-chips{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:18px}.project-chips span{padding:8px 12px;border-radius:99px;background:#ece8ff;color:#5145cf}.portal-task-list{display:grid;gap:16px}.portal-task-head{display:flex;justify-content:space-between;gap:14px}.task-meta{display:flex;gap:18px;color:var(--v15-muted);font-size:.9rem}.client-comment{margin-top:10px;padding:10px 12px;border-radius:12px;background:#f7f5fb}.client-comment p{margin:4px 0}.client-comment small{color:var(--v15-muted)}.portal-comment{margin-top:12px}.portal-comment textarea{resize:vertical}
.kanban-card[draggable="true"]{cursor:grab}.kanban-card.dragging{opacity:.45}.kanban-col.drag-over{outline:2px dashed var(--v15-purple);outline-offset:-4px;background:#f8f6ff}
.pwa-install-button{position:fixed;right:18px;bottom:18px;z-index:9999;border:0;border-radius:999px;padding:12px 18px;background:#1f1d2e;color:#fff;box-shadow:0 10px 30px rgba(30,28,55,.22);font-weight:700;cursor:pointer}
@media(max-width:1100px){.metric-grid,.goal-cards,.workload-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.ai-layout{grid-template-columns:1fr}.template-launch{grid-template-columns:1fr 1fr}.template-launch>div{grid-column:1/-1}}
@media(max-width:760px){.metric-grid,.goal-cards,.workload-grid,.permission-grid{grid-template-columns:1fr}.active-timer,.task-time-box,.portal-header,.portal-task-head{align-items:flex-start;flex-direction:column}.role-row{grid-template-columns:1fr}.workload-stats{grid-template-columns:repeat(2,1fr)}.bar-chart>div{grid-template-columns:90px 1fr 32px}.ai-message{max-width:94%}.template-launch{grid-template-columns:1fr}.public-shell,.portal-shell{width:min(100% - 20px,940px);padding-top:15px}.upload-form{align-items:stretch;flex-direction:column}.pwa-install-button{left:14px;right:14px;bottom:12px;width:calc(100% - 28px)}.bsg-v15 .app-topbar{position:sticky;top:0;z-index:30}.bsg-v15 .page-content{padding-left:14px;padding-right:14px}}
.template-admin-row{border-bottom:1px solid var(--v15-border);padding:4px 0 10px}.template-admin-row .template-launch{border-bottom:0}.role-editor-list{display:grid;gap:10px}.role-editor-list details{border:1px solid var(--v15-border);border-radius:14px;padding:12px;background:#fbfaff}.role-editor-list summary{display:flex;justify-content:space-between;cursor:pointer}.role-editor-list details form{margin-top:14px}.hp-field{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important}

/* V15.1 pricing feature visibility */
.pricing-card .plan-features{display:grid;gap:6px;margin:14px 0 18px;padding-top:12px;border-top:1px solid rgba(120,110,180,.14)}
.pricing-card .plan-features strong{margin-bottom:2px}
.pricing-card .plan-features span{font-size:.9rem;color:var(--muted,#6b7280)}

/* V15.1.1 — iPhone / iPad PWA installation guidance */
.pwa-install-button{display:flex;align-items:center;justify-content:center;gap:8px;bottom:calc(18px + env(safe-area-inset-bottom));font:inherit}
.ios-install-backdrop{position:fixed;inset:0;z-index:10050;display:flex;align-items:flex-end;justify-content:center;padding:20px;background:rgba(18,16,34,.42);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
.ios-install-sheet{width:min(100%,520px);max-height:min(88vh,720px);overflow:auto;background:#fff;color:#211f31;border-radius:28px 28px 22px 22px;padding:12px 22px calc(22px + env(safe-area-inset-bottom));box-shadow:0 -20px 60px rgba(31,29,46,.25);text-align:right;direction:rtl}
.ios-install-handle{width:42px;height:5px;border-radius:99px;background:#d7d4e5;margin:2px auto 16px}
.ios-install-icon{width:58px;height:58px;border-radius:17px;display:grid;place-items:center;margin:0 auto 12px;background:linear-gradient(145deg,#7867ff,#5e4fe8);color:#fff;font-size:26px;box-shadow:0 10px 24px rgba(109,93,252,.26)}
.ios-install-sheet h2{margin:0;text-align:center;font-size:1.35rem}.ios-install-lead{margin:7px 0 18px;text-align:center;color:#706d81}
.ios-install-warning{padding:12px 14px;margin:0 0 14px;border-radius:14px;background:#fff5d9;color:#6f5311;border:1px solid #f5df9d}
.ios-install-steps{list-style:none;padding:0;margin:0;display:grid;gap:10px}.ios-install-steps li{display:grid;grid-template-columns:34px 1fr;gap:10px;align-items:center;padding:11px 12px;border:1px solid #eceaf4;border-radius:14px;background:#faf9ff}
.ios-step-number{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:#6d5dfc;color:#fff;font-weight:800;direction:ltr}.ios-install-steps strong{color:#342d72}
.ios-install-actions{display:flex;gap:10px;justify-content:flex-start;margin-top:18px}.ios-install-actions .btn{min-width:110px}.ios-install-note{margin:14px 2px 0;color:#7a778a;font-size:.88rem;line-height:1.55}
.pwa-standalone .app-footer{padding-bottom:max(12px,env(safe-area-inset-bottom))}
@media(max-width:760px){.pwa-install-button{bottom:calc(12px + env(safe-area-inset-bottom));left:14px;right:14px;width:calc(100% - 28px)}.ios-install-backdrop{padding:0}.ios-install-sheet{width:100%;border-radius:28px 28px 0 0;padding-left:18px;padding-right:18px}.ios-install-actions{flex-direction:column}.ios-install-actions .btn{width:100%}}

/* BSG365 V16 — SaaS administration, accessible forms, responsive reports */
.v16-support-banner{position:sticky;top:0;z-index:100;display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:12px 16px;border:2px solid #e8bc63;background:#fff8e4;color:#6b4c0d;border-radius:13px;margin-bottom:18px}
.v16-support-banner strong{white-space:nowrap}.v16-support-banner span{flex:1;font-size:.87rem}.v16-support-banner form{margin:0}.v16-support-banner button{background:#6a3d08;color:#fff}
.v16-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:18px 0 25px}.v16-metric{border:1px solid #e9e5f1;border-radius:16px;background:#fff;padding:18px;min-width:0}.v16-metric small{display:block;color:#736f82}.v16-metric strong{display:block;font-size:1.6rem;margin-top:5px;color:#2a2543}
.v16-toolbar{display:flex;gap:9px;align-items:center;flex-wrap:wrap;margin:12px 0}.v16-toolbar .btn,.v16-toolbar button{font-size:.85rem}.v16-filter{display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap}.v16-filter label{flex:1;min-width:200px}.v16-filter button{margin-bottom:0}
.v16-tenant{margin:17px 0}.v16-tenant-head{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:18px}.v16-tenant-head h2{margin:0 0 4px}.v16-tenant-head h2 small{font-size:.75rem;color:#716c85}.v16-state-red{background:#fee9ea;color:#a42639}
.v16-admin-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.v16-subform{display:grid;gap:10px;align-content:start;padding:15px;border:1px solid #efebf4;border-radius:14px;background:#fbfaff}.v16-subform h3{font-size:1rem;margin:0 0 4px}.v16-subform label{margin:0;min-width:0}.v16-subform button{justify-self:start}.v16-subform details{margin-top:8px}.v16-inline{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.v16-inline input[type="checkbox"]{width:auto}
.v16-field-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}.v16-user-table td{vertical-align:top}.v16-user-actions{min-width:185px}.v16-user-actions[open]{width:min(450px,70vw)}.v16-user-actions>summary,.v16-advanced>summary{cursor:pointer;font-weight:650;color:#564bc2;padding:9px 0}.v16-user-actions .v16-subform{margin-top:10px}
.v16-pager{display:flex;justify-content:center;align-items:center;gap:12px;padding:20px 0}.v16-pager span{font-size:.85rem;color:#777187}.v16-section-head{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:14px;flex-wrap:wrap}.v16-section-head h2{margin:0}.v16-section-head p{margin:5px 0}.v16-create-task label{display:block}.v16-task-form{display:grid;gap:13px}.v16-task-form label{margin:0}.v16-task-form input,.v16-task-form textarea,.v16-task-form select{width:100%;max-width:100%}.v16-advanced{border:1px solid #ece7f4;border-radius:12px;padding:11px 14px;background:#fcfbff}.v16-advanced[open]{display:grid;gap:13px}.v16-advanced>summary{margin-bottom:5px}.v16-form-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.v16-quota-hint{font-size:.8rem;color:#6e648b;background:#f4f1ff;border-radius:9px;padding:10px}.v16-quota-hint [hidden]{display:none}.v16-filter-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.v16-filter-grid button{align-self:end}
.v16-dashboard-layout{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:20px 0}.v16-focus-list{display:grid;gap:6px}.v16-focus-list a{display:flex;justify-content:space-between;gap:8px;padding:11px 8px;border-top:1px solid #f0edf6;text-decoration:none}.v16-focus-list small{color:#737085;text-align:end}.v16-my-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-bottom:15px}.v16-my-metrics>div{padding:10px;background:#f6f4fc;border-radius:10px}.v16-my-metrics small{display:block;font-size:.75rem;color:#777187}.v16-my-metrics strong{font-size:1.35rem}
.v16-trend-bars{height:160px;display:flex;align-items:end;justify-content:space-between;gap:5px;padding:16px 0;border-bottom:1px solid #e7e2f1}.v16-trend-bars>div{display:flex;flex-direction:column;align-items:center;justify-content:end;flex:1;height:100%;min-width:0}.v16-trend-bars span{display:block;width:min(100%,24px);min-height:3px;border-radius:5px 5px 0 0;background:linear-gradient(#aa97fa,#695ce9)}.v16-trend-bars small{font-size:.68rem;color:#8a829e;margin-top:6px}.v16-activity-list{max-height:390px;overflow:auto;display:grid;gap:8px}.v16-activity-list>div{display:grid;grid-template-columns:90px 1fr 30px;gap:10px;align-items:center}.v16-activity-list>div small{color:#6e6881}.v16-activity-list>div span{height:10px;overflow:hidden;border-radius:20px;background:#f0edf8}.v16-activity-list>div i{display:block;height:100%;background:#8171f1;border-radius:20px}
@media(max-width:1100px){.v16-admin-grid{grid-template-columns:1fr 1fr}.v16-metrics{grid-template-columns:repeat(2,1fr)}.v16-my-metrics{grid-template-columns:repeat(2,1fr)}}
@media(max-width:760px){.v16-admin-grid,.v16-dashboard-layout,.v16-field-pair,.v16-filter-grid{grid-template-columns:1fr}.v16-metrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.v16-metric{padding:13px}.v16-metric strong{font-size:1.4rem}.v16-user-actions[open]{width:100%;min-width:240px}.v16-toolbar .btn{flex:1;text-align:center}.v16-section-head{align-items:flex-start}.v16-section-head .btn{width:100%}.v16-focus-list a{display:block}.v16-focus-list small{display:block;text-align:start;margin-top:4px}.v16-support-banner{top:60px}.v16-filter label{min-width:100%}.v16-trend-bars{height:120px}}
