:root{color:#19202d;font-synthesis:none;text-rendering:optimizelegibility;--ink:#19202d;--muted:#667085;--line:#e4e5df;--paper:#fffef9;--green:#1f6b4f;--green-dark:#15523d;--green-soft:#eaf3ed;--orange:#f17f42;--yellow:#ffd458;--shadow:0 18px 50px #1c272114;background:#f7f7f2;font-family:Inter,Noto Sans TC,Microsoft JhengHei,system-ui,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:#f7f7f2;min-width:320px;min-height:100vh;margin:0}button,input,textarea{font:inherit}button{color:inherit}button:focus-visible,input:focus-visible,textarea:focus-visible,[tabindex]:focus-visible{outline-offset:2px;outline:3px solid #f17f4252}button:disabled{cursor:not-allowed;opacity:.48}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;position:absolute!important}.app-shell{min-height:100vh}.sidebar{color:#fff;z-index:20;background:#111c19;flex-direction:column;width:280px;padding:28px 18px 22px;display:flex;position:fixed;inset:0 auto 0 0}.brand{color:#fff;align-items:center;gap:12px;padding:0 10px 31px;text-decoration:none;display:flex}.brand-mark{background:var(--orange);color:#fff;border-radius:50% 50% 48% 42%;place-items:center;width:40px;height:40px;display:grid;transform:rotate(-6deg)}.brand-mark svg{transform:rotate(6deg)}.brand strong{letter-spacing:.04em;font-size:18px;display:block}.brand small{letter-spacing:.28em;color:#9ab2a9;margin-top:2px;font-size:9px;display:block}.nav-kicker{letter-spacing:.18em;text-transform:uppercase;color:#6f8a80;margin:0 0 10px;padding:0 12px;font-size:10px;font-weight:700}.mode-list{gap:5px;display:grid}.mode-item{color:#acc0b8;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:12px;align-items:center;gap:12px;width:100%;padding:13px 12px;transition:background .2s,color .2s,transform .2s;display:flex}.mode-item:hover{color:#fff;background:#ffffff0d}.mode-item.active{color:#fff;box-shadow:inset 3px 0 var(--orange);background:#20332d}.mode-item:active{transform:scale(.99)}.mode-icon{background:#ffffff0f;border-radius:9px;flex:none;place-items:center;width:34px;height:34px;display:grid}.mode-item.active .mode-icon{background:var(--orange)}.mode-item strong,.mode-item small{display:block}.mode-item strong{font-size:14px;font-weight:600}.mode-item small{color:#758d84;margin-top:3px;font-size:10px}.mode-item.active small{color:#a4bab2}.sidebar-bottom{gap:14px;margin-top:auto;display:grid}.history-link{cursor:pointer;color:#cad7d2;background:0 0;border:1px solid #293a35;border-radius:11px;align-items:center;gap:10px;padding:12px;display:flex}.history-link span{text-align:left;flex:1;font-size:13px}.history-link b{background:var(--orange);color:#fff;border-radius:20px;min-width:24px;padding:2px 8px}.privacy-note{color:#729187;align-items:center;gap:9px;padding:6px 10px;display:flex}.privacy-note strong,.privacy-note small{display:block}.privacy-note strong{color:#92aaa1;font-size:11px}.privacy-note small{margin-top:2px;font-size:9px}.mobile-history-button{display:none}.main-content{min-height:100vh;margin-left:280px;padding:58px clamp(30px,6vw,92px) 24px;position:relative;overflow:hidden}.main-content:before{content:"";pointer-events:none;border:1px solid #e5e6df;border-radius:50%;width:470px;height:470px;position:absolute;top:-250px;right:-210px;box-shadow:0 0 0 54px #f2f2eb,0 0 0 55px #e9eae3}.hero{justify-content:space-between;align-items:flex-end;gap:36px;max-width:1050px;margin-bottom:34px;display:flex;position:relative}.eyebrow{color:var(--orange);letter-spacing:.24em;margin-bottom:13px;font-size:10px;font-weight:800;line-height:1;display:block}.hero h1{color:var(--ink);letter-spacing:-.055em;margin:0;font-size:clamp(34px,4.5vw,58px);font-weight:800;line-height:1.08}.hero h1 em{color:var(--green);font-style:normal;display:block}.hero p{color:var(--muted);max-width:540px;margin:15px 0 0;font-size:14px;line-height:1.75}.trust-pill{color:var(--green);background:#ffffffad;border:1px solid #dce4de;border-radius:11px;flex:none;align-items:center;gap:9px;padding:9px 14px;display:flex}.trust-pill strong,.trust-pill small{display:block}.trust-pill strong{font-size:11px}.trust-pill small{color:#829089;margin-top:1px;font-size:9px}.notice{color:#874315;background:#fff4e8;border:1px solid #f4caa4;border-radius:10px;justify-content:space-between;align-items:center;max-width:1050px;margin:-12px 0 18px;padding:10px 13px;font-size:13px;display:flex}.notice button{cursor:pointer;color:inherit;background:0 0;border:0;place-items:center;display:grid}.workspace{grid-template-columns:minmax(0,1.3fr) minmax(300px,.85fr);align-items:start;gap:18px;max-width:1050px;display:grid}.number-workspace{grid-template-columns:minmax(0,760px)}.form-card{background:var(--paper);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:17px;padding:24px}.form-card.compact{padding:24px}.card-heading{align-items:flex-start;gap:13px;margin-bottom:20px;display:flex}.card-heading>span{background:var(--green-soft);width:29px;height:29px;color:var(--green);border-radius:50%;flex:none;place-items:center;font-size:10px;font-weight:800;display:grid}.card-heading h2{letter-spacing:-.02em;margin:1px 0 3px;font-size:17px}.card-heading p{color:#889087;margin:0;font-size:11px}label{color:#4d584f;font-size:11px;font-weight:600}input[type=number],textarea{width:100%;color:var(--ink);background:#fff;border:1px solid #dfe2dc;border-radius:9px;margin-top:7px;transition:border .2s,box-shadow .2s;display:block}input[type=number]{height:47px;padding:0 13px;font-size:15px;font-weight:600}textarea{resize:vertical;min-height:202px;padding:13px 14px;font-size:13px;line-height:1.65}input[type=number]:focus,textarea:focus{border-color:#80aa98;outline:0;box-shadow:0 0 0 3px #1f6b4f14}.field-grid{gap:14px;display:grid}.field-grid.two{grid-template-columns:1fr 1fr}.availability{color:#6e7971;background:#f2f6f3;border-radius:9px;justify-content:space-between;align-items:center;margin:15px 0;padding:11px 13px;font-size:11px;display:flex}.availability strong{color:var(--green);font-size:16px}.settings-row{align-items:end}.segmented-field{border:0;min-width:0;margin:0;padding:0}.segmented-field legend{color:#4d584f;margin-bottom:7px;font-size:11px;font-weight:600}.segmented{background:#fafbf8;border:1px solid #dfe2dc;border-radius:9px;grid-template-columns:1fr 1fr;height:47px;padding:3px;display:grid}.segmented button{cursor:pointer;color:#7d847f;background:0 0;border:0;border-radius:6px;font-size:11px}.segmented button.selected{color:var(--green);background:#fff;font-weight:700;box-shadow:0 2px 8px #18231d14}.setting-help{color:#7f8982;margin:10px 2px 0;font-size:10px;line-height:1.55}.setting-help strong{color:var(--green)}.form-error{color:#aa3e2c;background:#fff0ec;border-radius:7px;margin:13px 0 0;padding:8px 10px;font-size:11px}.draw-button{color:#fff;background:var(--green);cursor:pointer;border:0;border-radius:10px;justify-content:space-between;align-items:center;width:100%;height:50px;margin-top:19px;padding:0 17px;transition:transform .2s,background .2s;display:flex;box-shadow:0 8px 20px #1f6b4f2b}.draw-button:hover:not(:disabled){background:var(--green-dark);transform:translateY(-1px)}.draw-button span:first-child{margin:auto;font-size:13px;font-weight:700;transform:translate(8px)}.draw-button span:last-child{font-size:17px}.textarea-label>span{display:block}.list-meta{color:#849088;align-items:center;gap:12px;margin:9px 2px 13px;font-size:10px;display:flex}.list-meta strong{color:var(--green);font-size:13px}.duplicate-note{color:#a7652f;background:#fff5e8;border-radius:20px;padding:3px 8px}.import-actions{border-top:1px dashed #dfe2dc;flex-wrap:wrap;align-items:center;gap:8px;padding-top:14px;display:flex}.import-button{color:#526157;cursor:pointer;background:#fff;border:1px solid #d9ded9;border-radius:8px;align-items:center;gap:6px;height:36px;padding:0 12px;font-size:10px;font-weight:700;display:flex}.import-button:hover{color:var(--green);border-color:#9db8aa}.import-actions small{color:#9a9f9b;margin-left:auto;font-size:9px}.choice-cards{border:0;gap:8px;margin:0 0 16px;padding:0;display:grid}.choice-cards label{cursor:pointer;border:1px solid #e0e3de;border-radius:9px;align-items:center;gap:10px;padding:11px;display:flex}.choice-cards label.selected{background:#f1f7f3;border-color:#8daf9f}.choice-cards input{accent-color:var(--green)}.choice-cards strong,.choice-cards small{display:block}.choice-cards strong{font-size:12px}.choice-cards small{color:#8b948d;margin-top:2px;font-size:9px;font-weight:400}.single-field{display:block}.order-card .draw-button{margin-top:6px}.shuffle-stage{color:#fff;text-align:center;background:#11251f;border-radius:17px;align-content:center;place-items:center;max-width:1050px;min-height:270px;margin-top:20px;display:grid;position:relative;overflow:hidden}.shuffle-stage:before{content:"";border:1px solid #ffffff0f;border-radius:50%;width:260px;height:260px;position:absolute;box-shadow:0 0 0 40px #ffffff05,0 0 0 80px #ffffff03}.shuffle-orb{color:var(--yellow);z-index:1;gap:10px;margin-bottom:20px;font-size:22px;display:flex}.shuffle-orb span{animation:.75s infinite alternate bounce}.shuffle-orb span:nth-child(2){animation-delay:.2s}.shuffle-orb span:nth-child(3){animation-delay:.4s}.shuffle-stage strong,.shuffle-stage p{z-index:1;position:relative}.shuffle-stage strong{font-size:20px}.shuffle-stage p{color:#92aaa1;font-size:11px}@keyframes bounce{to{opacity:.5;transform:translateY(-11px)rotate(20deg)}}.result-shell{color:#fff;background:#12241f;border-radius:17px;max-width:1050px;margin-top:20px;position:relative;overflow:hidden;box-shadow:0 20px 60px #11241f33}.result-shell:fullscreen{background:#12241f;border-radius:0;padding:5vh 7vw;overflow:auto}.result-header{z-index:2;border-bottom:1px solid #ffffff14;justify-content:space-between;padding:25px 28px 18px;display:flex;position:relative}.result-header h2{margin:0 0 5px;font-size:21px}.result-header p{color:#91a79f;margin:0;font-size:10px}.icon-button{cursor:pointer;background:0 0;border:1px solid #808c863d;border-radius:50%;place-items:center;width:35px;height:35px;display:grid}.result-header .icon-button{color:#a6bab3}.result-content{z-index:2;padding:29px;position:relative}.number-results{flex-wrap:wrap;justify-content:center;gap:18px;padding:18px;display:flex}.number-results span{color:#14221e;background:#fbcd55;border-radius:50%;place-items:center;min-width:102px;height:102px;padding:0 13px;font-size:34px;font-weight:800;display:grid;box-shadow:inset 0 -8px #f17f4230,0 8px 28px #ffd45821}.winner-results{gap:9px;max-width:580px;margin:0 auto;padding:0;list-style:none;display:grid}.winner-results li{background:#ffffff0f;border:1px solid #ffffff14;border-radius:10px;align-items:center;gap:14px;padding:12px 16px;display:flex}.winner-results li span{background:var(--yellow);color:#263229;border-radius:50%;place-items:center;width:27px;height:27px;font-size:11px;font-weight:800;display:grid}.winner-results li strong{font-size:17px}.group-results{grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px;display:grid}.group-results article{background:#ffffff0f;border:1px solid #ffffff17;border-radius:11px;overflow:hidden}.group-results header{background:#ffffff0a;justify-content:space-between;padding:11px 13px;display:flex}.group-results header strong{font-size:13px}.group-results header span{color:#9bb0a9;font-size:10px}.group-results ul{margin:0;padding:9px 13px 13px;list-style:none}.group-results li{border-bottom:1px solid #ffffff0f;padding:6px 0;font-size:12px}.group-results li:last-child{border:0}.order-results{columns:2;column-gap:18px;max-width:650px;margin:0 auto;padding:0;list-style:none}.order-results li{break-inside:avoid;border-bottom:1px solid #ffffff14;align-items:center;gap:12px;padding:9px 4px;display:flex}.order-results span{color:var(--yellow);font-size:10px;font-weight:800}.order-results strong{font-size:13px;font-weight:600}.result-footer{z-index:2;border-top:1px solid #ffffff14;justify-content:space-between;align-items:center;gap:12px;padding:13px 25px;display:flex;position:relative}.result-footer>span{color:#829991;align-items:center;gap:6px;font-size:9px;display:flex}.result-footer>div{gap:6px;display:flex}.result-footer button{color:#b9cbc4;cursor:pointer;background:#ffffff0d;border:1px solid #ffffff1a;border-radius:7px;align-items:center;gap:5px;height:34px;padding:0 10px;font-size:9px;display:flex}.result-footer button:hover{color:#fff;background:#ffffff1a}.confetti{pointer-events:none;position:absolute;inset:0;overflow:hidden}.confetti i{background:var(--orange);width:7px;height:13px;top:-15px;left:calc(var(--x,5) * 8%);animation:2.4s ease-out both confetti;position:absolute;transform:rotate(20deg)}.confetti i:nth-child(2n){background:var(--yellow);width:5px}.confetti i:nth-child(3n){background:#50a987}.confetti i:first-child{--x:1}.confetti i:nth-child(2){--x:2;animation-delay:.1s}.confetti i:nth-child(3){--x:3;animation-delay:.2s}.confetti i:nth-child(4){--x:4;animation-delay:50ms}.confetti i:nth-child(5){--x:5;animation-delay:.25s}.confetti i:nth-child(6){--x:6;animation-delay:.15s}.confetti i:nth-child(7){--x:7;animation-delay:.3s}.confetti i:nth-child(8){--x:8}.confetti i:nth-child(9){--x:9;animation-delay:.12s}.confetti i:nth-child(10){--x:10;animation-delay:.22s}.confetti i:nth-child(11){--x:11}.confetti i:nth-child(12){--x:12;animation-delay:.18s}@keyframes confetti{0%{opacity:1;transform:translateY(0)rotate(0)}to{opacity:0;transform:translateY(330px)rotate(520deg)}}.toast{z-index:80;color:#fff;box-shadow:var(--shadow);background:#26322e;border-radius:30px;padding:10px 17px;font-size:11px;animation:2.8s both toast;position:fixed;bottom:25px;left:50%;transform:translate(-50%)}@keyframes toast{0%,to{opacity:0;transform:translate(-50%,8px)}12%,85%{opacity:1;transform:translate(-50%)}}.exporting{min-height:540px;border-radius:0!important;width:900px!important;margin:0!important}.exporting .result-footer button,.exporting .confetti,.exporting .toast,.exporting .result-header .icon-button{display:none!important}.modal-backdrop{z-index:60;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0c1512ad;place-items:center;padding:22px;display:grid;position:fixed;inset:0}.modal{background:var(--paper);border-radius:16px;flex-direction:column;width:min(1040px,100%);max-height:calc(100vh - 44px);display:flex;overflow:hidden;box-shadow:0 24px 80px #00000040}.modal-header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:flex-start;padding:20px 22px;display:flex}.modal-header h2{margin:0 0 4px;font-size:19px}.modal-header p{color:#8a928c;margin:0;font-size:10px}.modal-header .icon-button{color:#66726b}.csv-toolbar{border-bottom:1px solid var(--line);background:#f5f6f1;justify-content:space-between;align-items:center;gap:10px;padding:10px 18px;display:flex}.check-control{cursor:pointer;align-items:center;gap:7px;display:flex}.check-control input{accent-color:var(--green)}.toolbar-actions{gap:7px;display:flex}.toolbar-actions button,.secondary-button{cursor:pointer;background:#fff;border:1px solid #d9ddd8;border-radius:7px;padding:7px 10px;font-size:10px}.csv-table-wrap{min-height:240px;overflow:auto}.csv-table-wrap table{border-collapse:separate;border-spacing:0;width:100%;font-size:11px}.csv-table-wrap th{z-index:2;text-align:left;white-space:nowrap;background:#edf0eb;border-bottom:1px solid #d8dcd7;padding:9px 11px;position:sticky;top:0}.csv-table-wrap th.selected{color:var(--green);background:#dfece5}.csv-table-wrap th label{align-items:center;gap:7px;display:flex}.csv-table-wrap td{white-space:pre-wrap;border-bottom:1px solid #eceeea;max-width:260px;padding:8px 11px}.csv-table-wrap td.selected{background:#f5faf7}.csv-table-wrap tr.row-active td.row-select{background:#edf6f1}.row-select{width:55px;text-align:center!important}.empty-cell{color:#adb2ae;font-style:italic}.empty-warning{color:#a85e2f;font-size:9px;white-space:nowrap!important}.modal-footer{border-top:1px solid var(--line);align-items:center;gap:9px;padding:13px 18px;display:flex}.modal-footer>div{margin-right:auto}.modal-footer strong,.modal-footer small{display:block}.modal-footer strong{font-size:12px}.modal-footer small{color:#a8683e;margin-top:2px;font-size:9px}.primary-button{background:var(--green);color:#fff;cursor:pointer;border:0;border-radius:7px;padding:8px 14px;font-size:10px;font-weight:700}.history-backdrop{place-items:stretch end;padding:0}.history-panel{background:var(--paper);flex-direction:column;width:min(430px,100%);height:100%;animation:.25s ease-out slide-in;display:flex}.history-list{flex:1;align-content:start;gap:7px;padding:14px;display:grid;overflow:auto}.history-card{text-align:left;cursor:pointer;background:#fff;border:1px solid #e5e7e2;border-radius:10px;align-items:center;gap:10px;width:100%;padding:11px;display:flex}.history-card:hover{border-color:#a8bdb3}.history-mode{background:var(--green-soft);width:35px;height:35px;color:var(--green);border-radius:9px;flex:none;place-items:center;display:grid}.history-mode.name{color:#c66029;background:#fff2e8}.history-mode.group{color:#927317;background:#fff8d9}.history-mode.order{color:#5264a3;background:#eef0fa}.history-card>span:nth-child(2){flex:1;min-width:0}.history-card strong,.history-card small,.history-card time{display:block}.history-card strong{font-size:12px}.history-card small{color:#79847d;white-space:nowrap;text-overflow:ellipsis;margin:2px 0 3px;font-size:9px;overflow:hidden}.history-card time{color:#a3aaa5;font-size:8px}.history-card>b{color:#a8afa9;font-size:22px}.empty-history{color:#919b95;text-align:center;padding:80px 30px}.empty-history strong{color:#59645e;margin-top:13px;display:block}.empty-history p{font-size:10px}.history-footer{border-top:1px solid var(--line);justify-content:space-between;align-items:center;padding:14px 18px;display:flex}.danger-button{color:#a23a2b;cursor:pointer;background:#fff8f6;border:1px solid #eccbc5;border-radius:7px;padding:8px 10px;font-size:10px}.history-footer small{color:#9da39f;font-size:9px}@keyframes slide-in{0%{transform:translate(100%)}}.about-shufflelab{color:#667169;background:#ffffff7a;border:1px solid #e3e5df;border-radius:12px;grid-template-columns:minmax(250px,.85fr) minmax(0,1.35fr);align-items:center;gap:24px;max-width:1050px;margin-top:26px;padding:17px 20px;display:grid}.about-shufflelab .eyebrow{margin-bottom:7px;font-size:8px}.about-shufflelab h2{color:#334039;letter-spacing:-.01em;margin:0;font-size:14px}.about-shufflelab p{margin:0;font-size:10px;line-height:1.7}.site-footer{color:#9da39d;align-items:center;gap:18px;max-width:1050px;padding:20px 2px 0;font-size:9px;display:flex}.site-footer>span:nth-child(2){margin-left:auto}.github-cta{align-items:center;gap:10px;display:flex}.github-cta small{color:#6f7a73;text-align:right;font-size:10px;line-height:1.55}.github-cta small span{white-space:nowrap;display:block}.github-cta a{color:var(--green);border:1px solid var(--green);background:0 0;border-radius:9px;flex:none;align-items:center;gap:6px;min-height:34px;padding:0 12px;font-size:10px;font-weight:700;text-decoration:none;transition:color .2s,background .2s,transform .2s,box-shadow .2s;display:inline-flex}.github-cta a:hover{color:var(--green-dark);background:var(--green-soft);transform:translateY(-1px);box-shadow:0 5px 14px #1f6b4f1f}@media (width<=900px){.sidebar{width:100%;height:auto;padding:15px;position:relative}.brand{width:fit-content;padding:0 3px 13px}.mobile-history-button{color:#cad7d2;cursor:pointer;background:#20332d;border:1px solid #30473f;border-radius:9px;align-items:center;gap:6px;height:35px;padding:0 9px;font-size:10px;display:flex;position:absolute;top:18px;right:15px}.mobile-history-button b{color:#fff;background:var(--orange);border-radius:20px;min-width:19px;padding:1px 5px;font-size:9px}.sidebar nav{overflow-x:auto}.nav-kicker,.sidebar-bottom{display:none}.mode-list{min-width:650px;display:flex}.mode-item{min-width:150px;padding:9px}.mode-item small{display:none}.main-content{margin-left:0;padding:37px 24px 20px}.workspace{grid-template-columns:1fr 1fr}}@media (width<=680px){.main-content{padding:30px 14px 18px}.main-content:before{display:none}.hero{align-items:flex-start;margin-bottom:24px}.hero h1{font-size:38px}.hero p{font-size:12px}.trust-pill{display:none}.workspace{grid-template-columns:1fr}.form-card,.form-card.compact{padding:19px}.field-grid.two{grid-template-columns:1fr}.import-actions small{flex-basis:100%;margin-left:0}.result-header{padding:21px 19px 15px}.result-content{padding:20px 14px}.number-results{gap:11px;padding:8px}.number-results span{min-width:80px;height:80px;font-size:27px}.order-results{columns:1}.result-footer{flex-direction:column;align-items:flex-start;padding:12px 17px}.result-footer>div{width:100%}.result-footer button{flex:1;justify-content:center;padding:0 5px}.about-shufflelab{grid-template-columns:1fr;gap:8px;padding:15px 16px}.about-shufflelab p{font-size:10px}.site-footer{grid-template-columns:1fr;gap:8px;display:grid}.site-footer>span:nth-child(2){display:none}.github-cta{justify-content:space-between;gap:14px}.github-cta small{text-align:left;max-width:220px}.modal-backdrop{padding:8px}.modal{max-height:calc(100vh - 16px)}.csv-toolbar{flex-direction:column;align-items:flex-start}.modal-footer{flex-wrap:wrap}.modal-footer>div{flex-basis:100%}.modal-footer .check-control{margin-right:auto}.csv-table-wrap{min-height:200px}.history-backdrop{padding:0}.history-panel{width:100%}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
