:root{--ff-ink:#13212b;--ff-muted:#667085;--ff-line:#e6ebef;--ff-bg:#f5f7f8;--ff-blue:#135d75;--ff-gold:#d2a239}.frameflow{max-width:1440px;margin:24px 24px 0 4px;color:var(--ff-ink)}.ff-top{display:flex;justify-content:space-between;align-items:flex-start;margin:18px 0 24px}.ff-top h1{font-size:30px;line-height:1.2;margin:0;color:#0c2530}.ff-top p{margin:7px 0 0;color:var(--ff-muted)}.ff-create{background:var(--ff-blue)!important;border-color:var(--ff-blue)!important;padding:5px 14px!important}.ff-grid{display:grid;gap:18px}.ff-stats{grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:18px}.ff-two{grid-template-columns:1.2fr .8fr}.ff-card{background:#fff;border:1px solid var(--ff-line);border-radius:12px;padding:20px;box-shadow:0 1px 2px rgba(16,24,40,.03);box-sizing:border-box}.ff-stat{position:relative;overflow:hidden;border-left:4px solid var(--accent,var(--ff-blue));min-height:80px}.ff-stat span{display:block;color:var(--ff-muted);font-size:13px}.ff-stat strong{display:block;font-size:28px;margin-top:8px}.ff-card h2{font-size:16px;margin:0 0 14px}.ff-list{display:flex;flex-direction:column}.ff-row{display:flex;flex-direction:column;gap:3px;padding:12px 0;border-bottom:1px solid var(--ff-line);text-decoration:none;color:inherit}.ff-row:last-child{border-bottom:0}.ff-row small{color:var(--ff-muted)}.ff-empty{color:var(--ff-muted);padding:15px 0}.ff-dot{width:9px;height:9px;border-radius:50%;display:inline-block;margin-right:7px}.ff-on_track{background:#38a169}.ff-at_risk,.ff-blocked{background:#e53e3e}.ff-badge{font-size:11px;text-transform:capitalize;display:inline-block;padding:4px 8px;border-radius:100px;background:#edf2f7}.ff-badge.on_track{color:#176437;background:#e6ffed}.ff-badge.at_risk,.ff-badge.blocked{color:#a02121;background:#fff0f0}.ff-project-meta{display:flex;gap:14px;flex-wrap:wrap;margin:-8px 0 18px;color:var(--ff-muted);font-size:13px}.ff-tabs{display:flex;gap:6px;overflow:auto;border-bottom:1px solid var(--ff-line);margin-bottom:18px}.ff-tabs a{padding:11px 12px;color:var(--ff-muted);text-decoration:none;white-space:nowrap}.ff-tabs a.active{color:var(--ff-blue);border-bottom:2px solid var(--ff-blue);font-weight:600}.ff-section-head{display:flex;justify-content:space-between;align-items:center}.ff-form{max-width:940px}.ff-form label{font-size:13px;font-weight:600;color:#344054;display:flex;flex-direction:column;gap:6px}.ff-form input,.ff-form select,.ff-form textarea{width:100%;max-width:none;border:1px solid #d0d5dd;border-radius:7px;padding:8px;box-sizing:border-box;background:#fff}.ff-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 18px}.ff-step{display:inline-flex;align-items:center;justify-content:center;width:25px;height:25px;background:var(--ff-blue);border-radius:50%;color:#fff;font-weight:700;margin:2px 0 9px}.ff-form h2{font-size:18px}.ff-table th{font-weight:600;color:#475467}.ff-table td{vertical-align:middle}.ff-table small{color:var(--ff-muted)}@media(max-width:900px){.ff-stats,.ff-two,.ff-form-grid{grid-template-columns:1fr 1fr}}@media(max-width:600px){.frameflow{margin-right:10px}.ff-top{flex-direction:column;gap:12px}.ff-stats,.ff-two,.ff-form-grid{grid-template-columns:1fr}.ff-create{width:100%;text-align:center}.ff-card{padding:15px}}
.ff-workflow{display:flex;gap:8px;align-items:flex-start;flex-wrap:wrap}.ff-stage{min-width:92px;display:flex;flex-direction:column;gap:7px;align-items:center;color:#667085;font-size:12px}.ff-stage span{height:12px;width:100%;border-radius:20px;background:#edf2f7}.ff-stage.current{color:#13212b;font-weight:700}.ff-stage.current span{background:var(--stage)}.ff-rich{line-height:1.65;color:#475467}.ff-section-head{margin:0 0 12px}.ff-section-head h2{margin:0}
/* FrameFlow v2.6.0 — Admin project chat */
.ff-admin-chat{max-width:980px}.ff-chat-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}.ff-admin-message{display:flex;gap:10px;padding:14px 0;border-bottom:1px solid #e7ecf2}.ff-admin-avatar .avatar{border-radius:50%}.ff-admin-message-body{flex:1;background:#f7f9fc;border:1px solid #e7ecf2;border-radius:12px;padding:12px}.ff-admin-message-body>div:first-child{display:flex;gap:10px;align-items:center}.ff-admin-message-body small{color:#6b7785;font-size:12px}.ff-admin-message-body p{margin:8px 0;line-height:1.5}.ff-message-actions{display:flex;gap:14px;align-items:center;font-size:13px}.ff-message-actions form{display:inline;margin:0}.ff-message-actions a,.ff-message-actions button{color:#1d4c70;text-decoration:none}.ff-liked{color:#bd2f4b!important}.ff-admin-replies{margin:12px 0 0 8px;border-left:2px solid #d9e4ee;padding-left:12px}.ff-admin-reply{display:flex;gap:8px;margin:8px 0}.ff-admin-reply .avatar{border-radius:50%}.ff-admin-reply span{font-size:13px}.ff-admin-reply small{display:block}.ff-admin-reply-form{display:flex;gap:8px;margin-top:12px}.ff-admin-reply-form input{flex:1;padding:8px;border:1px solid #c3cfd9;border-radius:6px}.ff-admin-compose{border-top:1px solid #e4e9ef;margin-top:18px;padding-top:16px}.ff-admin-compose textarea{width:100%;padding:10px;border:1px solid #c3cfd9;border-radius:8px}

.ff-view-tabs{display:flex;gap:8px;margin:12px 0 18px}.ff-view-tabs a{padding:8px 12px;border:1px solid #dfe7ee;border-radius:8px;text-decoration:none}.ff-view-tabs a.active{background:#0b2b38;color:#fff;border-color:#0b2b38}.ff-task-comments{margin-top:22px;padding-top:16px;border-top:1px solid #e5e7eb}.ff-comment{padding:12px 0;border-bottom:1px solid #edf1f4}.ff-comment strong{display:block}.ff-comment small{color:#6b7280}.ff-comment p{margin:7px 0 0}
/* FrameFlow v3.1.0 — Full-screen File Viewer */
.ff-message-files{display:flex;flex-wrap:wrap;gap:10px;margin:12px 0}.ff-file-preview{display:flex;align-items:center;gap:10px;max-width:320px;background:#fff;border:1px solid #e3e9ef;border-radius:10px;padding:7px;text-align:left;cursor:pointer;color:#183140}.ff-file-preview:hover{border-color:#135d75;box-shadow:0 4px 14px rgba(19,93,117,.12)}.ff-file-preview img{width:78px;height:58px;object-fit:cover;border-radius:7px}.ff-pdf-thumb,.ff-file-icon{width:66px;height:58px;display:flex;align-items:center;justify-content:center;border-radius:7px;background:#f4f7f9;color:#135d75;font-weight:700;font-size:12px}.ff-file-preview-meta{display:flex;flex-direction:column;gap:3px;min-width:0}.ff-file-preview-meta strong{font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:190px}.ff-file-preview-meta small{font-size:11px;color:#667085}.ff-file-modal{position:fixed;inset:0;z-index:999999;display:none;background:rgba(10,21,28,.76);padding:22px}.ff-file-modal.is-open{display:flex}.ff-file-modal-shell{width:100%;height:100%;background:#fff;border-radius:14px;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 18px 60px rgba(0,0,0,.38)}.ff-file-modal-head{height:60px;display:flex;justify-content:space-between;align-items:center;padding:0 18px;border-bottom:1px solid #e6ebef}.ff-file-modal-head strong{display:block;font-size:15px}.ff-file-modal-head span{font-size:11px;color:#667085;margin-top:2px;display:block}.ff-file-modal-tools{display:flex;gap:7px}.ff-file-modal-tools button{width:34px;height:34px;border:1px solid #e0e6eb;background:#fff;border-radius:8px;cursor:pointer;font-size:16px;color:#24414f}.ff-file-modal-tools button:hover{background:#f1f6f8}.ff-file-modal-tools .ff-file-close{font-size:24px;line-height:20px;color:#9e2f35}.ff-file-modal-main{display:grid;grid-template-columns:minmax(0,1fr) 340px;min-height:0;flex:1}.ff-file-stage{background:#eef2f4;display:flex;align-items:center;justify-content:center;min-width:0;min-height:0;padding:20px}.ff-file-stage img{max-width:100%;max-height:100%;object-fit:contain;border-radius:5px;box-shadow:0 8px 30px rgba(11,34,45,.14)}.ff-file-stage iframe{width:100%;height:100%;border:0;background:#fff}.ff-file-side{border-left:1px solid #e6ebef;padding:22px;background:#fbfcfd;overflow:auto}.ff-file-side h3{margin:0 0 12px;font-size:15px}.ff-file-side p{font-size:13px;line-height:1.6}.ff-generic-file{display:flex;flex-direction:column;align-items:center;gap:14px;text-align:center;color:#475467}.ff-generic-file strong{font-size:28px;color:#135d75}.ff-modal-open{overflow:hidden}@media(max-width:780px){.ff-file-modal{padding:0}.ff-file-modal-shell{border-radius:0}.ff-file-modal-main{grid-template-columns:1fr;grid-template-rows:minmax(0,1fr) 210px}.ff-file-side{border-left:0;border-top:1px solid #e6ebef}.ff-file-modal-head{padding:0 10px}.ff-file-modal-tools{gap:4px}.ff-file-modal-tools button{width:30px;height:30px}.ff-file-stage{padding:10px}}
/* FrameFlow v3.1.4 — notifications and protected file access */
.ff-desk-user{display:flex;align-items:center;gap:12px}.ff-notifications{position:relative}.ff-notification-bell{position:relative;display:inline-flex;width:34px;height:34px;align-items:center;justify-content:center;border:1px solid #dfe7ee;border-radius:50%;text-decoration:none;background:#fff}.ff-notification-bell b{position:absolute;right:-6px;top:-6px;min-width:16px;height:16px;padding:0 3px;border-radius:10px;background:#bd2f4b;color:#fff;font-size:10px;line-height:16px;text-align:center}.ff-notification-popover{display:none;position:absolute;right:0;top:42px;width:330px;max-height:340px;overflow:auto;background:#fff;border:1px solid #e1e8ee;border-radius:12px;box-shadow:0 16px 35px rgba(17,37,48,.18);padding:10px;z-index:99}.ff-notifications:hover .ff-notification-popover,.ff-notifications:focus-within .ff-notification-popover{display:block}.ff-notification-popover>a,.ff-notification-row{display:flex;flex-direction:column;gap:4px;padding:10px;border-radius:8px;text-decoration:none;color:#183140}.ff-notification-popover>a:hover,.ff-notification-row:hover{background:#f5f8fa}.ff-notification-popover small,.ff-notification-row small{color:#667085}.ff-notification-popover .is-unread,.ff-notification-row.is-unread{background:#edf7fb}.ff-notification-row{border-bottom:1px solid #edf1f3}.ff-notification-row:last-child{border-bottom:0}

/* v3.1.5 notification routing polish */
.ff-notification-popover-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:6px}.ff-notification-popover-head a{font-size:12px;font-weight:700}.ff-notification-row{display:block;text-decoration:none}.ff-notification-row.is-unread{border-left:3px solid #17486b;padding-left:12px}.ff-notification-row:hover{background:#f5f8fb}

.ff-steps{margin:0 0 18px}.ff-steps span{display:inline-block;padding:8px 12px;border-radius:999px;background:#f1f5f9;margin:0 6px 6px 0}.ff-steps span.active{background:#123f5f;color:#fff}.ff-form label{display:block;font-weight:600}.ff-form input,.ff-form select,.ff-form textarea{width:100%;margin-top:6px}

.ff-upload-panel{margin:16px 0;padding:14px 16px;background:#f8fafc;border:1px solid #dbe5ef;border-radius:12px}.ff-upload-panel summary{font-weight:700;cursor:pointer;color:#123f5f}.ff-upload-panel .ff-form-grid{margin-top:14px}.ff-document-meta{display:grid;grid-template-columns:130px 1fr;gap:10px;margin:0}.ff-document-meta dt{font-weight:700;color:#4a5b70}.ff-document-meta dd{margin:0}.ff-activity-item{padding:12px 0;border-top:1px solid #e5edf5}.ff-activity-item:first-of-type{border-top:0}.ff-activity-item span{display:block;color:#60718a;font-size:13px;margin-top:3px}.ff-activity-item p{margin:7px 0 0}.ff-file-content td{vertical-align:middle}

/* FrameFlow Client Portal 2.0 */
.ff-client-portal{max-width:1240px}.ff-client-projects{margin:20px 0}.ff-project-card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:12px}.ff-project-card{border:1px solid #e4e7ec;border-radius:14px;padding:16px;background:#fff;color:inherit;text-decoration:none;display:flex;flex-direction:column;gap:6px}.ff-project-card.active{border-color:#111827;box-shadow:0 0 0 2px rgba(17,24,39,.08)}.ff-project-card small,.ff-project-card span,.ff-client-update small,.ff-client-file small{color:#667085}.ff-client-update{display:flex;gap:10px;padding:12px 0;border-bottom:1px solid #eef1f5}.ff-client-update p{margin:6px 0 0}.ff-client-file{padding:12px 0;border-bottom:1px solid #eef1f5}.ff-client-file textarea{width:100%;margin-top:8px}.ff-btn-ghost{background:#fff!important;color:#344054!important;border:1px solid #d0d5dd!important}.ff-context-nav{display:flex;gap:6px;margin:12px 0 16px}.ff-context-nav a{padding:8px 10px;border-radius:8px;text-decoration:none;color:#475467}.ff-context-nav a.active{background:#f2f4f7;color:#101828;font-weight:600}
.ff-client-badge{display:inline-block;margin-left:7px;padding:2px 7px;border-radius:999px;background:#eef6ff;color:#2463a0;font-size:11px;font-style:normal;font-weight:700;vertical-align:middle}.ff-client-compose{border-top:1px solid #dbe5ef;margin-top:16px;padding-top:16px}.ff-client-compose textarea{border-color:#b7d7f5}

.ff-message-actions{display:flex;gap:10px;align-items:center}.ff-inline-delete{display:inline}.ff-danger-link{color:#b42318!important;padding:0!important;background:none!important;border:0!important}.ff-client-update{padding:12px 0;border-bottom:1px solid #e8edf3}.ff-client-update:last-child{border-bottom:0}
/* v3.4.6 — reply controls and client thread sync */
.ff-reply-delete{display:inline-block;margin-top:6px}.ff-reply-delete .ff-danger-link{font-size:12px}.ff-client-replies{border-left:2px solid #dbe6ef;margin:10px 0 0 4px;padding-left:12px}.ff-client-reply{display:flex;gap:8px;padding:8px 0}.ff-client-reply p{margin:4px 0 0}.ff-client-reply small{display:block;color:#718096;font-size:12px}
/* FrameFlow v3.5.1 — Client file sharing */
.ff-file-actions{display:flex;gap:7px;align-items:center;flex-wrap:wrap}.ff-inline-share{display:inline;margin:0}.ff-btn-share{background:#1f7a8c!important}.ff-share-form textarea{min-height:72px}.ff-share-form .ff-btn-ghost{color:#9d392d!important;border-color:#e5b5b0!important;background:#fff!important}

/* v3.5.2 client sharing */
.ff-client-shared{background:#eaf7ef;color:#176b3a;margin-right:6px}.ff-inline-share{display:inline-block;margin-left:6px}

/* v3.6.6 — basic image markups */
.ff-file-modal-tools [data-ff-action="markup"]{font-weight:700}
.ff-file-modal-tools [data-ff-action="markup"].is-done{background:#e5484d;color:#fff;border-color:#e5484d}
.ff-file-stage{position:relative}
.ff-markup-canvas{position:absolute;inset:0;z-index:3;cursor:crosshair;touch-action:none}
.ff-markup-notice{margin-left:12px;color:#176b3a;font-size:12px;font-weight:700}

/* FrameFlow v3.6.8 — unified image/PDF markup viewer */
.ff-pdf-page-control{margin-left:auto;margin-right:8px;font-size:12px;color:#52606d}.ff-pdf-page-control label{display:flex;gap:6px;align-items:center}.ff-pdf-page-control input{width:58px;height:32px;border:1px solid #d9e2e8;border-radius:7px;padding:0 7px}.ff-file-stage{position:relative}.ff-file-stage.is-markup-mode iframe{pointer-events:none;opacity:.96}.ff-markup-canvas{position:absolute;inset:0;z-index:5;cursor:crosshair;touch-action:none;background:rgba(255,255,255,.02)}.ff-markup-item>small{display:block}.ff-file-modal-tools button.is-done{background:#e9f6ee;border-color:#91c9a1;color:#216b39}@media(max-width:780px){.ff-pdf-page-control{margin-left:4px;margin-right:3px}.ff-pdf-page-control label{font-size:0}.ff-pdf-page-control label:before{content:"Pg";font-size:11px}.ff-pdf-page-control input{width:44px;height:30px}}


/* FrameFlow v3.6.10 — Files list/grid & previews */
.ff-files-toolbar{display:flex;justify-content:flex-end;align-items:center;margin:0 0 14px}.ff-view-switch{display:inline-flex;border:1px solid #d9e3eb;border-radius:9px;padding:3px;background:#f8fafc;gap:3px}.ff-view-switch a{padding:7px 11px;border-radius:6px;text-decoration:none;color:#52606d;font-size:13px;font-weight:700}.ff-view-switch a.active{background:#173f5f;color:#fff}.ff-file-preview-thumb{width:78px;height:58px;display:flex;flex:0 0 auto;align-items:center;justify-content:center;overflow:hidden;border-radius:7px;background:#f4f7f9}.ff-file-preview-thumb img{width:100%;height:100%;object-fit:cover}.ff-file-preview-thumb .ff-file-icon{width:100%;height:100%}.ff-file-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px}.ff-file-grid-card{overflow:hidden;border:1px solid #dfe7ee;border-radius:12px;background:#fff;box-shadow:0 4px 14px rgba(15,42,57,.05)}.ff-file-grid-preview{height:160px;width:100%;border:0;border-bottom:1px solid #e5edf3;background:#f5f8fa;display:flex;align-items:center;justify-content:center;padding:0;cursor:pointer}.ff-file-grid-preview:hover{background:#edf5f8}.ff-file-grid-preview img{width:100%;height:100%;object-fit:cover}.ff-file-grid-icon{font-size:16px;font-weight:800;color:#1a5b78;background:#eaf3f7;padding:12px;border-radius:8px}.ff-file-grid-body{display:flex;flex-direction:column;gap:9px;padding:12px}.ff-file-grid-body>strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:13px}.ff-file-grid-body>small{color:#667085;font-size:12px;min-height:30px}.ff-file-grid-body .ff-file-actions{margin-top:2px}.ff-file-grid-body .ff-btn{padding:7px 9px;font-size:12px}@media(max-width:780px){.ff-files-toolbar{justify-content:flex-start}.ff-file-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.ff-file-grid-preview{height:120px}.ff-file-grid-body{padding:10px}}


/* v3.6.16 Operational Reports */
.ff-eyebrow{display:block;font-size:11px;font-weight:800;letter-spacing:.08em;color:#58718e;margin-bottom:7px}
.ff-report-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end;align-items:center}
.ff-btn-secondary{background:#fff!important;color:#164263!important;border:1px solid #cbdbe8!important}
.ff-report-header .ff-project-head{gap:20px;align-items:flex-start}
.ff-report-stats{margin-top:18px}
.ff-report-stats .ff-card{min-height:122px;margin:0}
.ff-report-list{display:grid;gap:12px}
.ff-report-list>div{padding:12px 0;border-bottom:1px solid #e6edf3}
.ff-report-list>div:last-child{border-bottom:0}
.ff-report-list strong{display:block;margin-bottom:4px}
.ff-report-list span{display:block;color:#61758d;line-height:1.45}
@media(max-width:900px){.ff-report-actions{justify-content:flex-start}.ff-report-header .ff-project-head{display:block}.ff-report-actions{margin-top:14px}}
@media print{.ff-nav,.ff-report-actions,.ff-health-actions,button,.ff-btn{display:none!important}.ff-card{box-shadow:none!important;border-color:#ddd!important}}


/* v3.6.16.1 Operational Reports layout repair */
.ff-span-2{grid-column:span 2}
.ff-span-6{grid-column:span 6}
.ff-report-header{padding:24px}
.ff-report-header .ff-project-head{display:flex;justify-content:space-between;gap:24px;align-items:flex-start}
.ff-report-header .ff-project-head>div:first-child{min-width:0;max-width:720px}
.ff-report-actions{max-width:520px}
.ff-report-stats{grid-template-columns:repeat(6,minmax(0,1fr))!important;gap:14px}
.ff-report-stats .ff-card{padding:16px;min-width:0}
.ff-report-stats .ff-stat{min-height:92px}
.ff-report-stats .ff-statlabel{font-size:13px;line-height:1.35}
.ff-report-list{grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.ff-report-list>div{padding:0 18px 0 0;border-bottom:0;border-right:1px solid #e6edf3}
.ff-report-list>div:last-child{border-right:0;padding-right:0}
@media(max-width:1120px){
 .ff-report-stats{grid-template-columns:repeat(3,minmax(0,1fr))!important}
 .ff-report-list{grid-template-columns:1fr}
 .ff-report-list>div{padding:12px 0;border-right:0;border-bottom:1px solid #e6edf3}
 .ff-report-list>div:last-child{border-bottom:0}
}
@media(max-width:780px){
 .ff-report-header .ff-project-head{display:block}
 .ff-report-actions{margin-top:16px;max-width:none}
 .ff-report-stats{grid-template-columns:repeat(2,minmax(0,1fr))!important}
 .ff-span-7,.ff-span-5,.ff-span-6,.ff-span-2{grid-column:span 12}
}

/* v3.7.11 License & Domain Activation Foundation */
.ff-license-card{max-width:980px}
.ff-section-head{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;margin-bottom:22px}
.ff-eyebrow{font-size:11px;font-weight:800;letter-spacing:.08em;margin:0 0 6px;color:#54708d}
.ff-license-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:18px 0}
.ff-license-domain{border:1px solid #e2ebf3;border-radius:12px;padding:18px;background:#f9fbfd;display:flex;flex-direction:column;gap:6px}
.ff-license-domain strong{font-size:18px;color:#163845;overflow-wrap:anywhere}
.ff-license-id{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:14px!important;letter-spacing:.02em}
.ff-license-domain small{color:#718096;line-height:1.5}
.ff-license-form{display:flex;align-items:end;gap:12px;margin:18px 0}
.ff-license-form label{display:flex;flex:1;flex-direction:column;gap:7px;font-weight:700;color:#334e68}
.ff-license-form input{height:42px;border:1px solid #cddbe8;border-radius:8px;padding:0 12px;font:inherit}
.ff-status-danger{background:#fff0f0!important;color:#b42318!important}
@media(max-width:780px){.ff-section-head,.ff-license-form{display:block}.ff-license-grid{grid-template-columns:1fr}.ff-license-form .ff-btn{margin-top:12px;width:100%}}


/* v3.7.1 Commercial Onboarding */
.ff-onboarding-card{max-width:1180px;margin:0 auto}
.ff-eyebrow{display:block;font-size:11px;letter-spacing:.08em;font-weight:800;color:#52708b;margin-bottom:7px}
.ff-onboarding-status{display:flex;flex-direction:column;align-items:flex-end;gap:3px;padding:12px 15px;border:1px solid #dce8f0;border-radius:12px;background:#f7fafc;font-size:13px;color:#667085}
.ff-onboarding-status strong{font-size:14px;color:#153f60}
.ff-wizard-steps-5{grid-template-columns:repeat(5,minmax(0,1fr));margin:24px 0 28px}
.ff-wizard-steps-5 a{display:flex;align-items:center;gap:8px;text-decoration:none}
.ff-wizard-steps-5 b{width:24px;height:24px;border-radius:999px;display:grid;place-items:center;background:#eaf0f5;color:#46647c;font-size:12px}
.ff-wizard-steps-5 a.done b{background:#dff3ea;color:#167347}
.ff-wizard-steps-5 a.active b{background:#173f60;color:#fff}
.ff-onboarding-layout{display:grid;grid-template-columns:minmax(0,1.8fr) minmax(250px,.8fr);gap:26px;align-items:start}
.ff-onboarding-side{border:1px solid #dfe8ef;border-radius:14px;padding:20px;background:#f8fbfd}
.ff-onboarding-side h3{margin:4px 0 10px;font-size:19px}
.ff-onboarding-side ol{padding-left:20px;margin:14px 0 20px;color:#52697f;line-height:1.65}
.ff-step-heading h3{margin:0 0 5px;font-size:20px}
.ff-step-heading p{margin:0 0 20px;color:#667085}
.ff-wizard-actions{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:22px}
.ff-wizard-actions a{font-weight:700;text-decoration:none;color:#285d82}
.ff-launch-checklist{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.ff-launch-checklist>div{display:flex;gap:12px;border:1px solid #dfe8ef;border-radius:12px;padding:14px;background:#fff}
.ff-launch-checklist>div>b{flex:0 0 26px;height:26px;border-radius:999px;display:grid;place-items:center;background:#eef3f7;color:#49667b;font-size:12px}
.ff-launch-checklist>div.ready>b{background:#daf1e4;color:#146c43}
.ff-launch-checklist strong,.ff-launch-checklist small{display:block}
.ff-launch-checklist small{margin-top:3px;color:#69798a}
@media(max-width:860px){.ff-wizard-steps-5{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.ff-onboarding-layout{grid-template-columns:1fr}.ff-onboarding-status{align-items:flex-start}.ff-launch-checklist{grid-template-columns:1fr}}


/* FrameFlow v3.7.1.1 — onboarding profile alignment */
.ff-onboarding-layout .ff-form-grid{
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:16px;
  align-items:end;
}
.ff-onboarding-layout .ff-form-grid > p{
  margin:0;
  min-width:0;
}
.ff-onboarding-layout .ff-form-grid label{
  display:block;
  min-width:0;
}
.ff-onboarding-layout .ff-form-grid input,
.ff-onboarding-layout .ff-form-grid select{
  width:100%;
  min-width:0;
}
.ff-onboarding-layout .ff-form-grid .ff-span-12{
  grid-column:1 / -1;
}
@media(max-width:980px){
  .ff-onboarding-layout .ff-form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:600px){
  .ff-onboarding-layout .ff-form-grid{grid-template-columns:1fr}
}


/* FrameFlow v3.7.2 — Core QA, permissions & mobile freeze */
.ff-shell{min-width:0}
.ff-shell *, .ff-shell *:before, .ff-shell *:after{box-sizing:border-box}
.ff-desk .ff-nav{overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:thin}
.ff-desk .ff-nav a{white-space:nowrap}
.ff-card,.ff-modal-panel,.ff-project-head,.ff-section-head{min-width:0}
.ff-card table{width:100%;border-collapse:collapse}
.ff-table-wrap,.ff-project-files-table,.ff-report-table{overflow-x:auto;-webkit-overflow-scrolling:touch}
.ff-btn,.ff-btn-secondary,.ff-file-action,.ff-markup-action{min-height:38px}
.ff-empty,.ff-notice{overflow-wrap:anywhere}
.ff-form-grid input,.ff-form-grid select,.ff-form-grid textarea{max-width:100%}
@media(max-width:760px){
  .ff-shell{padding:18px 14px}
  .ff-desk-head{align-items:flex-start;gap:14px;flex-direction:column}
  .ff-desk-user{width:100%;justify-content:space-between}
  .ff-desk .ff-nav{margin-left:-2px;margin-right:-2px;padding-bottom:4px}
  .ff-desk .ff-nav a{padding:10px 12px}
  .ff-section-head,.ff-project-head,.ff-files-toolbar,.ff-report-actions{align-items:flex-start;flex-direction:column}
  .ff-section-head .ff-actions,.ff-project-head .ff-actions,.ff-report-actions{width:100%;display:flex;flex-wrap:wrap;gap:8px}
  .ff-section-head .ff-actions a,.ff-section-head .ff-actions button,.ff-project-head .ff-actions a,.ff-project-head .ff-actions button,.ff-report-actions a,.ff-report-actions button{flex:1 1 auto;text-align:center}
  .ff-kpi-grid,.ff-health-metrics,.ff-report-metrics{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .ff-span-2,.ff-span-3,.ff-span-4,.ff-span-5,.ff-span-6,.ff-span-7,.ff-span-8,.ff-span-9,.ff-span-10,.ff-span-11,.ff-span-12{grid-column:1 / -1!important}
  .ff-modal{padding:0}
  .ff-modal-panel{width:100%;height:100%;max-height:100vh;border-radius:0}
  .ff-viewer-layout{grid-template-columns:1fr!important}
  .ff-viewer-side{max-height:42vh;overflow:auto;border-top:1px solid #dfe8ef}
  .ff-file-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ff-project-tabs{overflow-x:auto;white-space:nowrap;padding-bottom:4px}
  .ff-project-tabs a{display:inline-flex}
  .ff-card table{min-width:680px}
}
@media(max-width:430px){
  .ff-shell{padding:14px 10px}
  .ff-kpi-grid,.ff-health-metrics,.ff-report-metrics,.ff-file-grid{grid-template-columns:1fr!important}
  .ff-desk-head h1{font-size:25px}
  .ff-card{padding:16px}
  .ff-btn,.ff-btn-secondary{width:100%}
}


/* FrameFlow v3.7.3 — Unified file entry points & account experience */
.ff-overview-file{cursor:pointer;gap:12px;align-items:center}
.ff-overview-file-icon{width:36px;height:36px;display:inline-grid;place-items:center;border-radius:10px;background:#eef4f8;font-size:18px;flex:0 0 36px}
.ff-overview-file:hover{background:#f8fbfd}
.ff-account-modern{padding:0;overflow:hidden}
.ff-account-hero{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:18px;align-items:center;padding:28px 30px;background:linear-gradient(135deg,#f7fbfd 0%,#eef5f9 100%);border-bottom:1px solid #dce8ef}
.ff-account-avatar-wrap{width:88px;height:88px;border-radius:22px;overflow:hidden;background:#dfeaf0;box-shadow:0 8px 24px rgba(25,63,95,.12)}
.ff-account-avatar{width:100%;height:100%;object-fit:cover;display:block}
.ff-account-summary h2{margin:3px 0 3px;font-size:28px;line-height:1.15}
.ff-account-summary p{margin:0;color:#52697f;font-weight:600}
.ff-eyebrow{display:block;font-size:10px;letter-spacing:.1em;color:#54728c;font-weight:800}
.ff-account-meta{display:flex;flex-wrap:wrap;gap:10px;margin-top:11px;color:#5c7083;font-size:13px}
.ff-account-meta span{padding:5px 8px;border-radius:999px;background:#fff;border:1px solid #dce8ef}
.ff-account-status{text-align:right;display:flex;flex-direction:column;gap:8px;align-items:flex-end}
.ff-account-status small{color:#66798a}
.ff-account-form{padding:28px 30px 30px}
.ff-account-section-head{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:16px}
.ff-account-section-head h3{margin:0 0 4px;font-size:18px}
.ff-account-section-head p{margin:0}
.ff-account-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.ff-account-grid p{margin:0}
.ff-account-photo-row{margin-top:24px;padding:18px 0;border-top:1px solid #e3ebf0;display:flex;justify-content:space-between;align-items:center;gap:18px}
.ff-account-photo-row h3{margin:0 0 4px;font-size:16px}
.ff-account-photo-row p{margin:0}
.ff-upload-photo{display:inline-flex;align-items:center;justify-content:center;min-height:38px;padding:0 14px;border:1px dashed #7ea0b8;border-radius:9px;color:#1d557b;background:#f8fbfd;font-weight:700;cursor:pointer}
.ff-upload-photo input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
.ff-account-actions{display:flex;gap:10px;align-items:center;margin-top:24px}
.ff-btn-secondary{display:inline-flex;align-items:center;justify-content:center;min-height:38px;padding:0 14px;border:1px solid #cbdde9;border-radius:9px;background:#fff;color:#1c4f71;text-decoration:none;font-weight:700}
.ff-btn-secondary:hover{background:#f4f8fb}
.ff-company-brand-row{display:flex;gap:18px;align-items:center;padding:20px 0;margin-top:8px;border-top:1px solid #e3ebf0}
.ff-company-brand-row h3{margin:0 0 5px;font-size:17px}
.ff-company-brand-row p{margin:0 0 12px}
.ff-company-logo-preview{width:82px;height:82px;border:1px solid #d8e5ec;border-radius:14px;background:#f7fafc;display:grid;place-items:center;overflow:hidden;flex:0 0 82px;color:#6d8192;font-size:12px;font-weight:800}
.ff-company-logo-preview img{max-width:100%;max-height:100%;object-fit:contain}
@media(max-width:720px){
  .ff-account-hero{grid-template-columns:auto minmax(0,1fr);padding:22px 18px}
  .ff-account-status{grid-column:1 / -1;align-items:flex-start;text-align:left;flex-direction:row}
  .ff-account-form{padding:22px 18px}
  .ff-account-grid{grid-template-columns:1fr}
  .ff-account-photo-row,.ff-company-brand-row{align-items:flex-start;flex-direction:column}
  .ff-account-actions{flex-direction:column;align-items:stretch}
  .ff-account-actions .ff-btn,.ff-account-actions .ff-btn-secondary{width:100%}
}


/* v3.7.4 Team & Cost Catalog */
.ff-eyebrow{display:block;font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#5b728a;margin-bottom:4px}
.ff-team-note,.ff-catalog-summary{display:flex;gap:14px;align-items:center;flex-wrap:wrap;background:#f6f9fc;border:1px solid #e4edf5;border-radius:12px;padding:13px 15px;margin:14px 0 18px;color:#5b728a}
.ff-team-note strong,.ff-catalog-summary strong{color:#123f5f}
.ff-table td small{display:block;color:#6f8194;font-size:12px;margin-top:3px}
.ff-table code{font-size:12px;background:#f3f6f8;padding:3px 5px;border-radius:5px}
.ff-pill-muted{background:#eef1f4!important;color:#657487!important}
.ff-team-workspace .ff-table td:first-child span:not(.ff-inline-avatar){display:inline-flex;flex-direction:column;vertical-align:middle}
@media(max-width:760px){.ff-team-note,.ff-catalog-summary{align-items:flex-start}.ff-team-workspace .ff-table,.ff-catalog-workspace .ff-table{display:block;overflow:auto;white-space:nowrap}}


/* v3.7.4.1 Team Avatar & Directory Polish */
.ff-team-directory .ff-avatar-col{width:72px;text-align:center}
.ff-team-directory .ff-directory-avatar{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:50%;overflow:hidden;background:#eef4f8;box-shadow:0 0 0 3px #f7fafc}
.ff-team-directory .ff-directory-avatar .ff-avatar{width:44px;height:44px;max-width:none;border-radius:50%;object-fit:cover;display:block}
.ff-team-directory .ff-member-cell{min-width:220px}
.ff-team-directory .ff-member-cell strong,.ff-team-directory .ff-member-cell small{display:block}
.ff-team-directory .ff-member-cell small{margin-top:4px}
@media(max-width:760px){.ff-team-directory .ff-avatar-col{width:58px}.ff-team-directory .ff-member-cell{min-width:180px}}


/* FrameFlow v3.7.5 — Email templates and account avatar refinement */
.ff-account-avatar-wrap .ff-account-avatar{width:100%;height:100%;max-width:none;object-fit:cover;object-position:center;display:block}
.ff-email-templates .ff-section-head{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;margin-bottom:20px}
.ff-template-actions{min-width:300px}
.ff-inline-form{display:flex;gap:8px;align-items:center;justify-content:flex-end}
.ff-inline-form input[type="email"]{min-width:190px}
.ff-email-template-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.ff-template-card{border:1px solid #dce8ef;border-radius:14px;padding:18px;background:#fff}
.ff-template-card-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;margin-bottom:14px}
.ff-template-card h3{margin:0 0 4px;font-size:17px}
.ff-template-card label{display:block;font-size:12px;font-weight:700;color:#344e67;margin-top:12px}
.ff-template-card input,.ff-template-card textarea{width:100%;box-sizing:border-box;margin-top:6px}
.ff-template-card textarea{resize:vertical;line-height:1.45}
.ff-email-preview-modal[hidden]{display:none}
.ff-email-preview-modal{position:fixed;inset:0;background:rgba(19,37,54,.42);z-index:99999;display:grid;place-items:center;padding:20px}
.ff-email-preview-dialog{width:min(600px,100%);max-height:80vh;overflow:auto;background:#fff;border-radius:16px;padding:28px;box-shadow:0 20px 60px rgba(0,0,0,.22);position:relative}
.ff-email-preview-close{position:absolute;right:14px;top:12px;border:0;background:transparent;font-size:28px;line-height:1;cursor:pointer;color:#486178}
.ff-preview-body{white-space:pre-wrap;margin-top:16px;padding:18px;border:1px solid #e5edf3;border-radius:10px;background:#f8fbfd;color:#30465d;line-height:1.55}
@media(max-width:820px){.ff-email-templates .ff-section-head{display:block}.ff-template-actions{min-width:0;margin-top:14px}.ff-inline-form{justify-content:flex-start;flex-wrap:wrap}.ff-email-template-grid{grid-template-columns:1fr}}

/* v3.7.6 Quick Create */
.ff-inline-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.ff-quick-create{margin:16px 0;padding:22px;background:#f8fbfd;border:1px solid #d9e6ef}.ff-quick-create textarea{width:100%;min-height:84px;box-sizing:border-box}.ff-quick-create .ff-section-head{margin-bottom:14px}.ff-project-head{gap:14px}.ff-form-grid p{min-width:0}@media(max-width:700px){.ff-inline-actions{width:100%}.ff-inline-actions .ff-btn{width:100%;text-align:center}}


/* FrameFlow v3.7.7.2 — viewer consistency & task display polish */
.ff-overview-file{display:grid!important;grid-template-columns:36px minmax(0,1fr);width:100%;text-align:left;border:0;background:transparent;font:inherit}
.ff-overview-file>span:last-child{display:flex;flex-direction:column;gap:4px;min-width:0}
.ff-overview-file strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ff-overview-file small{overflow-wrap:anywhere}
.ff-task-display-switch{display:flex;align-items:center;gap:6px;margin:14px 0 18px;padding:9px 0;border-bottom:1px solid #e6edf3}
.ff-task-display-switch>span{font-size:12px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:#708397;margin-right:4px}
.ff-task-display-switch a{padding:6px 10px;border-radius:7px;text-decoration:none;color:#567087;font-size:13px;font-weight:750}
.ff-task-display-switch a:hover{background:#f2f6f9;color:#173f5f}
.ff-task-display-switch a.active{background:#eaf2f7;color:#173f5f;box-shadow:inset 0 -2px 0 #173f5f}
@media(max-width:760px){.ff-overview-file{grid-template-columns:36px minmax(0,1fr)}.ff-task-display-switch{margin-top:10px}}


/* v3.7.7.3 markup status lifecycle dialog */
.ff-status-dialog-backdrop{position:fixed;inset:0;background:rgba(8,27,41,.42);z-index:1000005;display:flex;align-items:center;justify-content:center;padding:18px}
.ff-status-dialog{width:min(440px,100%);background:#fff;border:1px solid #dce6ee;border-radius:14px;box-shadow:0 20px 60px rgba(8,27,41,.22);padding:22px}
.ff-status-dialog h3{margin:0 0 18px;color:#123f5f;font-size:19px}
.ff-status-dialog label{display:block;font-weight:700;color:#173b58;font-size:13px;margin:0 0 14px}
.ff-status-dialog select,.ff-status-dialog textarea{display:block;width:100%;box-sizing:border-box;margin-top:7px;border:1px solid #cbd9e4;border-radius:8px;padding:10px 11px;background:#fff;font:inherit;color:#173b58}
.ff-status-dialog textarea{resize:vertical;min-height:82px}
.ff-status-note-hint{font-weight:400;color:#6c7f91}
.ff-status-dialog-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:18px}
.ff-btn-secondary{border:1px solid #cbd9e4;background:#fff;color:#173b58;border-radius:8px;padding:9px 12px;font-weight:700;cursor:pointer}
.ff-markup-status.is-not_applicable,.ff-markup-status.is-archived{background:#eef2f5;color:#64748b}

/* FrameFlow v3.7.7.4 — status dialog must sit above the file viewer */
.ff-status-dialog-backdrop{z-index:1000005!important}.ff-status-dialog{position:relative;z-index:1000006}

/* v3.7.7.5: contextual secondary navigation and fullscreen-safe dialogs */
.ff-conversation-switch{display:flex;align-items:center;gap:12px;margin:14px 0 18px;padding:10px 12px;border:1px solid #e1e8ee;border-radius:10px;background:#f8fbfd}
.ff-conversation-label{font-size:12px;font-weight:700;color:#5f7180;text-transform:uppercase;letter-spacing:.05em}
.ff-conversation-options{display:flex;flex-wrap:wrap;gap:6px}
.ff-conversation-options a{padding:7px 11px;border-radius:999px;text-decoration:none;color:#35536b;background:#fff;border:1px solid #dfe7ee;font-size:13px;font-weight:600}
.ff-conversation-options a.active{background:#e8f1f6;border-color:#b8cfde;color:#123f5f}
.ff-status-dialog-in-fullscreen{position:fixed!important;z-index:2147483647!important}
@media(max-width:640px){.ff-conversation-switch{align-items:flex-start;flex-direction:column;gap:8px}}


/* FrameFlow v3.7.9 — Project Health action filters */
.ff-health-filterbar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:16px 0 0}
.ff-health-filter-label{font-size:12px;font-weight:800;color:#5b7184;text-transform:uppercase;letter-spacing:.06em;margin-right:2px}
.ff-health-filter{border:1px solid #d5e2eb;background:#fff;color:#31546c;border-radius:999px;padding:7px 11px;font:inherit;font-size:13px;font-weight:700;cursor:pointer}
.ff-health-filter:hover,.ff-health-filter.is-active{background:#173b58;border-color:#173b58;color:#fff}
.ff-health-summary{margin:13px 0 0;color:#60758a;font-size:13px}
.ff-health-table tbody tr.is-filter-hidden{display:none}
.ff-attention-item.is-filter-hidden{display:none}

.ff-btn-xlsx{background:#1f6f4a!important;border-color:#1f6f4a!important;color:#fff!important}.ff-btn-xlsx:hover{filter:brightness(1.06)}

/* v3.7.12 — Commercial Onboarding Wizard */
.ff-onboarding-welcome{display:grid;gap:5px;margin:-2px 0 24px;padding:18px 20px;border:1px solid #dbe8ef;border-radius:14px;background:linear-gradient(135deg,#f8fbfd,#eef6f9)}
.ff-onboarding-welcome span{font-size:10px;font-weight:800;letter-spacing:.12em;color:#52708b}
.ff-onboarding-welcome strong{font-size:17px;color:#153f60}
.ff-onboarding-welcome small{color:#64748b;font-size:13px}
.ff-skip-setup{margin:0}.ff-skip-setup button{appearance:none;border:0;background:transparent;padding:0;color:#5e7488;font:inherit;font-weight:700;cursor:pointer}.ff-skip-setup button:hover{color:#153f60;text-decoration:underline}


/* FrameFlow v3.7.13 — Core QA, Permissions & Mobile Freeze */
.ff-shell{max-width:100%;overflow-x:hidden}
.ff-desk .ff-nav{scroll-padding-inline:12px}
.ff-desk .ff-nav::-webkit-scrollbar{height:6px}
.ff-desk .ff-nav a:focus-visible,.ff-btn:focus-visible,.ff-btn-secondary:focus-visible{outline:3px solid rgba(30,101,145,.32);outline-offset:2px}
.ff-table-wrap table,.ff-card>.widefat{min-width:720px}
.ff-mobile-hint{display:none;font-size:12px;color:#66798a;margin:0 0 8px}
@media(max-width:760px){.ff-mobile-hint{display:block}.ff-card>.widefat{display:table}.ff-card{overflow-x:auto}.ff-card .ff-form-grid{grid-template-columns:1fr!important}.ff-wizard-actions{align-items:stretch;flex-direction:column}.ff-wizard-actions .ff-btn,.ff-wizard-actions .ff-btn-secondary{width:100%}.ff-project-tabs{scroll-snap-type:x proximity}.ff-project-tabs a{scroll-snap-align:start}.ff-notification-popover{position:fixed;left:12px;right:12px;top:68px;width:auto;max-width:none}.ff-desk-user{gap:10px}.ff-desk-user .ff-muted{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:72vw}}


/* FrameFlow v3.7.18.2 — Cost Catalog filter control consistency */
.ff-catalog-workspace .ff-project-head{margin-bottom:24px}
.ff-catalog-workspace .ff-catalog-summary{margin:0 0 28px;padding:15px 17px}
.ff-catalog-controls{display:grid;grid-template-columns:minmax(280px,2fr) minmax(190px,1fr) minmax(190px,1fr);gap:18px;align-items:end;margin:0 0 24px}
.ff-catalog-controls label{display:block;font-weight:700;color:#173f5e;font-size:13px}
.ff-catalog-controls input,.ff-catalog-controls select{width:100%;box-sizing:border-box;margin-top:8px;min-height:42px}
.ff-catalog-search-field label{position:relative}
.ff-help-tip{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;margin-left:6px;padding:0;border:1px solid #9eb5c7;border-radius:50%;background:#fff;color:#315f82;font:700 12px/1 Arial,sans-serif;vertical-align:middle;cursor:help;position:relative}
.ff-help-tip:focus{outline:2px solid #7ea0b8;outline-offset:2px}
.ff-help-tip::after{content:attr(data-tooltip);position:absolute;z-index:50;left:50%;bottom:calc(100% + 9px);transform:translateX(-50%);width:260px;padding:10px 12px;border-radius:8px;background:#133d5d;color:#fff;font-size:12px;line-height:1.45;font-weight:500;text-align:left;box-shadow:0 10px 22px rgba(18,57,85,.22);opacity:0;visibility:hidden;pointer-events:none;transition:opacity .16s ease,transform .16s ease}
.ff-help-tip:hover::after,.ff-help-tip:focus::after{opacity:1;visibility:visible;transform:translateX(-50%) translateY(-2px)}
.ff-catalog-category-nav{display:flex;gap:9px;flex-wrap:wrap;margin:0 0 26px;padding-top:2px}
.ff-catalog-category-nav .ff-cat-chip{min-height:38px}
.ff-catalog-workspace .ff-table{margin-top:2px}
.ff-catalog-workspace .ff-table th{padding-top:16px;padding-bottom:15px}
.ff-catalog-workspace .ff-table td{padding-top:17px;padding-bottom:17px}
@media(max-width:840px){.ff-catalog-controls{grid-template-columns:1fr 1fr}.ff-catalog-search-field{grid-column:1 / -1}}
@media(max-width:560px){.ff-catalog-controls{grid-template-columns:1fr;gap:14px}.ff-catalog-search-field{grid-column:auto}.ff-help-tip::after{left:0;transform:translateX(0);width:min(260px,72vw)}.ff-help-tip:hover::after,.ff-help-tip:focus::after{transform:translateX(0) translateY(-2px)}}


/* FrameFlow v3.7.18.2 — Search / select consistency */
.ff-catalog-controls input,
.ff-catalog-controls select{
  border-radius:8px;
  border:1px solid #c8d7e3;
  background:#fff;
  color:#173f5e;
  font:inherit;
  line-height:1.35;
  transition:border-color .16s ease,box-shadow .16s ease,background-color .16s ease;
}
.ff-catalog-controls input{
  padding:0 13px;
}
.ff-catalog-controls select{
  padding-left:12px;
  padding-right:34px;
}
.ff-catalog-controls input:hover,
.ff-catalog-controls select:hover{
  border-color:#9eb5c7;
}
.ff-catalog-controls input:focus,
.ff-catalog-controls select:focus{
  outline:0;
  border-color:#1d4f73;
  box-shadow:0 0 0 3px rgba(29,79,115,.12);
}
/* FrameFlow v3.7.36 — Project-only Desk navigation */
.ff-file-grid-preview{position:relative;overflow:hidden}.ff-file-grid-preview video{width:100%;height:100%;object-fit:cover;background:#172b3a}.ff-file-preview-play{position:absolute;display:grid;place-items:center;width:42px;height:42px;border-radius:50%;background:rgba(10,31,45,.76);color:#fff;font-size:16px;line-height:1;box-shadow:0 2px 10px rgba(0,0,0,.22)}.ff-file-grid-preview img{display:block}


/* FrameFlow v3.7.38 — Project Files intelligence workspace */
.ff-files-modern{align-items:start}.ff-file-sidebar-top{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:11px}.ff-file-sidebar-top strong{font-size:17px}.ff-file-sidebar-top span,.ff-file-sidebar-note{font-size:12px;color:#667085}.ff-file-sidebar-note{line-height:1.5}.ff-files-toolbar-modern{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:16px 0 10px}.ff-file-search-wrap{display:flex;align-items:center;gap:8px;min-width:230px;flex:1;border:1px solid #d9e3eb;background:#fff;border-radius:10px;padding:0 11px;height:40px;color:#728095}.ff-file-search-wrap input{border:0!important;outline:0!important;box-shadow:none!important;min-width:0;width:100%;padding:0!important;background:transparent!important}.ff-filter-toggle,.ff-view-toggle button{height:40px;border:1px solid #d4e0e8;background:#fff;color:#234861;border-radius:9px;font-weight:700;padding:0 12px;cursor:pointer}.ff-filter-toggle.is-active{border-color:#173f5f;background:#edf5f8}.ff-filter-toggle b{display:inline-grid;place-items:center;min-width:18px;height:18px;margin-left:4px;border-radius:9px;background:#173f5f;color:#fff;font-size:10px}.ff-sort-wrap{display:flex;align-items:center;gap:7px;color:#667085;font-size:12px;font-weight:700}.ff-sort-wrap select{height:40px;border:1px solid #d4e0e8;border-radius:9px;padding:0 9px;background:#fff;color:#234861}.ff-view-toggle{display:flex;border:1px solid #d4e0e8;border-radius:10px;padding:3px;background:#f8fafc}.ff-view-toggle button{height:32px;border:0;border-radius:7px;padding:0 10px;background:transparent}.ff-view-toggle button.active{background:#173f5f;color:#fff}.ff-filter-panel{margin:10px 0 12px;padding:16px;border:1px solid #d9e5ec;border-radius:12px;background:linear-gradient(180deg,#f9fbfc 0%,#f3f7fa 100%)}.ff-filter-panel-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:13px}.ff-filter-panel-head button{border:0;background:none;color:#1d5b7d;font-weight:700;cursor:pointer}.ff-filter-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}.ff-filter-grid label{display:flex;flex-direction:column;gap:6px;color:#667085;font-size:12px;font-weight:800}.ff-filter-grid select{height:38px;border:1px solid #d4e0e8;border-radius:8px;background:#fff;padding:0 8px;color:#344054}.ff-file-results-head{display:flex;justify-content:space-between;gap:12px;font-size:12px;color:#667085;padding:8px 1px}.ff-file-results-head span:first-child{font-weight:800;color:#173f5f}.ff-file-card-title-row{display:flex;gap:8px;align-items:flex-start}.ff-file-card-title-row strong{flex:1;min-width:0}.ff-file-more{border:0;background:transparent;color:#667085;font-weight:900;letter-spacing:1px;cursor:pointer;padding:0 2px}.ff-file-tags{display:flex;flex-wrap:wrap;gap:5px}.ff-file-tag{display:inline-flex;align-items:center;padding:3px 7px;border-radius:999px;font-size:10px;line-height:1.2;font-weight:800;background:#edf2f5;color:#486174}.ff-file-tag-approved{background:#e7f6eb;color:#247342}.ff-file-tag-draft{background:#f7f1df;color:#7e6100}.ff-file-tag-internal_review,.ff-file-tag-client_review{background:#eaf2fb;color:#24588b}.ff-file-tag-superseded,.ff-file-tag-archived{background:#f3f4f6;color:#6b7280}.ff-file-tag-client{background:#e8f3ff;color:#1d5f93}.ff-file-tag-internal{background:#f1f4f6;color:#52606d}.ff-file-tag-version{background:#f8fbfd;border:1px solid #dbe6ec;color:#3a596d}.ff-file-grid-body{position:relative}.ff-file-action-menu{position:absolute;right:8px;top:38px;width:170px;padding:6px;z-index:10;border:1px solid #d9e3eb;border-radius:9px;background:#fff;box-shadow:0 12px 28px rgba(15,42,57,.16)}.ff-file-action-menu a,.ff-file-action-menu button{display:block;width:100%;padding:8px;text-align:left;border:0;background:transparent;border-radius:6px;color:#234861;font-size:12px;text-decoration:none;cursor:pointer}.ff-file-action-menu a:hover,.ff-file-action-menu button:hover{background:#eff6fa}.ff-file-action-menu form{margin:0}.ff-file-collection.ff-file-list{display:flex;flex-direction:column;gap:8px}.ff-file-collection.ff-file-list .ff-file-grid-card{display:grid;grid-template-columns:96px 1fr;min-height:84px}.ff-file-collection.ff-file-list .ff-file-grid-preview{height:auto;min-height:84px;border-bottom:0;border-right:1px solid #e5edf3}.ff-file-collection.ff-file-list .ff-file-grid-body{justify-content:center}.ff-file-collection.ff-file-list .ff-file-grid-preview video{height:84px}.ff-file-collection.ff-file-list .ff-file-tags{margin:2px 0}.ff-file-collection.ff-file-list .ff-file-grid-body>small{min-height:0}.ff-file-collection.ff-file-list .ff-file-grid-icon{padding:8px}
@media(max-width:980px){.ff-filter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.ff-sort-wrap{margin-left:auto}}@media(max-width:640px){.ff-files-toolbar-modern{align-items:stretch}.ff-file-search-wrap{flex-basis:100%}.ff-sort-wrap{margin-left:0;justify-content:space-between;flex:1}.ff-sort-wrap select{flex:1}.ff-filter-grid{grid-template-columns:1fr}.ff-file-results-head{flex-direction:column}.ff-file-collection.ff-file-list .ff-file-grid-card{grid-template-columns:76px 1fr}.ff-file-collection.ff-file-list .ff-file-grid-preview{min-height:76px}}

/* FrameFlow v3.7.47 — Notification deep links and message focus */
.ff-message{scroll-margin-top:110px;transition:background-color .25s ease,box-shadow .25s ease}.ff-message-highlight{background:#fff8d9!important;box-shadow:0 0 0 3px rgba(210,162,57,.24),0 12px 28px rgba(20,62,85,.10);border-radius:12px}.ff-notification-popover>a{cursor:pointer}.ff-notification-row{cursor:pointer}

/* FrameFlow v3.7.50 Permission Center */
.ff-permission-toolbar{display:flex;gap:14px;align-items:center;margin:0 0 14px}.ff-permission-toolbar input{min-width:320px;padding:10px 12px;border:1px solid #cbd5e1;border-radius:8px}.ff-permission-help{color:#64748b}.ff-permission-group{border:1px solid #dbe3ea;border-radius:10px;background:#fff;margin:12px 0;overflow:hidden}.ff-permission-group summary{cursor:pointer;display:flex;justify-content:space-between;align-items:center;padding:14px 16px;background:#f8fafc;list-style:none}.ff-permission-group summary::-webkit-details-marker{display:none}.ff-permission-group summary small{display:block;color:#64748b;margin-top:3px}.ff-permission-group-actions{display:flex;gap:7px}.ff-permission-table-wrap{overflow:auto}.ff-permission-table{min-width:1280px;margin:0!important}.ff-permission-table th{position:sticky;top:32px;background:#fff;z-index:1}.ff-permission-table th:first-child,.ff-permission-table td:first-child{min-width:260px}.ff-permission-table th:not(:first-child),.ff-permission-table td:not(:first-child){text-align:center;min-width:90px}.ff-permission-savebar{position:sticky;bottom:18px;display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:18px;padding:14px 16px;border:1px solid #bfdbfe;background:#eff6ff;border-radius:10px;box-shadow:0 8px 20px rgba(15,23,42,.12)}@media(max-width:782px){.ff-permission-toolbar{align-items:stretch;flex-direction:column}.ff-permission-toolbar input{min-width:0;width:100%}.ff-permission-group summary{align-items:flex-start}.ff-permission-group-actions{flex-wrap:wrap;justify-content:flex-end}.ff-permission-savebar{align-items:flex-start;flex-direction:column}}

.ff-client-message-notice{margin:12px 0;padding:11px 13px;border:1px solid #bfdbfe;background:#eff6ff;color:#1e3a5f;border-radius:8px;font-weight:600}


/* FrameFlow v3.7.52 — Permission Center Accordion Rebuild */
.ff-permission-center{max-width:none;padding:0;overflow:visible}.ff-permission-toolbar{display:flex;justify-content:space-between;gap:18px;align-items:center;padding:20px 22px;border-bottom:1px solid #e3ebf0;background:#fbfdff}.ff-permission-toolbar strong{display:block;font-size:16px;color:#153b59}.ff-permission-toolbar span{display:block;margin-top:3px;color:#657a8d;font-size:13px}.ff-permission-search input{width:300px;max-width:100%;padding:9px 11px;border:1px solid #ccdbe5;border-radius:8px}.ff-permission-group{border-bottom:1px solid #e3ebf0}.ff-permission-group summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 22px;background:#fff}.ff-permission-group summary::-webkit-details-marker{display:none}.ff-permission-group summary>span:first-child{display:flex;align-items:baseline;gap:9px}.ff-permission-group summary strong{color:#173e5d;font-size:15px}.ff-permission-group summary small{color:#708394}.ff-permission-summary-actions{display:flex;align-items:center;gap:7px}.ff-permission-group summary .dashicons{transition:transform .18s ease;color:#537087}.ff-permission-group[open] summary .dashicons{transform:rotate(180deg)}.ff-permission-table-wrap{overflow:auto;padding:0 22px 22px;background:#f8fbfd}.ff-permission-table{min-width:1220px;margin:0}.ff-permission-table th{position:sticky;top:32px;background:#f2f7fa;z-index:1}.ff-permission-table th:first-child{min-width:230px}.ff-permission-table td{text-align:center;vertical-align:middle}.ff-permission-table td:first-child{text-align:left}.ff-permission-table input{margin:0}.ff-permission-savebar{position:sticky;bottom:0;display:flex;justify-content:space-between;align-items:center;gap:14px;padding:14px 22px;background:#fff;border-top:1px solid #dbe6ed;box-shadow:0 -7px 18px rgba(25,63,95,.08);z-index:5}.ff-permission-savebar span{font-size:13px;color:#66798a}@media(max-width:782px){.ff-permission-toolbar{align-items:stretch;flex-direction:column}.ff-permission-search input{width:100%}.ff-permission-group summary{align-items:flex-start}.ff-permission-summary-actions{flex-wrap:wrap;justify-content:flex-end}.ff-permission-savebar{align-items:stretch;flex-direction:column}.ff-permission-savebar .button{width:100%}}


/* FrameFlow v3.7.52 — Permission Center Premium Spacing */
.ff-permission-center{border-radius:14px;overflow:hidden;background:#fff}
.ff-permission-toolbar{padding:24px 24px 22px}
.ff-permission-group{margin:0;border:0;border-bottom:1px solid #e4edf3;border-radius:0;background:#fff}
.ff-permission-group summary{padding:22px 24px 20px;min-height:72px}
.ff-permission-group summary>span:first-child{gap:11px}
.ff-permission-group summary strong{line-height:1.3}
.ff-permission-group summary small{line-height:1.35}
.ff-permission-summary-actions{gap:9px}
.ff-permission-summary-actions .button{padding:3px 10px;min-height:28px}
.ff-permission-table-wrap{padding:18px 24px 26px;background:#f7fafc;border-top:1px solid #edf2f6}
.ff-permission-table{border:1px solid #dce7ee!important;border-radius:10px;overflow:hidden;background:#fff}
.ff-permission-table thead th{height:72px;padding:15px 10px!important;vertical-align:middle;line-height:1.35}
.ff-permission-table tbody td{padding:14px 10px!important;line-height:1.45}
.ff-permission-table tbody td:first-child{padding-left:16px!important}
.ff-permission-table tbody tr{height:66px}
.ff-permission-table tbody tr:nth-child(even) td{background:#fbfdff}
.ff-permission-table tbody tr:hover td{background:#f2f8fc}
.ff-permission-table td:first-child small{display:block;margin-top:5px;color:#718396}
.ff-permission-group:not([open]) summary{padding-top:20px;padding-bottom:20px}
@media(max-width:782px){.ff-permission-toolbar{padding:18px}.ff-permission-group summary{padding:18px}.ff-permission-table-wrap{padding:14px 16px 20px}}


/* FrameFlow v3.7.53 — Permission Center First-Row Label Fix */
.ff-permission-table td.ff-capability-cell{padding-left:16px!important;text-align:left!important;vertical-align:middle!important}
.ff-permission-table .ff-capability-title{display:block!important;visibility:visible!important;opacity:1!important;position:static!important;margin:0 0 5px!important;color:#173e5d!important;font-size:14px!important;font-weight:700!important;line-height:1.35!important}
.ff-permission-table .ff-capability-slug{display:block!important;visibility:visible!important;opacity:1!important;color:#718396!important;font-size:11px!important;font-weight:400!important;line-height:1.3!important}
.ff-permission-table tbody tr:first-child .ff-capability-title{display:block!important;visibility:visible!important;opacity:1!important;color:#173e5d!important}

/* v3.7.58: keep the capability header visible without covering the first row. */
.ff-permission-table th{position:static!important;top:auto!important}
.ff-permission-table thead th{position:static!important}

/* v3.7.59 permission first-row rendering guard */
.ff-permission-table tbody tr:first-child td{padding-top:18px!important;padding-bottom:18px!important;overflow:visible!important;}
.ff-permission-table tbody tr:first-child .ff-capability-cell{position:relative!important;overflow:visible!important;}
.ff-permission-table tbody tr:first-child .ff-capability-title{min-height:19px!important;transform:none!important;clip:auto!important;}

/* FrameFlow Workspace Shell v1 — UX layer only; preserves Desk routes and behavior */
.ff-workspace{max-width:none!important;margin:0!important;min-height:100vh;display:grid;grid-template-columns:270px minmax(0,1fr);background:#f6f8fb;font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif}
.ff-workspace-sidebar{position:sticky;top:0;height:100vh;display:flex;flex-direction:column;padding:20px 14px 14px;background:#101826;color:#d9e2ec;border-right:1px solid rgba(255,255,255,.07);overflow-y:auto;z-index:30}
.ff-company-identity{display:flex;align-items:center;gap:11px;padding:8px 9px 20px;margin-bottom:10px;border-bottom:1px solid rgba(255,255,255,.10)}
.ff-company-identity strong{display:block;color:#fff;font-size:14px;line-height:1.3}.ff-company-identity small{display:block;margin-top:3px;color:#9fb0c2;font-size:11px}
.ff-company-mark,.ff-company-monogram{width:42px;height:42px;flex:0 0 42px;border-radius:11px;object-fit:contain;background:#fff;padding:4px}.ff-company-monogram{display:grid;place-items:center;padding:0;background:color-mix(in srgb,var(--ff-accent) 75%,#fff 25%);color:#fff;font-weight:800;font-size:16px}
.ff-workspace-sidebar .ff-nav{display:flex;flex-direction:column;gap:3px;margin:0}.ff-workspace-sidebar .ff-nav a{position:relative;padding:10px 12px;border-radius:9px;color:#aebdcb;font-size:13px;font-weight:650;transition:.18s ease}.ff-workspace-sidebar .ff-nav a:hover{background:rgba(255,255,255,.07);color:#fff}.ff-workspace-sidebar .ff-nav a.active{background:rgba(255,255,255,.11);color:#fff;box-shadow:inset 3px 0 0 var(--ff-accent)}
.ff-sidebar-bottom{margin-top:auto;padding-top:14px;border-top:1px solid rgba(255,255,255,.10)}.ff-sidebar-user{display:flex;gap:10px;align-items:center;padding:8px}.ff-sidebar-avatar{border-radius:50%}.ff-sidebar-user strong{display:block;color:#f8fafc;font-size:12px}.ff-sidebar-user small{display:block;color:#9fb0c2;font-size:11px;margin-top:3px}.ff-sidebar-settings{display:block;margin:8px;color:#aebdcb;text-decoration:none;font-size:12px}.ff-sidebar-settings:hover{color:#fff}.ff-sidebar-collapse{width:100%;margin-top:8px;padding:8px;border:0;border-radius:8px;background:rgba(255,255,255,.07);color:#d9e2ec;cursor:pointer;font-size:21px;line-height:1}
.ff-workspace-main{min-width:0;padding:34px clamp(20px,4vw,56px) 48px;position:relative;background:linear-gradient(180deg,#fbfcfd 0,#f6f8fb 320px)}.ff-workspace-main:before{content:"";position:absolute;top:0;right:0;width:36%;height:210px;opacity:.35;pointer-events:none;background-image:linear-gradient(90deg,transparent 0 49%,rgba(33,53,71,.06) 50% 51%,transparent 52%),linear-gradient(0deg,transparent 0 49%,rgba(33,53,71,.06) 50% 51%,transparent 52%);background-size:24px 24px;mask-image:linear-gradient(135deg,black,transparent 78%)}
.ff-workspace-content{position:relative;z-index:1}.ff-workspace .ff-desk-head{position:relative;z-index:1;margin:0 0 24px;padding:0 2px}.ff-workspace .ff-desk-head h1{font-size:28px;letter-spacing:-.03em}.ff-workspace .ff-desk-head .ff-sub{margin:5px 0 0}.ff-workspace .ff-card{box-shadow:0 8px 25px rgba(31,45,61,.045);border-color:#e3e9ef;border-radius:15px}.ff-workspace .ff-btn{background:var(--ff-accent,#2c7a7b)}.ff-workspace .ff-nav{display:none}
body.ff-sidebar-collapsed .ff-workspace{grid-template-columns:76px minmax(0,1fr)}body.ff-sidebar-collapsed .ff-workspace-sidebar{padding-left:10px;padding-right:10px}body.ff-sidebar-collapsed .ff-company-identity{justify-content:center;padding-bottom:16px}body.ff-sidebar-collapsed .ff-company-identity>div,body.ff-sidebar-collapsed .ff-sidebar-user span,body.ff-sidebar-collapsed .ff-sidebar-settings{display:none}body.ff-sidebar-collapsed .ff-workspace-sidebar .ff-nav a{font-size:0;height:42px;padding:0}body.ff-sidebar-collapsed .ff-workspace-sidebar .ff-nav a:before{content:"•";display:grid;place-items:center;height:42px;font-size:18px;color:inherit}body.ff-sidebar-collapsed .ff-sidebar-user{justify-content:center}
@media(max-width:900px){.ff-workspace{display:block}.ff-workspace-sidebar{position:relative;height:auto;min-height:auto;padding:12px;overflow:visible}.ff-company-identity{padding-bottom:10px;margin-bottom:8px}.ff-workspace-sidebar .ff-nav{flex-direction:row;overflow-x:auto;padding-bottom:5px}.ff-workspace-sidebar .ff-nav a{white-space:nowrap}.ff-sidebar-bottom{display:none}.ff-workspace-main{padding:24px 16px 36px}.ff-workspace-main:before{display:none}.ff-workspace .ff-desk-head{align-items:flex-start}.ff-workspace .ff-desk-user{font-size:12px}}


/* Workspace Shell v1.1 — Company Experience Profiles (visual layer only) */
.ff-profile-banner{display:inline-flex;align-items:center;gap:9px;margin-top:13px;padding:7px 11px;border:1px solid color-mix(in srgb,var(--ff-accent) 24%,#dbe3ea);border-radius:999px;background:color-mix(in srgb,var(--ff-accent) 7%,#fff);font-size:12px;color:#526477}.ff-profile-banner span{font-weight:800;color:var(--ff-accent)}.ff-profile-banner strong{font-weight:650;color:#26384a}
.ff-profile-architecture_studio .ff-workspace-main:before{background-image:linear-gradient(90deg,transparent 0 49%,rgba(70,67,60,.08) 50% 51%,transparent 52%),linear-gradient(0deg,transparent 0 49%,rgba(70,67,60,.08) 50% 51%,transparent 52%);background-size:28px 28px}.ff-profile-architecture_studio .ff-workspace-main:after{content:"";position:absolute;right:5%;top:42px;width:190px;height:100px;pointer-events:none;opacity:.22;background:repeating-linear-gradient(135deg,transparent 0 14px,rgba(80,77,70,.13) 15px 16px);mask-image:linear-gradient(135deg,black,transparent 82%)}
.ff-profile-residential_builder .ff-workspace-main:before,.ff-profile-remodeling_company .ff-workspace-main:before{background-image:repeating-linear-gradient(90deg,rgba(35,49,60,.075) 0 1px,transparent 1px 26px),linear-gradient(135deg,transparent 0 49%,rgba(35,49,60,.08) 50% 51%,transparent 52%);background-size:auto,36px 36px}.ff-profile-engineering_firm .ff-workspace-main:before{background-image:radial-gradient(circle at 2px 2px,rgba(32,68,92,.13) 1px,transparent 1.4px),linear-gradient(90deg,transparent 0 49%,rgba(32,68,92,.075) 50% 51%,transparent 52%);background-size:18px 18px,36px 36px}.ff-profile-interior_design_studio .ff-workspace-main:before{background-image:radial-gradient(ellipse at 15% 70%,rgba(104,78,53,.11),transparent 42%),radial-gradient(ellipse at 80% 30%,rgba(73,102,84,.10),transparent 46%);background-size:100% 100%}
.ff-workspace .ff-nav a{border-left:3px solid transparent}.ff-workspace .ff-nav a.active{border-left-color:var(--ff-accent)}


/* FrameFlow Workspace Shell v1.2 — Full Navigation & Theme Isolation (UX only) */
.ff-workspace-sidebar .ff-nav{display:flex!important}
.ff-workspace .ff-workspace-sidebar .ff-nav{display:flex!important}
.ff-workspace-sidebar .ff-nav a{display:flex;align-items:center;gap:10px;min-height:40px}
.ff-workspace-sidebar .ff-nav a:before{display:inline-grid;place-items:center;width:18px;height:18px;flex:0 0 18px;font-size:14px;line-height:1;color:#91a5b8}
.ff-workspace-sidebar .ff-nav a[href*="view=tasks"]:before{content:"✓"}.ff-workspace-sidebar .ff-nav a[href*="view=projects"]:before{content:"▦"}.ff-workspace-sidebar .ff-nav a[href*="view=clients"]:before{content:"◎"}.ff-workspace-sidebar .ff-nav a[href*="view=team"]:before{content:"◉"}.ff-workspace-sidebar .ff-nav a[href*="view=catalog"]:before{content:"◇"}.ff-workspace-sidebar .ff-nav a[href*="view=reports"]:before{content:"↗"}.ff-workspace-sidebar .ff-nav a[href*="view=company_settings"]:before{content:"⚙"}.ff-workspace-sidebar .ff-nav a[href*="view=license"]:before{content:"◈"}.ff-workspace-sidebar .ff-nav a[href*="view=onboarding"]:before{content:"✦"}.ff-workspace-sidebar .ff-nav a[href*="view=account"]:before{content:"◌"}.ff-workspace-sidebar .ff-nav a[href*="logout"]:before{content:"↪"}.ff-workspace-sidebar .ff-nav a:not([href*="view="]):not([href*="logout"]):before{content:"⌂"}
.ff-workspace-sidebar .ff-nav a.active:before{color:#fff}
.ff-workspace-sidebar .ff-nav a[href*="view=estimates"],.ff-workspace-sidebar .ff-nav a[href*="view=workforce"],.ff-workspace-sidebar .ff-nav a[href*="view=invoices"]{order:0}
.ff-workspace-sidebar .ff-nav a[href*="view=reports"]{margin-top:10px}
.ff-workspace-sidebar .ff-nav a[href*="view=reports"]:before{color:var(--ff-accent)}
.ff-workspace-main .ff-desk-head{min-height:62px;border-bottom:1px solid #e8edf2;padding-bottom:18px}
.ff-workspace-main .ff-desk-head:after{content:"";position:absolute;left:0;bottom:-1px;width:46px;height:2px;background:var(--ff-accent);border-radius:2px}
body.ff-frameflow-desk .wp-site-blocks>header,body.ff-frameflow-desk .site-header,body.ff-frameflow-desk #masthead,body.ff-frameflow-desk header.wp-block-template-part,body.ff-frameflow-desk footer.wp-block-template-part,body.ff-frameflow-desk #colophon,body.ff-frameflow-desk .site-footer{display:none!important}
body.ff-frameflow-desk .wp-site-blocks,body.ff-frameflow-desk #page,body.ff-frameflow-desk .site{min-height:100vh!important;margin:0!important;padding:0!important;max-width:none!important}
body.ff-frameflow-desk main.wp-block-group,body.ff-frameflow-desk .entry-content,body.ff-frameflow-desk .wp-block-post-content{margin:0!important;padding:0!important;max-width:none!important}
body.ff-frameflow-desk .entry-header,body.ff-frameflow-desk .wp-block-post-title,body.ff-frameflow-desk .entry-title{display:none!important}
@media(max-width:900px){body.ff-frameflow-desk .ff-workspace-sidebar .ff-nav{display:flex!important}.ff-workspace-sidebar .ff-nav a:before{display:none}}


/* v3.7.64.1 — Sidebar navigation single-column guard.
   Prevent inherited flex wrapping from creating a second parallel menu column. */
.ff-workspace-sidebar .ff-nav,
.ff-workspace .ff-workspace-sidebar .ff-nav{
  flex-direction:column!important;
  flex-wrap:nowrap!important;
  align-items:stretch!important;
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  overflow-x:hidden!important;
}
.ff-workspace-sidebar .ff-nav a{
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  flex:0 0 auto!important;
  white-space:normal!important;
}
@media(max-width:900px){
  .ff-workspace-sidebar .ff-nav,
  .ff-workspace .ff-workspace-sidebar .ff-nav{
    flex-direction:row!important;
    flex-wrap:nowrap!important;
    overflow-x:auto!important;
  }
  .ff-workspace-sidebar .ff-nav a{width:auto!important;max-width:none!important;white-space:nowrap!important;}
}


/* FrameFlow v3.7.64.2 — Sidebar Modern Scroll UX.
   The sidebar shell stays fixed; only the navigation column scrolls using a discreet, dark native scrollbar. */
@media (min-width:901px){
  .ff-workspace-sidebar{
    overflow:hidden!important;
  }
  .ff-workspace-sidebar .ff-nav,
  .ff-workspace .ff-workspace-sidebar .ff-nav{
    flex:1 1 auto!important;
    min-height:0!important;
    margin:0 -5px 0 0!important;
    padding:0 7px 14px 0!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
    overscroll-behavior:contain;
    scrollbar-width:thin;
    scrollbar-color:rgba(157,177,196,.56) transparent;
  }
  .ff-workspace-sidebar .ff-nav::-webkit-scrollbar{width:7px}
  .ff-workspace-sidebar .ff-nav::-webkit-scrollbar-track{background:transparent}
  .ff-workspace-sidebar .ff-nav::-webkit-scrollbar-thumb{
    background:rgba(157,177,196,.0);
    border:2px solid transparent;
    background-clip:padding-box;
    border-radius:999px;
    transition:background .18s ease;
  }
  .ff-workspace-sidebar:hover .ff-nav::-webkit-scrollbar-thumb,
  .ff-workspace-sidebar .ff-nav:hover::-webkit-scrollbar-thumb{
    background:rgba(157,177,196,.56);
    border:2px solid transparent;
    background-clip:padding-box;
  }
  .ff-workspace-sidebar .ff-nav::-webkit-scrollbar-thumb:hover{
    background:rgba(217,226,236,.86);
    border:2px solid transparent;
    background-clip:padding-box;
  }
  .ff-sidebar-bottom{
    flex:0 0 auto;
    position:relative;
    z-index:2;
    background:#101826;
  }
}
/* FrameFlow v3.7.65 — Brand presets & live business profile preview */
.ff-company-settings-form .ff-profile-picker-wrap{grid-column:1/-1}.ff-profile-picker{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:8px}.ff-profile-option{appearance:none;border:1px solid #dce5ed;background:#fff;border-radius:12px;padding:14px;text-align:left;cursor:pointer;transition:.18s ease;min-height:126px}.ff-profile-option:hover{border-color:var(--ff-accent);transform:translateY(-1px)}.ff-profile-option.is-selected{border-color:var(--ff-accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--ff-accent) 16%,transparent);background:#fbfdff}.ff-profile-option strong,.ff-profile-option small{display:block}.ff-profile-option strong{margin:7px 0 5px;color:#172638;font-size:13px}.ff-profile-option small{color:#64748b;line-height:1.35;font-size:11px}.ff-profile-icon{display:grid;place-items:center;width:30px;height:30px;border-radius:9px;background:#eef4f8;color:var(--ff-accent);font-size:16px}.ff-profile-live-preview{margin-top:12px;padding:15px 16px;border:1px solid #dde7ee;border-radius:12px;background:linear-gradient(135deg,#f8fbfd,#fff);position:relative;overflow:hidden}.ff-profile-live-preview:after{content:"";position:absolute;right:-20px;top:-25px;width:140px;height:110px;opacity:.35;background:repeating-linear-gradient(135deg,transparent 0 11px,rgba(29,52,73,.12) 12px 13px);pointer-events:none}.ff-profile-preview-badge{display:inline-block;margin-bottom:6px;color:var(--ff-accent);font-size:10px;font-weight:800;letter-spacing:.1em;text-transform:uppercase}.ff-profile-live-preview strong,.ff-profile-live-preview p,.ff-profile-live-preview small{position:relative;z-index:1;display:block}.ff-profile-live-preview p{margin:4px 0 8px;color:#586b7f}.ff-profile-live-preview small{color:#4b6478;font-weight:650}.ff-brand-presets{grid-column:1/-1;padding:16px;border:1px solid #e1e8ee;border-radius:13px;background:#fbfcfe}.ff-brand-presets-head label{font-weight:750;color:#1b2d3f}.ff-brand-presets-head p{margin:4px 0 13px}.ff-color-presets{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}.ff-color-preset{appearance:none;border:1px solid #dfe7ed;background:#fff;border-radius:11px;padding:10px;text-align:left;cursor:pointer;transition:.18s ease}.ff-color-preset:hover{border-color:var(--preset-color);transform:translateY(-1px)}.ff-color-preset.is-selected{border-color:var(--preset-color);box-shadow:0 0 0 2px color-mix(in srgb,var(--preset-color) 16%,transparent)}.ff-color-preset span{display:block;width:100%;height:8px;border-radius:20px;background:var(--preset-color);margin-bottom:8px}.ff-color-preset strong,.ff-color-preset small{display:block}.ff-color-preset strong{font-size:12px;color:#1a2a3b}.ff-color-preset small{font-size:10px;color:#718096;margin-top:2px}@media(max-width:860px){.ff-profile-picker,.ff-color-presets{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:520px){.ff-profile-picker,.ff-color-presets{grid-template-columns:1fr}}

/* FrameFlow v3.7.66 — Modern Components v1 (UX/UI only)
   Shared component polish for cards, buttons, tables, tabs, forms, filters and empty states.
   No routes, permissions, data, or behaviors are changed. */
.ff-workspace{
  --ff-surface:#fff;
  --ff-surface-soft:#f8fafc;
  --ff-border:#e2e9f0;
  --ff-text:#172638;
  --ff-text-muted:#60758a;
  --ff-shadow:0 8px 24px rgba(15,35,55,.055);
}
.ff-workspace .ff-card{
  border:1px solid var(--ff-border)!important;
  border-radius:14px!important;
  background:var(--ff-surface)!important;
  box-shadow:0 2px 7px rgba(15,35,55,.022);
  transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease;
}
.ff-workspace .ff-card:hover{box-shadow:var(--ff-shadow)}
.ff-workspace .ff-card .ff-card{box-shadow:none}
.ff-workspace .ff-section-head,.ff-workspace .ff-project-head{gap:12px}
.ff-workspace .ff-eyebrow{color:var(--ff-accent)!important;font-weight:800;letter-spacing:.09em}
.ff-workspace .ff-muted,.ff-workspace .ff-sub{color:var(--ff-text-muted)!important}

/* Buttons and action controls */
.ff-workspace .ff-btn,.ff-workspace button.ff-btn,.ff-workspace input[type=submit].ff-btn{
  border-radius:9px!important;
  min-height:36px;
  padding:8px 12px!important;
  border:1px solid transparent!important;
  font-weight:750!important;
  letter-spacing:0!important;
  box-shadow:0 1px 1px rgba(15,35,55,.06);
  transition:transform .16s ease,box-shadow .16s ease,filter .16s ease,background .16s ease!important;
}
.ff-workspace .ff-btn:hover{transform:translateY(-1px);box-shadow:0 6px 14px rgba(15,35,55,.14);filter:saturate(1.05)}
.ff-workspace .ff-btn:active{transform:translateY(0);box-shadow:0 1px 2px rgba(15,35,55,.08)}
.ff-workspace .ff-btn:focus-visible,.ff-workspace button:focus-visible,.ff-workspace a:focus-visible,.ff-workspace input:focus-visible,.ff-workspace select:focus-visible,.ff-workspace textarea:focus-visible{outline:3px solid color-mix(in srgb,var(--ff-accent) 26%,transparent);outline-offset:2px}
.ff-workspace .ff-link-btn,.ff-workspace .ff-text-link{color:var(--ff-accent)!important;font-weight:750!important}

/* Fields and filters */
.ff-workspace input[type=text],.ff-workspace input[type=email],.ff-workspace input[type=number],.ff-workspace input[type=date],.ff-workspace input[type=password],.ff-workspace select,.ff-workspace textarea{
  border:1px solid #d5e0e9!important;
  border-radius:9px!important;
  background:#fff!important;
  color:var(--ff-text)!important;
  min-height:38px;
  box-shadow:inset 0 1px 1px rgba(15,35,55,.015);
  transition:border-color .15s ease,box-shadow .15s ease,background .15s ease;
}
.ff-workspace textarea{min-height:92px;padding:10px 11px!important;line-height:1.45}
.ff-workspace input[type=text]:hover,.ff-workspace input[type=email]:hover,.ff-workspace input[type=number]:hover,.ff-workspace input[type=date]:hover,.ff-workspace input[type=password]:hover,.ff-workspace select:hover,.ff-workspace textarea:hover{border-color:#b9c9d7!important}
.ff-workspace input[type=text]:focus,.ff-workspace input[type=email]:focus,.ff-workspace input[type=number]:focus,.ff-workspace input[type=date]:focus,.ff-workspace input[type=password]:focus,.ff-workspace select:focus,.ff-workspace textarea:focus{border-color:var(--ff-accent)!important;box-shadow:0 0 0 3px color-mix(in srgb,var(--ff-accent) 14%,transparent)!important}
.ff-workspace .ff-form label,.ff-workspace .ff-form-grid label{font-weight:750!important;color:#2d4054!important;font-size:12px}
.ff-workspace .ff-form-grid{gap:18px!important}
.ff-workspace .ff-sort-wrap,.ff-workspace .ff-action{border-radius:10px}

/* Tables: clearer header, calmer row rhythm, mobile-safe overflow */
.ff-workspace .ff-table{border:1px solid #edf1f5;border-radius:11px;overflow:auto;background:#fff}
.ff-workspace .ff-table table{border-collapse:separate;border-spacing:0;width:100%}
.ff-workspace .ff-table th{background:#f8fafc!important;color:#667b90!important;font-size:10px!important;letter-spacing:.075em!important;font-weight:800!important;border-bottom:1px solid #e7edf2!important;white-space:nowrap}
.ff-workspace .ff-table td{border-bottom:1px solid #edf1f5!important;color:#2a3c50;vertical-align:middle!important}
.ff-workspace .ff-table tr:last-child td{border-bottom:0!important}
.ff-workspace .ff-table tbody tr{transition:background .14s ease}
.ff-workspace .ff-table tbody tr:hover{background:#f8fbfd!important}
.ff-workspace .ff-table .ff-btn{min-height:32px;padding:6px 9px!important;font-size:11px!important}

/* Tabs, pills, badges */
.ff-workspace .ff-view-tabs{gap:6px!important;padding:4px;border:1px solid #e4ebf1;border-radius:11px;background:#f8fafc;display:inline-flex;max-width:100%;overflow:auto}
.ff-workspace .ff-view-tabs a,.ff-workspace .ff-view-tabs button{border-radius:8px!important;padding:8px 11px!important;color:#52697e!important;font-weight:750!important;white-space:nowrap}
.ff-workspace .ff-view-tabs a.active,.ff-workspace .ff-view-tabs button.active{background:#fff!important;color:#172638!important;box-shadow:0 1px 4px rgba(15,35,55,.10)}
.ff-workspace .ff-pill,.ff-workspace .ff-mini{border-radius:999px!important;font-weight:750!important;letter-spacing:0!important}
.ff-workspace .ff-pill{padding:4px 8px!important}

/* Notices, empty states and stats */
.ff-workspace .ff-notice{border:1px solid #dce8f0!important;border-radius:11px!important;background:#f7fbfe!important;color:#38546d!important}
.ff-workspace .ff-empty{border:1px dashed #d8e3eb!important;border-radius:11px!important;background:linear-gradient(180deg,#fbfdff,#f8fbfd)!important;color:#668096!important;padding:22px!important}
.ff-workspace .ff-stat{border:1px solid #e5edf3!important;border-radius:12px!important;background:linear-gradient(180deg,#fff,#fbfdff)!important;min-height:92px;box-shadow:none!important}
.ff-workspace .ff-statlabel{color:#667c90!important;font-weight:700!important}

/* Modal-like surfaces and upload feedback */
.ff-workspace .ff-upload-progress,.ff-workspace .ff-file-sidebar,.ff-workspace .ff-email-panel{border-radius:12px!important;border-color:#e1e9ef!important}
.ff-workspace .ff-upload-progress-bar{border-radius:999px!important;overflow:hidden}

/* Dense screens keep readable controls */
@media(max-width:760px){
 .ff-workspace .ff-card{border-radius:12px!important}
 .ff-workspace .ff-view-tabs{width:100%}
 .ff-workspace .ff-form-grid{gap:14px!important}
 .ff-workspace .ff-table{margin-left:-1px;margin-right:-1px;border-radius:9px}
}
/* v3.7.66.1 — use the FrameFlow profile image in the sidebar account block. */
.ff-sidebar-user .ff-avatar{width:36px;height:36px;flex:0 0 36px;object-fit:cover;border-radius:50%;display:block;background:#e7edf3}


/* FrameFlow v3.7.66.3 — Wizard Workspace Profile Layout Fix
   Valid structural wrapper + relaxed two-column selector cards. */
.ff-onboarding-layout .ff-profile-picker-wrap{
  grid-column:1/-1!important;
  display:block!important;
  min-width:0!important;
  margin:6px 0 0!important;
}
.ff-onboarding-layout .ff-profile-picker-wrap>label{
  display:block!important;
  margin:0 0 10px!important;
}
.ff-onboarding-layout .ff-wizard-profile-picker{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(220px,1fr))!important;
  gap:12px!important;
  width:100%!important;
  max-width:760px!important;
  margin:0!important;
}
.ff-onboarding-layout .ff-wizard-profile-picker .ff-profile-option{
  width:100%!important;
  min-width:0!important;
  min-height:128px!important;
  padding:15px!important;
  overflow:hidden!important;
}
.ff-onboarding-layout .ff-profile-live-preview{
  display:block!important;
  width:100%!important;
  max-width:760px!important;
  min-height:0!important;
  margin:14px 0 0!important;
  padding:16px 18px!important;
}
.ff-onboarding-layout .ff-profile-live-preview strong{display:block!important;font-size:17px!important;line-height:1.25!important}
.ff-onboarding-layout .ff-profile-live-preview p{max-width:62ch!important;margin:5px 0 8px!important;line-height:1.5!important}
.ff-onboarding-layout .ff-profile-live-preview small{display:block!important;max-width:68ch!important;line-height:1.45!important}
@media(max-width:760px){
 .ff-onboarding-layout .ff-wizard-profile-picker{grid-template-columns:1fr!important;max-width:none!important}
 .ff-onboarding-layout .ff-profile-live-preview{max-width:none!important}
}
/* FrameFlow 3.7.68 - Leads & Clients Data Quality UX */
.ff-phone-field{display:grid;grid-template-columns:150px minmax(0,1fr);gap:8px;align-items:center}.ff-phone-field select,.ff-phone-field input{margin:0}.ff-form-grid .ff-lead-source-custom{grid-column:span 2}@media(max-width:700px){.ff-phone-field{grid-template-columns:1fr}.ff-form-grid .ff-lead-source-custom{grid-column:auto}}

/* FrameFlow Cloud v0.2.0 — private SaaS shell */
body.ff-frameflow-desk .ff-auth{max-width:460px;margin:9vh auto;padding:34px 36px;border-radius:18px;border:1px solid rgba(16,42,67,.10);box-shadow:0 18px 52px rgba(13,31,49,.12);background:#fff;position:relative;overflow:hidden}
body.ff-frameflow-desk .ff-auth:before{content:"";position:absolute;inset:0 0 auto 0;height:4px;background:var(--ff-accent,#2c7a7b)}
body.ff-frameflow-desk .ff-auth .ff-brand{font-size:28px;line-height:1.15;margin:4px 0 10px;color:#102b43}
body.ff-frameflow-desk .ff-auth form{display:grid;gap:10px}
body.ff-frameflow-desk .ff-auth input[type=text],body.ff-frameflow-desk .ff-auth input[type=password],body.ff-frameflow-desk .ff-auth input[type=email]{width:100%;box-sizing:border-box;border:1px solid #d5e0e8;border-radius:9px;padding:11px 12px}
body.ff-frameflow-desk .ff-auth input[type=submit],body.ff-frameflow-desk .ff-auth .ff-btn{background:var(--ff-accent,#2c7a7b);border:0;border-radius:9px;padding:11px 15px;color:#fff;font-weight:700;cursor:pointer}

/* FrameFlow Cloud v0.8.3 — Desk viewport containment & post-registration spacing fix */
html:has(body.ff-frameflow-desk),
body.ff-frameflow-desk{
  width:100%!important;
  max-width:100%!important;
  margin:0!important;
  padding:0!important;
  overflow-x:hidden!important;
}
body.ff-frameflow-desk .wp-site-blocks,
body.ff-frameflow-desk #page,
body.ff-frameflow-desk .site,
body.ff-frameflow-desk #content,
body.ff-frameflow-desk .site-content,
body.ff-frameflow-desk .content-area,
body.ff-frameflow-desk .site-main,
body.ff-frameflow-desk main,
body.ff-frameflow-desk main.wp-block-group,
body.ff-frameflow-desk .entry-content,
body.ff-frameflow-desk .wp-block-post-content{
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  margin:0!important;
  padding:0!important;
}
body.ff-frameflow-desk .ff-workspace{
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  margin:0!important;
  overflow-x:clip!important;
}
body.ff-frameflow-desk .ff-workspace-main{
  min-width:0!important;
  max-width:100%!important;
}
@supports not (overflow:clip){
  body.ff-frameflow-desk .ff-workspace{overflow-x:hidden!important;}
}

/* FrameFlow Cloud v0.8.5 — definitive Desk theme-wrapper removal.
   The active WordPress theme can render empty template-part wrappers before/after the page content.
   Remove those wrappers only when the private Desk is being rendered. */
html:has(body.ff-frameflow-desk),
body.ff-frameflow-desk{
  min-height:100%!important;
  height:100%!important;
  background:#f6f8fb!important;
}
body.ff-frameflow-desk .wp-site-blocks{
  display:block!important;
  min-height:100dvh!important;
  height:auto!important;
  padding:0!important;
  margin:0!important;
}
/* Theme headers / footers, including block-theme template part wrappers. */
body.ff-frameflow-desk .wp-site-blocks>header,
body.ff-frameflow-desk .wp-site-blocks>footer,
body.ff-frameflow-desk .wp-site-blocks>.wp-block-template-part,
body.ff-frameflow-desk .wp-site-blocks>div.wp-block-group:has(header),
body.ff-frameflow-desk .wp-site-blocks>div.wp-block-group:has(footer),
body.ff-frameflow-desk .site>header,
body.ff-frameflow-desk .site>footer{
  display:none!important;
  margin:0!important;
  padding:0!important;
  min-height:0!important;
  height:0!important;
}
/* Remove page-title/entry chrome that can reserve top and bottom whitespace. */
body.ff-frameflow-desk .entry-header,
body.ff-frameflow-desk .wp-block-post-title,
body.ff-frameflow-desk .post-navigation,
body.ff-frameflow-desk .wp-block-post-navigation,
body.ff-frameflow-desk .comments-area,
body.ff-frameflow-desk .wp-block-post-comments{
  display:none!important;
  margin:0!important;
  padding:0!important;
}
/* The Desk itself is the app canvas; it starts at viewport top and supplies the full page height. */
body.ff-frameflow-desk .wp-block-post-content:has(.ff-workspace),
body.ff-frameflow-desk .entry-content:has(.ff-workspace),
body.ff-frameflow-desk main:has(.ff-workspace),
body.ff-frameflow-desk .site-main:has(.ff-workspace){
  margin:0!important;
  padding:0!important;
  min-height:100dvh!important;
  height:100dvh!important;
  display:block!important;
}
body.ff-frameflow-desk .ff-workspace{
  position:relative!important;
  top:0!important;
  min-height:100dvh!important;
  height:100dvh!important;
  margin:0!important;
  padding:0!important;
}
body.ff-frameflow-desk .ff-workspace-main{
  min-height:100dvh!important;
  height:100dvh!important;
}
@media(max-width:760px){
  body.ff-frameflow-desk .wp-block-post-content:has(.ff-workspace),
  body.ff-frameflow-desk .entry-content:has(.ff-workspace),
  body.ff-frameflow-desk main:has(.ff-workspace),
  body.ff-frameflow-desk .site-main:has(.ff-workspace),
  body.ff-frameflow-desk .ff-workspace,
  body.ff-frameflow-desk .ff-workspace-main{height:auto!important;min-height:100dvh!important}
}

/* FrameFlow Cloud v0.9.0 — Guided First Workspace Experience & Plan Activation Hub */
.ff-cloud-preview-bar{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:0 0 18px;padding:12px 14px;border:1px solid color-mix(in srgb,var(--ff-accent,#2c7a7b) 24%,#dce7ed);border-radius:12px;background:linear-gradient(90deg,color-mix(in srgb,var(--ff-accent,#2c7a7b) 8%,#fff),#fff);color:#385267;font-size:13px}
.ff-cloud-preview-bar>div{display:flex;align-items:center;gap:9px;min-width:0}.ff-cloud-preview-bar strong{color:#173a4d}.ff-cloud-preview-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:#d19a22;box-shadow:0 0 0 4px rgba(209,154,34,.12)}.ff-cloud-preview-bar a{flex:0 0 auto;color:#fff!important;background:var(--ff-accent,#2c7a7b);padding:8px 11px;border-radius:8px;font-weight:800;text-decoration:none}
.ff-cloud-activation-card{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(250px,.72fr);gap:22px;margin:0 0 20px;padding:24px;border:1px solid #dbe7ed;border-radius:16px;background:linear-gradient(135deg,#fff 0,#f6fbfc 100%);box-shadow:0 12px 30px rgba(18,45,65,.06)}
.ff-cloud-activation-kicker{display:block;font-size:10px;letter-spacing:.12em;font-weight:850;color:var(--ff-accent,#2c7a7b)}.ff-cloud-activation-copy h2{margin:7px 0 8px;font-size:25px;letter-spacing:-.025em;color:#143146}.ff-cloud-activation-copy>p{margin:0;max-width:67ch;line-height:1.55;color:#5d7281}.ff-cloud-activation-tools{margin-top:15px;padding:10px 12px;border-left:3px solid var(--ff-accent,#2c7a7b);background:#f4f8fa;color:#436174;font-size:13px}
.ff-cloud-plan-recommendation{display:grid;gap:3px;margin-top:14px;padding:12px 14px;border:1px solid #dce8ed;border-radius:11px;background:#fff;max-width:430px}.ff-cloud-plan-recommendation span{font-size:11px;font-weight:850;letter-spacing:.06em;text-transform:uppercase;color:var(--ff-accent,#2c7a7b)}.ff-cloud-plan-recommendation strong{color:#143146}.ff-cloud-plan-recommendation small{color:#688092}
.ff-cloud-activation-actions{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin-top:18px}.ff-cloud-activation-secondary,.ff-cloud-text-action{color:var(--ff-accent,#2c7a7b)!important;font-weight:800;text-decoration:none}.ff-cloud-text-action{font-size:13px}
.ff-cloud-activation-checklist{display:flex;flex-direction:column;align-self:stretch;gap:10px;padding:16px;border:1px solid #dce8ed;border-radius:12px;background:rgba(255,255,255,.74);color:#567083;font-size:13px}.ff-cloud-activation-checklist strong{color:#15394d;font-size:15px}.ff-cloud-activation-checklist .is-done{color:#34744c}.ff-cloud-activation-checklist small{margin-top:auto;padding-top:7px;border-top:1px solid #e2eaee;line-height:1.45;color:#78909f}
@media(max-width:760px){.ff-cloud-preview-bar{align-items:flex-start;flex-direction:column}.ff-cloud-preview-bar>div{align-items:flex-start;flex-wrap:wrap}.ff-cloud-activation-card{grid-template-columns:1fr;padding:18px}.ff-cloud-activation-copy h2{font-size:22px}.ff-cloud-activation-actions{align-items:stretch;flex-direction:column}.ff-cloud-activation-actions .ff-btn,.ff-cloud-activation-actions a{width:100%;text-align:center}.ff-cloud-activation-checklist small{margin-top:8px}}

/* v0.10.1 Super Admin Dashboard Analytics */
.ff-cloud-admin-dashboard{max-width:1320px}.ff-cloud-admin-actions{display:flex;gap:8px;align-items:center}.ff-cloud-kpi-grid{display:grid;grid-template-columns:repeat(5,minmax(150px,1fr));gap:14px;margin:20px 0}.ff-cloud-kpi{position:relative;overflow:hidden;padding:18px;border:1px solid #dce7ed;border-radius:14px;background:#fff;box-shadow:0 8px 20px rgba(18,45,65,.04);display:grid;gap:5px}.ff-cloud-kpi .dashicons{position:absolute;right:14px;top:14px;color:#72aab8;opacity:.72}.ff-cloud-kpi strong{font-size:30px;line-height:1;color:#16374b}.ff-cloud-kpi small{font-weight:700;color:#607888}.ff-cloud-analytics-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:0 0 16px}.ff-cloud-chart-card{padding:20px}.ff-cloud-chart-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:18px}.ff-cloud-chart-heading span{display:block;font-size:16px;font-weight:800;color:#173a4d}.ff-cloud-chart-heading small{display:block;margin-top:3px;color:#718897}.ff-cloud-chart-heading a{font-weight:700;text-decoration:none}.ff-cloud-bars{display:grid;gap:13px}.ff-cloud-bar-row{display:grid;grid-template-columns:minmax(110px,.78fr) minmax(110px,1.6fr) 28px;align-items:center;gap:10px;font-size:13px;color:#4d6879}.ff-cloud-bar-row>b{text-align:right;color:#183b50}.ff-cloud-bar-track{height:9px;overflow:hidden;border-radius:99px;background:#eaf0f3}.ff-cloud-bar-track i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#1a7182,#6db4bd)}.ff-cloud-recent-card{padding:20px}.ff-cloud-pill{display:inline-flex;padding:3px 8px;border-radius:999px;background:#eff5f7;color:#315d70;font-size:11px;font-weight:800}.ff-cloud-status{display:inline-flex;padding:3px 8px;border-radius:999px;font-size:11px;font-weight:800}.ff-cloud-status-active,.ff-cloud-status-trialing{background:#e9f7ed;color:#28713b}.ff-cloud-status-preview,.ff-cloud-status-pending{background:#fff5df;color:#946313}.ff-cloud-status-expired,.ff-cloud-status-suspended,.ff-cloud-status-past_due,.ff-cloud-status-cancelled{background:#fff0f0;color:#aa3a3a}.ff-cloud-recent-table small{color:#76909f}@media(max-width:960px){.ff-cloud-kpi-grid{grid-template-columns:repeat(3,minmax(150px,1fr))}.ff-cloud-analytics-grid{grid-template-columns:1fr}}@media(max-width:600px){.ff-cloud-admin-actions{align-items:stretch;flex-direction:column}.ff-cloud-kpi-grid{grid-template-columns:1fr 1fr}.ff-cloud-bar-row{grid-template-columns:95px minmax(75px,1fr) 22px}.ff-cloud-recent-table{overflow:auto}}

/* v0.11.3.3 — Country-aware company address fields */
.ff-company-settings-form .ff-location-help{display:block;margin-top:7px;font-size:12px;line-height:1.45}.ff-international-location-note{display:none;align-items:flex-start;gap:9px;padding:14px 16px;border:1px dashed #cbd9e8;border-radius:12px;background:#f8fbfe;color:#56708d;font-size:13px;line-height:1.45}.ff-international-location-note strong{color:#193f61;white-space:nowrap}.ff-us-location-field{transition:opacity .15s ease}

/* Cloud v0.11.7.5 — Dashboard membership status & profile-aware activation */
.ff-dashboard-membership-banner{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:16px;align-items:center;margin:0 0 18px;padding:18px 20px;border:1px solid #d9e6ee;border-radius:14px;background:#fff;box-shadow:0 8px 24px rgba(18,54,76,.045)}
.ff-dashboard-membership-banner.is-unselected{border-color:color-mix(in srgb,var(--ff-accent,#174564) 34%,#d9e6ee);background:linear-gradient(135deg,color-mix(in srgb,var(--ff-accent,#174564) 8%,#fff),#fff)}
.ff-dashboard-membership-banner.is-active{border-color:#cce7d8;background:linear-gradient(135deg,#f8fdf9,#fff)}
.ff-dashboard-membership-icon{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;background:var(--ff-accent,#174564);color:#fff;font-weight:900;font-size:18px}
.ff-dashboard-membership-banner.is-active .ff-dashboard-membership-icon{background:#1f7a4f}
.ff-dashboard-membership-copy{min-width:0}.ff-dashboard-membership-copy .ff-eyebrow{display:block;margin:0 0 4px}.ff-dashboard-membership-copy h3{margin:0 0 5px;color:#153b55;font-size:18px}.ff-dashboard-membership-copy p{margin:0;color:#54708a;line-height:1.5}.ff-dashboard-membership-copy small{display:block;margin-top:6px;color:#72889b;line-height:1.45}
.ff-dashboard-membership-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap}.ff-dashboard-membership-link{font-weight:800;text-decoration:none;color:var(--ff-accent,#174564);white-space:nowrap}.ff-dashboard-membership-actions .ff-btn{white-space:nowrap}.ff-btn-secondary{background:#fff!important;color:var(--ff-accent,#174564)!important;border:1px solid color-mix(in srgb,var(--ff-accent,#174564) 36%,#d9e6ee)!important}
@media(max-width:850px){.ff-dashboard-membership-banner{grid-template-columns:auto minmax(0,1fr)}.ff-dashboard-membership-actions{grid-column:1/-1;justify-content:flex-start}.ff-dashboard-membership-actions .ff-btn{width:auto}}
@media(max-width:560px){.ff-dashboard-membership-banner{grid-template-columns:1fr;padding:16px}.ff-dashboard-membership-icon{width:34px;height:34px}.ff-dashboard-membership-actions{align-items:stretch;flex-direction:column}.ff-dashboard-membership-actions .ff-btn,.ff-dashboard-membership-link{text-align:center;width:100%}}


/* v0.12.1 — Super Admin operations console */
.ff-superadmin-page,.ff-superadmin-tenants{max-width:1320px}.ff-superadmin-page .ff-card,.ff-superadmin-tenants .ff-card{margin:18px 0;padding:20px;border:1px solid #dce7ed;border-radius:14px;background:#fff;box-shadow:0 8px 20px rgba(18,45,65,.04)}.ff-superadmin-inline-fields{display:flex;gap:16px;flex-wrap:wrap;margin:16px 0}.ff-superadmin-inline-fields label{display:grid;gap:5px;color:#486373;font-weight:700}.ff-superadmin-inline-fields input{max-width:125px}.ff-superadmin-plan-grid{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));gap:12px}.ff-superadmin-plan-grid article{display:grid;gap:6px;padding:15px;border:1px solid #dce7ed;border-radius:12px;background:#f9fcfd}.ff-superadmin-plan-grid article strong{color:#153b55}.ff-superadmin-plan-grid article span,.ff-superadmin-plan-grid article small{color:#6b8494}.ff-superadmin-plan-grid article b{font-size:18px;color:#1a7182}@media(max-width:850px){.ff-superadmin-plan-grid{grid-template-columns:repeat(2,minmax(150px,1fr))}}@media(max-width:520px){.ff-superadmin-plan-grid{grid-template-columns:1fr}}

/* FrameFlow Cloud v0.12.5.4.1 — Workspace Profile Grid & Selected Panel Layout Fix */
.ff-company-settings-form .ff-profile-picker-wrap{display:block!important;clear:both!important}
.ff-company-settings-form .ff-profile-picker{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;grid-auto-flow:row!important;align-items:stretch!important}
.ff-company-settings-form .ff-profile-live-preview{display:block!important;clear:both!important;grid-column:1/-1!important;width:100%!important;max-width:none!important;margin:14px 0 0!important;position:relative!important;inset:auto!important;float:none!important}
@media(max-width:980px){.ff-company-settings-form .ff-profile-picker{grid-template-columns:repeat(2,minmax(0,1fr))!important}}
@media(max-width:560px){.ff-company-settings-form .ff-profile-picker{grid-template-columns:1fr!important}}

/* v0.12.6.8.4 — Notification overlay and unified linked-file viewer */
.ff-desk-head,.ff-desk-user{overflow:visible!important}.ff-notifications{z-index:100000!important}.ff-notification-popover{z-index:100001!important;min-width:360px;max-height:min(60vh,460px);overflow-y:auto;overflow-x:hidden}.ff-linked-file-viewer{border:0;cursor:pointer}.ff-task-action-help{padding:0 24px 16px;color:#667085;font-size:13px}.ff-task-action-help span{display:inline-block;margin:4px 14px 0 0}.ff-task-action-help b{color:#173f5e}


/* v0.12.6.8.6 – Viewer conversation refinement */
.ff-file-side{padding:0;background:#fbfcfd;display:flex;flex-direction:column;min-height:0}
.ff-file-side>h3{padding:20px 22px 13px;margin:0;border-bottom:1px solid #e7edf2;font-size:16px;letter-spacing:-.01em}
#ff-file-context{padding:16px 22px 8px;overflow:auto;flex:1;min-height:0}
#ff-file-open-message{margin:0 22px 18px;align-self:flex-start;background:#fff;color:#174a6b;border:1px solid #cfe0ea;box-shadow:none}
#ff-file-open-message:hover{background:#f2f8fb}
.ff-viewer-message{display:flex;flex-direction:column;gap:12px}
.ff-viewer-message-head{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}
.ff-viewer-author{display:flex;align-items:center;gap:10px;min-width:0}
.ff-viewer-author .ff-avatar{width:34px;height:34px;flex:0 0 34px}
.ff-viewer-author strong{display:block;font-size:13px;color:#183b54}
.ff-viewer-author small{display:block;color:#7d8fa1;font-size:11px;margin-top:2px}
.ff-viewer-thread-label{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.08em;color:#31718e;background:#edf7fa;padding:5px 7px;border-radius:999px;white-space:nowrap}
.ff-viewer-message-body{font-size:13px;line-height:1.55;color:#34495a;background:#fff;border:1px solid #e4edf2;border-radius:11px;padding:12px 13px;box-shadow:0 2px 6px rgba(19,54,75,.03)}
.ff-viewer-replies{border-top:1px solid #e8eef3;padding-top:12px;display:flex;flex-direction:column;gap:10px}
.ff-viewer-replies h4{margin:0;font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:#60758a}
.ff-viewer-reply{display:flex;gap:9px;align-items:flex-start;padding:10px;background:#f6f9fb;border-radius:10px}
.ff-viewer-reply .ff-avatar{width:28px;height:28px;flex:0 0 28px}
.ff-viewer-reply strong{display:block;font-size:12px}.ff-viewer-reply small{display:block;color:#8494a4;font-size:10px;margin-top:1px}.ff-viewer-reply p{margin:5px 0 0!important;color:#435668;line-height:1.45}
.ff-file-conversation-form{margin-top:12px;padding:13px;border:1px solid #dbe7ee;background:#fff;border-radius:12px;box-shadow:0 6px 18px rgba(15,48,67,.05)}
.ff-viewer-composer-label{display:block;font-weight:800;font-size:11px;letter-spacing:.03em;text-transform:uppercase;color:#34566c;margin-bottom:8px}
.ff-file-conversation-form textarea{display:block;width:100%;box-sizing:border-box;min-height:78px;border:1px solid #d5e2ea;border-radius:9px;background:#fbfdfe;padding:10px;resize:vertical;font-family:inherit;font-size:13px;line-height:1.45}
.ff-file-conversation-form textarea:focus{outline:0;border-color:#1c6686;box-shadow:0 0 0 3px rgba(28,102,134,.12)}
.ff-viewer-composer-actions{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:9px}.ff-viewer-composer-actions small{font-size:10px;color:#8293a1}.ff-viewer-composer-actions .ff-btn{padding:8px 11px}
.ff-file-conversation-empty{text-align:left;padding:14px 0 2px}.ff-viewer-empty-icon{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:#edf6fa;color:#1f6b8a;font-size:20px;margin-bottom:8px}.ff-file-conversation-empty p{margin:5px 0}.ff-file-conversation-empty strong{color:#23465e;font-size:14px}
.ff-markup-panel{margin:0!important;padding:17px 22px 22px;border-top:1px solid #e5edf2;background:#fff}.ff-markup-panel-head h3{font-size:14px}.ff-markup-panel-head span{background:#eaf3f7;color:#174a6b}
@media(max-width:780px){.ff-file-side>h3{padding:14px 16px 10px}#ff-file-context{padding:12px 16px 6px}#ff-file-open-message{margin:0 16px 14px}.ff-markup-panel{padding:14px 16px 16px}}

/* FrameFlow Cloud v0.12.6.8.6.8.5 — Leads & Clients SaaS Form UX Refinement */
.ff-lead-form-shell{max-width:1220px;padding:0!important;overflow:hidden}
.ff-lead-form-head{padding:25px 28px 20px;margin:0;border-bottom:1px solid #e8eef3;align-items:flex-start}
.ff-lead-form-head h2{margin:5px 0 7px!important;font-size:22px!important;letter-spacing:-.02em}
.ff-lead-form-head .ff-muted{max-width:650px;margin:0!important;line-height:1.5}
.ff-eyebrow{display:block;font-size:10px;font-weight:800;letter-spacing:.11em;color:#1c577b}
.ff-lead-form{max-width:960px;padding:8px 28px 28px}
.ff-lead-form-section{padding:25px 0 24px;border-bottom:1px solid #e9eff4}
.ff-lead-form-section:last-of-type{border-bottom:0}
.ff-lead-section-heading{display:flex;align-items:flex-start;gap:12px;margin:0 0 18px}
.ff-lead-section-icon{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;flex:0 0 28px;border-radius:50%;background:#eaf4f8;color:#174d70;font-size:11px;font-weight:800}
.ff-lead-section-heading h3{margin:0 0 3px;font-size:16px;color:#173f5e}
.ff-lead-section-heading h3 small{display:inline-block;margin-left:6px;font-size:11px;font-weight:700;color:#718096}
.ff-lead-section-heading p{margin:0;color:#708197;font-size:13px;line-height:1.45}
.ff-lead-form .ff-form-grid{gap:18px 20px!important}
.ff-lead-form .ff-form-grid>p,.ff-lead-form>p{margin:0}
.ff-lead-form input,.ff-lead-form select,.ff-lead-form textarea{min-height:42px;border-color:#d6e0e8!important;border-radius:9px!important;padding:10px 12px!important;box-shadow:none!important}
.ff-lead-form textarea{min-height:116px;resize:vertical;line-height:1.48}
.ff-lead-form input:focus,.ff-lead-form select:focus,.ff-lead-form textarea:focus{border-color:#1a5c80!important;box-shadow:0 0 0 3px rgba(26,92,128,.10)!important;outline:0}
.ff-lead-form label{gap:7px!important}
.ff-lead-form small.ff-muted{font-weight:500;line-height:1.35}
.ff-lead-opportunity-section{background:linear-gradient(90deg,rgba(242,248,251,.82),rgba(255,255,255,0));margin:0 -28px;padding-left:28px;padding-right:28px}
.ff-lead-notes-section{padding-bottom:18px}
.ff-lead-notes-label{max-width:100%}
.ff-lead-form-actions{display:flex;justify-content:flex-end;gap:10px;align-items:center;padding:20px 0 0}
.ff-lead-form-actions .ff-btn{min-width:120px;text-align:center}
@media(max-width:760px){.ff-lead-form-head{padding:20px}.ff-lead-form{padding:4px 20px 22px}.ff-lead-opportunity-section{margin:0 -20px;padding-left:20px;padding-right:20px}.ff-lead-form-actions{flex-direction:column-reverse;align-items:stretch}.ff-lead-form-actions .ff-btn{width:100%}}


/* FrameFlow v0.12.6.8.6.9.3 — Smart Catalog Editor Layout Hotfix
   Prevent catalog-new field collapse/overlap and retain a compact Desk-first layout. */
.ff-catalog-editor .ff-catalog-form{max-width:none!important;width:100%!important}
.ff-catalog-editor .ff-catalog-form .ff-form-grid{
  display:grid!important;
  grid-template-columns:minmax(112px,.7fr) minmax(220px,1.55fr) minmax(255px,1.65fr) minmax(180px,1.05fr)!important;
  gap:20px!important;
  align-items:start!important;
  width:100%!important;
}
.ff-catalog-editor .ff-catalog-form .ff-form-grid>p{
  min-width:0!important;
  width:auto!important;
  margin:0!important;
  display:block!important;
}
.ff-catalog-editor .ff-catalog-form .ff-form-grid>p label{
  display:flex!important;
  flex-direction:column!important;
  gap:7px!important;
  min-width:0!important;
}
.ff-catalog-editor .ff-catalog-form .ff-form-grid input,
.ff-catalog-editor .ff-catalog-form .ff-form-grid select{
  display:block!important;
  width:100%!important;
  min-width:0!important;
  margin:0!important;
}
.ff-catalog-editor .ff-catalog-form .ff-form-grid .ff-span-12{
  grid-column:1 / -1!important;
  width:100%!important;
}
.ff-catalog-editor .ff-catalog-form select[multiple]{
  min-height:156px!important;
  padding:8px 10px!important;
  line-height:1.45!important;
}
.ff-catalog-editor .ff-catalog-form>p{
  margin:20px 0 0!important;
  max-width:980px!important;
}
.ff-catalog-editor .ff-catalog-form>p label{display:flex!important;flex-direction:column!important;gap:7px!important}
.ff-catalog-editor .ff-catalog-form>p textarea{width:100%!important;min-height:92px!important}
.ff-catalog-editor .ff-catalog-form>button{margin-top:22px!important}
@media(max-width:1100px){
  .ff-catalog-editor .ff-catalog-form .ff-form-grid{
    grid-template-columns:minmax(130px,.75fr) minmax(220px,1.45fr) minmax(235px,1.55fr)!important;
  }
  .ff-catalog-editor .ff-catalog-form .ff-form-grid>p:nth-child(4){grid-column:1 / span 1!important}
}
@media(max-width:820px){
  .ff-catalog-editor .ff-catalog-form .ff-form-grid{grid-template-columns:1fr 1fr!important}
}
@media(max-width:580px){
  .ff-catalog-editor .ff-catalog-form .ff-form-grid{grid-template-columns:1fr!important}
  .ff-catalog-editor .ff-catalog-form .ff-form-grid>p:nth-child(4){grid-column:auto!important}
}
