:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0b0a10;--bg-soft:#110f18;--surface:#16131f;--surface-2:#1d1929;--surface-3:#262136;--line:#ffffff12;--line-strong:#ffffff24;--text:#ece9f5;--muted:#9d97b0;--faint:#6b6580;--purple:#8b5cf6;--purple-soft:#a78bfa;--purple-deep:#6d28d9;--orange:#f97316;--orange-soft:#fb923c;--danger:#f87171;--ok:#4ade80;--gradient:linear-gradient(120deg, var(--purple) 0%, #c026d3 50%, var(--orange) 100%);--radius:16px;--radius-sm:10px;--ease:cubic-bezier(.22, 1, .36, 1);--shadow:0 1px 0 #ffffff0a inset, 0 20px 40px -24px #000c;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;font-family:Inter,Segoe UI,system-ui,-apple-system,sans-serif;line-height:1.5}*,:before,:after{box-sizing:border-box}body{background:radial-gradient(900px 500px at 10% -10%, #8b5cf638, transparent 60%), radial-gradient(700px 420px at 100% 0%, #f9731624, transparent 60%), var(--bg);background-attachment:fixed;min-height:100vh;margin:0;padding:2.5rem 1.5rem 4rem}#app{max-width:1280px;margin:0 auto}::selection{background:#8b5cf673}.hero{animation:fade-up .7s var(--ease) both;padding:1rem 0 1.5rem}.eyebrow{color:var(--purple-soft);letter-spacing:.08em;text-transform:uppercase;background:#8b5cf61f;border:1px solid #a78bfa59;border-radius:999px;align-items:center;gap:.5rem;padding:.3rem .75rem;font-size:.75rem;font-weight:600;display:inline-flex}.eyebrow:before{content:"";background:var(--orange);width:6px;height:6px;box-shadow:0 0 10px var(--orange);border-radius:50%;animation:2.4s ease-in-out infinite pulse}.hero h1{letter-spacing:-.03em;background:linear-gradient(90deg, var(--purple-soft), #e879f9, var(--orange-soft), #e879f9, var(--purple-soft));color:#0000;background-size:200%;-webkit-background-clip:text;background-clip:text;margin:.9rem 0 .5rem;font-size:clamp(2.2rem,5vw,3.4rem);font-weight:800;line-height:1.05;animation:8s linear infinite shimmer}.hero p{max-width:60ch;color:var(--muted);margin:0;font-size:1.05rem}.hero p.privacy{border-radius:var(--radius-sm);max-width:72ch;color:var(--text);background:#4ade8012;border:1px solid #4ade8040;align-items:flex-start;gap:.55rem;margin-top:.9rem;padding:.5rem .85rem;font-size:.85rem;display:inline-flex}.hero p.privacy:before{content:"";background:var(--ok);width:8px;height:8px;box-shadow:0 0 8px var(--ok);border-radius:50%;flex:none;margin-top:.45em}.site-footer{border-top:1px solid var(--line);color:var(--muted);text-align:center;margin:2.5rem 0 1rem;padding-top:1.25rem;font-size:.85rem}.site-footer p{margin:0}.site-footer .build-info{color:var(--faint);margin-top:.4rem;font-size:.75rem}.site-footer .build-info a{color:inherit;border-bottom:1px dotted;font-family:ui-monospace,SF Mono,Menlo,monospace;text-decoration:none;transition:color .2s}.site-footer .build-info a:hover{color:var(--purple-soft)}.site-footer .whatsapp{color:var(--orange-soft);border-bottom:1px solid #0000;font-weight:600;text-decoration:none;transition:color .2s,border-color .2s}.site-footer .whatsapp:hover,.site-footer .whatsapp:focus-visible{color:var(--orange);border-bottom-color:currentColor;outline:none}.card{border:1px solid var(--line);border-radius:var(--radius);background:linear-gradient(180deg, var(--surface) 0%, var(--bg-soft) 100%);box-shadow:var(--shadow);animation:fade-up .6s var(--ease) both;margin:1.25rem 0;padding:1.5rem 1.75rem;transition:border-color .3s,box-shadow .3s;position:relative}.card:hover{border-color:var(--line-strong)}.card:first-of-type{animation-delay:50ms}.card:nth-of-type(2){animation-delay:.12s}.card:nth-of-type(3){animation-delay:.19s}.card:nth-of-type(4){animation-delay:.26s}.card:last-of-type{border-color:#8b5cf640}.card h2{letter-spacing:-.01em;align-items:center;gap:.75rem;margin:0 0 1rem;font-size:1.25rem;font-weight:700;display:flex}.card h2:before{content:"";background:var(--gradient);border-radius:4px;width:4px;height:1.3em}.card h3{letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin:1.5rem 0 .75rem;font-size:.8rem;font-weight:700}.card p{color:var(--muted)}.tools{flex-wrap:wrap;align-items:center;gap:.6rem;margin:1rem 0 .5rem;display:flex}.result-tools{border:1px solid var(--line);border-radius:var(--radius-sm);background:#00000040;align-items:flex-end;padding:1rem}button,.file-button{font:inherit;border-radius:var(--radius-sm);background:var(--surface-3);color:var(--text);cursor:pointer;transition:transform .2s var(--ease), box-shadow .25s ease, background-color .2s ease, border-color .2s ease, color .2s ease, opacity .2s ease;border:1px solid #0000;padding:.55rem 1.05rem;font-size:.9rem;font-weight:600}button:hover:not(:disabled),.file-picker:hover .file-button{background:#302944;transform:translateY(-1px)}button:active:not(:disabled){transform:translateY(0)scale(.98)}button:focus-visible{outline:none;box-shadow:0 0 0 3px #8b5cf680}button.primary{background:var(--gradient);color:#fff;transition:transform .2s var(--ease), box-shadow .25s ease, background-position .5s ease, opacity .2s ease;background-size:160%;box-shadow:0 8px 24px -10px #8b5cf6e6}button.primary:hover:not(:disabled){background:var(--gradient);background-position:100%;background-size:160%;box-shadow:0 12px 28px -8px #f97316bf}button.accent{color:var(--orange-soft);background:#f973161f;border-color:#f9731673}button.accent:hover:not(:disabled){background:#f9731638;box-shadow:0 8px 22px -10px #f97316cc}button.ghost{border-color:var(--line-strong);color:var(--text);background:0 0}button.ghost:hover:not(:disabled){color:#fff;background:#8b5cf61a;border-color:#a78bfa99}button.ghost.add{color:var(--purple-soft);border-style:dashed;margin-top:.75rem}button.ghost.danger{color:var(--muted);padding:.4rem .8rem;font-size:.8rem}button.ghost.danger:hover:not(:disabled){color:var(--danger);background:#f871711a;border-color:#f8717199}button:disabled{opacity:.35;cursor:not-allowed;box-shadow:none}input,select{font:inherit;border:1px solid var(--line-strong);border-radius:var(--radius-sm);color:var(--text);background:#00000059;padding:.5rem .7rem;font-size:.92rem;transition:border-color .2s,box-shadow .2s,background-color .2s}input:hover,select:hover{border-color:#a78bfa66}input:focus,select:focus{border-color:var(--purple);background:#00000080;outline:none;box-shadow:0 0 0 3px #8b5cf640}.file-picker{border:1px dashed var(--line-strong);border-radius:var(--radius-sm);max-width:100%;color:var(--muted);cursor:pointer;background:#00000059;align-items:center;gap:.8rem;padding:.3rem .9rem .3rem .3rem;transition:border-color .2s,background-color .2s;display:inline-flex;position:relative}.file-picker:hover{border-color:var(--purple)}.file-picker:focus-within{border-color:var(--purple);box-shadow:0 0 0 3px #8b5cf640}.file-picker input[type=file]{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute}.file-button{background:var(--gradient);color:#fff}.file-name{white-space:nowrap;text-overflow:ellipsis;font-size:.9rem;overflow:hidden}input[type=number]::-webkit-inner-spin-button{opacity:.4}select option{background:var(--surface-2)}.fields{border-top:1px solid var(--line);grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:1rem 1.25rem;margin-top:1.5rem;padding-top:1.5rem;display:grid}.field{flex-direction:column;gap:.4rem;display:flex}.field>span:first-child{color:var(--muted);font-size:.8rem;font-weight:600}.field.toggle{border:1px solid var(--line);border-radius:var(--radius-sm);cursor:pointer;background:#0003;flex-flow:wrap;justify-content:space-between;align-items:center;gap:.75rem;padding:.75rem 1rem}.field.toggle>span:first-child{color:var(--text);flex:1}.field.toggle input[type=checkbox]{appearance:none;border:1px solid var(--line-strong);background:var(--surface-3);cursor:pointer;border-radius:999px;flex:none;width:44px;height:24px;padding:0;transition:background-color .25s,border-color .25s;position:relative}.field.toggle input[type=checkbox]:after{content:"";background:var(--muted);width:16px;height:16px;transition:transform .3s var(--ease), background-color .25s ease;border-radius:50%;position:absolute;top:3px;left:3px}.field.toggle input[type=checkbox]:checked{background:var(--gradient);border-color:#0000}.field.toggle input[type=checkbox]:checked:after{background:#fff;transform:translate(20px)}.field.toggle .error{flex-basis:100%}.error{color:var(--danger);font-size:.8rem}.error:empty{display:none}.status{margin-top:.75rem}.status:empty{display:none}.status>p{color:var(--text);margin:.5rem 0;animation:.4s both fade-in}.status>p.error{border-radius:var(--radius-sm);background:#f8717114;border:1px solid #f8717159;padding:.6rem .9rem;font-size:.9rem}.status ul{color:var(--orange-soft);margin:.5rem 0;padding-left:1.2rem;font-size:.88rem}.notice{border-radius:var(--radius-sm);color:var(--orange-soft);background:#f973161a;border:1px solid #f9731666;padding:.75rem 1rem;animation:.4s both fade-in}.ok{border-radius:var(--radius-sm);background:#4ade8014;border:1px solid #4ade804d;align-items:center;gap:.6rem;padding:.75rem 1rem;display:flex;color:var(--ok)!important}.ok:before{content:"✓";font-weight:800}.warnings{gap:.4rem;margin:0;padding:0;list-style:none;display:grid}.warnings li{border-left:3px solid var(--orange);border-radius:0 var(--radius-sm) var(--radius-sm) 0;color:#fed7aa;animation:slide-in .4s var(--ease) both;background:#f9731614;padding:.55rem .9rem;font-size:.88rem}.warnings li:nth-child(2){animation-delay:30ms}.warnings li:nth-child(3){animation-delay:60ms}.warnings li:nth-child(n+4){animation-delay:90ms}.result-block>*{animation:fade-up .5s var(--ease) both}table{border-collapse:separate;border-spacing:0;border:1px solid var(--line);border-radius:var(--radius-sm);width:auto;overflow:hidden}th,td{border-bottom:1px solid var(--line);text-align:center;padding:.45rem .6rem}thead th{color:var(--muted);letter-spacing:.06em;text-transform:uppercase;background:#00000059;font-size:.72rem;font-weight:700}tbody tr:last-child th,tbody tr:last-child td{border-bottom:none}tbody tr{transition:background-color .15s}tbody tr:hover{background:#8b5cf60f}.shifts{width:100%}.shifts td{vertical-align:top;padding:.5rem}.shifts input{width:100%}.hint{margin:.6rem 0 0;font-size:.8rem;color:var(--faint)!important}.shifts td:first-child input{min-width:8rem}.shifts .error{text-align:left;margin-top:.25rem;display:block}.shifts .error:empty{display:none}.exceptions td{font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:.82rem}.exceptions td:first-child{text-align:left;font-family:inherit}.grid-scroll{border-radius:var(--radius-sm);scrollbar-color:var(--surface-3) transparent;overflow-x:auto}.schedule{white-space:nowrap;font-size:.76rem}.schedule th,.schedule td{border-right:1px solid var(--line);padding:.35rem .4rem}.schedule thead th{font-size:.68rem;line-height:1.2}.schedule tbody th{z-index:1;background:var(--surface);text-align:left;font-weight:600;position:sticky;left:0}.schedule td{min-width:3.6rem}.weekend{background:#ffffff06}thead th.weekend{color:var(--orange-soft)}.schedule td.shift{transition:transform .2s var(--ease), filter .2s ease;font-weight:700;position:relative}.schedule td.shift:hover{z-index:2;filter:brightness(1.25);transform:scale(1.08)}.shift-0{color:#d8ccff;box-shadow:inset 3px 0 0 var(--purple);background:#8b5cf638!important}.shift-1{color:#ffd2b0;box-shadow:inset 3px 0 0 var(--orange);background:#f9731633!important}.shift-2{color:#fbcfe8;box-shadow:inset 3px 0 #ec4899;background:#ec489933!important}.shift-3{color:#ccfbf1;box-shadow:inset 3px 0 #2dd4bf;background:#2dd4bf29!important}.shift-4{color:#fef08a;box-shadow:inset 3px 0 #facc15;background:#facc1529!important}.shift-5{color:#dbeafe;box-shadow:inset 3px 0 #60a5fa;background:#60a5fa2e!important}.blocked{color:var(--faint);background:repeating-linear-gradient(45deg,#ffffff08,#ffffff08 5px,#ffffff14 5px 10px)!important}.coverage th,.coverage td{color:var(--muted);background:#0000004d;font-size:.7rem}.coverage:first-of-type th,.coverage:first-of-type td{border-top:1px solid var(--line-strong)}.coverage td.short{color:var(--danger);background:#f871712e;font-weight:700}.report{min-width:min(100%,720px);font-size:.88rem}.report tbody th{text-align:left;font-weight:600}.report td{font-variant-numeric:tabular-nums}.report td.pos{color:var(--orange-soft);font-weight:700}.report td.neg{color:var(--purple-soft);font-weight:700}.report tfoot th,.report tfoot td{border-top:1px solid var(--line-strong);background:#0000004d;font-weight:700}@keyframes fade-up{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes slide-in{0%{opacity:0;transform:translate(-10px)}to{opacity:1;transform:none}}@keyframes shimmer{to{background-position:200%}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.35}}@media (width<=720px){body{padding:1.5rem .75rem 3rem}.card{padding:1.25rem 1rem}.shifts,.report{max-width:100%;display:block;overflow-x:auto}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}.field-label,.th-label{align-items:center;gap:.35rem;display:inline-flex}button.help{width:1.05rem;height:1.05rem;color:var(--purple-soft);letter-spacing:0;text-transform:none;cursor:help;box-shadow:none;transition:background-color .2s ease, border-color .2s ease, color .2s ease, transform .2s var(--ease);background:#8b5cf624;border:1px solid #a78bfa73;border-radius:50%;flex:none;place-items:center;padding:0;font-size:.65rem;font-weight:700;line-height:1;display:inline-grid}button.help:before{content:"?"}button.help:hover:not(:disabled),button.help:focus-visible{border-color:var(--orange);color:var(--orange-soft);box-shadow:none;background:#f973162e;outline:none;transform:scale(1.12)}.card h2 button.help{width:1.2rem;height:1.2rem;font-size:.72rem}.help-tip{z-index:1000;border-radius:var(--radius-sm);max-width:min(320px,100vw - 24px);color:var(--text);letter-spacing:normal;text-align:left;text-transform:none;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .18s ease, transform .18s var(--ease), visibility .18s;background:#1b1726;border:1px solid #a78bfa59;padding:.7rem .85rem;font-size:.82rem;font-weight:400;line-height:1.5;position:fixed;top:0;left:0;transform:translateY(4px);box-shadow:0 12px 32px -8px #000c,0 0 0 1px #0006}.help-tip.visible{opacity:1;visibility:visible;transform:translateY(0)}
