:root{font-family:Livvic,sans-serif;line-height:1.5;font-weight:400;--gap: .5em;--green: #0CB04A;--dark-green: #0A7533;--red: #FF3A2F;--dark-red: #A92921;color-scheme:light dark;--color: #213547;--background-color: #ffffff;--secondary-background-color: lightgray;--shadow-color: lightgray;--disabled-color: lightgray;--focus-accent-color: var(--red);--error-color: rgba(255, 42, 27, .63);color:var(--color);background-color:var(--background-color);--focus-outline: 2px solid var(--focus-accent-color);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{font-family:Livvic,sans-serif;color:var(--color)}*:focus-visible{outline:var(--focus-outline);z-index:999!important;border-radius:2px}*[unselectable]{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}::selection{color:var(--dark-red);background-color:var(--green)}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#747bff}body{margin:0;display:flex;flex-direction:column;align-items:stretch;min-height:100dvh}header{background-color:var(--background-color);box-shadow:0 0 10px var(--shadow-color);margin-bottom:10px}footer{background-color:var(--background-color);box-shadow:0 0 10px var(--shadow-color);font-size:large;margin-top:calc(10px + 1em);padding:1em}footer>*{margin:.5em}h1{font-size:2.5em;line-height:1.1;margin:.67em;text-align:center}h2{text-align:center}@media (prefers-color-scheme: dark){:root{--color: rgba(255, 255, 255, .87);--background-color: #242424;--shadow-color: black;--disabled-color: darkgrey;--secondary-background-color: #2d413b}a:hover{color:#535bf2}}@keyframes appear{0%{opacity:0}to{opacity:1}}.disappear{animation:appear .5s ease-in reverse}.appear{animation:appear .5s ease-out forwards}select{background:none;border:none;text-align:center;-webkit-appearance:none;-moz-appearance:none;appearance:none;font-weight:500}select>option{background-color:var(--background-color);font-weight:inherit}select>option:not([value]),select>option[data-excluded]{display:none}button>svg{vertical-align:middle}.error_box[clear]{display:none}.error_box{font-size:large;padding:.5em;border-radius:1em;margin:.5em 0;background:var(--error-color)}.error_box>.message{font-size:medium}.error_box>svg{display:block;height:2em;width:2em;margin:0 auto .5em}#tutorial{margin:auto;padding:20px;font-size:large;font-weight:500}#tutorial>:first-child{margin-top:0}#tutorial>:last-child{margin-bottom:0}#tutorial ol{padding-left:2.3ch}#tutorial ol>li{padding-left:1ch}#tutorial ol>li::marker{font-size:1.2em;font-weight:700}#start_button{display:block;margin:1em auto;padding:.5em 1em;font-size:larger;font-weight:700;font-style:italic;border:none;border-radius:100vmax;background-color:var(--green);transition:background-color .1s ease-out}#start_button:hover{background-color:var(--dark-green)}#file_input_label{display:grid;width:fit-content;margin:1em auto;position:relative;padding:.75em;grid-column-gap:.5em;font-size:larger;border-radius:1em;background-color:var(--green)}#file_input_label svg{grid-row-start:1;grid-row-end:3;margin:auto;height:2em;width:2em}#file_input_label .text_label{grid-row:1;line-height:1}#file_input_label input[type=file]{grid-row:2;width:100%}#file_input_label input[type=file]::file-selector-button{display:none}#file_input_label[hover_drop]{--outline-width: 5px;outline:var(--outline-width) dashed var(--dark-green);outline-offset:calc(var(--outline-width) / -2)}#tab_layout{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-template-rows:0fr 1fr;margin:0 0 auto}label.tab_selection{grid-row:1;text-align:center;line-height:1}label.tab_selection>input[name=tab_selection]{display:none}label.tab_selection>svg{height:3.2em;width:min-content;padding:1em}.tab_content{grid-row:2;margin:0 1em}.tab_content>:first-child{margin-top:0}.tab_content>:last-child{margin-bottom:0}@media screen and (max-width: 1000px){.tab_content{grid-column-start:1;grid-column-end:5;pointer-events:none;opacity:0;height:0}#tab_layout:has(input[name=tab_selection][value=participants]:checked) .tab_content#container_participants,#tab_layout:has(input[name=tab_selection][value=history]:checked) .tab_content#container_history,#tab_layout:has(input[name=tab_selection][value=groups]:checked) .tab_content#container_groups,#tab_layout:has(input[name=tab_selection][value=next_christmas]:checked) .tab_content#container_next_christmas{pointer-events:all;opacity:1;height:unset;transition:opacity .5s ease-in-out}label.tab_selection:has(input[name=tab_selection]:not(:checked))>svg .gift_body{fill:var(--disabled-color)!important}label.tab_selection:has(input[name=tab_selection]:not(:checked))>svg .gift_ribbon{fill:var(--background-color)!important;stroke:var(--disabled-color)!important;stroke-width:4!important}}#add_participant_button{width:-webkit-fill-available;padding:.5em;border-radius:100vmax;border:none;font-size:large;display:flex;flex-direction:row;align-items:center;gap:.5em;text-align:left;background-color:var(--secondary-background-color)}#add_participant_button>svg:first-child{height:2em;width:2em}.participant_definition{font-size:x-large;font-weight:600;border-radius:.5em;margin:.5em;display:flex;flex-direction:row;align-items:center}.participant_definition input[type=text]{font-size:inherit;font-weight:inherit;display:block;background:none;color:var(--color);border:none;outline:none;margin:0;padding:.5em;flex-grow:1;flex-shrink:1}.participant_definition:hover,.participant_definition:has(:focus-visible){background-color:#00000059}.participant_definition:has(:focus-visible){outline:var(--focus-outline);outline-width:2px;overflow:hidden}.participant_definition .delete_participant_button{display:none;background:none;border:none;padding:0;margin:0;border-radius:.5em}.participant_definition .delete_participant_button svg{display:block;margin:.5em;height:2em;width:2em}.participant_definition:focus-within .delete_participant_button{display:block;animation:right-arrive-bin .2s ease-out forwards}@keyframes right-arrive-bin{0%{transform:translate(calc(100% - .5em))}}.history .view_radio{display:flex;flex-direction:row;font-size:large;margin:.5em 0;padding:calc(var(--gap) / 2);border-radius:var(--gap);background-color:var(--secondary-background-color)}.history .view_radio>*{flex-basis:100%;text-align:center;position:relative;z-index:1;padding:calc(var(--gap) / 2);border-radius:calc(var(--gap) / 2)}.history .view_radio>:has(:checked):before{content:"";background-color:var(--background-color);position:absolute;top:0;bottom:0;left:0;right:0;z-index:-1;border-radius:calc(var(--gap) / 2);animation:surprised-appear .1s ease-out}@keyframes surprised-appear{0%{opacity:.2;scale:.9}}.history:has(>.view_radio input[name=history_view_radio][value=year]:not(:checked)) #history_view_year,.history:has(>.view_radio input[name=history_view_radio][value=giver]:not(:checked)) #history_view_giver{display:none}.history_view>button.history_new_exchange_button{border:none;background:none;width:100%;display:flex;flex-direction:row;align-items:center;gap:.25em;padding:.75em .25em .25em;font-size:large;border-bottom:.2em solid var(--secondary-background-color)}.history_view>button.history_new_exchange_button>svg{height:1em;width:1em}.exchange{display:flex;flex-direction:row;align-items:center}.history .exchange:not([data-uuid]){opacity:.75}.exchange:hover{background-color:var(--secondary-background-color)}.exchange>svg{font-size:large;height:1em;width:1em;flex-shrink:0}.exchange>button{flex-shrink:0;background-color:transparent;border:none;padding:0;margin:0}.exchange>button>svg{font-size:large;height:1em;width:1em;padding:.125em}.exchange>select{flex-basis:100%;flex-shrink:1;width:100%;display:block;background:none;border:none;text-align:center;-webkit-appearance:none;-moz-appearance:none;appearance:none;font-weight:500}.exchange>select>option{background-color:var(--background-color);font-weight:inherit}.exchange>select>option:not([value]){display:none}.exchange>select[name=year]{flex-basis:33%}.exchange[from_equal_to]{background:#ff46394d}#history_view_year>button:hover>svg{transform:rotate(90deg);transition:transform .2s ease-out}.group_icon{position:relative;--size: 36px;height:var(--size);width:var(--size)}.group_icon>svg{position:absolute;top:0;left:0;height:inherit;width:inherit}.group_icon.mutual_exclusion_group_icon:hover>svg:nth-child(2),.group_icon.one_way_exclusion_group_icon:hover>svg:nth-child(2){transform:rotate(90deg);transition:transform .2s ease-out}.group_icon.linked_group_icon:hover>svg{transform:rotate(180deg);transition:transform .2s ease-out}.new_group_section .new_group_btn_list_label{text-align:center;font-size:large;margin:0 .5em .5em}.new_group_section .new_group_btn_list{display:flex;flex-direction:row;font-size:large;margin:.5em;gap:.5em;justify-content:center}.new_group_section .new_group_btn_list .new_group_button{border:none;background:var(--secondary-background-color);font-size:large;padding:.5em;margin:0;border-radius:.5em;border-radius:100vmax}.group{font-size:large;margin:.5em 0;padding:.5em;border-radius:1em;background:var(--secondary-background-color)}.group>.group_header{display:flex;flex-direction:row;align-items:center;gap:.5em}.group>.group_header>:nth-child(2){flex-grow:1;flex-shrink:1}.group>.group_header>button{margin:0;padding:0;background:none;border:none}.group>select[name^=add_member]{width:100%}.member_list{background:var(--background-color);border-radius:.5em;overflow:hidden}.member_list:not(:has(*)){display:none}.member_list>*{display:flex;flex-direction:row;align-items:center;padding:.5em}.member_list>*:hover{background-color:#00000059}.member_list>*>:first-child{flex-grow:1;flex-shrink:1}.member_list>*>button{background:none;border:none;margin:0;padding:0;line-height:1}.input_number{display:grid;grid-template-columns:0fr 0fr;grid-template-rows:1fr 1fr;font-size:large;border-radius:.5em;background:var(--background-color);overflow:hidden}.input_number:focus-within{outline:var(--focus-outline)}.input_number>input{grid-row-start:1;grid-row-end:3;border:none;background:none;text-align:center;--width: 3ch;width:var(--width);padding:.5em;outline:none;-webkit-appearance:none;appearance:none;-moz-appearance:textfield}.input_number>input::-webkit-outer-spin-button,.input_number>input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.input_number>input::placeholder{color:var(--color);opacity:.65}.input_number>button{background:none;border-radius:0;border:none;border-left:1px solid grey;height:1.25em;width:1.5em;position:relative;--gap: .25em}.input_number>button:hover{background:#00000059}.input_number>button:after{content:"";position:absolute;--side-length-em: .5;--side-length: calc(var(--side-length-em) * 1em);height:var(--side-length);width:var(--side-length);border:2px solid grey;border-bottom:none;border-right:none;transform-origin:top left}.input_number>button:first-of-type:after{bottom:0;transform:translateY(calc(var(--gap) / -2)) rotate(45deg)}.input_number>button:last-of-type:after{top:0;transform:translateY(calc(var(--gap) / 2)) translateY(100%) rotate(-135deg)}input[type=checkbox]{font-size:large;height:.5em;width:.5em;margin:.25em;display:block;position:relative}input[type=checkbox]:after{content:"";position:absolute;top:-.25em;bottom:-.25em;left:-.25em;right:-.25em;border-radius:.25em;background:var(--background-color)}input[type=checkbox]:hover:after{border-color:var(--dark-green)}input[type=checkbox]:checked:after{content:"✔";text-align:center;line-height:1;vertical-align:middle;background:var(--green)}input[type=checkbox]:active:after{background:var(--dark-green)}input[type=checkbox]:focus-visible:after{outline:var(--focus-outline)}.next .control{background:var(--secondary-background-color);font-size:large;padding:.5em;border-radius:1em}.next .control>*{margin:.5em 0}.next .control>*:first-child{margin-top:0}.next .control>*:last-child{margin-bottom:0}.next .control>label{display:flex;flex-direction:row;align-items:center;gap:.5em}.next .control>label>:first-child{flex-grow:1;flex-shrink:1;word-wrap:break-word;width:min-content}.next .control .generate_button{display:block;background:var(--green);color:var(--color);border:none;font-size:large;padding:.5em 1em;font-weight:600;border-radius:100vmax;margin-left:auto;margin-right:auto}.next .control .generate_button:active{background:var(--dark-green)}.next .next_exchanges_container:not(:has(*)):before{content:"⁝";display:block;text-align:center;font-weight:900;opacity:.5}.next_exchanges .sort_options{font-size:large;margin:.5em 0;display:flex;gap:.5em;flex-direction:row;align-items:center}.next_exchanges .sort_options>:first-child{font-size:large;height:1em;width:1em;flex-shrink:0}.next_exchanges .sort_options>button{flex-basis:100%;display:block;font-size:medium;line-height:1;background:var(--secondary-background-color);border:none;margin:0;padding:.5em;border-radius:.5em}.next_exchanges>.add_next_exchange{display:block;background:var(--secondary-background-color);border:none;margin:.5em auto;padding:.5em;border-radius:.5em;border-radius:100vmax}.next_exchanges>.add_next_exchange>svg{display:block;font-size:large;height:1em;width:1em;line-height:1}.next_exchanges>.add_next_exchange:hover>svg{transform:rotate(90deg);transition:transform .2s ease-out}.next .save_section{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));font-size:medium;gap:.5em}.next .save_section>:last-child{grid-column-start:1;grid-column-end:3}.next .save_section>button{font-size:inherit;margin:0;padding:.5em;background:var(--green);border:none;border-radius:.5em}.next .save_section>button:disabled{background:var(--disabled-color);pointer-events:none}.next .save_section>button:active{background:var(--dark-green)}.next .save_section>button>svg{--svg-size: 1.5em;height:var(--svg-size);width:var(--svg-size);display:block;margin:0 auto}.next .save_section>button>div{text-align:center;font-size:medium;margin-top:.5em}.next .save_section>button.copy_button{position:relative;overflow:hidden}.next .save_section>button.copy_button:after{content:"✔";position:absolute;line-height:1;top:.5em;right:.5em;opacity:0;transform:translate(0);transition:opacity .75s .75s ease-in,transform .1s ease-out}.next .save_section>button.copy_button:active:after{opacity:1;right:.5em;transform:translate(calc(.5em + 100%));transition:opacity 0s,transform 0s}
