/* Ritme: shared responsive interface over the existing planning workflows. */
:root{--ink:#192c2a;--muted:#697773;--green:#186456;--green-dark:#123f36;--mint:#eaf4ef;--bg:#f5f7f6;--line:#e3e9e6;--amber:#966018;--amber-bg:#fff4df;--radius:16px;--sidebar:246px;--shadow:0 4px 24px #19372c05;--font:-apple-system,BlinkMacSystemFont,"Segoe UI",Inter,Arial,sans-serif}
*{box-sizing:border-box}body.ritme{margin:0;background:var(--bg);color:var(--ink);font:14px/1.55 var(--font);-webkit-font-smoothing:antialiased}body.ritme a{color:var(--green);font-size:inherit;font-weight:500;text-decoration:none}body.ritme a:hover{color:var(--green-dark)}body.ritme h1,body.ritme h2,body.ritme h3,body.ritme p{margin-top:0}body.ritme h1{font-size:32px;line-height:1.2;letter-spacing:-1.2px;font-weight:650;margin-bottom:12px}body.ritme h2{font-size:20px;letter-spacing:-.5px;line-height:1.35;margin-bottom:10px}body.ritme h3{font-size:15px;margin-bottom:4px}svg{width:20px;height:20px;flex-shrink:0;vertical-align:middle}.ritme :focus-visible{outline:3px solid #42a892;outline-offset:3px}.ritme [hidden]{display:none!important}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.skip-link{position:fixed;top:-100px;left:16px;z-index:500;background:white;padding:12px 20px;border-radius:8px}.skip-link:focus{top:12px}.ritme button,.ritme .button,.ritme .button-link{font-family:inherit;font-size:14px;cursor:pointer;min-height:44px;border:1px solid var(--line);border-radius:9px;background:#fff;color:var(--ink);padding:10px 16px;transition:background .16s,box-shadow .16s,transform .16s;line-height:1.3}.ritme button:hover{background:#f0f5f2}.ritme button:active{transform:translateY(1px)}.ritme button:disabled{cursor:wait;opacity:.65}.ritme .primary-button,.ritme button[type=submit],.ritme .action-links .button-link{display:inline-flex;justify-content:center;align-items:center;gap:10px;background:var(--green);border:1px solid var(--green);color:#fff;min-height:46px;padding:11px 19px;border-radius:9px;font-weight:600;white-space:nowrap;box-shadow:0 2px 2px #103f3610}.ritme .primary-button:hover,.ritme button[type=submit]:hover{background:var(--green-dark);border-color:var(--green-dark);color:#fff}.ritme .secondary-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:white;border:1px solid #dce4e0;color:var(--ink);border-radius:9px;min-height:42px;padding:9px 14px;font-weight:550}.ritme .text-button{display:inline-flex;align-items:center;gap:8px;background:transparent;border:0;box-shadow:none;min-height:40px;color:var(--green);padding:8px 4px;font-weight:600;white-space:nowrap}.ritme .icon-button{display:inline-flex;align-items:center;justify-content:center;width:42px;min-width:42px;height:42px;min-height:42px;padding:6px;border:1px solid var(--line);border-radius:9px;font-size:23px;background:white;color:var(--muted)}.ritme input,.ritme select,.ritme textarea{font:inherit;color:var(--ink);background:#fff;border:1px solid #d4ded8;border-radius:8px;padding:11px 12px;min-height:44px;max-width:100%;box-shadow:0 1px 2px #1f412706}.ritme input:focus,.ritme select:focus,.ritme textarea:focus{border-color:var(--green)}.ritme input[type=checkbox],.ritme input[type=radio]{min-height:20px;width:20px;height:20px;accent-color:var(--green);margin:4px 8px 4px 0}.ritme textarea{min-height:110px;resize:vertical}.ritme label{color:#465953;font-size:13px;font-weight:550}.field{display:flex;flex-direction:column;gap:7px;min-width:0}.field input,.field select{width:100%}.eyebrow{font-size:10px;font-weight:700;letter-spacing:1.7px;color:var(--muted);display:block;margin-bottom:12px}.muted-text{color:var(--muted);font-size:13px}.greeting-dot{color:#369d7a}.panel{background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.avatar{width:38px;height:38px;flex-shrink:0;background:#e2eee7;color:#305e4c;border-radius:50%;font-size:15px;font-weight:650;display:inline-flex;align-items:center;justify-content:center}.avatar.small{width:34px;height:34px;font-size:13px}.brand{display:flex;align-items:center;gap:11px!important;color:var(--ink)!important;font-size:29px!important;letter-spacing:-1.4px;font-weight:750!important;line-height:1}.brand-mark{display:inline-flex;align-items:center;justify-content:center;background:var(--green-dark);color:white;width:39px;height:42px;border-radius:12px;font-size:31px;font-weight:600;letter-spacing:-2px;padding-bottom:3px}.brand-mark>span{color:#a4d1b3;align-self:flex-end;font-size:23px;line-height:1;padding:0 0 6px 2px}.brand-sub{display:block;font-size:9px;letter-spacing:.1px;font-weight:450;color:var(--muted);margin-top:7px}
/* Workspace shell */
.app-sidebar{position:fixed;inset:0 auto 0 0;width:var(--sidebar);background:white;border-right:1px solid var(--line);display:flex;flex-direction:column;padding:29px 18px 18px;z-index:60;overflow-y:auto}.app-sidebar .brand{padding:0 10px;margin-bottom:32px}.workspace-label{border:1px solid var(--line);padding:11px 10px;border-radius:8px;font-size:11px;color:#4c5b56;display:flex;align-items:center;gap:8px;margin-bottom:23px}.workspace-dot{width:7px;height:7px;background:#549c77;border-radius:50%}.env-label{margin-left:auto;font-size:8px;color:#7a8782;background:#f0f3f1;padding:2px 5px;border-radius:4px;letter-spacing:.6px}.nav-label{font-size:9px;font-weight:700;letter-spacing:1.5px;color:#8a9690;padding:8px 12px 9px;margin-top:10px}.ritme .nav-item,.nav-group summary{display:flex;align-items:center;gap:12px;padding:11px 12px;min-height:43px;color:#60716a;font-size:13px;font-weight:500;border-radius:8px;margin-bottom:4px;line-height:1.3;background:transparent;border:0;text-align:left;width:100%;cursor:pointer}.nav-item svg,.nav-group svg{width:18px;height:18px}.ritme .nav-item:hover,.nav-group summary:hover{background:#f5f8f6;color:var(--ink)}.ritme .nav-item.is-active{background:var(--mint);color:var(--green);font-weight:650}.nav-group summary{list-style:none}.nav-group summary::-webkit-details-marker{display:none}.chevron{margin-left:auto}.nav-children{margin:3px 0 12px 21px;border-left:1px solid var(--line);padding-left:14px}.ritme .nav-children a{display:block;font-size:12px;color:var(--muted);padding:8px 4px}.sidebar-bottom{margin-top:auto;padding-top:28px}.user-block{display:flex;align-items:center;gap:11px;border-top:1px solid var(--line);padding:18px 5px 0;margin-top:12px}.user-block strong{font-size:12px;display:block;font-weight:600;overflow-wrap:anywhere}.user-block div>span{display:block;font-size:10px;color:var(--muted);margin-top:2px}.app-main{margin-left:var(--sidebar);min-width:0}.app-topbar{height:78px;display:flex;align-items:center;justify-content:space-between;padding:0 38px;border-bottom:1px solid var(--line);background:#fff}.breadcrumb{font-size:12px;color:#86928c;display:flex;gap:10px}.breadcrumb strong{font-weight:550;color:#52655c}.slash{margin-left:10px;color:#bcc8c0}.topbar-actions{display:flex;align-items:center;gap:18px}.today-date{font-size:11px;color:var(--muted)}.topbar-actions .icon-button{border:0}.ritme .app-content{background:transparent;min-height:calc(100dvh - 140px);padding:36px 38px 28px;max-width:1640px;margin:auto;min-width:0}.app-footer{display:flex;justify-content:space-between;padding:10px 38px 22px;color:#88978f;font-size:10px;gap:12px}.mobile-tabbar{display:none}.page-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:27px}.page-heading p{color:var(--muted);font-size:13px;margin-bottom:0;max-width:600px}.page-heading .eyebrow{margin-bottom:11px}.welcome-strip{position:relative;display:flex;align-items:center;gap:16px;background:#edf4ee;border:1px solid #dce9df;border-radius:13px;padding:20px 18px;margin-bottom:32px}.welcome-icon{display:flex;align-items:center;justify-content:center;width:42px;height:42px;border-radius:11px;background:white;color:var(--green);flex-shrink:0}.welcome-strip strong{font-weight:600;font-size:13px}.welcome-strip p{font-size:12px;color:#647a69;margin:3px 0 0}.welcome-strip .text-button{margin-left:auto;font-size:11px;flex-shrink:0}.welcome-strip .icon-button{border:0;background:transparent;font-size:20px;min-width:24px;width:24px;padding:0}
/* Daily agenda */
.workday-toolbar{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:18px}.workday-toolbar .eyebrow{margin-bottom:6px}.workday-toolbar h2{font-size:21px;margin:0;text-transform:none}.date-controls{display:flex;align-items:center;gap:6px}.date-controls .icon-button{font-size:25px;width:34px;min-width:34px}.date-controls .secondary-button{font-size:12px}.date-picker-label input{max-width:150px;min-height:42px;padding:8px;font-size:12px}.week-strip{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px;margin-bottom:21px}.week-strip button{display:flex;flex-direction:column;align-items:center;position:relative;gap:5px;background:white;padding:13px 4px 11px;border-radius:11px;border-color:var(--line);color:var(--muted);min-width:0;min-height:91px;font-size:11px}.week-strip strong{font-size:19px;font-weight:600;color:#4d6258;line-height:1.1}.week-strip small{font-size:9px;display:block;min-height:12px}.week-strip button.is-selected{background:var(--green-dark);border-color:var(--green-dark);color:#c0d9ca;box-shadow:0 4px 8px #163e3817}.week-strip button.is-selected strong{color:white}.week-strip button.is-today:not(.is-selected){border-color:#69a481}.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px;margin-bottom:25px}.metric-card{position:relative;background:white;border:1px solid var(--line);border-radius:13px;padding:19px 20px;min-height:125px;box-shadow:var(--shadow)}.metric-label{font-size:11px;color:var(--muted);display:flex;align-items:center;justify-content:space-between;gap:8px}.metric-label svg{width:16px;height:16px;color:#7f9b8b}.metric-value{font-size:30px;line-height:1.2;letter-spacing:-1px;font-weight:600;margin:12px 0 6px}.metric-card small{color:#89968f;font-size:10px}.metric-card.is-amber .metric-value{color:var(--amber)}.metric-card.is-amber .metric-label svg{color:#bf975b}.dashboard-columns{display:grid;grid-template-columns:minmax(0,1fr) 272px;gap:20px;align-items:start}.agenda-panel{overflow:hidden;min-width:0}.panel-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:22px 23px 17px}.panel-heading h2{font-size:16px;margin:0}.panel-heading span{color:var(--muted);font-size:11px}.segmented-control{display:flex;gap:5px;border-bottom:1px solid var(--line);padding:0 23px}.segmented-control button{font-size:11px;padding:10px 2px;margin-right:18px;color:var(--muted);min-height:39px;border-radius:0;background:transparent;border:0;border-bottom:2px solid transparent}.segmented-control button[aria-pressed=true]{color:var(--green);border-bottom-color:var(--green);font-weight:650}.shift-list{padding:3px 22px}.shift-card{display:flex;align-items:center;gap:16px;padding:20px 0;border-bottom:1px solid #edf1ee;position:relative}.shift-card:last-child{border-bottom:0}.shift-card:before{content:'';height:39px;width:3px;position:absolute;left:0;background:#7ab59a;border-radius:3px}.shift-card.is-open:before{background:#d8aa5d}.shift-time{display:flex;flex-direction:column;min-width:45px;font-size:12px;margin-left:12px;flex-shrink:0;line-height:1.7;font-variant-numeric:tabular-nums}.shift-time strong{font-weight:650}.shift-time span{color:var(--muted);font-size:11px}.shift-info{min-width:0;flex:1}.shift-info a,.shift-info strong{display:block;font-size:13px;font-weight:650!important;color:var(--ink)!important}.shift-info a:hover{text-decoration:underline}.shift-info>span{display:block;color:var(--muted);font-size:11px;margin-top:4px;overflow-wrap:anywhere}.status-pill{display:inline-flex;align-items:center;justify-content:center;gap:5px;font-size:9px;color:#32714f;background:#edf6ef;padding:4px 8px;border-radius:5px;white-space:nowrap}.status-pill.amber{color:#99641e;background:var(--amber-bg)}.status-pill.subtle{color:#6d7885;background:#eef1f6}.shift-card .status-pill{font-size:9px}.shift-card .icon-button{border:0;font-size:18px;min-width:30px;width:30px;color:#99aaa1}.agenda-bottom{border-top:1px solid var(--line);padding:12px 20px;display:flex;justify-content:space-between;color:var(--muted);font-size:10px}.agenda-bottom a{font-size:11px!important}.attention-card{background:#fffaf0;border:1px solid #eee3ca;border-radius:var(--radius);padding:22px}.attention-card .eyebrow{color:#9d7d48;margin-bottom:14px}.attention-card h3{font-size:17px;letter-spacing:-.3px;margin-bottom:10px}.attention-card p{font-size:12px;color:#89764f;margin-bottom:20px;line-height:1.7}.attention-card .secondary-button{width:100%;font-size:11px;background:#fffdf7;border-color:#e7d9bd;color:#82652e}.tip-card{padding:23px 5px 0}.tip-card h3{font-size:11px;font-weight:600;color:#536a5c}.tip-card p{font-size:11px;color:#8b9a90;line-height:1.8}.workflow-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:25px}.workflow-card{display:flex;align-items:center;gap:15px;background:white;border:1px solid var(--line);border-radius:12px;padding:20px;color:var(--ink)!important;transition:border-color .15s,transform .15s}.workflow-card:hover{border-color:#86b5a1;transform:translateY(-2px)}.workflow-card>svg{margin-left:auto;width:17px;color:#7f9889}.workflow-icon{width:39px;height:39px;background:var(--mint);color:var(--green);border-radius:10px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.workflow-icon.amber{background:var(--amber-bg);color:var(--amber)}.workflow-card h3{font-size:12px;font-weight:650}.workflow-card p{font-size:10px;color:var(--muted);margin:0}.empty-state{text-align:center;padding:42px 24px}.empty-state h3,.empty-state h2{font-size:17px}.empty-state p{font-size:12px;color:var(--muted);max-width:340px;margin:9px auto 20px}.empty-state svg{color:#88a596;width:35px;height:35px;margin-bottom:14px}.empty-state .primary-button{font-size:12px}.load-error{padding:35px 25px;text-align:center;border:1px solid #edc6b8;background:#fff9f5;border-radius:12px}.load-error p{color:var(--muted);font-size:12px}
/* Personal planning */
.planning-filters{display:flex;gap:25px;align-items:center;justify-content:space-between;padding:21px;margin-bottom:20px}.planning-filters form{display:flex;align-items:flex-end;gap:15px;flex:1}.planning-filters .field{min-width:130px;max-width:270px;flex:1}.planning-filters label{font-size:11px}.planning-filters select{font-size:12px;width:100%}.planning-filters button{font-size:11px}.planning-person{display:flex;gap:11px;align-items:center;padding-left:25px;border-left:1px solid var(--line);max-width:240px}.planning-person strong{font-size:12px;display:block}.planning-person div>span{font-size:10px;display:block;color:var(--muted)}.planning-actions{display:flex;align-items:center;gap:18px;margin-bottom:17px;font-size:11px;flex-wrap:wrap}.planning-actions>.text-button:first-of-type{margin-left:auto}.planning-actions .text-button{font-size:11px}.personal-agenda{min-height:200px}.agenda-week-heading{display:flex;align-items:center;gap:15px;margin:27px 0 13px}.agenda-week-heading h2{font-size:16px;margin:0}.agenda-week-heading>span{font-size:11px;color:var(--muted)}.agenda-day{display:flex;border:1px solid var(--line);background:white;border-radius:11px;margin-bottom:8px;overflow:hidden}.agenda-day-date{display:flex;align-items:center;justify-content:center;flex-direction:column;flex-shrink:0;width:76px;padding:13px 5px;border-right:1px solid var(--line);color:#779082;background:#fafcfb}.agenda-day-date>span{text-transform:uppercase;font-size:9px;font-weight:600}.agenda-day-date strong{font-size:22px;font-weight:600;line-height:1.2}.agenda-day-date small{font-size:8px;color:var(--green);margin-top:3px}.agenda-day.is-today{border-color:#78aa94}.agenda-day.is-today .agenda-day-date{background:#e9f4ed;color:var(--green)}.agenda-day-shifts{flex:1;min-width:0;padding:0 17px}.personal-shift{display:flex;align-items:center;gap:20px;padding:17px 0;border-bottom:1px solid var(--line)}.personal-shift:last-child{border:0}.personal-shift .shift-time{margin:0}.personal-shift .shift-hours{font-size:11px;white-space:nowrap;color:var(--muted)}.personal-shift .icon-button{border:0;font-size:23px}.day-empty{min-height:67px;display:flex;align-items:center;justify-content:space-between;gap:15px;font-size:11px;color:#94a49a}.day-empty .text-button{font-size:10px;font-weight:500}.day-empty .text-button svg{width:14px}.period-summary{display:flex;justify-content:space-between;padding:24px 3px;color:var(--muted);font-size:12px}.period-summary strong{font-size:24px;color:var(--green);line-height:1.3}.period-summary small{font-weight:400;font-size:12px}.info-notice,.ritme .roster-change{background:#eaf4ee;border:1px solid #d2e7d9;border-radius:9px;padding:13px 16px;color:#3b6c52;font-size:12px;text-align:left;margin-bottom:20px}
/* Legacy screens: retain behavior, give forms and tables a shared visual grammar. */
.ritme .top-part{display:flex;flex-direction:column-reverse;align-items:stretch;gap:20px;margin-bottom:23px}.ritme .top-part .page-title{float:none;display:block;margin:0}.ritme .top-part .page-title h1{margin:0}.ritme .top-part .filter-form{display:block;width:100%;background:#fff;border:1px solid var(--line);border-radius:13px;padding:20px}.ritme .filter-form form{display:flex;align-items:flex-end;gap:13px;flex-wrap:wrap}.ritme .filter-form .input-row{display:flex;flex-direction:column;gap:7px;max-width:260px;flex:1;min-width:160px;margin:0}.ritme .filter-form label{width:auto;font-size:11px}.ritme .top-part .filter-form input[type=text]{width:100%}.ritme .buttons-set{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin:0}.ritme .filter-form .buttons-set{align-self:flex-end}.ritme .overview-table,.ritme .table-container,.ritme .result-part,.ritme .pdf-data{max-width:100%;min-width:0}.table-scroll{overflow:auto;max-width:100%;border:1px solid var(--line);border-radius:13px;background:white;overscroll-behavior-inline:contain;-webkit-overflow-scrolling:touch}.ritme table.data,.ritme table.data-table{width:100%;border-collapse:collapse;border-spacing:0;background:white;margin:0;color:var(--ink);font-size:12px;min-width:620px}.ritme table thead th,.ritme table.data thead th,.ritme table.data-table thead th{background:#f6f9f7;border:0;border-bottom:1px solid var(--line);color:#728578;text-align:left;padding:13px 14px;font-size:10px;font-weight:600;white-space:nowrap;vertical-align:middle}.ritme table.data tbody td,.ritme table.data-table tbody td{padding:14px;border:0;border-bottom:1px solid #eaf0ec;color:#52675a;vertical-align:middle;line-height:1.5;font-size:11px}.ritme table.data tbody tr:nth-child(n),.ritme table.data-table tbody tr:nth-child(n){background:white}.ritme table.data tbody tr:hover,.ritme table.data-table tbody tr:hover,.ritme table.data tbody tr:hover a,.ritme table.data-table tbody tr:hover a{background:#f3f8f4;color:var(--green)}.ritme table tfoot td,.ritme table.data tfoot td,.ritme table.data-table tfoot td{background:#f6f9f7;color:var(--green);padding:13px;font-size:11px;border:0}.ritme table tbody a{display:inline-block;padding:4px 0;min-height:28px}.ritme .action-buttons{margin:21px 0;display:flex;gap:10px}.ritme .action-links{display:flex;align-items:center;flex-wrap:wrap;gap:12px;padding:22px 0 0;clear:both}.ritme .action-links a{display:inline-flex;align-items:center;min-height:42px;padding:8px 14px;background:white;border:1px solid var(--line);border-radius:8px;font-size:12px}.ritme .action-links a[href*='/delete']{color:#a94635;border-color:#edcfc7;background:#fffafa}.ritme .view-data{background:white;border:1px solid var(--line);border-radius:13px;overflow:hidden}.ritme .view-data .view-row{display:grid;grid-template-columns:minmax(170px,30%) 1fr;border-bottom:1px solid #edf1ee}.ritme .view-data .label,.ritme .view-data .value,.ritme .view-data .view-row:nth-child(n) .value{background:white;padding:15px 20px;color:#50685a;font-size:12px;overflow-wrap:anywhere}.ritme .view-data .label{color:#87968b;font-weight:500;font-size:11px}.ritme .view-data .view-row:hover>div{background:#f6f9f7!important;color:inherit!important}.ritme .edit-form,.ritme .edit-form.schedule-form{display:block;width:100%;background:white;border:1px solid var(--line);border-radius:13px;padding:24px;max-width:100%}.ritme .edit-form .edit-row{display:grid;grid-template-columns:minmax(180px,28%) minmax(0,1fr);align-items:start;gap:20px;margin:0;padding:13px 0;border-bottom:1px solid #eff3f0}.ritme .edit-form .edit-row>label,.ritme .edit-form .edit-row:hover>label{background:transparent;color:#5e7465;padding:12px 0;font-size:12px;font-weight:500}.ritme .edit-form .input-entry{background:transparent;color:var(--ink);padding:0;overflow:visible;min-width:0}.ritme .edit-form input[type=text],.ritme .edit-form input[type=password],.ritme .edit-form select{max-width:480px;font-size:13px}.ritme .edit-form textarea{width:100%;max-width:700px}.ritme .calculate-distance{float:none;width:100%;height:auto;background:transparent;margin-top:22px}.ritme .calendar-part{display:flex;gap:18px;flex-wrap:wrap;margin:0 0 22px}.ritme .calendar-part .calendar-item{display:flex;flex-direction:column;gap:7px;width:220px;max-width:100%}.ritme .calendar-part label{font-size:11px;margin:0}.ritme .selectors-top{display:flex;flex-wrap:wrap;gap:20px}.ritme .selector-part{display:flex;flex-wrap:wrap;gap:18px}.ritme .selector-item{min-width:180px}.ritme .selector-item label{display:block;width:auto;margin-bottom:7px}.ritme .new-part-container,.ritme .exisiting-part-container{margin:0 0 27px}.ritme .new-part-container>h2,.ritme .exisiting-part-container>h2{font-size:17px;margin-bottom:18px}.ritme .new-part-container>button{margin-bottom:14px}.ritme .timetable-container .top-part{margin-bottom:26px}.ritme .timetable-container select[multiple]{min-height:160px;width:100%;max-width:100%}.ritme .validation-failed{border:2px solid #bf5445!important;background:#fff9f6!important}.form-error{padding:12px 14px;color:#a44435;border:1px solid #e6c3b9;background:#fff6f3;border-radius:8px;margin-bottom:20px;font-size:12px}.field-error{color:#a44435;font-size:11px;margin-top:5px}.scroll-hint{color:var(--muted);font-size:10px;margin:8px 2px 15px}.table-search{display:flex;justify-content:flex-end;margin:0 0 12px}.table-search input{min-width:220px;font-size:12px;min-height:40px;padding:8px 12px}.ritme .ui-datepicker{border-radius:12px;border:1px solid var(--line);box-shadow:0 10px 30px #19372c25;padding:12px;background:white;z-index:100!important;font-size:12px}.ritme .ui-datepicker-header{border:0;background:var(--mint)}.ritme .ui-datepicker .ui-state-default{background:white;border:0;border-radius:5px;padding:7px}.ritme .ui-datepicker .ui-state-active{background:var(--green);color:#fff}.ritme .popup-container{z-index:120}.ritme .popup-background{position:fixed;inset:0;background:#172b2560;backdrop-filter:blur(3px)}.ritme .popup-content{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);margin:0;border-radius:16px;border:1px solid var(--line);padding:28px;width:min(90vw,640px);max-height:85dvh;overflow:auto;box-shadow:0 24px 70px #102c2440}
/* Sign in */
.ritme.is-login{background:#f7f9f6;min-height:100dvh}.login-brand{position:absolute;left:7%;top:40px;z-index:2}.is-login .app-content{margin:0 auto;max-width:1400px;padding:150px 7% 40px;min-height:100dvh;background:transparent}.login-layout{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(330px,.8fr);align-items:center;gap:9%;min-height:65vh}.login-story h1{font-size:43px;font-weight:600;letter-spacing:-1.8px;line-height:1.18;max-width:530px;margin-bottom:22px}.login-story>.eyebrow{font-size:10px;color:#7d927e;letter-spacing:2px;margin-bottom:19px}.login-story>p{color:#7b897e;font-size:14px;line-height:1.9;max-width:430px}.login-preview{background:#fff;border:1px solid #dee8df;border-radius:15px;box-shadow:0 10px 25px #3d674c08;padding:21px;margin-top:33px;max-width:400px;transform:rotate(-2deg)}.preview-top{font-size:11px;display:flex;justify-content:space-between;color:#526b59;margin-bottom:20px}.preview-dots{color:#b9c8bd;letter-spacing:2px}.preview-days{display:flex;justify-content:space-between;margin-bottom:15px;color:#91a295;font-size:10px}.preview-days>span{padding:7px 17px}.preview-days .selected{background:var(--green-dark);border-radius:6px;color:white}.preview-shift{display:flex;align-items:center;gap:11px;background:#eff5ef;padding:14px 12px;border-radius:8px;margin-top:8px}.preview-line{width:3px;height:30px;background:#75ac87;border-radius:4px}.preview-shift strong{font-size:11px;display:block;font-weight:600}.preview-shift div>span{font-size:9px;color:#8b9d8d}.preview-check{margin-left:auto;color:#6b9d79}.preview-shift.muted{background:#f7f8f4}.preview-shift.muted .preview-line{background:#d8c294}.login-points{display:flex;gap:25px;color:#7f9280;font-size:10px;margin-top:30px}.login-card{background:#fff;border:1px solid #e0e8e0;border-radius:19px;padding:35px 33px 25px;box-shadow:0 15px 50px #2d55350a;max-width:440px;width:100%}.login-symbol{width:42px;height:42px;display:flex;align-items:center;justify-content:center;background:#edf5ee;border-radius:12px;color:var(--green);margin-bottom:24px}.login-card .eyebrow{font-size:9px;letter-spacing:1.5px;color:#8c9d8d;margin-bottom:10px}.login-card h2{font-size:26px;font-weight:600;letter-spacing:-.8px;margin-bottom:9px}.login-card>p{color:#8a998d;font-size:12px;margin-bottom:28px}.modern-login-form .field{margin-bottom:19px;gap:8px}.modern-login-form label{font-size:11px;font-weight:600;color:#566a59}.modern-login-form input{font-size:13px;padding:13px 14px;min-height:48px;border-color:#dce5dd}.modern-login-form input::placeholder{color:#b0bbb2}.password-field{position:relative}.password-field input{padding-right:65px}.ritme .password-field button{position:absolute;right:4px;top:4px;min-height:40px;font-size:10px;border:0;background:transparent;color:#738a79;padding:8px 10px}.ritme .login-submit{width:100%;margin-top:7px;justify-content:space-between;min-height:48px;font-size:12px}.login-card>.login-help{font-size:10px;line-height:1.7;text-align:center;max-width:250px;margin:20px auto;color:#9aa79c}.login-safe{display:flex;align-items:center;justify-content:center;gap:5px;border-top:1px solid #eef2ed;padding-top:20px;color:#a0ada1;font-size:9px}.login-safe svg{width:12px;height:12px}.login-footer{display:flex;align-items:center;gap:20px;font-size:11px;color:#5b7560;position:relative;bottom:auto;left:auto;padding:46px 0 0;margin-top:20px}.login-footer span{color:#a0ada0;font-size:10px}
/* Feedback and accessible dialogs */
.help-dialog{padding:35px;border:1px solid var(--line);border-radius:20px;max-width:490px;width:calc(100% - 30px);color:var(--ink);box-shadow:0 20px 100px #092a3440;max-height:90dvh;overflow:auto}.help-dialog::backdrop{background:#132d2666;backdrop-filter:blur(4px)}.help-dialog h2{font-size:29px;letter-spacing:-1px;font-weight:600}.help-dialog>p{font-size:13px;color:var(--muted);line-height:1.8}.ritme .dialog-close{position:absolute;right:14px;top:14px;border:0;background:transparent}.help-steps{padding:0;counter-reset:step;list-style:none;margin:25px 0}.help-steps li{position:relative;padding:0 0 22px 40px;counter-increment:step}.help-steps li:before{content:counter(step);position:absolute;left:0;top:0;background:var(--mint);color:var(--green);width:27px;height:27px;display:grid;place-items:center;border-radius:8px;font-size:12px}.help-steps strong{display:block;font-size:12px}.help-steps span{display:block;color:var(--muted);font-size:11px;margin-top:4px}.network-banner{position:sticky;top:0;z-index:300;background:#fdf0d8;color:#8b5f1c;font-size:12px;padding:10px 20px;text-align:center}.page-loading{position:fixed;top:0;left:var(--sidebar);right:0;height:3px;background:var(--green);z-index:300;opacity:0;transform:scaleX(0);transform-origin:left}.is-navigating .page-loading{animation:loadbar 1.8s ease-out infinite;opacity:1}.ui-toast{position:fixed;left:calc(50% + 100px);bottom:28px;transform:translateX(-50%);background:#203f33;color:white;padding:12px 20px;border-radius:10px;font-size:12px;z-index:200;box-shadow:0 8px 30px #12382e30;max-width:90vw}.skeleton{position:relative;overflow:hidden;background:#eef3ef;border-radius:8px}.skeleton:after{content:'';position:absolute;inset:0;transform:translateX(-100%);background:linear-gradient(90deg,transparent,#ffffffb0,transparent);animation:shimmer 1.6s infinite}.metric-card.skeleton{background:white}.metric-card.skeleton span,.metric-card.skeleton strong{display:block;background:#edf2ee;border-radius:5px;width:60%;height:10px;margin-bottom:18px}.metric-card.skeleton strong{width:35%;height:24px}.skeleton-row{height:63px;margin:18px 22px}.skeleton-title{height:14px;margin:25px 22px;width:160px}#personal-agenda.is-loading{opacity:.38;pointer-events:none;min-height:300px;transition:opacity .12s}.is-loading .skeleton-row{opacity:1}.enter-fade{animation:enter .24s ease-out}@keyframes shimmer{to{transform:translateX(100%)}}@keyframes enter{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}@keyframes loadbar{0%{transform:scaleX(.06)}90%{transform:scaleX(.9)}100%{transform:scaleX(1)}}
@media(min-width:1600px){.ritme .app-content{padding:42px 60px}.app-topbar{padding:0 60px}.dashboard-columns{grid-template-columns:minmax(0,1fr) 310px}.shift-card{padding:23px 0}.metric-card{padding:24px}.metric-value{font-size:34px}}
@media(max-width:1200px){:root{--sidebar:218px}.app-sidebar{padding:24px 13px 16px}.ritme .app-content{padding:28px 25px}.app-topbar{padding:0 25px}.dashboard-columns{grid-template-columns:minmax(0,1fr) 230px}.metric-card{padding:16px}.page-heading h1{font-size:28px}.planning-person{display:none}.shift-card{gap:11px}.shift-card .status-pill{display:none}.login-layout{gap:6%}.login-story h1{font-size:35px}}
@media(max-width:980px){.dashboard-columns{grid-template-columns:1fr}.dashboard-side{display:grid;grid-template-columns:1fr 1fr;gap:20px}.tip-card{padding:18px 8px}.welcome-strip .text-button{font-size:0;min-width:25px}.metric-grid{gap:10px}.metric-card{padding:15px 13px}.metric-value{font-size:27px}.metric-label{font-size:10px}.metric-label svg{display:none}.workflow-card{padding:17px 13px;gap:10px}.workflow-card p{font-size:9px}.login-preview{max-width:350px}.preview-days>span{padding:6px 12px}.login-layout{gap:5%;grid-template-columns:1fr 1fr}.login-card{padding:29px 25px}}
@media(max-width:760px){:root{--sidebar:0px}.desktop-only{display:none!important}.app-main{margin:0}.app-sidebar{width:272px;transform:translateX(-100%);transition:transform .22s;z-index:120;padding-top:max(25px,env(safe-area-inset-top));padding-bottom:calc(20px + env(safe-area-inset-bottom))}.nav-open .app-sidebar{transform:none}.nav-backdrop{position:fixed;inset:0;border:0!important;background:#122b2666!important;z-index:110;border-radius:0!important;width:100vw;cursor:default}.nav-open{overflow:hidden}.app-topbar{height:62px;padding:0 20px;position:sticky;top:0;z-index:50;background:#ffffffed;backdrop-filter:blur(14px)}.breadcrumb{font-size:14px}.breadcrumb strong{color:var(--ink)}.topbar-actions{gap:12px}.topbar-actions .icon-button{width:36px;min-width:36px}.ritme .app-content{padding:25px 18px 105px;min-height:calc(100dvh - 62px)}.app-footer{display:none}.mobile-tabbar{position:fixed;bottom:0;left:0;right:0;z-index:90;display:flex;align-items:stretch;justify-content:space-around;background:#fffffffa;backdrop-filter:blur(16px);border-top:1px solid #e4ebe5;padding:6px 12px calc(7px + env(safe-area-inset-bottom))}.mobile-tabbar>a,.ritme .mobile-tabbar>button{display:flex;align-items:center;justify-content:center;flex-direction:column;gap:5px;flex:1;min-height:49px;font-size:9px;font-weight:500;color:#92a095;border:0;background:transparent;border-radius:8px;padding:5px 4px}.mobile-tabbar svg{width:21px;height:21px}.mobile-tabbar>a.is-active{color:var(--green);font-weight:650}.mobile-tabbar>a.is-active:before{content:'';position:absolute;top:0;width:24px;height:2px;background:var(--green);border-radius:2px}.page-heading{display:flex;align-items:flex-start;gap:13px;flex-wrap:wrap;margin-bottom:22px}.page-heading h1{font-size:28px;letter-spacing:-1.1px;margin-bottom:10px}.page-heading p{font-size:12px;line-height:1.7}.page-heading .eyebrow{font-size:8px;letter-spacing:1.5px;margin-bottom:10px}.page-heading>.primary-button{font-size:11px;min-height:41px;padding:9px 13px;margin-top:1px}.page-heading>.primary-button svg{width:16px}.welcome-strip{gap:10px;padding:15px 12px;margin-bottom:25px;border-radius:11px;align-items:flex-start}.welcome-icon{width:32px;height:32px;border-radius:8px}.welcome-icon svg{width:17px}.welcome-strip strong{font-size:11px}.welcome-strip p{font-size:10px;line-height:1.7;margin-top:4px}.welcome-strip .text-button{padding:0;margin:0;min-height:28px;min-width:18px}.welcome-strip .text-button svg{width:16px}.welcome-strip .welcome-dismiss{min-width:18px;width:18px;min-height:24px;height:24px;font-size:17px}.workday-toolbar{gap:10px;margin-bottom:15px;align-items:center}.workday-toolbar h2{font-size:17px;letter-spacing:-.5px}.workday-toolbar .eyebrow{font-size:8px;margin-bottom:5px}.date-controls{gap:4px}.date-controls .icon-button{min-width:29px;width:29px;height:36px;min-height:36px;padding:3px;font-size:20px}.date-controls .secondary-button{font-size:10px;min-height:36px;padding:7px 9px}.date-picker-label{width:30px;height:36px;overflow:hidden;position:relative;border:1px solid var(--line);background:white;border-radius:7px}.date-picker-label:before{content:'▦';position:absolute;inset:0;display:grid;place-items:center;font-size:19px;color:var(--muted);pointer-events:none}.date-picker-label input{opacity:0;width:30px;height:36px;padding:0;min-height:36px;cursor:pointer}.week-strip{gap:5px;margin-bottom:17px}.week-strip button{padding:11px 2px 9px;min-height:81px;border-radius:9px;font-size:9px}.week-strip strong{font-size:18px}.week-strip small{font-size:7px}.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:19px}.metric-card{padding:15px 16px;min-height:111px;border-radius:11px}.metric-label{font-size:10px}.metric-label svg{display:block;width:14px;height:14px}.metric-value{font-size:28px;margin:9px 0 4px}.metric-card small{font-size:9px}.dashboard-columns{gap:16px}.agenda-panel{border-radius:12px}.panel-heading{padding:18px 16px 12px}.panel-heading h2{font-size:14px}.panel-heading>span{font-size:9px}.segmented-control{padding:0 16px}.segmented-control button{font-size:10px;min-height:40px}.shift-list{padding:0 15px}.shift-card{gap:12px;padding:18px 0;align-items:center}.shift-time{font-size:11px;min-width:37px;margin-left:11px}.shift-time span{font-size:10px}.shift-info a,.shift-info strong{font-size:12px}.shift-info>span{font-size:10px;line-height:1.6}.shift-card .icon-button{min-width:24px;width:24px;font-size:16px}.agenda-bottom{padding:12px 15px;font-size:9px}.agenda-bottom a{font-size:10px!important}.dashboard-side{display:block}.attention-card{padding:20px;border-radius:12px}.attention-card h3{font-size:16px}.attention-card p{font-size:11px;margin-bottom:15px}.attention-card .eyebrow{font-size:9px}.tip-card{display:none}.workflow-grid{grid-template-columns:1fr;gap:10px;margin-top:18px}.workflow-card{padding:17px 16px;border-radius:11px;gap:13px}.workflow-card h3{font-size:12px}.workflow-card p{font-size:10px}.workflow-card .workflow-icon{width:36px;height:36px}.planning-filters{padding:16px;margin-bottom:15px;border-radius:12px}.planning-filters form{display:grid;grid-template-columns:1fr;gap:14px;width:100%}.planning-filters .field{max-width:none;min-width:0}.planning-filters label{font-size:10px}.planning-filters select{font-size:14px;min-height:46px}.planning-filters button{width:100%;min-height:42px}.planning-actions{gap:8px;margin-bottom:18px}.planning-actions>.muted-text{font-size:10px;width:100%}.planning-actions>.text-button:first-of-type{margin:0}.planning-actions .text-button{font-size:10px;padding:6px}.agenda-week-heading{margin:24px 0 10px}.agenda-week-heading h2{font-size:14px}.agenda-week-heading>span{font-size:10px}.agenda-day{border-radius:10px}.agenda-day-date{width:55px;padding:12px 3px}.agenda-day-date strong{font-size:20px}.agenda-day-date>span{font-size:8px}.agenda-day-date small{font-size:7px}.agenda-day-shifts{padding:0 12px}.personal-shift{flex-wrap:wrap;gap:9px;padding:15px 0}.personal-shift .shift-time{min-width:38px}.personal-shift .shift-info{flex-basis:calc(100% - 65px)}.personal-shift .status-pill{margin-left:47px;font-size:8px}.personal-shift .shift-hours{font-size:10px;margin-left:auto}.personal-shift .icon-button{width:26px;min-width:26px;font-size:18px;height:30px;min-height:30px}.day-empty{align-items:flex-start;flex-direction:column;gap:2px;justify-content:center;min-height:71px;padding:12px 0;font-size:10px}.day-empty .text-button{font-size:9px;padding:5px 0;min-height:28px}.day-empty .muted-text{font-size:9px}.period-summary{font-size:10px;gap:20px}.period-summary>span{max-width:180px}.period-summary strong{font-size:22px}.period-summary small{font-size:10px}.ritme .top-part{gap:16px}.ritme .top-part .filter-form{padding:16px}.ritme .filter-form form{display:grid;grid-template-columns:1fr;width:100%;gap:13px}.ritme .filter-form .input-row{max-width:none;min-width:0;width:100%;gap:6px}.ritme .filter-form .buttons-set{gap:6px}.ritme .filter-form .buttons-set button{flex:1;font-size:11px;padding:10px}.table-search input{width:100%;font-size:14px;min-width:0}.table-search{display:block}.table-scroll.is-card-table{border:0;background:transparent;border-radius:0;overflow:visible}.ritme table.card-table{display:block;min-width:0;background:transparent}.card-table>thead,.card-table>colgroup{display:none}.card-table>tbody{display:grid;gap:12px}.ritme table.card-table tbody tr{display:grid;grid-template-columns:1fr 1fr;background:white!important;border:1px solid var(--line);border-radius:12px;padding:14px;gap:9px 15px}.ritme table.card-table tbody td{display:flex;flex-direction:column;align-items:flex-start;padding:0;border:0;min-width:0;font-size:12px;overflow-wrap:anywhere}.card-table tbody td:before{content:attr(data-label);color:#8c9b90;font-size:9px;line-height:1.4;margin-bottom:4px}.card-table tbody td:first-child{grid-column:1/-1;border-bottom:1px solid #edf1ee!important;padding-bottom:9px!important;margin-bottom:1px}.card-table tbody td:first-child a{font-weight:650}.card-table tbody td.cell-empty{display:none!important}.card-table tbody td[colspan]{grid-column:1/-1}.ritme table.card-table tfoot,.ritme table.card-table tfoot tr,.ritme table.card-table tfoot td{display:block;min-width:0}.ritme table.card-table tfoot td{padding:7px 12px}.ritme .view-data .view-row{grid-template-columns:1fr;gap:0;padding:13px 16px}.ritme .view-data .label,.ritme .view-data .value{padding:0;background:transparent}.ritme .view-data .label{font-size:10px;margin-bottom:5px}.ritme .view-data .value{font-size:13px}.ritme .edit-form{padding:17px}.ritme .edit-form .edit-row{grid-template-columns:1fr;gap:6px;padding:14px 0}.ritme .edit-form .edit-row>label{padding:0;font-size:11px}.ritme .edit-form .input-entry input,.ritme .edit-form .input-entry select{font-size:16px}.ritme .calendar-part{width:100%;display:grid;grid-template-columns:1fr 1fr;gap:12px}.ritme .calendar-part .calendar-item{width:100%;min-width:0}.ritme .calendar-part input{font-size:14px;width:100%}.ritme .selectors-top{display:block}.ritme .selector-part,.ritme .object-part{width:100%}.ritme .action-links{gap:8px;padding-top:18px}.ritme .action-links a,.ritme .action-links button{font-size:12px;padding:10px;min-height:44px}.ritme .action-buttons button{width:100%}.ritme .popup-content{padding:22px}.ritme .popup-content .view-row{display:block}.ritme .popup-content .label,.ritme .popup-content .value{display:block;width:100%;padding:4px}.ui-toast{left:50%;bottom:90px;min-width:230px;font-size:11px}.page-loading{left:0}.help-dialog{padding:30px 24px}.help-dialog h2{font-size:26px}.help-dialog>p{font-size:12px}
/* Mobile sign in */
.login-brand{position:relative;left:auto;top:auto;margin:28px 25px}.is-login .app-content{padding:20px 24px 30px;min-height:auto}.login-layout{display:flex;flex-direction:column;gap:27px;min-height:auto}.login-story{width:100%;text-align:left}.login-story>.eyebrow{font-size:8px;letter-spacing:1.5px;margin-bottom:13px}.login-story h1{font-size:31px;letter-spacing:-1.2px;line-height:1.2;margin-bottom:13px;max-width:400px}.login-story>p{font-size:12px;line-height:1.8;max-width:380px;margin-bottom:0}.login-preview,.login-points{display:none}.login-card{max-width:none;border-radius:16px;padding:25px 23px 19px}.login-symbol{display:none}.login-card .eyebrow{font-size:8px;margin-bottom:8px}.login-card h2{font-size:24px;margin-bottom:8px}.login-card>p{font-size:11px;margin-bottom:23px}.modern-login-form input{font-size:16px;min-height:49px}.modern-login-form label{font-size:11px}.modern-login-form .field{margin-bottom:18px}.ritme .login-submit{font-size:13px;min-height:49px}.login-card>.login-help{font-size:10px;margin:18px auto}.login-footer{font-size:10px;padding:30px 0 0;justify-content:center;margin:0}.login-footer span{font-size:9px}.login-brand .brand-mark{width:34px;height:36px;font-size:27px}.login-brand{font-size:26px!important}.is-login .network-banner{position:fixed;top:0;left:0;right:0}}
@media(max-width:370px){.ritme .app-content{padding-left:13px;padding-right:13px}.page-heading h1{font-size:25px}.welcome-icon{display:none}.date-controls .secondary-button{padding:7px}.workday-toolbar h2{font-size:15px}.week-strip button{font-size:8px}.week-strip small{font-size:6px}.shift-list{padding:0 11px}.shift-card{gap:8px}.login-card{padding:23px 20px}.login-story h1{font-size:28px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.skeleton:after{display:none}.workflow-card:hover{transform:none}}
@media print{.app-sidebar,.app-topbar,.mobile-tabbar,.app-footer,.welcome-strip,.planning-actions,.date-controls,.workflow-grid,.sidebar-bottom,.help-dialog,.network-banner{display:none!important}.app-main{margin:0}.ritme .app-content{padding:0}.ritme .panel,.agenda-day{break-inside:avoid;box-shadow:none}.ritme{background:white}.table-scroll{overflow:visible}}

.personal-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.legacy-heading+.top-part:empty{display:none}.ritme .edit-form .action-links{position:sticky;bottom:12px;background:#fff;border-top:1px solid var(--line);padding:17px 0 6px;margin-top:15px;z-index:10}.dashboard-side{position:sticky;top:22px}
@media(max-width:760px){.shift-info a,.shift-info strong{font-size:14px}.shift-info>span{font-size:12px}.metric-label{font-size:12px}.metric-card small{font-size:10px}.mobile-tabbar>a,.ritme .mobile-tabbar>button{font-size:10px}.planning-filters label{font-size:12px}.day-empty{font-size:12px}.day-empty .text-button{font-size:11px}.personal-shift .status-pill{font-size:10px}.ritme .edit-form .action-links{bottom:76px;padding-bottom:10px}.ritme .edit-form .edit-row>label{font-size:13px}.dashboard-side{position:static}.login-card>p{font-size:13px}.modern-login-form label{font-size:12px}.login-card>.login-help{font-size:11px}.login-story>p{font-size:13px}}
.section-intro{font-size:12px;color:var(--muted);max-width:650px;line-height:1.8}.open-service-actions{display:inline-block;float:right;margin-bottom:14px}.new-part-container .table-container{clear:both}.ritme .new-part-container>.button{font-size:12px;background:var(--green);color:white;border-color:var(--green)}
@media(max-width:760px){.open-service-actions{float:none;display:block}.open-service-actions .secondary-button{font-size:11px}.welcome-strip{align-items:center}.welcome-strip p{display:none}.welcome-strip .welcome-icon{width:30px;height:30px}.welcome-strip .welcome-dismiss{margin-left:3px}.welcome-strip .text-button{margin-left:auto}.welcome-strip{margin-bottom:22px;padding:12px}.page-heading .eyebrow{display:none}.page-heading{margin-bottom:20px}.workday-toolbar h2{max-width:185px;font-size:16px}.week-strip small{font-size:0}.week-strip small:before{content:'•';font-size:12px;line-height:12px}.week-strip button{min-height:76px}.week-strip{margin-bottom:16px}}
.assignment-layout{display:grid;grid-template-columns:minmax(240px,.7fr) minmax(0,1.3fr);gap:24px}.assignment-summary,.assignment-form{padding:28px}.assignment-summary>.status-pill{margin-bottom:19px}.assignment-summary h2{font-size:23px}.assignment-summary dl{margin:25px 0}.assignment-summary dt{font-size:11px;color:var(--muted);margin-top:18px}.assignment-summary dd{font-size:13px;margin:5px 0 0}.assignment-form>p{font-size:12px;line-height:1.9;color:var(--muted);margin:12px 0 25px}.assignment-form .field label{font-size:12px}.assignment-form select{font-size:13px}.travel-details{margin-top:23px;border-top:1px solid var(--line);padding-top:17px}.travel-details summary{font-size:12px;color:#5e7967;cursor:pointer;min-height:38px}.travel-details summary>span{margin-left:10px;font-size:10px;color:#9aaa9d}.travel-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px}.assignment-warning{margin-top:17px}.assignment-form .action-links{margin-top:20px;gap:15px}.assignment-form .action-links a{border:0;font-size:11px}.advanced-planning{display:flex;justify-content:flex-end;align-items:center;flex-wrap:wrap;gap:16px;margin-top:25px;font-size:11px;color:var(--muted)}.advanced-planning .text-button{font-size:11px}
@media(max-width:900px){.assignment-layout{grid-template-columns:1fr}.assignment-summary dl{display:grid;grid-template-columns:95px 1fr;gap:15px;margin:20px 0}.assignment-summary dt,.assignment-summary dd{margin:0}.assignment-summary h2{font-size:21px}}
@media(max-width:760px){.assignment-layout{gap:17px}.assignment-summary,.assignment-form{padding:22px 18px}.assignment-form select,.travel-grid input{font-size:16px;width:100%}.assignment-form .action-links>.primary-button{width:100%;font-size:13px}.assignment-form .action-links{justify-content:center}.assignment-summary dd{font-size:12px}.assignment-form>p{font-size:12px}.advanced-planning{justify-content:flex-start;gap:0}.travel-details summary{font-size:13px}}
.planning-week-nav{display:flex;align-items:center;gap:20px;margin:24px 0 10px;padding:12px 0;background:var(--bg);position:sticky;top:0;z-index:15}.planning-week-nav>span{font-size:11px;color:var(--muted);white-space:nowrap}.planning-week-nav>div{display:flex;gap:5px;overflow:auto;scrollbar-width:none}.planning-week-nav>div::-webkit-scrollbar{display:none}.planning-week-nav button{font-size:11px;padding:9px 14px;min-height:39px;white-space:nowrap;border:1px solid transparent;background:transparent;color:var(--muted)}.planning-week-nav button[aria-pressed=true]{background:white;border-color:var(--line);color:var(--green);font-weight:650;box-shadow:0 1px 4px #163e3808}.week-strip small[data-count="0"]:before{content:''}
@media(max-width:760px){.mobile-tabbar>a,.ritme .mobile-tabbar>button{min-width:0;flex-basis:0}.mobile-tabbar span{white-space:nowrap}.planning-week-nav{display:block;margin-top:18px;top:62px;padding:10px 0;border-bottom:1px solid var(--line)}.planning-week-nav>span{display:none}.planning-week-nav>div{gap:3px}.planning-week-nav button{font-size:11px;padding:9px 12px}.workday-toolbar h2{font-size:15px}.date-controls .icon-button{min-width:34px;width:34px;height:40px;min-height:40px}.date-controls .secondary-button{min-height:40px}.date-picker-label,.date-picker-label input{height:40px}.week-strip button{min-height:76px}.week-strip small:before{font-size:10px}}
.planning-filter-body{display:flex;align-items:center;gap:25px;justify-content:space-between;width:100%;min-width:0}.ritme .planning-filter-toggle{display:none}.page-heading>div{flex:1;min-width:0}.page-heading>a{flex-shrink:0;white-space:nowrap}.ritme .secondary-button{white-space:nowrap}
@media(max-width:760px){.page-heading>div{flex-basis:100%}.planning-filters{display:block;padding:0;overflow:hidden}.planning-filter-body{display:block;padding:17px}.js .ritme .planning-filter-toggle{display:flex;align-items:center;justify-content:space-between;width:100%;border:0;border-radius:0;background:white;min-height:78px;padding:16px 17px;text-align:left;gap:12px}.planning-filter-toggle>span:first-child{display:flex;flex-direction:column;gap:4px;min-width:0}.planning-filter-toggle strong{font-size:13px;line-height:1.4;overflow-wrap:anywhere}.planning-filter-toggle small{font-size:11px;color:var(--muted);font-weight:400}.planning-filter-toggle>span:last-child{font-size:10px;color:var(--green);display:flex;align-items:center;gap:7px}.planning-filter-toggle svg{width:15px}.js .planning-filters:not(.filters-open) .planning-filter-body{display:none}.planning-filters.filters-open .planning-filter-body{border-top:1px solid var(--line)}.planning-actions{margin:10px 0 4px}.planning-week-nav{margin:10px 0 8px}}
.filter-empty{padding:24px 20px;border:1px solid var(--line);background:white;border-radius:12px;color:var(--muted);font-size:12px;text-align:center}
/* Keep secondary information readable against the light surfaces. */
.nav-label,.app-footer,.metric-card small,.week-strip button,.workflow-card p,.tip-card p,.today-date,.agenda-week-heading>span,.login-card>.login-help,.login-footer span,.login-safe{color:#64766b}.ritme input::placeholder{color:#6b7c70}.metric-label,.day-empty,.planning-person div>span,.preview-shift div>span{color:#63776a}.mobile-tabbar>a,.ritme .mobile-tabbar>button{color:#64796b}.mobile-tabbar>a.is-active{color:var(--green)}
@media(max-width:760px){.ritme table.card-table tbody td{font-size:14px}.card-table tbody td:before{font-size:11px}.shift-time span{font-size:11px}}

.ritme .nav-children a.is-active{background:var(--mint);color:var(--green);font-weight:650;border-radius:6px;padding-left:8px}

/* Preserve the original synchronized assignment grid and all its controls. */
.ritme .table-overview{display:flex;position:relative;max-width:100%;align-items:flex-start;overflow:hidden}
.ritme .table-overview>.left-side{float:none;flex:0 0 30%;width:30%;min-width:0}
.ritme .table-overview>.right-side{float:none;flex:1;min-width:0;width:70%;overflow-x:auto}
.ritme .table-overview table{margin:0;border-radius:0;table-layout:auto}
.ritme #timetable-table-left{min-width:0;width:100%}
.ritme #timetable-table-left td,.ritme #timetable-table-left th{padding:8px 5px;white-space:normal}
.ritme #timetable-table-left td:nth-child(2),.ritme #timetable-table-left td:nth-child(3){min-width:42px!important}
.ritme #timetable-table-right td,.ritme #timetable-table-right th{padding:8px 5px}
.ritme .table-overview .drag-item{box-sizing:content-box;touch-action:none;cursor:grab}
.ritme .week-summary{display:flex;justify-content:space-between;padding:14px 18px;color:var(--muted);border-top:1px solid var(--line)}
.ritme .week-summary[hidden]{display:none}.ritme .agenda-day.is-holiday{background:#fff8e6}.ritme .personal-shift.admin-only{border-left:3px solid #c7a2df}.ritme .exception-link{color:#b53035!important;text-decoration:underline}
.ritme .profile-contact>div{display:grid;grid-template-columns:125px 1fr;gap:12px;padding:8px 0}.ritme .profile-contact dt{color:var(--muted)}.ritme .profile-contact dd{margin:0;overflow-wrap:anywhere}
@media(max-width:760px){.ritme .table-overview>.left-side{flex-basis:160px;width:160px}.ritme #timetable-table-left{font-size:11px}.ritme #timetable-table-left th{font-size:10px;letter-spacing:0}.ritme .topbar-actions .expire-notice{font-size:11px;padding:5px}}

.ritme .matrix-touch-controls{display:grid;grid-template-columns:auto minmax(100px,1fr) auto minmax(100px,1fr) auto;align-items:center;gap:10px;padding:14px;margin-bottom:16px}.ritme .matrix-touch-controls select{min-width:0;width:100%}
@media(max-width:760px){.ritme .matrix-touch-controls{grid-template-columns:65px minmax(0,1fr)}.ritme .matrix-touch-controls button{grid-column:2}.ritme .matrix-touch-controls label{font-size:12px}}
@media(max-width:1200px){.ritme .planning-filter-body{flex-wrap:wrap}.ritme .planning-person{display:flex;border:0;padding:10px 0 0;max-width:none}.ritme .planning-filters form{min-width:0}}

.ritme .table-overview .drag-item{min-height:32px;width:150px;display:flex;align-items:center;line-height:20px;gap:3px}.ritme .table-overview .drag-item input[type=checkbox]{padding:0;margin:0 4px 0 0;flex-shrink:0}.ritme #timetable-table-right td{min-width:165px!important}
.ritme #timetable-table-right .drag-item{width:150px;white-space:nowrap}

/* Compact page headers and filter toolbars; keep workflow controls available. */
@media screen {
  .is-authenticated .app-topbar {height:52px;padding:0 26px}
  .is-authenticated .app-content {padding:16px 26px 28px;min-height:calc(100dvh - 114px)}
  .is-authenticated .page-heading {gap:12px;margin-bottom:12px;align-items:center;flex-wrap:wrap}
  .is-authenticated .page-heading>div {flex:1 1 0;min-width:0}
  .is-authenticated .page-heading .eyebrow,
  .is-authenticated .page-heading p {display:none}
  .is-authenticated .page-heading h1 {font-size:24px;line-height:1.25;letter-spacing:-.6px;margin:0}
  .is-authenticated .page-heading>.primary-button,
  .is-authenticated .page-heading>.secondary-button {font-size:12px;min-height:36px;padding:7px 12px;margin:0}
  .is-authenticated .page-heading>a svg {width:16px;height:16px}
  .is-authenticated .planning-filters {gap:12px;padding:10px 12px;margin-bottom:4px;border-radius:10px}
  .is-authenticated .planning-filter-body {gap:12px;flex-wrap:nowrap}
  .is-authenticated .planning-filters form {gap:12px;align-items:center;min-width:0}
  .is-authenticated .planning-filters .field {flex-direction:row;align-items:center;gap:8px;min-width:0;max-width:none}
  .is-authenticated .planning-filters label {white-space:nowrap;font-size:11px}
  .is-authenticated .planning-filters select {min-width:100px;min-height:36px;padding:7px 9px}
  .is-authenticated .planning-filters button:not(.planning-filter-toggle) {min-height:36px;padding:7px 10px;white-space:nowrap}
  .is-authenticated .planning-person {padding:0 0 0 10px;border-left:1px solid var(--line);max-width:none;flex-shrink:0}
  .is-authenticated .planning-person .avatar,
  .is-authenticated .planning-person strong {display:none}
  .is-authenticated .planning-person button {font-size:10px}
  .is-authenticated .planning-actions {gap:12px;margin:0;min-height:32px}
  .is-authenticated .planning-actions>.muted-text {display:none}
  .is-authenticated .planning-actions .text-button {min-height:32px;padding:4px 0}
  .is-authenticated .planning-week-nav {gap:12px;margin:4px 0 0;padding:4px 0}
  .is-authenticated .planning-week-nav button {min-height:36px;padding:7px 12px}
  .is-authenticated .agenda-week-heading {gap:12px;margin:12px 0 8px}
  .is-authenticated .agenda-week-heading h2 {font-size:16px;line-height:1.4;margin:0}
  .is-authenticated .top-part {gap:10px;margin-bottom:12px}
  .is-authenticated .top-part .filter-form {padding:10px 12px;border-radius:10px}
  .is-authenticated .top-part .filter-form input,
  .is-authenticated .top-part .filter-form select,
  .is-authenticated .top-part .filter-form button {min-height:36px;padding:7px 10px}
  .is-authenticated .top-part:has(>.clearer:only-child) {display:none}
  .is-authenticated .section-intro {margin:4px 0 10px;line-height:1.5}
  .is-authenticated .welcome-strip {gap:10px;padding:8px 12px;margin-bottom:12px;border-radius:10px}
  .is-authenticated .welcome-strip p {display:none}
  .is-authenticated .welcome-strip .welcome-icon {width:28px;height:28px}
  .is-authenticated .welcome-strip .icon-button {min-height:32px;height:32px}
  .is-authenticated .workday-toolbar {margin-bottom:10px}
  .is-authenticated .workday-toolbar .eyebrow {display:none}
  .is-authenticated .workday-toolbar h2 {font-size:18px}
}
@media screen and (max-width:1100px) and (min-width:761px) {
  .is-authenticated .planning-filter-body {flex-wrap:wrap;gap:2px}
  .is-authenticated .planning-filters form {flex-basis:100%}
  .is-authenticated .planning-person {border:0;padding:0;margin-left:auto}
}
@media screen and (max-width:760px) {
  .is-authenticated .app-topbar {height:52px;padding:0 16px}
  .is-authenticated .app-content {padding:12px 16px 100px;min-height:calc(100dvh - 52px)}
  .is-authenticated .page-heading {gap:8px;margin-bottom:10px}
  .is-authenticated .page-heading h1 {font-size:22px}
  .is-authenticated .page-heading>.primary-button,
  .is-authenticated .page-heading>.secondary-button {font-size:11px;min-height:40px;padding:8px 10px}
  .is-authenticated .planning-filters {padding:0;margin-bottom:2px}
  .js .is-authenticated .planning-filter-toggle {min-height:56px;padding:9px 12px}
  .is-authenticated .planning-filter-toggle strong {font-size:12px}
  .is-authenticated .planning-filter-toggle small {font-size:10px}
  .is-authenticated .planning-filter-body {padding:12px}
  .is-authenticated .planning-filters form {grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;align-items:end}
  .is-authenticated .planning-filters .field {flex-direction:column;align-items:stretch;gap:4px}
  .is-authenticated .planning-filters select {font-size:16px;min-height:44px;min-width:0}
  .is-authenticated .planning-filters form>button {grid-column:1/-1;min-height:40px}
  .is-authenticated .planning-person {padding:4px 0 0;border:0}
  .is-authenticated .planning-person button {width:auto;min-height:40px}
  .is-authenticated .planning-actions {gap:12px;min-height:40px}
  .is-authenticated .planning-actions .text-button {min-height:40px}
  .is-authenticated .planning-week-nav {top:52px;margin:2px 0 0;padding:4px 0}
  .is-authenticated .planning-week-nav button {min-height:40px;padding:8px 11px}
  .is-authenticated .agenda-week-heading {margin:10px 0 8px}
  .is-authenticated .top-part .filter-form input,
  .is-authenticated .top-part .filter-form select,
  .is-authenticated .top-part .filter-form button {min-height:44px}
  .is-authenticated .top-part .filter-form input {font-size:16px}
  .is-authenticated .welcome-strip {margin-bottom:10px;padding:6px 10px}
  .is-authenticated .workday-toolbar h2 {font-size:16px}
}
@media screen and (min-width:761px) {
  /* Profile access already exists in the top bar; avoid a second filter row. */
  .is-authenticated .planning-person {display:none}
}
@media screen and (min-width:761px) and (max-width:1100px) {
  .is-authenticated .planning-filters form {flex-wrap:wrap}
  .is-authenticated .planning-filters .field {min-width:170px}
}
@media screen {
  .is-authenticated .breadcrumb {min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
  .is-authenticated .topbar-actions {flex-shrink:0;gap:10px}
}
@media screen and (min-width:761px) and (max-width:1100px) {
  .is-authenticated .today-date,
  .is-authenticated .breadcrumb>.desktop-only {display:none}
}
@media screen and (max-width:760px) {
  .is-authenticated .planning-filters form>button[type=submit],
  .is-authenticated .planning-person button[type=button] {min-height:44px}
}

/* Week selection reads as a compact group of buttons, including before selection. */
@media screen {
  .is-authenticated .planning-week-nav {gap:12px}
  .is-authenticated .planning-week-nav>span {font-weight:600;color:#405e52}
  .is-authenticated .planning-week-nav>div {
    gap:6px;padding:5px;min-width:0;max-width:100%;
    background:#eaf1ed;border:1px solid #d9e5de;border-radius:12px;
    scrollbar-width:thin;scrollbar-color:#b7cbc0 transparent;scroll-padding:5px;
  }
  .is-authenticated .planning-week-nav>div::-webkit-scrollbar {display:block;height:4px}
  .is-authenticated .planning-week-nav>div::-webkit-scrollbar-thumb {background:#b7cbc0;border-radius:4px}
  .is-authenticated .planning-week-nav button {
    display:inline-flex;align-items:center;justify-content:center;gap:6px;flex-shrink:0;
    min-height:36px;padding:7px 13px;border:1px solid #c8d8cf;border-radius:8px;
    background:#fff;color:#355c4d;font-size:12px;font-weight:600;cursor:pointer;
    box-shadow:0 1px 2px #19372c0a;
  }
  .is-authenticated .planning-week-nav button:hover {background:#f0f8f3;border-color:#6b9f86;color:#164f3e}
  .is-authenticated .planning-week-nav button[aria-pressed=true] {
    background:var(--green);border-color:var(--green);color:#fff;
    box-shadow:0 2px 4px #163e3824;
  }
  .is-authenticated .planning-week-nav button[aria-pressed=true]::before {content:'✓';font-size:12px;font-weight:700}
  .is-authenticated .planning-week-nav button:focus-visible {outline:3px solid #42a892;outline-offset:2px}
}
@media screen and (max-width:760px) {
  .is-authenticated .planning-week-nav button {min-height:44px;padding:9px 12px;font-size:11px}
}

/* Consistent native selects: preserve options, form submission and change events. */
.ritme select {border-color:#c8d8cf;border-radius:9px;box-shadow:0 1px 2px #19372c08;cursor:pointer;transition:border-color .15s,box-shadow .15s,background-color .15s}
.ritme select:hover:not(:disabled) {border-color:#83a994;background-color:#fcfefd}
.ritme select:focus-visible {outline:3px solid #42a89255;outline-offset:2px;border-color:var(--green)}
.ritme select:disabled {background:#f0f3f1;border-color:#dce4df;color:#7a8881;cursor:not-allowed;box-shadow:none}
.ritme select[multiple],.ritme select[size]:not([size="0"]):not([size="1"]) {padding:5px;scrollbar-width:thin;scrollbar-color:#b8cdc1 #f4f8f5}
.ritme select[multiple] option {padding:9px 12px;border-radius:6px}
.ritme select[multiple] option:checked {background:#e3f1e9;color:#164e3d}
@supports (appearance:base-select) {
  .ritme select:where(:not([multiple])):where(:not([size]),[size="0"],[size="1"]),
  .ritme select:where(:not([multiple])):where(:not([size]),[size="0"],[size="1"])::picker(select) {appearance:base-select}
  .ritme select:where(:not([multiple])):where(:not([size]),[size="0"],[size="1"]) {align-items:center;gap:10px;min-inline-size:0}
  .ritme .selector-item select,.ritme .result_type select,.ritme .employee-adder select {min-inline-size:min(180px,100%)}
  .ritme select::picker-icon {color:#537565;font-size:12px;margin-inline-start:auto;transition:rotate .15s}
  .ritme select:open {border-color:var(--green);box-shadow:0 0 0 3px #18645614;background:#fff}
  .ritme select:open::picker-icon {rotate:180deg}
  .ritme select::picker(select) {
    margin-block:6px;padding:5px;background:#fff;color:var(--ink);
    border:1px solid #d2e0d7;border-radius:12px;box-shadow:0 12px 32px #19372c24,0 2px 6px #19372c0d;
    font:13px/1.5 var(--font);max-block-size:min(340px,calc(100dvh - 100px));
    min-inline-size:anchor-size(width);max-inline-size:calc(100vw - 24px);
    overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#b8cdc1 transparent;
  }
  .ritme select:not([multiple]) option {
    display:flex;align-items:center;gap:12px;min-block-size:38px;padding:8px 12px;
    margin:1px 0;border:0;border-radius:7px;background:#fff;color:var(--ink);
    font:inherit;white-space:normal;overflow-wrap:anywhere;cursor:pointer;
  }
  .ritme select:not([multiple]) option:hover,
  .ritme select:not([multiple]) option:focus {background:#f0f6f2;outline:none}
  .ritme select:not([multiple]) option:checked {background:#e2f1e9;color:#15573f;font-weight:600}
  .ritme select:not([multiple]) option:checked:hover,
  .ritme select:not([multiple]) option:checked:focus {background:#d4eadd}
  .ritme select:not([multiple]) option::checkmark {order:1;margin-inline-start:auto;content:'✓';color:var(--green);font-weight:700}
  .ritme select:not([multiple]) option:disabled {background:#f8faf9;color:#8a9690;cursor:not-allowed;font-weight:400}
  .ritme select optgroup {padding:4px 0;color:#607569;font-size:11px;font-weight:600}
}
@media(max-width:760px) {
  .ritme select {font-size:16px}
  .ritme select::picker(select) {font-size:16px;max-block-size:min(380px,calc(100dvh - 100px))}
  .ritme select:not([multiple]) option {min-block-size:44px;padding:10px 12px}
}
@supports (appearance:base-select) {
  .ritme select:not([multiple]):where(:not([size]),[size="0"],[size="1"]) {white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
}
@supports (appearance:base-select) {
  .ritme select::picker(select) {min-inline-size:max(anchor-size(width),220px)}
}
@media(max-width:760px) {
  .ritme .edit-form select {font-size:16px}
}

/* Consistent decorative action icons; labels remain visible and accessible. */
.ritme .has-action-icon {display:inline-flex;align-items:center;justify-content:center;gap:7px}
.ritme .has-action-icon>svg {width:16px;height:16px;flex-shrink:0;pointer-events:none}
.ritme a.has-action-icon {justify-content:flex-start;vertical-align:middle}
.ritme .buttons-set button.has-action-icon {padding-inline:8px;gap:5px}
.ritme .page-title-icon {display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;vertical-align:-5px;margin-right:9px;border-radius:8px;background:#e6f1ea;color:var(--green);border:1px solid #d7e7dd}
.ritme .page-title-icon svg {width:17px;height:17px;pointer-events:none}
.ritme .has-field-icon {display:flex;align-items:center;gap:6px}
.ritme .has-field-icon svg {width:14px;height:14px;flex-shrink:0;color:#5d7c6b;pointer-events:none}
.ritme .nav-children a>svg {width:15px;height:15px;margin-right:8px;vertical-align:-3px;pointer-events:none}
.ritme .table-search {position:relative}
.ritme .table-search>svg {position:absolute;left:12px;top:50%;transform:translateY(-50%);width:17px;height:17px;color:#6e8979;pointer-events:none}
.ritme .table-search>input {padding-inline-start:37px}
.ritme .topbar-actions .has-action-icon>svg {width:14px;height:14px}
@media(max-width:760px){.ritme .buttons-set button.has-action-icon>svg{width:14px;height:14px}.ritme .page-title-icon{width:26px;height:26px;margin-right:7px}.ritme .has-action-icon{gap:6px}}
@media print{.ritme .page-title-icon{background:transparent;border:0}}
.ritme .table-search {display:grid;grid-template-columns:minmax(0,220px);justify-content:end}
.ritme .table-search>input {grid-area:1/1;width:100%;min-width:0}
.ritme .table-search>svg {grid-area:1/1;position:relative;left:auto;top:auto;transform:none;align-self:center;margin-left:12px;z-index:1}
@media(max-width:760px){.ritme .table-search{grid-template-columns:minmax(0,1fr)}}

/* Read-only filters apply directly; keep submit available when JavaScript is off. */
.js .ritme [data-async-filter].is-instant-filter>button[type=submit] {display:none}
.ritme .filter-reset {font-size:11px;color:var(--green);white-space:nowrap}
.ritme .filter-reset>svg {width:15px;height:15px;flex-shrink:0}
.ritme .planning-filters .filter-reset {margin-left:auto;padding:7px 4px;min-height:36px}
.ritme .page-heading>.filter-reset {font-size:12px;min-height:36px}
.ritme .overview-table.is-loading {opacity:.55;pointer-events:none;transition:opacity .15s}
@media(max-width:760px){.ritme .planning-filters .filter-reset{grid-column:1/-1;margin-left:0;min-height:44px}.ritme .filter-form .buttons-set:has(button[hidden]){justify-content:flex-end}.ritme .filter-form .buttons-set button:not([hidden]){flex:0 1 auto;min-height:44px;padding-inline:12px}.ritme .page-heading>.filter-reset{min-height:44px}}

/* Employee directory: quiet surfaces, clear names and the original fields/actions. */
.ritme :is(.employees-overview,.objects-overview,.customers-overview,.rates-overview) {display:grid;grid-template-columns:minmax(0,1fr) minmax(220px,280px);border:1px solid var(--line);border-radius:14px;background:#fff;box-shadow:0 3px 14px #19372c04;overflow:clip}
.ritme :is(.employee-list-heading,.object-list-heading,.customer-list-heading,.rate-list-heading) {grid-area:1/1;display:flex;flex-direction:column;justify-content:center;gap:3px;padding:16px 18px;min-width:0}
.ritme :is(.employee-list-heading,.object-list-heading,.customer-list-heading,.rate-list-heading) strong {color:var(--ink);font-size:13px;font-weight:650}
.ritme :is(.employee-list-heading,.object-list-heading,.customer-list-heading,.rate-list-heading)>span {color:#73877b;font-size:11px}
.ritme :is(.employees-overview,.objects-overview,.customers-overview,.rates-overview)>.table-search {grid-area:1/2;align-self:center;margin:0;padding:12px 16px 12px 0;grid-template-columns:minmax(0,1fr)}
.ritme :is(.employees-overview,.objects-overview,.customers-overview,.rates-overview)>.table-search input {height:38px;border-radius:9px;background:#f8faf9;font-size:12px}
.ritme :is(.employees-overview,.objects-overview,.customers-overview,.rates-overview)>.table-scroll {grid-column:1/-1;border:0;border-top:1px solid #e5ede8;border-radius:0;scrollbar-width:thin;scrollbar-color:#c4d6ca #f5f8f6}
.ritme :is(.employees-overview,.objects-overview,.customers-overview,.rates-overview) :is(.employee-table,.object-table,.customer-table,.rate-table) {min-width:1110px;table-layout:auto}
.ritme :is(.employees-overview,.objects-overview,.customers-overview,.rates-overview) :is(.employee-table,.object-table,.customer-table,.rate-table) thead th {padding:12px 14px;background:#f5f8f6;color:#647c6e;font-size:10px;font-weight:650;letter-spacing:.015em}
.ritme :is(.employees-overview,.objects-overview,.customers-overview,.rates-overview) :is(.employee-table,.object-table,.customer-table,.rate-table) thead th:not(.sorttable_nosort) {cursor:pointer}
.ritme :is(.employees-overview,.objects-overview,.customers-overview,.rates-overview) :is(.employee-table,.object-table,.customer-table,.rate-table) thead th:not(.sorttable_nosort):hover {background:#e8f2ec;color:var(--green)}
.ritme :is(.employees-overview,.objects-overview,.customers-overview,.rates-overview) :is(.employee-table,.object-table,.customer-table,.rate-table) tbody tr:nth-child(n) {background:#fff!important}
.ritme :is(.employees-overview,.objects-overview,.customers-overview,.rates-overview) :is(.employee-table,.object-table,.customer-table,.rate-table) tbody tr:nth-child(even) {background:#fafcfb!important}
.ritme :is(.employees-overview,.objects-overview,.customers-overview,.rates-overview) :is(.employee-table,.object-table,.customer-table,.rate-table) tbody tr:hover,.ritme :is(.employees-overview,.objects-overview,.customers-overview,.rates-overview) :is(.employee-table,.object-table,.customer-table,.rate-table) tbody tr:focus-within {background:#edf6f0!important}
.ritme :is(.employees-overview,.objects-overview,.customers-overview,.rates-overview) :is(.employee-table,.object-table,.customer-table,.rate-table) tbody td {padding:13px 14px;border-bottom:1px solid #eaf0ec;font-size:12px;color:#5a7063;white-space:nowrap}
.ritme :is(.employees-overview,.objects-overview,.customers-overview,.rates-overview) :is(.employee-table,.object-table,.customer-table,.rate-table) tbody tr:last-child td {border-bottom:0}
.ritme .employee-name-content {display:inline-flex;align-items:center;gap:10px}
.ritme .employee-name-content strong,.ritme :is(.employees-overview,.objects-overview,.customers-overview,.rates-overview) :is(.employee-table,.object-table,.customer-table,.rate-table) .employee-first-name {color:#244336;font-weight:600}
.ritme .employee-initials {display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:30px;height:30px;background:#e8f1ec;border:1px solid #dae8df;border-radius:9px;color:#527662;font-size:10px;font-weight:650;letter-spacing:.025em}
.ritme .employee-initials::before {content:attr(data-initial)}
.ritme :is(.employees-overview,.objects-overview,.customers-overview,.rates-overview) :is(.employee-table,.object-table,.customer-table,.rate-table) tbody td:first-child a {display:inline-flex;align-items:center;gap:6px;min-height:32px;padding:5px 9px;border:1px solid #dce8e0;border-radius:7px;background:#fff;color:var(--green);font-size:11px;font-weight:600;text-decoration:none;white-space:nowrap}
.ritme :is(.employees-overview,.objects-overview,.customers-overview,.rates-overview) :is(.employee-table,.object-table,.customer-table,.rate-table) tbody td:first-child a:hover {border-color:#7ca68c;background:#f0f8f3}
.ritme :is(.employees-overview,.objects-overview,.customers-overview,.rates-overview) :is(.employee-table,.object-table,.customer-table,.rate-table) tbody td:first-child a:focus-visible {outline:3px solid #42a892;outline-offset:2px}
.ritme :is(.employees-overview,.objects-overview,.customers-overview,.rates-overview) :is(.employee-table,.object-table,.customer-table,.rate-table) tbody td:first-child a>svg {width:14px;height:14px}
.ritme :is(.employee-badge,.object-status-badge,.customer-status-badge) {display:inline-flex;align-items:center;gap:6px;min-width:42px;padding:3px 8px;border-radius:6px;font-size:10px;font-weight:600;line-height:1.5}
.ritme :is(.employee-badge,.object-status-badge,.customer-status-badge)::before {content:'';width:5px;height:5px;border-radius:50%;background:currentColor;opacity:.8}
.ritme :is(.employee-badge,.object-status-badge,.customer-status-badge).is-active {background:#e4f2e9;color:#287044}
.ritme :is(.employee-badge,.object-status-badge,.customer-status-badge).is-admin {background:#edf0fa;color:#596b9b}
.ritme :is(.employee-badge,.object-status-badge,.customer-status-badge).is-neutral {background:#f0f3f1;color:#748179}
.ritme :is(.employees-overview,.objects-overview,.customers-overview,.rates-overview) :is(.employee-table,.object-table,.customer-table,.rate-table) tfoot td {border-top:1px solid var(--line);padding:16px 18px;background:#f8faf9}
.ritme :is(.employees-overview,.objects-overview,.customers-overview,.rates-overview)>.filter-empty {grid-column:1/-1;margin:0;padding:22px 18px;background:#f8fbf9;border-top:1px solid var(--line)}
@media(max-width:760px) {
 .ritme :is(.employees-overview,.objects-overview,.customers-overview,.rates-overview) {grid-template-columns:minmax(0,1fr);border:0;border-radius:0;background:transparent;box-shadow:none;overflow:visible}
 .ritme :is(.employee-list-heading,.object-list-heading,.customer-list-heading,.rate-list-heading) {padding:2px 0 12px;flex-direction:row;align-items:center;justify-content:space-between;gap:8px}
 .ritme :is(.employee-list-heading,.object-list-heading,.customer-list-heading,.rate-list-heading) strong {font-size:12px}
 .ritme :is(.employee-list-heading,.object-list-heading,.customer-list-heading,.rate-list-heading)>span {font-size:10px}
 .ritme :is(.employees-overview,.objects-overview,.customers-overview,.rates-overview)>.table-search {grid-area:auto;padding:0;margin:0 0 12px}
 .ritme :is(.employees-overview,.objects-overview,.customers-overview,.rates-overview)>.table-search input {height:44px;background:#fff;font-size:16px}
 .ritme :is(.employees-overview,.objects-overview,.customers-overview,.rates-overview)>.table-scroll {border:0}
 .ritme :is(.employees-overview,.objects-overview,.customers-overview,.rates-overview) :is(.employee-table,.object-table,.customer-table,.rate-table) {min-width:0}
 .ritme :is(.employees-overview,.objects-overview,.customers-overview,.rates-overview) :is(.employee-table,.object-table,.customer-table,.rate-table) tbody {gap:12px}
 .ritme :is(.employees-overview,.objects-overview,.customers-overview,.rates-overview) :is(.employee-table,.object-table,.customer-table,.rate-table) tbody tr:nth-child(n) {padding:16px;border-radius:13px;box-shadow:0 2px 8px #19372c04;gap:12px 16px;background:#fff!important}
 .ritme :is(.employees-overview,.objects-overview,.customers-overview,.rates-overview) :is(.employee-table,.object-table,.customer-table,.rate-table) tbody td {padding:0;border:0;white-space:normal;font-size:13px}
 .ritme :is(.employees-overview,.objects-overview,.customers-overview,.rates-overview) :is(.employee-table,.object-table,.customer-table,.rate-table) tbody td:first-child {flex-direction:row;justify-content:space-between;align-items:center;padding-bottom:12px!important;margin-bottom:0}
 .ritme :is(.employees-overview,.objects-overview,.customers-overview,.rates-overview) :is(.employee-table,.object-table,.customer-table,.rate-table) tbody td:first-child::before {margin:0;color:#637f6d;font-size:11px;font-weight:600}
 .ritme :is(.employees-overview,.objects-overview,.customers-overview,.rates-overview) :is(.employee-table,.object-table,.customer-table,.rate-table) tbody td:first-child a {min-height:44px;padding:10px 12px;font-size:12px}
 .ritme .employee-name-content {gap:7px;max-width:100%}
 .ritme .employee-name-content strong {overflow-wrap:anywhere;min-width:0}
 .ritme .employee-initials {width:26px;height:26px;border-radius:8px;font-size:9px}
 .ritme :is(.employee-badge,.object-status-badge,.customer-status-badge) {padding:4px 9px;font-size:11px}
 .ritme :is(.employees-overview,.objects-overview,.customers-overview,.rates-overview) :is(.employee-table,.object-table,.customer-table,.rate-table) tfoot td {border:0;padding:14px 0;background:transparent}
 .ritme :is(.employees-overview,.objects-overview,.customers-overview,.rates-overview)>.filter-empty {padding:18px;border:1px solid var(--line);border-radius:12px}
}
@media print {
 .ritme :is(.employees-overview,.objects-overview,.customers-overview,.rates-overview) {display:block;border:0;overflow:visible}
 .ritme :is(.employees-overview,.objects-overview,.customers-overview,.rates-overview) :is(.employee-table,.object-table,.customer-table,.rate-table) {min-width:0}
 .ritme .employee-initials {display:none}
}

/* Quiet selection links: original accessible label and destination are retained. */
.ritme a.select-link,
.ritme .overview-table table.data tbody td a.select-link {display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:32px;min-width:32px;height:32px;min-height:32px;padding:0;gap:0;border:0;border-radius:8px;background:transparent;box-shadow:none;color:#5d7e6e;text-decoration:none;vertical-align:middle;transition:background-color .15s,color .15s}
.ritme a.select-link:hover,
.ritme .overview-table table.data tbody td a.select-link:hover {border:0;background:#e4efe8;color:var(--green)}
.ritme a.select-link:focus-visible,
.ritme .overview-table table.data tbody td a.select-link:focus-visible {outline:2px solid #42a892;outline-offset:2px;background:#e4efe8;color:var(--green)}
.ritme a.select-link>svg,
.ritme .overview-table table.data tbody td a.select-link>svg {width:17px;height:17px;pointer-events:none}
@media(max-width:760px) {
 .ritme a.select-link,.ritme .overview-table table.data tbody td a.select-link {width:44px;min-width:44px;height:44px;min-height:44px;padding:0}
}

/* Groups use a responsive directory of links, keeping the original edit routes. */
.ritme .group-directory {min-width:0}
.ritme .groups-toolbar {display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:2px 0 18px}
.ritme .groups-count {margin:0 auto 0 0;color:#6b8074;font-size:12px}
.ritme .group-controls {display:flex;align-items:center;gap:10px;min-width:0}
.ritme .groups-search {margin:0;grid-template-columns:minmax(0,230px)}
.ritme .groups-search input {height:40px;background:#fff;font-size:12px}
.ritme .group-controls select {width:130px;min-width:0;height:40px;padding-block:8px;background-color:#fff;font-size:12px}
.ritme .group-add {display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:40px;padding:9px 13px;font-size:12px;white-space:nowrap}
.ritme .group-add svg {width:16px;height:16px;flex-shrink:0}
.ritme .group-card-grid {display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,240px),1fr));gap:12px;margin:0;padding:0;list-style:none}
.ritme .group-card-item {min-width:0;margin:0;padding:0;list-style:none}
.ritme .group-card {display:grid;grid-template-columns:38px minmax(0,1fr) 18px;align-items:center;gap:13px;min-height:100px;height:100%;padding:18px;border:1px solid #dce7e0;border-radius:13px;background:#fff;color:#244336;text-decoration:none;box-shadow:0 2px 7px #19372c04;transition:border-color .16s,background-color .16s,box-shadow .16s}
.ritme .group-card:hover {background:#fbfdfc;border-color:#90b4a0;box-shadow:0 4px 12px #19372c0b;color:var(--green)}
.ritme .group-card:focus-visible {outline:3px solid #42a892;outline-offset:3px;border-color:var(--green)}
.ritme .group-card-icon {display:flex;align-items:center;justify-content:center;width:38px;height:38px;border:1px solid #dce9e1;border-radius:11px;background:#edf5f0;color:#638571}
.ritme .group-card-icon svg {width:20px;height:20px;pointer-events:none}
.ritme .group-card strong {min-width:0;font-size:13px;font-weight:600;line-height:1.5;overflow-wrap:anywhere}
.ritme .group-card-arrow {display:flex;align-items:center;justify-content:center;color:#7d9788}
.ritme .group-card-arrow svg {width:17px;height:17px;pointer-events:none}
.ritme .group-card:hover .group-card-arrow {color:var(--green)}
.ritme .groups-pagination {display:flex;align-items:center;justify-content:center;gap:8px;flex-wrap:wrap;padding:20px 0 0}
.ritme .groups-pagination a {display:grid;place-items:center;min-width:36px;min-height:36px;padding:6px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--green)}
.ritme .groups-pagination a.selected {background:var(--green);border-color:var(--green);color:#fff}
@media(max-width:760px) {
 .ritme .groups-toolbar {gap:12px;margin-bottom:14px}
 .ritme .groups-count {order:0}
 .ritme .group-add {order:1;min-height:44px}
 .ritme .group-controls {order:2;display:grid;grid-template-columns:minmax(0,1fr) 124px;gap:8px;width:100%}
 .ritme .groups-search {grid-template-columns:minmax(0,1fr)}
 .ritme .groups-search input,.ritme .group-controls select {height:44px;font-size:16px}
 .ritme .group-controls select {width:100%;padding-inline:10px}
 .ritme .group-card-grid {gap:10px}
 .ritme .group-card {min-height:88px;padding:16px;gap:12px;border-radius:12px}
 .ritme .group-card strong {font-size:14px}
 .ritme .groups-pagination a {min-width:44px;min-height:44px}
}
@media print {
 .ritme .group-controls,.ritme .group-add {display:none}
 .ritme .group-card-grid {grid-template-columns:repeat(3,minmax(0,1fr))}
 .ritme .group-card-item {break-inside:avoid}
 .ritme .group-card {box-shadow:none}
}

/* Planning actions stay together above the filters, including after async updates. */
.ritme .planning-heading>.planning-heading-actions {display:flex;align-items:center;justify-content:flex-end;flex:0 0 auto;gap:8px;min-width:0}
.ritme .planning-heading-actions>.secondary-button {display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:36px;padding:7px 12px;margin:0;font-size:12px;white-space:nowrap}
.ritme .planning-heading-actions>.secondary-button svg {width:16px;height:16px;flex-shrink:0}
@media(max-width:760px) {
 .ritme .planning-heading>div:first-child {flex:1 1 100%}
 .ritme .planning-heading>.planning-heading-actions {flex:1 1 100%;justify-content:flex-start;flex-wrap:wrap}
 .ritme .planning-heading-actions>.secondary-button {min-height:44px;padding:8px 11px;font-size:11px}
}
@media print {.ritme .planning-heading-actions {display:none!important}}

/* Keep the message label above its full-width text area. */
.ritme .message-form .edit-row {grid-template-columns:minmax(0,1fr);gap:8px}
.ritme .message-form .edit-row>label {padding:0}

/* Employee details use grouped profile cards instead of full-width label rows. */
.ritme .employee-profile {min-width:0}
.ritme .profile-identity {display:flex;align-items:center;gap:15px;padding:20px 22px;margin-bottom:16px;border:1px solid var(--line);border-radius:14px;background:#fff}
.ritme .profile-avatar,.ritme .profile-photo {display:flex;align-items:center;justify-content:center;width:56px;height:56px;flex-shrink:0;border-radius:15px;background:#e4f0e9;color:#35684e;font-size:19px;font-weight:650;overflow:hidden}
.ritme .profile-photo img {width:100%;height:100%;object-fit:cover}
.ritme .profile-identity>div {min-width:0}
.ritme .profile-identity h2 {margin:0;font-size:21px;font-weight:650;line-height:1.3;letter-spacing:-.4px;overflow-wrap:anywhere}
.ritme .profile-identity p {margin:4px 0 0;color:#768a7d;font-size:12px}
.ritme .profile-status {display:inline-flex;align-items:center;gap:6px;margin-left:auto;padding:5px 9px;border-radius:7px;font-size:11px;white-space:nowrap}
.ritme .profile-status::before {content:'';width:5px;height:5px;border-radius:50%;background:currentColor}
.ritme .profile-status.is-active {background:#e7f3eb;color:#33714b}
.ritme .profile-status.is-inactive {background:#f0f3f1;color:#748179}
.ritme .employee-profile-grid {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.ritme .profile-card {min-width:0;padding:20px 22px;border:1px solid var(--line);border-radius:13px;background:#fff;box-shadow:0 2px 8px #19372c03}
.ritme .profile-card-wide {grid-column:1/-1}
.ritme .profile-card>h2 {display:flex;align-items:center;gap:8px;margin:0 0 20px;color:#315543;font-size:13px;font-weight:650}
.ritme .profile-card>h2 svg {width:17px;height:17px;flex-shrink:0;color:#759381}
.ritme .profile-fields {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 24px;margin:0}
.ritme .profile-fields-contact {grid-template-columns:repeat(3,minmax(0,1fr))}
.ritme .profile-field {min-width:0}
.ritme .profile-field dt {margin:0 0 6px;color:#7a8c81;font-size:11px;line-height:1.5;font-weight:400;overflow-wrap:anywhere}
.ritme .profile-field dd {margin:0;color:#2d493a;font-size:13px;line-height:1.6;overflow-wrap:anywhere}
.ritme .profile-field dd.is-empty {color:#acb8b0}
.ritme .profile-remarks {grid-template-columns:1fr}
.ritme .profile-remarks .profile-field+.profile-field {border-top:1px solid #edf2ee;padding-top:16px}
@media(max-width:760px) {
 .ritme .profile-identity {padding:16px;gap:12px;flex-wrap:wrap;margin-bottom:12px}
 .ritme .profile-avatar,.ritme .profile-photo {width:48px;height:48px;border-radius:13px;font-size:17px}
 .ritme .profile-identity h2 {font-size:19px}
 .ritme .profile-identity>div {flex:1}
 .ritme .profile-status {font-size:10px}
 .ritme .employee-profile-grid {grid-template-columns:minmax(0,1fr);gap:12px}
 .ritme .profile-card {padding:18px 16px}
 .ritme .profile-card>h2 {margin-bottom:18px}
 .ritme .profile-fields,.ritme .profile-fields-contact {grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 16px}
 .ritme .profile-remarks {grid-template-columns:1fr}
}
@media print {.ritme .profile-card,.ritme .profile-identity {break-inside:avoid;box-shadow:none}}

.ritme .object-name {color:#244336;font-weight:600}

@media(min-width:761px) {
 .ritme .objects-overview .object-table tbody td:nth-child(2) {min-width:180px;max-width:230px;white-space:normal}
 .ritme .objects-overview .object-table tbody td:nth-child(3) {min-width:140px;max-width:190px;white-space:normal}
 .ritme .objects-overview .object-table tbody td:nth-child(7),.ritme .objects-overview .object-table tbody td:nth-child(9) {min-width:145px;max-width:190px;white-space:normal}
}

/* Simple group forms use stacked labels without duplicate separators. */
.ritme[data-route="groups"] .edit-form .edit-row {grid-template-columns:minmax(0,1fr);gap:8px;border-bottom:0}
.ritme[data-route="groups"] .edit-form .edit-row>label {padding:0}
.ritme[data-route="groups"] .edit-form .action-links {border-top:0;margin-top:0}

.ritme .customer-name {color:#244336;font-weight:600}
@media(min-width:761px) {
 .ritme .customers-overview .customer-table tbody td:nth-child(2) {min-width:180px;max-width:230px;white-space:normal}
 .ritme .customers-overview .customer-table tbody td:nth-child(3),.ritme .customers-overview .customer-table tbody td:nth-child(8) {min-width:140px;max-width:190px;white-space:normal}
}

.ritme .rate-name {color:#244336;font-weight:600}
@media(min-width:761px) {
 .ritme .rates-overview .rate-table {min-width:720px}
 .ritme .rates-overview .rate-table tbody td:nth-child(2) {min-width:155px;max-width:230px;white-space:normal}
 .ritme .rates-overview .rate-table tbody td:nth-child(n+3),.ritme .rates-overview .rate-table thead th:nth-child(n+3) {text-align:right;font-variant-numeric:tabular-nums}
}

/* Compact percentage settings: retain field names, values and explicit saving. */
.ritme .percentage-form {padding:22px;margin-bottom:22px}
.ritme .percentage-form>form {display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:12px}
.ritme .percentage-form .edit-row {display:flex;flex-direction:column;gap:10px;padding:14px;margin:0;min-width:0;border:1px solid #e1eae4;border-radius:11px;background:#f8fbf9}
.ritme .percentage-form .edit-row>label {padding:0;font-size:12px;font-weight:600;color:#53705f}
.ritme .percentage-form .input-entry {position:relative;width:100%;min-width:0}
.ritme .percentage-form .input-entry input {width:100%;min-width:0;max-width:none;height:44px;padding:10px 32px 10px 12px;background:#fff;border:1px solid #d3e0d8;border-radius:8px;color:#264b37;font-size:17px;font-weight:600;font-variant-numeric:tabular-nums}
.ritme .percentage-unit {position:absolute;right:12px;top:50%;transform:translateY(-50%);color:#82998a;font-size:13px;pointer-events:none}
.ritme .percentage-form .action-links {grid-column:1/-1;position:static;margin:0;padding:6px 0 0;border:0;background:transparent}
.ritme .percentage-form+h3 {margin:0 0 12px;color:#315543;font-size:15px;font-weight:600}
.ritme[data-route="percentage"] .holiday-picker {max-width:100%;overflow-x:auto;padding-bottom:5px;-webkit-overflow-scrolling:touch}
.ritme[data-route="percentage"] .holiday-picker .ui-datepicker-inline {width:100%!important;min-width:680px;box-shadow:none}
.ritme[data-route="percentage"] .holiday-picker table {width:100%;min-width:0;table-layout:fixed}
.ritme[data-route="percentage"] .holiday-picker table th {padding:8px 2px;font-size:10px;text-align:center}
.ritme[data-route="percentage"] .holiday-picker table td {padding:1px;border:0;text-align:center}
.ritme[data-route="percentage"] .holiday-picker .ui-state-default {padding:7px 2px;text-align:center}
@media(max-width:760px) {
 .ritme .percentage-form {padding:16px;margin-bottom:20px}
 .ritme .percentage-form>form {grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
 .ritme .percentage-form .edit-row {padding:12px}
 .ritme .percentage-form .input-entry input {font-size:17px}
 .ritme .percentage-form .action-links {padding-top:4px}
}

/* Holiday calendar fits its container; the existing date picker keeps selections. */
.ritme[data-route="percentage"] .holiday-picker {overflow:visible;padding:0;min-width:0}
.ritme[data-route="percentage"] #datepicker {min-width:0;max-width:100%}
.ritme[data-route="percentage"] .holiday-picker .ui-datepicker-inline {display:grid!important;grid-template-columns:repeat(var(--calendar-months,1),minmax(0,1fr));gap:16px;width:100%!important;min-width:0;max-width:100%;padding:18px;border:1px solid var(--line);border-radius:14px;background:#fff;box-shadow:0 2px 10px #19372c04;z-index:auto!important}
.ritme[data-route="percentage"] .holiday-picker .ui-datepicker-group {float:none;width:auto!important;min-width:0;border:1px solid #e6eee9;border-radius:11px;padding:8px;background:#fff}
.ritme[data-route="percentage"] .holiday-picker .ui-datepicker-row-break {display:none}
.ritme[data-route="percentage"] .holiday-picker .ui-datepicker-header {position:relative;min-height:44px;margin:0 0 8px;padding:4px 0;border:0;border-radius:8px;background:#f0f6f2;color:#315b43}
.ritme[data-route="percentage"] .holiday-picker .ui-datepicker-title {margin:0 34px;line-height:36px;font-size:13px;font-weight:600;white-space:nowrap}
.ritme[data-route="percentage"] .holiday-picker .ui-datepicker-prev,.ritme[data-route="percentage"] .holiday-picker .ui-datepicker-next {display:grid;place-items:center;position:absolute;top:6px;width:32px;height:32px;border:0;border-radius:7px;background:transparent;color:#426b54;cursor:pointer}
.ritme[data-route="percentage"] .holiday-picker .ui-datepicker-prev {left:5px}
.ritme[data-route="percentage"] .holiday-picker .ui-datepicker-next {right:5px}
.ritme[data-route="percentage"] .holiday-picker .ui-datepicker-prev>span,.ritme[data-route="percentage"] .holiday-picker .ui-datepicker-next>span {display:none}
.ritme[data-route="percentage"] .holiday-picker .ui-datepicker-prev::after {content:'‹';font:24px/1 var(--font)}
.ritme[data-route="percentage"] .holiday-picker .ui-datepicker-next::after {content:'›';font:24px/1 var(--font)}
.ritme[data-route="percentage"] .holiday-picker .ui-datepicker-prev:hover,.ritme[data-route="percentage"] .holiday-picker .ui-datepicker-next:hover {background:#dfece3;color:var(--green)}
.ritme[data-route="percentage"] .holiday-picker .ui-datepicker-calendar {border-collapse:separate;border-spacing:2px;margin:0;width:100%;min-width:0;table-layout:fixed}
.ritme[data-route="percentage"] .holiday-picker .ui-datepicker-calendar th {padding:7px 0;border:0;background:transparent;font-size:10px;font-weight:500;color:#81978a;text-align:center}
.ritme[data-route="percentage"] .holiday-picker .ui-datepicker-calendar td {padding:0;border:0;background:transparent;text-align:center}
.ritme[data-route="percentage"] .holiday-picker .ui-datepicker-calendar td>a,.ritme[data-route="percentage"] .holiday-picker .ui-datepicker-calendar td>span {display:grid;place-items:center;min-height:34px;margin:0;padding:5px 0;border:1px solid transparent;border-radius:7px;background:transparent;color:#466352;font-size:12px;font-weight:400;text-align:center;text-decoration:none}
.ritme[data-route="percentage"] .holiday-picker .ui-datepicker-calendar td>a:hover {background:#eaf4ed;color:#18553b;border-color:#d7e7dd}
.ritme[data-route="percentage"] .holiday-picker .ui-datepicker-calendar td>a:focus-visible {outline:2px solid #42a892;outline-offset:0}
.ritme[data-route="percentage"] .holiday-picker .ui-datepicker-today>a {border-color:#b0cdbb!important;background:#f2f8f4!important;color:#1d6640!important;font-weight:600!important}
.ritme[data-route="percentage"] .holiday-picker td.ui-state-highlight>a {background:var(--green)!important;border-color:var(--green)!important;color:#fff!important;font-weight:600!important}
@media(max-width:760px) {
 .ritme[data-route="percentage"] .holiday-picker .ui-datepicker-inline {padding:12px;gap:12px}
 .ritme[data-route="percentage"] .holiday-picker .ui-datepicker-calendar td>a,.ritme[data-route="percentage"] .holiday-picker .ui-datepicker-calendar td>span {min-height:40px;font-size:13px}
 .ritme[data-route="percentage"] .holiday-picker .ui-datepicker-header {min-height:48px}
 .ritme[data-route="percentage"] .holiday-picker .ui-datepicker-title {line-height:40px;font-size:14px}
 .ritme[data-route="percentage"] .holiday-picker .ui-datepicker-prev,.ritme[data-route="percentage"] .holiday-picker .ui-datepicker-next {top:4px;width:40px;height:40px}
}

.ritme[data-route="percentage"] .holiday-picker .ui-datepicker-inline::before,.ritme[data-route="percentage"] .holiday-picker .ui-datepicker-inline::after {display:none;content:none}

/* Expiry notifications: a fixed heading and readable, scrollable records. */
.ritme #expire_dates_popup .popup-content {display:flex;flex-direction:column;width:min(760px,calc(100vw - 32px));max-height:85dvh;padding:0;overflow:hidden;border-radius:16px;background:#fff}
.ritme .expiry-dialog-heading {display:flex;align-items:center;gap:12px;flex-shrink:0;padding:22px 58px 20px 22px;border-bottom:1px solid #e7eee9;background:#fff}
.ritme .expiry-dialog-icon {display:grid;place-items:center;width:40px;height:40px;flex-shrink:0;border:1px solid #dce9e1;border-radius:11px;background:#edf5f0;color:#60806d}
.ritme .expiry-dialog-icon svg {width:21px;height:21px}
.ritme .expiry-dialog-heading h2 {margin:0;font-size:20px;line-height:1.3;letter-spacing:-.4px;color:#254537}
.ritme .expiry-dialog-heading p {margin:5px 0 0;font-size:12px;line-height:1.5;color:#829286}
.ritme .expiry-dialog-body {min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:20px 22px 22px;scrollbar-width:thin;scrollbar-color:#b9cfc1 transparent}
.ritme .expiry-dialog-body>.almost+.complete {margin-top:24px}
.ritme .expiry-dialog-body h3 {display:flex;align-items:center;gap:8px;margin:0 0 12px;color:#5b7163;font-size:13px;font-weight:600}
.ritme .expiry-count {display:inline-flex;align-items:center;justify-content:center;min-width:23px;height:23px;padding:0 6px;border-radius:7px;background:#f1f5f2;color:#73867a;font-size:10px;font-variant-numeric:tabular-nums}
.ritme .expiry-dialog-body ul {display:grid;gap:8px;margin:0;padding:0;list-style:none}
.ritme .expiry-dialog-body li {display:grid;grid-template-columns:96px minmax(0,1fr) minmax(0,1.1fr);align-items:center;gap:10px 14px;margin:0;padding:13px 14px;border:1px solid #e5ede7;border-radius:10px;background:#fcfdfc;list-style:none}
.ritme .expiry-dialog-body li>span {min-width:0;overflow-wrap:anywhere}
.ritme .expiry-dialog-body li>span:first-child {padding:5px 7px;border:1px solid #f0dfda;border-radius:6px;background:#fbf1ee;color:#9a6355;font-size:11px;font-weight:500;font-variant-numeric:tabular-nums;text-align:center;white-space:nowrap}
.ritme .expiry-dialog-body .almost li>span:first-child {border-color:#ecdfc7;background:#fbf6eb;color:#987b3e}
.ritme .expiry-dialog-body li>span:nth-child(2) {font-size:12px;font-weight:600;line-height:1.5}
.ritme .expiry-dialog-body li>span:nth-child(2)>a {display:inline-flex;align-items:center;min-height:32px;color:#315f46;text-decoration:none}
.ritme .expiry-dialog-body li>span:nth-child(2)>a:hover {text-decoration:underline;text-underline-offset:3px}
.ritme .expiry-dialog-body li>span:nth-child(2)>a:focus-visible {outline:2px solid #42a892;outline-offset:3px;border-radius:3px}
.ritme .expiry-dialog-body li>span:last-child {font-size:11px;line-height:1.6;color:#849387}
.ritme #expire_dates_popup .dialog-close {top:18px;right:16px;width:32px;height:32px;min-width:32px;color:#789183;background:#f3f7f4;border-radius:8px;z-index:1}
.ritme #expire_dates_popup .dialog-close:hover {background:#e6f0e9;color:var(--green)}
@media(max-width:760px) {
 .ritme #expire_dates_popup .popup-content {width:calc(100vw - 24px);max-height:calc(100dvh - 32px);border-radius:14px}
 .ritme .expiry-dialog-heading {padding:18px 58px 18px 16px;gap:10px}
 .ritme .expiry-dialog-heading h2 {font-size:18px}
 .ritme .expiry-dialog-heading p {font-size:11px}
 .ritme .expiry-dialog-icon {width:34px;height:34px;border-radius:9px}
 .ritme .expiry-dialog-body {padding:16px}
 .ritme .expiry-dialog-body li {grid-template-columns:90px minmax(0,1fr);gap:0 12px;padding:10px 12px}
 .ritme .expiry-dialog-body li>span:first-child {grid-row:1/3;align-self:center;font-size:10px;padding:5px}
 .ritme .expiry-dialog-body li>span:nth-child(2)>a {min-height:44px;font-size:12px}
 .ritme .expiry-dialog-body li>span:last-child {grid-column:2;padding-bottom:4px;font-size:11px}
 .ritme #expire_dates_popup .dialog-close {width:40px;height:40px;top:14px;right:12px}
}

/* Contextual label icons complement the existing text throughout detail screens. */
.ritme .view-data .label.has-field-icon {gap:10px;align-items:center}
.ritme .view-data .label.has-field-icon>svg {width:25px;height:25px;padding:5px;border-radius:7px;background:#edf5f0;color:#6b8a76;flex-shrink:0;box-sizing:border-box}
.ritme .edit-form .edit-row>label.has-field-icon,.ritme .profile-field>dt.has-field-icon {gap:7px}
.ritme .edit-form .edit-row>label.has-field-icon>svg,.ritme .profile-field>dt.has-field-icon>svg {width:15px;height:15px;flex-shrink:0;color:#7a9785}
@media(max-width:760px) {
 .ritme .view-data .label.has-field-icon {gap:8px}
 .ritme .view-data .label.has-field-icon>svg {width:23px;height:23px;padding:4px}
}
@media print {.ritme .view-data .label.has-field-icon>svg {background:transparent}}
