:root{--bg:#f5f7f5;--ink:#172c23;--muted:#627269;--green:#145c41;--bright:#cfed77;--line:#dfe6df;--white:#fff}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.6 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}a{color:var(--green);text-decoration:none}a:hover{text-decoration:underline}button,a.button,input,select,textarea{font:inherit}button,.button{display:inline-block;border:1px solid var(--line);border-radius:8px;background:white;padding:10px 18px;cursor:pointer;color:var(--ink)}button:hover,.button:hover{filter:brightness(.95);text-decoration:none}.primary{background:var(--green);color:white;border-color:var(--green)}.full{width:100%;margin:22px 0}.sidebar{width:254px;position:fixed;inset:0 auto 0 0;background:#151719;color:#eef3ed;padding:28px 26px;display:flex;flex-direction:column}.brand{display:flex;align-items:center;gap:13px;font-size:27px;line-height:1.2;letter-spacing:-1px;color:white;font-weight:650}.brand:hover{text-decoration:none}.brand small{display:block;font-size:9px;letter-spacing:1.6px;color:#b9bfbc;margin-top:9px}.mark{background:var(--bright);color:#193724;border-radius:12px;font-size:26px;padding:10px 13px}.sidebar nav{display:grid;gap:8px;margin-top:62px}.sidebar nav a{color:#e2eae2;padding:10px 6px;font-size:14px}.nav-label{font-size:10px;letter-spacing:1.8px;color:#a3aaa6;margin-bottom:12px}.account{margin-top:auto;padding-top:30px;border-top:1px solid #3c4142}.account p{margin:3px 0 10px;font-size:13px;overflow-wrap:anywhere}.account small{color:#b3bab6}.text-button{border:0;padding:0;background:none;color:#c6dbca;font-size:12px}.sidebar-note{font-size:11px;color:#a3aaa6;margin:30px 0 0}main{margin-left:254px;padding:28px 54px 40px;max-width:1600px}.topline{font-size:10px;letter-spacing:1.5px;border-bottom:1px solid var(--line);padding:0 0 20px;margin-bottom:40px;color:var(--muted);display:flex;justify-content:space-between;gap:15px}.topline span{letter-spacing:0}.eyebrow{letter-spacing:2px;font-size:10px;font-weight:700;color:var(--green);margin-bottom:10px}h1{font-size:38px;font-weight:550;letter-spacing:-1.3px;line-height:1.2;margin:0 0 16px}h2{font-size:20px;line-height:1.4;letter-spacing:-.4px;font-weight:600;margin:0 0 14px}p{margin:10px 0 16px}small{font-size:12px;color:var(--muted)}.lead{color:var(--muted);font-size:16px;max-width:720px;margin-bottom:34px}.card{background:var(--white);border:1px solid var(--line);border-radius:14px;padding:26px;margin-bottom:24px;box-shadow:0 4px 18px #18301f03}.card p{color:var(--muted)}.heading{display:flex;align-items:center;justify-content:space-between;gap:24px}.two-columns{display:grid;grid-template-columns:1.1fr 1fr;gap:24px;align-items:start}.grid-three{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.notice{background:#ecf2e9;border-left:3px solid var(--green);padding:18px 24px;border-radius:0 8px 8px 0;margin:20px 0;color:var(--muted)}.notice p{margin-bottom:0}.pill{display:inline-block;font-size:11px;line-height:1.4;background:#e9f2e5;color:#245c3a;border-radius:20px;padding:6px 12px}label{display:block;color:var(--ink);font-size:13px;font-weight:600;margin-top:14px;margin-bottom:6px}input,select,textarea{padding:11px;border:1px solid #ced9ce;background:white;border-radius:7px;color:var(--ink);width:100%;min-width:0}input:focus,select:focus,textarea:focus{outline:2px solid #8abd79;outline-offset:2px}input[type=checkbox]{width:auto;margin-right:10px}input[type=file]{font-size:12px}form .helptext{display:block;color:var(--muted);font-size:12px;margin-top:5px}form p{margin-bottom:20px}.form-card{max-width:700px}.errorlist{color:#9b3830;font-size:13px;padding-left:20px}.message{padding:14px 20px;margin-bottom:20px;border-radius:8px;background:#e2edda}.message.error{background:#f9e5df;color:#843527}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;text-align:left;font-size:13px}th{font-weight:600;color:var(--muted);font-size:11px;padding:12px 10px;border-bottom:1px solid var(--line);white-space:nowrap}td{padding:17px 10px;border-bottom:1px solid #eef1ec}tr:last-child td{border:0}.empty{text-align:center;padding:56px 25px;color:var(--muted)}.empty-symbol{font-size:48px;color:var(--green);margin-bottom:18px}.score-card{padding:30px;border-radius:14px;background:#184e37;color:white;margin-bottom:24px;min-height:280px}.score-card p{color:#bfd4c3}.score-card .pill{background:var(--bright);color:#25452f}.big-score{font-size:70px;font-weight:500;line-height:1.3;letter-spacing:-3px;display:block}.big-score span{font-size:27px;letter-spacing:0}.component{display:grid;grid-template-columns:1fr auto;gap:5px;margin-bottom:18px;font-size:13px}.component meter{grid-column:1/-1;width:100%;height:9px;appearance:none}.component meter::-webkit-meter-bar{background:#eaf0e7;border:0}.component meter::-webkit-meter-optimum-value{background:var(--green)}.reward{border-top:1px solid var(--line);padding:17px 0;display:flex;justify-content:space-between;gap:15px;font-size:14px}.reward span{font-size:12px;color:var(--muted)}.team-banner{background:#184e37;color:white;padding:28px 32px;border-radius:14px;display:flex;justify-content:space-between;align-items:center;gap:20px}.team-banner h2{font-size:24px}.team-banner p{color:#bfd4c3}.team-banner strong{font-size:45px;white-space:nowrap}.team-banner strong small{display:block;font-size:12px;color:#bfd4c3;font-weight:400}.caption{font-size:12px;color:var(--muted);margin:18px 0 24px}.steps{display:flex;list-style:none;counter-reset:step;gap:26px;margin:20px 0 32px;padding:0;color:var(--muted);font-size:12px;flex-wrap:wrap}.steps li::before{counter-increment:step;content:counter(step);display:inline-grid;place-items:center;border:1px solid #b8c8b6;width:24px;height:24px;margin-right:7px;border-radius:50%}.report{padding:20px 0;border-top:1px solid var(--line);overflow-wrap:anywhere}.report p{font-size:13px;margin:5px 0}.hash{font:10px/1.8 ui-monospace,monospace}.batch{background:var(--bg);padding:16px;border-radius:8px;margin-top:14px}.batch form{margin-top:12px}summary{cursor:pointer;color:var(--green);font-size:13px}.day{padding:12px 0;border-top:1px solid var(--line)}.day p{font-size:13px}.login-intro{margin:60px 0 34px;max-width:670px}.login-intro h1{font-size:48px}.login-card{max-width:460px}footer{font-size:11px;color:var(--muted);margin-top:55px;border-top:1px solid var(--line);padding-top:20px}@media(max-width:1050px){main{padding:28px}.sidebar{width:210px;padding:28px 20px}main{margin-left:210px}.two-columns{grid-template-columns:1fr}.grid-three{grid-template-columns:1fr 1fr}.topline span{display:none}}@media(max-width:700px){.sidebar{position:relative;width:100%;padding:22px}.sidebar nav{margin-top:24px;display:flex;flex-wrap:wrap;gap:10px}.nav-label,.sidebar-note{display:none}.account{margin-top:20px;padding-top:14px}.account p{display:inline-block;margin:0 15px}.account form{display:inline}.account small{margin-right:12px}.brand{font-size:23px}main{margin:0;padding:24px 20px}.topline{margin-bottom:28px}h1{font-size:31px}.heading{align-items:start;flex-direction:column;margin-bottom:20px}.grid-three{grid-template-columns:1fr}.team-banner{align-items:start;flex-direction:column}.reward{flex-direction:column;gap:3px}.login-intro{margin:30px 0}.login-intro h1{font-size:36px}.card{padding:22px}.big-score{font-size:58px}}

.corporate-brand{display:block;max-width:202px;margin:4px 0 30px;padding:0;background:transparent}.corporate-brand img{display:block;width:100%;height:auto}.form-field{margin-bottom:20px}.form-field .errorlist{margin:6px 0 0}.sidebar .account .text-button{color:#cbd1ce}

.dashboard-metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin:24px 0}.metric{background:#fff;border:1px solid var(--line);border-radius:12px;padding:18px 22px}.metric strong{display:block;font-size:32px;line-height:1.3}.metric span{font-size:12px;color:var(--muted)}.dashboard-filter{display:flex;align-items:end;gap:14px;flex-wrap:wrap}.dashboard-filter label{margin:0 0 6px}.dashboard-filter select{min-width:230px}.cycle-cell{min-width:210px}.cycle-cell strong,.cycle-cell small{display:block}.cycle-cell small{margin:5px 0}.cycle-months{display:flex;gap:5px;margin-top:10px}.cycle-dot{display:block;width:14px;height:14px;border-radius:50%;background:#e8ebe8;border:1px solid #c6cdc8}.cycle-dot.achieved{background:#21b84b;border-color:#147d32}.cycle-dot.missed{background:#c58278;border-color:#c58278}.cycle-dot.neutral{background:#f4d5a5;border-color:#bca169}.cycle-dot.future{background:transparent;border-style:dashed}.cycle-dot.outside{background:repeating-linear-gradient(135deg,#929797 0,#929797 2px,#f5f6f5 2px,#f5f6f5 5px);border-color:#747a77}.muted{color:var(--muted)}.status-inactive{background:#fce8e6;color:#b42318}.status-inactive-text{color:#b42318}@media(max-width:1050px){.dashboard-metrics{grid-template-columns:repeat(2,1fr)}}@media(max-width:700px){.corporate-brand{max-width:200px}.dashboard-metrics{gap:10px}.metric{padding:14px}.metric strong{font-size:26px}}

.person-status{display:block}

.dashboard-new{margin-left:auto}.form-actions{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.danger{background:#b42318;color:white;border-color:#b42318}.danger-outline{color:#b42318;border-color:#d7a09b;background:#fff}.danger:disabled{opacity:.5;cursor:not-allowed}.cycle-legend{display:flex;align-items:center;gap:14px 22px;flex-wrap:wrap;margin:22px 0 10px;font-size:12px;color:var(--muted)}.cycle-legend span{display:inline-flex;align-items:center;gap:7px}.cycle-legend .cycle-dot{display:inline-block;flex-shrink:0}.removal-area{border-color:#e3bdb8}@media(max-width:700px){.dashboard-new{margin-left:0}.dashboard-filter{align-items:center}.dashboard-filter>div{width:100%}.dashboard-filter select{min-width:0}}
.dashboard-filter #dashboard-month{min-width:160px}.dashboard-filter #dashboard-year{min-width:100px}.dashboard-filter #dashboard-status{min-width:150px}.cycle-partial{font-size:12px;color:var(--muted);margin:7px 0}.cycle-partial summary{cursor:pointer}@media(max-width:700px){.dashboard-filter #dashboard-month,.dashboard-filter #dashboard-year,.dashboard-filter #dashboard-status{min-width:0}}
main{max-width:1900px}.dashboard-table .person-cell{min-width:320px;white-space:nowrap}.person-summary{display:flex;gap:12px;align-items:center}.avatar{width:40px;height:40px;border-radius:50%;object-fit:cover;flex-shrink:0}.avatar.initials{display:inline-grid;place-items:center;background:#e5ede6;color:var(--green);font-size:13px;font-weight:650}.photo-preview{margin-bottom:22px}.photo-preview .avatar{width:64px;height:64px}#removal-dialog{width:min(540px,calc(100vw - 36px));border:1px solid var(--line);border-radius:14px;padding:30px;color:var(--ink);background:white;max-height:calc(100vh - 40px);overflow:auto}#removal-dialog::backdrop{background:rgba(12,18,15,.5)}#removal-dialog[open]{position:fixed;top:50%;transform:translateY(-50%);margin:auto}#removal-dialog input{width:100%}@media(max-width:700px){.dashboard-table .person-cell{min-width:280px}}

.dashboard-table{table-layout:fixed;width:100%;min-width:1330px}.dashboard-table .dashboard-person{width:26%}.dashboard-table .dashboard-score{width:8%}.dashboard-table .dashboard-monthly{width:10%}.dashboard-table .dashboard-quarter{width:16%}.dashboard-table .dashboard-semester{width:18%}.dashboard-table .dashboard-annual{width:22%}.dashboard-table .person-cell,.dashboard-table .cycle-cell{min-width:0}.dashboard-table td{overflow-wrap:break-word}.participants-heading{align-items:flex-start}.criteria-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.criteria-grid .card{margin:0}.team-modes{display:flex;gap:12px;flex-wrap:wrap;margin:20px 0}.period-select label{display:block}.period-select select{width:auto}@media(max-width:700px){.criteria-grid{grid-template-columns:1fr}}

.collective-period-select{display:flex;align-items:flex-end;gap:14px;flex-wrap:wrap;margin:24px 0}.collective-period-select label{margin:0 0 6px}.collective-period-select select{min-width:220px;max-width:100%}.collective-period-select button{flex-shrink:0}.collective-progress{width:100%;height:12px;accent-color:var(--green)}.administrative-descriptions{border-color:#d2d9d4}@media(max-width:700px){.collective-period-select>div{width:100%}.collective-period-select select{width:100%;min-width:0}}

.team-table{table-layout:fixed;width:100%;min-width:600px}.team-table .team-person{width:60%}.team-table .team-goal{width:40%}.team-table td{overflow-wrap:break-word}

.team-overview{display:grid;grid-template-columns:minmax(0,1fr) auto;margin-bottom:24px;gap:18px 32px}.team-overview-progress{grid-column:1/-1}.team-overview-progress p{font-size:12px;margin:10px 0 0}.team-overview-progress .team-progress-label{font-size:13px;font-weight:600;margin:0 0 8px}.team-overview .collective-progress{display:block;appearance:none;border:0;border-radius:6px;overflow:hidden;background:#ffffff26;color:var(--bright);accent-color:var(--bright)}.team-overview .collective-progress::-webkit-progress-bar{background:#ffffff26;border-radius:6px}.team-overview .collective-progress::-webkit-progress-value{background:var(--bright);border-radius:6px}.team-overview .collective-progress::-moz-progress-bar{background:var(--bright);border-radius:6px}@media(max-width:700px){.team-overview{grid-template-columns:1fr;gap:16px}.team-overview strong{font-size:38px}}

.google-login{font-weight:600;border-color:#ced9ce;background:white;color:var(--ink)}.admin-recovery{margin:12px 0 20px}.admin-recovery summary{font-size:12px}.admin-recovery p{font-size:12px}
