:root{--brand:#6a63dd;--brand-dark:#4f48c4;--navy:#1d1b6b;--grey:#ececec;--grey-hover:#dedcf7;--req:#f08a4b;--ok:#1ea44b;--ko:#d93838;--text:#222;--muted:#6b6b76;--serif:"Libre Baskerville", Georgia, serif}*{box-sizing:border-box}body{color:var(--text);background:#f1f1f6;margin:0;font:16px/1.45 system-ui,-apple-system,Segoe UI,Roboto,sans-serif}#app{background:#fff;flex-direction:column;max-width:560px;min-height:100dvh;margin:0 auto;display:flex}@media (width>=600px){body{padding:24px 16px}#app{border-radius:18px;min-height:calc(100dvh - 48px);overflow:clip;box-shadow:0 10px 40px #1d1b6b1f}}svg{fill:none;stroke:currentColor;stroke-width:1.6px;stroke-linecap:round;stroke-linejoin:round;flex:none;width:24px;height:24px}.top{background:var(--navy);color:#fff;justify-content:space-between;align-items:center;padding:10px 16px;display:flex}.who{opacity:.9;font-size:.85rem}.icon-btn{color:#fff;cursor:pointer;background:#ffffff1a;border:0;border-radius:8px;place-items:center;width:44px;height:44px;display:grid}#menu{border:0;border-radius:10px;min-width:220px;margin:0;padding:6px;position:fixed;inset:auto;box-shadow:0 8px 30px #0003}#menu a{color:var(--text);border-radius:6px;padding:12px 14px;text-decoration:none;display:block}@media (hover:hover){#menu a:hover{background:var(--grey)}}.screen{flex:1;padding:16px 16px 24px}h1{font:400 1.65rem/1.2 var(--serif);color:var(--brand);justify-content:center;align-items:center;gap:10px;margin:8px 0 0;display:flex}h1 svg{color:var(--text);width:28px;height:28px}h2{font:400 1.15rem var(--serif);color:var(--brand);margin:28px 0 12px}.sub{text-align:center;font:.78rem var(--serif);color:var(--muted);text-transform:uppercase;letter-spacing:.06em;margin:6px 0 20px}.center{text-align:center}.ask{font:1.1rem var(--serif);color:var(--brand);margin-top:32px}.hint{background:#fdf3d1;border-radius:8px;margin-top:32px;padding:12px;font-size:.85rem}.error{color:var(--ko);min-height:1.2em;margin:0;font-size:.9rem}.thanks{text-align:center;font:1.1rem var(--serif);color:var(--ok);margin-top:24px}.stack{gap:14px;display:grid}label{color:var(--muted);gap:6px;font-size:.9rem;display:grid}input,select,textarea{font:inherit;color:var(--text);background:#fafafa;border:1px solid #d5d5dd;border-radius:6px;width:100%;padding:12px;font-size:16px}input:focus,select:focus,textarea:focus{outline:2px solid var(--brand);outline-offset:1px}.req{border:2px solid var(--req);background:#fff8f3}.tri{text-transform:uppercase;letter-spacing:.2em;text-align:center}.code{text-align:center;letter-spacing:.5em;font-size:1.6rem}.btn{font:inherit;cursor:pointer;border:0;border-radius:8px;padding:14px 18px;font-weight:600}.btn.primary{background:var(--brand);color:#fff}@media (hover:hover){.btn.primary:hover{background:var(--brand-dark)}}.btn.small{background:#fff;padding:8px 10px;font-size:.8rem;font-weight:500}.btn.link{color:var(--ko);background:0 0;margin:32px auto 0;font-size:.85rem;font-weight:400;text-decoration:underline;display:block}.search{background:var(--grey);color:var(--muted);border-radius:6px;flex-direction:row;align-items:center;gap:8px;padding:0 12px;display:flex}.search input{background:0 0;border:0;outline:none;padding:14px 0}.list{background:var(--grey);border-radius:6px;max-height:58dvh;margin:8px 0 0;padding:6px 0;list-style:none;overflow:auto}.list button,.list a{width:100%;font:inherit;color:var(--text);text-align:center;cursor:pointer;background:0 0;border:0;padding:12px 14px;text-decoration:none;display:block}@media (hover:hover){.list button:hover,.list a:hover{background:var(--grey-hover)}}.list .empty{text-align:center;color:var(--muted);padding:12px}.chosen{width:100%;font:inherit;text-align:left;background:var(--grey);cursor:pointer;border:0;border-radius:6px;justify-content:space-between;align-items:center;margin-bottom:14px;padding:14px 12px;display:flex}.ref-box{background:var(--grey);border:2px solid #666;border-radius:4px;justify-content:space-between;align-items:center;gap:8px;padding:14px 12px;display:flex}.tag{background:var(--brand);color:#fff;white-space:nowrap;border-radius:99px;padding:3px 8px;font-size:.75rem}.fields{gap:14px;display:grid}.field{text-align:center;font-family:var(--serif)}.num{border:2px solid var(--req);background:#fff8f3;border-radius:6px;align-items:center;width:100%;max-width:260px;margin:0 auto;display:flex}.num input{text-align:right;background:0 0;border:0;outline:none;min-width:0;font-size:1.25rem}.suffix{color:var(--muted);padding:0 4px}.clear{width:40px;height:44px;color:var(--ko);cursor:pointer;background:0 0;border:0;place-items:center;display:grid}.clear svg{stroke-width:2.4px;width:18px;height:18px}.calc{text-align:center;min-height:1.4em;color:var(--brand);font-weight:600;display:block}.actions{justify-content:center;align-items:center;gap:28px;margin-top:12px;display:flex}.round{cursor:pointer;width:60px;height:60px;color:var(--text);border:0;border-radius:50%;place-items:center;display:grid}.round.ok{background:var(--ok);color:#fff;box-shadow:0 4px 12px #1ea44b55}.round.ko{background:var(--ko);color:#fff;box-shadow:0 4px 12px #d9383855}.round.ok svg,.round.ko svg{stroke-width:3px;width:32px;height:32px}.round.ghost{background:0 0;width:48px;height:48px}.round.ghost svg{width:30px;height:30px}.users{gap:8px;margin:0;padding:0;list-style:none;display:grid}.users li{background:var(--grey);border-radius:6px;flex-wrap:wrap;align-items:center;gap:8px 12px;padding:10px 12px;display:flex}.users b{letter-spacing:.1em;font-family:ui-monospace,monospace}.users .nom{flex:1;min-width:120px}.users select{background:#fff;flex:180px;width:auto;padding:8px}.bottom{padding:6px 12px calc(6px + env(safe-area-inset-bottom));background:#fff;border-top:1px solid #eee;gap:4px;display:flex;position:sticky;bottom:0}.bottom a,.bottom button{width:48px;height:48px;color:var(--text);cursor:pointer;background:0 0;border:0;border-radius:10px;place-items:center;display:grid}@media (hover:hover){.bottom a:hover,.bottom button:hover{background:var(--grey)}}.bottom .info{margin-left:auto}dialog{border:0;border-radius:14px;max-width:min(92vw,420px);padding:20px}dialog::backdrop{background:#1d1b6b66}dialog h2{margin-top:0}.legend{gap:10px;margin:0 0 16px;padding:0;list-style:none;display:grid}.legend li{align-items:center;gap:12px;display:flex}.req-sample{border:2px solid var(--req);border-radius:4px;flex:none;width:24px;height:18px}dialog form .btn{width:100%}
