:root{--bg: #f7f9f5;--panel: #ffffff;--panel-2: #f0f4ee;--border: #dbe3d9;--text: #062D1F;--muted: #5a6b62;--accent: #21A55E;--accent-2: #178a4d;--lime: #CCFC00;--base: #42DA88;--brand-dark: #062D1F;--good: #16a34a;--warn: #d97706;--bad: #dc2626;--shadow: 0 2px 8px rgba(6,45,31,.06)}*{box-sizing:border-box}html,body{margin:0;padding:0;background:var(--bg);color:var(--text);font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:14px;line-height:1.5;font-feature-settings:"cv11","ss01";-webkit-font-smoothing:antialiased}.app{max-width:1180px;margin:0 auto;padding:24px}.brand-bar{background:var(--brand-dark);border-bottom:3px solid var(--lime);color:#fff}.brand-bar-inner{max-width:1180px;margin:0 auto;padding:14px 24px;display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap}.brand-left{display:flex;align-items:center;gap:14px}.gruve-logo{height:30px;width:auto;display:block}.brand-divider{width:1px;height:26px;background:#ffffff2e}.brand-title .app-name{font-size:14px;font-weight:600;line-height:1.15;color:#fff;letter-spacing:-.005em}.brand-title .app-sub{font-size:11px;color:#ffffff8c;margin-top:2px;letter-spacing:.02em;text-transform:uppercase}.brand-right{display:flex;align-items:center;gap:14px}.brand-right .muted{color:#ffffff8c!important}.brand-right .small{font-size:12px}nav{display:flex;gap:4px;background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:4px;margin-bottom:24px;width:fit-content}nav button{background:transparent;color:var(--muted);border:none;padding:8px 14px;border-radius:7px;cursor:pointer;font-size:13px;font-weight:500;transition:all .15s ease}nav button:hover{color:var(--text)}nav button.active{background:var(--panel-2);color:var(--text);box-shadow:inset 0 0 0 1px var(--border)}.role-switcher{display:flex;gap:2px;background:#ffffff14;border:1px solid rgba(255,255,255,.15);border-radius:8px;padding:3px}.role-switcher button{background:transparent;color:#ffffffb3;border:none;padding:5px 11px;border-radius:5px;cursor:pointer;font-size:12px;font-weight:500;transition:all .15s ease}.role-switcher button:hover{color:#fff}.role-switcher button.active{background:var(--lime);color:var(--brand-dark);font-weight:600}.panel{background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:20px;margin-bottom:16px;box-shadow:var(--shadow)}.panel h2{margin:0 0 12px;font-size:15px;font-weight:600}.panel h3{margin:0 0 8px;font-size:13px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}.row{display:flex;gap:10px;flex-wrap:wrap}.col{display:flex;flex-direction:column;gap:6px;flex:1;min-width:180px}label{font-size:12px;color:var(--muted);font-weight:500}input,select,textarea{background:var(--panel-2);color:var(--text);border:1px solid var(--border);border-radius:8px;padding:9px 11px;font:inherit;outline:none;transition:border-color .15s ease}input:focus,select:focus,textarea:focus{border-color:var(--accent)}textarea{min-height:90px;resize:vertical;font-family:inherit}button.primary{background:var(--accent);color:#fff;border:none;padding:9px 16px;border-radius:8px;font-weight:600;cursor:pointer;font-size:13px;transition:background .15s ease}button.primary:hover{background:var(--accent-2)}button.primary:disabled{opacity:.5;cursor:not-allowed}button.ghost{background:transparent;color:var(--muted);border:1px solid var(--border);padding:7px 13px;border-radius:7px;cursor:pointer;font-size:12px}button.ghost:hover{color:var(--text);border-color:var(--accent)}button.danger{background:transparent;color:var(--bad);border:1px solid var(--border);padding:6px 10px;border-radius:6px;cursor:pointer;font-size:12px}button.danger:hover{border-color:var(--bad)}table{width:100%;border-collapse:collapse;font-size:13px}th,td{text-align:left;padding:10px 12px;border-bottom:1px solid var(--border)}th{color:var(--muted);font-weight:500;font-size:12px;text-transform:uppercase;letter-spacing:.05em}tr:last-child td{border-bottom:none}.badge{display:inline-block;padding:3px 8px;border-radius:5px;font-size:11px;font-weight:600}.badge.green{background:#4ade8026;color:var(--good)}.badge.yellow{background:#fbbf2426;color:var(--warn)}.badge.red{background:#f8717126;color:var(--bad)}.badge.gray{background:#8a92a626;color:var(--muted)}.report-card{background:var(--panel-2);border:1px solid var(--border);border-radius:10px;padding:16px;margin-bottom:12px}.report-card .head{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.report-card .head .who{font-weight:600}.report-card .head .title{color:var(--muted);font-size:12px;margin-left:8px}.ppp{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.ppp .block{background:var(--panel);border:1px solid var(--border);border-radius:8px;padding:10px 12px}.ppp .block h4{margin:0 0 6px;font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}.ppp .block .body{white-space:pre-wrap;font-size:13px}.summary{background:linear-gradient(135deg,#21a55e14,#42da880a);border:1px solid rgba(33,165,94,.25);border-radius:10px;padding:16px}.summary h3{color:var(--accent);margin-top:0}.summary .body{white-space:pre-wrap;font-size:13px;line-height:1.6}.correlation{display:flex;align-items:center;gap:10px;padding:8px 0}.toast{position:fixed;bottom:20px;right:20px;background:var(--panel-2);border:1px solid var(--border);padding:12px 18px;border-radius:8px;box-shadow:var(--shadow);animation:slideIn .25s ease;z-index:1000}@keyframes slideIn{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.muted{color:var(--muted)}.small{font-size:12px}.right{text-align:right}.flex{display:flex;align-items:center;gap:10px}.flex-between{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}.empty{text-align:center;padding:40px 20px;color:var(--muted)}.spin{display:inline-block;width:14px;height:14px;border:2px solid rgba(0,0,0,.12);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite;vertical-align:middle}@keyframes spin{to{transform:rotate(360deg)}}details{background:var(--panel-2);border:1px solid var(--border);border-radius:8px;padding:10px 14px;margin-bottom:8px}details summary{cursor:pointer;font-weight:500;outline:none}details[open] summary{margin-bottom:10px}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:12px}.consistency-row{display:grid;grid-template-columns:180px 1fr 60px;align-items:center;gap:14px;padding:10px 0;border-bottom:1px solid var(--border)}.consistency-row:last-child{border-bottom:none}.consistency-row .who{font-weight:500}.consistency-row .who .title{color:var(--muted);font-size:11px;display:block;font-weight:400;margin-top:2px}.consistency-row .pct{text-align:right;font-variant-numeric:tabular-nums;font-weight:600}.cells{display:flex;gap:3px;flex-wrap:nowrap}.cell{width:16px;height:16px;border-radius:3px;background:var(--panel-2);border:1px solid var(--border);cursor:default}.cell.filed{background:var(--good);border-color:var(--good)}.cell.missed{background:#fee2e2;border-color:#fecaca}.cell.future{background:transparent;border:1px dashed var(--border)}.cell.selected{outline:2px solid var(--accent);outline-offset:1px}.legend{display:flex;gap:14px;font-size:11px;color:var(--muted);margin-bottom:12px;align-items:center}.legend .swatch{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:5px;vertical-align:middle}.format-section-row{background:var(--panel-2);border:1px solid var(--border);border-radius:8px;padding:12px 14px;margin-bottom:8px}.format-section-row input[type=text]{padding:7px 9px}button.ghost.tiny,button.danger.tiny{padding:3px 8px;font-size:11px}button.ghost:disabled{opacity:.4;cursor:not-allowed}code{background:var(--panel-2);padding:1px 5px;border-radius:4px;font-size:12px;font-family:ui-monospace,Menlo,Monaco,monospace}.badge.green{background:#16a34a26;color:var(--good)}@media (max-width: 700px){.ppp,.grid-2{grid-template-columns:1fr}}.login-screen{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px}.login-card{width:100%;max-width:380px;text-align:center;padding:36px 32px}.login-logo{height:34px;width:auto;color:var(--brand-dark);margin:0 auto 24px;display:block}.login-title{font-size:18px;font-weight:600;margin:0 0 6px;color:var(--text)}.login-subtitle{font-size:13px;color:var(--muted);margin:0 0 24px}.login-error{color:var(--bad);font-size:13px;margin:0 0 16px}.login-sso-btn{width:100%;display:flex;align-items:center;justify-content:center;gap:8px;padding:11px 16px;font-size:14px}
