:root{
  --bg:#f2f4f8;--surface:rgba(255,255,255,.88);--surface-solid:#fff;--text:#12151b;--muted:#737a86;
  --line:rgba(18,21,27,.09);--line-strong:rgba(18,21,27,.16);--shadow:0 18px 55px rgba(24,31,46,.10);
  --shadow-soft:0 8px 28px rgba(24,31,46,.07);--radius:26px;--radius-sm:16px;
  --accent:#15171c;--accent2:#343946;--danger:#b42318;--danger-bg:#fff1f0;--success:#137a55;
}
*{box-sizing:border-box}html{color-scheme:light}body{margin:0;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--text);background:
radial-gradient(circle at 12% 8%,rgba(255,72,150,.09),transparent 24%),
radial-gradient(circle at 86% 12%,rgba(59,130,246,.10),transparent 26%),
radial-gradient(circle at 72% 80%,rgba(30,200,160,.07),transparent 25%),linear-gradient(145deg,#f8f9fb 0%,#eef1f6 100%);min-height:100vh}button,input,select,textarea{font:inherit}button{cursor:pointer}.hidden{display:none!important}a{color:inherit}.brand-logo{display:block;object-fit:contain}.header-logo{width:180px;max-height:44px;object-position:left center}.brand-heading{display:flex;align-items:center;gap:18px;min-width:0}.brand-heading h1{margin:0}.title-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.login-view{min-height:100vh;display:grid;place-items:center;padding:24px;position:relative;overflow:hidden}.login-view::before,.login-view::after{content:"";position:absolute;width:380px;height:380px;border-radius:50%;filter:blur(20px);opacity:.25;pointer-events:none}.login-view::before{background:linear-gradient(135deg,#ff4f9a,#ffbd59);left:-180px;top:-160px}.login-view::after{background:linear-gradient(135deg,#59a7ff,#65e8cc);right:-190px;bottom:-180px}.login-card{position:relative;z-index:1;width:min(470px,100%);padding:42px 34px 34px;border:1px solid rgba(255,255,255,.7);border-radius:34px;background:rgba(255,255,255,.78);backdrop-filter:blur(24px);box-shadow:0 28px 90px rgba(21,28,43,.16),inset 0 1px 0 rgba(255,255,255,.95)}.login-card::after{content:"";position:absolute;inset:0;border-radius:34px;padding:1px;background:linear-gradient(135deg,rgba(255,255,255,.95),rgba(255,255,255,.1),rgba(64,111,255,.18));-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none}.login-icon{display:block;width:82px;height:82px;object-fit:contain;margin:0 auto 30px;filter:drop-shadow(0 14px 22px rgba(0,0,0,.12))}.login-form{display:grid;gap:15px}.app-shell{width:min(1260px,calc(100% - 32px));margin:0 auto;padding:26px 0 58px}.topbar{position:sticky;top:12px;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:18px;padding:17px 20px;border:1px solid rgba(255,255,255,.82);background:rgba(250,251,253,.78);backdrop-filter:blur(22px);border-radius:25px;box-shadow:0 12px 38px rgba(24,31,46,.08)}.topbar-actions,.section-heading,.footer-actions,.dialog-header,.dialog-actions,.dialog-actions-right,.entry-top,.entry-meta,.admin-report-filters,.inline-actions,.admin-summary-filters{display:flex;align-items:center}.topbar-actions{gap:9px;flex-wrap:wrap;justify-content:flex-end}.section-heading,.dialog-header,.dialog-actions{justify-content:space-between;gap:16px}.section-heading.compact{align-items:flex-start}.summary-heading{align-items:center}h1,h2,h3,p{margin-top:0}h1{font-size:clamp(27px,4.4vw,40px);letter-spacing:-.035em;margin-bottom:5px}h2{font-size:22px;letter-spacing:-.02em;margin-bottom:5px}h3{font-size:17px;margin-bottom:8px}.muted{color:var(--muted);margin-bottom:0;font-size:13px}.role-pill,.host-badge{display:inline-flex;align-items:center;border-radius:999px;font-weight:850;letter-spacing:.04em}.role-pill{font-size:11px;padding:7px 10px;background:linear-gradient(135deg,#171a20,#3c4250);color:#fff;box-shadow:0 6px 15px rgba(20,25,34,.18)}.host-badge{padding:9px 13px;font-size:11px;color:#fff;background:linear-gradient(110deg,#111,#3c4150);box-shadow:0 8px 22px rgba(0,0,0,.2)}.card,.summary-card,.dialog-card{background:var(--surface);border:1px solid rgba(255,255,255,.82);box-shadow:var(--shadow-soft),inset 0 1px 0 rgba(255,255,255,.85);backdrop-filter:blur(18px)}.card{padding:22px;margin-top:18px;border-radius:var(--radius)}.card:hover{box-shadow:0 12px 36px rgba(24,31,46,.08),inset 0 1px 0 #fff}.report-meta{display:grid;grid-template-columns:minmax(260px,2fr) 1fr 1fr;gap:14px}.field{display:flex;flex-direction:column;gap:7px}.field label{font-size:12px;font-weight:800;color:#59606c;letter-spacing:.012em}input,select,textarea,.readonly-value{width:100%;border:1px solid var(--line);border-radius:15px;padding:12px 14px;background:rgba(255,255,255,.82);color:var(--text);outline:none;transition:.18s ease;box-shadow:inset 0 1px 2px rgba(16,24,40,.025)}input:hover,select:hover,textarea:hover{border-color:var(--line-strong)}input:focus,select:focus,textarea:focus{border-color:#596276;box-shadow:0 0 0 4px rgba(60,70,90,.09),0 6px 16px rgba(30,40,60,.05);background:#fff}.readonly-value{background:rgba(245,247,250,.88);font-weight:750;min-height:45px}.role-readonly{display:flex;align-items:center;background:linear-gradient(135deg,#f5f6f8,#e9edf3)}input[readonly],input:disabled,select:disabled{background:#f2f4f7;color:#737a86}.summary-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:13px;margin-top:18px}.summary-card{padding:19px;border-radius:22px;position:relative;overflow:hidden}.summary-card::before{content:"";position:absolute;inset:0 0 auto;height:3px;background:linear-gradient(90deg,transparent,rgba(80,100,150,.35),transparent)}.summary-card-accent{background:linear-gradient(145deg,rgba(25,28,34,.96),rgba(49,55,67,.96));color:#fff;border-color:rgba(255,255,255,.08);box-shadow:0 16px 40px rgba(20,24,33,.18)}.summary-card-accent span,.summary-card-accent small{color:rgba(255,255,255,.67)}.summary-card-expense{background:linear-gradient(145deg,rgba(255,255,255,.96),rgba(240,244,250,.94))}.summary-card span{display:block;color:#7a818c;font-size:12px;margin-bottom:8px;font-weight:700}.summary-card strong{display:block;font-size:25px;letter-spacing:-.035em}.summary-card small{display:block;margin-top:6px;color:#7b828e}.btn,.icon-btn{border:0;font-weight:800;transition:transform .15s ease,box-shadow .15s ease,background .15s ease}.btn{padding:11px 16px;border-radius:14px}.btn:hover{transform:translateY(-1px)}.btn:active{transform:translateY(0)}.btn-primary{background:linear-gradient(135deg,#121419,#303641);color:#fff;box-shadow:0 9px 20px rgba(20,25,34,.18)}.btn-primary:hover{box-shadow:0 12px 26px rgba(20,25,34,.24)}.btn-ghost{background:linear-gradient(145deg,#f3f5f8,#e6eaf0);color:#292f38;border:1px solid rgba(20,26,36,.05)}.btn-danger{background:linear-gradient(145deg,#fff1f0,#ffe3e1);color:var(--danger);border:1px solid rgba(180,35,24,.08)}.btn-small{padding:8px 11px;border-radius:11px;font-size:12px}.icon-btn{width:42px;height:42px;border-radius:14px;background:#eff2f6;font-size:24px;color:#353b45}.empty-state{margin-top:18px;padding:28px 18px;border:1px dashed rgba(70,80,100,.24);border-radius:18px;text-align:center;color:#858c98;background:rgba(250,251,253,.55)}.empty-state.no-margin{margin-top:0}.empty-state strong{display:block;color:#4d5562}.entries-list{display:grid;gap:13px;margin-top:18px}.entry-card{border:1px solid var(--line);border-radius:20px;padding:17px;background:linear-gradient(145deg,rgba(255,255,255,.88),rgba(247,249,252,.8));box-shadow:0 7px 22px rgba(24,31,46,.045)}.entry-card.corrected{border-color:rgba(81,96,127,.28);background:#fff}.entry-top{justify-content:space-between;gap:12px;align-items:flex-start}.entry-date{font-weight:850;font-size:14px}.entry-type{color:#666;font-size:13px}.entry-meta{flex-wrap:wrap;gap:8px;margin-top:12px}.badge{background:linear-gradient(145deg,#f1f3f6,#e8ebf0);border-radius:999px;padding:6px 10px;font-size:11px;font-weight:800}.badge-warning{background:#fff0d5}.badge-danger{background:#fbe6e6;color:#8c1717}.badge-admin{background:#e9edf2}.entry-comment{margin:12px 0 0;color:#5b5b5b;white-space:pre-wrap}.admin-comment{margin-top:12px;padding:12px 13px;border-left:3px solid #272c35;background:linear-gradient(135deg,#f2f4f7,#e9edf3);border-radius:10px;white-space:pre-wrap}.admin-comment strong{display:block;margin-bottom:3px;font-size:12px}.entry-edit{white-space:nowrap}.task-list-display{display:grid;gap:7px;margin-top:12px}.task-display-row{display:flex;justify-content:space-between;gap:12px;padding:10px 12px;background:rgba(255,255,255,.88);border:1px solid var(--line);border-radius:13px}.task-display-row span:last-child{font-weight:850;white-space:nowrap}.footer-actions{position:sticky;bottom:12px;margin-top:18px;padding:12px;border-radius:18px;background:rgba(255,255,255,.78);backdrop-filter:blur(18px);border:1px solid rgba(255,255,255,.85);justify-content:flex-end;gap:10px;box-shadow:0 12px 34px rgba(24,31,46,.08)}.dialog{border:0;background:transparent;padding:16px;width:min(800px,100%);max-height:96vh}.dialog::backdrop{background:rgba(13,17,24,.55);backdrop-filter:blur(5px)}.dialog-card{padding:22px;overflow:auto;max-height:calc(96vh - 32px);border-radius:28px}.form-grid,.profile-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:18px}.field-full{grid-column:1/-1}.duration-box{padding:13px 15px;background:linear-gradient(135deg,#f4f6f9,#e9edf3);border-radius:15px}.duration-box span,.duration-box strong{display:block}.duration-box span{font-size:12px;color:#6b7280}.duration-box strong{margin-top:4px}.dialog-actions{margin-top:20px}.dialog-actions-right{gap:10px;margin-left:auto}.admin-note{padding:12px 14px;border-radius:14px;background:#f1f3f6;font-size:13px}.review-info{margin:16px 0;padding:14px;border-radius:16px;background:linear-gradient(135deg,#f5f7fa,#e9edf3);line-height:1.5}.task-section{margin-top:6px}.task-editor,.admin-task-editor{display:grid;gap:10px;margin-top:12px}.task-row{display:grid;grid-template-columns:minmax(150px,1.2fr) 1fr auto;gap:10px;align-items:end;padding:13px;background:rgba(247,248,250,.9);border-radius:15px;border:1px solid var(--line)}.task-row .remove-task{height:44px}.task-rate-readonly{background:#eff1f4}.admin-task-row{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:10px;align-items:end;padding:13px;border:1px solid var(--line);border-radius:15px}.admin-task-row .requested{background:#f3f4f6}.admin-grid{display:grid;grid-template-columns:340px 1fr;gap:18px}.admin-panel{min-width:0}.employee-list{display:grid;gap:9px;margin-top:12px}.employee-row{width:100%;text-align:left;border:1px solid var(--line);background:linear-gradient(145deg,#fbfcfd,#f2f4f7);border-radius:16px;padding:13px 14px;transition:.16s ease}.employee-row:hover,.employee-row.active{border-color:rgba(45,54,70,.30);background:#fff;transform:translateY(-1px);box-shadow:0 8px 20px rgba(22,30,44,.07)}.employee-row strong,.employee-row span{display:block}.employee-row span{margin-top:4px;color:#7a818c;font-size:12px}.city-filter{margin-top:14px}.rates-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:16px}.divider{border:0;border-top:1px solid var(--line);margin:24px 0}.admin-report-filters{gap:10px;align-items:end;flex-wrap:wrap}.admin-report-filters .field{min-width:150px}.mini-summary{margin-top:16px;padding:15px;background:linear-gradient(135deg,#f4f6f9,#eaedf2);border-radius:16px;display:flex;gap:18px;flex-wrap:wrap;font-size:13px}.mini-summary strong{font-size:16px}.inline-actions{justify-content:flex-end;margin-top:14px}.checkbox-label{display:flex!important;align-items:center;gap:10px;font-size:14px!important}.checkbox-label input{width:auto;min-width:18px;height:18px;margin:0}.admin-summary-filters{gap:12px;flex-wrap:wrap;margin-top:14px}.admin-summary-filters .field{min-width:170px}.table-wrap{width:100%;overflow:auto;margin-top:16px;border-radius:17px;border:1px solid var(--line);background:rgba(255,255,255,.62)}.summary-table{width:100%;border-collapse:collapse;min-width:780px}.summary-table th,.summary-table td{padding:12px 11px;border-bottom:1px solid rgba(30,40,60,.07);text-align:right;white-space:nowrap}.summary-table th:first-child,.summary-table td:first-child,.summary-table th:nth-child(2),.summary-table td:nth-child(2){text-align:left}.summary-table thead th{font-size:11px;color:#69717e;background:rgba(244,246,249,.92);text-transform:uppercase;letter-spacing:.035em}.summary-table tbody tr:hover{background:rgba(245,247,250,.8)}.summary-table tfoot td{font-weight:850;border-top:2px solid #242a34;border-bottom:0}.summary-table .empty-row{text-align:center;color:#777;padding:22px}.summary-name{font-weight:800}.summary-table .action-cell{text-align:right}.summary-table button{white-space:nowrap}.venue-list{display:grid;gap:10px;margin-top:16px}.venue-row{display:grid;grid-template-columns:minmax(220px,1fr) auto auto;gap:10px;align-items:center;padding:11px;border:1px solid var(--line);border-radius:15px;background:rgba(250,251,253,.82)}.stats-table{min-width:1100px}.stats-table th,.stats-table td{text-align:center}.stats-table th:first-child,.stats-table td:first-child,.stats-table th:nth-child(2),.stats-table td:nth-child(2){text-align:left}.governance-card{background:linear-gradient(145deg,rgba(255,255,255,.92),rgba(243,246,250,.86))}.danger-zone{border-color:rgba(180,35,24,.13)}.section-icon{width:38px;height:38px;display:grid;place-items:center;border-radius:13px;background:linear-gradient(145deg,#eef1f5,#dfe4eb);font-weight:900}.approval-list{display:grid;gap:10px;margin-top:15px}.approval-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:13px 14px;border:1px solid var(--line);border-radius:16px;background:rgba(255,255,255,.75)}.approval-row strong,.approval-row span{display:block}.approval-row span{font-size:12px;color:var(--muted);margin-top:3px}.approval-actions{display:flex;gap:8px;flex-wrap:wrap}.danger-row{border-color:rgba(180,35,24,.12);background:linear-gradient(135deg,#fff,#fff7f6)}.host-card{background:linear-gradient(145deg,rgba(28,31,38,.97),rgba(49,55,67,.96));color:#fff;border-color:rgba(255,255,255,.08);box-shadow:0 22px 55px rgba(20,24,32,.24)}.host-card .muted{color:rgba(255,255,255,.62)}.host-card .approval-row{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.10)}.host-card .approval-row span{color:rgba(255,255,255,.58)}.host-grid{display:grid;grid-template-columns:minmax(280px,.8fr) minmax(360px,1.4fr);gap:18px;margin-top:16px}.audit-list{max-height:390px;overflow:auto;display:grid;gap:7px}.audit-row{display:grid;grid-template-columns:135px 150px 1fr;gap:8px 12px;padding:10px 11px;border-radius:13px;background:rgba(255,255,255,.065);font-size:11px}.audit-row code{color:#a9c7ff;word-break:break-all}.audit-row span:last-child{grid-column:2/-1;color:rgba(255,255,255,.52)}.error-text{margin:10px 0 0;color:#b42318;font-size:13px;font-weight:800}.subheading{margin-top:22px}.city-group-title{font-size:11px;font-weight:900;letter-spacing:.09em;color:#777;margin:8px 2px 2px;text-transform:uppercase}
@media(max-width:960px){.admin-grid{grid-template-columns:1fr}.employee-list{grid-template-columns:repeat(2,1fr)}.rates-grid{grid-template-columns:1fr}.host-grid{grid-template-columns:1fr}}
@media(max-width:760px){.app-shell{width:min(100% - 16px,1260px);padding-top:10px}.topbar{top:6px;align-items:flex-start}.brand-heading{align-items:flex-start;gap:12px;flex-direction:column}.header-logo{width:150px;max-height:34px}.report-meta{grid-template-columns:1fr 1fr}.employee-readonly{grid-column:1/-1}.summary-grid{grid-template-columns:1fr 1fr}.section-heading{align-items:flex-start}.form-grid,.profile-grid{grid-template-columns:1fr}.field-full{grid-column:auto}.task-row,.admin-task-row{grid-template-columns:1fr}.dialog{padding:8px}.dialog-card{padding:17px;max-height:calc(100vh - 16px)}.admin-summary-filters{align-items:stretch}.admin-summary-filters .field{flex:1;min-width:140px}.venue-row{grid-template-columns:1fr}.venue-row .btn{width:100%}.approval-row{align-items:flex-start;flex-direction:column}.approval-actions{width:100%}.approval-actions .btn{flex:1}.audit-row{grid-template-columns:1fr 1fr}.audit-row code,.audit-row span:last-child{grid-column:1/-1}}
@media(max-width:480px){.login-card{padding:34px 20px 24px;border-radius:28px}.report-meta,.summary-grid,.employee-list{grid-template-columns:1fr}.employee-readonly{grid-column:auto}.section-heading{flex-direction:column}.section-heading .btn{width:100%}.entry-top{flex-direction:column}.entry-edit{width:100%}.task-display-row{flex-direction:column}.dialog-actions{align-items:stretch;flex-direction:column}.dialog-actions-right{width:100%;margin-left:0}.dialog-actions-right .btn,.dialog-actions>.btn{flex:1}.footer-actions{flex-wrap:wrap}.footer-actions .btn{width:100%}.admin-report-filters{align-items:stretch}.admin-report-filters .field,.admin-report-filters .btn{width:100%}.topbar-actions{width:100%;justify-content:flex-start}.topbar-actions .btn{flex:1}.summary-heading{align-items:stretch}.admin-summary-filters{display:grid;grid-template-columns:1fr}.admin-summary-filters .field{min-width:0}.title-row{align-items:flex-start}}
.dialog-wide{width:min(980px,100%)}
.day-venues-editor{display:grid;gap:14px;margin-top:12px}.day-venue-block{padding:16px;border:1px solid var(--line);border-radius:20px;background:linear-gradient(145deg,rgba(255,255,255,.92),rgba(242,245,249,.82));box-shadow:0 8px 24px rgba(24,31,46,.05)}.venue-block-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}.venue-summary{padding:12px 13px;margin-top:10px;border:1px solid var(--line);border-radius:15px;background:rgba(255,255,255,.72)}.venue-summary>strong{display:block;margin-bottom:8px}.venue-summary>div{display:flex;gap:7px;flex-wrap:wrap}.task-chip{display:inline-flex;padding:6px 9px;border-radius:999px;background:#eef1f5;font-size:11px;font-weight:800}.locked-chip{background:linear-gradient(135deg,#e7edf5,#dde6f2);box-shadow:inset 0 0 0 1px rgba(50,70,105,.08)}.lock-note{align-self:center;padding:8px 10px;border-radius:999px;background:#e7edf5;font-size:11px;font-weight:850;color:#465166}.rate-toolbar{display:flex;align-items:end;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-top:14px}.rate-toolbar>.field{min-width:180px}.duty-rate-card{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:16px;background:linear-gradient(135deg,#f5f7fa,#e9edf3);border:1px solid var(--line)}.duty-rate-card span{font-size:12px;color:var(--muted);font-weight:700}.duty-rate-card strong{font-size:19px}.rate-history{display:grid;gap:7px;margin-top:14px}.rate-history-title{font-size:12px;font-weight:900;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}.rate-history-row{display:grid;grid-template-columns:130px 180px 1fr;gap:10px;align-items:center;padding:9px 11px;border-radius:13px;background:rgba(247,249,252,.86);border:1px solid var(--line)}.rate-history-row small{color:var(--muted)}.summary-name+small{display:block;margin-top:3px;color:var(--muted)}
@media(max-width:760px){.rate-history-row{grid-template-columns:1fr 1fr}.rate-history-row small{grid-column:1/-1}.duty-rate-card{width:100%;justify-content:space-between}}

/* V12 rate console */
.btn-nav-accent{background:linear-gradient(135deg,#17191f,#343a46)!important;color:#fff!important;border-color:rgba(255,255,255,.08)!important;box-shadow:0 10px 26px rgba(20,24,32,.16)!important}
.rate-console{position:relative;overflow:hidden;background:linear-gradient(145deg,rgba(255,255,255,.97),rgba(241,244,248,.92))}
.rate-console:before{content:"";position:absolute;inset:-120px auto auto -100px;width:280px;height:280px;border-radius:50%;background:radial-gradient(circle,rgba(52,69,102,.10),transparent 68%);pointer-events:none}
.rate-console-heading{position:relative}.rate-console-badge{display:inline-flex;padding:7px 10px;border-radius:999px;background:linear-gradient(135deg,#181b21,#3d4554);color:#fff;font-size:10px;font-weight:900;letter-spacing:.12em;box-shadow:0 8px 18px rgba(23,28,38,.14)}
.rate-console-grid{display:grid;grid-template-columns:minmax(280px,.82fr) minmax(460px,1.35fr);gap:16px;margin-top:18px}.rate-module{position:relative;padding:17px;border:1px solid rgba(38,49,68,.09);border-radius:22px;background:linear-gradient(145deg,rgba(255,255,255,.92),rgba(245,247,250,.84));box-shadow:0 12px 32px rgba(25,33,48,.06)}.rate-module-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.rate-module h3{margin:0}.rate-module p{margin:5px 0 0;font-size:12px}.rate-employees-module{margin-top:16px}.rate-city-field{min-width:180px}
.grade-list{display:grid;gap:9px;margin-top:15px}.grade-chip{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 13px;border-radius:16px;border:1px solid var(--line);background:linear-gradient(135deg,#fff,#f2f5f8)}.grade-chip>div{min-width:0}.grade-chip strong{display:block;font-size:18px}.grade-chip span{display:block;color:var(--muted);font-size:11px;margin-top:2px}.grade-chip.is-inactive,.work-rule-row.is-inactive,.rate-option-row.is-inactive{opacity:.48;filter:grayscale(.35)}
.rate-inline-editor{display:grid;grid-template-columns:minmax(130px,1fr) minmax(120px,.7fr) auto;gap:10px;align-items:end;margin-top:14px;padding-top:14px;border-top:1px solid var(--line)}
.work-rule-list{display:grid;gap:8px;margin-top:15px}.work-rule-row{display:grid;grid-template-columns:minmax(150px,1.1fr) minmax(190px,1fr) auto;gap:10px;align-items:center;padding:11px 12px;border:1px solid var(--line);border-radius:16px;background:rgba(255,255,255,.76)}.work-rule-name strong,.work-rule-name span{display:block}.work-rule-name span{font-size:11px;color:var(--muted);margin-top:3px}.work-rule-mode select{min-height:38px;padding:8px 10px}.work-rule-actions{display:flex;gap:7px;justify-content:flex-end}.mode-pill{display:inline-flex;padding:7px 9px;border-radius:999px;background:#eef1f5;font-size:11px;font-weight:800;color:#4a5260}
.rate-option-list{display:grid;gap:9px;margin:14px 0 18px}.rate-option-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 13px;border:1px solid var(--line);border-radius:16px;background:linear-gradient(135deg,#fff,#f4f6f9)}.rate-option-row strong,.rate-option-row span{display:block}.rate-option-row span{font-size:12px;color:var(--muted);margin-top:3px}.work-rate-option-action{display:flex;align-items:end}.work-rate-option-action .btn{width:100%;min-height:46px}
@media(max-width:980px){.rate-console-grid{grid-template-columns:1fr}.work-rule-row{grid-template-columns:1fr 1fr}.work-rule-actions{grid-column:1/-1;justify-content:flex-start}}
@media(max-width:650px){.rate-inline-editor,.work-rule-row{grid-template-columns:1fr}.work-rule-actions{grid-column:auto}.rate-city-field{width:100%}.grade-chip,.rate-option-row{align-items:flex-start;flex-direction:column}.grade-chip .btn,.rate-option-row .btn{width:100%}}
.task-row-with-preset{grid-template-columns:minmax(145px,1fr) minmax(170px,1.15fr) minmax(120px,.72fr) auto}
@media(max-width:900px){.task-row-with-preset{grid-template-columns:1fr 1fr}.task-row-with-preset .remove-task,.task-row-with-preset .lock-note{grid-column:1/-1}}
@media(max-width:600px){.task-row-with-preset{grid-template-columns:1fr}}


/* V13 navigation, mobile header and separate rates page */
html,body{max-width:100%;overflow-x:hidden}
.topbar,.brand-heading,.title-row,.topbar-actions{min-width:0}
.topbar{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;align-items:center}
.topbar-actions{display:flex;gap:8px;justify-content:flex-end;flex-wrap:wrap}
.brand-heading{display:flex;align-items:center;gap:14px}
.brand-heading>div{min-width:0}.brand-heading h1{overflow-wrap:anywhere}.title-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.rates-console-dialog{padding:14px}.rates-page-card{width:min(1120px,100%);max-width:1120px;max-height:calc(100vh - 28px)}
.rates-page-header{position:sticky;top:0;z-index:5;background:rgba(255,255,255,.94);backdrop-filter:blur(16px);padding-bottom:13px;border-bottom:1px solid var(--line)}
.rate-console-simple{padding-top:6px}.rate-simple-grid{display:grid;grid-template-columns:minmax(300px,.78fr) minmax(420px,1.22fr);gap:16px}
.work-reference-list{display:grid;gap:8px;margin-top:15px}.work-reference-row{display:grid;grid-template-columns:minmax(150px,1fr) minmax(130px,.55fr) auto;gap:10px;align-items:center;padding:12px 13px;border:1px solid var(--line);border-radius:16px;background:linear-gradient(135deg,#fff,#f5f7fa)}
.work-reference-row .ref-name strong,.work-reference-row .ref-name span{display:block}.work-reference-row .ref-name span{font-size:11px;color:var(--muted);margin-top:3px}.work-reference-row .ref-amount{font-weight:900;text-align:right}.work-reference-row.is-inactive{opacity:.48;filter:grayscale(.35)}
.pending-count{display:inline-grid;place-items:center;min-width:20px;height:20px;padding:0 6px;margin-left:4px;border-radius:999px;background:#111318;color:#fff;font-size:10px}
@media(max-width:900px){.rate-simple-grid{grid-template-columns:1fr}}
@media(max-width:760px){
  .app-shell{width:min(100% - 12px,1260px);padding-top:6px}
  .topbar{position:static!important;display:flex!important;flex-direction:column;align-items:stretch!important;padding:12px 13px;border-radius:18px;gap:10px}
  .brand-heading{flex-direction:row!important;align-items:center!important;gap:10px!important}
  .header-logo{width:42px!important;height:42px!important;max-height:42px!important;object-fit:contain;object-position:left center;flex:0 0 42px}
  .brand-heading h1{font-size:21px;line-height:1.1;margin:0}.brand-heading .muted{font-size:11px;margin-top:4px}.role-pill{font-size:9px;padding:5px 7px}
  .topbar-actions{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));width:100%;gap:7px!important}
  .topbar-actions .btn{width:100%;min-width:0!important;padding:10px 8px;font-size:12px;white-space:normal}
  .rates-console-dialog{padding:0}.rates-page-card{width:100%;max-width:none;min-height:100vh;max-height:100vh;border-radius:0;padding:14px}.rates-page-header{top:0;padding-top:4px}
  .work-reference-row{grid-template-columns:1fr auto}.work-reference-row .ref-amount{text-align:left}.work-reference-row .work-rule-actions{grid-column:1/-1;justify-content:stretch}.work-reference-row .work-rule-actions .btn{flex:1}
}
@media(max-width:420px){.topbar-actions{grid-template-columns:1fr 1fr}.title-row{gap:6px}.brand-heading .muted{display:none}}

.header-logo-mobile{display:none;width:42px;height:42px;object-fit:contain;flex:0 0 42px}
@media(max-width:760px){.header-logo-desktop{display:none!important}.header-logo-mobile{display:block!important}}

/* V14: full rates page, clean mobile layout and PWA help */
.rates-view{padding-bottom:64px}
.rates-topbar{margin-bottom:16px}
.rates-tabs{position:sticky;top:96px;z-index:12;display:flex;gap:8px;padding:9px;margin-top:14px;border-radius:20px;overflow:auto;scrollbar-width:none}
.rates-tabs::-webkit-scrollbar{display:none}
.rates-tab{flex:1;min-width:180px;border:0;border-radius:14px;padding:12px 14px;background:transparent;color:#666f7c;font-weight:850;white-space:nowrap;cursor:pointer;transition:.18s ease}
.rates-tab:hover{background:rgba(235,239,245,.78);color:#252b34}
.rates-tab.is-active{background:linear-gradient(135deg,#15181d,#353c48);color:#fff;box-shadow:0 9px 22px rgba(23,29,40,.18)}
.rates-page-content{display:grid;gap:16px}
.rates-panel{margin-top:0;padding:24px;border-radius:26px;overflow:visible}
.rates-panel .rate-module-head{margin-bottom:4px}
.rates-panel .rate-module-head h2{font-size:24px}
.rates-employee-table{margin-top:16px}
.install-help-dialog{width:min(560px,calc(100% - 20px))}
.install-help-card{max-height:none}
.install-help-content{font-size:15px;line-height:1.55;color:#3f4652}
.install-help-content ol{margin:8px 0 0;padding-left:24px;display:grid;gap:10px}
.install-help-content p{margin-bottom:0}

/* Custom venue field should look intentional when it appears. */
[data-custom-wrap]{margin-top:10px;padding:12px;border:1px dashed rgba(55,65,85,.22);border-radius:16px;background:rgba(248,250,253,.78)}
[data-custom-wrap] input{background:#fff}

@media(max-width:760px){
  .rates-view{width:100%;padding:6px 6px 42px}
  .rates-view .topbar{margin:0}
  .rates-tabs{top:0;margin:8px 0 12px;padding:7px;border-radius:16px;gap:6px}
  .rates-tab{min-width:155px;padding:10px 12px;font-size:12px}
  .rates-panel{padding:16px;border-radius:20px;margin:0}
  .rates-panel .rate-module-head h2{font-size:20px}
  .rate-inline-editor{grid-template-columns:1fr!important;gap:9px}
  .rate-inline-editor .btn{width:100%}
  .grade-chip{align-items:stretch!important;flex-direction:column!important}
  .grade-chip .work-rule-actions{display:grid;grid-template-columns:1fr 1fr;width:100%}
  .grade-chip .btn{width:100%}
  .work-reference-row{display:grid;grid-template-columns:1fr!important;gap:8px;padding:13px}
  .work-reference-row .ref-amount{text-align:left!important;font-size:18px}
  .work-reference-row .work-rule-actions{grid-column:auto!important;display:grid;grid-template-columns:1fr 1fr;gap:7px}
  .work-reference-row .work-rule-actions .btn{width:100%}
  .rate-city-field{width:100%;min-width:0}

  /* Employee rates table becomes stacked cards instead of a horizontally scrolling table. */
  .rates-employee-table{overflow:visible}
  .rates-employee-table table,.rates-employee-table thead,.rates-employee-table tbody,.rates-employee-table tr,.rates-employee-table th,.rates-employee-table td{display:block;width:100%}
  .rates-employee-table thead{display:none}
  .rates-employee-table tbody{display:grid;gap:10px}
  .rates-employee-table tr{padding:13px;border:1px solid var(--line);border-radius:16px;background:rgba(255,255,255,.82);box-shadow:0 5px 14px rgba(24,31,46,.04)}
  .rates-employee-table td{display:grid;grid-template-columns:minmax(105px,.7fr) minmax(0,1fr);gap:10px;align-items:center;padding:6px 0!important;border:0!important;text-align:left!important;overflow-wrap:anywhere}
  .rates-employee-table td:nth-child(1)::before{content:'Сотрудник'}
  .rates-employee-table td:nth-child(2)::before{content:'Должность'}
  .rates-employee-table td:nth-child(3)::before{content:'Город'}
  .rates-employee-table td:nth-child(4)::before{content:'Монтажная ставка'}
  .rates-employee-table td:nth-child(5)::before{content:'Действует с'}
  .rates-employee-table td::before{font-size:10px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-weight:850}
  .rates-employee-table td:nth-child(6){display:block;padding-top:10px!important}
  .rates-employee-table td:nth-child(6)::before{display:none}
  .rates-employee-table td:nth-child(6) .btn{width:100%}
  .rates-employee-table .empty-row{display:block!important;text-align:center!important}
}

@media(max-width:430px){
  .rates-tabs{display:grid;grid-template-columns:1fr}
  .rates-tab{min-width:0;width:100%;white-space:normal}
  .work-reference-row .work-rule-actions,.grade-chip .work-rule-actions{grid-template-columns:1fr}
  .rates-employee-table td{grid-template-columns:1fr;gap:2px}
}


/* V15: session boot splash + custom venue consistency */
.boot-view{position:fixed;inset:0;z-index:5000;display:grid;place-items:center;background:radial-gradient(circle at 50% 35%,#ffffff 0,#f4f6f9 42%,#e8ecf2 100%)}
.boot-card{display:grid;place-items:center;gap:18px;padding:26px 30px;border-radius:28px;background:rgba(255,255,255,.78);border:1px solid rgba(255,255,255,.9);box-shadow:0 22px 70px rgba(20,27,39,.12);backdrop-filter:blur(18px)}
.boot-icon{width:70px;height:70px;object-fit:contain}
.boot-spinner{width:28px;height:28px;border:3px solid rgba(20,24,30,.13);border-top-color:#171a20;border-radius:50%;animation:boot-spin .75s linear infinite}
@keyframes boot-spin{to{transform:rotate(360deg)}}
@media(max-width:600px){.boot-card{padding:22px 26px;border-radius:24px}.boot-icon{width:62px;height:62px}}

/* V15.2: rates page mobile width fix */
@media (max-width:760px){
  .rates-view,
  .rates-page-content,
  .rates-panel,
  .rates-employee-table,
  .rates-employee-table .summary-table,
  .rates-employee-table tbody,
  .rates-employee-table tr,
  .rates-employee-table td{
    min-width:0!important;
    max-width:100%!important;
  }
  .rates-view{width:calc(100% - 12px)!important;margin-left:auto;margin-right:auto;overflow-x:clip}
  .rates-page-content{width:100%;overflow:hidden}
  .rates-panel{width:100%;overflow:hidden}
  .rates-panel .section-heading.compact{flex-direction:column!important;align-items:stretch!important;width:100%}
  .rates-panel .section-heading.compact>div{width:100%;min-width:0}
  .rate-city-field{width:100%!important;max-width:none!important}
  .rates-employee-table{width:100%!important;overflow:visible!important}
  .rates-employee-table .summary-table{width:100%!important;min-width:0!important;table-layout:fixed!important}
  .rates-employee-table tbody{width:100%!important}
  .rates-employee-table tr{width:100%!important;overflow:hidden}
  .rates-employee-table td{width:100%!important;overflow-wrap:anywhere;word-break:break-word}
  .rates-employee-table td>*{min-width:0;max-width:100%}
}

/* V16: profile avatars, employee table view, host positions, positive earnings */
.salary-positive{color:#18a66f!important;text-shadow:0 1px 0 rgba(255,255,255,.08)}
.summary-card-accent .salary-positive{color:#5ff0ae!important}
.report-list-heading{align-items:center}.report-view-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end}.view-toggle{display:inline-flex;padding:4px;border-radius:14px;background:#edf0f4;border:1px solid var(--line)}.view-toggle-btn{border:0;background:transparent;padding:8px 12px;border-radius:10px;font-weight:800;color:#69717d;cursor:pointer}.view-toggle-btn.is-active{background:#fff;color:#171a20;box-shadow:0 4px 12px rgba(20,26,36,.09)}
.employee-table-view{margin-top:18px}.employee-report-table td,.employee-report-table th{white-space:nowrap}.employee-report-table tfoot td{font-weight:850;background:#f6f8fb}
.profile-avatar-header{width:48px;height:48px;border-radius:15px;object-fit:cover;box-shadow:0 8px 18px rgba(20,25,34,.12);border:2px solid rgba(255,255,255,.9);flex:0 0 48px}.avatar-preview{min-height:86px;border:1px dashed var(--line-strong);border-radius:18px;display:grid;place-items:center;background:#f7f9fc;color:var(--muted);overflow:hidden}.avatar-preview img{width:86px;height:86px;border-radius:18px;object-fit:cover;display:block}.avatar-preview span{font-size:12px;font-weight:750}
.host-positions{grid-column:1/-1}.position-list{display:grid;gap:8px}.position-row{display:grid;grid-template-columns:minmax(180px,1fr) 150px auto auto;gap:8px;align-items:center;padding:10px;border:1px solid var(--line);border-radius:15px;background:rgba(255,255,255,.72)}.position-row.is-inactive{opacity:.5}.position-access{font-size:12px;font-weight:800;color:var(--muted)}.position-create{display:grid;grid-template-columns:minmax(200px,1fr) auto;gap:10px;align-items:end;margin-top:12px}
.work-reference-row .ref-name span{display:none!important}
@media(max-width:760px){.report-list-heading{align-items:stretch;flex-direction:column}.report-view-actions{width:100%;display:grid;grid-template-columns:1fr}.view-toggle{width:100%;display:grid;grid-template-columns:1fr 1fr}.view-toggle-btn{width:100%}.report-view-actions .btn{width:100%}.employee-table-view .table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}.employee-report-table{min-width:720px}.position-row{grid-template-columns:1fr}.position-row .btn{width:100%}.position-create{grid-template-columns:1fr}.profile-avatar-header{width:42px;height:42px;flex-basis:42px}#employeeView .header-logo-mobile{display:none!important}}

/* V17: focused admin navigation, attention queue, month closure and offline workflow */
.offline-banner{margin:14px 0 0;padding:12px 16px;border:1px solid rgba(230,164,35,.3);border-radius:16px;background:linear-gradient(135deg,#fff8dc,#fffdf4);color:#725314;box-shadow:0 8px 20px rgba(124,88,18,.06)}
.admin-nav{display:flex;gap:8px;padding:8px;margin-top:14px;overflow-x:auto;scrollbar-width:none;position:sticky;top:8px;z-index:20;background:rgba(255,255,255,.88);backdrop-filter:blur(18px)}
.admin-nav::-webkit-scrollbar{display:none}.admin-nav-btn{border:0;background:transparent;padding:10px 14px;border-radius:12px;font-weight:850;color:#6b7280;white-space:nowrap;cursor:pointer}.admin-nav-btn:hover{background:#f1f4f8;color:#20242b}.admin-nav-btn.is-active{background:linear-gradient(135deg,#171a20,#3b4350);color:#fff;box-shadow:0 8px 18px rgba(20,27,38,.16)}
.attention-card{border-color:rgba(234,173,47,.28);background:linear-gradient(180deg,rgba(255,255,255,.96),rgba(255,250,237,.9))}.attention-count{min-width:34px;height:34px;padding:0 10px;border-radius:999px;display:grid;place-items:center;background:#eef1f5;color:#7a828f;font-weight:900}.attention-count.has-items{background:#fff0c6;color:#9a6500}.attention-list{display:grid;gap:10px}.attention-row{display:flex;align-items:center;gap:12px;justify-content:space-between;padding:13px 14px;border:1px solid var(--line);border-radius:16px;background:#fff}.attention-row.attention-blocking{border-color:rgba(213,77,77,.24);background:linear-gradient(135deg,#fff,#fff7f7)}.attention-row.attention-warning{border-color:rgba(224,165,46,.25)}.attention-main{display:grid;gap:8px;min-width:0}.attention-main>div:first-child{display:grid;gap:2px}.attention-main span{font-size:12px;color:var(--muted)}.attention-issues{display:flex;gap:6px;flex-wrap:wrap}.attention-tag{display:inline-flex;padding:5px 8px;border-radius:999px;font-size:11px!important;font-weight:850}.attention-tag.danger{background:#ffe5e5;color:#a33636}.attention-tag.warn{background:#fff1c7;color:#8b6200}
.summary-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.month-status-line{display:flex;gap:6px;flex-wrap:wrap;margin-top:5px}.month-status-pill{display:inline-flex;padding:5px 9px;border-radius:999px;font-size:11px;font-weight:850}.month-status-pill.open{background:#e8f8f0;color:#18835b}.month-status-pill.closed{background:#eef0f3;color:#4f5660}.filter-grow{min-width:220px;flex:1}.staff-filter-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:12px}.staff-filter-grid .field-full{grid-column:1/-1}
.employee-profile-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:18px}.profile-stat{padding:12px 13px;border:1px solid var(--line);border-radius:16px;background:linear-gradient(180deg,#fff,#f8fafc);display:grid;gap:4px;min-width:0}.profile-stat span{font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-weight:800}.profile-stat strong{font-size:15px;overflow-wrap:anywhere}.profile-stat-positive{background:linear-gradient(135deg,#e9fbf3,#f8fffb);border-color:rgba(24,166,111,.2)}.profile-stat-positive strong{color:#168a5e}
.meal-suggestion{margin-top:7px;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 10px;border-radius:12px;background:#f1f7f4;color:#316a55;font-size:12px}.link-button{border:0;background:transparent;color:#13825a;font-weight:850;cursor:pointer;padding:2px 0}
@media(max-width:900px){.employee-profile-summary{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.admin-nav{top:4px;margin:8px 0 12px;padding:6px;border-radius:16px}.admin-nav-btn{padding:9px 11px;font-size:12px}.attention-row{align-items:stretch;flex-direction:column}.attention-row>.btn{width:100%}.summary-heading{align-items:stretch;flex-direction:column}.summary-actions{display:grid;grid-template-columns:1fr}.summary-actions .btn{width:100%}.staff-filter-grid{grid-template-columns:1fr}.staff-filter-grid .field-full{grid-column:auto}.employee-profile-summary{grid-template-columns:1fr 1fr}.filter-grow{min-width:0}}
@media(max-width:430px){.employee-profile-summary{grid-template-columns:1fr}.admin-nav{display:grid;grid-template-columns:1fr 1fr;position:static}.admin-nav-btn{white-space:normal}}

/* V18.2 workflow refinements */
.field-hint{display:block;margin-top:6px;color:var(--muted);font-size:12px}.trip-checkbox{font-weight:850!important}.badge-trip{background:#e8f0ff;color:#315f9b}.review-action{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}.review-status{display:inline-flex;align-items:center;border-radius:999px;padding:6px 10px;font-size:11px;font-weight:900}.review-status.is-reviewed{background:#e5f7ea;color:#23733b}.review-status.is-pending{background:#fff0c8;color:#8b6200}.x2-check,.x2-approve{align-self:center;white-space:nowrap}.admin-review-task{grid-template-columns:minmax(180px,1.3fr) minmax(130px,.8fr) auto}.city-change-box{padding:12px;border:1px solid var(--line);border-radius:16px;background:#f8fafc}.city-change-controls{display:grid;grid-template-columns:minmax(150px,1fr) minmax(160px,1fr) auto;gap:10px;margin-top:8px;align-items:center}.attention-list{max-height:540px;overflow-y:auto;padding-right:4px;overscroll-behavior:contain}.attention-person{border:1px solid var(--line);border-radius:17px;background:#fff;padding:12px}.attention-person.attention-blocking{border-color:rgba(213,77,77,.24);background:linear-gradient(135deg,#fff,#fff8f8)}.attention-person-head{width:100%;display:flex;align-items:center;justify-content:space-between;gap:12px;text-align:left;background:transparent;border:0;padding:0;color:inherit}.attention-person-head strong,.attention-person-head span{display:block}.attention-person-head span{font-size:12px;color:var(--muted);margin-top:3px}.attention-chevron{font-size:20px}.attention-person-details{display:grid;gap:7px;margin-top:10px;padding-top:10px;border-top:1px solid var(--line)}.attention-detail-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 9px;border-radius:12px;background:rgba(246,248,251,.9)}.attention-detail-row strong,.attention-detail-row span{display:block}.attention-detail-row span{font-size:11px;color:var(--muted);margin-top:2px}.venue-row .venue-city-label{font-size:12px;color:var(--muted)}
@media(max-width:700px){.admin-review-task{grid-template-columns:1fr}.city-change-controls{grid-template-columns:1fr}.attention-list{max-height:440px}.review-action{justify-content:flex-start}.task-row{grid-template-columns:1fr}.x2-check{justify-self:start}.dialog-actions{gap:8px;flex-wrap:wrap}.dialog-actions-right{margin-left:0;width:100%;justify-content:flex-end}}

/* V20: sortable analytics, compact header, staff review table, diagnostics */
.brand-home-btn{display:block;border:0;background:transparent;padding:0;margin:0;cursor:pointer;border-radius:12px}.brand-home-btn:focus-visible{outline:3px solid rgba(38,92,166,.28);outline-offset:4px}.panel-heading-copy h1{font-size:clamp(24px,3vw,36px);line-height:1.05;margin:0}.panel-heading-copy .muted{margin-top:5px}.role-inline{font-weight:850;color:#303640}.topbar .brand-heading{gap:18px;align-items:center}.topbar .header-logo-desktop{max-width:190px;height:auto}
.sort-head{appearance:none;border:0;background:transparent;color:inherit;font:inherit;font-weight:850;text-transform:inherit;letter-spacing:inherit;display:inline-flex;align-items:center;gap:5px;padding:0;cursor:pointer;white-space:nowrap}.sort-head span{display:inline-block;width:12px;color:#4a5565;font-size:9px}.sort-head.is-sorted{color:#171a20}
.period-presets{display:flex;gap:7px;flex-wrap:wrap;margin:10px 0 14px}.admin-summary-filters{grid-template-columns:repeat(5,minmax(130px,auto)) minmax(220px,1fr)!important}.staff-report-viewbar{display:flex;justify-content:flex-end;margin:10px 0 12px}.workday-correction-box{margin:12px 0;padding:14px;border:1px solid var(--line);border-radius:18px;background:linear-gradient(180deg,#fafbfc,#f5f7fa)}.admin-venue-corrections{margin-top:8px}.admin-venue-correction-list{display:grid;gap:8px;margin-top:7px}.admin-venue-correction-row{display:grid;grid-template-columns:minmax(180px,1fr) auto;gap:10px;align-items:center}.admin-venue-correction-row input[type=text]{min-width:0}
.avatar-preview,.profile-avatar-header{cursor:zoom-in}.avatar-lightbox{background:rgba(15,18,24,.78);border:0;padding:0;max-width:none;max-height:none;width:100vw;height:100vh}.avatar-lightbox::backdrop{background:rgba(15,18,24,.78)}.avatar-lightbox-card{position:relative;width:100%;height:100%;display:grid;place-items:center;padding:32px}.avatar-lightbox-card img{max-width:min(92vw,1000px);max-height:88vh;object-fit:contain;border-radius:20px;box-shadow:0 24px 80px rgba(0,0,0,.35);background:#fff}.avatar-lightbox-close{position:fixed;right:24px;top:20px;z-index:2;background:#fff}
.online-list{display:grid;gap:8px;max-height:60vh;overflow:auto}.online-row{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;padding:11px 12px;border:1px solid var(--line);border-radius:14px;background:#f8fafc}.online-row div{display:grid;gap:2px}.online-row span{font-size:12px;color:var(--muted)}.online-row time{font-size:12px;color:var(--muted);white-space:nowrap}.online-dot{width:9px;height:9px;border-radius:50%;background:#20b574;box-shadow:0 0 0 4px rgba(32,181,116,.12)}
.host-technical{grid-column:1/-1}.log-filter-row{display:flex;gap:8px;flex-wrap:wrap}.log-filter-row select{min-width:150px}.log-filter-row input{min-width:220px;flex:1}.technical-log-list{max-height:560px;overflow:auto}.technical-log-row{grid-template-columns:155px 76px minmax(130px,.7fr) minmax(160px,.8fr) minmax(260px,2fr)!important}.technical-log-row>div{display:grid;gap:4px}.technical-log-row small{display:block;color:var(--muted)}.technical-log-row pre{white-space:pre-wrap;overflow-wrap:anywhere;max-width:100%;font-size:11px;background:#171a20;color:#e9edf5;padding:10px;border-radius:10px}.log-level{font-size:11px}.log-error{color:#bd3030}.log-warn{color:#9b6b00}.log-info{color:#286b9f}.audit-row>div small{display:block;margin-top:4px;color:var(--muted)}.audit-row details{font-size:11px;color:var(--muted)}
.phone-conflict-account{padding:10px;border-radius:14px;background:#f7f8fb;border:1px solid var(--line)}

/* compact employee directory */
.people-layout .employee-directory-card .section-heading{gap:12px}.employee-row{min-height:0!important;padding:12px 13px!important}.employee-row strong{line-height:1.22}.employee-row span{margin-top:3px}.employee-admin-list{gap:8px!important}

@media(max-width:1000px){.admin-summary-filters{grid-template-columns:repeat(3,minmax(0,1fr))!important}.technical-log-row{grid-template-columns:1fr!important}.technical-log-row>*{min-width:0}.panel-heading-copy h1{font-size:28px}}
@media(max-width:760px){
  .topbar{padding:14px!important}.topbar .brand-heading{gap:10px;align-items:center;min-width:0}.topbar .header-logo-mobile{display:block!important;width:42px;height:42px}.topbar .header-logo-desktop{display:none!important}.panel-heading-copy{min-width:0}.panel-heading-copy h1{font-size:22px;white-space:normal}.panel-heading-copy .muted{font-size:12px}.topbar-actions{width:100%;display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.topbar-actions .btn{width:100%;min-width:0;padding-left:8px;padding-right:8px}
  .admin-summary-filters{grid-template-columns:1fr 1fr!important}.admin-summary-filters .filter-grow{grid-column:1/-1}.period-presets{display:grid;grid-template-columns:1fr 1fr}.period-presets .btn{width:100%;white-space:normal}.admin-venue-correction-row{grid-template-columns:1fr}.admin-venue-correction-row .checkbox-label{justify-self:start}.staff-report-viewbar{justify-content:stretch}.staff-report-viewbar .view-toggle{width:100%}.staff-report-viewbar .view-toggle-btn{flex:1}.technical-log-list{max-height:440px}
  .people-layout{grid-template-columns:1fr!important}.people-layout .employee-directory-card{padding:14px}.people-layout .employee-directory-card .section-heading{display:grid!important;grid-template-columns:1fr;align-items:stretch}.people-layout .employee-directory-card .section-heading .btn{width:100%}.staff-filter-grid{grid-template-columns:1fr!important}.staff-filter-grid .field{min-width:0}.staff-filter-grid select,.staff-filter-grid input{width:100%;max-width:none}.employee-row{padding:11px 12px!important;border-radius:14px!important}.employee-row strong{font-size:14px}.employee-row span{font-size:11px}
  .avatar-lightbox-card{padding:18px}.avatar-lightbox-close{right:12px;top:12px}.avatar-lightbox-card img{max-width:94vw;max-height:84vh}
}
@media(max-width:430px){.admin-summary-filters{grid-template-columns:1fr!important}.admin-summary-filters .filter-grow{grid-column:auto}.period-presets{grid-template-columns:1fr}.topbar-actions{grid-template-columns:1fr 1fr}.sort-head{font-size:10px}.online-row{grid-template-columns:auto 1fr}.online-row time{grid-column:2}}

/* V20.4 — polish, mobile layout and taxi receipt waiver */
#adminView .topbar{padding:15px 18px;background:rgba(255,255,255,.86);border-radius:22px;box-shadow:0 10px 32px rgba(24,31,46,.07)}
#adminView .brand-heading{gap:14px}
#adminView .header-logo-desktop{width:168px;max-width:168px}
#adminView .panel-heading-copy h1{font-size:30px;letter-spacing:-.035em}
#adminView .panel-heading-copy .muted{font-size:12px;color:#7b828c}
#adminView .topbar-actions{gap:7px}
#adminView .topbar-actions .btn{padding:10px 13px;border-radius:13px}
#adminView #onlineBtn{background:#f3f7f5;border-color:rgba(28,150,98,.08)}
#adminView #onlineBtn::before{content:"";width:7px;height:7px;border-radius:50%;background:#20b574;display:inline-block;margin-right:7px;box-shadow:0 0 0 3px rgba(32,181,116,.10)}
.taxi-waiver-row{margin-top:10px;padding:10px 12px;border-radius:13px;background:#fff7e8;border:1px solid rgba(196,133,19,.14);color:#765314}
.legacy-no-venue{font-size:11px;color:var(--muted);padding:4px 7px;border-radius:8px;background:#f0f2f5}

@media(max-width:760px){
  #peopleSection{display:grid!important;grid-template-columns:1fr!important;gap:12px}
  #peopleSection>.admin-panel:first-child{padding:15px!important}
  #peopleSection>.admin-panel:first-child>.section-heading{display:grid!important;grid-template-columns:1fr!important;gap:10px!important;align-items:stretch!important}
  #peopleSection>.admin-panel:first-child>.section-heading h2{margin:0}
  #peopleSection #adminAddEmployeeBtn{width:100%!important}
  #peopleSection .staff-filter-grid{display:grid!important;grid-template-columns:1fr!important;gap:10px!important}
  #peopleSection .staff-filter-grid .field,#peopleSection .staff-filter-grid .field-full{grid-column:auto!important;width:100%!important;min-width:0!important}
  #peopleSection .staff-filter-grid select,#peopleSection .staff-filter-grid input{width:100%!important;max-width:none!important}
  #peopleSection .employee-list{gap:8px;margin-top:10px}
  #peopleSection .employee-row{padding:11px 12px!important}
  #adminView .topbar{display:grid!important;grid-template-columns:1fr!important;gap:11px!important;padding:13px!important}
  #adminView .brand-heading{display:grid!important;grid-template-columns:auto minmax(0,1fr)!important;align-items:center!important;gap:10px!important}
  #adminView .header-logo-mobile{width:38px!important;height:38px!important}
  #adminView .panel-heading-copy h1{font-size:21px!important;white-space:normal!important}
  #adminView .panel-heading-copy .muted{font-size:11px!important}
  #adminView .topbar-actions{display:grid!important;grid-template-columns:1fr 1fr!important;gap:7px!important;width:100%}
  #adminView .topbar-actions .btn{width:100%;font-size:12px;padding:10px 8px}
  .admin-report-table{min-width:0!important;border-collapse:separate!important;border-spacing:0 10px!important}
  .admin-report-table thead{display:none}
  .admin-report-table tbody,.admin-report-table tr,.admin-report-table td{display:block;width:100%}
  .admin-report-table tbody tr{border:1px solid var(--line);border-radius:16px;padding:8px 11px;background:#fff;overflow:hidden}
  .admin-report-table td{border:0!important;padding:7px 0!important;text-align:right!important;white-space:normal!important;display:grid!important;grid-template-columns:105px minmax(0,1fr)!important;gap:10px;align-items:center}
  .admin-report-table td::before{content:attr(data-label);text-align:left;color:var(--muted);font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.03em}
  .admin-report-table td .btn{width:100%}
  .admin-report-table .empty-row{display:block!important;text-align:center!important}
}

/* V20.5 — desktop login, employee directory polish */
@media(min-width:761px){
  .login-card{width:min(620px,calc(100vw - 48px));padding:30px 34px;display:grid;grid-template-columns:112px minmax(0,1fr);gap:30px;align-items:center;border-radius:30px}
  .login-card::after{border-radius:30px}
  .login-icon{width:78px;height:78px;margin:0 auto;align-self:center}
  .login-form{gap:12px}
  .login-form .field{gap:6px}
  .login-form input{padding:11px 14px}
  .login-form .btn{padding:11px 15px}
  .login-form .error-text{grid-column:1/-1;margin-top:2px}
}
#peopleSection>.admin-panel:first-child>.section-heading{display:grid;grid-template-columns:1fr;gap:10px;align-items:stretch}
#peopleSection>.admin-panel:first-child>.section-heading h2{margin:0}
#peopleSection #adminAddEmployeeBtn{width:100%}
#peopleSection .staff-filter-grid{margin-top:14px}
#peopleSection .staff-filter-grid .city-filter{margin-top:0}
#peopleSection .staff-filter-grid .field{min-width:0}
#peopleSection .staff-filter-grid select,#peopleSection .staff-filter-grid input{min-width:0;width:100%}

/* V20.6 — multiple taxi trips, altitude surcharge, fines */
.taxi-section{padding:15px;border:1px solid var(--line);border-radius:18px;background:#fafbfc}.taxi-section .section-heading{margin-bottom:10px}.taxi-section .section-heading h3{margin:0}.taxi-section .section-heading p{margin:3px 0 0}.taxi-trips-editor,.admin-taxi-trips-editor{display:grid;gap:10px}.taxi-trip-card,.admin-taxi-trip{border:1px solid var(--line);border-radius:16px;background:#fff;padding:13px}.taxi-trip-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}.taxi-trip-grid{display:grid;grid-template-columns:minmax(120px,.45fr) minmax(180px,1fr);gap:10px}.taxi-receipts{display:grid;gap:8px;margin-top:10px}.receipt-list{display:flex;flex-wrap:wrap;gap:7px;align-items:center}.receipt-chip{appearance:none;border:1px solid var(--line);background:#f6f8fb;border-radius:11px;padding:7px 9px;font:inherit;font-size:12px;cursor:pointer;color:var(--text);max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.receipt-chip:hover{background:#eef2f7}.receipt-chip.is-expired{cursor:default;color:var(--muted);background:#f3f3f3}.receipt-upload{position:relative;display:inline-flex;align-items:center;justify-content:center;justify-self:start;padding:8px 11px;border:1px dashed #aeb7c5;border-radius:11px;font-size:12px;font-weight:700;cursor:pointer;background:#fbfcfe}.receipt-upload input{position:absolute;inset:0;opacity:0;cursor:pointer}.pending-files{color:var(--muted);overflow-wrap:anywhere}.taxi-empty{padding:14px!important}.taxi-review-controls{display:grid;grid-template-columns:minmax(130px,220px) minmax(240px,1fr);gap:10px;align-items:end;margin-top:10px}.admin-taxi-trip .muted{margin:5px 0 9px}.admin-taxi-trip .taxi-waiver-row{margin:0;min-height:44px}.receipt-preview-dialog{width:min(1100px,96vw);max-width:none}.receipt-preview-card{width:100%;max-width:none}.receipt-preview-body{height:min(78vh,900px);display:grid;place-items:center;background:#11151b;border-radius:16px;overflow:hidden}.receipt-preview-body img{max-width:100%;max-height:100%;object-fit:contain}.receipt-preview-body iframe{width:100%;height:100%;border:0;background:#fff}.receipt-preview-body .empty-state{color:#fff}.altitude-check{margin:11px 0;padding:10px 12px;border-radius:13px;border:1px solid rgba(116,83,188,.14);background:#f8f5ff;display:flex;flex-wrap:wrap;gap:7px}.altitude-price{font-weight:800;color:#6446a6}.altitude-chip{background:#f3edff!important;border-color:#ded1fb!important}.altitude-chip.is-rejected{opacity:.6;text-decoration:line-through}.altitude-review-list{grid-column:1/-1;display:grid;gap:8px;margin-top:6px;padding-top:10px;border-top:1px solid var(--line)}.altitude-review-list h4{margin:0 0 2px}.altitude-review-row{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;border-radius:13px;background:#f8f5ff;border:1px solid #e7ddfa}.altitude-review-row>div{display:grid;gap:2px}.altitude-review-row span{font-size:12px;color:var(--muted)}.special-rate-row{background:#f8f5ff}.ref-name small{display:block;margin-top:3px;color:var(--muted);font-size:11px}.event-fines-notice{padding:13px;border:1px solid #ead8a9;border-radius:16px;background:#fff9e9}.event-fines-list{display:grid;gap:7px;margin-top:9px}.event-fine-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:5px 10px;align-items:center;padding:9px 10px;border-radius:12px;background:#fff;border:1px solid rgba(0,0,0,.06)}.event-fine-row>div{display:grid;gap:2px}.event-fine-row span,.event-fine-row small{font-size:11px;color:var(--muted)}.event-fine-row small{grid-column:1/-1}.fine-status{display:inline-flex;align-items:center;width:max-content;border-radius:999px;padding:4px 8px;font-size:11px;font-weight:800;background:#fff0c8;color:#7c5a00}.fine-approved .fine-status,.fine-badge.fine-approved{background:#e9f7ef;color:#20754a}.fine-rejected .fine-status,.fine-badge.fine-rejected{background:#eef0f3;color:#737b86}.fine-badge.fine-pending{background:#fff0c8;color:#7c5a00}.fine-create-form{padding-bottom:14px;border-bottom:1px solid var(--line)}.fine-list-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:15px 0 10px}.fine-list-toolbar select{max-width:260px}.fines-list{display:grid;gap:10px;max-height:55vh;overflow:auto;padding-right:3px}.fine-card{border:1px solid var(--line);border-radius:16px;padding:13px;background:#fff}.fine-card-main{display:flex;justify-content:space-between;gap:12px;align-items:start}.fine-card-main>div{display:grid;gap:3px}.fine-card-main span,.fine-meta{font-size:11px;color:var(--muted)}.fine-amount{white-space:nowrap}.fine-card p{margin:10px 0;white-space:pre-wrap}.fine-meta{display:flex;flex-wrap:wrap;gap:7px 12px;align-items:center}.fine-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:10px}.compact-actions{padding-top:8px}.fine-pending{border-color:#ead8a9}.fine-approved{border-color:#cce8d8}.fine-rejected{opacity:.78}

@media(max-width:760px){
  .taxi-trip-grid,.taxi-review-controls{grid-template-columns:1fr}.taxi-section{padding:12px}.taxi-trip-card,.admin-taxi-trip{padding:11px}.receipt-preview-dialog{width:100vw;height:100vh;margin:0;max-height:none}.receipt-preview-card{height:100%;border-radius:0}.receipt-preview-body{height:calc(100vh - 90px);border-radius:12px}.altitude-review-row{display:grid;grid-template-columns:1fr}.event-fine-row{grid-template-columns:1fr}.fine-card-main{display:grid;grid-template-columns:1fr}.fine-list-toolbar{align-items:stretch;display:grid}.fine-list-toolbar select{max-width:none;width:100%}
}

/* V20.7 manual numeric time input: avoids native Android/iOS picker wheels. */
.manual-time{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:8px;align-items:center}
.manual-time-part{text-align:center;font-variant-numeric:tabular-nums;font-weight:800;letter-spacing:.04em;min-width:0}
.manual-time-part::placeholder{font-weight:700;letter-spacing:.08em;color:#a0a7b2}
.manual-time-separator{font-size:22px;font-weight:900;line-height:1;color:#5d6572;user-select:none}
.manual-time.is-invalid .manual-time-part{border-color:#c63b31;box-shadow:0 0 0 3px rgba(198,59,49,.10);background:#fffafa}
.manual-time.is-disabled{opacity:.8}
@media(max-width:480px){.manual-time{gap:6px}.manual-time-part{padding:12px 10px;font-size:16px}.manual-time-separator{font-size:20px}}


/* V20.8 — X2 review, fine semantics and searchable fine recipient picker. */
.x2-requested-chip{background:#fff4d8!important;border-color:#f0d28a!important;color:#775100!important;font-weight:850}
.x2-requested-badge{display:inline-flex;align-items:center;margin-left:5px;padding:3px 7px;border-radius:999px;background:#fff0c8;color:#805b00;font-size:11px;font-weight:900;vertical-align:middle}
.admin-review-task-x2{border-color:#ead8a9;background:linear-gradient(135deg,#fff,#fffaf0)}
.x2-review-status{display:block;margin-top:6px;font-size:11px;font-weight:850}.x2-review-status.is-kept{color:#7a5700}.x2-review-status.is-adjusted{color:#b42318}
.fine-approved .fine-status,.fine-badge.fine-approved{background:#fff0ef;color:#b42318}.fine-approved{border-color:#f2b8b5;background:#fffafa}.fine-approved .fine-amount{color:#b42318}.fine-badge.fine-approved{border:1px solid #f2c0bd}
.fine-pending .fine-status,.fine-badge.fine-pending{background:#fff0c8;color:#7c5a00}.fine-rejected .fine-status,.fine-badge.fine-rejected{background:#eef0f3;color:#737b86}.fine-badge.fine-rejected{text-decoration:line-through}.fine-rejected .fine-amount{text-decoration:line-through;color:#737b86}
#fineTargetSearch{width:100%}#fineTargetCount{min-height:1em}.fine-create-form #fineTargetUser{width:100%}
@media(max-width:700px){.x2-requested-badge{margin-left:0;margin-top:4px}.admin-review-task-x2 label{display:flex;flex-wrap:wrap;gap:4px 6px;align-items:center}}
