
/* Identical brand band on every Tech Hub page. */
:root{--brand-height:156px;--brand-gutter:max(25px,calc((100% - 1150px)/2));--brand-logo-width:300px}
body>header:not(.db-header),.registration-header,.hub-module-nav,body:has(#app) .hub-module-nav,body:has(#show-app) .hub-module-nav,body:has(.db-main) .hub-module-nav{box-sizing:border-box;width:100%;height:var(--brand-height);min-height:var(--brand-height);margin:0;padding:24px var(--brand-gutter);background:#171715;border:0;border-bottom:4px solid #f97908;display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:24px;flex-wrap:nowrap}
.registration-header .header-inner{display:contents}
body>header>img,.registration-header .registration-logo,.hub-module-nav .module-logo{display:block;order:0;flex:0 0 auto;width:var(--brand-logo-width);max-width:none;height:auto;max-height:none;margin:0;object-fit:contain}
.hub-module-nav a{order:1;margin-left:auto;font-size:13px}.hub-module-nav>span{order:2;font-size:13px}.hub-module-nav .module-logo{order:0}
#account-menu{margin-left:auto;width:auto;justify-content:flex-end;align-items:flex-end;gap:12px;flex-wrap:nowrap}
body:has(.hub-module-nav){padding-top:var(--brand-height)}.sidebar{top:var(--brand-height);height:calc(100vh - var(--brand-height))}
body>.db-header{background:#eeece4;border-bottom:1px solid #d9d7ce;padding-top:12px;padding-bottom:12px}.db-header .db-brand{color:#393931}.db-header .db-brand span{color:#a84200}
@media(max-width:950px){:root{--brand-height:232px}body>header:not(.db-header),.registration-header,.hub-module-nav,body:has(#app) .hub-module-nav,body:has(#show-app) .hub-module-nav,body:has(.db-main) .hub-module-nav{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-rows:103px 1fr;gap:14px;padding-top:20px;padding-bottom:16px;align-items:end}body>header>img,.registration-header .registration-logo,.hub-module-nav .module-logo{grid-column:1/-1;grid-row:1;align-self:center;justify-self:start}#account-menu{grid-column:1/-1;grid-row:2;width:auto;max-width:100%;justify-self:end}.hub-module-nav a{grid-column:1;grid-row:2;margin:0}.hub-module-nav>span{grid-column:2;grid-row:2}.registration-header .registration-logo{align-self:center}}
@media(max-width:600px){:root{--brand-height:286px;--brand-logo-width:260px;--brand-gutter:18px}#account-menu{width:100%;flex-wrap:wrap;gap:10px}#account-menu .workspace-switcher{flex:1 0 100%;max-width:none}#account-menu #open-profile{flex:1}body>header:not(.db-header),.registration-header,.hub-module-nav,body:has(#app) .hub-module-nav,body:has(#show-app) .hub-module-nav,body:has(.db-main) .hub-module-nav{grid-template-rows:90px 1fr}.hub-module-nav a,.hub-module-nav>span{font-size:11px}}
@media(max-width:750px){.sidebar{top:auto;height:auto}}
@media print{.hub-module-nav{display:none}body:has(.hub-module-nav){padding-top:0}}

/* Clickable logo: preserve the shared band geometry. */
.brand-home{display:block;flex:0 0 auto;width:var(--brand-logo-width);height:auto;line-height:0;text-decoration:none;margin:0;order:0}.brand-home img{display:block;width:100%;height:auto;max-width:none;max-height:none;object-fit:contain}.hub-module-nav .brand-home{order:0;margin:0;justify-self:start}.brand-home:focus-visible{outline:3px solid #ff963e;outline-offset:6px}
@media(max-width:950px){.brand-home,.hub-module-nav .brand-home{grid-column:1/-1;grid-row:1;align-self:center;justify-self:start;margin:0}}

/* TechforShow: red module accents, scoped to its pages. */
body:has(#app){--orange:#f04444;--orange-dark:#b52222}
body:has(#app) .hub-module-nav{border-bottom-color:#f04444}
body:has(#app) a,body:has(#app) .eyebrow,body:has(#app) .tab.active,body:has(#app) .dirty-indicator{color:#b52222}
body:has(#app) button,body:has(#app) .button,body:has(#app) .button.primary{background:#f04444;color:#171715}
body:has(#app) button:hover,body:has(#app) .button.primary:hover{background:#ff6262;color:#171715}
body:has(#app) button.secondary,body:has(#app) .button.secondary{background:#fffefb;color:#343229}
body:has(#app) button.text,body:has(#app) .button.text{background:transparent;color:#865050}
body:has(#app) .nav-item,body:has(#app) .project-link{background:transparent;color:#ddd6c8}
body:has(#app) .nav-item.active{background:#302d26;color:#ff7777;box-shadow:inset 3px 0 #f04444}
body:has(#app) .nav-item.active svg,body:has(#app) .hub-module-nav a{color:#ff7777}
body:has(#app) .nav-item:hover,body:has(#app) .project-link:hover{background:#302d26;color:#fffefb}
body:has(#app) .demo-dot,body:has(#app) .project-link.selected i{background:#f04444}
body:has(#app) .tab.active{border-color:#f04444}
body:has(#app) .stat.accent{background:#fff0f0;color:#8b2424;border-color:#edbcbc}
body:has(#app) .stat.accent>strong{color:#8b2424}
body:has(#app) .assigned-person,body:has(#app) .cost-table tfoot td{background:#f9e8e8;color:#713737}
body:has(#app) :is(button,a,summary):focus-visible,body:has(#app) :is(input,select,textarea):focus{outline-color:#b52222}
body:has(#app) input[type=checkbox]{accent-color:#b52222}

/* TechforShow: logo only in the brand band. */
body:has(#app) .hub-module-nav>a:not(.brand-home),body:has(#app) .hub-module-nav>span{display:none}

/* Shared account controls on module pages. */
.hub-module-nav #account-menu{order:1}
#account-menu .workspace-switcher span{display:block;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:#d3cdbf}
#account-menu .workspace-switcher select{width:100%;padding-left:13px;padding-right:30px;background:#292821;color:#fffefb;border:1px solid var(--orange);border-radius:3px;font-weight:600}
body #account-menu button.secondary{background:#292821;color:#fffefb;border:1px solid #676354;border-radius:3px;font-weight:650}
body #account-menu button.secondary:hover{background:#3b3931}
#profile-dialog{width:min(900px,92vw);max-height:90vh;padding:25px;overflow:auto}
#profile-dialog .row{display:flex;align-items:center;justify-content:space-between;gap:16px}
#profile-dialog .grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
#profile-dialog label{display:block}#profile-dialog input{display:block;width:100%;padding:12px;margin-top:6px}
#profile-dialog p{margin:16px 0}#profile-dialog button{padding:10px 16px}
@media(max-width:600px){#profile-dialog .grid{grid-template-columns:1fr}}

/* Account profile is identical across dashboard and modules. */
body #profile-dialog{box-sizing:border-box;width:min(900px,92vw);max-width:900px;max-height:90vh;padding:25px;background:#fffefb;color:#232320;border:1px solid #bcb8aa;border-radius:5px;font-family:'Segoe UI',Arial,sans-serif;font-size:15px;line-height:1.5;box-shadow:0 24px 80px #17171544}
body #profile-dialog::backdrop{background:#171715a6;backdrop-filter:blur(3px)}
body #profile-dialog .row{display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap;margin:0;padding:0}
body #profile-dialog h2{font-size:22px;font-weight:700;line-height:1.3;margin:0;color:#232320;letter-spacing:normal}
body #profile-dialog p{font-size:15px;line-height:1.6;margin:16px 0;color:#68675e}
body #profile-dialog form{margin:0;padding:0}
body #profile-dialog .grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:0;padding:0;background:transparent;border:0}
body #profile-dialog label{display:block;margin:15px 0;color:#393931;font-size:14px;font-weight:400;line-height:1.5}
body #profile-dialog input{box-sizing:border-box;display:block;width:100%;height:auto;min-height:46px;padding:12px;margin:8px 0 0;background:#fffefb;color:#232320;border:1px solid #bcbab0;border-radius:3px;font:400 16px/1.5 'Segoe UI',Arial,sans-serif;box-shadow:none}
body #profile-dialog button{display:inline-block;padding:12px 18px;margin:6px 6px 6px 0;background:#f97908;color:#171715;border:0;border-radius:3px;font:650 15px/1.5 'Segoe UI',Arial,sans-serif;cursor:pointer}
body #profile-dialog button:hover{background:#ff8b24;color:#171715}
body #profile-dialog button.secondary{background:#fffefb;border:1px solid #aaa597;color:#343229}
body #profile-dialog button.secondary:hover{background:#eeeae0}
body #profile-dialog button:focus-visible,body #profile-dialog input:focus{outline:2px solid #b74700;outline-offset:2px}
body #profile-dialog #profile-error{color:#a33128}
@media(max-width:600px){body #profile-dialog .grid{grid-template-columns:1fr}}

/* Event cards are content surfaces, not solid action buttons. */
body:has(#app) button.event-card{background:#fffefb;color:#232320;border:1px solid #d9d7ce;border-top:4px solid #f04444;box-shadow:0 4px 0 #e8e5dc}
body:has(#app) button.event-card:hover{background:#fff9f8;color:#232320;border-color:#db3737;box-shadow:0 5px 16px #17171512}
body:has(#app) .event-card .event-date{background:#f9eeee;border:1px solid #e7bbbb;color:#872626;font-weight:650}
body:has(#app) .event-card .client,body:has(#app) .event-card .location,body:has(#app) .event-card .crew-count,body:has(#app) .event-card .crew-count>span{color:#52524b}
body:has(#app) .event-card h3,body:has(#app) .event-card .crew-count b,body:has(#app) .event-card .card-bottom>strong{color:#232320}
body:has(#app) .event-card .card-top svg{color:#b52222}
body:has(#app) .event-card .card-line,body:has(#app) .event-card .progress-track{background:#e3e0d8}
body:has(#app) .event-card .progress-track span{background:#d82f2f}

/* Event detail navigation and hierarchy. */
body:has(#app) button.back-link{display:inline-flex;align-items:center;min-height:40px;padding:9px 14px;margin:0 0 24px;background:#fffefb;color:#494940;border:1px solid #c8c5bb;border-radius:4px;font-size:14px;font-weight:600;line-height:20px}
body:has(#app) button.back-link:hover{background:#f9eeee;color:#922727;border-color:#d99c9c}
body:has(#app) .tabs{gap:6px;padding:0 0 8px;margin-bottom:22px;border-bottom:1px solid #d9d7ce;overflow-x:auto}
body:has(#app) button.tab{min-height:46px;padding:11px 18px;margin:0;border:1px solid transparent;border-radius:4px;background:transparent;color:#515149;font-size:14px;line-height:20px;white-space:nowrap}
body:has(#app) button.tab:hover{background:#eeece4;color:#232320}
body:has(#app) button.tab.active{background:#fff0f0;border-color:#e8b6b6;color:#942626;box-shadow:inset 0 -3px #d82f2f}
body:has(#app) button.tab span{background:#e8e6de;color:#505048;border-radius:3px;padding:2px 6px;line-height:18px}
body:has(#app) button.tab.active span{background:#f3d5d5;color:#842020}
body:has(#app) .event-heading{gap:20px;align-items:center}
body:has(#app) .event-heading h1{margin-bottom:10px}
body:has(#app) .event-heading p{line-height:1.65;color:#53534c}

body:has(#app) .cost-table tfoot th{background:#f9e8e8;color:#713737;text-align:left;font-size:14px}body:has(#app) .cost-table tfoot small{display:block;font-size:11px;font-weight:500;margin-bottom:5px;color:#713737;white-space:normal}

/* Clean event reports: only event information and the selected report. */
@media print{
 @page{size:A4 landscape;margin:12mm}
 body:has(#app){background:white!important;color:#111!important;padding:0!important;font-size:10pt}
 body:has(#app) .hub-module-nav,body:has(#app) .sidebar,body:has(#app) .topbar,body:has(#app) button,body:has(#app) .tabs,body:has(#app) .stats,body:has(#app) .notice,body:has(#app) .panel-footnote,body:has(#app) #toast,body:has(#app) dialog,body:has(#app) .demo-note{display:none!important}
 body:has(#app) .main-shell{margin:0!important;width:100%!important}
 body:has(#app) main{margin:0!important;padding:0!important;max-width:none!important}
 body:has(#app) .event-heading{display:block;margin:0 0 7mm;padding:0 0 4mm;border-bottom:2px solid #b52222;break-inside:avoid}
 body:has(#app) .event-heading h1{font-size:20pt;margin:0 0 2mm;line-height:1.2}
 body:has(#app) .event-heading p{font-size:10pt;line-height:1.5;margin:0;color:#333}
 body:has(#app) .panel{border:0!important;box-shadow:none!important;background:white!important}
 body:has(#app) .panel:after{display:none!important;content:none!important}
 body:has(#app) .section-heading,body:has(#app) .client-report>.section-heading{padding:0 0 4mm!important;background:white!important;border:0!important;min-height:0}
 body:has(#app) .section-heading h2{font-size:14pt;margin:0}
 body:has(#app) .table-scroll{overflow:visible!important}
 body:has(#app) table{width:100%!important;min-width:0!important;border-collapse:collapse;font-size:9pt;table-layout:auto}
 body:has(#app) thead{display:table-header-group}
 body:has(#app) tfoot{display:table-row-group;break-inside:avoid}
 body:has(#app) tr{break-inside:avoid}
 body:has(#app) table th,body:has(#app) table td{padding:3mm 2mm!important;border-bottom:1px solid #ccc;color:#111!important;white-space:normal;vertical-align:top}
 body:has(#app) table th{font-weight:700;background:#eee!important}
 body:has(#app) table .numeric{white-space:nowrap;text-align:right}
 body:has(#app) tfoot th,body:has(#app) tfoot td{border-top:2px solid #444;font-weight:700;background:#f2f2f2!important}
 body:has(#app) tfoot small{font-size:8pt!important;color:#333!important}
 body:has(#app) .print-value{display:inline!important;font:inherit;color:#111}
 body:has(#app) .print-field{display:none!important}
 body:has(#app) .hours-block{margin-bottom:6mm}
}
.print-value{display:none}

.event-print-brand{display:none}
@media print{
 body:has(#app) .event-print-brand{display:block!important;margin:0 0 6mm;text-align:left;break-after:avoid}
 body:has(#app) .event-print-brand img{display:block;width:60mm;height:auto;max-width:100%;print-color-adjust:exact;-webkit-print-color-adjust:exact}
 body:has(#app) table thead th{background:#b52222!important;color:#fff!important;border-color:#b52222!important;print-color-adjust:exact;-webkit-print-color-adjust:exact}
}

/* Center report headings and values consistently on screen and paper. */
body:has(#app) :is(.cost-table,.client-table) :is(th,td){text-align:center!important;vertical-align:middle}
body:has(#app) :is(.cost-table,.client-table) .cell-input{text-align:center}
body:has(#app) :is(.cost-table,.client-table) tfoot :is(th,td,small){text-align:center!important}
@media print{
 body:has(#app) :is(.cost-table,.client-table) :is(th,td){text-align:center!important;vertical-align:middle}
 body:has(#app) :is(.cost-table,.client-table) .print-value{text-align:center}
}

/* Column separators for cost reports. */
body:has(#app) :is(.cost-table,.client-table){border-collapse:collapse}
body:has(#app) :is(.cost-table,.client-table) tr>:is(th,td)+:is(th,td){border-left:1px solid #c8c4bb}
@media print{
 body:has(#app) :is(.cost-table,.client-table) tr>:is(th,td)+:is(th,td){border-left:1px solid #aaa!important}
 body:has(#app) :is(.cost-table,.client-table) thead tr>th+th{border-left-color:#e6abab!important}
}

/* Matching screen and print styling for financial tables. */
body:has(#app) :is(.cost-table,.client-table){width:100%;border:1px solid #d1cbc5}
body:has(#app) :is(.cost-table,.client-table) thead th{background:#b52222;color:#fff;font-weight:650;padding:15px 12px;border-bottom:1px solid #971b1b}
body:has(#app) :is(.cost-table,.client-table) thead tr>th+th{border-left-color:#d87e7e}
body:has(#app) :is(.cost-table,.client-table) tbody td{padding:14px 12px;background:#fffefb;border-bottom:1px solid #d9d7ce}
body:has(#app) :is(.cost-table,.client-table) tbody tr:hover td{background:#fff5f3}
body:has(#app) :is(.cost-table,.client-table) .cell-input{display:block;margin:0 auto;max-width:100%;min-height:38px;background:#fff;color:#232320;border:1px solid #bcb8b0;border-radius:3px}
body:has(#app) :is(.cost-table,.client-table) tfoot :is(th,td){padding:20px 12px;background:#f9e8e8;color:#713737;border-top:2px solid #b52222;font-weight:700}
@media print{
 body:has(#app) :is(.cost-table,.client-table) thead th{background:#b52222!important;color:white!important}
 body:has(#app) :is(.cost-table,.client-table) tbody td{background:white!important}
 body:has(#app) :is(.cost-table,.client-table) tfoot :is(th,td){background:#f9e8e8!important;print-color-adjust:exact;-webkit-print-color-adjust:exact}
}

/* Shared table design across all event sections. */
body:has(#app) #tab-content table{width:100%;border-collapse:collapse;border:1px solid #d1cbc5}
body:has(#app) #tab-content table :is(th,td){text-align:center!important;vertical-align:middle}
body:has(#app) #tab-content table tr>:is(th,td)+:is(th,td){border-left:1px solid #c8c4bb}
body:has(#app) #tab-content table thead th{background:#b52222;color:#fff;padding:15px 12px;font-weight:650;border-bottom:1px solid #971b1b}
body:has(#app) #tab-content table thead tr>th+th{border-left-color:#d87e7e}
body:has(#app) #tab-content table tbody td{padding:14px 12px;background:#fffefb;border-bottom:1px solid #d9d7ce}
body:has(#app) #tab-content table tbody tr:hover td{background:#fff5f3}
body:has(#app) #tab-content table tfoot :is(th,td){padding:20px 12px;background:#f9e8e8;color:#713737;border-top:2px solid #b52222;font-weight:700}
body:has(#app) #tab-content table :is(.person,.toggle){justify-content:center}
body:has(#app) #tab-content table input:not([type=checkbox]){text-align:center;min-height:38px;background:#fff;color:#232320;border:1px solid #bcb8b0;border-radius:3px;max-width:100%}
body:has(#app) #tab-content table .toggle{margin:0}
@media print{
 body:has(#app) #tab-content table thead th{background:#b52222!important;color:#fff!important;print-color-adjust:exact;-webkit-print-color-adjust:exact}
 body:has(#app) #tab-content table tr>:is(th,td)+:is(th,td){border-left:1px solid #aaa!important}
 body:has(#app) #tab-content table thead tr>th+th{border-left-color:#e6abab!important}
 body:has(#app) #tab-content table tbody td{background:#fff!important}
 body:has(#app) #tab-content table tfoot :is(th,td){background:#f9e8e8!important;print-color-adjust:exact;-webkit-print-color-adjust:exact}
}

.crew-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
#crew-print-report{display:none}
@media print{
 body.printing-crew>#app,body.printing-crew>.hub-module-nav{display:none!important}
 body.printing-crew>#crew-print-report{display:block!important;color:#111;background:white}
 #crew-print-report .crew-print-logo{display:block;width:60mm;height:auto;margin:0 0 5mm}
 #crew-print-report h1{font-size:20pt;margin:0 0 2mm}
 #crew-print-report p{font-size:10pt;margin:0 0 5mm}
 #crew-print-report h2{font-size:14pt;margin:0 0 4mm}
 body:has(#app) #crew-print-report table{table-layout:fixed;font-size:8pt}
 body:has(#app) #crew-print-report :is(th,td){text-align:center!important;overflow-wrap:anywhere;border:1px solid #aaa;vertical-align:middle;padding:3mm 1.5mm!important}
 body:has(#app) #crew-print-report thead th{background:#b52222!important;color:white!important;print-color-adjust:exact;-webkit-print-color-adjust:exact}
 #crew-print-report th:first-child{width:8%}
 #crew-print-report th:nth-child(5),#crew-print-report th:nth-child(9){width:16%}
}

.hours-summary{margin-top:28px}.hours-summary .hours-range{white-space:nowrap}.hours-summary table{min-width:700px}.hours-summary tbody th{background:#fffefb;color:#232320;font-size:14px}.hours-summary .hours-pending{color:#87541e}.hours-summary .hours-not-planned{color:#77766d}

/* Consistent event typography, cell geometry and report spacing. */
body:has(#app) #app{font-family:"Segoe UI",Arial,sans-serif;line-height:1.5}
body:has(#app) #tab-content .section-heading{gap:20px;align-items:center;flex-wrap:wrap;padding:24px}
body:has(#app) #tab-content h2{font-size:22px;line-height:1.3}
body:has(#app) #tab-content .table-scroll{max-width:100%;overflow-x:auto}
body:has(#app) #tab-content table{font-size:14px;line-height:1.45;font-variant-numeric:tabular-nums}
body:has(#app) #tab-content table :is(th,td){padding:14px 12px;vertical-align:middle;box-sizing:border-box}
body:has(#app) #tab-content table thead th{font-size:13px;letter-spacing:0;white-space:nowrap}
body:has(#app) #tab-content table .person{min-width:220px;gap:10px}
body:has(#app) #tab-content table .person strong{display:block;line-height:1.4}
body:has(#app) #tab-content table .person small{font-size:12px;line-height:1.4;margin-top:4px}
body:has(#app) #tab-content :is(.cost-table,.client-table){min-width:1200px}
body:has(#app) #tab-content :is(.cost-table,.client-table) td{white-space:nowrap}
body:has(#app) #tab-content .hours-block{margin:0 24px 28px;border:1px solid #d1cbc5;border-radius:4px;overflow:hidden}
body:has(#app) #tab-content .hours-person{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:18px 20px;background:#faf8f4}
body:has(#app) #tab-content .hours-block table{table-layout:fixed;min-width:560px;border:0}
body:has(#app) #tab-content .hours-block table th{width:25%}
body:has(#app) #tab-content input[type=time]{display:block;width:132px;min-height:42px;margin:0 auto;padding:8px 10px;font:inherit}
body:has(#app) #tab-content .hours-summary{margin:32px 24px 24px}
body:has(#app) #tab-content .hours-summary .section-heading{padding:0 0 18px}
body:has(#app) #tab-content .hours-summary table{table-layout:fixed;width:max-content;min-width:100%}
body:has(#app) #tab-content .hours-summary :is(th,td){min-width:76px;white-space:nowrap;padding:12px 10px}
body:has(#app) #tab-content .hours-summary th[scope=row],body:has(#app) #tab-content .hours-summary th[rowspan]{min-width:210px;border-bottom:1px solid #d9d7ce}
body:has(#app) #tab-content .hours-summary th[scope=colgroup]{border-bottom:1px solid #d87e7e}
body:has(#app) #tab-content .hours-summary .hours-pending{font-size:12px}
@media print{
 body:has(#app) #tab-content .hours-block{margin:0 0 6mm;break-inside:avoid}
 body:has(#app) #tab-content .hours-summary{margin:6mm 0 0}
 body:has(#app) #tab-content .hours-summary :is(th,td){min-width:0;padding:2mm 1mm!important;font-size:7pt;white-space:normal}
 body:has(#app) #tab-content table :is(th,td){text-align:center!important;vertical-align:middle!important}
}

/* Team hours summary uses the same framed card as each technician. */
body:has(#app) #tab-content .hours-summary{border:1px solid #d1cbc5;border-radius:4px;overflow:hidden;background:#fffefb}
body:has(#app) #tab-content .hours-summary .section-heading{margin:0;padding:18px 20px;background:#faf8f4;min-height:80px;display:flex;align-items:center}
body:has(#app) #tab-content .hours-summary table{border:0}

/* Identical surname/name badges in technician views. */
.person .avatar{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;flex:0 0 36px;border-radius:8px;background:#edf0f4;color:#536377;font-size:12px;font-weight:700;line-height:1}
.db-main .person{display:flex;align-items:center;gap:10px}.db-main .person strong{display:block}
body:has(#app) #tab-content .hours-summary th[scope=row]{min-width:280px}
@media print{.person .avatar{display:none}}

#detail-title.person{display:flex;align-items:center;gap:10px}

/* Anagrafica adopts its blue module identity. */
body:has(.db-main){--orange:#f04444;--orange-dark:#a32222}
body:has(.db-main) .hub-module-nav{border-bottom-color:#f04444}
body:has(.db-main) :is(.db-main,.db-detail) .button.primary{background:#a32222;color:white;border-color:#a32222}
body:has(.db-main) :is(.db-main,.db-detail) .button.primary:hover{background:#851b1b;color:white}
body:has(.db-main) :is(.db-main,.db-detail) a:not(.button),body:has(.db-main) .eyebrow{color:#a32222}
body:has(.db-main) :is(.db-main,.db-detail) input:focus,body:has(.db-main) :is(.db-main,.db-detail) select:focus,body:has(.db-main) :is(.db-main,.db-detail) textarea:focus{outline-color:#f04444}
body:has(.db-main) #anagrafica-tabs .active{background:#fff0f0;color:#a32222;border-color:#f04444}
body:has(.db-main) .avatar{background:#fff0f0;color:#a32222}
body:has(.db-main) .db-detail button.danger{background:#fff3f3;color:#a32222;border:1px solid #d98e8e;margin-left:12px}
body:has(.db-main) .db-detail button.danger:hover{background:#fbe0e0}
body:has(.db-main) :is(.db-main,#details) button:not(.secondary):not(.danger):not(.close){background:#a32222;color:#fff}
body:has(.db-main) .db-main .tab{color:#a32222}
body:has(.db-main) .db-main .tab.active{background:#fff0f0;color:#a32222;border-color:#f04444}
body:has(.db-main) :is(button,a,summary):focus-visible{outline-color:#f04444}
body:has(.db-main) #details .notice{border-color:#f04444;background:#fff0f0;color:#a32222}

/* ProdHub: production module identity. */
body.prodhub-page>header{border-bottom-color:#b579e0}body.prodhub-page #hub .button:not(.secondary){background:#7136a0;color:white}body.prodhub-page #hub a:not(.button){color:#612d8c}.prod-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin-top:28px}.prod-grid .card{margin:0;display:flex;flex-direction:column;align-items:flex-start;border-top:4px solid #b579e0}.prod-grid .card p{flex:1}.prod-symbol{font-size:32px;color:#7136a0;background:#f2e9fa;border-radius:8px;padding:8px 16px;margin-bottom:18px}.prod-stage{font-size:13px;color:#68675e;background:#f2e9fa;border-left:3px solid #b579e0;padding:14px 18px;margin-top:25px}.prodhub-page li{margin:12px 0}@media(max-width:900px){.prod-grid{grid-template-columns:1fr}}body:has(#app) a.nav-item{text-decoration:none}

/* Anagrafica follows TechforShow red, including its existing logo artwork. */
body:has(.db-main) .module-logo,.registration-header .registration-logo{filter:url(#anagrafica-tech-red)}
body:has(.db-main),body:has(#registration){--orange:#f04444;--orange-dark:#a32222}
body:has(#registration) .registration-header{border-bottom-color:#f04444}
body:has(#registration) .section-number,body:has(#registration) .success-mark{background:#f04444;color:white}
body:has(#registration) .submit-button{background:#bd2525;color:white;box-shadow:0 3px 0 #851b1b}
body:has(#registration) .submit-button:hover{background:#a32222}
body:has(#registration) :is(a,.section-description,.form-index a){color:#a32222}
body:has(#registration) :is(input,select,textarea):focus{border-color:#f04444;outline-color:#f04444}
body:has(#registration) :is(button,a,summary):focus-visible{outline-color:#f04444}
body:has(#registration) .privacy-note{border-left-color:#f04444;background:#fff0f0}
body:has(#registration) .upload-symbol{color:#a32222;background:#fff0f0}
body:has(#registration) input[type=checkbox]{accent-color:#a32222}
body:has(.db-main) :is(.db-main,.db-detail,#details) .button.primary{background:#a32222;color:white;border-color:#a32222}

/* Module palette shared by the landing cards and production pages. */
body.prodhub-page{--orange:#7136a0;--orange-dark:#612d8c;--accent:#7136a0}
body.prodhub-page :is(input,select,textarea){accent-color:#7136a0}
body.prodhub-page :is(a,button,input,select,textarea):focus-visible{outline-color:#7136a0}
body.prodhub-page #hub .button:not(.secondary):hover{background:#612d8c}
.dashboard-modules [data-module="production"]{border-top:4px solid #7136a0}
.dashboard-modules [data-module="data"]{border-top:4px solid #155e75}
.dashboard-modules [data-module="production"] .button{background:#7136a0;color:#fff;border-color:#7136a0}
.dashboard-modules [data-module="production"] .button:hover{background:#612d8c}
.dashboard-modules [data-module="data"] .button{background:#155e75;color:#fff;border-color:#155e75}
.dashboard-modules [data-module="data"] .button:hover{background:#10495c}

/* Crew planning: the same red table hierarchy as the event sections. */
#tab-content .planning-section{margin:22px;border:1px solid #d9d7ce;border-radius:5px;overflow:hidden;scroll-margin-top:140px}
#tab-content .planning-section .section-heading{padding:18px 20px;background:#fff7f7;border-bottom:1px solid #e4d7d7;gap:16px}
#tab-content .planning-section h2{font-size:20px}
#tab-content .planning-section th{background:#a32222;color:#fff;text-align:center}
#tab-content .planning-section td{text-align:center;vertical-align:middle;border-right:1px solid #d9d7ce}
#tab-content .planning-section td:last-child{border-right:0}
#tab-content .planning-section .person{text-align:left;min-width:200px}
.planning-section details{font-size:12px;margin-top:8px;min-width:190px}.planning-section summary{cursor:pointer}
.planning-shortcuts{display:flex;gap:10px;flex-wrap:wrap;padding:0 22px 12px}.planning-shortcuts a{padding:8px 12px;border:1px solid #d7bcbc;background:#fff7f7;color:#a32222;border-radius:4px;text-decoration:none;font-weight:600}
.planning-note{padding:16px 20px;margin:0}.planning-message{white-space:pre-wrap;overflow-wrap:anywhere;font:inherit;padding:20px;background:#fff7f7;border:1px solid #e4d7d7;border-radius:5px}
.planning-meal-list fieldset{display:flex;gap:16px;align-items:center;flex-wrap:wrap;border:1px solid #d9d7ce;padding:16px;margin:16px 0}.planning-meal-list legend{font-weight:700}.planning-meal-list input[type=checkbox]{width:auto}
@media(max-width:650px){#tab-content .planning-section{margin:12px}.planning-shortcuts{padding:0 12px}.planning-section .section-heading{align-items:flex-start;flex-direction:column}}
