
:root{--bg:#f4f8f8;--panel:#fff;--ink:#14353c;--muted:#71878c;--line:#d9e7e7;--teal:#12a9a3;--teal2:#087d78;--nav:#0b3037;--green:#258c61;--amber:#a56b08;--red:#b63d46;--shadow:0 14px 40px rgba(20,55,62,.08)}
*{box-sizing:border-box}body{margin:0;font-family:Inter,Segoe UI,Arial,sans-serif;background:var(--bg);color:var(--ink)}a{text-decoration:none;color:inherit}.shell{display:grid;grid-template-columns:245px 1fr;min-height:100vh}.side{background:linear-gradient(180deg,#0a2d34,#103f44);color:#d7e7e9;padding:20px 14px;position:sticky;top:0;height:100vh;overflow:auto}.brand{display:flex;gap:10px;align-items:center;padding:0 8px 20px;border-bottom:1px solid rgba(255,255,255,.1);margin-bottom:16px}.logo{width:42px;height:42px;border-radius:14px;background:linear-gradient(135deg,#35ddd3,#0a8883);display:grid;place-items:center;color:#fff;font-weight:900}.brand b{display:block;color:#fff}.brand small{display:block;color:#a9c6ca;margin-top:3px}.side>a{display:block;padding:11px 12px;border-radius:11px;margin:4px 0}.side>a:hover,.side>a.active{background:rgba(29,194,184,.15);color:white}.side-foot{margin-top:22px;padding:14px;border-radius:14px;background:rgba(255,255,255,.07);font-size:12px}.side-foot a{color:#70e0da}.top{height:75px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 26px;position:sticky;top:0;z-index:5}.top small{display:block;letter-spacing:.12em;color:var(--muted);font-size:10px;margin-bottom:5px}.content{padding:27px;max-width:1500px;margin:auto}.content h1{margin:0 0 22px;font-size:29px}.grid{display:grid;gap:16px}.metrics{grid-template-columns:repeat(5,1fr)}.two{grid-template-columns:1.3fr .9fr}.card{background:#fff;border:1px solid var(--line);border-radius:20px;box-shadow:var(--shadow);padding:19px}.metric span{font-size:11px;color:var(--muted);text-transform:uppercase;font-weight:800}.metric b{display:block;font-size:23px;margin-top:8px}.btn{display:inline-block;border:1px solid var(--line);background:#fff;padding:10px 13px;border-radius:11px;font-weight:800;font-size:12px;cursor:pointer}.btn.primary{background:linear-gradient(135deg,var(--teal),var(--teal2));border:0;color:#fff}.btn.soft{background:#e9f8f7;color:var(--teal2)}.btn.danger{color:var(--red);background:#fff3f3}.actions{display:flex;gap:8px;flex-wrap:wrap}.toolbar{display:flex;justify-content:space-between;gap:10px;align-items:center;margin-bottom:14px;flex-wrap:wrap}table{width:100%;border-collapse:collapse;font-size:12px}th{text-align:left;padding:9px;color:var(--muted);font-size:10px;text-transform:uppercase;border-bottom:1px solid var(--line)}td{padding:10px 9px;border-bottom:1px solid #edf3f3;vertical-align:top}.status{display:inline-block;padding:5px 8px;border-radius:999px;font-weight:800;font-size:10px}.green{background:#e7f6ef;color:var(--green)}.amber{background:#fff2dc;color:var(--amber)}.red{background:#ffeaec;color:var(--red)}.gray{background:#edf2f3;color:#60777b}.progress{height:9px;border-radius:99px;background:#e7eeee;overflow:hidden}.progress i{display:block;height:100%;background:linear-gradient(90deg,var(--teal2),#4bd0c7)}label{display:block;font-size:10px;text-transform:uppercase;font-weight:800;color:#60777b;margin-bottom:5px}input,select,textarea{width:100%;border:1px solid #ccdcdc;border-radius:10px;padding:10px;background:#fff;color:var(--ink)}.formgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.full{grid-column:1/-1}.flash{padding:12px;border-radius:12px;margin:0 0 15px}.flash.ok{background:#e8f8f1;color:#247a57}.flash.err{background:#fff0f0;color:#a84249}.activity{border:1px solid var(--line);border-radius:14px;padding:13px;margin:9px 0}.activity-head{display:grid;grid-template-columns:1fr 100px 150px;gap:10px;align-items:center}.photo-count{font-size:10px;font-weight:800;padding:5px 8px;border-radius:99px;background:#fff1dc;color:#946006}.photo-count.ok{background:#e6f7ef;color:#227b57}.thumbs{display:grid;grid-template-columns:repeat(4,1fr);gap:9px}.thumb{border:1px solid var(--line);border-radius:12px;overflow:hidden;background:#fff}.thumb img{width:100%;aspect-ratio:4/3;object-fit:cover}.thumb div{padding:7px;font-size:10px}.notice{padding:12px;border:1px solid #ead9ae;background:#fff9e9;color:#735811;border-radius:12px;font-size:11px;line-height:1.5}.invoice{background:white;border:1px solid var(--line);border-radius:18px;padding:24px}.right{text-align:right}.invoice-head{display:grid;grid-template-columns:1fr 1fr;gap:20px}.totals{width:min(420px,100%);margin-left:auto}.totals div{display:flex;justify-content:space-between;padding:7px;border-bottom:1px solid #eee}.totals .big{font-size:17px;font-weight:900}.login{min-height:100vh;display:grid;place-items:center;padding:20px}.login-card{width:min(430px,100%);background:#fff;border:1px solid var(--line);border-radius:24px;box-shadow:var(--shadow);padding:28px}.login-card h1{margin:0 0 5px}.login-card p{color:var(--muted);margin-top:0}.login-card .field{margin:12px 0}.install-wrap{max-width:850px;margin:30px auto;padding:20px}.install-wrap h1{font-size:30px}
@media(max-width:1150px){.metrics{grid-template-columns:repeat(3,1fr)}.formgrid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:800px){.shell{grid-template-columns:1fr}.side{position:relative;height:auto}.side>a{display:inline-block}.top{position:relative}.metrics,.two,.formgrid,.thumbs,.invoice-head{grid-template-columns:1fr}.content{padding:17px}.activity-head{grid-template-columns:1fr}.top{padding:0 15px}.side-foot{display:none}}
@media print{.side,.top,.actions,.no-print{display:none!important}.shell{display:block}.content{padding:0}.card,.invoice{box-shadow:none;border:0}}

/* BuildControl v1.4 additions */
.nav-head{font-size:9px;letter-spacing:.12em;color:#7ea4a8;padding:13px 12px 4px;font-weight:900}.quick-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.quick-tile{background:#fff;border:1px solid var(--line);border-radius:18px;padding:18px;box-shadow:var(--shadow);display:block}.quick-tile b{display:block;font-size:15px;margin-bottom:5px}.quick-tile small{color:var(--muted);line-height:1.45}.kpi-strip{display:grid;grid-template-columns:repeat(6,1fr);gap:10px}.kpi{background:#fff;border:1px solid var(--line);border-radius:15px;padding:13px}.kpi span{display:block;color:var(--muted);font-size:9px;text-transform:uppercase;font-weight:900}.kpi b{display:block;font-size:18px;margin-top:5px}.barrow{display:grid;grid-template-columns:150px 1fr 90px;gap:10px;align-items:center;margin:9px 0}.mini{font-size:10px;color:var(--muted)}.tabs{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:14px}.tab{padding:7px 10px;border-radius:999px;border:1px solid var(--line);background:#fff;font-size:11px;font-weight:800}.tab.on{background:var(--nav);color:#fff}.pill{display:inline-block;padding:5px 8px;border-radius:999px;background:#edf3f3;font-size:10px;font-weight:800}.priority-High{color:#b53d45}.priority-Urgent{color:#a51d27;font-weight:900}.calendar-row{display:grid;grid-template-columns:100px 1fr 110px 110px 100px;gap:9px;padding:10px;border-bottom:1px solid #edf2f2;align-items:center}.searchbox{max-width:280px}.summary-box{padding:14px;border-radius:14px;background:#f6fafa;border:1px solid var(--line)}.dangerbox{padding:12px;border:1px solid #f0bfc3;background:#fff1f2;color:#96333a;border-radius:12px}.successbox{padding:12px;border:1px solid #bfe2d2;background:#effaf5;color:#276d52;border-radius:12px}.nowrap{white-space:nowrap}.muted{color:var(--muted)}
@media(max-width:1150px){.quick-grid{grid-template-columns:repeat(2,1fr)}.kpi-strip{grid-template-columns:repeat(3,1fr)}}
@media(max-width:800px){.quick-grid,.kpi-strip{grid-template-columns:1fr}.barrow,.calendar-row{grid-template-columns:1fr}.top .actions .btn:first-child{display:none}.nav-head{display:none}}

/* v1.4.1 dashboard KPI rendering safeguard */
.kpi-strip{display:grid!important;grid-template-columns:repeat(6,minmax(0,1fr))!important;gap:10px!important;margin:0!important}
.kpi-strip>.kpi{display:block!important;background:#fff!important;border:1px solid var(--line)!important;border-radius:15px!important;padding:13px!important;min-width:0!important}
.kpi-strip>.kpi span{display:block!important;margin:0 0 5px!important;color:var(--muted)!important;font-size:9px!important;text-transform:uppercase!important;font-weight:900!important;letter-spacing:.03em!important}
.kpi-strip>.kpi b{display:block!important;font-size:18px!important;line-height:1.2!important;margin:0!important;white-space:normal!important}
@media(max-width:1150px){.kpi-strip{grid-template-columns:repeat(3,minmax(0,1fr))!important}}
@media(max-width:800px){.kpi-strip{grid-template-columns:1fr!important}}

/* BuildControl v1.4.2 sequential 4-stage progress workflow */
.four-stage-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:16px}
.workflow-stage{position:relative;border:1px solid var(--line);border-radius:18px;background:#fff;padding:15px;min-width:0}
.workflow-stage.active{border-color:#e9bf73;background:#fffaf0;box-shadow:0 0 0 2px rgba(210,145,35,.08)}
.workflow-stage.done{border-color:#b9decf;background:#f3fbf7}
.workflow-stage.locked{background:#f5f7f7;opacity:.72}
.stage-number{width:31px;height:31px;border-radius:50%;display:grid;place-items:center;background:#e8f4f3;color:var(--teal2);font-weight:900;margin-bottom:10px}
.workflow-stage.done .stage-number{background:#dff4e9;color:var(--green)}
.workflow-stage.active .stage-number{background:#fff0d6;color:#946006}
.stage-title{display:flex;gap:8px;justify-content:space-between;align-items:flex-start;flex-wrap:wrap;min-height:42px}
.stage-title b{font-size:14px;line-height:1.3}.stage-meta{font-size:10px;color:var(--muted);line-height:1.5;margin:7px 0 10px}.stage-evidence{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:10px}.status-form{display:grid;grid-template-columns:1fr;gap:9px;margin-top:8px}.status-form .full{grid-column:1}.lock-note{padding:10px;border-radius:10px;background:#eef2f3;color:#667b7f;font-size:11px;font-weight:800}.milestone-workflow>.progress{height:12px;margin-top:10px}
@media(max-width:1200px){.four-stage-strip{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:720px){.four-stage-strip{grid-template-columns:1fr}.workflow-stage{padding:13px}.stage-title{min-height:0}}

/* BuildControl v1.5 mobile field operations / PWA */
.network-banner{position:sticky;top:75px;z-index:20;padding:9px 15px;text-align:center;font-size:11px;font-weight:900;background:#fff2dc;color:#855a0a;border-bottom:1px solid #ead9ae}.network-banner.online{background:#e7f6ef;color:#247a57;border-color:#bfe2d2}.field-hero{background:linear-gradient(135deg,#0b3037,#0d7773);color:#fff;border-radius:24px;padding:22px;box-shadow:var(--shadow);margin-bottom:16px}.field-hero small{opacity:.72;text-transform:uppercase;letter-spacing:.1em;font-weight:900}.field-hero h2{margin:6px 0 4px;font-size:25px}.field-hero p{margin:0;opacity:.83}.field-stage{border:2px solid #d7e9e8;border-radius:22px;padding:20px;background:#fff}.field-stage.active{border-color:#e6ba68;background:#fffaf1}.field-stage.done{border-color:#afdcca;background:#f4fbf7}.field-stage h2{margin:0 0 5px}.field-status{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:10px 0 16px}.field-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.field-actions .btn{font-size:14px;padding:14px 16px;text-align:center}.field-actions .btn.primary{font-size:15px}.field-unit-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.field-unit{display:block;border:1px solid var(--line);border-radius:16px;padding:13px;background:#fff}.field-unit.active{border-color:#57c6c0;box-shadow:0 0 0 2px rgba(18,169,163,.08)}.field-unit b{display:block;margin-bottom:4px}.field-unit small{color:var(--muted);line-height:1.35}.gps-box{padding:12px;border:1px solid var(--line);border-radius:12px;background:#f7fbfb}.gps-result{font-size:11px;color:var(--muted);margin-top:7px}.camera-note{font-size:10px;color:var(--muted);line-height:1.5}.draft-note{font-size:10px;color:#60777b;margin-top:6px}.photo-uploading{opacity:.65;pointer-events:none}.pwa-tip{padding:11px;border-radius:12px;background:#e9f8f7;color:#176f6b;font-size:11px;margin:12px 0}.mobile-only{display:none}
@media(max-width:1000px){.field-unit-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:800px){.network-banner{top:0}.field-actions{grid-template-columns:1fr}.field-unit-grid{grid-template-columns:1fr 1fr}.field-hero{padding:17px}.field-hero h2{font-size:21px}.mobile-only{display:block}.top .actions{gap:5px}.top .actions .btn{padding:8px 9px}.top .actions a[href="/quick.php"]{display:none}}
@media(max-width:480px){.field-unit-grid{grid-template-columns:1fr}.content{padding:12px}.field-stage{padding:15px}}


/* BuildControl v1.6 mobile claims / client submission pack */
.claim-core-banner{display:flex;gap:12px;align-items:flex-start;padding:14px 15px;border:1px solid #bfe4d4;background:#effbf5;border-radius:16px;margin:12px 0 16px}
.claim-core-banner .claim-core-icon{width:38px;height:38px;min-width:38px;border-radius:50%;display:grid;place-items:center;background:#d8f4e7;color:#19754f;font-size:18px;font-weight:900}
.claim-core-banner b{display:block;margin-bottom:3px}.claim-core-banner small{color:#4f7164;line-height:1.45}
.optional-doc-list{display:grid;gap:8px;margin:12px 0 16px}.optional-doc-row{display:grid;grid-template-columns:42px 1fr auto;gap:10px;align-items:center;padding:12px;border:1px solid var(--line);border-radius:14px;background:#fff}
.optional-doc-icon{width:42px;height:42px;border-radius:13px;background:#edf8f7;display:grid;place-items:center;font-size:19px}.optional-doc-row b{display:block;font-size:12px}.optional-doc-row small{display:block;color:var(--muted);margin-top:2px}.optional-doc-count{min-width:31px;height:31px;border-radius:50%;display:grid;place-items:center;background:#edf2f3;font-size:11px;font-weight:900}
.optional-doc-count.has{background:#e1f5ea;color:#237955}.claim-pack-card{border:1px solid var(--line);border-radius:18px;background:#fff;padding:15px}.claim-pack-includes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.claim-pack-item{padding:13px;border:1px solid #cde6dc;background:#f2fbf6;border-radius:14px}.claim-pack-item .ico{font-size:22px}.claim-pack-item b{display:block;margin-top:7px}.claim-pack-item small{display:block;color:var(--muted);margin-top:4px;line-height:1.4}
.claim-photo-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:12px}.claim-photo-tile{position:relative;border-radius:14px;overflow:hidden;border:1px solid var(--line);background:#eef3f3}.claim-photo-tile img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover}.claim-photo-tile .cap{padding:8px;font-size:10px}.photo-badge-mini{position:absolute;right:7px;bottom:34px;background:#fff;border-radius:999px;padding:5px 7px;font-size:9px;font-weight:900;box-shadow:0 3px 12px rgba(0,0,0,.12)}
.mobile-claim-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}.mobile-claim-actions .btn{flex:1;text-align:center;min-width:150px}.client-pack-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.client-pack-head h2{margin:0 0 4px}.client-pack-head p{margin:0;color:var(--muted)}
.client-pack-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:14px 0}.client-pack-summary>div{border:1px solid var(--line);border-radius:14px;padding:12px;background:#fff}.client-pack-summary small{display:block;color:var(--muted);font-size:9px;text-transform:uppercase;font-weight:900}.client-pack-summary b{display:block;margin-top:4px}
.claim-mobile-card-list{display:none}.claim-mobile-card{border:1px solid var(--line);border-radius:18px;padding:14px;background:#fff;margin-bottom:10px}.claim-mobile-card .row{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.claim-mobile-card .amount{font-size:18px;font-weight:900;margin:9px 0}.claim-mobile-card .meta{font-size:10px;color:var(--muted);line-height:1.5}
@media(max-width:800px){
 .claim-pack-includes,.claim-photo-grid,.client-pack-summary{grid-template-columns:1fr 1fr}
 .optional-doc-row{grid-template-columns:38px 1fr auto;padding:10px}.optional-doc-icon{width:38px;height:38px}
 .mobile-claim-actions{display:grid;grid-template-columns:1fr}.mobile-claim-actions .btn{width:100%;min-width:0}
 .claims-desktop-table{display:none}.claim-mobile-card-list{display:block}
 .client-pack-head{display:block}.client-pack-head .status{margin-top:8px}
}
@media(max-width:480px){
 .claim-pack-includes,.claim-photo-grid,.client-pack-summary{grid-template-columns:1fr}
 .claim-core-banner{padding:12px}.claim-pack-card{padding:12px}
 .optional-doc-row b{font-size:11px}
}


/* =========================================================
   BuildControl v1.6.1 — polished mobile browser shell
   Based on the approved second mobile design.
   ========================================================= */

.mobile-topbar,.mobile-project-strip,.mobile-bottom-nav,.mobile-close-nav,.mobile-nav-overlay,.mobile-page-title{display:none}

@media(max-width:800px){
  :root{
    --mobile-header:68px;
    --mobile-bottom:74px;
    --mobile-radius:18px;
  }

  html{background:#f4f7f8}
  body{background:#f4f7f8;padding-bottom:calc(var(--mobile-bottom) + env(safe-area-inset-bottom));overflow-x:hidden}
  body.mobile-nav-open{overflow:hidden}
  .shell{display:block;min-height:100vh}
  .main{min-width:0;width:100%}

  /* OFF-CANVAS FULL MENU */
  .side{
    display:block!important;
    position:fixed!important;
    left:0;top:0;bottom:0;
    width:min(86vw,330px)!important;
    height:100dvh!important;
    z-index:1002;
    transform:translateX(-105%);
    transition:transform .24s ease;
    padding:14px 12px calc(24px + env(safe-area-inset-bottom))!important;
    box-shadow:18px 0 50px rgba(5,33,38,.28);
    overflow-y:auto!important;
    overscroll-behavior:contain;
  }
  .side.open{transform:translateX(0)}
  .side .brand{position:sticky;top:-14px;z-index:3;background:#0b3037;padding:16px 8px 14px;margin:-14px 0 10px;border-bottom:1px solid rgba(255,255,255,.1)}
  .side>a{display:block!important;padding:12px 13px!important;margin:3px 0!important;border-radius:12px!important;font-size:13px}
  .side-foot{display:block!important;margin-bottom:20px}
  .nav-head{display:block!important;padding-top:16px}
  .mobile-close-nav{display:grid;width:38px;height:38px;place-items:center;margin-left:auto;border:0;border-radius:12px;background:rgba(255,255,255,.08);color:#fff;font-size:24px;cursor:pointer}
  .mobile-nav-overlay{display:block;position:fixed;inset:0;background:rgba(5,25,29,.48);backdrop-filter:blur(2px);z-index:1001;opacity:0;pointer-events:none;transition:opacity .2s ease}
  .mobile-nav-overlay.open{opacity:1;pointer-events:auto}

  /* MOBILE HEADER */
  .top{display:none!important}
  .mobile-topbar{
    display:grid;
    grid-template-columns:44px minmax(0,1fr) auto;
    align-items:center;
    gap:9px;
    min-height:var(--mobile-header);
    padding:10px 14px;
    padding-top:max(10px,env(safe-area-inset-top));
    background:rgba(255,255,255,.97);
    border-bottom:1px solid #dce7e8;
    position:sticky;
    top:0;
    z-index:900;
    backdrop-filter:blur(16px);
  }
  .mobile-menu-btn{
    width:42px;height:42px;border:1px solid var(--line);border-radius:13px;background:#fff;
    display:flex;flex-direction:column;gap:4px;justify-content:center;align-items:center;padding:0;cursor:pointer
  }
  .mobile-menu-btn span{display:block;width:18px;height:2px;border-radius:2px;background:#17373d}
  .mobile-brand{display:flex;gap:9px;align-items:center;min-width:0}
  .mobile-brand-logo{
    width:40px;height:40px;min-width:40px;border-radius:13px;display:grid;place-items:center;
    background:linear-gradient(145deg,#14b6ae,#087d78);color:#fff;font-weight:900;font-size:12px;
    box-shadow:0 8px 20px rgba(8,125,120,.18)
  }
  .mobile-brand-text{min-width:0}
  .mobile-brand-text b{display:block;font-size:16px;line-height:1.1;white-space:nowrap}
  .mobile-brand-text small{display:block;color:var(--muted);font-size:9px;margin-top:2px;white-space:nowrap}
  .mobile-top-actions{display:flex;align-items:center;gap:7px}
  .mobile-alert-btn,.mobile-avatar{position:relative;width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:#eef5f5}
  .mobile-alert-btn svg{width:20px;height:20px;fill:none;stroke:#17373d;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
  .mobile-alert-badge{position:absolute;right:-2px;top:-2px;min-width:17px;height:17px;padding:0 4px;border-radius:999px;background:#e7434d;color:#fff;font-size:9px;font-weight:900;display:grid;place-items:center}
  .mobile-avatar{font-weight:900;font-size:12px;color:#25464c}

  .mobile-project-strip{
    display:block;
    padding:11px 16px 12px;
    background:#fff;
    border-bottom:1px solid var(--line)
  }
  .mobile-project-strip small{display:block;font-size:8px;letter-spacing:.1em;color:var(--muted);font-weight:900;margin-bottom:3px}
  .mobile-project-strip b{display:block;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .mobile-project-strip span{display:block;font-size:10px;color:var(--muted);margin-top:2px}

  /* PAGE AREA */
  .network-banner{top:var(--mobile-header)!important;font-size:10px;padding:8px 12px}
  .content{padding:15px 13px 24px!important;max-width:none!important}
  .desktop-page-title{display:none}
  .mobile-page-title{display:block}
  .mobile-page-title h1{font-size:23px!important;line-height:1.15;margin:3px 1px 15px!important;letter-spacing:-.02em}
  .card{
    border-radius:var(--mobile-radius)!important;
    padding:15px!important;
    box-shadow:0 7px 24px rgba(20,55,62,.055)!important;
    overflow-x:auto;
  }

  /* GENERAL MOBILE COMPONENTS */
  .grid.two,.two,.formgrid,.invoice-head{grid-template-columns:1fr!important}
  .formgrid{gap:11px!important}
  .full{grid-column:1!important}
  label{font-size:9px!important;letter-spacing:.02em}
  input,select,textarea{font-size:16px!important;min-height:46px;border-radius:12px!important;padding:11px 12px!important}
  textarea{min-height:84px}
  .btn{min-height:43px;border-radius:12px!important;padding:11px 13px!important}
  .toolbar{align-items:stretch!important;gap:8px!important}
  .toolbar>.actions{width:100%}
  .toolbar>.actions .btn{flex:1;text-align:center}
  .notice,.successbox,.dangerbox,.summary-box{border-radius:14px!important}
  .flash{border-radius:14px!important}

  /* KPIs look like app cards, not stacked text */
  .kpi-strip{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:9px!important}
  .kpi-strip>.kpi{padding:12px!important;border-radius:15px!important}
  .kpi-strip>.kpi span{font-size:8px!important}
  .kpi-strip>.kpi b{font-size:16px!important;margin-top:4px!important}
  .metrics{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:9px!important}
  .metric{padding:12px!important}.metric span{font-size:8px!important}.metric b{font-size:17px!important}

  /* Mobile cards / workflow */
  .quick-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:9px!important}
  .quick-tile{padding:14px!important;border-radius:16px!important;box-shadow:none!important}
  .four-stage-strip{grid-template-columns:1fr!important;gap:10px!important}
  .workflow-stage{border-radius:17px!important;padding:14px!important}
  .field-hero{border-radius:19px!important;padding:16px!important}
  .field-stage{border-radius:19px!important;padding:15px!important}
  .field-unit-grid{grid-template-columns:1fr 1fr!important;gap:8px!important}
  .field-unit{border-radius:15px!important;padding:12px!important}
  .claim-mobile-card{border-radius:17px!important;padding:14px!important}
  .claim-core-banner{border-radius:15px!important}
  .optional-doc-row{border-radius:14px!important}
  .claim-photo-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}

  /* Tables become swipeable instead of breaking layout */
  .content table{
    display:block;
    width:100%;
    max-width:100%;
    overflow-x:auto;
    -webkit-overflow-scrolling:touch;
    white-space:nowrap;
    border-collapse:separate;
    border-spacing:0;
  }
  .content th,.content td{padding:10px 9px!important}

  /* Photo gallery */
  .thumbs{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:8px!important}
  .thumb{border-radius:13px!important}

  /* BOTTOM APP NAV */
  .mobile-bottom-nav{
    position:fixed;
    left:0;right:0;bottom:0;
    z-index:950;
    display:grid;
    grid-template-columns:repeat(5,1fr);
    min-height:var(--mobile-bottom);
    padding:7px 5px calc(7px + env(safe-area-inset-bottom));
    background:rgba(255,255,255,.97);
    border-top:1px solid #d8e4e5;
    box-shadow:0 -8px 25px rgba(20,55,62,.08);
    backdrop-filter:blur(18px)
  }
  .mobile-bottom-nav a,.mobile-bottom-nav button{
    border:0;background:transparent;color:#74898d;
    display:flex;flex-direction:column;align-items:center;justify-content:center;
    gap:4px;font:inherit;font-size:9px;font-weight:800;cursor:pointer;border-radius:12px
  }
  .mobile-bottom-nav svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
  .mobile-bottom-nav a.active{color:#07837c;background:#eff9f8}
  .mobile-bottom-nav a.active svg{stroke:#07837c}

  /* Keep desktop install action accessible from drawer, not header */
  #pwaInstall{display:none!important}
}

@media(max-width:480px){
  .mobile-brand-text small{display:none}
  .mobile-brand-text b{font-size:15px}
  .mobile-top-actions{gap:4px}
  .mobile-alert-btn,.mobile-avatar{width:35px;height:35px}
  .content{padding-left:10px!important;padding-right:10px!important}
  .kpi-strip,.metrics{grid-template-columns:1fr 1fr!important}
  .quick-grid{grid-template-columns:1fr 1fr!important}
  .field-unit-grid{grid-template-columns:1fr!important}
  .claim-photo-grid{grid-template-columns:1fr 1fr!important}
  .mobile-bottom-nav a,.mobile-bottom-nav button{font-size:8px}
}

@media print{
  .mobile-topbar,.mobile-project-strip,.mobile-bottom-nav,.mobile-nav-overlay{display:none!important}
}


/* =========================================================
   BuildControl v1.6.2 — Mobile content alignment & sizing
   Refines spacing, typography, cards, forms and workflow
   content without changing desktop layout.
   ========================================================= */
@media(max-width:800px){

  /* Prevent any child from forcing the mobile page wider */
  .main,.content,.content>*,
  .card,.grid,.toolbar,.actions,.activity,.activity-head,
  .workflow-stage,.field-hero,.field-stage,.claim-mobile-card,
  .claim-pack-card,.optional-doc-row,.summary-box,
  .invoice,.invoice-head,.totals,.quick-tile{
    min-width:0!important;
    max-width:100%;
  }
  .content{
    width:100%;
    margin:0!important;
    padding:12px 11px 22px!important;
  }
  .content h1,.content h2,.content h3,.content h4,
  .content p,.content b,.content span,.content small,
  .content td,.content th{
    overflow-wrap:anywhere;
  }

  /* Type hierarchy */
  .mobile-page-title h1{
    font-size:20px!important;
    line-height:1.18!important;
    margin:2px 2px 12px!important;
  }
  .content h2{font-size:18px;line-height:1.25;margin:0 0 10px}
  .content h3{font-size:16px;line-height:1.25;margin:0 0 10px}
  .content h4{font-size:14px;line-height:1.3;margin:10px 0 7px}
  .content p{font-size:12px;line-height:1.5}
  .muted,.mini,.camera-note{line-height:1.45}

  /* Cards: smaller, aligned, consistent */
  .card{
    width:100%;
    padding:13px!important;
    margin-left:0!important;
    margin-right:0!important;
    border-radius:16px!important;
  }
  .grid{gap:10px!important}
  .grid.two,.two{gap:10px!important}
  .card + .card{margin-top:10px}
  .summary-box,.notice,.successbox,.dangerbox{
    padding:10px 11px!important;
    font-size:11px!important;
    line-height:1.45!important;
  }

  /* Header/project strip tighter */
  .mobile-topbar{
    min-height:60px!important;
    grid-template-columns:40px minmax(0,1fr) auto!important;
    padding:8px 11px!important;
  }
  .mobile-menu-btn{width:38px!important;height:38px!important;border-radius:11px!important}
  .mobile-brand-logo{width:36px!important;height:36px!important;min-width:36px!important;border-radius:11px!important;font-size:10px!important}
  .mobile-brand-text b{font-size:14px!important}
  .mobile-brand-text small{font-size:8px!important}
  .mobile-alert-btn,.mobile-avatar{width:34px!important;height:34px!important}
  .mobile-project-strip{padding:8px 12px 9px!important}
  .mobile-project-strip b{font-size:11px!important}
  .mobile-project-strip span{font-size:9px!important}

  /* Drawer: one clean vertical column */
  .side{
    width:min(88vw,315px)!important;
    padding-left:10px!important;
    padding-right:10px!important;
  }
  .side .brand{padding:13px 6px 12px!important}
  .side .logo{width:38px;height:38px;border-radius:12px}
  .side .brand-copy b{font-size:15px}
  .side .brand-copy small{font-size:9px}
  .nav-head{
    display:block!important;
    font-size:8px!important;
    letter-spacing:.1em!important;
    padding:14px 10px 5px!important;
  }
  .side>a{
    display:flex!important;
    align-items:center!important;
    width:100%!important;
    min-height:42px!important;
    padding:9px 11px!important;
    margin:2px 0!important;
    font-size:12px!important;
    line-height:1.25!important;
  }
  .side-foot{font-size:10px!important;padding:11px!important}

  /* Forms */
  .formgrid{gap:9px!important}
  label{
    font-size:8.5px!important;
    margin-bottom:4px!important;
  }
  input,select,textarea{
    min-height:43px!important;
    font-size:15px!important;
    padding:9px 11px!important;
  }
  textarea{min-height:72px!important}
  input[type=checkbox],input[type=radio]{min-height:0!important;width:auto!important}
  .btn{
    min-height:40px!important;
    padding:9px 11px!important;
    font-size:11px!important;
    line-height:1.15!important;
  }
  .actions{gap:6px!important}
  .toolbar{
    display:flex!important;
    flex-direction:column!important;
    align-items:stretch!important;
    margin-bottom:10px!important;
  }
  .toolbar>div,.toolbar>form,.toolbar>.actions{width:100%!important}
  .toolbar select,.toolbar input{width:100%!important}

  /* KPI / dashboard content */
  .kpi-strip,.metrics{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:7px!important;
  }
  .kpi-strip>.kpi,.metric{
    padding:10px!important;
    min-height:72px;
    display:flex!important;
    flex-direction:column;
    justify-content:center;
  }
  .kpi-strip>.kpi span,.metric span{font-size:7.5px!important;line-height:1.2}
  .kpi-strip>.kpi b,.metric b{font-size:15px!important;line-height:1.2!important}
  .barrow{
    display:grid!important;
    grid-template-columns:72px minmax(0,1fr) 42px!important;
    gap:7px!important;
    align-items:center!important;
    margin:8px 0!important;
  }
  .barrow b{font-size:11px!important}
  .barrow .progress{height:7px!important}

  /* Four-stage progress becomes compact mobile cards */
  .four-stage-strip{
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:8px!important;
    margin-top:10px!important;
  }
  .workflow-stage{
    padding:12px!important;
    border-radius:15px!important;
  }
  .stage-number{
    width:27px!important;height:27px!important;
    margin-bottom:7px!important;
    font-size:11px!important;
  }
  .stage-title{
    min-height:0!important;
    display:grid!important;
    grid-template-columns:minmax(0,1fr) auto!important;
    align-items:start!important;
    gap:7px!important;
  }
  .stage-title b{font-size:13px!important;line-height:1.3!important}
  .stage-title .status{font-size:8px!important;padding:4px 6px!important}
  .stage-meta{font-size:9.5px!important;margin:5px 0 7px!important}
  .stage-evidence{
    margin:6px 0 8px!important;
    gap:6px!important;
  }
  .photo-count{font-size:9px!important;padding:4px 6px!important}
  .status-form{gap:7px!important;margin-top:6px!important}
  .status-form textarea{min-height:64px!important}
  .workflow-stage .btn{width:auto;min-width:110px}
  .lock-note{font-size:9px!important;padding:8px!important}

  /* Activity cards */
  .activity{
    padding:11px!important;
    border-radius:14px!important;
    margin:7px 0!important;
  }
  .activity-head{
    display:grid!important;
    grid-template-columns:minmax(0,1fr) auto!important;
    gap:8px!important;
  }
  .activity-head>*{min-width:0}
  .activity-head .btn{grid-column:1/-1;width:100%;text-align:center}

  /* Field Mode */
  .field-hero{padding:13px!important;border-radius:16px!important}
  .field-hero h2{font-size:17px!important}
  .field-stage{padding:12px!important;border-radius:16px!important}
  .field-stage h2{font-size:16px!important}
  .field-unit-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:7px!important}
  .field-unit{
    padding:10px!important;
    border-radius:14px!important;
  }
  .field-unit b{font-size:11px!important}
  .field-unit small{font-size:8.5px!important}
  .field-actions{display:grid!important;grid-template-columns:1fr!important}
  .field-actions .btn{width:100%!important;text-align:center}

  /* Quick tiles */
  .quick-grid{gap:7px!important}
  .quick-tile{
    padding:11px!important;
    border-radius:14px!important;
    min-height:88px;
  }
  .quick-tile b{font-size:12px!important;margin-bottom:3px!important}
  .quick-tile small{font-size:9px!important;line-height:1.35!important}

  /* Claims */
  .claim-mobile-card{
    padding:12px!important;
    border-radius:15px!important;
  }
  .claim-mobile-card .amount{font-size:16px!important;margin:7px 0!important}
  .claim-mobile-card .meta{font-size:9px!important}
  .claim-core-banner{padding:10px!important;gap:9px!important}
  .claim-core-banner .claim-core-icon{width:32px;height:32px;min-width:32px;font-size:14px}
  .claim-core-banner small{font-size:9px}
  .optional-doc-list{gap:6px!important}
  .optional-doc-row{
    grid-template-columns:34px minmax(0,1fr) auto!important;
    gap:8px!important;
    padding:9px!important;
  }
  .optional-doc-icon{width:34px!important;height:34px!important;border-radius:11px!important;font-size:15px!important}
  .optional-doc-row b{font-size:10.5px!important}
  .optional-doc-row small{font-size:8.5px!important}
  .optional-doc-count{min-width:27px!important;height:27px!important;font-size:9px!important}
  .client-pack-summary{gap:7px!important}
  .client-pack-summary>div{padding:9px!important;border-radius:12px!important}
  .client-pack-summary small{font-size:7.5px!important}
  .client-pack-summary b{font-size:12px!important}
  .claim-pack-card{padding:11px!important;border-radius:15px!important}
  .claim-pack-item{padding:10px!important;border-radius:12px!important}
  .claim-pack-item .ico{font-size:18px!important}
  .claim-pack-item b{font-size:10.5px!important}
  .claim-pack-item small{font-size:8.5px!important}
  .claim-photo-grid{gap:7px!important}
  .claim-photo-tile{border-radius:12px!important}
  .claim-photo-tile .cap{font-size:8.5px!important;padding:6px!important}
  .photo-badge-mini{font-size:7.5px!important;padding:4px 6px!important}

  /* Photo upload */
  .thumbs{gap:7px!important}
  .thumb div{font-size:8.5px!important;padding:6px!important}
  .photo-source-buttons{gap:8px!important}
  .photo-source{
    min-height:65px!important;
    border-radius:14px!important;
    font-size:12px!important;
    gap:8px!important;
  }
  .photo-source .ico{font-size:21px!important}
  .evidence-meter{padding:10px!important;border-radius:13px!important}
  .evidence-meter strong{font-size:15px!important}

  /* Status chips */
  .status,.pill,.tab{
    font-size:8.5px!important;
    padding:4px 7px!important;
  }

  /* Invoice / totals */
  .invoice{padding:13px!important;border-radius:15px!important}
  .invoice-head{gap:10px!important}
  .invoice-head h2{font-size:17px!important}
  .invoice-head h3{font-size:14px!important}
  .right{text-align:left!important}
  .totals{width:100%!important;margin:10px 0 0!important}
  .totals div{font-size:10px!important;padding:6px 2px!important}
  .totals .big{font-size:14px!important}

  /* Mobile tables: slightly smaller and no accidental huge padding */
  .content table{font-size:10px!important}
  .content th{font-size:8px!important;padding:8px 7px!important}
  .content td{font-size:10px!important;padding:8px 7px!important}

  /* Bottom nav */
  .mobile-bottom-nav{
    min-height:68px!important;
    padding-top:5px!important;
    padding-bottom:calc(5px + env(safe-area-inset-bottom))!important;
  }
  .mobile-bottom-nav svg{width:20px!important;height:20px!important}
  .mobile-bottom-nav a,.mobile-bottom-nav button{font-size:7.5px!important;gap:3px!important}
}

@media(max-width:430px){
  .content{padding-left:8px!important;padding-right:8px!important}
  .card{padding:11px!important}
  .mobile-page-title h1{font-size:19px!important}
  .kpi-strip,.metrics{gap:6px!important}
  .kpi-strip>.kpi,.metric{padding:9px!important}
  .quick-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .claim-photo-grid,.thumbs{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}

@media(max-width:360px){
  .mobile-brand-text small{display:none!important}
  .mobile-brand-text b{font-size:13px!important}
  .mobile-avatar{display:none!important}
  .kpi-strip,.metrics{grid-template-columns:1fr!important}
  .quick-grid{grid-template-columns:1fr!important}
  .field-unit-grid{grid-template-columns:1fr!important}
}


/* BuildControl v1.6.3 — Client progress share links */
.share-link-card{border:1px solid #cfe4e2;background:#fbfefe;border-radius:18px;padding:16px}
.share-link-intro{display:flex;gap:11px;align-items:flex-start;margin-bottom:13px}
.share-link-icon{width:40px;height:40px;min-width:40px;border-radius:13px;background:#e4f7f4;color:#087d78;display:grid;place-items:center;font-size:20px}
.share-link-intro b{display:block;margin-bottom:3px}.share-link-intro small{color:var(--muted);line-height:1.45}
.share-link-list{display:grid;gap:10px;margin-top:13px}
.share-link-row{border:1px solid var(--line);border-radius:14px;background:#fff;padding:12px}
.share-link-row-top{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}
.share-link-url{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:7px;margin-top:9px}
.share-link-url input{font-size:11px;min-width:0}
.share-link-meta{font-size:9px;color:var(--muted);line-height:1.45;margin-top:7px}
.share-action-grid{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}
.share-action-grid .btn{min-height:36px;padding:8px 10px}
.public-report-wrap{max-width:1040px;margin:0 auto;padding:18px}
.public-report-head{background:linear-gradient(145deg,#0b5054,#087d78);color:#fff;border-radius:24px;padding:24px;box-shadow:0 18px 50px rgba(8,75,79,.16)}
.public-report-head small{display:block;opacity:.78;font-size:10px;letter-spacing:.08em}.public-report-head h1{margin:7px 0 5px;font-size:30px}.public-report-head p{margin:3px 0;opacity:.9}
.public-report-actions{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0}
.public-report-actions button{cursor:pointer}
.public-report-card{background:#fff;border:1px solid #d8e6e6;border-radius:20px;padding:18px;margin-top:14px;box-shadow:0 10px 35px rgba(20,55,62,.06)}
.public-report-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.public-report-summary>div{border:1px solid #d8e6e6;border-radius:15px;padding:12px;background:#f9fcfc}.public-report-summary small{display:block;color:#71878c;font-size:8px;text-transform:uppercase;font-weight:900}.public-report-summary b{display:block;margin-top:4px;font-size:14px}
.public-stage{border:1px solid #dfeaea;border-radius:15px;padding:12px;margin-top:9px}.public-stage-head{display:flex;justify-content:space-between;gap:10px}.public-stage-head b{font-size:12px}.public-stage-head span{font-size:10px;font-weight:900;color:#087d78}
.public-photo-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin-top:10px}.public-photo{border:1px solid #dce7e8;border-radius:14px;overflow:hidden;background:#fff}.public-photo img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block}.public-photo div{padding:7px;font-size:9px;line-height:1.4}
.public-expiry-note{font-size:9px;color:#71878c;text-align:center;margin:14px 0}
@media(max-width:800px){
 .share-link-card{padding:12px;border-radius:15px}.share-link-url{grid-template-columns:1fr}.share-link-url .btn{width:100%}
 .share-link-row-top{display:block}.share-link-row-top .status{display:inline-block;margin-top:5px}
 .public-report-wrap{padding:10px}.public-report-head{padding:18px;border-radius:18px}.public-report-head h1{font-size:22px}
 .public-report-summary{grid-template-columns:1fr 1fr}.public-photo-grid{grid-template-columns:1fr 1fr}.public-report-card{padding:13px;border-radius:16px}
}
@media(max-width:430px){.public-report-summary,.public-photo-grid{grid-template-columns:1fr}}
@media print{
 .public-report-actions,.public-expiry-note{display:none!important}
 .public-report-wrap{max-width:none;padding:0}.public-report-head,.public-report-card{box-shadow:none}
}


/* BuildControl v1.6.4 — standalone professional progress reports */
.report-builder-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:16px}
.report-builder-card{background:#fff;border:1px solid var(--line);border-radius:20px;padding:18px;box-shadow:var(--shadow)}
.report-builder-card h3{margin-top:0}
.report-narrative{display:grid;gap:11px}
.report-narrative textarea{min-height:120px}
.report-list-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.report-list-card{border:1px solid var(--line);border-radius:17px;padding:14px;background:#fff}
.report-list-card .topline{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}
.report-list-card h3{margin:0;font-size:15px}.report-list-card p{color:var(--muted);font-size:11px;line-height:1.5}
.report-list-card .meta{font-size:9px;color:var(--muted);line-height:1.5}
.formal-report{max-width:1100px;margin:0 auto}
.formal-cover{background:linear-gradient(145deg,#0b4c51,#087d78);color:#fff;border-radius:25px;padding:30px;box-shadow:0 20px 50px rgba(8,77,79,.18)}
.formal-cover small{display:block;letter-spacing:.11em;font-size:9px;opacity:.8}
.formal-cover h1{margin:8px 0 4px;font-size:32px}.formal-cover h2{margin:0 0 14px;font-size:18px;color:#dff8f5}.formal-cover p{margin:5px 0;opacity:.92}
.formal-section{background:#fff;border:1px solid var(--line);border-radius:20px;padding:19px;margin-top:14px;box-shadow:0 10px 35px rgba(20,55,62,.06)}
.formal-section h2{margin:0 0 11px;font-size:20px}.formal-section h3{margin:15px 0 8px;font-size:14px}
.formal-copy{font-size:12px;line-height:1.7;color:#24474d;white-space:pre-wrap}
.formal-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}
.formal-summary-grid>div{border:1px solid var(--line);border-radius:14px;padding:11px;background:#f9fcfc}
.formal-summary-grid small{display:block;color:var(--muted);font-size:8px;text-transform:uppercase;font-weight:900}.formal-summary-grid b{display:block;margin-top:4px;font-size:14px}
.unit-progress-card{border:1px solid #dce9e9;border-radius:16px;padding:13px;margin-top:10px}
.unit-progress-card .unit-head{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}
.unit-progress-card .unit-head h3{margin:0}.unit-progress-card .unit-head small{display:block;color:var(--muted);margin-top:3px}
.milestone-pill-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;margin-top:10px}
.milestone-pill{border:1px solid var(--line);border-radius:12px;padding:8px;background:#fbfdfd}.milestone-pill small{display:block;color:var(--muted);font-size:7px}.milestone-pill b{display:block;font-size:11px;margin-top:3px}
.report-photo-section{margin-top:13px}.report-photo-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}
.report-photo{border:1px solid var(--line);border-radius:14px;overflow:hidden;background:#fff;cursor:zoom-in}
.report-photo img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block}.report-photo .caption{padding:7px;font-size:8.5px;line-height:1.4}
.photo-lightbox{position:fixed;inset:0;background:rgba(0,0,0,.92);z-index:3000;display:none;align-items:center;justify-content:center;padding:20px}
.photo-lightbox.open{display:flex}.photo-lightbox img{max-width:94vw;max-height:86vh;object-fit:contain;border-radius:12px}
.photo-lightbox button{position:absolute;right:18px;top:18px;width:44px;height:44px;border:0;border-radius:50%;background:#fff;color:#122f35;font-size:24px;cursor:pointer}
.report-status-bar{display:flex;justify-content:space-between;gap:10px;align-items:center;margin:12px 0}.report-actions{display:flex;gap:8px;flex-wrap:wrap}
.report-share-box{border:1px solid #cbe4df;background:#f5fcf9;border-radius:16px;padding:14px;margin-top:14px}.report-share-box h3{margin-top:0}
.report-public-banner{background:#eff9f6;border:1px solid #c8e5d9;border-radius:15px;padding:12px;font-size:11px;line-height:1.55;color:#315c4e}
@media(max-width:900px){
 .report-builder-grid{grid-template-columns:1fr}.formal-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .milestone-pill-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.report-photo-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:800px){
 .report-list-grid{grid-template-columns:1fr}.report-builder-card{padding:13px;border-radius:16px}
 .formal-cover{padding:19px;border-radius:18px}.formal-cover h1{font-size:23px}.formal-cover h2{font-size:15px}
 .formal-section{padding:13px;border-radius:16px}.formal-section h2{font-size:17px}
 .formal-copy{font-size:11px;line-height:1.65}.formal-summary-grid{gap:7px}
 .unit-progress-card{padding:10px}.report-status-bar{display:block}.report-status-bar .status{display:inline-block;margin-top:7px}
 .report-actions{display:grid;grid-template-columns:1fr}.report-actions .btn{width:100%;text-align:center}
}
@media(max-width:430px){
 .formal-summary-grid,.milestone-pill-grid,.report-photo-grid{grid-template-columns:1fr 1fr}
}
@media print{
 .report-actions,.report-share-box,.photo-lightbox,.no-print{display:none!important}
 .formal-cover,.formal-section{box-shadow:none;break-inside:avoid}
 .report-photo{break-inside:avoid}
}


/* BuildControl v1.6.7 — Workforce + Field Mode */
.worker-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:12px 0}
.worker-summary>div{background:#fff;border:1px solid var(--line);border-radius:16px;padding:12px}
.worker-summary small{display:block;font-size:8px;color:var(--muted);font-weight:900;text-transform:uppercase}
.worker-summary b{display:block;font-size:17px;margin-top:4px}
.employee-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.employee-card{border:1px solid var(--line);border-radius:18px;background:#fff;padding:14px}
.employee-card-head{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}
.employee-card h3{margin:0;font-size:15px}.employee-card small{color:var(--muted)}
.employee-meta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:12px 0}
.employee-meta>div{border:1px solid #e0ebeb;border-radius:12px;padding:8px;background:#fbfdfd}
.employee-meta span{display:block;font-size:7px;color:var(--muted);font-weight:900;text-transform:uppercase}
.employee-meta b{display:block;font-size:10px;margin-top:3px}
.employee-actions{display:flex;gap:6px;flex-wrap:wrap}
.employee-actions form{display:inline-flex}
.employee-detail-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}
.employee-detail-grid>div{border:1px solid var(--line);border-radius:13px;padding:10px}
.employee-detail-grid small{display:block;font-size:8px;color:var(--muted);text-transform:uppercase;font-weight:900}
.employee-detail-grid b{display:block;font-size:11px;margin-top:3px}
.cost-preview{border:1px solid #bee4d9;background:#f1fbf7;border-radius:14px;padding:12px;margin:10px 0}
.cost-preview small{display:block;color:#4d7165;font-size:9px}.cost-preview b{display:block;font-size:20px;margin-top:4px}
.field-error-card{max-width:850px;margin:30px auto;background:#fff;border:1px solid #efc8c8;border-radius:18px;padding:18px}
.field-error-card pre{white-space:pre-wrap;overflow:auto;background:#fff7f7;border-radius:12px;padding:10px;font-size:10px}
@media(max-width:800px){
 .worker-summary{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}
 .employee-grid{grid-template-columns:1fr}
 .employee-card{padding:11px;border-radius:15px}
 .employee-meta{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
 .employee-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}
 .employee-actions .btn,.employee-actions form,.employee-actions form .btn{width:100%;text-align:center}
 .employee-detail-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:420px){
 .worker-summary{grid-template-columns:1fr 1fr}
 .employee-meta,.employee-detail-grid{grid-template-columns:1fr}
 .employee-actions{grid-template-columns:1fr 1fr}
}


/* ==========================================================
   BuildControl v1.7.0 — Procurement-to-Payment
   ========================================================== */
.proc-flow{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px;margin:13px 0}
.proc-step{border:1px solid var(--line);border-radius:15px;padding:11px;background:#fff;min-width:0}
.proc-step .n{width:27px;height:27px;border-radius:50%;display:grid;place-items:center;background:#e6f7f5;color:#087d78;font-size:10px;font-weight:900;margin-bottom:7px}
.proc-step b{display:block;font-size:10px;line-height:1.3}.proc-step small{display:block;color:var(--muted);font-size:8px;line-height:1.35;margin-top:4px}
.proc-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}
.proc-kpi{border:1px solid var(--line);border-radius:16px;background:#fff;padding:12px}
.proc-kpi small{display:block;font-size:8px;color:var(--muted);font-weight:900;text-transform:uppercase}
.proc-kpi b{display:block;font-size:17px;margin-top:4px}
.proc-kpi em{font-style:normal;font-size:8px;color:var(--muted)}
.flow-card{border:1px solid var(--line);border-radius:17px;background:#fff;padding:14px}
.flow-card h3{margin:0 0 9px}.flow-card+.flow-card{margin-top:10px}
.match-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:10px 0}
.match-box{border:1px solid var(--line);border-radius:13px;padding:9px;background:#fbfdfd}
.match-box small{display:block;font-size:7px;color:var(--muted);text-transform:uppercase;font-weight:900}
.match-box b{display:block;font-size:11px;margin-top:3px}
.match-banner{border-radius:14px;padding:11px;font-size:10px;line-height:1.5}
.match-banner.good{background:#ebf9f2;border:1px solid #bfe6d2;color:#27684f}
.match-banner.warn{background:#fff7e7;border:1px solid #efd59d;color:#805d13}
.match-banner.bad{background:#ffedef;border:1px solid #efc5c9;color:#a03d46}
.doc-actions{display:flex;gap:6px;flex-wrap:wrap}.doc-actions form{display:inline-flex;margin:0}
.doc-actions .btn{min-height:34px;padding:7px 9px;font-size:10px}
.proc-table small{font-size:8px;color:var(--muted)}
.po-print{max-width:980px;margin:0 auto}.po-head{display:grid;grid-template-columns:1fr 1fr;gap:20px;border-bottom:2px solid #15383e;padding-bottom:14px}
.po-head .right{text-align:right}.po-title{font-size:30px;margin:0}.po-meta{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:15px 0}
.po-meta>div{border:1px solid var(--line);border-radius:12px;padding:9px}.po-meta small{display:block;font-size:7px;color:var(--muted);text-transform:uppercase;font-weight:900}.po-meta b{display:block;font-size:10px;margin-top:3px}
.po-total{max-width:370px;margin:13px 0 0 auto}.po-total div{display:flex;justify-content:space-between;padding:6px 0;border-bottom:1px solid #e3ecec}.po-total .grand{font-size:17px;font-weight:900}
.payment-balance{font-size:22px;font-weight:900;margin:4px 0}.payment-card{border:1px solid var(--line);border-radius:15px;padding:12px;background:#fff}
.timeline{display:grid;gap:6px}.timeline-row{display:grid;grid-template-columns:130px 1fr auto;gap:9px;align-items:center;border-bottom:1px solid #edf2f2;padding:8px 0}.timeline-row:last-child{border:0}
.invoice-mobile-list,.po-mobile-list,.delivery-mobile-list,.payment-mobile-list{display:none}
@media(max-width:1000px){.proc-flow{grid-template-columns:repeat(4,minmax(0,1fr))}.proc-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:800px){
 .proc-flow{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.proc-step{padding:9px}
 .proc-kpis{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.proc-kpi{padding:10px}.proc-kpi b{font-size:14px}
 .match-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .doc-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.doc-actions .btn,.doc-actions form,.doc-actions form .btn{width:100%;text-align:center}
 .po-head{grid-template-columns:1fr}.po-head .right{text-align:left}.po-title{font-size:22px}.po-meta{grid-template-columns:repeat(2,minmax(0,1fr))}
 .timeline-row{grid-template-columns:1fr}.timeline-row .status{justify-self:start}
 .invoice-desktop,.po-desktop,.delivery-desktop,.payment-desktop{display:none!important}
 .invoice-mobile-list,.po-mobile-list,.delivery-mobile-list,.payment-mobile-list{display:grid;gap:8px}
 .proc-mobile-card{border:1px solid var(--line);border-radius:15px;padding:11px;background:#fff}
 .proc-mobile-card .head{display:flex;justify-content:space-between;gap:8px;align-items:flex-start}
 .proc-mobile-card .money{font-size:17px;font-weight:900;margin:8px 0}
 .proc-mobile-card .meta{font-size:9px;color:var(--muted);line-height:1.5}
}
@media(max-width:430px){.proc-flow,.proc-kpis,.match-grid{grid-template-columns:1fr 1fr}.po-meta{grid-template-columns:1fr}}
@media print{
 .no-print,.mobile-topbar,.mobile-project-strip,.mobile-bottom-nav,.side,.top{display:none!important}
 .main,.content{margin:0!important;padding:0!important;max-width:none!important}.po-print{max-width:none}
 .card,.flow-card{box-shadow:none!important}
}
