*{box-sizing:border-box}body{color:var(--text);background:var(--background);margin:0;font-family:sans-serif}button,input,textarea,select{font:inherit}.menu-container{min-height:100vh}.menu-content{flex-direction:column;flex:1;display:flex}.menu-footer{justify-content:center;padding-bottom:20px;display:flex}.app-container{flex-direction:column;height:100dvh;display:flex}.page-content{flex:1;justify-content:center;align-items:center;min-height:0;display:flex}:root{--background:#f4f8f5;--surface:#ffffffa6;--text:#315c45;--muted:#70877a;--primary-900:#1f5138;--primary-700:#287250;--primary-500:#4b916c;--primary-300:#b6cebc;--primary-100:#e5efe8;--disabled-background:#e7ede9;--disabled-text:#91a397;--white:#fff;--border:transparent;--shadow-card:0 18px 40px #a05a461a}.app-header{justify-content:space-between;align-items:center;padding:16px 24px;display:flex}.app-header__title{color:var(--primary-900);cursor:pointer;background:0 0;border:none;padding:0;font-family:inherit;font-size:24px;font-weight:600}.app-header__title:hover{color:var(--primary-700)}.app-header__help{border:1px solid var(--primary-300);letter-spacing:.2px;cursor:pointer;color:var(--primary-900);background:var(--primary-100);border-radius:4px;margin-left:auto;padding:6px 14px;font-family:inherit;font-size:.85rem;font-weight:400;transition:background .15s}.app-header__help:hover{background:var(--primary-300)}.app-footer{text-align:center;color:var(--muted);justify-content:center;align-items:center;padding:16px;font-size:.75rem;display:flex}.app-footer a{color:var(--primary-700);margin-left:4px;font-weight:500;text-decoration:none;transition:color .15s}.app-footer a:hover{color:var(--primary-900)}.help-modal{z-index:1000;background:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.help-modal__card{background:var(--white);width:70%;max-width:560px;height:70%;min-height:400px;max-height:560px;box-shadow:var(--shadow-card);box-sizing:border-box;border:none;border-radius:5px;flex-direction:column;padding:32px;display:flex;position:relative}.help-modal__close{color:var(--primary-700);text-shadow:0 0 1.5px;cursor:pointer;background:0 0;border:none;font-size:20px;font-weight:600;transition:color .15s;position:absolute;top:10px;right:14px}.help-modal__close:hover{color:var(--primary-900);background:0 0}.help-modal__card h2{text-align:center;color:var(--primary-900);margin:0 0 24px;font-size:24px;font-weight:600}.help-modal__content{color:var(--muted);flex:1;padding:0 12px;font-size:14px;line-height:1.5;overflow-y:auto}.help-modal__content p{color:var(--muted);margin:0;font-size:14px}.help-modal__menu{margin:0;padding-left:24px}.help-modal__menu li{color:var(--primary-700);cursor:pointer;padding:7px 0;font-size:16px;line-height:1.4;transition:color .15s}.help-modal__menu li:hover{color:var(--primary-300)}.help-modal__footer{justify-content:center;margin-top:auto;padding-top:24px;display:flex}.help-modal__footer button{width:auto;color:var(--primary-700);cursor:pointer;background:0 0;border:none;padding:8px 12px;font-size:.8rem;font-weight:400;transition:color .15s}.help-modal__footer button:hover{color:var(--primary-900);background:0 0}.help-modal__page{text-align:justify;width:100%;max-width:480px;margin:0 auto}.help-modal__page p{color:var(--muted);margin:0 0 16px;font-size:14px;line-height:1.5}.help-modal__page p strong{color:var(--primary-700);font-weight:600}.help-modal__page p:last-child{margin-bottom:0}.help-modal__page h3{color:var(--primary-700);margin:0 0 12px;font-size:16px;font-weight:600}.help-modal__info-list{margin:0;padding-left:24px}.help-modal__info-list li{color:var(--muted);padding:4px 0;font-size:14px;line-height:1.5}.help-modal__info-list li::marker{color:var(--primary-700)}.help-modal__info-list li strong{color:var(--primary-700);font-weight:600}.help-modal__page a{color:var(--primary-700);font-weight:600;text-decoration:none;transition:color .15s}.help-modal__page a:hover{color:var(--primary-900);text-decoration:underline}@media (width<=600px){.help-modal__card{width:90%;height:85dvh;padding:24px}.help-modal__card h2{padding:0 32px}}.secret-friend-modal-overlay{z-index:1000;background:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.secret-friend-modal{background:var(--white);width:340px;box-shadow:var(--shadow-card);text-align:center;box-sizing:border-box;border:none;border-radius:5px;padding:32px;position:relative}.secret-friend-modal-close{color:var(--primary-700);text-shadow:0 0 1.5px;cursor:pointer;background:0 0;border:none;font-size:20px;font-weight:600;transition:color .15s;position:absolute;top:10px;right:14px}.secret-friend-modal-close:hover{color:var(--primary-900);background:0 0}.secret-friend-modal h3{color:var(--primary-900);margin:0 0 12px;font-size:24px;font-weight:600}.secret-friend-modal p{color:var(--muted);margin:0;font-size:16px;line-height:1.4}.secret-friend-modal p strong{color:var(--text);font-weight:600}.secret-friend-modal-message-title{color:var(--muted);margin:0;font-size:16px;line-height:1.4}.secret-friend-modal-message-title strong{color:var(--text);font-weight:600}.secret-friend-modal-message{text-align:center;color:var(--muted);margin:0;font-size:12px;line-height:1.4}.secret-friend-modal-qrcode{width:220px;height:220px}.secret-friend-modal-actions{justify-content:center;gap:16px;margin-top:24px;display:flex}.secret-friend-modal-actions button{cursor:pointer;border:none;border-radius:3px;min-width:120px;padding:10px 12px;font-size:14px;font-weight:500;transition:background .15s,color .15s}.secret-friend-modal-primary-button{background:var(--primary-700);color:var(--white)}.secret-friend-modal-primary-button:hover{background:var(--primary-500)}.secret-friend-modal-secondary-button{background:var(--primary-100);color:var(--primary-900)}.secret-friend-modal-secondary-button:hover{background:var(--primary-300)}.secret-friend-modal-message{text-align:center;color:var(--muted);margin:0 0 15px;font-size:13px}@media (width<=600px){.secret-friend-menu-card,.secret-friend-participants-card,.secret-friend-mode-card,.secret-friend-results-card{max-width:400px;padding:24px;width:94%!important}.secret-friend-modal{width:90%!important}.secret-friend-results-card .secret-friend-mobile-title{color:var(--primary-900);margin:0 0 -5px;font-size:20px;font-weight:600}.secret-friend-mobile-info{width:100%;margin:6px 0}.secret-friend-mobile-info p{width:100%;color:var(--muted);margin:3px 0;font-size:14px;display:block}.secret-friend-mobile-info p strong{color:var(--primary-700);font-weight:400}.secret-friend-mobile-info-top{justify-content:space-between;align-items:center;width:100%;display:flex}.secret-friend-mobile-info-top p{width:auto}.secret-friend-results-card .secret-friend-results-table-container{height:200px}.secret-friend-results-table th,.secret-friend-results-table td{padding:7px 6px}.secret-friend-results-table th{font-size:12px}.secret-friend-results-table td{font-size:13px}.secret-friend-results-table td.secret-friend-row-actions{text-align:center;justify-content:center;align-items:center;gap:0;width:auto;display:flex}.secret-friend-results-table td.secret-friend-row-actions button{cursor:pointer;background:0 0;border:none;border-radius:3px;justify-content:center;align-items:center;width:24px;height:24px;margin:0;padding:2px;display:flex}.secret-friend-results-table td.secret-friend-row-actions button:hover{background:var(--primary-100)}.secret-friend-results-table td.secret-friend-row-actions button img{object-fit:contain;width:14px;height:14px}.secret-friend-results-actions{gap:6px}.secret-friend-results-table th:first-child,.secret-friend-results-table td:first-child{width:30%!important}}.menu-view{background:var(--background);justify-content:center;align-items:center;width:100%;height:100%;display:flex}.menu-view__card{background:var(--surface);width:100%;max-width:360px;box-shadow:var(--shadow-card);text-align:center;border:none;border-radius:5px;flex-direction:column;gap:32px;padding:32px 32px 44px;display:flex}.menu-view__header{flex-direction:column;align-items:center;margin-bottom:-8px;display:flex}.menu-view__card h1{color:var(--primary-900);margin:0;font-size:28px;font-weight:600}.menu-view__subtitle{color:var(--muted);margin:8px 0 0;font-size:14px;font-weight:400;line-height:1.4}.menu-view__actions{flex-direction:column;gap:12px;display:flex}.menu-view__actions button{letter-spacing:.2px;cursor:pointer;border:none;border-radius:3px;width:100%;padding:12px;font-size:14px;font-weight:500;transition:background .15s,color .15s}.menu-view__actions button:first-child{background:var(--primary-700);color:var(--white)}.menu-view__actions button:first-child:hover{background:var(--primary-500)}.menu-view__actions button:not(:first-child){background:var(--primary-100);color:var(--primary-900)}.menu-view__actions button:not(:first-child):hover{background:var(--primary-300)}@media (width<=600px){.menu-view__card{max-width:360px;width:94%!important}}.generator-card{background:var(--surface);width:100%;max-width:520px;height:520px;box-shadow:var(--shadow-card);box-sizing:border-box;border:none;border-radius:5px;flex-direction:column;padding:32px;display:flex}.generator-row{justify-content:center;align-items:center;width:100%;display:flex}.generator-row--message{height:50px}.generator-row--input{flex:1}.generator-row--actions{flex-direction:column;gap:12px;height:90px}.generator-primary-button{background:var(--primary-700);width:100%;color:var(--white);cursor:pointer;border:none;border-radius:3px;padding:12px;font-size:14px;font-weight:500;transition:background .15s,color .15s}.generator-primary-button:hover:not(:disabled){background:var(--primary-500)}.generator-primary-button:disabled{background:var(--disabled-background);color:var(--disabled-text);cursor:default}.generator-back-button{width:100%;color:var(--primary-700);cursor:pointer;background:0 0;border:none;padding:10px;font-family:inherit;font-weight:400;transition:color .15s;font-size:.8rem!important}.generator-back-button:hover{color:var(--primary-900);background:0 0}@media (width<=600px){.generator-card{width:94%;max-width:400px;height:80dvh;padding:24px}.generator-row--message{height:auto;min-height:50px}.generator-row--actions{height:auto;min-height:90px}.generator-qrcode-image{max-width:180px;max-height:180px}.generator-textarea{height:160px}}.generator-message{text-align:center;color:var(--muted);margin:0;font-size:14px}.generator-textarea{resize:none;box-sizing:border-box;border:1px solid var(--primary-100);color:#5f6f66;background:#f8faf8;border-radius:3px;outline:none;width:100%;height:180px;padding:12px;font-size:14px}.generator-textarea:focus{border-color:var(--primary-300)}.generator-qrcode-image{border:1px solid var(--primary-300);background:var(--white);border-radius:4px;max-width:220px;max-height:220px;padding:12px}.reader-card{background:var(--surface);width:100%;max-width:520px;height:520px;box-shadow:var(--shadow-card);box-sizing:border-box;border:none;border-radius:5px;flex-direction:column;padding:32px;display:flex}.reader-row{width:100%;display:flex}.reader-row--top{flex-direction:column;gap:12px;width:100%}.reader-message{text-align:center;color:var(--muted);margin:0;font-size:14px}.reader-row--content{flex:1;padding:20px 0}.reader-result{border:1px solid var(--primary-300);color:#5f6f66;box-sizing:border-box;white-space:pre-wrap;word-break:break-word;background:#f8faf8;border-radius:3px;width:100%;height:100%;padding:12px;font-size:14px;overflow-y:auto}.reader-result--empty{text-align:center;color:var(--muted);justify-content:center;align-items:center;display:flex}.reader-row--actions{flex-direction:column;gap:12px}.reader-primary-button{background:var(--primary-700);width:100%;color:var(--white);cursor:pointer;border:none;border-radius:3px;padding:12px;font-size:14px;font-weight:500;transition:background .15s,color .15s}.reader-primary-button:hover:not(:disabled){background:var(--primary-500)}.reader-primary-button:disabled{background:var(--disabled-background);color:var(--disabled-text);cursor:default}.reader-back-button{width:100%;color:var(--primary-700);cursor:pointer;background:0 0;border:none;padding:10px;font-family:inherit;font-size:.8rem;font-weight:400;transition:color .15s}.reader-back-button:hover{color:var(--primary-900);background:0 0}.reader-file-input{display:none}.reader-secondary-button{background:var(--primary-100);width:100%;color:var(--primary-900);cursor:pointer;border:none;border-radius:3px;padding:12px;font-size:14px;font-weight:500;transition:background .15s}.reader-secondary-button:hover{background:var(--primary-300)}@media (width<=600px){.reader-card{width:94%;max-width:400px;height:80dvh;padding:24px}}.secret-friend-menu-view{justify-content:center;width:100%;display:flex}.secret-friend-menu-card{background:var(--surface);width:100%;max-width:500px;box-shadow:var(--shadow-card);box-sizing:border-box;border:none;border-radius:5px;flex-direction:column;gap:16px;padding:32px;display:flex}.secret-friend-menu-card h2{text-align:center;color:var(--primary-900);margin:0;font-size:28px;font-weight:600}.secret-friend-menu-description{text-align:center;color:var(--muted);margin:0 0 12px;font-size:14px;line-height:1.4}.secret-friend-primary-button,.secret-friend-secondary-button{cursor:pointer;border-radius:3px;width:100%;padding:12px;font-size:14px;font-weight:500}.secret-friend-primary-button{background:var(--primary-700);color:var(--white);border:none;transition:background .15s}.secret-friend-secondary-button{background:var(--primary-100);color:var(--primary-900);border:none;transition:background .15s}.secret-friend-secondary-button:hover:not(:disabled){background:var(--primary-300)}.secret-friend-secondary-button:disabled{background:var(--disabled-background);color:var(--disabled-text);cursor:default}.secret-friend-danger-button{color:var(--muted);cursor:pointer;background:0 0;border:none;margin-bottom:-8px;padding:8px;font-size:.85rem;font-weight:400;transition:color .15s}.secret-friend-danger-button:hover:not(:disabled){color:var(--primary-900);background:0 0}.secret-friend-danger-button:disabled{color:var(--disabled-text);cursor:default}.secret-friend-back-button{color:var(--primary-700);cursor:pointer;background:0 0;border:none;padding:8px;font-family:inherit;font-size:.8rem;font-weight:400;transition:color .15s}.secret-friend-participants-card{background:var(--surface);width:100%;max-width:620px;box-shadow:var(--shadow-card);box-sizing:border-box;border:none;border-radius:5px;flex-direction:column;gap:10px;padding:24px;display:flex}.secret-friend-participants-card h2{text-align:center;color:var(--primary-900);margin:0;font-size:28px;font-weight:600}.participants-description{text-align:center;color:var(--muted);margin:0;font-size:14px}.participants-input-section{flex-direction:column;gap:6px;display:flex}.participants-input-section label{color:var(--text);font-size:14px}.participants-input-row{gap:8px;display:flex}.participants-input-row input{border:1px solid var(--primary-300);color:#5f6f66;box-sizing:border-box;background:#f8faf8;border-radius:3px;outline:none;flex:1;min-width:0;padding:10px;font-size:14px}.participants-input-row input:focus{border-color:var(--primary-300)}.participants-input-row button{background:var(--primary-100);width:140px;color:var(--primary-900);cursor:pointer;border:none;border-radius:3px;padding:10px;font-size:14px;font-weight:500;transition:background .15s,color .15s}.participants-input-row button:hover:not(:disabled){background:var(--primary-300)}.participants-input-row button:disabled{background:var(--disabled-background);color:var(--disabled-text);cursor:default}.participants-status{min-height:16px;color:var(--muted);margin:0;font-size:13px}.participants-table-section{flex-direction:column;gap:6px;display:flex}.participants-table-header{justify-content:space-between;align-items:center;display:flex}.participants-title{color:var(--text);margin:0;font-size:14px;font-weight:500}.participants-sort-button{border:1px solid var(--primary-300);width:140px;color:var(--primary-700);cursor:pointer;background:0 0;border-radius:3px;padding:5px 10px;font-size:.85rem;font-weight:400;transition:background .15s,color .15s}.participants-sort-button:hover:not(:disabled){background:var(--primary-100);color:var(--primary-900)}.participants-sort-button:disabled{color:var(--disabled-text);border-color:var(--primary-300);cursor:default;background:0 0}.participants-table{border:1px solid var(--primary-300);background:#f8faf8;border-radius:3px;height:180px;overflow-y:auto}.participants-table table{border-collapse:collapse;width:100%}.participants-table td{color:#5f6f66;padding:8px 12px;font-size:14px}.participants-table td:last-child{text-align:right;width:120px}.participants-table td:last-child button{color:var(--primary-700);cursor:pointer;background:0 0;border:none;border-radius:3px;padding:5px 10px;font-size:.85rem;font-weight:400;transition:color .15s}.participants-table td:last-child button:hover{color:var(--primary-900)}.participants-empty{height:100%;color:var(--muted);justify-content:center;align-items:center;font-size:14px;display:flex}.participants-info{text-align:center;color:var(--muted);margin:0 0 9px;font-size:13px}.participants-next-button{background:var(--primary-700);width:100%;color:var(--white);cursor:pointer;border:none;border-radius:3px;padding:10px;font-size:14px;font-weight:500;transition:background .15s,color .15s}.participants-next-button:hover:not(:disabled){background:var(--primary-500)}.participants-next-button:disabled{background:var(--disabled-background);color:var(--disabled-text);cursor:default}.participants-back-button{width:100%;color:var(--primary-700);cursor:pointer;background:0 0;border:none;padding:8px;font-family:inherit;font-size:.8rem;font-weight:400;transition:color .15s}.participants-back-button:hover{color:var(--primary-900);background:0 0}.secret-friend-mode-card{background:var(--surface);width:100%;max-width:520px;box-shadow:var(--shadow-card);box-sizing:border-box;border:none;border-radius:5px;flex-direction:column;gap:10px;padding:24px;display:flex}.mode-description{text-align:center;color:var(--muted);margin:10px 0;font-size:14px}.mode-options{flex-direction:column;gap:10px;display:flex}.mode-option{border:1px solid var(--primary-300);cursor:pointer;background:#f8faf8;border-radius:3px;padding:12px;transition:background .15s,border-color .15s}.mode-option:hover{background:var(--primary-100)}.mode-option label{color:var(--primary-900);cursor:pointer;align-items:center;gap:8px;font-size:15px;font-weight:500;display:flex}.mode-option label input{accent-color:var(--primary-700);cursor:pointer;margin:0}.mode-option p{color:var(--muted);text-align:justify;margin:6px 0 0 28px;font-size:12px;font-weight:400;line-height:1.4}.mode-option--selected{border:2px solid var(--primary-500);background:var(--primary-100)}.error-message{text-align:center;min-height:16px;color:var(--muted);margin:0;font-size:13px}.secret-friend-primary-button{background:var(--primary-700);width:100%;color:var(--white);cursor:pointer;border:none;border-radius:3px;margin-top:-10px;padding:10px;font-size:14px;font-weight:500;transition:background .15s,color .15s}.secret-friend-primary-button:hover{background:var(--primary-500)}.secret-friend-back-button{width:100%;color:var(--primary-700);cursor:pointer;background:0 0;border:none;padding:8px;font-family:inherit;font-size:.8rem;font-weight:400;transition:color .15s}.secret-friend-back-button:hover{color:var(--primary-900);background:0 0}.secret-friend-results-card{background:var(--surface);width:100%;max-width:720px;box-shadow:var(--shadow-card);box-sizing:border-box;border:none;border-radius:5px;flex-direction:column;gap:10px;padding:24px;display:flex}.secret-friend-results-card h2{text-align:center;color:var(--primary-900);margin:0;font-size:28px;font-weight:600}.secret-friend-results-info{color:var(--muted);grid-template-columns:repeat(3,1fr);gap:16px;margin:10px 0;font-size:13px;display:grid}.secret-friend-results-info p{margin:3px 0}.secret-friend-results-info p:first-child{text-align:left}.secret-friend-results-info p:nth-child(2){text-align:center}.secret-friend-results-info p:nth-child(3){text-align:right}.secret-friend-results-info strong{color:var(--text);font-weight:500}.secret-friend-results-table-container{border:1px solid var(--primary-300);background:#f8faf8;border-radius:3px;height:300px;margin-bottom:12px;overflow-y:auto}.secret-friend-results-table{border-collapse:collapse;table-layout:fixed;width:100%}.secret-friend-results-table th{text-align:left;color:var(--primary-900);background:var(--primary-100);border-bottom:1px solid var(--primary-300);padding:8px 10px;font-size:13px;font-weight:500}.secret-friend-results-table td{color:#5f6f66;padding:8px 10px;font-size:14px}.secret-friend-results-actions{flex-direction:column;gap:8px;display:flex}.secret-friend-results-actions button{cursor:pointer;border:none;border-radius:3px;width:100%;padding:10px;font-size:14px;font-weight:500;transition:background .15s,color .15s}.secret-friend-results-actions button:first-child{background:var(--primary-100);color:var(--primary-900)}.secret-friend-results-actions button:first-child:hover{background:var(--primary-300)}.secret-friend-results-actions button:nth-child(2){background:var(--primary-700);color:var(--white)}.secret-friend-results-actions button:nth-child(2):hover{background:var(--primary-500)}.secret-friend-results-actions .secret-friend-back-button{color:var(--primary-700);background:0 0;padding:8px;font-size:.8rem;font-weight:400}.secret-friend-results-actions .secret-friend-back-button:hover{color:var(--primary-900);background:0 0}.secret-friend-results-table th,.secret-friend-results-table td{box-sizing:border-box}.secret-friend-results-table th:first-child,.secret-friend-results-table td:first-child,.secret-friend-results-table th:nth-child(2),.secret-friend-results-table td:nth-child(2){width:25%}.secret-friend-results-table th:last-child{text-align:center}.secret-friend-results-table td:last-child{text-align:right}.secret-friend-results-table td:last-child button{color:var(--primary-700);cursor:pointer;background:0 0;border:none;border-radius:3px;padding:5px 8px;font-size:.85rem;font-weight:400;transition:color .15s}.secret-friend-results-table td:last-child button:hover{color:var(--primary-900);background:0 0}.secret-friend-result-row td{padding:10px}.secret-friend-result-row td:first-child,.secret-friend-result-row td:nth-child(2){width:30%}.secret-friend-row-actions{text-align:center;grid-template-columns:70px 20px 70px 20px 40px 20px 70px;justify-content:center;align-items:center;display:grid}.secret-friend-row-actions span{text-align:center}.secret-friend-row-actions button{cursor:pointer;background:0 0;border:none;padding:0}.action-separator{opacity:.6}
