@font-face{font-family:Carlito;src:url(fonts/carlito-regular.ttf);font-display:swap}
@font-face{font-family:Carlito;src:url(fonts/carlito-bold.ttf);font-weight:700;font-display:swap}
:root{--purple:#792e6a;--gray:#59585a;--line:#e7e2e7;--bg:#f6f4f6;--muted:#69646b;--soft:#f4edf3}
*{box-sizing:border-box}html{scroll-padding-top:115px}body{margin:0;background:var(--bg);color:#302e31;font:18px/1.5 Carlito,Arial,sans-serif;-webkit-text-size-adjust:100%}h1,h2,h3,p{margin-top:0}h1{font-size:32px;line-height:1.2;margin-bottom:24px;letter-spacing:-.4px}h2{font-size:24px;line-height:1.3;margin-bottom:22px}h3{font-size:20px;line-height:1.35;margin-bottom:12px}a{color:var(--purple)}button,input,select{font:inherit}button{border:1px solid var(--purple);background:var(--purple);color:white;border-radius:10px;padding:11px 22px;min-height:48px;cursor:pointer;font-weight:700;touch-action:manipulation}button:hover{filter:brightness(.96)}button:disabled{opacity:.5;cursor:default}input,select{display:block;width:100%;min-width:0;max-width:100%;min-height:50px;padding:11px 12px;border:1px solid #d5ced5;border-radius:9px;background:#fff;color:#302e31;font-size:17px}input[type=date],input[type=time]{appearance:none;-webkit-appearance:none;min-width:0;text-align:left}input::-webkit-date-and-time-value{text-align:left}label{display:block;min-width:0;font-weight:700;margin-bottom:18px;font-size:17px}label input,label select{margin-top:7px;font-weight:400}input:focus-visible,select:focus-visible,button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid #c996be;outline-offset:3px}.top{position:relative;display:flex;align-items:center;justify-content:space-between;padding:28px 36px;background:white;border-bottom:1px solid var(--line);gap:20px;z-index:20}.brand{display:flex;align-items:center;gap:24px;text-decoration:none;color:var(--gray);min-width:0}.brand img{width:220px;height:auto;display:block}.brand span{padding-left:24px;border-left:1px solid #d5ced5;font-size:17px}.person{overflow-wrap:anywhere;text-align:right}.layout{display:grid;grid-template-columns:245px minmax(0,1fr)}.sidebar{padding:28px 20px;background:white;min-height:calc(100vh - 100px);display:flex;flex-direction:column;gap:40px;border-right:1px solid var(--line)}nav{display:grid;gap:8px}nav a{display:block;padding:12px 14px;text-decoration:none;color:var(--gray);border-radius:9px;font-weight:700;min-height:48px}nav a:hover,nav a[aria-current]{background:var(--soft);color:var(--purple)}.sidebar form{margin-top:auto}.mobile-menu{display:none}main{min-width:0;padding:32px;max-width:1600px;width:100%;margin:0 auto}.card{background:white;border:1px solid var(--line);border-radius:16px;padding:28px;margin-bottom:24px;box-shadow:0 3px 15px #30203003}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 24px;align-items:start}.project-picker{min-width:0;grid-column:1/-1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 24px}.search-status{color:var(--muted);display:block;grid-column:1/-1;margin:-10px 0 18px;font-size:15px}.search-status:empty{display:none}.time-fields{display:grid;grid-column:1/-1;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 24px}.page-heading{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:4px}.eyebrow{color:var(--purple);font-size:15px;margin-bottom:8px}.muted,small{color:var(--muted)}small{font-size:15px}.link{font-weight:700;text-underline-offset:4px}.timer{border-top:3px solid var(--purple)}.timer-clock{font-size:64px;line-height:1.2;color:var(--purple);font-weight:700;font-variant-numeric:tabular-nums;letter-spacing:1px;margin:16px 0}.project-name{font-size:24px;font-weight:700;line-height:1.35;overflow-wrap:anywhere}.entry{display:grid;grid-template-columns:minmax(0,1fr) 165px 150px 48px;align-items:center;gap:24px;padding:28px 0;border-top:1px solid var(--line)}.entry-info{min-width:0;overflow-wrap:anywhere}.entry-info p{margin:12px 0 0;color:var(--gray)}.date{background:var(--bg);border-radius:7px;padding:4px 10px;display:inline-block;font-weight:700;color:var(--gray);font-variant-numeric:tabular-nums}.interval{padding:12px;background:#fbfafb;border:1px solid #ddd6dd;border-radius:10px;text-align:center}.interval small,.interval strong,.duration small,.duration strong{display:block}.interval strong{white-space:nowrap;font-variant-numeric:tabular-nums}.duration{text-align:center;min-width:0}.duration strong{font-size:36px;line-height:1.35;color:var(--purple);font-variant-numeric:tabular-nums}.edit-link{display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:8px;padding:6px 14px;min-height:44px;text-decoration:none;font-weight:700;margin-top:8px}.delete{background:white;color:var(--gray);border-color:var(--line);font-size:28px;width:48px;padding:0;line-height:1}.delete:hover{color:#a02b20;background:#fff5f4}.secondary{background:white;color:var(--purple);border-color:var(--line)}.error{background:#fff0ee;color:#92281e;padding:16px;border-radius:10px;overflow-wrap:anywhere}.project-row{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:20px 0;border-top:1px solid var(--line)}.project-row>div{min-width:0}.project-row h3,.project-row p{margin-bottom:4px;overflow-wrap:anywhere}.project-row>span{font-size:15px;border-radius:7px;padding:4px 9px;background:var(--soft);color:var(--purple)}.checkbox{display:flex;align-items:center;gap:10px;min-height:44px}.checkbox input{width:22px;min-height:22px;margin:0;accent-color:var(--purple)}.audit-row{display:grid;grid-template-columns:1fr 1fr auto;gap:12px;padding:18px 0;border-bottom:1px solid var(--line);overflow-wrap:anywhere}.audit-row time{font-size:15px;color:var(--muted);font-variant-numeric:tabular-nums}.login{max-width:560px;margin:8vh auto}.login .brand{margin-bottom:40px}.login .brand img{width:210px}.login button{width:100%}[hidden]{display:none!important}
@media(max-width:1100px){.entry{grid-template-columns:minmax(0,1fr) 135px 115px 48px;gap:12px}.layout{grid-template-columns:200px minmax(0,1fr)}main{padding:24px}.card{padding:22px}.duration strong{font-size:30px}.audit-row{grid-template-columns:1fr 1fr}.audit-row time{grid-column:1/-1}}
@media(max-width:760px){
 body{font-size:17px}.top{position:sticky;top:0;padding:16px max(16px,env(safe-area-inset-right)) 14px max(16px,env(safe-area-inset-left));gap:12px;box-shadow:0 3px 12px #30203004}.top .brand{flex-direction:column;align-items:flex-start;gap:6px}.top .brand img{width:157px}.top .brand span{font-size:12px;line-height:1.3;padding-left:8px;border-left:2px solid #caaac3}.person,.sidebar{display:none}.layout{display:block}.mobile-menu{display:block}.mobile-menu summary{display:flex;align-items:center;justify-content:center;gap:9px;min-width:88px;min-height:48px;padding:10px 12px;border:1px solid var(--line);border-radius:11px;color:var(--purple);font-weight:700;cursor:pointer;list-style:none;background:white;touch-action:manipulation}.mobile-menu summary::-webkit-details-marker{display:none}.menu-icon{display:flex;flex-direction:column;justify-content:center;gap:4px;width:18px;height:20px}.menu-icon i{display:block;height:2px;background:currentColor;border-radius:2px;transition:transform .15s,opacity .15s}.mobile-menu[open] summary{background:var(--soft);border-color:#d3b7cd}.mobile-menu[open] .menu-icon i:first-child{transform:translateY(6px) rotate(45deg)}.mobile-menu[open] .menu-icon i:nth-child(2){opacity:0}.mobile-menu[open] .menu-icon i:last-child{transform:translateY(-6px) rotate(-45deg)}.mobile-menu-panel{position:absolute;top:calc(100% + 8px);left:12px;right:12px;border:1px solid var(--line);border-radius:16px;padding:12px;background:white;box-shadow:0 12px 30px #30203024;max-height:calc(100dvh - 120px);overflow:auto;overscroll-behavior:contain}.mobile-menu-panel nav{gap:4px}.mobile-menu-panel nav a{padding:13px 14px;min-height:50px}.menu-account{display:grid;gap:2px;padding:16px 14px 12px;margin-top:8px;border-top:1px solid var(--line);overflow-wrap:anywhere}.menu-account strong{font-size:16px}.menu-account small{font-size:14px}.mobile-menu-panel form{margin:0 2px 2px}.mobile-menu-panel button{width:100%}
 main{padding:24px 14px 32px;padding-bottom:max(32px,env(safe-area-inset-bottom));}.card{padding:22px 18px;border-radius:16px;margin-bottom:18px}.form-grid{grid-template-columns:minmax(0,1fr);gap:0}.project-picker{grid-template-columns:minmax(0,1fr);gap:0}.time-fields{gap:12px}.search-status{margin:-8px 0 16px}label{font-size:16px;margin-bottom:18px}input,select{font-size:17px;min-height:52px;border-radius:10px;padding:12px}input[type=time]{padding-left:9px;padding-right:6px}h1{font-size:29px;line-height:1.16;margin-bottom:20px;letter-spacing:-.5px}h2{font-size:23px;margin-bottom:20px}h3{font-size:19px}.page-heading{display:block;margin-bottom:20px}.page-heading h1{margin-bottom:14px}.eyebrow{font-size:14px;margin-bottom:6px}.page-heading>.link{display:inline-flex;align-items:center;min-height:44px;padding:8px 13px;background:white;border:1px solid var(--line);border-radius:9px;font-size:15px;text-decoration:none}.card form>button{width:100%;min-height:52px}.card form>.link{display:block;padding:12px;text-align:center}.timer{padding-top:20px}.timer-clock{font-size:clamp(40px,12vw,62px);text-align:center;margin:20px 0 12px;letter-spacing:0}.timer>.project-name{font-size:22px;margin-bottom:8px}.timer>.project-name+p{margin-bottom:10px;color:var(--gray)}.timer>.muted{text-align:center;font-size:15px;line-height:1.5;margin-bottom:22px}
 .entry{position:relative;grid-template-columns:minmax(0,1fr) minmax(0,1fr) 44px;gap:18px 10px;padding:22px 0}.entry-info{grid-column:1/3;grid-row:1}.entry-info h3{margin-bottom:10px}.entry-info p{font-size:16px;margin-top:9px}.date{font-size:15px;padding:4px 9px}.delete-form{grid-column:3;grid-row:1;align-self:start}.delete-form .delete{width:44px;min-height:44px}.interval{grid-column:1;grid-row:2;align-self:start;padding:11px 6px;background:#faf8fa;border-color:var(--line)}.interval strong{font-size:16px}.interval small{font-size:13px;margin-bottom:4px}.duration{grid-column:2/4;grid-row:2;text-align:center;align-self:start}.duration small{font-size:13px;margin-bottom:1px}.duration strong{font-size:34px;line-height:1.3}.edit-link{margin-top:7px;min-height:44px;font-size:15px;padding:6px 18px}.project-row{align-items:start;flex-wrap:wrap;gap:12px;padding:18px 0}.project-row>div{flex:1 1 180px}.project-row>form{flex:0 0 100%}.project-row>form>button{min-height:44px}.project-row>span{font-size:14px;align-self:flex-start}.project-row p{font-size:16px}.audit-row{grid-template-columns:minmax(0,1fr);gap:5px;padding:18px 0}.audit-row strong{font-size:17px}.audit-row span{font-size:16px;color:var(--gray)}.audit-row time{grid-column:auto;font-size:14px}.login{margin-top:4vh;padding:24px 16px}.login .brand{flex-direction:column;align-items:flex-start;gap:16px;margin-bottom:28px}.login .brand img{width:210px;max-width:100%}.login .brand span{padding-left:10px;border-left:2px solid #caaac3;font-size:15px}.login .card{padding:24px 20px}.login h1{font-size:28px}.error{font-size:16px}button{max-width:100%}
}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important;scroll-behavior:auto!important}}
/* Attendance and leave share the same mobile form and card rhythm. */
textarea{display:block;width:100%;max-width:100%;min-height:88px;resize:vertical;font:inherit;font-size:17px;font-weight:400;color:#302e31;border:1px solid #d5ced5;border-radius:9px;padding:11px 12px;margin-top:7px;background:white}textarea:focus-visible{outline:3px solid #c996be;outline-offset:3px}.wide,.new-employment{grid-column:1/-1}.new-employment{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 18px}.new-employment small{grid-column:1/-1;margin-bottom:18px}.period-form{display:flex;align-items:end;gap:16px;margin-bottom:24px}.period-form label{margin:0;max-width:280px;flex:1}.period-form button{flex:0 0 auto}.summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:24px}.summary-card{display:grid;grid-template-rows:minmax(48px,auto) auto 1fr;gap:10px;background:white;border:1px solid var(--line);border-radius:14px;padding:20px;min-width:0}.summary-card>span{font-size:17px;color:var(--gray);line-height:1.4}.summary-card>strong{font-size:34px;line-height:1.2;color:var(--purple);font-variant-numeric:tabular-nums}.summary-card small{line-height:1.4;font-size:14px}.split-value span{display:block;font-size:22px}.section-heading,.request-heading{display:flex;justify-content:space-between;gap:12px;align-items:start;flex-wrap:wrap}.status{display:inline-block;border-radius:8px;background:var(--soft);color:var(--purple);padding:5px 10px;font-size:14px;font-weight:700;line-height:1.4}.status-approved,.success{background:#edf6ef;color:#295e38}.status-pending,.notice,.missing-badge{background:#fff4e5;color:#895015}.status-rejected{background:#fff0ee;color:#92281e}.status-cancelled{background:var(--bg);color:var(--gray)}.notice,.success{padding:14px 16px;border-radius:10px;line-height:1.5;font-size:16px;overflow-wrap:anywhere}.attendance-day{padding:20px 0;border-top:1px solid var(--line)}.attendance-overview{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr) minmax(125px,.7fr);gap:16px;align-items:center}.attendance-date,.attendance-shift,.attendance-net{display:flex;flex-direction:column;gap:4px;min-width:0}.attendance-date>strong{font-size:21px}.attendance-date>span{font-size:15px;color:var(--gray)}.attendance-date>small{font-size:14px}.attendance-shift>strong{font-size:19px;font-variant-numeric:tabular-nums}.attendance-shift small{font-size:14px}.attendance-net{align-items:center;text-align:center}.attendance-net>strong{color:var(--purple);font-size:23px;font-variant-numeric:tabular-nums}.attendance-net>small{font-size:13px}.missing-badge{display:inline-block;padding:5px 9px;border-radius:8px;font-size:14px;white-space:nowrap}.quiet-day .attendance-date>strong,.quiet-day .attendance-shift>strong{color:var(--gray)}.day-note{padding:10px 12px;margin:12px 0;background:var(--bg);border-radius:8px;font-size:15px;overflow-wrap:anywhere}.day-editor{margin-top:12px}.day-editor>summary,.review-details>summary{display:list-item;cursor:pointer;color:var(--purple);font-size:16px;font-weight:700;min-height:44px;padding:10px 0}.day-editor[open]>form{padding:18px;background:var(--bg);border-radius:12px}.day-editor .checkbox{align-self:end}.request-card{padding:22px 0;border-top:1px solid var(--line)}.request-card p{overflow-wrap:anywhere}.request-heading h3{margin-bottom:10px}.request-date{font-size:18px;font-variant-numeric:tabular-nums}.request-date strong{display:inline-block;color:var(--purple);margin-left:12px}.request-actions{display:flex;gap:12px}.request-actions form{flex:1}.request-actions button{width:100%}.review-day{padding:12px 0}.review-day p{margin:8px 0}.employment-editor{border-top:1px solid var(--line);margin-top:16px;padding-top:8px}.employment-editor>summary{cursor:pointer;font-weight:700;color:var(--purple);padding:12px 0;min-height:48px}.employment-editor>summary>span{display:block;font-size:14px;font-weight:400;color:var(--gray);margin-left:18px}.employment-editor>form{padding-top:18px}.schedule-list{margin-bottom:24px}.schedule-row{display:grid;grid-template-columns:110px 1fr 1fr;gap:16px;align-items:center;border-bottom:1px solid var(--line);padding:12px 0}.schedule-row label{margin:0}.schedule-row strong{font-size:16px}
@media(max-width:1100px){.summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.summary-card{grid-template-rows:24px auto 1fr}.new-employment{grid-template-columns:1fr 1fr}}
@media(max-width:760px){.summary-grid{gap:10px;margin-bottom:18px}.summary-card{padding:16px 13px;border-radius:12px;gap:8px;grid-template-rows:minmax(40px,auto) auto 1fr}.summary-card>span{font-size:15px}.summary-card>strong{font-size:27px}.summary-card small{font-size:13px}.split-value span{font-size:20px}.period-form{padding:16px;gap:10px;align-items:end}.period-form label{min-width:0;max-width:none;font-size:15px}.period-form button{padding:10px 14px;min-height:52px}.attendance-overview{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px}.attendance-date{grid-column:1;grid-row:1}.attendance-shift{grid-column:1;grid-row:2}.attendance-net{grid-column:2;grid-row:1/3;align-self:center}.attendance-date>strong{font-size:21px}.attendance-shift>strong{font-size:17px}.attendance-date>small{font-size:13px}.attendance-net>strong{font-size:27px}.attendance-day{padding:18px 0}.day-editor[open]>form{padding:16px 12px}.day-editor .time-fields{gap:10px}.day-editor .checkbox{align-self:start}.attendance-net .missing-badge{font-size:13px;padding:5px 8px}.section-heading h2{margin-bottom:14px}.request-heading{gap:8px}.request-heading h3{flex:1;min-width:0}.request-date{font-size:17px}.request-date strong{display:block;margin:8px 0 0;font-size:25px}.request-actions{gap:10px}.request-actions button{padding-left:10px;padding-right:10px}.request-actions form>button{min-height:48px}.new-employment{grid-template-columns:minmax(0,1fr)}.schedule-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px;padding:14px 0}.schedule-row>strong{grid-column:1/-1}.schedule-row label{font-size:15px}.employment-editor>summary{font-size:18px}.employment-editor>summary>span{font-size:14px}.employment-editor .period-form{padding:0}.employment-editor .form-grid{gap:0}}
/* Keep period filters independent of full-width submit buttons in other cards. */
.card .period-form>button,.period-form.card>button{width:auto;flex:0 0 auto}
.period-form>label{min-width:0}
.period-form>label>input{min-width:0;width:100%}
@media(max-width:760px){.period-form{flex-wrap:wrap}.period-form>label{flex:1 1 140px}}
@media(max-width:380px){.period-form{flex-direction:column;align-items:stretch}.period-form>label{flex:none;max-width:none;width:100%}.card .period-form>button,.period-form.card>button{width:100%;flex:none}}
/* Entry metadata stays grouped; editing sits outside the time comparison. */
.entry-time-band{display:contents}
.entry-info,.entry>.entry-time-band>.interval,.entry>.delete-form{grid-row:1/3}
.entry>.entry-time-band>.duration{grid-column:3;grid-row:1}
.entry>.entry-edit{grid-column:3;grid-row:2;justify-self:center;margin-top:0}
.entry>.delete-form{grid-column:4}
.entry{row-gap:8px}
@media(max-width:760px){
 .top .brand span,.login .brand span{display:none}
 .top .brand{gap:0}
 .entry{grid-template-columns:minmax(0,1fr) 44px;gap:16px 12px;padding:22px 0}
 .entry>.entry-info{grid-column:1;grid-row:1}
 .entry>.delete-form{grid-column:2;grid-row:1;align-self:start}
 .entry-time-band{display:grid;grid-column:1/-1;grid-row:2;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:0;padding:14px 10px;border:1px solid var(--line);border-radius:12px;background:#faf8fa;align-items:center}
 .entry>.entry-time-band>.interval{grid-column:1;grid-row:1;margin:0;padding:3px 8px;border:0;border-radius:0;background:none;min-width:0;align-self:center}
 .entry>.entry-time-band>.duration{grid-column:2;grid-row:1;padding:3px 8px;border-left:1px solid #ddd4dd;align-self:center}
 .entry-time-band .interval small,.entry-time-band .duration small{font-size:13px;margin-bottom:5px}
 .entry-time-band .interval strong{font-size:17px;line-height:1.5}
 .entry-time-band .duration strong{font-size:30px;line-height:1.25}
 .entry>.entry-edit{grid-column:1/-1;grid-row:3;justify-self:end;min-width:104px;margin:0}
}
.comp-summary{grid-template-columns:repeat(3,minmax(0,1fr))}.overtime-breakdown{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;border:1px solid var(--line);border-radius:12px;background:#faf8fa;padding:18px;margin:18px 0}.overtime-breakdown>div{display:flex;flex-direction:column;gap:7px;min-width:0}.overtime-breakdown span{font-size:15px;color:var(--gray)}.overtime-breakdown strong{font-size:26px;color:var(--purple);font-variant-numeric:tabular-nums}
@media(max-width:760px){.comp-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.comp-summary>.summary-card:last-child{grid-column:1/-1;grid-template-rows:auto auto auto}.overtime-breakdown{grid-template-columns:1fr;padding:4px 16px;gap:0}.overtime-breakdown>div{flex-direction:row;justify-content:space-between;align-items:center;gap:14px;padding:13px 0}.overtime-breakdown>div+div{border-top:1px solid var(--line)}.overtime-breakdown strong{font-size:23px;white-space:nowrap}.overtime-breakdown span{font-size:15px}}
@media(max-width:760px){.comp-summary>.summary-card:last-child{grid-template-columns:minmax(0,1fr) auto;grid-template-rows:auto auto;align-items:center}.comp-summary>.summary-card:last-child>span{grid-column:1;grid-row:1}.comp-summary>.summary-card:last-child>strong{grid-column:2;grid-row:1/3;font-size:36px}.comp-summary>.summary-card:last-child>small{grid-column:1;grid-row:2}}
.login-help{margin:22px 0 0;text-align:center}.login-help a{display:inline-block;padding:10px;min-height:44px;text-underline-offset:4px}
/* Consistent inset for select arrows on desktop and touch screens. */
select{appearance:none;-webkit-appearance:none;padding-right:48px!important;background-image:url("chevron-down.svg");background-repeat:no-repeat;background-position:right 16px center;background-size:18px 18px}
@media(forced-colors:active){select{appearance:auto;-webkit-appearance:auto;background-image:none}}

[hidden]{display:none!important}.report-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:20px}.card .report-actions button{width:auto;margin:0}.report-total{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:20px;background:#faf8fa;border-radius:12px}.report-total strong{font-size:32px;color:var(--purple);font-variant-numeric:tabular-nums}.report-table{overflow-x:auto}.report-table table{width:100%;border-collapse:collapse}.report-table td,.report-table th{padding:14px;text-align:left;border-bottom:1px solid var(--line)}.report-entry{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;padding:22px 0;border-top:1px solid var(--line)}.report-entry small{display:block;color:var(--gray);margin-bottom:5px}.report-entry span{overflow-wrap:anywhere}.report-entry div:last-child span{font-weight:bold;color:var(--purple)}
@media(max-width:760px){.report-actions{display:grid;grid-template-columns:1fr 1fr}.card .report-actions button{width:100%}.report-actions button:first-child{grid-column:1/-1}.report-entry{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 12px}.report-table td,.report-table th{padding:12px 8px;font-size:15px}}

.confirm-dialog{width:min(480px,calc(100% - 32px));max-height:calc(100dvh - 40px);overflow:auto;border:1px solid var(--line);border-radius:22px;padding:30px;box-shadow:0 24px 80px #27112433;color:#303030;background:white}.confirm-dialog::backdrop{background:#22192366;backdrop-filter:blur(4px)}.confirm-symbol{display:grid;place-items:center;width:48px;height:48px;border-radius:15px;background:#f3e9f1;color:var(--purple);font-size:28px;font-weight:bold;margin-bottom:20px}.confirm-dialog h2{margin:0 0 12px;font-size:27px}.confirm-dialog p{line-height:1.6;margin:0 0 20px;color:var(--gray)}.confirm-dialog .confirm-context{background:#faf8fa;border:1px solid var(--line);border-radius:12px;padding:14px;font-size:15px;overflow-wrap:anywhere}.confirm-actions{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:26px}.confirm-actions button{margin:0;min-height:48px}.confirm-actions button:focus-visible{outline:3px solid #792e6a55;outline-offset:3px}@media(max-width:380px){.confirm-dialog{padding:24px 20px}.confirm-actions{grid-template-columns:1fr}.confirm-actions [data-confirm-cancel]{grid-row:2}}

/* Reports follow the same project / interval / duration hierarchy as work entries. */
.report-overview{padding:32px}.report-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:24px;margin-bottom:28px}.report-heading h2{font-size:29px;margin:0}.report-heading .eyebrow{margin:0 0 8px}.report-subtitle{color:var(--gray);margin:10px 0 0;line-height:1.6;overflow-wrap:anywhere}.report-count{background:#f5f0f4;color:var(--purple);padding:8px 13px;border-radius:10px;white-space:nowrap;font-size:15px}.report-metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:20px;padding:24px 28px;border:1px solid #ebe2e9;border-radius:16px;background:#faf7fa}.report-metrics>div{display:flex;flex-direction:column;gap:10px}.report-metrics span{color:var(--gray);font-size:16px}.report-metrics strong{font-size:38px;line-height:1.2;color:var(--purple);font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.report-metrics strong.money-value{font-size:32px}.report-section{margin-top:38px}.report-section-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:20px}.report-section-heading h3{margin:0;font-size:23px}.report-section-heading>span{font-size:15px;color:var(--gray);white-space:nowrap}.report-overview .report-table{border:1px solid var(--line);border-radius:12px}.report-overview .report-table th{background:#faf8fa;color:var(--gray);font-size:14px;font-weight:700}.report-overview .report-table td,.report-overview .report-table th{padding:18px 20px;line-height:1.5}.report-overview .report-table tr:last-child td{border-bottom:0}.report-overview .report-number{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}.report-grand{font-weight:700;color:var(--purple);background:#faf7fa}.report-entry-list{display:grid;gap:18px}.report-work-entry{display:grid;grid-template-columns:minmax(0,1fr) minmax(250px,320px);align-items:center;gap:24px;border:1px solid var(--line);border-radius:14px;padding:24px}.report-work-info{min-width:0}.report-work-info h4{font-size:21px;line-height:1.4;margin:0 0 14px;overflow-wrap:anywhere}.report-meta{display:flex;align-items:center;flex-wrap:wrap;gap:10px 14px;color:var(--gray);font-size:15px}.report-meta .date{margin:0;font-size:15px;padding:5px 9px}.report-work-info p{margin:14px 0 0;color:var(--gray);line-height:1.6;overflow-wrap:anywhere}.report-work-time{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:16px;text-align:center}.report-interval{padding:14px 10px;border:1px solid var(--line);border-radius:11px;background:#faf8fa}.report-work-time small,.report-work-money small{display:block;color:var(--gray);font-size:14px;margin-bottom:8px}.report-interval strong{font-size:18px;white-space:nowrap;font-variant-numeric:tabular-nums}.report-duration strong{font-size:32px;color:var(--purple);line-height:1.2;font-variant-numeric:tabular-nums}.report-work-money{grid-column:1/-1;border-top:1px solid var(--line);padding-top:18px;display:flex;justify-content:space-between;gap:20px}.report-work-money>div:last-child{text-align:right}.report-work-money strong{font-size:21px;color:var(--purple);font-variant-numeric:tabular-nums}.report-footnote{margin-top:30px;padding-top:20px;border-top:1px solid var(--line);font-size:14px;line-height:1.7;color:var(--gray)}.report-rate-notice{margin:20px 0 0}.report-attendance-entry{border:1px solid var(--line);border-radius:14px;padding:22px}.report-day-heading{display:flex;justify-content:space-between;gap:16px;margin-bottom:20px}.report-day-heading>strong{font-size:20px}.report-day-heading>span{font-size:14px;color:var(--gray)}.report-day-values{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px}.report-day-values small{display:block;color:var(--gray);margin-bottom:8px}.report-attendance-entry p{margin:18px 0 0;line-height:1.6;color:var(--gray)}.rate-history-title{margin:28px 0 18px}.rate-history{display:grid;grid-template-columns:1fr 1fr auto;gap:18px;align-items:center;padding:18px 0;border-top:1px solid var(--line)}.rate-history label{margin:0}.rate-history button{margin:0;align-self:end}.report-empty{padding:26px;color:var(--gray);background:#faf8fa;border-radius:12px}
@media(max-width:900px){.report-work-entry{grid-template-columns:minmax(0,1fr)}.report-work-time{grid-template-columns:1fr 1fr;max-width:400px;justify-self:stretch}.report-work-money{grid-column:1}}
@media(max-width:760px){.report-overview{padding:22px 18px}.report-heading{gap:12px;margin-bottom:22px}.report-heading h2{font-size:26px}.report-count{font-size:13px;padding:7px 9px}.report-metrics{grid-template-columns:1fr;padding:20px;gap:22px}.report-metrics>div+div{border-top:1px solid #e8dce5;padding-top:20px}.report-metrics strong{font-size:34px}.report-metrics strong.money-value{font-size:29px}.report-section{margin-top:32px}.report-section-heading{margin-bottom:18px}.report-section-heading h3{font-size:21px}.report-overview .report-table th,.report-overview .report-table td{padding:14px 12px;font-size:14px}.report-work-entry{padding:20px 16px;gap:20px}.report-work-info h4{font-size:20px;margin-bottom:12px}.report-meta{gap:9px 12px}.report-work-time{max-width:none;gap:0;border:1px solid var(--line);border-radius:12px;background:#faf8fa;padding:14px 6px}.report-interval{background:none;border:0;padding:4px 8px;border-radius:0}.report-duration{border-left:1px solid #dfd6dd;padding:4px 8px}.report-work-time small{font-size:13px}.report-interval strong{font-size:17px}.report-duration strong{font-size:29px}.report-work-money{gap:12px}.report-work-money small{font-size:13px}.report-work-money strong{font-size:19px}.report-day-values{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 14px}.report-attendance-entry{padding:18px}.rate-history{grid-template-columns:1fr;gap:14px}.rate-history button{width:100%}.report-footnote{margin-top:26px;font-size:13px}}

@media(max-width:760px){.report-overview .report-table{border:0;border-radius:0;overflow:visible}.report-overview .report-table table,.report-overview .report-table tbody{display:block}.report-overview .report-table thead{display:none}.report-overview .report-table tbody{display:grid;gap:12px}.report-overview .report-table tr{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 16px;border:1px solid var(--line);border-radius:12px;padding:18px}.report-overview .report-table td{border:0;padding:0;text-align:left;white-space:normal;overflow-wrap:anywhere;font-size:17px}.report-overview .report-table td:first-child{grid-column:1/-1;font-weight:700}.report-overview .report-table td:nth-child(4):last-child{grid-column:1/-1;border-top:1px solid var(--line);padding-top:14px}.report-overview .report-table td:before{content:attr(data-label);display:block;color:var(--gray);font-size:13px;font-weight:400;margin-bottom:6px}}
