:root{font-family:ui-rounded,"SF Pro Rounded","Avenir Next",system-ui,sans-serif;color:#19372e;background:#eef5ef;--primary:#245c46;--accent:#f4c95d;--bg:#eef5ef;--paper:#fffdf8}*{box-sizing:border-box}body{margin:0;min-height:100vh;padding-bottom:86px;background:radial-gradient(circle at 95% 0,color-mix(in srgb,var(--primary) 14%,transparent),transparent 32%),var(--bg)}button,input,select{font:inherit}button{cursor:pointer}header{padding:calc(16px + env(safe-area-inset-top)) 18px 14px;background:var(--primary);color:#fff;display:flex;align-items:center;justify-content:space-between;gap:12px}.brand{display:flex;align-items:center;gap:12px;min-width:0}.brand img,.brand #logoFallback{width:48px;height:48px;border-radius:14px;object-fit:contain;background:#fff;padding:5px}.brand #logoFallback{display:grid;place-items:center;color:var(--primary);font-weight:900}.brand span{font-size:12px;opacity:.8}.brand h1{font-size:24px;margin:1px 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pill{border:1px solid #ffffff44;background:#ffffff18;color:#fff;border-radius:999px;padding:10px 12px;max-width:42%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}main{max-width:680px;margin:auto;padding:16px}.card{background:var(--paper);border-radius:24px;padding:19px;box-shadow:0 8px 30px #16382b12}.hero{display:grid;grid-template-columns:1fr auto;align-items:center}.date-button{border:0;background:none;padding:0;text-align:left;color:inherit}.date-button span,.date-button strong{display:block}.date-button span{font-size:14px;color:#657a72}.date-button strong{font-size:26px;margin-top:3px}.score{display:flex;align-items:baseline}.score strong{font-size:34px;color:var(--primary)}.score span{color:#68776f;margin-left:5px}.progress{grid-column:1/-1;height:9px;background:#e2eae4;border-radius:9px;margin-top:15px;overflow:hidden}.progress i{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--primary),var(--accent));transition:.25s}.week{display:grid;grid-template-columns:repeat(7,1fr);gap:5px;margin:14px 0}.week button{border:0;background:transparent;border-radius:14px;padding:8px 2px;color:#607168}.week b,.week span{display:block}.week b{font-size:11px}.week span{margin-top:4px}.week .active{background:var(--primary);color:#fff}.week .done:not(.active){background:color-mix(in srgb,var(--primary) 22%,#fff)}.week .outside{opacity:.35}.navigator{display:flex;align-items:center;justify-content:space-between;margin:16px 3px}.navigator button{border:0;background:#fff;border-radius:50%;width:40px;height:40px;font-size:25px;color:var(--primary)}.navigator div{text-align:center}.navigator strong,.navigator span{display:block}.navigator span{font-size:12px;color:#718078}.task-list{display:grid;gap:10px}.task{position:relative;display:grid;grid-template-columns:38px 1fr auto;gap:11px;align-items:center;background:#fff;border-radius:18px;padding:15px;box-shadow:0 3px 14px #183c2f0b}.task input{position:absolute;opacity:0}.check{width:32px;height:32px;border:2px solid #a8bbb0;border-radius:11px;display:grid;place-items:center;font-weight:bold}.task h3{font-size:16px;margin:0 0 4px}.task p{margin:0;color:#6c7b74;font-size:13px}.points{background:color-mix(in srgb,var(--accent) 38%,#fff);border-radius:999px;padding:7px 9px;font-size:12px;font-weight:800}.task:has(input:checked){background:color-mix(in srgb,var(--primary) 10%,#fff)}.task input:checked+.check{background:var(--primary);border-color:var(--primary);color:#fff}.task input:checked~div h3{text-decoration:line-through}.empty{text-align:center;display:grid;gap:5px}.ranking{margin-top:20px}.ranking h2{margin:0 0 12px}.rank-group h3{font-size:13px;text-transform:uppercase;color:#75827c}.rank-row{display:grid;grid-template-columns:30px 1fr auto;gap:8px;padding:9px;border-top:1px solid #e9eeea}.rank-row.active{color:var(--primary);font-weight:800}footer{position:fixed;z-index:10;bottom:0;left:0;right:0;padding:10px 18px calc(10px + env(safe-area-inset-bottom));background:#fffdf5e9;backdrop-filter:blur(14px);display:flex;justify-content:center;gap:10px;border-top:1px solid #dfe8e0}footer button,.primary{border:0;border-radius:13px;padding:11px 16px;background:var(--primary)!important;color:#fff!important;font-weight:800}dialog{border:0;border-radius:24px;padding:0;width:min(94%,500px);max-height:90vh;box-shadow:0 20px 80px #0005}dialog::backdrop{background:#102c2377;backdrop-filter:blur(4px)}dialog form{padding:22px;display:grid;gap:13px;overflow:auto;max-height:90vh}dialog h2,dialog h3,dialog p{margin:0}.dialog-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.icon-button{border:0;background:#edf2ee;border-radius:50%;width:36px;height:36px;font-size:22px}dialog label{display:grid;gap:6px;font-size:13px}dialog input:not([type=checkbox]):not([type=color]),dialog select{width:100%;padding:11px;border:1px solid #ccd8d0;border-radius:10px;background:#fff}.profile-row,.editor-row{display:flex;align-items:center;gap:8px;margin:6px 0}.profile-row button:first-child,.editor-row span{flex:1}.profile-row .selected{background:var(--primary);color:#fff}.profile-row button,.editor-row button,dialog button,.file-button{border:0;border-radius:11px;padding:10px 12px;background:#e8f0ea;color:#214b3c;font-weight:700;text-align:center}.file-button input{display:none}.inline,.colors{display:flex;gap:10px}.inline>*{flex:1}.colors label{flex:1}.colors input{width:100%;height:42px;border:0}.tabs{display:grid;grid-template-columns:repeat(4,1fr);gap:4px}.tabs button{padding:9px 3px;font-size:12px}.tabs .active{background:var(--primary);color:#fff}.admin-form section{display:grid;gap:12px}.checks{display:flex;flex-wrap:wrap;gap:7px;margin-top:6px}.checks label{display:flex;align-items:center;gap:4px;background:#edf2ee;padding:7px 9px;border-radius:9px}.label{font-size:13px}.danger{background:#f9e4e2!important;color:#a32323!important}.muted,small{color:#6c7b74}.calendar-weekdays,.month-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;text-align:center}.calendar-weekdays{font-size:11px;color:#718078}.month-grid button{aspect-ratio:1;padding:0;background:#edf2ee}.month-grid .other{opacity:.35}.month-grid .selected{background:var(--primary);color:#fff}.month-grid .today{outline:2px solid var(--accent)}hr{width:100%;border:0;border-top:1px solid #dde6df}@media(min-width:760px){header{padding-inline:calc((100% - 680px)/2)} }
