:root{font-family:Inter,Arial,sans-serif;color:#132b40;background:#f2f5f8;font-size:16px}*{box-sizing:border-box}body{margin:0}aside{background:#102a40;color:white;width:208px;position:fixed;inset:0 auto 0 0;padding:34px 22px}.brand{font-size:30px;font-weight:800;letter-spacing:-1px;margin-bottom:50px}.brand span{display:block;font-size:12px;letter-spacing:2px;color:#8ba6bb;margin-top:8px}.nav{display:block;text-decoration:none;color:#b9cad7;padding:14px;margin:7px 0;font-size:14px;border-radius:6px}.nav.active{background:#264359;color:#fff;border-left:3px solid #45d4b0}.aside-bottom{position:absolute;bottom:32px;font-size:12px;line-height:2;color:#91a7b8;letter-spacing:1px}.aside-bottom strong{color:#fff;font-size:14px;letter-spacing:0}main{margin-left:208px;padding:36px 36px 20px;max-width:1900px}header{display:flex;align-items:center;justify-content:space-between;margin-bottom:28px}.eyebrow{font-size:12px;font-weight:700;letter-spacing:1.6px;color:#557385}h1{font-size:36px;letter-spacing:-1.4px;margin:8px 0}p{color:#637788;line-height:1.6;margin:6px 0}button,.upload{font:inherit;font-size:14px;border:1px solid #cbd7df;background:white;color:#17374e;padding:11px 15px;border-radius:6px;cursor:pointer;white-space:nowrap}button:hover{background:#e7f1f4}button:disabled{opacity:.4;cursor:default}.primary{background:#0b756c;color:white;border-color:#0b756c}.actions{display:flex;gap:9px}.upload input{display:none}.upload:focus-within{outline:3px solid #80bfff}.filters{display:flex;gap:12px;align-items:end;background:white;border:1px solid #dce5ec;padding:18px;border-radius:8px;flex-wrap:wrap}.filters label{font-size:12px;font-weight:700;color:#587083;display:flex;flex-direction:column;gap:8px;flex:1;min-width:130px}.filters .search{flex:1.5;min-width:180px}input,select{width:100%;font:inherit;font-size:14px;padding:10px;border:1px solid #d0dce5;border-radius:5px;background:#fff;color:#183a51;min-width:0}input:focus,select:focus,button:focus-visible{outline:2px solid #079789;outline-offset:2px}.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin:22px 0 28px}.kpi{background:white;border:1px solid #dce5ec;border-radius:8px;padding:20px 22px;border-top:3px solid #173b58}.kpi:nth-child(2){border-top-color:#159c7b}.kpi:nth-child(3){border-top-color:#327fc0}.kpi:nth-child(4){border-top-color:#c69b4c}.kpi label{font-size:14px;color:#5e7587}.kpi strong{display:block;font-size:36px;margin:12px 0 6px;letter-spacing:-1px}.kpi small{font-size:12px;color:#7890a0}.sectionline{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}h2{font-size:20px;margin:0}h3{font-size:16px;margin:0}.sectionline span,.panelhead span{color:#728797;font-size:12px}.activity{display:grid;grid-template-columns:2fr 1fr;gap:18px}.panel{background:white;border:1px solid #dce5ec;border-radius:8px;padding:22px;min-width:0}.panelhead{display:flex;justify-content:space-between;gap:10px;align-items:center;margin-bottom:24px}.months{display:flex;height:206px;gap:12px;align-items:stretch}.month{flex:1;min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:end;font-size:12px;gap:8px}.barspace{height:158px;display:flex;align-items:end;justify-content:center;width:100%}.month i{display:block;width:75%;max-width:40px;background:#0e837c;border-radius:4px 4px 0 0;min-height:0}.month b{font-size:12px;color:#507287}.month span{color:#748694}.completion{display:flex;align-items:center;justify-content:center;gap:25px;min-height:190px}#donut{width:148px;height:148px;border-radius:50%;display:grid;place-items:center;flex-shrink:0}#donut>div{background:white;border-radius:50%;width:117px;height:117px;display:flex;align-items:center;justify-content:center;flex-direction:column}#rate{font-size:28px}#donut span{color:#71889a;font-size:12px}#legend{font-size:14px;line-height:2.3}#legend b{display:block;font-size:20px;line-height:1.3}.rankings{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin:18px 0}.rank{margin:16px 0}.rank-label{display:flex;justify-content:space-between;gap:10px;font-size:14px;margin-bottom:7px}.track{height:5px;background:#eff4f7;border-radius:3px;overflow:hidden}.track i{display:block;height:100%;background:#38708e}.rankings button{border:0;padding:8px 0;color:#0b756c;background:transparent;font-weight:700}.orders{padding-bottom:8px;scroll-margin-top:20px}.tablewrap{overflow:auto}table{border-collapse:collapse;width:100%;font-size:14px;text-align:left}th{font-size:12px;color:#6d8494;background:#f7f9fb;white-space:nowrap;padding:14px 12px;border-bottom:1px solid #dce5ec}td{padding:15px 12px;border-bottom:1px solid #eaf0f4;line-height:1.5;min-width:110px}td:first-child{color:#176d86;font-weight:700;white-space:nowrap}td small{display:block;color:#728a9b;font-size:12px}td:nth-child(4){min-width:210px;max-width:280px}td:nth-child(5){min-width:175px}.badge{font-size:12px;display:inline-block;padding:4px 8px;border-radius:4px;white-space:nowrap;background:#edf0f6;color:#555c7d}.closed{background:#e2f4eb;color:#167951}.assigned{background:#ffe8e8;color:#b63f45}.onsite{background:#e0efff;color:#276ca4}.cancelled{background:#f1ece3;color:#84693f}.pagination{display:flex;justify-content:space-between;align-items:center;font-size:14px;color:#6c8293;padding:16px 0}.pagination button{padding:7px 12px;margin-left:5px}details{margin-top:20px}summary{cursor:pointer;font-size:14px;font-weight:700}details p,details li{font-size:14px}details ul{padding-left:20px;line-height:1.8;overflow-wrap:anywhere}#audit{margin-top:18px}footer{font-size:12px;color:#8095a5;padding:24px 0}#notice:not(:empty){background:#e4f3ef;border:1px solid #a4d6c7;padding:14px;margin-bottom:18px;border-radius:6px;font-size:14px}.empty{padding:30px;text-align:center;color:#6a8092}@media(min-width:1500px){.filters label{min-width:150px}}@media(max-width:1100px){aside{width:160px;padding:30px 16px}main{margin-left:160px;padding:25px 20px}.activity{grid-template-columns:1fr}.completion{min-height:160px}.rankings{grid-template-columns:1fr}.kpis{gap:10px}.kpi{padding:16px}.actions{flex-wrap:wrap}}@media(max-width:700px){aside{position:static;width:auto;padding:16px 20px;display:flex;justify-content:space-between;align-items:center}.brand{margin:0;font-size:22px}.brand span{font-size:10px}.nav{display:none}.aside-bottom{display:none}main{margin-left:0;padding:22px 14px}header{align-items:start;gap:15px;flex-direction:column}h1{font-size:32px}.kpis{grid-template-columns:1fr 1fr}.kpi strong{font-size:30px}.sectionline{align-items:start;gap:10px;flex-direction:column}.panel{padding:18px}.months{gap:5px}.filters label{min-width:120px}.filters .search{flex-basis:100%}.pagination{gap:8px}.completion{gap:30px}}

/* Motion and credit */
main>header,.filters,.kpis,.activity,.rankings,.orders{animation:surface-in .55s cubic-bezier(.22,1,.36,1) both}
.filters{animation-delay:.05s}.kpis{animation-delay:.1s}.activity{animation-delay:.14s}.rankings{animation-delay:.18s}.orders{animation-delay:.22s}
.kpi,.panel,.rank .track i,button{transition:transform .22s ease,box-shadow .22s ease,background-color .22s ease}
.kpi:hover,.panel:hover{transform:translateY(-2px);box-shadow:0 10px 26px #14385114}
footer small{display:block;font-size:11px;color:#7b92a2;margin-top:8px;letter-spacing:.02em}
@keyframes surface-in{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}
@media(prefers-reduced-motion:reduce){main>header,.filters,.kpis,.activity,.rankings,.orders{animation:none}.kpi,.panel,.rank .track i,button{transition:none}}

/* Additional dashboard feedback */
@view-transition{navigation:auto}
::view-transition-old(root){animation:wo-out .16s ease-in both}::view-transition-new(root){animation:wo-in .28s ease-out both}
.filters:focus-within{border-color:#b9d4dc;box-shadow:0 0 0 3px #0b756c12;transition:border-color .22s ease,box-shadow .22s ease}
.kpi{transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease}
.kpi:hover{border-color:#b5d2d5}
.month .barspace i{transform-origin:bottom;animation:wo-grow .56s cubic-bezier(.22,1,.36,1) both}
.rank .track i{transform-origin:left;animation:wo-fill .48s ease-out both}
#donut{transition:background .4s ease;animation:wo-pop .5s ease-out both}
#rows tr{animation:wo-row .28s ease-out both}
#rows tr:nth-child(2){animation-delay:.025s}#rows tr:nth-child(3){animation-delay:.05s}#rows tr:nth-child(4){animation-delay:.075s}#rows tr:nth-child(5){animation-delay:.1s}
#notice:not(:empty){animation:wo-row .3s ease-out both}
@keyframes wo-grow{from{transform:scaleY(0)}to{transform:scaleY(1)}}
@keyframes wo-fill{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@keyframes wo-pop{from{opacity:.55;transform:scale(.96)}to{opacity:1;transform:scale(1)}}
@keyframes wo-row{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}
@keyframes wo-out{to{opacity:.75;transform:translateY(-5px)}}
@keyframes wo-in{from{opacity:.65;transform:translateY(7px)}to{opacity:1;transform:translateY(0)}}
@media(prefers-reduced-motion:reduce){@view-transition{navigation:none}::view-transition-old(root),::view-transition-new(root){animation:none!important}.month .barspace i,.rank .track i,#donut,#rows tr,#notice:not(:empty){animation:none!important}.filters:focus-within,.kpi{transition:none!important}}

/* Light red and white theme with restrained chart motion */
:root{color:#382831;background:#fff9f9}body{background:radial-gradient(circle at 90% 0,#ffe9ed 0,transparent 30%),#fff9f9}
aside{background:#8d3447}.brand span,.nav,.aside-bottom{color:#f3d9de}.nav.active{background:#ad4259;border-color:#ffdce3}.nav:hover{background:#a74054}
h1,.kpi strong,h2,h3{color:#482d36}.eyebrow,td:first-child,.rankings button{color:#b03b51}p,.sectionline span,.panelhead span{color:#775e66}
.primary,.upload.primary{background:#b83f53;border-color:#b83f53;color:#fff}.primary:hover,.upload.primary:hover{background:#a33347}.filters,.kpi,.panel{border-color:#efdae0;box-shadow:0 6px 22px #a3445610}.kpi,.kpi:nth-child(2),.kpi:nth-child(3),.kpi:nth-child(4){border-top-color:#c95165}.kpi:nth-child(even){border-top-color:#e29aaa}
input,select,button,.upload{border-color:#e9cbd3;color:#53333d}.filters label{color:#775961}input:focus,select:focus,button:focus-visible,.upload:focus-within{outline-color:#bc4b5e}.filters:focus-within{border-color:#cf7889;box-shadow:0 0 0 3px #bd475920}.kpi:hover{border-color:#d78898}
.month i,.rank .track i{background:#c34b60}.track{background:#f9e6eb}th{background:#fff1f3;color:#76565f;border-color:#efd9de}td{border-color:#f6e9ec}tbody tr:hover{background:#fff5f7}#notice:not(:empty){background:#fff0f3;border-color:#edc5ce;color:#7f3345}
.kpi:hover,.panel:hover{box-shadow:0 13px 30px #a345591b}.actions button:not(:disabled):hover,.pagination button:not(:disabled):hover{transform:translateY(-2px)}.kpi strong{animation:wo-number .5s ease-out both}@keyframes wo-number{from{opacity:.35;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}
@media(prefers-reduced-motion:reduce){.kpi strong{animation:none!important}.actions button,.pagination button{transition:none!important}}

/* Work Orders shares the light red and white shell used by the other pages. */
aside{background:#fff;color:#713244;border-right:1px solid #efd9de;box-shadow:5px 0 22px #9d3e5209}.brand{color:#a9334b}.brand span{color:#9a6674}.nav{color:#77545e}.nav.active{background:#fff0f3;color:#a83249;border-left-color:#c34b60}.nav:hover{background:#fff4f6}.aside-bottom{color:#986a76}.aside-bottom strong{color:#713244}
.back-nav{margin-bottom:20px}.back-nav a{color:#a9344c;text-decoration:none;font-weight:700;display:inline-flex;align-items:center;padding:8px 0;transition:transform .2s ease,color .2s ease}.back-nav a:hover{color:#8f293e;transform:translateX(-3px)}
main>header{align-items:center;gap:24px}.filters,.panel,.kpi{background:#fff}.kpi strong,.panelhead h2,.panelhead h3{color:#67303f}.month b,.month span,.rank-label,.pagination{color:#765560}.badge:not(.closed):not(.assigned):not(.onsite):not(.cancelled){background:#fff0f3;color:#a33c53}
@media(prefers-reduced-motion:reduce){.back-nav a{transition:none!important}.back-nav a:hover{transform:none}}
/* Consistent warm text and control colors across the dashboard. */
.kpi label,.kpi small,.month b,.month span,#donut span,.rank-label,.sectionline span,.panelhead span,td small,.pagination,details p,details li,footer,footer small,.empty{color:#80636c}
.filters label,.eyebrow{color:#9b5062}th{background:#fff1f3;color:#75525e}td:first-child{color:#ac3d53}button:not(.primary):hover{background:#fff0f3;color:#93364b}.rankings button:hover{background:transparent;color:#8e2c43}.track{background:#f9e6eb}.month i,.rank .track i{background:#c34b60}

/* Purpose of Visit works like the other filters. */
.filters .purpose-filter{min-width:180px;flex:1.2}
