:root{font-family:ui-rounded,'Trebuchet MS',Arial,sans-serif;color:#253d36;background:#faf9f5;font-synthesis:none;--green:#166b57;--muted:#718079}*{box-sizing:border-box}body{margin:0}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}button:focus-visible,a:focus-visible{outline:4px solid #e5a52b;outline-offset:5px}header{max-width:1320px;padding:27px 48px;margin:auto;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #e5e8e0}.brand{display:flex;gap:12px;align-items:center;color:var(--green);text-decoration:none;font-weight:800;font-size:26px;letter-spacing:-1px}.brand-icon{display:grid;place-items:center;width:48px;height:48px;border-radius:16px;background:#e3eee0;font-size:44px}.brand-sub{display:block;font-size:9px;letter-spacing:1.8px;margin-top:4px}.header-right{display:flex;gap:28px;align-items:center}.class-tag{font-size:13px;color:#68786e}.class-tag span{padding:0 10px;color:#b6c3b5}.quiet{border:0;background:transparent;color:#516a5d;padding:10px;font-size:13px}.quiet:hover{text-decoration:underline}main{max-width:1200px;margin:0 auto;min-height:calc(100vh - 187px);padding:50px 36px 55px}.eyebrow{font-size:11px;font-weight:800;letter-spacing:2px;color:var(--green);margin:0 0 15px}.hero{position:relative;margin-bottom:36px}.hero h1{font-size:clamp(32px,4vw,48px);line-height:1.12;letter-spacing:-1.6px;margin:0 0 16px;font-weight:800}.hero p.subtitle{font-size:18px;color:#718079;line-height:1.6;margin:0}.sun{position:absolute;right:24px;top:6px;color:#e5ab3a;font-size:100px;line-height:1;transform:rotate(12deg)}.section-line{display:flex;align-items:center;justify-content:space-between;margin:0 0 18px}.section-line h2{font-size:14px;font-weight:700;margin:0}.pill{border-radius:30px;padding:7px 12px;background:#eeeee7;color:#788275;font-size:11px}.grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.card{position:relative;padding:0;text-align:left;border:2px solid transparent;border-radius:24px;background:white;box-shadow:0 5px 20px #263c2c08;overflow:hidden;transition:transform .15s,box-shadow .15s,border-color .15s;color:#263d35;min-width:0}.card:hover{transform:translateY(-4px);box-shadow:0 12px 24px #263c2c12}.photo-wrap{position:relative;height:220px;overflow:hidden;background:#e8e6df}.photo-wrap img{display:block;width:100%;height:100%;object-fit:cover}.kid-card .photo-wrap{height:245px}.card:nth-child(1){--accent:#e6eddb}.card:nth-child(2){--accent:#f5e6d4}.card:nth-child(3){--accent:#e0eaf0}.kid-card .photo-wrap{background:var(--accent)}.card-body{padding:22px 24px;display:flex;align-items:center;justify-content:space-between;gap:8px}.card-title{font-size:22px;font-weight:800;letter-spacing:-.4px;display:block}.kid-card .card-title{font-size:28px;letter-spacing:1px}.card-meta{font-size:13px;display:block;margin-top:6px;color:#7b877e}.arrow{background:var(--accent,#f0f2e9);border-radius:50%;width:40px;height:40px;display:grid;place-items:center;font-size:23px;flex-shrink:0}.foot-note{display:flex;align-items:center;justify-content:center;gap:12px;margin:33px 0 0;font-size:14px;color:#7c867b}.foot-note b{font-size:20px;color:#91a17e}.top-nav{display:flex;align-items:center;justify-content:space-between;margin-bottom:30px}.back{display:flex;align-items:center;gap:10px;border:1px solid #dde3d8;border-radius:14px;background:white;color:var(--green);font-weight:700;padding:13px 19px;min-height:52px}.back span{font-size:25px}.identity{display:flex;align-items:center;gap:10px;color:var(--green);font-size:14px;font-weight:800;letter-spacing:1px}.identity img{width:42px;height:42px;border-radius:50%;object-fit:cover}.category-section+.category-section{margin-top:36px}.activity .card-body{min-height:94px;padding-right:65px}.activity .card-title{font-size:21px}.check{position:absolute;right:15px;bottom:24px;border:2px solid #d8dfd7;border-radius:50%;width:40px;height:40px;display:grid;place-items:center;background:white;color:transparent;font-size:25px;font-weight:900}.activity[aria-pressed=true]{border:3px solid #23865d}.activity[aria-pressed=true] .check{background:#23865d;color:white;border-color:#23865d;width:56px;height:56px;bottom:20px;right:14px;box-shadow:0 0 0 5px #fff}.activity[aria-pressed=true] .card-body{background:#eff7ee}.success-chip{position:absolute;top:15px;left:15px;background:#fffef5;color:var(--green);padding:8px 12px;border-radius:20px;font-size:12px;font-weight:800}.activity:not([aria-pressed=true]) .success-chip{display:none}.progress{display:flex;gap:6px;margin-top:12px}.progress i{width:22px;height:5px;border-radius:4px;background:#e5e9e1}.progress i.done{background:#38896a}.activity[disabled]{cursor:wait}footer{max-width:1224px;margin:0 auto;padding:20px 12px 25px;display:flex;justify-content:space-between;gap:16px;align-items:center;border-top:1px solid #e6e8df;font-size:11px;color:#839084}.dot{display:inline-block;width:6px;height:6px;background:#80a482;border-radius:50%;margin-right:4px}#notice{position:fixed;bottom:26px;left:50%;transform:translateX(-50%);background:#254f3f;color:white;padding:13px 23px;border-radius:16px;box-shadow:0 6px 24px #0002;z-index:4;max-width:90%;text-align:center}#notice:empty{display:none}dialog{max-width:580px;width:calc(100% - 32px);border:0;border-radius:24px;padding:34px;color:#294135;box-shadow:0 20px 80px #1234}dialog::backdrop{background:#183e3359;backdrop-filter:blur(3px)}dialog h2{font-size:28px;letter-spacing:-.7px}dialog p,dialog li{line-height:1.65}dialog ol{padding-left:22px}dialog li{margin:10px 0}.close{float:right;font-size:22px}.help-note{background:#f0f3eb;padding:18px;border-radius:14px;font-size:14px}.help-note p{margin-bottom:0}.small{font-size:12px;color:#718079}.primary{background:var(--green);color:#fff;border:0;border-radius:12px;padding:14px 20px;margin-top:20px}.loading{padding:60px;text-align:center}.empty{padding:35px;background:#fff;border-radius:20px}.error{color:#9f3b2e}.saving{font-size:13px;color:#718079}@media(min-width:1400px){main{padding-top:65px}.kid-card .photo-wrap{height:290px}}@media(max-width:750px){header{padding:20px}.brand{font-size:22px}.brand-sub{font-size:7px}.class-tag{display:none}.header-right{gap:0}main{padding:30px 20px}.grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.sun{font-size:65px;right:0}.hero{padding-right:60px}.hero h1{font-size:34px}.hero p.subtitle{font-size:16px}.photo-wrap,.kid-card .photo-wrap{height:200px}.card-body{padding:18px}.card-title,.activity .card-title{font-size:18px}.kid-card .card-title{font-size:23px}footer{margin:0 20px;flex-wrap:wrap}.card{border-radius:20px}}@media(max-width:440px){.grid{grid-template-columns:1fr}.kid-card{display:flex;align-items:center}.kid-card .photo-wrap{width:42%;height:150px;flex-shrink:0}.kid-card .card-body{flex:1;padding:18px 14px}.kid-card .card-title{font-size:23px}.arrow{width:30px;height:30px}.hero h1{font-size:30px}.photo-wrap{height:215px}.header-right .quiet{font-size:11px}.brand-icon{width:36px;height:40px}.foot-note{font-size:12px}.identity{font-size:12px}}@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
/* The validation mark remains directly on the activity photograph. */
.activity .check{top:16px;bottom:auto;right:16px;width:48px;height:48px;background:#ffffffed;box-shadow:0 2px 10px #0001}
.activity[aria-pressed=true] .check{top:16px;bottom:auto;right:16px;width:56px;height:56px}
.activity .card-body{padding-right:24px}

/* Child-facing screens: photos first, adult explanations in the guide. */
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
main{min-height:calc(100vh - 110px);padding-top:40px}
.adult-button{font-size:26px;width:48px;height:48px;border-radius:50%;color:#89968b}
.adult-button:hover{background:#edf0e7;text-decoration:none}
.back{width:72px;height:64px;justify-content:center;padding:0;border-radius:20px}
.back span{font-size:38px}
.identity{font-size:24px;gap:15px}.identity img{width:64px;height:64px}
.section-line h2{font-size:23px;color:#466452}.section-line{margin-bottom:24px}
.kid-card .photo-wrap{height:310px}.photo-wrap{height:280px}
.activity .card-body{height:0;min-height:0;padding:0}.activity .card-title{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
.activity .photo-wrap{height:320px}.activity .check{width:54px;height:54px}
.activity[aria-pressed=true] .check{width:64px;height:64px;font-size:36px}
#notice.symbol{font-size:34px;padding:8px 22px;border-radius:50%}
.adult-status{background:#edf2e8;border-radius:12px;padding:14px;font-size:12px;display:flex;flex-wrap:wrap;gap:12px}
@media(max-width:750px){.kid-card .photo-wrap{height:240px}.photo-wrap,.activity .photo-wrap{height:250px}.identity{font-size:21px}}
@media(max-width:440px){.kid-card .photo-wrap{height:160px}.activity .photo-wrap{height:290px}.identity img{width:52px;height:52px}}
.photo-placeholder{display:grid;place-items:center;width:100%;height:100%;min-height:60px;background:#e5eddf;color:#587961;font-size:50px}
.admin{max-width:1280px}.admin h1{font-size:36px;margin:0}.admin-heading,.panel-head,.dialog-head{display:flex;align-items:center;justify-content:space-between;gap:20px}.admin-heading{margin-bottom:28px}.admin-tabs{display:flex;gap:6px;border-bottom:1px solid #d9e2d6;margin-bottom:28px;overflow:auto}.admin-tabs button{white-space:nowrap;border:0;background:none;padding:16px 18px;color:#647366;font-weight:bold;border-bottom:3px solid transparent}.admin-tabs button[aria-current=page]{color:#166b57;border-color:#166b57}.panel{background:white;border:1px solid #e0e6dc;border-radius:20px;padding:26px;margin-bottom:24px}.panel h2{font-size:22px;margin:0 0 12px}.panel h3{font-size:18px}.panel .primary,.form-actions .primary{margin:0}.secondary{border:1px solid #cfdccf;background:#f8faf5;border-radius:11px;padding:11px 16px;color:#215d49;font-weight:600}.secondary:hover{background:#e9f1e4}.muted{font-size:14px;color:#728070;line-height:1.6}.badge{background:#edf2e7;border-radius:20px;padding:6px 10px;font-size:12px;color:#537250}.list-row{display:flex;align-items:center;gap:15px;padding:16px 0;border-top:1px solid #eef0e9}.list-row p{margin:5px 0 0;font-size:13px;color:#75816e}.grow{flex:1;min-width:100px}.thumb{width:64px;height:64px;border-radius:12px;overflow:hidden;flex-shrink:0}.thumb img{width:100%;height:100%;object-fit:cover}.archived{opacity:.65}.space-block{border-top:1px solid #dae3d6;margin-top:20px;padding-top:12px}.admin label,dialog label{display:flex;flex-direction:column;gap:8px;font-size:14px;font-weight:600;margin:16px 0}.admin input:not([type=checkbox]),.admin select,dialog input:not([type=checkbox]),dialog select,dialog textarea{font:inherit;border:1px solid #c9d6c6;border-radius:10px;padding:12px;background:#fff;width:100%;color:#294135}.admin select{min-width:180px}.admin input[type=checkbox],dialog input[type=checkbox]{width:22px;height:22px;accent-color:#237052;flex-shrink:0;cursor:pointer}.check-label{display:flex!important;flex-direction:row!important;align-items:center;gap:12px!important;font-weight:400!important}.check-label img{width:46px;height:46px;object-fit:cover;border-radius:9px}.admin fieldset,dialog fieldset{border:1px solid #dce5d6;border-radius:14px;padding:10px 18px;margin:20px 0}.assignment legend{padding:0 10px}.assignment-children{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 20px}.inline-label{max-width:350px}.filters{display:flex;gap:24px;align-items:center;flex-wrap:wrap}.filters label{flex:1}.table-scroll{overflow:auto}table{border-collapse:collapse;width:100%;font-size:14px;text-align:left}th{background:#f1f5ec;padding:13px;color:#577052;font-size:12px}td{padding:14px 12px;border-bottom:1px solid #e8eee2}td small{display:block;color:#86907c;margin-top:5px;font-size:11px}.table-photo{display:flex;align-items:center;gap:12px}.table-photo img{width:45px;height:45px;border-radius:8px;object-fit:cover}.form-error{color:#a8352c;font-size:14px}.form-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:22px}.dialog-head h2{margin:0;font-size:25px}.editor-photo{display:block}.editor-photo img{width:100px;height:100px;border-radius:12px;object-fit:cover}#editor{max-height:90vh;overflow:auto;max-width:650px}.admin .help-note{margin:24px 0}.result-check:disabled{opacity:.5}@media(max-width:750px){.panel{padding:18px}.admin-heading,.panel-head{align-items:flex-start;flex-direction:column}.list-row{flex-wrap:wrap}.assignment-children{grid-template-columns:1fr}.admin-tabs button{padding:13px 10px}.filters{gap:10px}.admin h1{font-size:28px}}
.transfer-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:20px}.transfer-card{border:1px solid #dee7d8;background:#fafcf7;border-radius:16px;padding:22px}.transfer-card h3{margin-top:0}.transfer-card p{font-size:14px;line-height:1.6;color:#64785f}.file-button{display:inline-flex!important;cursor:pointer;margin:0!important}.file-button input{position:absolute;width:1px!important;height:1px!important;opacity:0;padding:0!important}.file-button:focus-within{outline:3px solid #d7a84c;outline-offset:3px}.backup-row{display:flex;align-items:center;justify-content:space-between;gap:15px;border-top:1px solid #e0e8d9;padding-top:18px;font-size:13px}.drive-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.origin-box{overflow-wrap:anywhere;font-size:12px;background:#eef4e7;padding:12px;margin:10px 0;border-radius:8px}.drive-success{padding:15px;background:#e8f5e6;border-radius:12px;color:#24583b}button:disabled{cursor:wait;opacity:.55}@media(max-width:750px){.transfer-grid{grid-template-columns:1fr}.backup-row{align-items:flex-start;flex-direction:column}}
.password-field{display:grid;gap:8px;margin:14px 0}.password-field label{margin:0}.password-row{display:flex;gap:8px;align-items:center}.password-row input{min-width:0;flex:1;width:100%}.password-row button{flex-shrink:0;min-height:44px}.recovery-code{font-family:monospace;font-size:1.25rem;line-height:1.8;overflow-wrap:anywhere;padding:16px;background:#edf5f0;border-radius:12px;user-select:all}.danger-panel{border:1px solid #e1b2ab}.danger-button{color:#9b3026;border-color:#d5a39c}
.kid-card.name-only{display:flex;min-height:190px;background:#edf3e8;align-items:center;justify-content:center}.kid-card.name-only:nth-child(3n+2){background:#fbecd9}.kid-card.name-only:nth-child(3n){background:#e5eef5}.kid-card.name-only .card-body{width:100%;justify-content:center;padding:30px 18px}.kid-card.name-only .card-title{font-size:clamp(26px,3.5vw,44px);text-align:center;overflow-wrap:anywhere;letter-spacing:1px}.kid-card.name-only .arrow{display:none}.kid-card.with-drawing .photo-wrap img{object-fit:contain;background:#fff}.identity img{object-fit:contain}@media(max-width:440px){.kid-card.name-only{min-height:120px}.kid-card.name-only .card-title{font-size:32px}}
