:root{font-family:Inter,-apple-system,BlinkMacSystemFont,'Segoe UI','PingFang SC',sans-serif;color:#292736;background:#e9e9f2;font-size:14px;--purple:#7738db;--green:#20bfa3}*{box-sizing:border-box}body{margin:36px auto;max-width:1480px;min-height:calc(100vh - 72px);background:#f6f6fb;border-radius:20px;overflow-x:hidden;box-shadow:0 18px 65px #37314c0c}header{height:85px;background:white;border-radius:20px 20px 0 0;display:flex;align-items:center;padding:0 38px;gap:65px;border-bottom:1px solid #f0eff6}.brand{font-size:21px;font-weight:750;text-decoration:none;color:#302a3f}.brand:before{content:'✦';color:var(--purple);margin-right:10px}nav{display:flex;gap:12px}nav a{padding:11px 25px;text-decoration:none;color:#858191;border-radius:8px;transition:all .2s}nav a.active{background:#f0e8fc;color:var(--purple);font-weight:600}nav a:hover{background:#eee7f9;color:var(--purple)}main{padding:32px 38px 26px}.pageheading{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:24px}.pageheading h1{font-size:25px;margin:0;letter-spacing:0}.pageheading input{width:auto}.summary{display:grid;grid-template-columns:repeat(4,1fr);gap:22px;margin:24px 0}.metric{background:#fff;padding:26px;border:1px solid #f1f0f7;border-radius:11px;position:relative;padding-left:77px}.metric:before{content:'◈';position:absolute;left:22px;top:31px;border-radius:50%;width:40px;height:40px;display:grid;place-items:center;background:#f1e9fc;color:var(--purple);font-size:20px}.metric:nth-child(2):before{background:#e7f9f6;color:#20bfa3;content:'✓'}.metric:nth-child(3):before{background:#fff0e9;color:#f09a6c;content:'☾'}.metric:nth-child(4):before{background:#fdebf3;color:#df79a3;content:'↻'}.metric strong{display:block;font-size:25px;line-height:1.5;margin-top:8px}.muted{color:#8a8699;font-size:12px}.metric,.panel,.award{transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease}.metric:hover,.award:hover{transform:translateY(-5px);box-shadow:0 12px 28px #6d43ae13}.panel:hover{box-shadow:0 8px 28px #48345f08;border-color:#e3d7f4}.starttime{background:var(--purple);color:#fff;border-radius:12px;padding:24px 28px;display:flex;align-items:center;gap:26px;box-shadow:0 8px 20px #783bdb1c}.starttime strong{font-size:38px;font-weight:650}.starttime small{opacity:.8;margin-left:auto}.layout{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:24px}.panel{background:#fff;border:1px solid #f0eff6;border-radius:12px;padding:24px;min-width:0}.panel h2{font-size:16px;margin:0;font-weight:650}.bar{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:22px;flex-wrap:wrap}.bar h2{margin:0}.bar select{width:auto;max-width:100%}.person{display:flex;align-items:center;gap:16px;padding:22px 12px;border-top:1px solid #f0eef6;border-radius:9px;margin:5px 0;transition:background .2s,transform .2s}.person:hover{background:#faf8ff;transform:translateX(3px)}.person.unreported{background:#fff6e7;border:1px solid #f2cd82;border-left:4px solid #eea52f}.person.unreported small{color:#935c0b;font-weight:600}.person.unreported .avatar{background:#ffebc3;color:#9d660c}.avatar{width:43px;height:43px;flex-shrink:0;display:grid;place-items:center;border-radius:50%;background:#f1eafa;color:#8c59d4;font-size:18px;font-weight:650}.personinfo{flex:1;min-width:0}.personinfo b{font-size:15px;overflow-wrap:anywhere}.personinfo small{display:block;color:#9892a3;font-size:12px;margin:7px 0}.time{font-size:23px;color:#4a435a;font-weight:650;white-space:nowrap}.time .muted{font-weight:400;margin-top:5px}.pill{font-size:11px;padding:4px 9px;border-radius:20px;background:#f0e9fb;color:#8c66bd;font-weight:400;margin-left:7px}button{font:inherit;cursor:pointer;border:0;background:var(--purple);color:white;padding:12px 18px;border-radius:7px;font-weight:550;transition:background .2s,transform .2s,box-shadow .2s}button:hover{transform:translateY(-2px);background:#6528c5;box-shadow:0 5px 14px #7738db25}button:active{transform:translateY(0)}button:disabled{opacity:.5;cursor:wait}.textbtn{background:transparent;color:#8c62c0;font-size:12px;padding:5px 7px;min-height:36px}.textbtn:hover{background:#eee6fa;color:#6428c0;box-shadow:none}.delete{color:#a694a6}.secondary{background:#f0eafa;color:#8457ba}.secondary:hover{background:#e5d8f7}.danger{background:#b94c68}.full{width:100%;margin-top:20px}label{display:block;font-size:12px;color:#797386;margin:17px 0 8px}input,select,textarea{font:inherit;font-size:16px;color:#494253;padding:11px;border:1px solid #e8e4ef;border-radius:7px;background:#fcfbfe;width:100%;min-width:0;outline:none;transition:border-color .2s,box-shadow .2s}input:focus,select:focus,textarea:focus{border-color:#b790eb;box-shadow:0 0 0 3px #783bdb0b}input[type=date]{width:auto;max-width:100%}.row{display:flex;gap:12px}.row>*{flex:1;min-width:0}.note{font-size:11px;color:#918a9f;line-height:1.9;margin:18px 0 0}.foot{display:flex;justify-content:flex-end;color:#9e97ab;font-size:11px;margin-top:26px}.awards{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin:24px 0}.award{padding:26px;background:white;border:1px solid #eee9f6;border-radius:11px;border-top:3px solid #b795e7}.award:first-child{background:#7738db;color:white;border-color:#7738db}.award b{display:block;font-size:25px;margin:15px 0}.award span{font-size:12px;opacity:.75}.spaced{margin-top:24px}.scroll{overflow:auto;max-width:100%;scrollbar-width:thin}table{width:100%;border-collapse:collapse;white-space:nowrap}th,td{padding:17px 13px;text-align:left;border-bottom:1px solid #f1eef7;font-size:13px}th{color:#a49bae;font-size:11px;font-weight:500}tbody tr{transition:background .2s}tbody tr:hover{background:#faf7ff}.deviationbar{width:100px;height:7px;border-radius:4px;background:#f1eafa;overflow:hidden}.deviationbar i{display:block;background:#9561e0;height:100%;border-radius:4px}.legend{display:flex;gap:24px;align-items:center;flex-wrap:wrap;font-size:12px;margin:14px 0}.plannedkey{color:#783bdb}.actualkey{color:#11846e}.chartscroll{overflow-x:auto}.chartscroll svg{width:100%;min-width:620px;display:block}.chartscroll text{fill:#91899e;font:11px system-ui}.chartpoint{transition:r .16s;cursor:crosshair}.chartpoint:hover,.chartpoint:focus{r:7;stroke:#fff;stroke-width:2;outline:none}summary{font-size:12px;color:#8654c3;cursor:pointer;padding:12px 0}dialog{border:1px solid #e5daf4;border-radius:14px;max-width:93vw;width:550px;padding:26px;max-height:85vh;color:#41354e}dialog::backdrop{background:#24153766}.historyitem{padding:15px 0;border-bottom:1px solid #eee7f6;line-height:1.9;font-size:12px}.empty{text-align:center;padding:65px 20px;color:#a197ae;background:#fcfbff;border-radius:8px}#toast{display:none;position:fixed;bottom:25px;left:50%;transform:translateX(-50%);background:#43314f;color:white;border-radius:9px;padding:13px 22px;z-index:10;max-width:90vw}a{color:inherit}:focus-visible{outline:2px solid #9b6bdc;outline-offset:3px}
@media(min-width:1000px){body{margin-left:30px;margin-right:30px}header{position:relative;padding-left:260px}.brand{position:absolute;left:32px}body:before{content:'';position:fixed;top:120px;bottom:36px;left:30px;width:215px;background:#fff;border-radius:0 0 0 20px;pointer-events:none}main{margin-left:215px;padding:32px}nav{gap:20px}.summary{gap:16px}.metric{padding:22px 16px 22px 65px}.metric:before{left:16px;top:28px;width:34px;height:34px}.layout{grid-template-columns:minmax(0,1fr) 320px}.person{gap:10px}}
@media(min-width:1540px){body{margin-left:auto;margin-right:auto}body:before{left:calc((100vw - 1480px)/2)}}
@media(max-width:1100px){.layout{grid-template-columns:1fr}.metric{padding:20px}.metric:before{display:none}}
@media(max-width:760px){body{margin:0;min-height:100vh;border-radius:0}header{height:70px;border-radius:0;padding:0 20px;justify-content:space-between;gap:12px}.brand{font-size:20px}nav{gap:3px}nav a{padding:10px 15px}main{padding:24px 15px}.pageheading h1{font-size:23px}.pageheading{flex-wrap:wrap}.summary{grid-template-columns:repeat(2,1fr);gap:12px;margin:18px 0}.metric{padding:20px}.metric strong{font-size:25px}.layout{grid-template-columns:1fr;gap:18px}.panel{padding:18px}.starttime{padding:20px;gap:12px;flex-wrap:wrap}.starttime strong{font-size:32px}.starttime small{flex-basis:100%;margin:0;font-size:11px;line-height:1.7}.awards{grid-template-columns:1fr;gap:12px;margin:18px 0}.award{padding:20px}.award b{margin:12px 0;font-size:23px}.person{gap:10px;padding:16px 8px;flex-wrap:wrap}.avatar{width:34px;height:34px;font-size:15px}.personinfo{min-width:95px}.personinfo b{font-size:14px}.personinfo .textbtn{font-size:11px;padding:4px}.person>.edit{padding:4px}.time{font-size:20px}.row{flex-wrap:wrap}.row>*{flex-basis:120px}.bar{gap:12px}.bar select{width:100%}.spaced{margin-top:18px}.legend{gap:14px}.note{font-size:11px}th,td{padding:14px 11px}.foot{font-size:10px}button{min-height:40px}.chartscroll svg{min-width:650px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important;scroll-behavior:auto!important}}
.sidebar{display:none}@media(min-width:1000px){.sidebar{position:absolute;top:150px;left:60px;width:155px;display:flex;flex-direction:column;gap:16px}.sidebar a{display:block;text-decoration:none;color:#81768f;padding:15px 12px;border-radius:8px;transition:background .2s,color .2s}.sidebar a:hover{background:#f1e8ff;color:#7738db}body:has(#statsLink.active) .sidebar a[href='/stats'],body:has(#homeLink.active) .sidebar a[href='/']{background:#7738db;color:white}}@media(min-width:1540px){.sidebar{left:calc((100vw - 1480px)/2 + 30px)}}
/* Navigation without a top header. */
body{position:relative}body:before{display:none}.sidebar{display:flex;position:static;width:auto;flex-direction:row;gap:12px;padding:15px 20px;background:#fff;border-radius:20px 20px 0 0}.sidebar a{text-decoration:none;padding:12px 17px;color:#81768f;border-radius:8px;transition:background .2s,color .2s}.sidebar a.active{background:#7738db;color:white}.sidebar a:hover{background:#eee6fb;color:#7738db}.charttooltip{position:fixed;z-index:30;pointer-events:none;background:#fff;color:#42354f;border:1px solid #e5d9f7;border-radius:10px;padding:14px 17px;box-shadow:0 8px 30px #44315425;font-size:12px;line-height:2;min-width:220px}.charttooltip b{display:block;color:#43354e;margin-bottom:5px}.charttooltip[hidden]{display:none}.charttooltip strong{margin-left:12px}.chartscroll svg{touch-action:pan-x pan-y}@media(min-width:1000px){.sidebar{position:absolute;left:0;top:0;bottom:0;width:215px;flex-direction:column;padding:28px 24px;border-radius:20px 0 0 20px}.sidebar a{padding:15px 12px}.sidebar a.active{background:#7738db;color:#fff}main{min-height:calc(100vh - 72px)}}@media(max-width:760px){.sidebar{border-radius:0;padding:12px 15px}.charttooltip{font-size:12px;min-width:205px}}
/* Keep the brand header; page navigation lives in the sidebar. */
header{padding:0 32px;position:relative}.brand{position:static}.sidebar{border-radius:0}@media(min-width:1000px){header{padding-left:32px}.sidebar{top:85px;border-radius:0 0 0 20px}main{min-height:calc(100vh - 157px)}}@media(max-width:760px){header{padding:0 20px}}
#checkin{margin:24px 0}#checkin .layout{grid-template-columns:1fr}#checkin .layout>.panel{min-width:0}@media(min-width:1300px){#checkin .layout{grid-template-columns:minmax(0,1fr) 320px}}@media(max-width:760px){#checkin{margin:18px 0}}
#checkin .starttime{margin-bottom:20px}
#statsDate{min-height:50px;min-width:190px;padding:13px 18px;cursor:pointer;font-size:16px}#statsDate::-webkit-calendar-picker-indicator{padding:8px;margin:-8px -5px -8px 12px;cursor:pointer}@media(max-width:760px){#statsDate{min-height:50px;min-width:175px;max-width:100%}}
.statsactions{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.statsactions button{min-height:50px}@media(max-width:760px){.statsactions{width:100%;gap:10px}.statsactions #statsDate{flex:1}.statsactions button{padding:12px 16px}}
#exportType{width:auto;min-height:50px;max-width:100%}@media(max-width:760px){#exportType{flex:1}.statsactions #statsDate{flex-basis:100%}}
