.ri{background:var(--paper);border:1.5px solid var(--char);border-radius:var(--radius-lg);padding:18px;margin:18px 0;}
.ri h2{font:700 21px/1.25 var(--sans);margin:0 0 6px;display:flex;align-items:center;gap:10px;flex-wrap:wrap;}
.ri-chip{display:inline-flex;align-items:center;min-height:28px;padding:0 10px;border-radius:99px;background:var(--linen);
  font:600 15px/1 var(--sans);color:var(--ink);}
.ri-lead{margin:0 0 12px;font-size:16px;color:var(--ink);max-width:60ch;}
.ri-body{margin-top:14px;display:flex;flex-direction:column;gap:14px;}
.ri fieldset{border:1px solid var(--line);border-radius:var(--radius);padding:12px 14px;margin:0;min-width:0;}
.ri legend{font:700 16px var(--sans);padding:0 6px;}
.ri label{display:flex;flex-direction:column;gap:4px;font-size:15px;font-weight:600;color:var(--muted);}
.ri input[type=number],.ri input[type=text],.ri input:not([type]),.ri input[type=tel],.ri input[type=email],.ri select{
  min-height:44px;border:1.5px solid var(--line);border-radius:var(--radius);padding:0 10px;font:16px var(--sans);
  background:var(--cream);color:var(--ink);width:100%;box-sizing:border-box;}
.ri label.ri-check{flex-direction:row;align-items:flex-start;gap:10px;font-weight:500;color:var(--ink);min-height:44px;padding-top:10px;}
.ri-check input{width:22px;height:22px;flex:none;margin:0;}
.ri-zipf label{color:var(--ink);}
.ri-room{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) auto minmax(0,1fr) auto;gap:8px;align-items:end;margin-bottom:8px;}
.ri-room label span{display:flex;align-items:center;gap:6px;color:var(--muted);}
.ri-x{padding-bottom:12px;color:var(--muted);}
.ri-del{min-height:44px;background:none;border:0;color:var(--red-dark);font:600 15px var(--sans);text-decoration:underline;cursor:pointer;}
.ri-add{min-height:44px;}
.ri-job{display:flex;flex-direction:column;gap:10px;}
.ri-nums{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px;}
.ri-result.loading{opacity:.55;}
.ri-hint,.ri-sub{color:var(--muted);font-size:15px;margin:4px 0;}
.ri-note{background:var(--linen);border-radius:var(--radius);padding:12px 14px;}
.ri-note p{margin:0 0 10px;}
.ri-h3{font:700 18px var(--sans);margin:4px 0 8px;}
table.ri-lines{width:100%;border-collapse:collapse;font-size:15px;}
.ri-lines th,.ri-lines td{padding:8px 6px;border-bottom:1px solid var(--line-soft);text-align:left;vertical-align:top;}
.ri-lines thead th{font-weight:700;color:var(--muted);border-bottom:1.5px solid var(--line);}
.ri-lines tbody th{font-weight:500;color:var(--ink);}
.ri-lines .n{text-align:right;white-space:nowrap;}
.ri-at{display:block;color:var(--muted);font-size:15px;}
.ri-total{display:flex;justify-content:space-between;align-items:baseline;font:700 21px var(--sans);padding:10px 6px 2px;}
.ri-paths{display:flex;flex-direction:column;gap:8px;}
.ri label.ri-path{flex-direction:row;gap:12px;align-items:flex-start;border:1.5px solid var(--line);border-radius:var(--radius);
  padding:12px;cursor:pointer;color:var(--ink);font-weight:500;}
.ri-path:has(input:checked){border-color:var(--char);background:var(--cream);}
.ri-path input{width:22px;height:22px;flex:none;margin:2px 0 0;}
.ri-path > span{display:flex;flex-direction:column;gap:4px;}
.ri-clock{color:var(--good);font-weight:600;}
.ri-why{font-size:15px;color:var(--ink);background:var(--linen);border-radius:var(--radius);padding:10px 12px;margin:0;}
.ri-day-row{display:flex;flex-wrap:wrap;gap:8px;}
.ri label.ri-day,.ri label.ri-win{flex-direction:row;position:relative;}
.ri-day input,.ri-win input{position:absolute;opacity:0;width:1px;height:1px;}
.ri-day span,.ri-win span{display:inline-flex;flex-direction:column;align-items:center;justify-content:center;min-height:48px;
  min-width:96px;padding:4px 12px;border:1.5px solid var(--line);border-radius:var(--radius);background:var(--paper);
  color:var(--ink);font:600 15px var(--sans);cursor:pointer;}
.ri-day em{font-style:normal;font-size:15px;color:var(--good);}
.ri-day input:checked + span,.ri-win input:checked + span{border-color:var(--char);background:var(--char);color:#fff;}
.ri-day input:checked + span em{color:#fff;}
.ri-day input:focus-visible + span,.ri-win input:focus-visible + span{outline:3px solid var(--focus);outline-offset:2px;}
.ri-due{font-size:16px;margin:10px 0 0;}
.ri-rules{background:var(--cream);border:1px solid var(--line);border-radius:var(--radius);padding:12px 14px;}
.ri-rules p{margin:0 0 6px;}
.ri-rules ul{margin:0 0 6px;padding-left:20px;font-size:15px;}
.ri-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;}
.ri-err{color:var(--red-dark);font-weight:600;min-height:1em;margin:6px 0;}
@media (max-width:640px){
  .ri{padding:14px;}
  .ri-room{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);}
  .ri-room label:first-child{grid-column:1 / -1;}
  .ri-room .ri-del{grid-column:1 / -1;justify-self:start;}
  .ri-grid{grid-template-columns:1fr;}
  .ri-day span{min-width:84px;}
}

.ro{max-width:820px;}
.ro-status{font:700 17px var(--sans);display:inline-flex;min-height:32px;align-items:center;padding:0 12px;border-radius:99px;
  background:var(--linen);margin:0 0 10px;}
.ro-status.good{background:var(--good);color:#fff;}
.ro-card{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-lg);padding:16px 18px;margin:0 0 16px;}
.ro-card h2{font:700 19px var(--sans);margin:0 0 10px;}
.ro-steps{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px;}
.ro-steps li{font-size:15px;padding:6px 10px;border-radius:99px;border:1px solid var(--line);color:var(--muted);}
.ro-steps li.done{background:var(--char);border-color:var(--char);color:#fff;}
.ro-steps li.now{border-color:var(--char);color:var(--ink);font-weight:700;}
.ro-money{display:grid;grid-template-columns:1fr auto;gap:6px 16px;font-size:16px;}
.ro-money b{text-align:right;}
.ro-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:12px;}
.ro-cmp .up{color:var(--red-dark);font-weight:600;}
.ro-cmp .down{color:var(--good);font-weight:600;}
.ro-paid{font:700 18px var(--sans);color:var(--good);}
@media (max-width:640px){
  .ro-card{padding:14px 10px;}
  .ro-cmp .ri-lines th,.ro-cmp .ri-lines td{padding:8px 3px;}
  .ro-cmp .ri-lines .n{white-space:normal;}
}
.ri-fin{margin:4px 0 6px;}
.ri-pay{display:flex;flex-direction:column;gap:2px;}
.ri-span{font-size:16px;margin:8px 0 0;}

.rj-updates{list-style:none;margin:0;padding:0;}
.rj-updates li{border-left:3px solid var(--line);padding:6px 0 8px 12px;margin:0 0 6px;}
.rj-updates li:first-child{border-left-color:var(--char);}
.rj-updates p{margin:4px 0 0;}
.rj-h3{font:700 16px var(--sans);margin:14px 0 6px;}
.rj-reports{margin:0;padding-left:18px;}
.rj-form{display:flex;flex-direction:column;gap:10px;margin-top:10px;}
.rj-form label{display:flex;flex-direction:column;gap:4px;font-size:15px;font-weight:600;color:var(--muted);}
.rj-form select,.rj-form textarea{min-height:44px;border:1.5px solid var(--line);border-radius:var(--radius);padding:8px 10px;
  font:16px var(--sans);background:var(--cream);color:var(--ink);}
.rj-form label.ri-check{flex-direction:row;align-items:flex-start;gap:10px;font-weight:500;color:var(--ink);}
.rj-stars{border:0;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:8px;}
.rj-stars legend{font:700 16px var(--sans);margin-bottom:6px;}
.rj-star{position:relative;}
.rj-star input{position:absolute;opacity:0;width:1px;height:1px;}
.rj-star span{display:inline-flex;align-items:center;min-height:48px;padding:0 14px;border:1.5px solid var(--line);
  border-radius:var(--radius);background:var(--paper);color:var(--ink);font:600 16px var(--sans);cursor:pointer;}
.rj-star input:checked + span{background:var(--char);border-color:var(--char);color:#fff;}
.rj-star input:focus-visible + span{outline:3px solid var(--focus);outline-offset:2px;}
.ri-promo{margin:6px 0 0;font-weight:600;}
.ri-promo.bad{border-left:4px solid var(--red);}
.ri label[hidden]{display:none;}
.ri-lane{display:flex;flex-direction:column;align-items:flex-start;gap:6px;}
.ri-lane-a{padding-bottom:16px;margin-bottom:16px;border-bottom:1px solid var(--line);}
.ri-lane-h{font:700 19px/1.25 var(--sans);margin:0 0 4px;display:flex;align-items:center;gap:10px;flex-wrap:wrap;}
.ri-badge{margin:0;font:700 14px/1.2 var(--sans);text-transform:uppercase;letter-spacing:.04em;color:var(--muted);}
.ri-points{margin:0 0 8px;padding-left:20px;font-size:15px;color:var(--ink);}
.ri-points li{margin:2px 0;}
.ro-appts{margin:6px 0 0;padding-left:20px;font-size:15px;}
.ro-appts li{margin:4px 0;}
