:root{--ink:#111713;--ink2:#28312b;--muted:#68736d;--line:#dfe5e1;--soft:#f5f7f5;--paper:#fff;--green:#13d660;--green-dark:#0aa64a;--danger:#b42318;--warn:#946200;--sidebar:250px;--radius:16px;--shadow:0 8px 28px rgba(17,23,19,.08)}*{box-sizing:border-box}html{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:#eef2ef}body{margin:0}.app-shell{min-height:100vh;display:grid;grid-template-columns:var(--sidebar) 1fr}.sidebar{position:sticky;top:0;height:100vh;background:var(--ink);color:#fff;padding:22px 16px;display:flex;flex-direction:column;gap:22px}.brand{display:flex;align-items:center;gap:10px;color:#fff;text-decoration:none;padding:0 7px}.brand img{width:38px;height:38px;object-fit:contain}.brand strong{font-size:12px;letter-spacing:.08em;display:block}.brand small{color:#9eaaa3;font-size:12px}.sidebar nav{display:flex;flex-direction:column;gap:4px}.sidebar nav a,.sidebar-bottom>a{color:#c7d0ca;text-decoration:none;padding:10px 12px;border-radius:10px;font-size:14px}.sidebar nav a:hover,.sidebar nav a.active,.sidebar-bottom>a:hover{background:#233028;color:#fff}.sidebar nav a.active{box-shadow:inset 3px 0 0 var(--green)}.sidebar-bottom{margin-top:auto;display:flex;flex-direction:column}.user{border-top:1px solid #2b3730;margin-top:12px;padding:16px 12px 0;display:flex;justify-content:space-between;align-items:center;color:#b8c3bd;font-size:13px}.user form{margin:0}.user button{border:0;background:none;color:#8fa098;cursor:pointer}.main{min-width:0}.page{max-width:1500px;margin:0 auto;padding:32px}.mobile-head{display:none}.page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:22px}.page-head h1{margin:2px 0 0;font-size:30px;letter-spacing:-.03em}.eyebrow{text-transform:uppercase;letter-spacing:.12em;font-size:11px;font-weight:800;color:var(--green-dark)}.page-actions{display:flex;gap:8px;flex-wrap:wrap}.button,button.button{display:inline-flex;align-items:center;justify-content:center;text-decoration:none;border:1px solid transparent;border-radius:10px;padding:9px 13px;font:inherit;font-weight:700;font-size:13px;cursor:pointer}.button.primary{background:var(--ink);color:#fff}.button.green{background:var(--green);color:#06180d}.button.secondary{background:#fff;border-color:var(--line);color:var(--ink)}.button.danger{background:#fff0ef;color:var(--danger);border-color:#ffd1cc}.button.small{padding:6px 9px;font-size:12px}.grid{display:grid;gap:16px}.grid.stats{grid-template-columns:repeat(5,minmax(0,1fr));margin-bottom:20px}.stat,.card,.panel{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.stat{padding:18px}.stat .label{font-size:12px;color:var(--muted);font-weight:700}.stat .value{font-size:28px;font-weight:800;margin-top:6px;letter-spacing:-.04em}.stat .detail{font-size:12px;color:var(--muted);margin-top:4px}.panel{padding:20px;margin-bottom:16px}.panel h2,.panel h3{margin:0 0 14px}.two-col{display:grid;grid-template-columns:1.25fr .75fr;gap:16px}.three-col{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.table-wrap{overflow:auto;background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}table{width:100%;border-collapse:collapse;font-size:13px}th,td{text-align:left;padding:12px 14px;border-bottom:1px solid #edf0ee;vertical-align:top}th{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:#748078;background:#fafbfa}tr:last-child td{border-bottom:0}td a{color:#152f20;font-weight:700;text-decoration:none}td a:hover{text-decoration:underline}.badge{display:inline-flex;padding:4px 8px;border-radius:999px;font-size:11px;font-weight:800;white-space:nowrap;background:#edf0ee;color:#536058}.badge.success{background:#e4f8ea;color:#137037}.badge.warn{background:#fff4d8;color:#7b5200}.badge.danger{background:#feeceb;color:#9d1c14}.badge.neutral{background:#edf0ee;color:#536058}.flash{padding:12px 14px;border-radius:10px;margin-bottom:16px;background:#eaf3ff;color:#21466b}.flash.success{background:#e4f8ea;color:#125f31}.flash.error{background:#feeceb;color:#8f1b14}.flash.warn{background:#fff4d8;color:#765000}.filters{display:flex;gap:10px;align-items:end;flex-wrap:wrap;margin-bottom:14px}.filters label{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}.filters input,.filters select{display:block;margin-top:5px;min-width:180px}.form-card{max-width:900px;background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:22px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.field{display:flex;flex-direction:column;gap:6px;font-size:12px;font-weight:800;color:#536058}.field b{color:var(--danger)}.field textarea,.field input,.field select,.filters input,.filters select{width:100%;font:inherit;color:var(--ink);background:#fff;border:1px solid #cfd7d2;border-radius:9px;padding:10px 11px;outline:none}.field textarea:focus,.field input:focus,.field select:focus,.filters input:focus,.filters select:focus{border-color:#6da77f;box-shadow:0 0 0 3px rgba(19,214,96,.10)}.field:has(textarea),.field:has(.checkbox){grid-column:1/-1}.field .checkbox{width:20px;height:20px}.form-actions{display:flex;gap:8px;margin-top:20px}.detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 28px}.detail-row{padding:12px 0;border-bottom:1px solid #edf0ee}.detail-row dt{font-size:11px;color:var(--muted);font-weight:800;text-transform:uppercase;letter-spacing:.05em;margin-bottom:4px}.detail-row dd{margin:0;font-size:14px;line-height:1.5}.subnav{display:flex;gap:4px;overflow:auto;background:#fff;border:1px solid var(--line);border-radius:12px;padding:5px;margin-bottom:18px}.subnav a{text-decoration:none;color:#58655e;font-size:12px;font-weight:750;padding:8px 10px;border-radius:8px;white-space:nowrap}.subnav a.active,.subnav a:hover{background:#edf5ef;color:#102c1c}.empty{padding:28px;color:var(--muted);text-align:center}.list-clean{list-style:none;padding:0;margin:0}.list-clean li{padding:11px 0;border-bottom:1px solid #edf0ee}.list-clean li:last-child{border-bottom:0}.list-clean a{text-decoration:none;color:var(--ink);font-weight:700}.meta{color:var(--muted);font-size:12px}.onboarding-step{display:grid;grid-template-columns:38px 1fr auto;gap:12px;align-items:center;padding:12px 0;border-bottom:1px solid #edf0ee}.step-dot{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;font-weight:900;background:#edf0ee;color:#67736c}.onboarding-step.complete .step-dot{background:#dff8e7;color:#157137}.onboarding-step.complete .step-title{text-decoration:line-through;color:#7a857f}.notification{padding:12px;border:1px solid var(--line);border-radius:12px;margin-bottom:8px;background:#fff}.notification.danger{border-color:#ffd0cb}.notification.warn{border-color:#f3d892}.muted{color:var(--muted)}.kicker{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-weight:800}.big{font-size:22px;font-weight:800}.code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;background:#f4f6f4;border-radius:7px;padding:2px 5px}.login-shell{min-height:100vh;display:grid;place-items:center;padding:24px;background:#0f1712}.login-card{width:min(440px,100%);background:#fff;border-radius:20px;padding:30px;box-shadow:0 30px 80px rgba(0,0,0,.28)}.login-brand{display:flex;align-items:center;gap:12px;margin-bottom:22px}.login-brand img{width:52px;height:52px}.login-brand strong{display:block}.login-brand span{color:var(--muted);font-size:13px}.login-card h1{font-size:24px;margin:0 0 8px}.login-card p{color:var(--muted);font-size:14px}.login-card .field{margin-top:14px}.login-card .button{width:100%;margin-top:18px}.login-error{background:#feeceb;color:#8f1b14;border-radius:10px;padding:10px 12px;font-size:13px}.note{padding:13px 14px;background:#f2f6f3;border-left:4px solid var(--green-dark);border-radius:9px;color:#455149;font-size:13px}.roadmap{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.roadmap-col{background:#fff;border:1px solid var(--line);border-radius:14px;padding:15px}.roadmap-col h3{margin:0 0 10px}.roadmap-item{padding:9px 0;border-top:1px solid #eef1ef;font-size:13px}.roadmap-item:first-of-type{border-top:0}@media(max-width:1100px){.grid.stats{grid-template-columns:repeat(2,1fr)}.two-col,.three-col,.roadmap{grid-template-columns:1fr}.detail-grid{grid-template-columns:1fr}}@media(max-width:800px){.app-shell{display:block}.sidebar{position:fixed;left:-270px;z-index:20;width:250px;transition:left .2s}.menu-open .sidebar{left:0}.mobile-head{display:flex;position:sticky;top:0;z-index:10;background:#111713;color:#fff;padding:10px 14px;justify-content:space-between;align-items:center}.mobile-brand{color:#fff;text-decoration:none;display:flex;gap:8px;align-items:center;font-weight:800}.mobile-brand img{width:28px;height:28px}.mobile-head button{background:#26322a;border:0;color:#fff;border-radius:8px;padding:7px 10px}.page{padding:20px 14px}.form-grid{grid-template-columns:1fr}.page-head{align-items:stretch;flex-direction:column}.grid.stats{grid-template-columns:1fr 1fr}}@media(max-width:480px){.grid.stats{grid-template-columns:1fr}}

/* ============================================================
   CUSTOMER HOME BASE
   ============================================================ */
.home-base-body{background:#f1f4f1;color:var(--ink);min-height:100vh}.hb-shell{min-height:100vh;display:flex;flex-direction:column}.hb-topbar{background:#111713;color:#fff;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:18px clamp(18px,4vw,54px);border-bottom:1px solid #26322a}.hb-brand{display:flex;align-items:center;gap:11px;color:#fff;text-decoration:none}.hb-brand img{width:42px;height:42px;object-fit:contain}.hb-brand strong{display:block;font-size:12px;letter-spacing:.09em}.hb-brand small{display:block;color:#9fb0a5;font-size:10px;letter-spacing:.16em;margin-top:2px}.hb-account{text-align:right;display:flex;flex-direction:column;font-size:13px;font-weight:750}.hb-account small{font-weight:500;color:#aeb9b2}.hb-nav{display:flex;align-items:center;gap:4px;padding:8px clamp(18px,4vw,54px);background:#fff;border-bottom:1px solid var(--line);overflow:auto;position:sticky;top:0;z-index:15}.hb-nav a,.hb-nav button{white-space:nowrap;border:0;background:transparent;color:#5a675f;text-decoration:none;font:inherit;font-size:13px;font-weight:750;padding:9px 11px;border-radius:9px;cursor:pointer}.hb-nav a:hover,.hb-nav a.active{background:#edf5ef;color:#102c1c}.hb-nav form{margin-left:auto}.hb-nav button:hover{background:#f2f4f2;color:#111713}.hb-main{width:min(1180px,calc(100% - 32px));margin:0 auto;padding:34px 0 54px;flex:1}.hb-footer{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;padding:22px clamp(18px,4vw,54px);border-top:1px solid var(--line);color:#6e7972;background:#fff;font-size:12px}.hb-footer a{color:#3f5b49}.hb-hero{background:linear-gradient(135deg,#111713,#1c2b21);color:#fff;border-radius:24px;padding:clamp(26px,5vw,48px);display:flex;justify-content:space-between;align-items:flex-end;gap:28px;box-shadow:0 20px 60px rgba(17,23,19,.16);margin-bottom:20px}.hb-hero .eyebrow{color:#7bf29c}.hb-hero h1{font-size:clamp(32px,6vw,58px);letter-spacing:-.055em;line-height:.96;margin:6px 0 14px;max-width:760px}.hb-hero p{font-size:16px;line-height:1.55;color:#c6d1ca;max-width:680px;margin:0}.hb-hero-actions{display:flex;gap:8px;flex-wrap:wrap}.hb-hero .button.primary{background:var(--green);color:#092013}.hb-hero .button.secondary{background:transparent;border-color:#506056;color:#fff}.hb-stat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:18px}.hb-stat{background:#fff;border:1px solid var(--line);border-radius:16px;padding:18px 20px;box-shadow:var(--shadow)}.hb-stat span{display:block;color:var(--muted);font-size:12px;font-weight:750}.hb-stat strong{display:block;font-size:30px;letter-spacing:-.04em;margin:3px 0}.hb-stat small{color:#7a857f}.hb-two{display:grid;grid-template-columns:1fr 1fr;gap:16px}.hb-card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:22px;box-shadow:var(--shadow);margin-bottom:16px}.hb-card h2{margin:0;font-size:20px;letter-spacing:-.02em}.hb-card-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px}.hb-card-head>a{font-size:12px;font-weight:750;color:#356146;text-decoration:none}.hb-list{display:flex;flex-direction:column}.hb-list-row{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:12px 0;border-top:1px solid #edf0ee;text-decoration:none;color:inherit}.hb-list-row:first-child{border-top:0}.hb-list-row>div{display:flex;flex-direction:column;gap:2px;min-width:0}.hb-list-row strong{font-size:14px}.hb-list-row small,.hb-list-row>span{font-size:12px;color:var(--muted)}.hb-row-link:hover strong{text-decoration:underline}.hb-status{display:inline-flex;padding:5px 9px;border-radius:999px;background:#edf5ef;color:#31533c;font-size:11px;font-weight:800;white-space:nowrap}.hb-empty{color:var(--muted);font-size:13px;padding:18px 0}.hb-roadmap{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.hb-roadmap>div{background:#f7f9f7;border:1px solid #e4e9e5;border-radius:14px;padding:15px}.hb-roadmap h3{font-size:11px;letter-spacing:.13em;color:#617068;margin:0 0 9px}.hb-roadmap article{padding:10px 0;border-top:1px solid #e4e9e5}.hb-roadmap article:first-of-type{border-top:0}.hb-roadmap article strong{font-size:13px}.hb-roadmap article p{font-size:12px;line-height:1.45;color:var(--muted);margin:4px 0 0}.hb-muted{color:var(--muted);font-size:12px}.hb-page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:20px}.hb-page-head h1{font-size:38px;letter-spacing:-.045em;margin:3px 0 6px}.hb-page-head p{margin:0;color:var(--muted);max-width:720px}.hb-work-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.hb-work-card{border:1px solid #e2e7e3;border-radius:15px;padding:17px;background:#fcfdfc}.hb-work-top{display:flex;justify-content:space-between;gap:10px;align-items:center}.hb-work-top small{font-size:10px;font-weight:850;letter-spacing:.08em;color:#77837c}.hb-work-card h3{font-size:16px;margin:10px 0 7px}.hb-work-card>p{color:#65716a;font-size:13px;line-height:1.5;margin:0 0 12px}.hb-work-card>a{font-size:13px;color:#24583a;word-break:break-word}.hb-meta-row{display:flex;gap:12px;flex-wrap:wrap;margin-top:14px;font-size:11px;color:#7a857f}.hb-resolution{background:#f0f6f1;border-radius:10px;padding:11px;margin-top:10px}.hb-resolution strong{font-size:11px;text-transform:uppercase;letter-spacing:.07em;color:#4e6256}.hb-resolution p{font-size:12px;color:#536058;margin:5px 0 0;line-height:1.45}.hb-mini-dl{margin:12px 0 0;display:grid;gap:7px}.hb-mini-dl>div{display:flex;justify-content:space-between;gap:12px;border-top:1px solid #edf0ee;padding-top:7px}.hb-mini-dl dt,.hb-mini-dl dd{font-size:11px;margin:0}.hb-mini-dl dt{color:#7a857f}.hb-mini-dl dd{text-align:right;font-weight:700}.hb-file-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.hb-file{min-width:0;border:1px solid #e2e7e3;border-radius:14px;padding:16px;text-decoration:none;color:var(--ink);display:flex;flex-direction:column;gap:5px;background:#fcfdfc}.hb-file:hover{border-color:#a8c3af;box-shadow:0 8px 24px rgba(17,23,19,.06)}.hb-file-icon{font-size:24px;color:#188244}.hb-file strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hb-file small{color:var(--muted)}.hb-form-card{max-width:820px}.hb-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.hb-form-card .field{margin-bottom:14px}.hb-login-card{width:min(480px,100%);margin:7vh auto;background:#fff;border:1px solid var(--line);border-radius:22px;padding:30px;box-shadow:0 24px 70px rgba(17,23,19,.12)}.hb-login-brand{display:flex;align-items:center;gap:12px;margin-bottom:22px}.hb-login-brand img{width:48px;height:48px}.hb-login-brand strong{display:block;font-size:12px;letter-spacing:.08em}.hb-login-brand span{display:block;font-size:11px;letter-spacing:.14em;color:#67736c}.hb-login-card h1{font-size:30px;letter-spacing:-.04em;margin:0 0 9px}.hb-lede{font-size:14px;color:var(--muted);line-height:1.55;margin:0 0 18px}.hb-login-form .field{margin:14px 0}.hb-login-form .button{width:100%;padding:12px}.hb-small{font-size:11px;color:#7a857f;text-align:center;margin-top:13px}.hb-inline-form{display:inline;margin-right:10px}.hb-text-button{border:0;background:none;padding:8px 0;color:#356146;font:inherit;font-size:12px;font-weight:750;cursor:pointer}.hb-org-chooser{display:grid;gap:10px}.hb-org-chooser form{margin:0}.hb-org-chooser button{width:100%;text-align:left;background:#f8faf8;border:1px solid #dfe5e1;border-radius:13px;padding:14px 15px;display:flex;justify-content:space-between;gap:12px;cursor:pointer}.hb-org-chooser button:hover{border-color:#90ae99}.hb-org-chooser button span{color:var(--muted);font-size:12px}
@media(max-width:800px){.hb-topbar{padding:14px 16px}.hb-account{display:none}.hb-nav{padding:7px 12px}.hb-nav form{margin-left:0}.hb-main{width:min(100% - 22px,1180px);padding:22px 0 40px}.hb-hero{align-items:flex-start;flex-direction:column;border-radius:18px}.hb-stat-grid,.hb-two,.hb-roadmap,.hb-work-grid,.hb-file-grid,.hb-form-grid{grid-template-columns:1fr}.hb-page-head{align-items:flex-start;flex-direction:column}.hb-page-head h1{font-size:32px}.hb-footer{flex-direction:column}.hb-login-card{margin:4vh auto;padding:24px}}

/* Roadmap + task dependency controls */
.roadmap-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:14px}.roadmap-head h2{margin:0 0 4px}.roadmap-card{display:flex;flex-direction:column;gap:7px}.roadmap-card-top{display:flex;align-items:flex-start;gap:7px}.roadmap-card-top a{color:var(--ink);text-decoration:none;font-weight:800;line-height:1.35}.roadmap-card-top a:hover{text-decoration:underline}.roadmap-description{line-height:1.45}.roadmap-controls{display:grid;grid-template-columns:1fr 1.35fr auto;gap:6px;align-items:center}.roadmap-controls select{min-width:0;width:100%;font:inherit;font-size:11px;border:1px solid #cfd7d2;background:#fff;border-radius:8px;padding:7px 8px}.roadmap-blocked{font-size:11px;line-height:1.4;padding:7px 8px;background:#fff4d8;border-radius:8px;color:#765000}.roadmap-add{display:flex;gap:6px;flex-wrap:wrap;padding-top:11px;border-top:1px solid #eef1ef;margin-top:8px}.roadmap-add .button{font-size:11px;padding:6px 8px}.dependency-list{display:flex;flex-direction:column}.dependency-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0;border-top:1px solid #edf0ee}.dependency-row:first-child{border-top:0}.dependency-row a{text-decoration:none;color:var(--ink)}.dependency-add{margin-top:14px;display:flex;align-items:flex-end;gap:8px}.dependency-add .field{flex:1}.hb-roadmap article small{display:block;font-size:9px;font-weight:850;letter-spacing:.06em;color:#77837c;text-transform:uppercase;margin-bottom:4px}@media(max-width:800px){.roadmap-head{flex-direction:column}.roadmap-controls{grid-template-columns:1fr}.dependency-add{align-items:stretch;flex-direction:column}}

/* Customer branding + estimate builder */
.customer-brand-panel{display:flex;align-items:center;gap:18px;background:linear-gradient(135deg,#101b14,#17271d);color:#fff;border-radius:18px;padding:16px 20px;margin-bottom:18px;box-shadow:0 10px 30px rgba(12,27,17,.12)}
.customer-brand-panel img{width:116px;height:78px;object-fit:contain;background:#fff;border-radius:12px;padding:8px}.customer-brand-panel .meta{color:#c8d4ca}.customer-brand-panel .kicker{color:#82ef70}
.estimate-builder-head{display:grid;grid-template-columns:1.2fr 1fr;gap:16px;margin-bottom:18px}.customer-brand-row{display:flex;align-items:center;gap:15px}.customer-logo-preview{width:118px;height:78px;object-fit:contain;border:1px solid #d9e1d9;border-radius:12px;padding:8px;background:#fff}.customer-logo-placeholder{width:118px;height:78px;border:1px dashed #bac5bb;border-radius:12px;display:flex;align-items:center;justify-content:center;color:#788178;background:#f5f7f4}.row-actions{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.row-actions form{margin:0}.field.full{grid-column:1/-1}
@media(max-width:800px){.estimate-builder-head{grid-template-columns:1fr}.customer-brand-panel{align-items:flex-start}.customer-brand-panel img{width:90px;height:64px}}


/* Travis Technology tumbling-T loader */
.tt-loading-overlay{position:fixed;inset:0;z-index:99999;display:flex;align-items:center;justify-content:center;background:transparent;backdrop-filter:none;-webkit-backdrop-filter:none;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .14s ease,visibility .14s ease}
.tt-loading-overlay.is-active{opacity:1;visibility:visible;pointer-events:auto}
.tt-tumble-mark{position:relative;width:62px;height:62px;filter:drop-shadow(0 2px 8px rgba(17,23,19,.10))}
.tt-tumble-t{position:absolute;left:50%;top:50%;display:block;width:26px;height:32px;font-size:0;color:transparent;transform-origin:50% 50%;animation:tt-tumble-a 2.6s cubic-bezier(.55,.05,.45,.95) infinite}
.tt-tumble-t::before,.tt-tumble-t::after{content:"";position:absolute;display:block;background:#7bcb8d;border-radius:1px}
.tt-tumble-t::before{left:0;top:0;width:26px;height:7px}
.tt-tumble-t::after{left:9.5px;top:6px;width:7px;height:26px}
.tt-tumble-t:nth-child(2){animation-name:tt-tumble-b}
@keyframes tt-tumble-a{0%,24%{transform:translate(-25px,-8px) rotate(-45deg) scale(1)}37%{transform:translate(-21px,-28px) rotate(45deg) scale(1.03)}50%{transform:translate(-1px,-24px) rotate(135deg) scale(1)}63%{transform:translate(-5px,-4px) rotate(225deg) scale(1.03)}76%,100%{transform:translate(-25px,-8px) rotate(315deg) scale(1)}}
@keyframes tt-tumble-b{0%,24%{transform:translate(-1px,-24px) rotate(135deg) scale(1)}37%{transform:translate(-5px,-4px) rotate(225deg) scale(1.03)}50%{transform:translate(-25px,-8px) rotate(315deg) scale(1)}63%{transform:translate(-21px,-28px) rotate(405deg) scale(1.03)}76%,100%{transform:translate(-1px,-24px) rotate(495deg) scale(1)}}

/* Actionable unread notifications */
.sidebar nav a{display:flex;align-items:center;justify-content:space-between;gap:10px}
.nav-alert-dot{display:inline-block;flex:0 0 auto;width:9px;height:9px;border-radius:999px;background:var(--green);box-shadow:0 0 0 3px rgba(19,214,96,.13),0 0 12px rgba(19,214,96,.45)}
.notification-list{display:grid;gap:8px}
.notification-form{margin:0}
.notification-link{width:100%;margin:0;display:flex;align-items:center;justify-content:space-between;gap:18px;text-align:left;color:var(--ink);font:inherit;cursor:pointer;appearance:none;-webkit-appearance:none;transition:border-color .15s ease,background .15s ease,transform .15s ease,box-shadow .15s ease}
.notification-link:hover{border-color:rgba(19,214,96,.58);background:#f8fff9;box-shadow:0 6px 18px rgba(17,23,19,.06);transform:translateY(-1px)}
.notification-link:focus-visible{outline:3px solid rgba(19,214,96,.24);outline-offset:2px;border-color:var(--green-dark)}
.notification-copy{display:flex;min-width:0;flex:1;flex-direction:column;gap:3px}
.notification-copy strong{display:block}
.notification-copy .meta{display:block}
.notification-open{flex:0 0 auto;color:var(--green-dark);font-size:12px;font-weight:800;white-space:nowrap}
@media(max-width:600px){.notification-link{align-items:flex-start;flex-direction:column;gap:8px}.notification-open{white-space:normal}}

/* Operational attention panels: Requests / Tasks / Estimates */
.attention-grid{align-items:start}
.attention-panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px}
.attention-panel-head h2{margin:0}
.attention-count{display:inline-grid;place-items:center;min-width:24px;height:24px;padding:0 7px;border-radius:999px;background:#e9f8ee;color:var(--green-dark);font-size:12px;font-weight:900}
.attention-list li{padding:12px 0}
.attention-row-top{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
.attention-row-top a{min-width:0}
.attention-note{margin-top:7px;padding:8px 10px;border-radius:8px;background:#f6f8f6;color:#4f5b54;font-size:12px;line-height:1.45}
.attention-actions{display:flex;gap:7px;flex-wrap:wrap;margin-top:8px}
.attention-empty{padding:20px 8px;text-align:left}
@media(max-width:1100px){.attention-grid{grid-template-columns:1fr}}

/* ============================================================
   DASHBOARD GLOBAL OPS SEARCH
   ============================================================ */
.ops-search-shell{margin:-4px 0 20px}
.ops-search-box{position:relative;display:flex;align-items:center;gap:10px;background:#fff;border:1px solid #cfd8d1;border-radius:15px;box-shadow:0 8px 28px rgba(17,23,19,.07);padding:0 12px;transition:border-color .15s ease,box-shadow .15s ease}
.ops-search-box:focus-within{border-color:#72a981;box-shadow:0 0 0 4px rgba(19,214,96,.09),0 10px 30px rgba(17,23,19,.08)}
.ops-search-icon{flex:0 0 auto;font-size:24px;line-height:1;color:#66736b;transform:rotate(-12deg)}
.ops-search-box input{min-width:0;flex:1;border:0!important;box-shadow:none!important;outline:none!important;background:transparent!important;padding:15px 2px;font:inherit;font-size:16px;color:var(--ink)}
.ops-search-box input::placeholder{color:#8b9690}
.ops-search-box input::-webkit-search-cancel-button{display:none}
.ops-search-clear{flex:0 0 auto;border:0;background:#eef3ef;color:#496154;border-radius:8px;padding:7px 10px;font:inherit;font-size:11px;font-weight:800;cursor:pointer}
.ops-search-clear:hover{background:#e2ece5;color:#183e27}
.ops-search-help{margin:7px 4px 0;color:#748078;font-size:11px}
.ops-search-results-panel{margin:0}
.ops-search-results-head{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:2px 0 12px;padding:0 2px}
.ops-search-results-head>div{display:flex;align-items:baseline;gap:9px;min-width:0;flex-wrap:wrap}
.ops-search-results-head strong{font-size:14px}
.ops-search-results-head span{color:var(--muted);font-size:12px}
.ops-search-hint{flex:0 0 auto;background:#fff4d8;color:#7b5200!important;border-radius:999px;padding:5px 9px;font-weight:800}
.ops-search-list{display:grid;gap:9px}
.ops-search-result{display:block;background:#fff;border:1px solid var(--line);border-radius:14px;padding:14px 16px;color:var(--ink);text-decoration:none;box-shadow:0 5px 20px rgba(17,23,19,.045);transition:transform .12s ease,border-color .12s ease,box-shadow .12s ease,background .12s ease}
.ops-search-result:hover{transform:translateY(-1px);border-color:#9fc5aa;background:#fbfffc;box-shadow:0 9px 24px rgba(17,23,19,.075)}
.ops-search-result:focus-visible{outline:3px solid rgba(19,214,96,.20);outline-offset:2px;border-color:var(--green-dark)}
.ops-search-result-top{display:flex;align-items:center;gap:7px;min-width:0;margin-bottom:6px}
.ops-search-type{display:inline-flex;align-items:center;border-radius:999px;background:#eaf8ee;color:#16703a;padding:4px 8px;font-size:10px;font-weight:900;letter-spacing:.025em;text-transform:uppercase}
.ops-search-id{color:#77837c;font-size:11px;font-weight:800}
.ops-search-open{margin-left:auto;color:#208343;font-size:17px;font-weight:800}
.ops-search-result-title{font-size:16px;font-weight:850;letter-spacing:-.012em;line-height:1.25}
.ops-search-result-context{margin-top:4px;color:#657169;font-size:12px;line-height:1.4}
.ops-search-result-snippet{margin-top:8px;color:#4c5851;font-size:12px;line-height:1.48;max-width:1000px}
.ops-search-empty{min-height:210px;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:7px;text-align:center;background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow);padding:28px;color:var(--muted)}
.ops-search-empty strong{color:var(--ink);font-size:17px}
.ops-search-empty span{max-width:680px;font-size:13px;line-height:1.5}
.ops-search-loading{min-height:180px;display:flex;align-items:center;justify-content:center;gap:6px;color:#5f6b64;background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow)}
.ops-search-tumble{flex:0 0 62px;margin:-4px -2px -4px -6px}
@media(prefers-reduced-motion:reduce){.ops-search-result{transition:none}}
@media(max-width:700px){.ops-search-shell{margin-top:0}.ops-search-help{display:none}.ops-search-box input{font-size:16px;padding:13px 2px}.ops-search-results-head{align-items:flex-start;flex-direction:column}.ops-search-hint{align-self:flex-start}.ops-search-result{padding:13px}}


/* ============================================================
   DIGITAL ASSET PREVIEW
   ============================================================ */
.asset-preview-panel{overflow:hidden}
.asset-preview-panel .panel-head{align-items:flex-start;gap:14px}
.asset-preview-panel .panel-head h2{margin-bottom:3px}
.asset-preview-panel .panel-head p{margin:0;color:var(--muted);font-size:12px;overflow-wrap:anywhere}
.asset-preview-stage{margin-top:14px;border:1px solid var(--line);border-radius:14px;background:#f4f7f4;overflow:hidden;min-height:180px}
.asset-preview-stage.image{display:flex;align-items:center;justify-content:center;padding:18px;min-height:260px;background:linear-gradient(45deg,#f1f4f1 25%,transparent 25%),linear-gradient(-45deg,#f1f4f1 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#f1f4f1 75%),linear-gradient(-45deg,transparent 75%,#f1f4f1 75%);background-size:20px 20px;background-position:0 0,0 10px,10px -10px,-10px 0;background-color:#fff}
.asset-preview-stage.image img{display:block;max-width:100%;max-height:680px;width:auto;height:auto;object-fit:contain;border-radius:8px;box-shadow:0 6px 24px rgba(17,23,19,.10)}
.asset-preview-stage.document{height:min(72vh,760px);min-height:440px;background:#e9eeea}
.asset-preview-stage.document iframe{display:block;width:100%;height:100%;border:0;background:#fff}
.asset-preview-stage.media{display:flex;align-items:center;justify-content:center;padding:18px;background:#101411}
.asset-preview-stage.media video{display:block;max-width:100%;max-height:680px}
.asset-preview-stage.audio{display:flex;align-items:center;padding:22px;min-height:100px}
.asset-preview-stage.audio audio{width:100%}
.asset-preview-empty{margin-top:14px;display:flex;flex-direction:column;gap:5px;align-items:flex-start;justify-content:center;min-height:130px;padding:22px;border:1px dashed #c8d2ca;border-radius:14px;background:#f8faf8;color:var(--muted)}
.asset-preview-empty strong{color:var(--ink)}
.asset-preview-empty span{font-size:12px;line-height:1.5}
@media(max-width:700px){.asset-preview-panel .panel-head{flex-direction:column}.asset-preview-stage.document{height:62vh;min-height:360px}.asset-preview-stage.image{padding:10px;min-height:180px}}

/* Home Base client-owned actions */
.hb-action-card{border-color:#c8ded0;background:linear-gradient(180deg,#fff,#fbfdfb)}
.hb-action-card .hb-card-head{align-items:flex-start}
.hb-action-card .hb-card-head>div{min-width:0}
.hb-action-card .hb-card-head p{margin:5px 0 0}
.hb-action-count{display:inline-flex;align-items:center;justify-content:center;min-width:30px;height:30px;padding:0 9px;border-radius:999px;background:#173e27;color:#fff;font-size:12px;font-weight:850}
.hb-action-list{display:grid;gap:12px}
.hb-action-item{border:1px solid #dce9df;border-radius:15px;padding:18px;background:#f8fbf8}
.hb-action-item h3{font-size:18px;margin:10px 0 7px;letter-spacing:-.02em}
.hb-action-item>p{margin:0;color:#526158;font-size:13px;line-height:1.55}
.hb-status-action{background:#fff1c9;color:#6d4b00;border:1px solid #efd98f}
.hb-action-form{margin-top:16px;padding-top:14px;border-top:1px solid #e1e9e3}
.hb-action-form .field{margin:0}
.hb-action-form textarea{width:100%;resize:vertical}
.hb-action-buttons{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
@media(max-width:640px){.hb-action-buttons .button{flex:1 1 100%}}
/* ============================================================
   REPORT CENTER
   ============================================================ */
.report-page-head{margin-bottom:16px}.report-page-intro{margin:7px 0 0;color:var(--muted);font-size:13px}.report-catalog{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin-bottom:14px}.report-catalog-card{display:flex;flex-direction:column;gap:5px;min-height:105px;padding:14px 15px;border:1px solid var(--line);border-radius:14px;background:#fff;color:var(--ink);text-decoration:none;box-shadow:0 5px 18px rgba(17,23,19,.035);transition:border-color .13s ease,transform .13s ease,box-shadow .13s ease}.report-catalog-card strong{font-size:13px}.report-catalog-card span{font-size:11px;line-height:1.45;color:var(--muted)}.report-catalog-card:hover{border-color:#9fc5aa;transform:translateY(-1px);box-shadow:0 8px 20px rgba(17,23,19,.06)}.report-catalog-card.active{border-color:#62a975;background:#f7fff9;box-shadow:inset 0 0 0 1px rgba(10,166,74,.15)}.report-catalog-card.active strong{color:#116331}.report-filters{display:flex;align-items:flex-end;gap:10px;flex-wrap:wrap;margin-bottom:8px;padding:14px}.report-filters label{display:flex;flex-direction:column;gap:5px;min-width:150px;color:var(--muted);font-size:10px;font-weight:850;text-transform:uppercase;letter-spacing:.055em}.report-filters input,.report-filters select{height:39px;min-width:0;padding:8px 10px;border:1px solid #cfd7d2;border-radius:9px;background:#fff;color:var(--ink);font:inherit;font-size:12px;text-transform:none;letter-spacing:0}.report-filters input:focus,.report-filters select:focus{outline:none;border-color:#6da77f;box-shadow:0 0 0 3px rgba(19,214,96,.10)}.report-customer-filter{flex:1 1 270px}.report-presets{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin:0 3px 18px;color:var(--muted);font-size:11px}.report-presets span{font-weight:800}.report-presets a{padding:5px 8px;border-radius:999px;background:#fff;border:1px solid var(--line);color:#425148;text-decoration:none;font-weight:750}.report-presets a:hover{border-color:#9fc5aa;background:#f8fff9}.report-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin:0 2px 13px}.report-heading h2{margin:3px 0 0;font-size:22px;letter-spacing:-.025em}.report-heading p{margin:5px 0 0;color:var(--muted);font-size:12px}.report-generated{color:var(--muted);font-size:10px;white-space:nowrap}.report-note{margin-bottom:14px}.report-metrics{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:10px;margin-bottom:16px}.report-metric{min-height:94px;padding:14px;border:1px solid var(--line);border-radius:14px;background:#fff;box-shadow:0 5px 18px rgba(17,23,19,.035)}.report-metric span{display:block;color:var(--muted);font-size:9px;font-weight:850;text-transform:uppercase;letter-spacing:.055em}.report-metric strong{display:block;margin-top:7px;font-size:21px;letter-spacing:-.035em;overflow-wrap:anywhere}.report-metric small{display:block;margin-top:5px;color:var(--muted);font-size:9px;line-height:1.35}.report-section{padding:0;overflow:hidden}.report-section-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 18px 10px}.report-section-head h2{margin:0;font-size:16px}.report-section-head span{color:var(--muted);font-size:10px}.report-table-wrap{border:0;border-radius:0;box-shadow:none}.report-table-wrap table{font-size:12px}.report-table-wrap th{background:#f8faf8;padding:9px 12px}.report-table-wrap td{padding:10px 12px}.report-empty{padding:22px 18px;text-align:left}@media(max-width:1250px){.report-catalog{grid-template-columns:repeat(3,1fr)}.report-metrics{grid-template-columns:repeat(4,1fr)}}@media(max-width:800px){.report-catalog{grid-template-columns:1fr 1fr}.report-metrics{grid-template-columns:1fr 1fr}.report-heading{align-items:flex-start;flex-direction:column}.report-generated{white-space:normal}.report-filters label,.report-customer-filter{flex:1 1 100%}}@media(max-width:520px){.report-catalog{grid-template-columns:1fr}.report-metrics{grid-template-columns:1fr}.report-page-head .page-actions .button{flex:1 1 100%}}

/* Global search filtering / sorting */
.ops-search-toolbar{display:flex;align-items:flex-end;justify-content:flex-end;gap:10px;margin:0 0 12px;flex-wrap:wrap}
.ops-search-toolbar label{display:grid;gap:4px;min-width:170px}
.ops-search-toolbar label>span{font-size:9px;font-weight:900;letter-spacing:.08em;text-transform:uppercase;color:#718078}
.ops-search-toolbar select{width:100%;border:1px solid #cfd8d1;border-radius:10px;background:#fff;color:var(--ink);font:inherit;font-size:12px;font-weight:750;padding:9px 32px 9px 10px;outline:none;box-shadow:0 3px 12px rgba(17,23,19,.035)}
.ops-search-toolbar select:focus{border-color:#72a981;box-shadow:0 0 0 3px rgba(19,214,96,.08)}
.ops-search-attention{display:inline-flex;align-items:center;border-radius:999px;background:#fff2cf;color:#785300;padding:4px 8px;font-size:9px;font-weight:900;letter-spacing:.025em;text-transform:uppercase}
@media(max-width:700px){.ops-search-toolbar{justify-content:stretch}.ops-search-toolbar label{flex:1 1 145px;min-width:0}.ops-search-toolbar select{font-size:12px}}

/* === TT FINAL TWIDDLE START === */
.tt-tumble-mark{
  position:relative;
  width:62px;
  height:62px;
  display:grid;
  place-items:center;
  filter:drop-shadow(0 2px 8px rgba(17,23,19,.10))
}

.tt-twiddle{
  --tt-speed:1.5s;
  --tt-swap-x:40.5px;
  --tt-swap-y:-40.5px;

  width:62px;
  height:62px;

  display:grid;
  place-items:center;
}

.tt-twiddle svg{
  width:100%;
  height:auto;
  display:block;
  overflow:visible;
  shape-rendering:geometricPrecision;
}

.tt-twiddle svg *{
  shape-rendering:geometricPrecision;
}

.tt-twiddle-piece{
  transform-box:fill-box;
  transform-origin:center;
  will-change:transform,opacity;
  backface-visibility:hidden;
  -webkit-backface-visibility:hidden;
}

.tt-twiddle-t1-back{
  animation:
    tt-twiddle-t1 var(--tt-speed) linear infinite,
    tt-twiddle-back-layer var(--tt-speed) steps(1,end) infinite;
}

.tt-twiddle-t1-front{
  animation:
    tt-twiddle-t1 var(--tt-speed) linear infinite,
    tt-twiddle-front-layer var(--tt-speed) steps(1,end) infinite;
}

.tt-twiddle-t2{
  animation:
    tt-twiddle-t2 var(--tt-speed) linear infinite;
}

@keyframes tt-twiddle-t1{
  0%{
    transform:translate3d(0,0,0);
  }

  50%{
    transform:translate3d(
      var(--tt-swap-x),
      var(--tt-swap-y),
      0
    );
  }

  100%{
    transform:translate3d(0,0,0);
  }
}

@keyframes tt-twiddle-t2{
  0%{
    transform:translate3d(0,0,0);
  }

  50%{
    transform:translate3d(
      calc(var(--tt-swap-x) * -1),
      calc(var(--tt-swap-y) * -1),
      0
    );
  }

  100%{
    transform:translate3d(0,0,0);
  }
}

@keyframes tt-twiddle-back-layer{
  0%,49.999%{
    opacity:0;
  }

  50%,100%{
    opacity:1;
  }
}

@keyframes tt-twiddle-front-layer{
  0%,49.999%{
    opacity:1;
  }

  50%,100%{
    opacity:0;
  }
}

.tt-sr-only{
  position:absolute!important;
  width:1px!important;
  height:1px!important;
  padding:0!important;
  margin:-1px!important;
  overflow:hidden!important;
  clip:rect(0,0,0,0)!important;
  white-space:nowrap!important;
  border:0!important
}

@media(prefers-reduced-motion:reduce){
  .tt-twiddle-t1-back,
  .tt-twiddle-t1-front,
  .tt-twiddle-t2{
    animation:none;
  }

  .tt-twiddle-t1-back{
    opacity:0;
  }

  .tt-twiddle-t1-front{
    opacity:1;
  }

  .tt-loading-overlay{
    transition:none;
  }
}
.ops-search-tumble .tt-twiddle{width:54px;height:54px}
/* === TT FINAL TWIDDLE END === */
