:root{--blue: #2563eb;--ink: #0f172a;--muted: #64748b;--line: #e2e8f0;--bg: #f8fafc;--ok: #16a34a;--bad: #dc2626;--warn-bg: #fef9c3}*{box-sizing:border-box}body{margin:0;font-family:system-ui,Tahoma,sans-serif;background:var(--bg);color:var(--ink)}.shell{padding:16px;max-width:720px;margin:0 auto 80px}h1{color:var(--blue);font-size:22px;margin:0}h2{font-size:17px;margin:0 0 10px}.row{display:flex;gap:8px;align-items:center;justify-content:space-between;flex-wrap:wrap}header.row{margin-bottom:12px}.card{background:#fff;border-radius:14px;padding:14px;margin-bottom:12px;box-shadow:0 1px 3px #0001}.muted{color:var(--muted)}.small{font-size:13px}.error{color:var(--bad)}.big{font-size:40px;font-weight:700;color:var(--blue)}.code{font-family:ui-monospace,monospace;font-size:18px;letter-spacing:2px}button{font:inherit;padding:10px 14px;border:0;border-radius:10px;background:var(--blue);color:#fff;cursor:pointer}button:disabled{background:#94a3b8;cursor:default}button.secondary{background:#fff;color:var(--bad);border:1px solid var(--bad)}button.secondary:disabled{color:#94a3b8;border-color:#cbd5e1;background:#fff}button.link{background:none;color:var(--blue);padding:6px}input,select{font:inherit;padding:9px 10px;border:1px solid var(--line);border-radius:8px;width:100%;background:#fff}.row input{flex:1;min-width:120px;width:auto}label{display:block;margin:8px 0;font-size:14px}label.inline{display:flex;justify-content:space-between;align-items:center;gap:12px}label.inline input{width:110px}.toast{position:fixed;left:16px;right:16px;bottom:16px;max-width:688px;margin:0 auto;background:var(--ink);color:#fff;padding:12px 16px;border-radius:12px}.member-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:10px}.member{display:flex;flex-direction:column;align-items:center;gap:6px;background:#eff6ff;color:var(--ink);padding:16px}.avatar{font-size:40px}.pinpad{max-width:280px;margin:0 auto}.pin-dots{display:flex;justify-content:center;gap:14px;margin:12px 0 18px}.dot{width:16px;height:16px;border-radius:50%;border:2px solid var(--blue)}.dot.on{background:var(--blue)}.keys{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.keys button{font-size:26px;padding:16px 0;background:#eff6ff;color:var(--ink)}.balance{display:flex;align-items:baseline;gap:8px;justify-content:center;font-size:18px}.coin{font-size:44px;align-self:center}.notice{background:var(--warn-bg)}.task-rows .task{display:flex;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid var(--line)}.task-rows .task:last-child{border-bottom:0}.task-rows .title{flex:1}.task .status{font-size:13px;color:var(--muted)}.task.approved .status{color:var(--ok)}.task.rejected .status{color:var(--bad)}.chips{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:10px}.chips button{background:#eff6ff;color:var(--ink)}.history{list-style:none;padding:0;margin:0}.history li{display:flex;justify-content:space-between;gap:8px;padding:8px 0;border-bottom:1px solid var(--line);font-size:14px}.plus{color:var(--ok);font-weight:600}.minus{color:var(--bad);font-weight:600}.simple .task-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px;margin-bottom:10px}.simple .task-cards .task,.simple .task-cards>button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;min-height:140px;padding:14px;border-radius:16px;background:#eff6ff;color:var(--ink);font-size:18px;text-align:center}.simple .task-cards .icon{font-size:48px}.simple .task-cards .task.approved{background:#dcfce7}.simple .task-cards .task.submitted{background:var(--warn-bg)}.simple .big{font-size:56px}.tabs{display:flex;gap:6px;margin-bottom:12px;overflow-x:auto}.tabs button{background:#fff;color:var(--ink);border:1px solid var(--line);white-space:nowrap}.tabs button.on{background:var(--blue);color:#fff;border-color:var(--blue)}.review{padding:10px 0;border-bottom:1px solid var(--line)}.review:last-child{border-bottom:0}.review p{margin:4px 0}.kids{display:grid;grid-template-columns:1fr 1fr;gap:12px}.kid{text-align:center}.template{padding:8px 0;border-bottom:1px solid var(--line)}.template.inactive{opacity:.5}.edit{padding:8px 0}.days{display:flex;gap:6px;flex-wrap:wrap;margin:8px 0}.days label{margin:0;padding:6px 10px;border:1px solid var(--line);border-radius:8px;cursor:pointer}.days label.on{background:var(--blue);color:#fff;border-color:var(--blue)}.days input{display:none}
