:root{--ink:#10191e;--muted:#716763;--brand:#ffc3a8;--brand-hover:#f4b092;--brand-soft:#fff0e8;--accent:#965034;--paper:#fff9f5;--line:#eaded7;font-family:Inter,"Segoe UI",Arial,sans-serif;color:var(--ink);background:var(--paper);font-synthesis:none}
*{box-sizing:border-box}
body{margin:0}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--accent);outline-offset:3px}
button{cursor:pointer}
h1,h2,h3,p{margin-top:0}
h1{font-size:42px;letter-spacing:-1.6px;line-height:1.15;margin-bottom:12px;font-weight:650}
h2{font-size:20px;letter-spacing:-.4px;margin-bottom:7px}
p{line-height:1.6}
.muted,.hint{color:var(--muted)}
.accent{color:var(--accent)}
.eyebrow,.nav-label{font-size:11px;letter-spacing:2px;font-weight:750;display:block;margin-bottom:15px}
.sidebar{position:fixed;inset:0 auto 0 0;width:240px;background:var(--ink);color:#fff4ed;padding:25px 18px;display:flex;flex-direction:column}
.brand{display:block;padding:4px 17px 34px}
.brand img{width:100%;display:block}
.nav-label{color:#c9bcb5;font-size:10px;padding-left:17px;margin:15px 0}
.sidebar nav{display:grid;gap:7px}
.sidebar nav a{padding:13px 17px;border-radius:9px;font-size:14px;display:flex;align-items:center;gap:13px}
.sidebar nav a span{font-size:21px;width:20px}
.sidebar nav a:hover{background:#2b3439}
.sidebar nav a.active{background:var(--brand);color:var(--ink);font-weight:650}
.sidebar-bottom{margin-top:auto;border-top:1px solid #3c4144;padding:22px 12px 0;display:grid;gap:8px;font-size:13px}
.account-email{overflow-wrap:anywhere}
.sidebar-bottom small{color:#c9bcb5}
.sidebar-bottom>a{font-size:12px;margin-top:15px;color:#f1d6c9}
.logout{border:0;background:transparent;padding:8px 0 0;color:#fff0e8}
.main-shell{margin-left:240px}
.topbar{height:76px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;padding:0 44px;font-size:13px;background:#fffaf7}
.today{color:var(--muted)}
main{padding:43px 44px;max-width:1550px;margin:auto}
.page-heading{display:flex;justify-content:space-between;align-items:center;gap:22px;margin-bottom:29px}
.page-heading p{color:var(--muted);margin:0}
.button{border:1px solid var(--brand);background:var(--brand);color:var(--ink);padding:13px 20px;border-radius:8px;font-weight:600;font-size:14px;display:inline-flex;align-items:center;justify-content:center;gap:12px;white-space:nowrap;min-height:45px}
.button:hover{background:var(--brand-hover);border-color:var(--brand-hover)}
.button.secondary{background:white;color:var(--ink);border-color:var(--line)}
.button.secondary:hover{background:var(--brand-soft)}
.stats{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:19px;margin-bottom:30px}
.stat{padding:25px 27px;border:1px solid var(--line);background:white;border-radius:13px;display:flex;flex-direction:column;gap:15px}
.stat>span:first-child{font-size:13px;font-weight:650}
.stat>span:last-child{font-size:12px;color:var(--muted)}
.stat strong{font-size:42px;font-weight:600;letter-spacing:-1.7px;line-height:1.2}
.stat strong small{font-size:16px;font-weight:400;letter-spacing:0;margin-left:10px}
.stat.featured{background:var(--brand);border-color:var(--brand)}
.panel{background:white;border:1px solid var(--line);border-radius:13px}
.overview{margin-bottom:25px;overflow:hidden}
.panel-heading{padding:25px 27px;display:flex;gap:20px;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line)}
.panel-heading p{font-size:13px;color:var(--muted);margin:0}
.filters{display:flex;align-items:flex-end;gap:10px;flex-wrap:wrap}
.filters label{font-size:11px;margin:0 0 5px}
.filters input,.filters select{padding:10px 11px;height:43px;min-width:83px}
.filters input{width:90px}
.filters .button{min-height:43px;padding:10px 15px}
.table-scroll{overflow-x:auto}
table{border-collapse:collapse;width:100%;text-align:left;font-size:13px}
th{font-size:11px;text-transform:uppercase;letter-spacing:.6px;background:#fffaf7;color:var(--muted);font-weight:650;white-space:nowrap}
th,td{padding:18px 24px;border-bottom:1px solid #f3e9e3}
td small{display:block;font-size:11px;color:var(--muted);margin-top:5px}
td strong{font-weight:600}
tbody tr:last-child td{border-bottom:0}
tbody tr:hover{background:#fffaf7}
tfoot td{background:var(--brand-soft);font-weight:650;border-top:1px solid var(--line)}
.hours-pill{background:var(--brand-soft);padding:6px 10px;border-radius:6px;font-weight:650;white-space:nowrap}
.badge{font-size:10px;padding:4px 7px;border-radius:5px;background:#f3e9e3;white-space:nowrap}
.text-link{color:var(--ink);font-weight:600;white-space:nowrap}
.nowrap{white-space:nowrap}
.note{max-width:260px;overflow-wrap:anywhere}
.status{display:inline-flex;align-items:center;gap:7px;font-size:12px;white-space:nowrap}
.status:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}
.status.on{color:#326a3a}
.status.off{color:#875443}
.empty{text-align:center;padding:55px 22px}
.empty-icon{font-size:37px;margin:0 auto 20px;background:var(--brand-soft);width:70px;height:70px;line-height:70px;border-radius:50%;color:var(--accent)}
.empty h3{font-size:18px;margin-bottom:10px}
.empty p{color:var(--muted);font-size:14px}
.hint{font-size:12px;line-height:1.6;margin:10px 0 20px}
.back-link{font-size:13px;color:var(--muted);display:inline-block;margin-bottom:25px}
.edit-grid{display:grid;grid-template-columns:minmax(0,660px) minmax(220px,1fr);gap:25px;align-items:start}
.form-panel{padding:30px;max-width:660px;width:100%}
label{display:block;font-size:13px;font-weight:600;margin:0 0 8px}
input:not([type=checkbox]):not([type=hidden]),select,textarea{display:block;width:100%;background:#fff;border:1px solid #d9c7bd;border-radius:7px;padding:12px 13px;color:var(--ink);min-height:44px}
textarea{resize:vertical}
.form-panel input:not([type=checkbox]),.form-panel select,.form-panel textarea{margin-bottom:23px}
.form-panel .hint{margin-top:-12px}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.checkbox{display:flex;align-items:center;gap:10px;margin:0 0 25px;font-weight:400;line-height:1.5}
.checkbox input{width:18px;height:18px;accent-color:var(--ink);flex-shrink:0}
.form-actions{display:flex;gap:12px;margin-top:28px;flex-wrap:wrap}
.summary-card{padding:29px;background:var(--brand-soft);border:0}
.summary-card output{font-size:34px;display:block;font-weight:650;margin:22px 0 10px;letter-spacing:-1px}
.summary-card p{font-size:13px;color:#71615a}
.summary-card hr{border:0;border-top:1px solid var(--line);margin:25px 0}
.delete-form{margin-top:24px}
.danger-link{border:0;background:transparent;color:#a33131;padding:8px 0;text-decoration:underline;font-size:13px}
.notice{padding:15px 20px;border-radius:9px;margin-bottom:25px;font-size:14px;line-height:1.5}
.success{background:#e1efda;color:#265a30}
.error,.validation:not(:empty){color:#982d2d;background:#fff0ee;border-radius:7px}
.validation ul{padding:15px 15px 15px 32px;font-size:13px;line-height:1.6}
.validation-summary-valid{display:none}
.field-validation-error{color:#982d2d;font-size:12px}
.input-validation-error{border-color:#b14141!important}
footer{padding:0 44px 25px;color:var(--muted);font-size:11px}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.guest .main-shell{margin:0}
.guest main{padding:0;max-width:none}
.login-screen{min-height:100dvh;display:grid;grid-template-columns:1fr 1fr}
.login-brand{background:var(--ink);color:#fff4ed;padding:50px 70px;display:flex;flex-direction:column;justify-content:space-between;min-height:100dvh;position:relative;overflow:hidden}
.login-brand:after{content:"";width:400px;height:400px;border:1px solid #665049;border-radius:50%;position:absolute;right:-190px;bottom:-200px;pointer-events:none}
.login-brand img{width:200px;max-width:100%;align-self:flex-start}
.login-brand h1{font-size:clamp(40px,4.2vw,65px);letter-spacing:-2px;line-height:1.08;margin:22px 0}
.login-brand p{color:#ddc9bf;font-size:16px}
.login-brand .eyebrow{color:var(--brand)}
.login-brand small{font-size:10px;letter-spacing:2.5px;color:#ddc9bf}
.login-form{display:flex;align-items:center;justify-content:center;padding:50px;background:#fffaf7}
.login-card{width:100%;max-width:370px}
.login-card .eyebrow{font-size:10px;color:var(--accent)}
.login-card h2{font-size:36px;letter-spacing:-1.2px;margin-bottom:13px}
.login-card>.muted{font-size:14px;margin-bottom:35px}
.login-card label{margin-top:23px}
.full{width:100%;justify-content:space-between;margin-top:28px}
.login-help{margin-top:28px;font-size:12px;line-height:1.8;color:var(--muted)}

@media(min-width:1450px){main{padding-top:50px}
.stats{gap:24px}
.stat{padding:29px 30px}
}

@media(max-width:1100px){.sidebar{width:205px;padding:22px 13px}
.main-shell{margin-left:205px}
main{padding:30px 25px}
.topbar{padding:0 25px}
.panel-heading{align-items:flex-start;flex-direction:column}
.stats{gap:12px}
.stat{padding:22px 18px}
.stat strong{font-size:36px}
th,td{padding:16px 18px}
.login-brand{padding:40px}
.edit-grid{grid-template-columns:minmax(0,1fr)}
.summary-card{max-width:660px}
}

@media(max-width:700px){.sidebar{position:static;width:100%;padding:14px 18px;display:block}
.brand{padding:0;margin-bottom:14px;width:110px}
.sidebar .nav-label,.sidebar-bottom small{display:none}
.sidebar-bottom>a{font-size:10px;margin-top:0}
.sidebar nav{display:flex;gap:6px}
.sidebar nav a{font-size:12px;padding:10px 12px;gap:6px;flex:1;justify-content:center;white-space:nowrap}
.sidebar nav a span{display:none}
.sidebar-bottom{padding:10px 0 0;margin-top:12px;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;font-size:11px}
.logout{padding:0;font-size:12px}
.main-shell{margin:0}
.topbar{height:47px;padding:0 20px;font-size:11px}
.today{display:none}
main{padding:28px 18px}
.page-heading{align-items:flex-start;flex-direction:column;gap:20px}
.page-heading h1{font-size:34px}
.page-heading p{font-size:14px}
.eyebrow{font-size:9px;margin-bottom:12px}
.stats{grid-template-columns:1fr 1fr;gap:10px;margin-bottom:22px}
.stat.featured{grid-column:1/-1}
.stat{padding:18px;gap:12px}
.stat strong{font-size:32px}
.stat>span:last-child{font-size:11px}
.stat>span:first-child{font-size:12px}
.panel-heading{padding:20px 18px}
.filters{width:100%;gap:8px}
.filters>div{flex:1;min-width:75px}
.filters>div:has(#userId){flex-basis:100%}
.filters input{width:100%}
.form-panel{padding:23px 19px}
.form-row{gap:12px}
.form-actions .button{flex:1}
footer{padding:0 18px 22px}
.login-screen{grid-template-columns:1fr}
.login-brand{min-height:auto;padding:25px 28px 30px}
.login-brand img{width:125px;margin-bottom:30px}
.login-brand h1{font-size:38px;margin:15px 0}
.login-brand p,.login-brand>small{display:none}
.login-brand .eyebrow{margin:0}
.login-form{padding:38px 28px}
.login-card{max-width:440px}
.login-card h2{font-size:30px}
.login-card>.muted{margin-bottom:26px}
.account-email{max-width:70%}
}
