body{min-height:100vh}.demo-bar{z-index:50;color:#222;text-align:center;background:#febd10;padding:5px;font:700 12px/1.2 -apple-system,Segoe UI,Arial,sans-serif;position:fixed;top:0;left:0;right:0}.wrap{max-width:980px;margin:0 auto;padding:44px 18px 40px}.top{justify-content:space-between;align-items:center;gap:12px;margin-bottom:18px;display:flex}.top .logo{width:170px;margin:0}.pill{color:#fff;cursor:pointer;background:#083a68e6;border:0;border-radius:10px;padding:8px 12px;font:600 13px -apple-system,Segoe UI,Arial,sans-serif;text-decoration:none}.panel{color:#58585a;background:#fffffff7;border-radius:16px;padding:18px;box-shadow:0 8px 24px #0000002e}.panel h1,.panel h2{color:#0d5597;margin:0 0 6px}.muted{opacity:.85;font-size:13px}.grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px;margin-top:14px;display:grid}.tile{text-align:left;color:#0d5597;cursor:pointer;background:#fff;border:0;border-radius:16px;min-height:96px;padding:16px 12px;font:800 17px -apple-system,Segoe UI,Arial,sans-serif;box-shadow:0 4px 14px #0000002e}.tile small{color:#58585a;margin-top:6px;font-size:12px;font-weight:600;display:block}.tile.Present{color:#16653a;background:#dff6e8}.tile.Tardy{color:#7a5200;background:#fff4d6}.tile.Late{color:#9a3412;background:#ffe1d6}.tag{border-radius:999px;margin-top:6px;padding:2px 9px;font-size:12px;font-weight:800;display:inline-block}.tag.Present{color:#fff;background:#16653a}.tag.Tardy{color:#fff;background:#b7791f}.tag.Late{color:#fff;background:#c2410c}.tag.Absent{color:#fff;background:#6b7280}.tag.Notyet{color:#374151;background:#e5e7eb}.row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.sheet{z-index:60;background:#00000073;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.sheet .panel{border-radius:20px 20px 0 0;width:100%;max-width:520px;padding:22px}.choice{text-align:left;color:#333;cursor:pointer;background:#fff;border:2px solid #c9d3df;border-radius:12px;width:100%;margin-top:8px;padding:12px;font:600 15px -apple-system,Segoe UI,Arial,sans-serif;display:block}.choice.on{background:#eef3f9;border-color:#0d5597}.err{color:#b3261e;margin-top:10px;font-size:13px}.ok{color:#16653a;background:#dff6e8;border-radius:10px;margin-top:10px;padding:10px;font-size:14px}table{border-collapse:collapse;width:100%;font-size:14px}th{text-align:left;color:#0d5597;text-transform:uppercase;background:#eef3f9;padding:8px 10px;font-size:12px}td{vertical-align:top;border-top:1px solid #e6e9ee;padding:9px 10px}
