:root{
  --bg:#f4f5f7;--card:#fff;--text:#24272b;--muted:#6d737b;--line:#e2e5e9;
  --dark:#30343a;--accent:#cf2450;--accent-2:#a8173c;--ok:#18794e;--warn:#b26a00;--danger:#a32d2d;--soft:#f9f0f3;
  --shadow:0 10px 30px rgba(29,34,40,.07);--radius:18px;
}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;background:var(--bg);color:var(--text)}
button,input,select,textarea{font:inherit}button{cursor:pointer}.hidden{display:none!important}
.topbar{position:sticky;top:0;z-index:30;display:flex;justify-content:space-between;align-items:center;padding:12px max(24px,calc((100vw - 1440px)/2));background:rgba(255,255,255,.95);backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}
.brand-block{display:flex;flex-direction:column;justify-content:center}.brand-logo{display:block;width:118px;height:auto;object-fit:contain}.login-logo{width:210px;max-width:100%;margin:0 auto 22px}.subtitle{font-size:11px;color:var(--muted);margin-top:-2px;letter-spacing:.025em;padding-left:2px}.top-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.container{max-width:1440px;margin:0 auto;padding:28px 24px 38px}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:22px}.hero-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(0,1fr);gap:20px;margin-bottom:20px;align-items:stretch}.launch-card,.summary-card{height:100%}.launch-card{min-height:360px}.summary-card{display:flex;flex-direction:column;justify-content:flex-start;min-height:360px}
.eyebrow{text-transform:uppercase;font-weight:800;font-size:11px;letter-spacing:.13em;color:var(--accent);margin:0 0 5px}h1,h2,p{margin-top:0}h2{font-size:19px;margin-bottom:0}.section-title-row{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:18px}.wrap{flex-wrap:wrap}.rule-chip,.badge{display:inline-flex;padding:7px 10px;border-radius:999px;font-size:12px;font-weight:700}.rule-chip{background:var(--soft);color:var(--accent-2)}.badge.neutral{background:#eceff2;color:#5f666e}.badge.version{background:#30343a;color:#fff}
.form-grid{display:grid;grid-template-columns:150px minmax(340px,1fr) 190px;gap:14px;align-items:end}.form-grid>*{min-width:0}.form-grid label,.dialog-card label{display:flex;flex-direction:column;gap:6px;font-size:12px;font-weight:700;color:#555c64}.span-2{grid-column:1/3}.form-actions{display:flex;align-items:end;height:100%}.review-form-grid{display:grid;grid-template-columns:150px minmax(260px,1fr) 220px;gap:14px;align-items:end}.review-form-grid>*{min-width:0}.review-form-grid label{display:flex;flex-direction:column;gap:6px;font-size:12px;font-weight:700;color:#555c64}.review-comment{grid-column:1/3}.review-save-status{grid-column:3}.title-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.entry-auto-status{display:flex;align-items:center;gap:8px;min-height:42px;padding:9px 12px;border:1px solid #d1eadf;border-radius:10px;background:#eff9f4;color:var(--ok);font-size:11px;font-weight:750}.entry-auto-dot{width:8px;height:8px;border-radius:50%;background:var(--ok);flex:0 0 auto}.entry-auto-status.waiting{background:#f7f8fa;color:var(--muted);border-color:var(--line)}.entry-auto-status.waiting .entry-auto-dot{background:#9ba2aa}.entry-auto-status.saving{background:#fff8e9;color:#8c5b00;border-color:#f0dfb5}.entry-auto-status.saving .entry-auto-dot{background:#d18a00;animation:pulse 1s infinite}.entry-auto-status.error{background:#fff1f1;color:var(--danger);border-color:#efd0d0}.entry-auto-status.error .entry-auto-dot{background:var(--danger)}
input,select,textarea{border:1px solid #cfd4da;background:white;border-radius:10px;padding:10px 12px;min-height:42px;outline:none;color:var(--text)}textarea{resize:vertical;line-height:1.4}input:focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(207,36,80,.10)}
.rating-field{border:0;padding:0;margin:0;min-width:0}.rating-field legend{font-size:12px;font-weight:700;color:#555c64;margin-bottom:6px}.rating-picker{display:flex;align-items:center;gap:3px;min-height:42px;padding:5px 8px;border:1px solid #cfd4da;border-radius:10px;background:#fff}.rating-picker button{border:0;background:transparent;color:#c8cdd3;font-size:25px;line-height:1;padding:2px;transition:.15s}.rating-picker button:hover,.rating-picker button.active{color:#f5aa18;transform:translateY(-1px)}.rating-number{color:#b26a00}.stars{color:#f5aa18;letter-spacing:1px;white-space:nowrap}.rating-badge{display:inline-flex;align-items:center;gap:4px;padding:5px 8px;border-radius:999px;background:#fff7df;color:#8c5b00;font-weight:800}
.btn{border:0;border-radius:10px;padding:10px 14px;font-weight:750;font-size:13px;transition:.15s}.btn:hover{transform:translateY(-1px)}.btn:disabled{opacity:.6;cursor:not-allowed;transform:none}.btn.primary{background:var(--accent);color:#fff}.btn.primary:hover{background:var(--accent-2)}.btn.secondary{background:var(--dark);color:#fff}.btn.ghost{background:#f1f3f5;color:#444b52;border:1px solid #e1e4e7}.btn.full{width:100%}
.autosave-note{margin-top:14px;font-size:11px;color:var(--muted);display:flex;align-items:center;gap:6px}.autosave-check{display:inline-grid;place-items:center;width:18px;height:18px;border-radius:50%;background:#e8f5ef;color:var(--ok);font-weight:900}
.save-status{display:flex;align-items:center;gap:7px;min-height:32px;padding:6px 10px;border-radius:999px;font-size:11px;font-weight:750;border:1px solid var(--line);background:#fff;color:#596069;white-space:nowrap}.save-dot{width:8px;height:8px;border-radius:50%;background:#9ba2aa}.save-status.saving{background:#fff8e9;color:#8c5b00;border-color:#f0dfb5}.save-status.saving .save-dot{background:#d18a00;animation:pulse 1s infinite}.save-status.saved{background:#eff9f4;color:var(--ok);border-color:#d1eadf}.save-status.saved .save-dot{background:var(--ok)}.save-status.error{background:#fff1f1;color:var(--danger);border-color:#efd0d0}.save-status.error .save-dot{background:var(--danger)}@keyframes pulse{50%{opacity:.35}}
.summary-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;flex:1}.summary-grid>div{padding:16px 14px;border-radius:14px;background:#f7f8fa;display:flex;flex-direction:column;justify-content:center;min-height:92px}.big-number{display:block;font-size:27px;font-weight:850;letter-spacing:-.04em}.summary-grid small,.kpi small{color:var(--muted);font-weight:650;font-size:12px}.currency{font-size:23px}
.filters-card{margin-bottom:18px}.quick-filters{display:flex;gap:7px;flex-wrap:wrap}.chip{border:1px solid var(--line);background:#fff;border-radius:999px;padding:7px 12px;font-size:12px;font-weight:750;color:#5a6169}.chip.active{background:var(--dark);color:#fff;border-color:var(--dark)}.date-filters{display:flex;gap:10px;align-items:end;flex-wrap:wrap}.date-filters label{display:flex;gap:6px;align-items:center;color:var(--muted);font-size:12px;font-weight:700}.date-filters input{min-height:38px;padding:8px 10px}.file-button input{display:none}
.kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:18px;align-items:stretch}.kpi{padding:18px;min-height:118px;display:flex;flex-direction:column;justify-content:center}.kpi span{display:block;font-weight:850;font-size:25px;letter-spacing:-.03em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kpi #periodLeader{font-size:16px;padding-top:7px;min-height:35px;white-space:normal;overflow:visible;text-overflow:clip;line-height:1.25}
.dashboard-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-bottom:18px}.chart-card{min-width:0}.chart-wrap{height:330px}.muted{color:var(--muted);font-size:12px}.search-input{width:280px}
.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:13px}table{width:100%;border-collapse:collapse;min-width:930px}th,td{padding:11px 12px;border-bottom:1px solid #edf0f2;text-align:left;font-size:12px;vertical-align:middle}th{background:#f8f9fa;color:#596069;font-size:11px;text-transform:uppercase;letter-spacing:.05em;position:sticky;top:0;z-index:1}tbody tr:hover{background:#fcfcfd}.num{text-align:right;font-variant-numeric:tabular-nums}.rank{font-weight:800;color:var(--muted)}
.link-button{border:0;background:transparent;padding:0;color:#30343a;font-weight:800;text-align:left;text-decoration:underline;text-decoration-color:#d6d9dd;text-underline-offset:3px}.link-button:hover{color:var(--accent)}.small-button{border:1px solid #ddd;background:#fff;border-radius:8px;padding:6px 9px;font-size:11px;font-weight:750}.comment-cell{max-width:360px;white-space:pre-wrap;line-height:1.4}
.progress-shell{min-width:190px}.progress-head{display:flex;justify-content:space-between;gap:10px;margin-bottom:5px;font-size:11px;font-weight:750}.progress-track{height:8px;background:#edf0f2;border-radius:999px;overflow:hidden}.progress-bar{height:100%;background:linear-gradient(90deg,var(--accent),#ea5b7f);border-radius:999px}.status-pill{padding:4px 8px;border-radius:999px;font-weight:750;font-size:11px}.status-pill.ok{background:#e8f5ef;color:var(--ok)}.status-pill.warn{background:#fff4df;color:var(--warn)}.mini-btn{border:1px solid #ddd;background:#fff;border-radius:8px;padding:6px 9px;font-size:11px;font-weight:750}.mini-btn.pay{color:var(--ok);border-color:#c9e6d8}.mini-btn.danger{color:var(--danger)}.actions{display:flex;justify-content:flex-end;gap:6px}
.container>.card+.card{margin-top:18px}.dashboard-grid+.card{margin-top:0}
.login-overlay{position:fixed;inset:0;background:rgba(28,31,35,.72);display:grid;place-items:center;z-index:100;padding:20px}.login-card{width:min(410px,100%);background:#fff;border-radius:22px;padding:30px;box-shadow:0 30px 90px rgba(0,0,0,.25)}.login-card h1{font-size:24px;margin-bottom:4px}.login-card p{color:var(--muted);margin-bottom:20px}.login-card label{display:flex;flex-direction:column;gap:7px;font-size:12px;font-weight:700;margin-bottom:14px}.error-text{color:#ad2f2f;font-size:12px;margin-top:10px;min-height:16px}
dialog{border:0;border-radius:20px;padding:0;box-shadow:0 30px 90px rgba(0,0,0,.25);width:min(480px,calc(100vw - 30px))}dialog::backdrop{background:rgba(28,31,35,.55)}.dialog-card{padding:24px;display:flex;flex-direction:column;gap:14px}.dialog-card .section-title-row{margin-bottom:0}.icon-btn{border:0;background:#f1f2f4;border-radius:50%;width:34px;height:34px;font-size:22px}.dialog-name{font-weight:850;margin:0}.payment-status{background:#f7f8fa;border-radius:12px;padding:12px;font-size:12px;line-height:1.55}.dialog-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:5px}.employee-dialog{width:min(780px,calc(100vw - 30px))}.employee-detail-card{max-height:85vh}.detail-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.detail-summary>div{background:#f7f8fa;border-radius:12px;padding:13px;display:flex;flex-direction:column}.detail-summary strong{font-size:22px}.detail-summary span{font-size:11px;color:var(--muted);font-weight:700}.review-list{display:flex;flex-direction:column;gap:9px;overflow:auto;padding-right:3px}.review-item{border:1px solid var(--line);border-radius:12px;padding:12px}.review-item-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:7px}.review-comment-text{font-size:13px;line-height:1.45;color:#41464c;white-space:pre-wrap}.review-comment-text.empty{padding:0;text-align:left!important;font-style:italic}
.review-detail{border:1px solid var(--line);border-radius:12px;padding:12px}.review-detail>div{display:flex;align-items:center;justify-content:space-between;gap:12px}.review-detail p{margin:8px 0 0;font-size:13px;line-height:1.45;white-space:pre-wrap}
.toast{position:fixed;right:24px;bottom:24px;z-index:200;background:#292d31;color:#fff;padding:12px 16px;border-radius:11px;font-size:12px;font-weight:700;opacity:0;transform:translateY(12px);pointer-events:none;transition:.2s}.toast.show{opacity:1;transform:translateY(0)}.empty{padding:24px;text-align:center!important;color:var(--muted)}.footer{text-align:center;color:#858b92;font-size:11px;padding:24px 0 4px}
@media(max-width:1100px){.save-status{order:2}.top-actions{max-width:60%}}
@media(max-width:1000px){.hero-grid,.dashboard-grid{grid-template-columns:1fr}.kpi-grid{grid-template-columns:1fr 1fr}.form-grid,.review-form-grid{grid-template-columns:1fr 1fr}.form-grid label,.span-2,.review-comment,.review-save-status{grid-column:auto}.form-actions{grid-column:1/-1}.summary-grid{grid-template-columns:repeat(4,1fr)}.topbar{padding:12px 18px}.container{padding:20px 14px 40px}.brand-logo{width:110px}.summary-card{min-height:auto}}
@media(max-width:700px){.summary-grid,.kpi-grid,.detail-summary{grid-template-columns:1fr 1fr}.summary-grid>div{padding:10px}.big-number{font-size:23px}.top-actions .btn,.badge.version{display:none}.top-actions{max-width:58%;gap:5px}.save-status{font-size:10px;padding:5px 8px;max-width:175px;overflow:hidden;text-overflow:ellipsis}.form-grid,.review-form-grid{grid-template-columns:1fr}.review-comment,.review-save-status{grid-column:auto}.search-input{width:100%}.card{padding:16px}.chart-wrap{height:280px}.rule-chip{display:none}.subtitle{display:none}.brand-logo{width:100px}.title-actions{justify-content:flex-start}.detail-summary>div:last-child{grid-column:1/-1}}
@media print{body{background:#fff}.topbar,.launch-card,.filters-card,.top-actions,#historyTable .actions,#paymentTable .actions,.file-button,.btn,.footer{display:none!important}.container{max-width:none;padding:0}.hero-grid{grid-template-columns:1fr}.summary-card,.card{box-shadow:none;border:1px solid #ddd;break-inside:avoid}.dashboard-grid{grid-template-columns:1fr 1fr}.card{margin-bottom:12px}.table-wrap{overflow:visible}table{min-width:0}th,td{font-size:9px;padding:6px}.chart-wrap{height:260px}}
