:root{--brand: #0ea5e9;--brand-600:#0284c7;--bg: #f8fafc;--card: #ffffff;--text: #0f172a;--muted: #64748b;--border:#e5e7eb;--success:#22c55e;--danger: #ef4444;--brandlogo: #3b83f600}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--text);font:16px/1.4 ui-sans-serif,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Inter,Helvetica,Arial;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}img{display:block;max-width:100%}button,input,select{font:inherit}.container{max-width:960px;margin:0 auto;padding:16px}.brandbar{position:sticky;top:0;z-index:50;-webkit-backdrop-filter:saturate(180%) blur(6px);backdrop-filter:saturate(180%) blur(6px);background:#fffc;border-bottom:1px solid var(--border)}.brandbar .inner{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 16px}.brand{display:flex;align-items:center;gap:10px;font-weight:800;letter-spacing:.3px}.brand .logo{width:42px;height:28px;border-radius:8px;background:var(--brandlogo)}.userbox{display:flex;align-items:center;gap:8px}.badge{font-size:12px;padding:2px 6px;border-radius:999px;background:#e2f2fb;color:#055e8a}.link{appearance:none;border:0;background:transparent;color:var(--brand-600);font-weight:600;cursor:pointer}.card{background:var(--card);border:1px solid var(--border);border-radius:16px;box-shadow:0 1px 2px #1018280a;padding:16px}.card.headlined{padding-top:12px}.card h3{margin:6px 0 12px}.field{display:grid;gap:6px;margin-bottom:10px}label{font-size:14px;color:var(--muted)}.input,.select,.file{width:100%;border:1px solid var(--border);border-radius:12px;padding:12px;background:#fff}.row{display:flex;gap:8px;align-items:center}.btn{appearance:none;border:0;border-radius:12px;padding:10px 14px;font-weight:600;cursor:pointer}.btn.brand{background:var(--brand);color:#fff}.btn.brand:active{transform:translateY(1px)}.btn.ghost{background:#eef6fb;color:#055e8a}.btn.soft{background:#fff;border:1px solid var(--border)}.btn.block{width:100%}.list{display:flex;flex-direction:column;gap:6px}.player{display:flex;align-items:center;gap:12px;padding:10px;border:1px solid var(--border);border-radius:12px;background:#fff}.avatar{width:44px;height:44px;border-radius:10px;background:#e5e7eb;object-fit:cover}.player .meta{flex:1}.player .name{font-weight:700}.player .sub{font-size:12px;color:var(--muted)}.toggle{min-width:104px}.chip{padding:8px 12px;border-radius:999px;font-weight:700;border:1px solid var(--border);background:#fff;cursor:pointer;text-align:center}.chip.ok{background:#ecfdf5;color:#065f46;border-color:#a7f3d0}.chip.no{background:#fff1f2;color:#9f1239;border-color:#fecdd3}.grid2{display:grid;gap:16px}@media (min-width: 900px){.grid2{grid-template-columns:1fr 1fr}}.table{width:100%;border-collapse:collapse}.table th,.table td{padding:10px 8px;border-bottom:1px solid var(--border);text-align:left}.fullcenter{min-height:100vh;display:grid;place-items:center;padding:20px}.loginCard{max-width:380px}.loginTitle{margin:0 0 8px}.loginSub{margin:0 0 16px;color:var(--muted)}.pin{letter-spacing:8px;text-align:center}.acc{display:flex;flex-direction:column;gap:10px}.acc-item{border:1px solid var(--border);border-radius:14px;background:#fff;overflow:hidden}.acc-head{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;cursor:pointer;-webkit-user-select:none;user-select:none}.acc-title{font-weight:800}.acc-body{padding:12px 14px;border-top:1px solid var(--border)}.caret{transition:transform .2s ease}.caret.open{transform:rotate(90deg)}.scroll{max-height:calc(100vh - 240px);overflow:auto;-webkit-overflow-scrolling:touch}.list.compact .player{padding:8px}.modal-backdrop{position:fixed;inset:0;background:#00000059;display:flex;align-items:center;justify-content:center;z-index:50;padding:16px}.modal{width:100%;max-width:520px;background:#fff;border-radius:16px;box-shadow:0 10px 30px #0003;overflow:hidden}.modal-head,.modal-foot{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--border)}.modal-foot{border-top:1px solid var(--border);border-bottom:none}.modal-body{padding:12px 16px;max-height:70vh;overflow:auto;-webkit-overflow-scrolling:touch}.btn.link{background:transparent;color:#6b21a8;text-decoration:underline}.statusbar{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.stbtn{border:1px solid var(--border);background:#fff;padding:6px 10px;border-radius:999px;font-weight:700;font-size:12px}.stbtn.present.selected{background:#dcfce7;color:#065f46;border-color:#bbf7d0}.stbtn.absent.selected{background:#fee2e2;color:#991b1b;border-color:#fecaca}.stbtn.late.selected{background:#fef3c7;color:#92400e;border-color:#fde68a}.modal-mask{position:fixed;inset:0;background:#00000073;display:flex;align-items:center;justify-content:center;z-index:1000}.modal{background:#fff;width:min(640px,92vw);max-height:92vh;border-radius:12px;box-shadow:0 10px 30px #00000040;display:flex;flex-direction:column;overflow:hidden}.modal-head{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid #eee}.modal-body{padding:16px;overflow:auto}.modal-foot{padding:12px 16px;border-top:1px solid #eee;display:flex;gap:8px;justify-content:flex-end}.switch{width:44px;height:26px;background:#e5e7eb;border-radius:9999px;position:relative;border:none;padding:0;cursor:pointer;transition:background .2s ease;display:inline-flex;align-items:center}.switch:hover{filter:saturate(1.1)}.switch.on{background:#16a34a}.switch .knob{width:22px;height:22px;background:#fff;border-radius:9999px;position:absolute;left:2px;top:2px;transition:transform .2s ease;box-shadow:0 1px 2px #00000026}.switch.on .knob{transform:translate(18px)}.switch,.switch:focus{outline:none}
