*{box-sizing:border-box}:root{--brand-accent: #0077ff;--brand-white: #ffffff;--brand-navy: #01103f;--brand-blue: #013998;--brand-gradient: linear-gradient(135deg, #01103f 0%, #013998 100%);--brand-accent-soft: #e8f3ff;--brand-navy-muted: #0a1f4d;--app-shell-max: 480px}body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;background:#f0f4fa;color:#1a202c;min-height:100dvh}button,input{font:inherit}.app-shell{max-width:var(--app-shell-max);margin:0 auto;min-height:100dvh;display:flex;flex-direction:column;width:100%}header.app-header{background:var(--console-page-bg, #fcfcfc);color:#1a202c;border-bottom:1px solid var(--console-soft-stroke, #e8e8e8);padding:.85rem 1.25rem;display:flex;justify-content:space-between;align-items:center;gap:.75rem}.header-brand{display:flex;align-items:center;gap:.5rem;min-width:0;flex:1}.brand-logo-link{display:flex;align-items:center;flex-shrink:0;text-decoration:none;line-height:0}.brand-logo{height:1.65rem;width:auto;display:block}.header-page-title{font-size:.875rem;font-weight:600;color:#718096;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding-left:.5rem;border-left:1px solid var(--console-soft-stroke, #e8e8e8)}.header-actions{display:flex;align-items:center;gap:.5rem;flex-shrink:0}header.app-header h1{margin:0;font-size:1.25rem;letter-spacing:.04em}.header-home-btn{background:#fff;border:1px solid var(--console-soft-stroke, #e8e8e8);color:var(--brand-navy);border-radius:8px;padding:.35rem .75rem;cursor:pointer;font-weight:600;font-size:.875rem;text-decoration:none}.header-home-btn:hover{background:#f7fafc;border-color:#cbd5e0}main.app-main{flex:1;padding:1.25rem}.card{background:#fff;border-radius:12px;padding:1.25rem;box-shadow:0 1px 3px #00000014;margin-bottom:1rem}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;border:none;border-radius:10px;padding:.85rem 1.25rem;font-weight:600;cursor:pointer;width:100%}.btn-primary{background:var(--brand-blue);color:var(--brand-white)}.btn-primary:hover:not(:disabled){background:var(--brand-navy)}.btn-secondary{background:var(--brand-accent-soft);color:var(--brand-navy)}.btn-danger{background:#c53030;color:#fff}.btn:disabled{opacity:.55;cursor:not-allowed}.field{margin-bottom:1rem}.field label{display:block;font-size:.875rem;font-weight:600;margin-bottom:.35rem}.field input,.field textarea,.field select{width:100%;padding:.75rem;border:1px solid #cbd5e0;border-radius:8px;background:#fff}.field input:focus,.field textarea:focus,.field select:focus{outline:none;border-color:var(--brand-accent);box-shadow:0 0 0 2px #02abff40}.error-banner{background:#fed7d7;color:#9b2c2c;padding:.75rem 1rem;border-radius:8px;margin-bottom:1rem}.success-banner{background:#c6f6d5;color:#22543d;padding:.75rem 1rem;border-radius:8px;margin-bottom:1rem}.pending-uploads-strip{background:#fffbeb;color:#744210;padding:.65rem 1rem .75rem;border-bottom:1px solid #f6e05e}.pending-uploads-strip--compact{padding:.5rem .75rem .6rem}.pending-uploads-strip--embedded{border:1px solid #f6e05e;border-radius:8px;border-bottom:1px solid #f6e05e;margin:0}.pending-uploads-strip-title{margin:0 0 .45rem;font-size:.8rem;font-weight:600}.pending-uploads-thumbs{display:flex;flex-wrap:wrap;gap:.45rem}.pending-upload-thumb{position:relative;width:56px;height:56px;border-radius:6px;overflow:hidden;background:#edf2f7;border:1px solid #e2e8f0;flex-shrink:0;padding:0;margin:0;display:block;-moz-appearance:none;appearance:none;-webkit-appearance:none;font:inherit;color:inherit}.pending-upload-thumb--clickable{cursor:pointer}.pending-upload-thumb--clickable:hover{outline:2px solid #02abff;outline-offset:1px}.pending-upload-thumb:disabled{cursor:default;opacity:.95}.pending-upload-thumb--failed{border-color:#fc8181}.pending-upload-thumb img{width:100%;height:100%;object-fit:cover;display:block}.pending-upload-thumb-empty{width:100%;height:100%;background:#e2e8f0}.pending-upload-badge{position:absolute;left:0;right:0;bottom:0;padding:.1rem .15rem;font-size:.65rem;font-weight:700;text-align:center;color:#fff;background:#1a202cb8;line-height:1.2}.pending-upload-thumb--failed .pending-upload-badge{background:#c53030d9}.pending-upload-bar{position:absolute;left:0;bottom:0;height:3px;background:#02abff;max-width:100%}.online-status-bar{padding:.5rem 1rem;font-size:.875rem;text-align:center}.online-status-bar--online{background:#e6fffa;color:#234e52}.online-status-bar--offline{background:#fefcbf;color:#744210}.readonly-field{margin:0;padding:.65rem .75rem;background:#f7fafc;border:1px solid #e2e8f0;border-radius:8px;color:#4a5568;font-weight:600}.capture-edit-panel{margin-bottom:1rem}.log-details{font-size:.8rem;max-width:28rem;word-break:break-word}.joint-title{font-size:1.5rem;font-weight:700;margin:0 0 .25rem}.joint-sub{color:#718096;margin:0 0 1rem}.photo-count{font-size:1.1rem;font-weight:600;color:var(--brand-blue)}.preview-img{width:100%;border-radius:8px;margin:1rem 0}.hidden-input{display:none}.muted{color:#718096;font-size:.875rem}.actions-row{display:flex;flex-direction:column;gap:.75rem;margin-top:1rem}.page-back-btn{display:inline-block;width:100%;margin-top:1rem;text-align:center;text-decoration:none;box-sizing:border-box;background:var(--brand-navy-muted);color:var(--brand-white);border:1px solid var(--brand-navy)}.page-back-btn:hover{background:var(--brand-navy);color:var(--brand-white)}.scan-reader-wrap{width:min(100%,360px);aspect-ratio:1 / 1;margin:0 auto}.scan-status,.scan-hint{text-align:center;margin:0 0 .75rem}.scan-retry-btn{display:block;width:auto;margin:.75rem auto 0}.scan-torch-btn{width:auto;margin:.75rem auto 0;display:block}#qr-reader{width:100%!important;height:100%!important;border-radius:8px;overflow:hidden}#qr-reader>div{width:100%!important;height:100%!important}#qr-reader video{width:100%!important;height:100%!important;object-fit:cover;border-radius:8px}.gallery-card{margin-top:1rem}.photo-gallery{display:grid;grid-template-columns:repeat(2,1fr);gap:.75rem}.gallery-item{margin:0}.gallery-thumb{width:100%;aspect-ratio:1;object-fit:cover;border-radius:8px;cursor:pointer;background:#edf2f7}.gallery-thumb-loading,.gallery-thumb-error{width:100%;aspect-ratio:1;border-radius:8px;background:#edf2f7;display:flex;align-items:center;justify-content:center;font-size:.875rem;color:#718096}.gallery-thumb-skeleton{width:100%;aspect-ratio:1;border-radius:8px;background:linear-gradient(90deg,#edf2f7,#e2e8f0,#edf2f7);background-size:200% 100%;animation:capture-skel-shimmer 1.2s ease-in-out infinite}.gallery-caption-skeleton{margin-top:.35rem;height:.75rem;width:55%;border-radius:4px;background:#e2e8f0}.capture-header-skeleton{padding:.85rem 1rem .75rem}.capture-skel-line{border-radius:6px;background:linear-gradient(90deg,#e2e8f0,#edf2f7,#e2e8f0);background-size:200% 100%;animation:capture-skel-shimmer 1.2s ease-in-out infinite}.capture-skel-line--title{height:1.15rem;width:70%;margin-bottom:.45rem}.capture-skel-line--sub{height:.8rem;width:45%;margin-bottom:.35rem}.capture-skel-line--meta{height:.8rem;width:30%}.capture-saving-hint{margin:0 0 .65rem;font-size:.85rem}@keyframes capture-skel-shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}.gallery-caption{font-size:.75rem;margin-top:.35rem;line-height:1.35}.lightbox{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000d9;z-index:1000;display:flex;align-items:center;justify-content:center;padding:1rem}.lightbox-nav{position:absolute;top:50%;transform:translateY(-50%);z-index:1002;flex-shrink:0;width:2.75rem;height:2.75rem;border:none;border-radius:50%;background:#ffffff26;color:#fff;font-size:2rem;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0 0 .15rem}.lightbox-nav-prev{left:max(.35rem,env(safe-area-inset-left))}.lightbox-nav-next{right:max(.35rem,env(safe-area-inset-right))}.lightbox-nav:hover:not(:disabled){background:#ffffff47}.lightbox-nav:disabled{opacity:.25;cursor:not-allowed}.lightbox-inner{width:min(90vw,720px);max-width:100%;max-height:100%;text-align:center;flex:none;margin:0 auto}.lightbox-inner .muted{color:#ffffffd1}.lightbox-zoom-stage{width:100%;height:min(70vh,720px);max-height:calc(100dvh - 12rem);margin:0 auto;overflow:hidden;touch-action:none;display:flex;align-items:center;justify-content:center;border-radius:8px;background:#00000040}.lightbox-zoom-loading,.lightbox-zoom-error{color:#ffffffd9;font-size:1.25rem}.lightbox-img{max-width:100%;max-height:70vh;border-radius:8px}.lightbox-img-zoomable{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;transform-origin:center center;will-change:transform;-webkit-user-select:none;user-select:none;-webkit-user-drag:none}.user-list{list-style:none;padding:0;margin:0}.user-list li{padding:.5rem 0;border-bottom:1px solid #edf2f7;font-size:.875rem}.home-main{display:flex;flex-direction:column}.powered-by{margin-top:auto;padding-top:2rem;text-align:center;color:var(--brand-blue);font-size:.875rem;letter-spacing:.04em;font-weight:600}.footer-note{text-align:center}.app-footer{margin-top:auto;padding:1.25rem 1rem 1.5rem;text-align:center;color:#718096;font-size:.8125rem}.app-footer p{margin:.25rem 0}.app-footer-link{color:inherit;text-decoration:none}.app-footer-link:hover{text-decoration:underline}.busbar-checkbox-list{display:flex;flex-direction:column;gap:.35rem;margin:.75rem 0 1rem;max-height:240px;overflow-y:auto}.property-list{margin:0 0 1rem;padding:.75rem;background:#f7fafc;border-radius:8px}.property-row{display:flex;justify-content:space-between;gap:1rem;font-size:.875rem;padding:.25rem 0}.property-row dt{font-weight:600;margin:0}.property-row dd{margin:0;text-align:right;color:#4a5568}.joint-header-sticky{position:sticky;top:0;z-index:30;background:#f0f4fa;border-bottom:2px solid var(--brand-accent-soft);border-left:3px solid var(--brand-accent);padding:1rem 1.25rem;box-shadow:0 2px 6px #01103f0f}.joint-header-top{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem 1rem}.joint-header-text{min-width:0;flex:1}.joint-header-logo{flex-shrink:0;max-height:96px;max-width:280px;width:auto;height:auto;object-fit:contain;background:#fff;border:1px solid #e2e8f0;border-radius:6px;padding:.25rem .4rem}.joint-header-sticky .joint-sub{margin-bottom:.35rem}.capture-main{padding-top:.75rem;padding-bottom:calc(6.5rem + env(safe-area-inset-bottom,0px))}.admin-nav{display:flex;flex-direction:column;gap:.75rem}.admin-nav-link{display:block;padding:.85rem 1rem;background:var(--brand-accent-soft);color:var(--brand-navy);border-radius:10px;text-decoration:none;font-weight:600}.admin-nav-link:hover{background:#02abff38;color:var(--brand-blue)}.table-wrap{overflow-x:auto}.data-table{width:100%;border-collapse:collapse;font-size:.8125rem}.data-table th,.data-table td{padding:.6rem .5rem;border-bottom:1px solid #edf2f7;text-align:left;vertical-align:top}.data-table th{font-weight:700;color:#4a5568;white-space:nowrap}.data-table .sortable-th-btn{display:inline-flex;align-items:center;gap:.35rem;margin:0;padding:0;border:0;background:none;color:inherit;font:inherit;font-weight:700;cursor:pointer;text-align:left}.data-table .sortable-th-btn:hover{color:var(--brand-blue, #2b6cb0)}.data-table .sortable-th-indicator{display:inline-block;width:0;height:0;border-left:4px solid transparent;border-right:4px solid transparent;border-bottom:5px solid #a0aec0;opacity:.55;flex-shrink:0}.data-table .sortable-th.is-asc .sortable-th-indicator{border-bottom-color:var(--brand-blue, #2b6cb0);opacity:1}.data-table .sortable-th.is-desc .sortable-th-indicator{border-bottom:0;border-top:5px solid var(--brand-blue, #2b6cb0);opacity:1}.table-actions{white-space:nowrap}.link-btn{background:none;border:none;color:var(--brand-blue);cursor:pointer;font-weight:600;padding:0;margin-right:.75rem;font-size:inherit}.link-btn:hover{color:var(--brand-accent)}.link-btn.danger{color:#c53030}.checkbox-row{display:flex;gap:.5rem;align-items:center;margin-bottom:1rem}.stats-pre{font-size:.75rem;overflow:auto}.table-card{padding-bottom:.5rem}.toast-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:2000;display:flex;align-items:center;justify-content:center;pointer-events:none;padding:1.25rem}.toast-box{max-width:min(90vw,360px);padding:1rem 1.25rem;border-radius:12px;font-weight:600;font-size:.9375rem;text-align:center;box-shadow:0 8px 32px #0000002e;animation:toast-in .2s ease-out}.toast-success{background:#c6f6d5;color:#22543d;border:1px solid #9ae6b4}.toast-error{background:#fed7d7;color:#9b2c2c;border:1px solid #feb2b2}@keyframes toast-in{0%{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}.home-main .card{max-width:28rem}.home-shell--signed-in .home-main{padding-bottom:calc(3rem + env(safe-area-inset-bottom,0px))}.home-actions-section{margin-bottom:0}.home-id-card{padding:1.15rem 1.25rem;border-radius:14px;background:var(--brand-gradient);color:var(--brand-white);box-shadow:0 8px 24px #01103f2e}.home-id-card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.home-id-card-intro{min-width:0;flex:1}.home-id-card-kpis{margin-top:1rem;padding-top:1rem;border-top:1px solid rgba(255,255,255,.22)}.home-id-card-kpis-row{display:grid;grid-template-columns:1fr 1fr;gap:.75rem;margin-bottom:0}.home-id-card-kpis-loading{margin:0;font-size:.875rem;opacity:.85}.home-id-card .console-kpi{background:#ffffff1f;border:1px solid rgba(255,255,255,.22)}.home-id-card .console-kpi-label{color:#ffffffd1}.home-id-card .console-kpi-value{color:var(--brand-white)}.home-id-card-badge{flex-shrink:0;width:3.5rem;height:3.5rem;border-radius:12px;display:flex;align-items:center;justify-content:center;background:#ffffff24;border:1px solid rgba(255,255,255,.28);font-weight:700;font-size:1rem;letter-spacing:.04em}.home-id-card-name{margin:0;font-size:1.35rem;line-height:1.2}.home-id-card-role{margin:.35rem 0 0;font-size:.9375rem;opacity:.9}.app-menu-user{display:flex;align-items:center;gap:.75rem;padding-bottom:.15rem;min-width:0}.app-gradient-top .app-menu-user-panel{margin-bottom:.65rem}.app-menu-user-badge{flex-shrink:0;width:2.75rem;height:2.75rem;border-radius:10px;display:flex;align-items:center;justify-content:center;background:var(--brand-white);border:1px solid var(--brand-blue);color:var(--brand-navy);font-weight:700;font-size:.875rem}.app-menu-user-body{min-width:0}.app-menu-user-name{margin:0;font-weight:600;font-size:.9375rem}.app-menu-user-role,.app-menu-user-company{margin:.15rem 0 0;font-size:.8125rem;opacity:.85}.app-menu-logout-btn{display:none}.app-menu-toolbar{display:flex;flex-direction:column;gap:1rem}.app-menu-user-popover{display:none}.app-menu-popover-row{display:flex;justify-content:space-between;gap:1rem;margin:0 0 .5rem;font-size:.8125rem}.app-menu-popover-row:last-of-type{margin-bottom:.75rem}.app-menu-popover-label{color:#64748b}.app-menu-popover-value{font-weight:600;text-align:right}.home-id-card-meta{margin:.85rem 0 0;display:grid;gap:.45rem}.home-id-card-meta div{display:grid;grid-template-columns:minmax(0,7.5rem) minmax(0,1fr);gap:.5rem;font-size:.8125rem}.home-id-card-meta dt{margin:0;opacity:.75}.home-id-card-meta dd{margin:0;font-weight:600}.home-section{margin-top:1rem}.home-section-title{margin:0 0 1rem;font-size:1rem;color:var(--brand-navy)}.home-console-cta{margin-top:1rem;padding-top:1rem;border-top:1px solid #e2e8f0}.home-busbar-table-cta{margin-top:1rem}.home-console-link{display:block;width:100%;text-align:center;text-decoration:none}.home-activity-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.75rem}.home-activity-item{padding-bottom:.75rem;border-bottom:1px solid #edf2f7}.home-activity-link{display:block;text-decoration:none;color:inherit;border-radius:6px;margin:-.25rem;padding:.25rem}.home-activity-link:hover .home-activity-text{color:var(--brand-blue)}.home-activity-link:focus-visible{outline:2px solid var(--brand-blue);outline-offset:2px}.home-activity-item:last-child{padding-bottom:0;border-bottom:none}.home-activity-text{margin:0 0 .2rem;font-size:.9375rem;line-height:1.4}.home-activity-time{margin:0;font-size:.8125rem}.home-overview-table{max-height:320px}.home-secondary-menu{display:flex;flex-direction:column;gap:.65rem}.home-secondary-btn{display:block;text-align:center;text-decoration:none;width:100%}.home-guest-card{width:100%}.home-quick-actions{position:fixed;left:50%;transform:translate(-50%);bottom:calc(4.25rem + env(safe-area-inset-bottom,0px));z-index:35;width:100%;max-width:var(--app-shell-max);padding:0 .85rem;background:none;opacity:1;pointer-events:none;transition:opacity .28s ease,transform .28s ease}.home-quick-actions-glass{position:relative;display:flex;gap:.65rem;padding:.65rem;border-radius:14px;background:var(--brand-navy);border:1px solid rgba(2,171,255,.2);box-shadow:0 8px 24px #01103f24;pointer-events:auto}.home-quick-actions-glass .home-quick-btn{position:relative;z-index:1;background:var(--brand-white);color:var(--brand-navy);font-weight:600;border:none}.home-quick-actions-glass .home-quick-btn:hover{background:#ffffffeb;color:var(--brand-navy)}.home-quick-actions--hidden{opacity:0;pointer-events:none;transform:translate(-50%) translateY(.75rem)}.home-quick-btn{flex:1;text-decoration:none;text-align:center;padding-top:.85rem;padding-bottom:.85rem;font-size:.9375rem}.home-overview-team{margin-top:1.25rem;padding-top:1rem;border-top:1px solid #e2e8f0}.home-overview-team-btn{display:block;width:100%;text-align:center;text-decoration:none}.home-team-list{list-style:none;margin:0;padding:0;display:grid;gap:.75rem}.home-team-item{display:flex;align-items:center;gap:.65rem}.home-team-rank{flex-shrink:0;width:1.5rem;font-size:.8125rem;font-weight:700;color:#64748b;text-align:center}.home-team-initials{flex-shrink:0;width:2.5rem;height:2.5rem;border-radius:10px;display:flex;align-items:center;justify-content:center;background:var(--brand-accent-soft);color:var(--brand-navy);font-weight:700;font-size:.8125rem}.home-team-details{min-width:0;flex:1}.home-team-photos{flex-shrink:0;font-size:.8125rem;font-weight:600;color:var(--brand-blue);white-space:nowrap}.home-team-name{margin:0;font-weight:600;font-size:.9375rem}.home-team-meta{margin:.15rem 0 0;font-size:.8125rem;color:#64748b}.home-map-wrap{display:grid;gap:.65rem}.home-map-frame{width:100%;height:220px;border:0;border-radius:12px;background:#e2e8f0}.capture-edit-inline{margin-bottom:.5rem}.home-menu{display:flex;flex-direction:column;gap:.65rem;margin-top:1.25rem}.home-menu-btn{display:block;text-align:center;width:100%;box-sizing:border-box}.home-menu-item--disabled .home-menu-btn{opacity:.55;cursor:not-allowed;pointer-events:none}.home-menu-hint{margin:.25rem 0 0;font-size:.8125rem;line-height:1.35}.home-role-hierarchy{margin-bottom:.5rem}@media(min-width:768px){:root{--app-shell-max: 720px}main.app-main{padding:1.35rem 1.5rem 1.75rem}.scan-reader-wrap{width:min(100%,440px)}.photo-gallery{grid-template-columns:repeat(3,1fr)}.admin-nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}header.app-header{padding:.85rem 1.5rem}}@media(min-width:960px){:root{--app-shell-max: 1200px}main.app-main{padding:1.5rem 2rem 2rem}.home-main .card{max-width:none}.home-shell--signed-in .home-main{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;padding-bottom:2rem}.home-id-card{display:none}.home-shell--signed-in .home-section{margin-top:0}.home-quick-actions{display:none}.scan-reader-wrap{width:min(100%,520px)}.photo-gallery{grid-template-columns:repeat(4,1fr)}.admin-nav{grid-template-columns:repeat(3,minmax(0,1fr))}.page-back-btn{display:block;width:auto;min-width:12rem;margin-left:auto;margin-right:auto}.login-card{width:33.333%;max-width:none;margin-left:auto;margin-right:auto}.home-console-cta,.home-busbar-table-cta{display:block}.home-section .home-console-link,.home-section .home-overview-team-btn{display:block;width:100%;max-width:none}}.console-shell{min-height:100dvh;height:100dvh;display:flex;flex-direction:column;background:#fcfcfc;color:#1a202c;overflow:hidden;--console-page-bg: #fcfcfc;--console-soft-stroke: #e8e8e8;--console-sidebar-width: 260px;--console-sidebar-pad-x: 1rem;--console-nav-pad-x: .75rem;--console-content-pad-top: 1.5rem;--console-title-block: 2.95rem ;--console-breadcrumb-line: calc(1.5rem * 1.3);--console-nav-link-pad-y: .65rem;--console-nav-icon: 1.05rem;--console-nav-link-height: calc(var(--console-nav-link-pad-y) * 2 + var(--console-nav-icon))}.console-shell-brand{display:none;background:var(--console-page-bg);color:var(--brand-navy)}.console-sidebar-body{display:none;background:var(--console-page-bg);color:var(--brand-navy);flex-direction:column;min-height:0}.console-brand{padding:.15rem 0 .35rem}.console-brand-subtitle{margin:.35rem 0 0;font-size:.8125rem;font-weight:500;color:#718096}.console-brand .brand-logo{height:1.75rem;width:auto;display:block}@media(min-width:960px){.console-shell{display:grid;grid-template-columns:var(--console-sidebar-width) minmax(0,1fr);grid-template-rows:auto minmax(0,1fr);grid-template-areas:"brand header" "nav main"}.console-shell-brand{display:flex;grid-area:brand;align-items:center;box-sizing:border-box;padding:.85rem var(--console-sidebar-pad-x)}.console-brand{padding:0 0 0 var(--console-nav-pad-x);width:100%}.console-desktop-header{grid-area:header}.console-sidebar-body{display:flex;grid-area:nav;box-sizing:border-box;padding:calc(var(--console-content-pad-top) + (var(--console-breadcrumb-line) / 2) - (var(--console-nav-link-height) / 2)) var(--console-sidebar-pad-x) 1.25rem;overflow:hidden}.console-main{grid-area:main;min-height:0}}.console-field label{display:block;font-size:.75rem;text-transform:uppercase;letter-spacing:.04em;color:#718096;margin-bottom:.35rem}.console-field select{width:100%;border:1px solid #e2e8f0;border-radius:8px;padding:.5rem .65rem;font:inherit;background:#fff;color:var(--brand-navy)}.console-nav{display:flex;flex-direction:column;gap:.35rem;flex:1;min-height:0;overflow:auto}.console-nav-link{display:flex;align-items:center;gap:.65rem;padding:var(--console-nav-link-pad-y) .75rem;border-radius:8px;border:1px solid transparent;color:var(--brand-navy);text-decoration:none;font-weight:400}.console-nav-link-label{min-width:0}.console-icon{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:1.05rem;height:1.05rem;color:inherit;line-height:0}.console-icon svg{width:100%;height:100%;display:block}.console-nav-link .console-icon{opacity:.8}.console-nav-link.active .console-icon,.console-nav-link:hover .console-icon{opacity:1}.console-nav-link:hover{background:#0139980f}.console-nav-link.active{background:var(--brand-accent-soft);border-color:transparent;color:var(--brand-blue);font-weight:600}.console-nav-link.disabled{opacity:.45;pointer-events:none}.console-sidebar-footer{margin-top:auto;display:flex;flex-direction:column;gap:.5rem;flex-shrink:0}.console-desktop-header{display:none}@media(min-width:960px){.console-desktop-header{display:flex;justify-content:flex-end;align-items:center;flex-shrink:0;box-sizing:border-box;padding:.85rem 2rem;background:var(--console-page-bg);overflow:visible;z-index:40;--app-user-dropdown-width: 16.5rem}.console-desktop-header-right{display:flex;align-items:center;gap:1rem;min-width:0}.console-desktop-project{display:flex;flex-direction:row;align-items:center;margin:0;min-width:0;width:min(280px,36vw)}.console-desktop-project select{flex:1 1 auto;min-width:0;width:100%}.console-desktop-user-panel{position:relative;display:flex;flex-direction:column;align-items:flex-end;width:fit-content;flex-shrink:0;margin:0}.console-desktop-user-panel .app-menu-user,.console-desktop-user-panel .console-desktop-user-trigger{display:flex;align-items:center;justify-content:center;cursor:pointer;box-sizing:border-box;width:auto;margin:0;padding:.35rem;border:none;border-radius:10px;background:transparent;color:inherit;font:inherit;transition:background .15s ease,border-radius .15s ease}.console-desktop-user-panel .app-menu-user-badge{background:var(--brand-white);border:1px solid var(--brand-blue);color:var(--brand-navy)}.console-desktop-user-panel.is-open .app-menu-user,.console-desktop-user-panel.is-open .console-desktop-user-trigger{background:var(--brand-white);border-radius:10px 10px 0 0}.console-desktop-user-panel.is-open .app-menu-user-badge{background:var(--brand-accent-soft);border-color:var(--brand-blue);color:var(--brand-navy)}.console-desktop-user-panel .app-menu-user-popover{display:block;position:absolute;top:100%;right:0;left:auto;z-index:60;box-sizing:border-box;width:var(--app-user-dropdown-width);margin:0;padding:.65rem .85rem .75rem;border-top:1px solid #e2e8f0;border-radius:10px 0 10px 10px;background:var(--brand-white);color:var(--brand-navy);box-shadow:0 8px 24px #01103f26;opacity:0;visibility:hidden;pointer-events:none;transform:translateY(-4px);transition:opacity .18s ease,transform .18s ease,visibility .18s ease}.console-desktop-user-panel.is-open .app-menu-user-popover{opacity:1;visibility:visible;pointer-events:auto;transform:translateY(0)}.console-desktop-user-panel .app-menu-logout-btn{display:block;width:100%;margin-top:.15rem;padding:.55rem .75rem;border:1px solid #e2e8f0;border-radius:8px;background:#f7fafc;color:var(--brand-navy);font:inherit;font-size:.8125rem;font-weight:600;cursor:pointer;text-align:center}.console-desktop-user-panel .app-menu-logout-btn:hover{background:#edf2f7}}.console-main{flex:1;min-width:0;min-height:0;display:flex;flex-direction:column;height:100%;background:var(--console-page-bg)}.console-content{flex:1;min-width:0;min-height:0;display:flex;flex-direction:column;overflow:auto;padding:var(--console-content-pad-top, 1.5rem) 2rem 2rem;max-width:none;width:100%}.console-page-fill{flex:1;min-width:0;min-height:0;display:flex;flex-direction:column;overflow:hidden}.console-page-fill .console-page-title,.console-page-fill .console-breadcrumb{flex-shrink:0}.console-panel-fill{flex:1;min-width:0;min-height:0;display:flex;flex-direction:column;overflow:hidden}.console-panel-fill .console-action-toolbar,.console-panel-fill .console-filter-row,.console-panel-fill .console-progress-bar{flex-shrink:0}.console-panel-fill .console-table-wrap{flex:1;min-height:0;max-height:none;overflow:auto}.console-page-title{margin:0 0 1rem;font-size:1.5rem;line-height:1.3}.console-breadcrumb-title{font-weight:400;line-height:1.3}.console-breadcrumb-parent{color:#a0aec0;font-weight:400}.console-breadcrumb-current{color:#1a202c;font-weight:700}.console-breadcrumb{margin:0 0 1rem;font-size:.875rem}.console-info-box{border:1px solid #e2e8f0;border-radius:10px;padding:1rem 1.15rem;margin-bottom:1.25rem;background:#f8fafc}.console-info-box p{margin:0 0 .45rem}.console-info-box p:last-child{margin-bottom:0}.console-action-toolbar{position:relative;display:block;margin-bottom:1rem;padding:.75rem;border-radius:10px;border:1px solid var(--console-soft-stroke, #e8e8e8);background:#fff;transition:background .15s ease,border-color .15s ease}.console-action-toolbar.has-selection{background:#fff;border-color:var(--console-soft-stroke, #e8e8e8)}.console-toolbar-measure{position:absolute;visibility:hidden;pointer-events:none;left:-9999px;top:0;display:flex;flex-wrap:nowrap;gap:1rem;align-items:center;height:auto;overflow:visible}.console-toolbar-measure-item{flex-shrink:0}.console-action-toolbar-main{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:nowrap;min-width:0}.console-action-toolbar-buttons{display:flex;flex-wrap:nowrap;gap:1rem;align-items:center;justify-content:flex-start;min-width:0;flex:1 1 auto;overflow:visible}.console-toolbar-actions-clip{display:flex;flex-wrap:nowrap;gap:1rem;align-items:center;min-width:0;flex:0 1 auto;overflow:hidden}.console-toolbar-action-item{flex-shrink:0}.console-action-toolbar-right{display:flex;flex-wrap:nowrap;gap:.65rem;align-items:center;flex-shrink:0;margin-left:auto}.console-fade-presence{opacity:0;transition:opacity .18s ease;pointer-events:none}.console-fade-presence.is-visible{opacity:1;pointer-events:auto}.console-toolbar-selection{display:flex;flex-wrap:nowrap;gap:1rem;align-items:center}.console-toolbar-selection:not(.is-visible) .console-fade-presence{opacity:1;transition:none;pointer-events:none}.console-action-toolbar-buttons .btn,.console-action-toolbar-right .btn,.console-toolbar-overflow-item .btn{display:inline-flex;align-items:center;width:auto;padding:.425rem .625rem;font-size:.8125rem;border-radius:6px;border:1px solid transparent;background:#f1f5f9;color:color-mix(in srgb,var(--brand-navy) 65%,#4a5568);line-height:1.2;gap:.35rem}.console-action-toolbar-buttons .btn-secondary,.console-action-toolbar-buttons .btn-secondary:not(.console-toolbar-fixed),.console-action-toolbar-right .btn-secondary,.console-toolbar-overflow-item .btn-secondary{background:#f1f5f9;color:color-mix(in srgb,var(--brand-navy) 65%,#4a5568);border-color:transparent}.console-action-toolbar-buttons .btn-secondary:hover:not(:disabled),.console-action-toolbar-buttons .btn-secondary:not(.console-toolbar-fixed):hover:not(:disabled),.console-action-toolbar-right .btn-secondary:hover:not(:disabled),.console-toolbar-overflow-item .btn-secondary:hover:not(:disabled){background:#f1f5f9;color:color-mix(in srgb,var(--brand-navy) 65%,#4a5568);border-color:#cbd5e0}.console-action-toolbar-buttons .btn-primary,.console-toolbar-overflow-item .btn-primary{background:#f1f5f9;color:color-mix(in srgb,var(--brand-navy) 65%,#4a5568);border-color:transparent}.console-action-toolbar-buttons .btn-primary:hover:not(:disabled),.console-toolbar-overflow-item .btn-primary:hover:not(:disabled){background:#f1f5f9;color:color-mix(in srgb,var(--brand-navy) 65%,#4a5568);border-color:#cbd5e0}.btn.console-btn-add,.console-action-toolbar-buttons .btn.console-btn-add,.console-toolbar-overflow-item .btn.console-btn-add{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;background:var(--brand-accent);border:1px solid transparent;color:var(--brand-white)}.btn.console-btn-add:hover:not(:disabled),.console-action-toolbar-buttons .btn.console-btn-add:hover:not(:disabled),.console-toolbar-overflow-item .btn.console-btn-add:hover:not(:disabled){background:#06d;border-color:transparent;color:var(--brand-white)}.console-btn-add-plus{display:inline-flex;align-items:center;justify-content:center;font-size:1.15em;font-weight:700;line-height:1;margin-top:-.05em}.console-action-toolbar-buttons .console-icon,.console-action-toolbar-right .console-icon,.console-toolbar-overflow-item .console-icon{width:.95rem;height:.95rem}.console-action-toolbar-buttons .btn-danger,.console-action-toolbar-buttons .btn-danger:not(.console-toolbar-fixed),.console-toolbar-overflow-item .btn-danger{background:#f1f5f9;color:#e53e3e;border-color:transparent}.console-action-toolbar-buttons .btn-danger:hover:not(:disabled),.console-action-toolbar-buttons .btn-danger:not(.console-toolbar-fixed):hover:not(:disabled),.console-toolbar-overflow-item .btn-danger:hover:not(:disabled){background:#f1f5f9;color:#e53e3e;border-color:#fc8181}.console-toolbar-icon-btn{padding:.425rem!important;min-width:2rem;justify-content:center}.console-toolbar-search{display:inline-flex;align-items:center;gap:.35rem;box-sizing:border-box;min-width:9.5rem;max-width:14rem;padding:.425rem .625rem;border-radius:6px;border:1px solid transparent;background:#f1f5f9;color:color-mix(in srgb,var(--brand-navy) 65%,#4a5568);font-size:.8125rem;line-height:1.2}.console-toolbar-search:focus-within{border-color:#cbd5e0}.console-toolbar-search input{flex:1 1 auto;min-width:0;width:100%;border:none;outline:none;background:transparent;color:inherit;font:inherit;font-size:.8125rem;padding:0;margin:0}.console-toolbar-search input::placeholder{color:#a0aec0}.console-toolbar-filter,.console-toolbar-overflow{position:relative;flex-shrink:0;order:1;margin-left:0}.console-toolbar-popover{display:none;position:absolute;top:calc(100% + .35rem);right:0;z-index:70;box-sizing:border-box;min-width:14rem;padding:.65rem .75rem;border-radius:10px;border:1px solid #e2e8f0;background:var(--brand-white);box-shadow:0 8px 24px #01103f26;flex-direction:column;gap:.5rem}.console-toolbar-popover.is-open{display:flex}.console-toolbar-popover--portal{position:fixed;right:auto;display:flex;margin:0}.console-toolbar-filter-popover select,.console-toolbar-filter-popover input{width:100%;box-sizing:border-box;padding:.425rem .625rem;border:1px solid #e2e8f0;border-radius:6px;font:inherit;font-size:.8125rem;line-height:1.2;background:#fff;color:var(--brand-navy)}.console-toolbar-overflow-popover{min-width:11rem;z-index:80}.console-toolbar-overflow-item .btn{width:100%;justify-content:flex-start}.console-mobile-tabs{display:none}.console-export-panel{display:flex;flex-direction:column;gap:1.25rem}.console-export-intro{margin:0}.console-export-toolbar{display:flex;align-items:center;justify-content:space-between;gap:.75rem;flex-wrap:wrap}.console-export-selection{margin:0}.console-export-toolbar-actions{display:flex;flex-wrap:wrap;gap:.5rem}.console-export-group{display:flex;flex-direction:column;gap:.75rem}.console-export-group-title{margin:0;font-size:.9375rem;font-weight:600;color:var(--brand-navy)}.console-export-columns{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:.625rem}.console-export-column{display:flex;align-items:center;gap:.5rem;padding:.625rem .75rem;border:1px solid #e2e8f0;border-radius:8px;background:#fff;cursor:pointer}.console-export-column input{margin:0}.console-export-actions{display:flex;justify-content:flex-start}.console-export-actions .btn{width:auto;min-width:10rem}.console-selection-clear{display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;border:1px solid transparent;background:#f1f5f9;color:color-mix(in srgb,var(--brand-navy) 65%,#4a5568);border-radius:6px;padding:.425rem .625rem;font:inherit;font-size:.8125rem;font-weight:600;line-height:1.2;cursor:pointer;white-space:nowrap}.console-selection-clear:hover{background:#f1f5f9;border-color:#cbd5e0}.console-checkbox-col{width:2.5rem;text-align:center}.console-progress-cell{display:flex;flex-direction:column;gap:.35rem;min-width:120px}.console-progress-bar{height:6px;background:#e2e8f0;border-radius:999px;overflow:hidden}.console-progress-bar-fill{height:100%;background:var(--brand-navy);border-radius:999px;transition:width .2s ease}.console-progress-bar-fill.complete{background:#38a169}.console-detail-modal{align-items:center;padding:1.5rem 3.5rem;overflow-y:auto}.console-detail-modal-panel{position:relative;background:#fff;border-radius:12px;width:min(960px,100%);max-height:min(90vh,900px);display:flex;flex-direction:column;overflow:hidden;box-shadow:0 8px 32px #0003;padding:1.25rem 1.5rem 1.5rem}.console-detail-nav-meta{margin:0 2rem .75rem 0;font-size:.8125rem;text-align:right}.console-detail-modal .lightbox-nav{position:fixed}.console-detail-close{position:absolute;top:.75rem;right:.75rem;z-index:2;border:none;background:#edf2f7;color:#4a5568;width:2rem;height:2rem;border-radius:999px;font-size:1.25rem;line-height:1;cursor:pointer}.console-detail-modal-panel .console-joint-detail-scroll{max-height:calc(min(90vh,900px) - 120px);overflow-y:auto}.console-settings-back{margin-top:1.25rem;padding-top:1rem;border-top:1px solid #e2e8f0}.console-nav-link-inline{color:var(--brand-navy);font-weight:600;text-decoration:none}.console-nav-link-inline:hover{text-decoration:underline}.console-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1rem}.console-card-link{display:block;background:#fff;border-radius:12px;padding:1.25rem;text-decoration:none;color:inherit;box-shadow:0 1px 3px #00000014;transition:box-shadow .15s ease}.console-card-link:hover{box-shadow:0 4px 12px #0000001a}.console-card-link h3{margin:0 0 .5rem}.console-card-link p{margin:0;color:#718096;font-size:.9375rem}.console-card-link.unavailable{opacity:.55;pointer-events:none}.console-tabs{display:flex;gap:.35rem;flex-wrap:wrap;margin-bottom:1rem}.console-tab{border:none;background:#fff;color:#4a5568;padding:.5rem .85rem;border-radius:999px;cursor:pointer;font:inherit}.console-tab.active{background:var(--brand-navy);color:#fff}.console-panel{background:#fff;border-radius:12px;padding:1.25rem;border:1px solid var(--console-soft-stroke, #e8e8e8);box-shadow:none}.console-sub-panel{margin-top:1.25rem;padding:1rem 1.15rem;border:1px solid #e2e8f0;border-radius:10px;background:#f8fafc}.console-sub-panel-title{margin:0 0 .85rem;font-size:.9375rem;font-weight:600;color:var(--brand-navy)}.console-settings-form{display:flex;flex-direction:column;gap:1rem}.console-settings-section{padding:1rem 1.15rem;border:1px solid #e2e8f0;border-radius:10px;background:#f8fafc;min-width:0}.console-settings-form .field{min-width:0}.console-date-input-wrap{position:relative;width:100%;max-width:100%;overflow:hidden;border:1px solid #cbd5e0;border-radius:8px;background:#fff;box-sizing:border-box}.console-date-input-wrap:focus-within{border-color:var(--brand-accent);box-shadow:0 0 0 2px #02abff40}.console-date-input-wrap input[type=date]{display:block;width:100%;max-width:100%;min-width:0;box-sizing:border-box;border:none;background:transparent;padding:.75rem 2.5rem .75rem .75rem;margin:0;font:inherit;line-height:1.25;-webkit-appearance:none;-moz-appearance:none;appearance:none;-webkit-min-logical-width:0;min-height:0}.console-date-input-wrap input[type=date]::-webkit-date-and-time-value{text-align:left;min-width:0;max-width:100%;overflow:hidden;text-overflow:ellipsis}.console-date-input-wrap input[type=date]::-webkit-datetime-edit{display:flex;min-width:0;max-width:100%;overflow:hidden;padding:0}.console-date-input-wrap input[type=date]::-webkit-datetime-edit-fields-wrapper{min-width:0;max-width:100%;padding:0}.console-date-input-wrap input[type=date]::-webkit-datetime-edit-year-field,.console-date-input-wrap input[type=date]::-webkit-datetime-edit-month-field,.console-date-input-wrap input[type=date]::-webkit-datetime-edit-day-field{min-width:0;padding:0}.console-date-input-wrap input[type=date]::-webkit-calendar-picker-indicator{position:absolute;top:0;right:0;width:2.5rem;height:100%;margin:0;padding:0;cursor:pointer;opacity:.85}.console-settings-form .field input[type=date]{display:block;width:100%;max-width:100%;min-width:0;box-sizing:border-box}.console-panel.console-settings{overflow-x:hidden;min-width:0}.console-settings-section-title{margin:0 0 .85rem;font-size:.9375rem;font-weight:600;color:var(--brand-navy)}.console-settings-section .field:last-child{margin-bottom:0}.console-settings-section .checkbox-row{display:flex;align-items:center;gap:.5rem;margin-bottom:.45rem}.console-settings-section .checkbox-row:last-child{margin-bottom:0}.console-field-hint{margin:.35rem 0 0;font-size:.8125rem}.console-logo-field-label{display:block;font-weight:600;margin-bottom:.25rem}.console-logo-slots{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:.85rem;margin-top:.65rem}.console-logo-slot{min-width:0;padding:.65rem .75rem;border:1px solid #e2e8f0;border-radius:8px;background:#fff}.console-logo-slot-title{margin:0 0 .35rem;font-size:.8125rem;font-weight:600;color:var(--brand-navy)}.console-logo-preview{display:block;max-height:56px;max-width:100%;width:auto;height:auto;object-fit:contain;margin:.35rem 0 .65rem;background:#fff;border:1px solid #e2e8f0;border-radius:6px;padding:.35rem .5rem}.console-logo-empty{margin:.5rem 0 .75rem}.console-logo-file-input{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.console-logo-actions{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}.console-settings-actions{padding-top:.25rem}.console-torque-columns{margin-top:.75rem}.console-torque-section-toggles{display:flex;flex-direction:column;gap:.35rem;margin-top:.75rem;margin-bottom:.75rem;padding-bottom:.75rem;border-bottom:1px solid #e2e8f0}.console-torque-custom{margin-top:1.25rem;padding-top:1rem;border-top:1px solid #e2e8f0}.console-torque-custom-title{margin:0 0 .65rem;font-size:.9375rem;font-weight:600}.console-torque-custom-list,.console-torque-wrench-list{list-style:none;margin:0 0 .75rem;padding:0;display:flex;flex-direction:column;gap:.5rem}.console-inline-list-row{display:flex;gap:.5rem;align-items:center;min-width:0}.console-inline-list-input{flex:1;min-width:0;width:100%;padding:.65rem .75rem;border:1px solid #cbd5e0;border-radius:8px;background:#fff;font:inherit;box-sizing:border-box}.console-inline-list-input:focus{outline:none;border-color:var(--brand-accent);box-shadow:0 0 0 2px #02abff40}.console-inline-list-add{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap;min-width:0}.console-inline-list-add .console-inline-list-input{flex:1 1 12rem}.console-inline-list-btn{width:auto;flex:0 0 auto;padding:.55rem .85rem;white-space:nowrap}.console-wrench-serial{flex:1;min-width:0;padding:.65rem .75rem;border:1px solid #e2e8f0;border-radius:8px;background:#fff;font-weight:500}.console-filter-row-wrap{flex-wrap:wrap}.console-export-actions{display:flex;gap:1rem;margin-bottom:.65rem}.console-export-divider{border:none;border-top:1px solid #e2e8f0;margin:1.5rem 0}.console-torque-verify{margin-top:1rem;margin-bottom:0;padding:.85rem 1rem;border:1px solid #e2e8f0;border-radius:8px;background:#f8fafc}.console-torque-verify-title{margin:0 0 .65rem;font-size:.875rem;font-weight:600}.console-torque-verify-row{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:.5rem;font-size:.875rem}.console-torque-verify-row:last-child{margin-bottom:0}.btn-sm{width:auto;padding:.35rem .65rem;font-size:.8125rem}.console-split{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(320px,.9fr);gap:1rem;min-height:520px}.console-split-list{min-width:0;overflow:auto;display:flex;flex-direction:column}.console-split-list-footer{margin-top:auto;padding-top:.75rem}.console-split-detail{min-width:0;border-left:1px solid #e2e8f0;padding-left:1rem;max-height:520px;display:flex;flex-direction:column;overflow:hidden}.console-joint-detail-sticky{flex-shrink:0;background:#fff;padding-bottom:.65rem;border-bottom:1px solid #e2e8f0;margin-bottom:0}.console-joint-detail-sticky h3{margin:0 0 .35rem}.console-joint-detail-sticky p{margin:0}.console-joint-detail-scroll{flex:1;min-height:0;overflow-y:auto;padding-top:.75rem}.console-joint-detail-header-row{display:flex;align-items:flex-start;gap:1rem;margin-bottom:1rem;flex-wrap:wrap}.console-joint-detail-header-row .console-qr-block{margin:0}.console-joint-detail-header-actions{display:flex;flex-direction:row;flex-wrap:wrap;align-items:flex-start;align-content:flex-start;gap:.35rem;padding-top:.15rem;flex:1;min-width:0;max-height:120px;overflow:auto}.console-joint-detail-header-actions .btn{width:auto;padding:.25rem .55rem;font-size:.75rem;font-weight:600;border-radius:6px}.console-joint-detail-header-actions .console-installed-readonly{display:inline-flex;align-items:center;font-size:.75rem;font-weight:600;padding:.25rem .55rem}.console-torque-verify .btn{width:auto;padding:.25rem .55rem;font-size:.75rem;font-weight:600;border-radius:6px}.console-qr-block{margin:.75rem 0 1rem}.console-qr-code{display:block;border-radius:8px;background:#fff}.console-qr-url{margin:.35rem 0 0;font-size:.8125rem}.console-photo-gallery{grid-template-columns:repeat(8,1fr);gap:.35rem}.console-photo-gallery .gallery-caption{font-size:.625rem;line-height:1.25}.console-photo-gallery .gallery-item{margin:0}.console-actions-cell{white-space:nowrap}.console-actions-cell .link-btn+.link-btn{margin-left:.75rem}.console-modal{background:#00000080}.console-modal-panel{background:#fff;border-radius:12px;padding:1.25rem 1.5rem;max-width:420px;width:100%;text-align:left;box-shadow:0 8px 32px #0003}.console-modal-panel .field select,.console-modal-panel .field input{width:100%;padding:.45rem .65rem;border:1px solid #cbd5e0;border-radius:8px;font:inherit}.console-kpi-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem;margin-bottom:1rem}@media(max-width:640px){.console-kpi-row{grid-template-columns:1fr}}.console-kpi{background:#f7fafc;border-radius:10px;padding:.85rem 1rem}.console-kpi-label{font-size:.75rem;color:#718096;margin:0 0 .25rem}.console-kpi-value{font-size:1.35rem;font-weight:700;margin:0}.console-filter-row{display:flex;gap:.75rem;flex-wrap:wrap;margin-bottom:.75rem}.console-filter-row input,.console-filter-row select{min-width:160px;padding:.45rem .65rem;border:1px solid #cbd5e0;border-radius:8px;font:inherit}.console-table-wrap{overflow:auto;max-height:480px}.console-table{width:100%;border-collapse:collapse;font-size:.875rem}.console-table th,.console-table td{padding:.55rem .65rem;border-bottom:1px solid #f1f3f5;text-align:left}.console-joints-table .console-col-photos,.console-joints-table .console-col-installed{text-align:center}.console-table th{position:sticky;top:0;background:#fff;z-index:1}.sortable-th{white-space:nowrap}.sortable-th-btn{display:inline-flex;align-items:center;gap:.35rem;margin:0;padding:0;border:0;background:none;color:inherit;font:inherit;font-weight:700;cursor:pointer;text-align:left}.sortable-th-btn:hover{color:var(--brand-blue, #2b6cb0)}.sortable-th-indicator{display:inline-block;width:0;height:0;border-left:4px solid transparent;border-right:4px solid transparent;border-bottom:5px solid #a0aec0;opacity:.55;flex-shrink:0}.sortable-th.is-asc .sortable-th-indicator{border-bottom-color:var(--brand-blue, #2b6cb0);opacity:1}.sortable-th.is-desc .sortable-th-indicator{border-bottom:0;border-top:5px solid var(--brand-blue, #2b6cb0);opacity:1}.console-table tr.selected td{background:#f7fafc;text-shadow:.4px 0 0 currentColor,-.4px 0 0 currentColor}.console-table tr.selected:hover td{background:#edf2f7}.console-table tr.selected td .console-status,.console-table tr.selected td .console-photo-ratio{text-shadow:none}.console-table tr.console-row-mu td{background:#fefcbf}.console-table tr.console-row-installed td{background:#c6f6d5}.console-table tr.console-row-removed td{background:#fed7d7}.console-status.removed{background:#feb2b2;color:#742a2a}.console-joint-comment-field textarea{width:100%;resize:vertical}.console-torque-custom-row{flex-wrap:wrap;gap:.5rem}.console-torque-tick-auto{margin:0;white-space:nowrap}.console-table tr.clickable{cursor:pointer}.console-table tbody tr:hover td,.console-table tr.clickable:hover{background:#f7fafc}.console-table.console-busbars-table tbody tr.clickable,.console-table.console-joints-table tbody tr.clickable{cursor:default}.console-table.console-joints-table tbody tr.clickable{-webkit-user-select:none;user-select:none}.console-table.console-joints-table .console-joint-open-link{display:inline;margin:0;padding:0;border:0;background:transparent;color:inherit;font:inherit;font-weight:inherit;cursor:pointer;text-decoration:none;text-underline-offset:2px;text-shadow:inherit}.console-table.console-joints-table .console-joint-open-link:hover,.console-table.console-joints-table .console-joint-open-link:focus{background:transparent;color:inherit;outline:none;text-decoration:underline}.console-status{display:inline-block;padding:.15rem .5rem;border-radius:999px;font-size:.75rem;font-weight:600}.console-status.complete{background:#c6f6d5;color:#22543d}.console-status.in_progress{background:#bee3f8;color:#2a4365}.console-status.installed{background:#c3dafe;color:#2a4365}.console-status.pending_photo,.console-status.pending{background:#edf2f7;color:#4a5568}.console-installed-toggle{display:inline-flex;align-items:center;gap:.4rem;font-size:.875rem}.console-photo-ratio.met{color:#22543d;font-weight:600}.console-photo-ratio.unmet{color:#c53030;font-weight:600}.console-verification-cell{font-size:.8125rem}.console-verification-cell.partial{color:#718096}.console-empty{color:#718096;padding:2rem 1rem;text-align:center}.console-banner{background:#fff5f5;border:1px solid #feb2b2;color:#742a2a;border-radius:10px;padding:1rem 1.25rem;margin-bottom:1rem}.console-sidebar-footer .app-footer{padding:.5rem 0 0;font-size:.75rem;color:#718096}.console-export-buttons{margin-top:1.25rem}.console-sidebar-footer .app-footer-link{color:var(--brand-blue)}.console-mobile-top{display:none}.app-gradient-top{display:block;position:sticky;top:0;z-index:50;background:var(--console-page-bg, #fcfcfc);color:#1a202c;border-bottom:1px solid var(--console-soft-stroke, #e8e8e8)}.app-gradient-top .console-mobile-bar,.console-mobile-top .console-mobile-bar{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.75rem 1rem;background:transparent;border-bottom:none}.app-gradient-top .console-mobile-brand .brand-logo,.console-mobile-top .console-mobile-brand .brand-logo{height:1.5rem;width:auto}.app-gradient-top .console-hamburger span,.console-mobile-top .console-hamburger span{background:var(--brand-navy)}.console-mobile-bar-actions{display:flex;align-items:center;gap:.35rem;flex-shrink:0}.console-mobile-refresh{border:1px solid var(--console-soft-stroke, #e8e8e8);background:#fff;color:var(--brand-navy);border-radius:8px;padding:.4rem;width:2.15rem;height:2.15rem;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0}.console-mobile-refresh-icon{display:block}.console-mobile-refresh:hover{background:#f7fafc;border-color:#cbd5e0}.app-gradient-top .console-mobile-menu,.console-mobile-top .console-mobile-menu{display:block;position:relative;left:auto;right:auto;top:auto;max-height:0;overflow:hidden;background:transparent;color:inherit;box-shadow:none;transition:max-height .25s ease;pointer-events:none}.app-gradient-top .console-mobile-menu.open,.console-mobile-top .console-mobile-menu.open{max-height:min(70vh,420px);overflow-y:auto;pointer-events:auto}.app-gradient-top .console-mobile-menu-inner,.console-mobile-top .console-mobile-menu-inner{display:flex;flex-direction:column;gap:1.25rem;padding:0 1rem 1.25rem}.app-gradient-top.open .console-mobile-bar,.console-mobile-top.open .console-mobile-bar{border-bottom:none}.console-mobile-top~.console-mobile-backdrop{display:block;position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;border:none;padding:0;background:#00000059;cursor:pointer}.app-gradient-top .console-mobile-nav,.console-mobile-top .console-mobile-nav{display:flex;flex-direction:column;gap:.35rem}.app-gradient-top .console-mobile-nav-link,.console-mobile-top .console-mobile-nav-link{display:block;width:100%;padding:.75rem 1rem;border:1px solid var(--console-soft-stroke, #e8e8e8);border-radius:10px;background:#fff;color:var(--brand-navy);text-decoration:none;font:inherit;font-weight:600;text-align:center;cursor:pointer;box-shadow:none}.app-gradient-top .console-mobile-nav-link:hover,.console-mobile-top .console-mobile-nav-link:hover{background:#f7fafc;border-color:#cbd5e0}.app-gradient-top .console-mobile-nav-link.active,.console-mobile-top .console-mobile-nav-link.active{background:#edf2f7;border-color:#cbd5e0}.app-gradient-top .console-mobile-nav-link.disabled,.console-mobile-top .console-mobile-nav-link.disabled{opacity:.45;pointer-events:none}.app-gradient-top .console-mobile-logout,.console-mobile-top .console-mobile-logout{margin-top:.5rem;border:1px solid #feb2b2;background:#fff5f5;color:#c53030;text-align:center;font-weight:600}.app-gradient-top .console-mobile-logout:hover,.console-mobile-top .console-mobile-logout:hover{background:#fed7d7;border-color:#fc8181}.app-gradient-top .console-field label,.console-mobile-top .console-field label{color:#718096}.app-gradient-top .console-field select,.console-mobile-top .console-field select{background:#fff;color:var(--brand-navy);border-color:#e2e8f0}.app-gradient-top .app-menu-project label{display:none}.console-hamburger{display:flex;flex-direction:column;justify-content:center;gap:5px;width:2.75rem;height:2.75rem;padding:.5rem;border:none;border-radius:8px;background:transparent;cursor:pointer}.console-hamburger span{display:block;height:2px;width:100%;background:var(--brand-navy);border-radius:1px}.console-mobile-backdrop,.console-mobile-menu,.console-mobile-footer{display:none}@media(max-width:960px){.console-shell{flex-direction:column;display:flex}.console-shell-brand,.console-sidebar-body,.console-desktop-header{display:none}.console-mobile-tabs{display:flex;gap:.35rem;flex-wrap:wrap;padding:.75rem 1rem 0;background:var(--console-page-bg, #fcfcfc)}.console-mobile-tabs .console-tab{flex:1 1 auto;min-width:0;text-align:center;padding:.5rem .65rem;font-size:.8125rem}.console-mobile-top{display:block;position:sticky;top:0;z-index:50;background:var(--console-page-bg, #fcfcfc);color:#1a202c;border-bottom:1px solid var(--console-soft-stroke, #e8e8e8)}.console-mobile-bar{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.75rem 1rem;background:transparent;border-bottom:none}.console-mobile-brand .brand-logo{height:1.5rem;width:auto}.console-hamburger span{background:var(--brand-navy)}.console-mobile-menu{display:block;position:relative;left:auto;right:auto;top:auto;max-height:0;overflow:hidden;background:transparent;color:inherit;box-shadow:none;transition:max-height .25s ease;pointer-events:none}.console-mobile-menu.open{max-height:min(70vh,420px);overflow-y:auto;pointer-events:auto}.console-mobile-menu-inner{display:flex;flex-direction:column;gap:1.25rem;padding:0 1rem 1.25rem}.console-mobile-top.open .console-mobile-bar{border-bottom:none}.console-mobile-backdrop{display:block;position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;border:none;padding:0;background:#00000059;cursor:pointer}.console-mobile-nav{display:flex;flex-direction:column;gap:.35rem}.console-mobile-nav-link{display:block;width:100%;padding:.75rem 1rem;border:1px solid var(--console-soft-stroke, #e8e8e8);border-radius:10px;background:#fff;color:var(--brand-navy);text-decoration:none;font:inherit;font-weight:600;text-align:center;cursor:pointer;box-shadow:none}.console-mobile-nav-link:hover{background:#f7fafc;border-color:#cbd5e0}.console-mobile-nav-link.active{background:#edf2f7;border-color:#cbd5e0}.console-mobile-nav-link.disabled{opacity:.45;pointer-events:none}.console-mobile-logout{margin-top:.5rem;border:1px solid #feb2b2;background:#fff5f5;color:#c53030;text-align:center;font-weight:600}.console-mobile-logout:hover{background:#fed7d7;border-color:#fc8181}.console-shell{height:auto;min-height:100dvh;overflow:visible}.console-main{min-height:auto;height:auto;display:flex;flex-direction:column}.console-content{padding:1rem 1rem 1.5rem;flex:1;min-width:0;overflow-x:hidden}.console-page-fill,.console-panel-fill{overflow:visible;min-height:0}.console-panel-fill .console-table-wrap{max-height:min(70vh,560px)}.console-settings-section{padding:1rem .85rem}.console-date-input-wrap input[type=date]{font-size:.9375rem;padding-right:2.25rem}.console-mobile-footer{display:block;margin-top:auto}.console-mobile-footer .app-footer{padding:1rem 1rem 1.5rem}.console-detail-modal{padding:.5rem;align-items:stretch}.console-detail-modal-panel{width:100%;max-height:96vh;border-radius:10px}.console-split{grid-template-columns:1fr}.console-split-detail{border-left:none;border-top:1px solid #e2e8f0;padding-left:0;padding-top:1rem}}@media(min-width:960px){.app-gradient-top.app-field-header{display:grid;grid-template-columns:minmax(0,480px) 1fr auto;grid-template-rows:auto auto;gap:.6rem 1.5rem;align-items:center;padding:.85rem 2rem;width:100vw;max-width:100vw;margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw);overflow:visible;--app-user-dropdown-width: 16.5rem}.app-gradient-top .console-hamburger,.app-gradient-top .console-mobile-refresh{display:none}.app-gradient-top .console-mobile-menu{display:contents;max-height:none!important;overflow:visible;pointer-events:auto}.app-gradient-top .console-mobile-menu-inner,.app-gradient-top .app-menu-root,.app-gradient-top .app-menu-toolbar{display:contents}.app-gradient-top .console-mobile-bar{grid-column:1;grid-row:1;width:auto;max-width:none;margin:0;padding:0}.app-gradient-top .app-menu-user-panel{grid-column:3;grid-row:1;position:relative;display:flex;flex-direction:column;align-items:stretch;gap:0;width:var(--app-user-dropdown-width);flex-shrink:0;margin-bottom:0}.app-gradient-top .app-menu-user-panel .app-menu-user{justify-content:flex-end;text-align:right;cursor:default;box-sizing:border-box;width:100%;padding:.55rem .85rem .65rem;border-radius:10px;color:var(--brand-navy);transition:background .15s ease,color .15s ease}.app-gradient-top .app-menu-user-name,.app-gradient-top .app-menu-user-role{color:var(--brand-navy)}.app-gradient-top .app-menu-user-panel .app-menu-user-body{text-align:right}.app-gradient-top .app-menu-user-panel:hover .app-menu-user,.app-gradient-top .app-menu-user-panel:focus-within .app-menu-user{background:var(--brand-white);border-radius:10px 10px 0 0}.app-gradient-top .app-menu-user-panel:hover .app-menu-user-name,.app-gradient-top .app-menu-user-panel:hover .app-menu-user-role,.app-gradient-top .app-menu-user-panel:focus-within .app-menu-user-name,.app-gradient-top .app-menu-user-panel:focus-within .app-menu-user-role{color:var(--brand-navy);opacity:1}.app-gradient-top .app-menu-user-panel:hover .app-menu-user-badge,.app-gradient-top .app-menu-user-panel:focus-within .app-menu-user-badge{background:var(--brand-accent-soft);border-color:#02abff59;color:var(--brand-navy)}.app-gradient-top .app-menu-user-panel .app-menu-user-company{display:none}.app-gradient-top .app-menu-user-popover{display:none;position:absolute;top:100%;right:0;left:0;z-index:60;box-sizing:border-box;width:100%;margin:0;padding:.65rem .85rem .75rem;border-top:1px solid #e2e8f0;border-radius:0 0 10px 10px;background:var(--brand-white);color:var(--brand-navy);box-shadow:0 8px 24px #01103f26}.app-gradient-top .app-menu-user-panel:hover .app-menu-user-popover,.app-gradient-top .app-menu-user-panel:focus-within .app-menu-user-popover{display:block}.app-gradient-top .app-menu-logout-btn{display:block;width:100%;margin-top:.15rem;padding:.55rem .75rem;border:1px solid #e2e8f0;border-radius:8px;background:#f7fafc;color:var(--brand-navy);font:inherit;font-size:.8125rem;font-weight:600;cursor:pointer;text-decoration:none;text-align:center}.app-gradient-top .app-menu-logout-btn:hover{background:#edf2f7;color:var(--brand-navy)}.app-gradient-top .app-menu-logout-mobile,.app-gradient-top .app-menu-nav-home--mobile-only{display:none}.app-gradient-top .app-menu-project{grid-column:1;grid-row:2;display:flex;flex-direction:row;align-items:center;gap:.75rem;flex:none;width:100%;max-width:480px;min-width:0;margin:0}.app-gradient-top .app-menu-project label{display:block;margin:0;flex-shrink:0;white-space:nowrap}.app-gradient-top .app-menu-project select{flex:1 1 auto;width:auto;min-width:0;background:#fff;color:var(--brand-navy);border:1px solid #e2e8f0}.app-gradient-top .app-menu-project select option{color:var(--brand-navy);background:#fff}.app-gradient-top .app-menu-nav{grid-column:2 / 4;grid-row:2;flex-direction:row;flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:1.25rem;margin:0}.app-gradient-top .app-menu-nav .console-mobile-nav-link{width:auto;flex:0 0 auto;padding:.2rem 0;border:none;border-radius:0;background:none;box-shadow:none;font-size:.9375rem;font-weight:600;text-align:center}.app-gradient-top .app-menu-nav .console-mobile-nav-link:hover{background:none;border-color:transparent;text-decoration:underline;text-underline-offset:.15em;opacity:1}.app-gradient-top~.console-mobile-backdrop{display:none!important}}.joint-page-shell,.joint-page-main{background:var(--console-page-bg, #fcfcfc)}.joint-page{color:#1a202c}.joint-page-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(360px,480px);gap:1.25rem;align-items:start}.joint-page-photos{min-width:0}.joint-page-photos-header{margin-bottom:.75rem}.joint-page-photos-header:empty{display:none;margin:0}.joint-page-photos .gallery-card,.joint-page-photos .gallery-embedded{background:transparent;border:none;box-shadow:none;padding:0;margin:0}.joint-page-photos .gallery-card>h3,.joint-page-photos .gallery-embedded>h3{display:none}.joint-page-photos .photo-gallery{display:flex;flex-wrap:wrap;gap:.5rem;grid-template-columns:unset}.joint-page-photos .gallery-item{flex:0 0 calc(25% - .4rem);max-width:10rem;margin:0;min-width:5.5rem}.joint-page-photos .gallery-thumb,.joint-page-photos .gallery-thumb-loading,.joint-page-photos .gallery-thumb-error,.joint-page-photos .gallery-thumb-skeleton{width:100%;aspect-ratio:1;object-fit:cover}.joint-page-sidebar{display:flex;flex-direction:column;gap:.85rem}.joint-page-card{background:#fff;border:1px solid var(--console-soft-stroke, #e8e8e8);border-radius:10px;padding:1rem}.joint-page-actions-card--public{display:flex;justify-content:center;align-items:center;min-height:10rem}.joint-page-actions-row{display:flex;align-items:flex-start;gap:.75rem}.joint-page-actions-row--public{justify-content:center}.joint-page-qr{margin:0;flex-shrink:0}.joint-page-qr--centered{text-align:center}.joint-page-qr--centered .joint-page-qr-img{margin-left:auto;margin-right:auto}.joint-page-qr-img{display:block;width:96px;height:96px;border-radius:8px;background:#fff}.joint-page-qr-url{margin:.25rem 0 0;font-size:.6875rem;word-break:break-all;max-width:96px}.joint-page-actions{display:flex;flex-direction:column;gap:.35rem;flex:1;min-width:0;max-height:96px;justify-content:flex-start}.joint-page-actions .btn{width:100%;padding:.25rem .5rem;font-size:.75rem;font-weight:600;border-radius:6px;line-height:1.2}.joint-page-meta-grid{display:grid;grid-template-columns:minmax(0,33%) minmax(0,1fr);gap:.85rem 1rem;margin-bottom:1rem;align-items:start}.joint-page-meta-col{display:flex;flex-direction:column;gap:.85rem;min-width:0}.joint-page-meta-label{display:block;font-size:.6875rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#a0aec0;margin-bottom:.2rem}.joint-page-meta-value{font-size:.9375rem;font-weight:600;color:#1a202c;word-break:break-word}.joint-page-company{display:flex;align-items:center;gap:.65rem;padding-top:.85rem;border-top:1px solid var(--console-soft-stroke, #e8e8e8)}.joint-page-company-logo{flex-shrink:0;width:2.75rem;height:2.75rem;object-fit:contain;background:#fff;border:1px solid var(--console-soft-stroke, #e8e8e8);border-radius:6px;padding:.15rem}.joint-page-company-logo--empty{background:#f7fafc}.joint-page-company-name{font-size:.9375rem;font-weight:600;color:#1a202c}.joint-page-edit{margin-top:1.25rem;background:#fff;border:1px solid var(--console-soft-stroke, #e8e8e8);border-radius:10px;padding:1rem}.joint-page-signin{margin-top:1rem}@media(max-width:900px){.joint-page-grid{grid-template-columns:1fr}.joint-page-photos .gallery-item{flex:0 0 calc(33.333% - .35rem)}}
