:root{--color-green: #658361;--color-light-green: #88a683;--color-bright-green: #66FF66;--color-gray:#eaebeb;--color-mid-gray: #f0f0f0;--color-light-gray:#f5f5f5;--color-white:#ffffff;--color-red:#FF0000;--color-black:#000000;--header-padding: 10px 0 10px 10px}*{margin:0;padding:0;box-sizing:border-box}body{font-family:Source Sans Pro,sans-serif;background-color:var(--color-mid-gray);font-weight:400;font-size:14px;line-height:1.7;color:gray;margin:0;padding:0}h1,h2,h3,h4,h5,h6{color:var(--color-black);font-family:Libre Baskerville,serif;margin:0;font-weight:400}.primary-header-wrapper{margin:0;width:100%}header .primary-header{background-color:var(--color-green);color:var(--color-white);text-align:left;margin:0;width:100%}header .primary-header h1{color:var(--color-white);margin:0;padding:8px 0;width:auto}.header-align{display:flex;align-items:center;width:100%;max-width:1060px;margin:0 auto}header .secondary-header{background-color:var(--color-light-green);padding:var(--header-padding);color:var(--color-white);font-family:Libre Baskerville,serif;font-weight:400;margin-left:10px}#pc-header{background-color:var(--color-light-green);width:100%;padding:10px 0;display:flex;justify-content:flex-start;align-items:center;position:relative;box-sizing:border-box;color:var(--color-white)}#header-content{width:60%;display:flex;justify-content:flex-start;align-items:center;gap:10px}a{color:var(--color-green);transition:color .5s}a:hover,a:active,a:focus{color:var(--color-green);text-decoration:none}.pcinfo-container{display:flex;align-items:center;justify-content:flex-start;background-color:var(--color-green);padding:5px;gap:10px;position:relative;width:auto;margin:0 0 0 auto;border-radius:5px}.user-label-container{display:flex;align-items:center;gap:1px}#userLabel{display:flex;align-items:center;justify-content:center;background-color:var(--color-green);color:#000;padding:0;margin:0;border:2px solid var(--color-green);border-radius:4px;font-size:14px;height:28px;text-align:center}#userAvatar img{display:flex;width:20px;height:20px;border-radius:50%;margin:0}.button-container{display:flex;justify-content:flex-start;gap:10px;max-width:100%;flex-wrap:wrap}button{display:flex;align-items:center;justify-content:center;background-color:var(--color-white);color:var(--color-green);border:2px solid var(--color-green);padding:0 10px;border-radius:4px;font-size:14px;height:30px;text-align:center;cursor:pointer;transition:border .3s,color .3s}button:hover{border:3px solid var(--color-bright-green);color:var(--color-green)}button:disabled{background-color:#f0f0f0;color:#9eae9b;border:2px solid #d1d1d1;cursor:not-allowed}.button-small{border:2px solid var(--color-bright-green)}.finalize-button{display:flex;justify-content:space-between;margin-right:5px}.container-wrap{max-width:1060px;margin:0 auto;background:var(--color-white)}.info-box{border:1px solid #ccc;border-radius:4px;padding:0;background-color:var(--color-white);box-shadow:0 2px 4px #0000001a;margin:0 0 10px}.info-box-nowrap{display:flex;flex-wrap:nowrap;align-items:center;gap:10px}.info-box-header{background-color:var(--color-gray);padding:var(--header-padding);border-bottom:1px solid #ddd;display:flex;flex-direction:column;align-items:flex-start;gap:10px}.info-box-header .button{margin-left:10px}#finalize_actions,#user_actions{display:flex;align-items:flex-start}#finalizeActionsLabel,#userActionsLabel{margin-right:5px}.inline-form{margin:0;display:flex;align-items:center}.inline-form label,.inline-form input[type=file]{margin-right:10px}.inline-form button{margin-left:10px}.status-container{display:block;width:100%;align-items:center;border:none;background-color:transparent;padding:0;box-sizing:border-box;word-wrap:break-word;overflow-wrap:break-word}.decorator-status-box{margin-left:auto;display:inline-block;border:1px solid #ccc;background-color:var(--color-light-gray);padding:8px;max-width:60%;box-sizing:border-box;word-wrap:break-word;overflow-wrap:break-word}.error-message{color:var(--color-red);margin:0;display:inline;font-size:12px}.status-message{color:var(--color-black);font-style:italic;margin:0;display:inline;font-size:12px}.form-container{margin:0;padding:0}.form-container{width:100%;max-width:1060px;margin:0 auto}form{margin-bottom:20px}.form-row{position:relative;display:flex;align-items:center;margin-bottom:0}.form-row label{width:100px;margin-right:10px;padding:10px;text-align:left}.form-row input{width:20ch}.pull-songs-row{gap:8px;padding:0 0 8px 10px}.error-border{border:2px solid red!important;padding:2px;box-sizing:border-box}#service_id,#plan_id,#ccli{width:20ch;height:30px;padding:5px;box-sizing:border-box;text-align:left;font-size:14px}#total_songs{width:6ch;text-align:left}input[type=text]{border:1px solid #ccc;padding:8px;border-radius:4px;font-family:inherit;font-size:inherit;box-sizing:border-box;height:40px}.cat_dec-header{display:flex;align-items:center;gap:10px;margin-bottom:0;font-weight:700;width:fit-content;padding:var(--header-padding)}.header-name,.header-icon{text-align:left;margin:0;padding:0;display:inline-flex}.header-name{width:15ch}.header-icon{width:8ch}#categories-container,#decorators-container{display:flex;flex-direction:column;gap:10px}#categories,#decorators{display:flex;flex-direction:column;gap:10px;padding:0 0 0 10px}.category-entry,.decorator-entry{display:flex;align-items:center;gap:10px}.category-entry select[name="category_name[]"],.decorator-entry select[name="decorator_name[]"]{height:30px;width:15ch;margin-right:10px;border:1px solid #ccc;padding:1px;border-radius:4px;font-size:12px;box-sizing:border-box;text-align:left;line-height:20px}.category-entry input[name="category_value[]"],.decorator-entry input[name="decorator_value[]"]{height:30px;width:6ch;border:1px solid #ccc;padding:1px;border-radius:4px;font-size:12px;box-sizing:border-box;text-align:center;line-height:20px}.category-button-container,.decorator-button-container{display:flex;justify-content:center;margin-top:0}#addCategoryButton,#addDecoratorButton{background-color:var(--color-white);color:var(--color-green);border:2px solid var(--color-green);padding:8px 10px;border-radius:4px;font-size:14px;cursor:pointer;transition:border .3s,color .3s;height:30px;box-sizing:border-box}#addCategoryButton:hover,#addDecoratorButton:hover{border:3px solid var(--color-green);color:var(--color-green)}.tooltip-icon{display:inline-block;background-color:#ddd;color:#333;border-radius:50%;width:20px;height:20px;text-align:center;line-height:20px;font-weight:400;font-size:14px;margin-left:5px;cursor:pointer;position:relative}.tooltip-icon:after{content:attr(data-tooltip);position:absolute;bottom:125%;left:50%;transform:translate(-50%);background-color:#eee;color:#333;padding:10px;white-space:normal;font-weight:400;opacity:0;visibility:hidden;transition:opacity .3s,visibility .3s;font-size:14px;width:300px;word-wrap:break-word;box-sizing:border-box}.tooltip-icon:before{content:"";position:absolute;top:100%;left:50%;transform:translate(-50%);border-width:8px;border-style:solid;border-color:var(--color-white) transparent transparent transparent}.tooltip-icon:after{border-color:#333 transparent transparent transparent}.tooltip-icon:hover:after{opacity:1;visibility:visible}.custom-file-upload{display:flex;align-items:center;justify-content:center;padding:0 10px;font-size:14px;background-color:var(--color-white);color:var(--color-green);border:2px solid var(--color-green);border-radius:4px;height:30px;cursor:pointer;text-align:center;transition:background-color .3s,border .3s;box-sizing:border-box}.custom-file-upload:hover{border:3px solid var(--color-green);color:var(--color-green)}.custom-file-upload:active{background-color:#556d4d}.custom-file-upload input[type=file]{display:none}.message-glow{animation:error-message-glow 1s ease-in-out}@keyframes message-glow{0%{box-shadow:0 0 5px #c8000000}50%{box-shadow:0 0 15px #f00c}to{box-shadow:0 0 5px #c8000000}}#outputOverlay{position:fixed;top:0;left:0;width:100%;height:100%;background:#00000080;color:#fff;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px;box-sizing:border-box;overflow:hidden}#overlayContent{background:#333;padding:20px;border-radius:8px;width:80%;max-width:800px;box-sizing:border-box;height:80%;display:flex;flex-direction:column;overflow:hidden}#output{flex:1;overflow-y:auto;margin-top:20px;background-color:#333;font-family:Courier New,Courier,monospace;box-sizing:border-box}#output::-webkit-scrollbar{width:8px}#output::-webkit-scrollbar-track{background:#333}#output::-webkit-scrollbar-thumb{background:#444;border-radius:4px}#output{scrollbar-width:thin;scrollbar-color:#444 #333}.close-button{position:absolute;top:50%;right:10px;transform:translateY(-50%);background:#555;color:#fff;border:none;border-radius:50%;width:30px;height:30px;text-align:center;line-height:30px;font-size:20px;cursor:pointer;z-index:1001;display:flex;align-items:center;justify-content:center}.close-button:hover{background:#777}.link{margin-bottom:20px}.log-label{display:block;margin-top:0}#scrollable-window{width:75%;height:150px;overflow-y:auto;border:1px solid #ccc;margin-top:10px;resize:both;background-color:#f9f9f9;font-family:Courier New,Courier,monospace;box-sizing:border-box}.maintenanceOverlay{position:fixed;top:0;left:0;width:100%;height:100%;background-color:#000c;color:#fff;font-size:24px;display:flex;align-items:center;justify-content:center;z-index:9999}.loadingOverlay{position:fixed;top:0;left:0;width:100%;height:100%;background-color:#0000004d;display:flex;justify-content:center;align-items:center;z-index:1000}.loadingSpinner{width:50px;height:50px;border:5px solid rgba(255,255,255,.3);border-top:5px solid #fff;border-radius:50%;animation:loadingSpin 1s linear infinite}@keyframes loadingSpin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.hidden{display:none!important}.visible-block{display:block}.visible-flex{display:flex}.visible-inline{display:inline}.visible-inline-block{display:inline-block}@media screen and (max-width:768px){.container-wrap{width:100%}}@keyframes glow{0%{box-shadow:0 0 5px #ffa50000}50%{box-shadow:0 0 15px #ffa500cc}to{box-shadow:0 0 5px #ffa50000}}.glow{animation:glow 1s ease-in-out}#authOverlay{display:none;position:fixed;z-index:9999;top:0;left:0;width:100%;height:100%;background:#000000b3;align-items:center;justify-content:center}.auth-overlay-content{position:relative;background:#fff;padding:20px;border-radius:8px}#closeAuth{position:absolute;top:10px;right:10px;cursor:pointer}.songs-section{margin-top:10px}.header-tools{margin-left:auto;display:flex;align-items:center;gap:10px}.header-tools .pcinfo-container,#pc-header .pcinfo-container{margin-left:0}.settings-gear,.settings-back{margin-left:auto}.header-actions{margin-left:auto;display:flex;align-items:center;gap:8px}.header-actions .settings-gear{margin-left:0}.settings-gear,.profile-button,.settings-mark{font-size:18px;width:34px;min-width:34px;padding:0}.profile-icon{width:18px;height:18px;display:block}.settings-mark{color:var(--color-green);border:2px solid var(--color-green);background-color:var(--color-white)}.song-color-row{display:flex;align-items:center;gap:12px;margin:10px 0}.song-color-label{width:4rem}.song-color-swatches{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.song-color-swatch{width:36px;height:36px;min-width:36px;padding:0;border:1px solid #ccc;border-radius:4px;font-weight:700}.song-color-popup-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000040;z-index:20;display:flex;align-items:center;justify-content:center}.song-color-popup{position:relative;width:420px;max-width:calc(100% - 32px);background:var(--color-white);border:1px solid #ccc;border-radius:6px;padding:16px 16px 12px;box-shadow:0 4px 16px #0000002e;display:flex;flex-direction:column;gap:10px}.song-color-close{position:absolute;top:6px;right:8px;border:0;background:transparent;font-size:22px;line-height:1;width:auto;min-width:0;height:auto}.song-color-picker-row{display:flex;align-items:flex-end;gap:12px}.song-color-popup .song-swatch{width:160px;min-height:84px;margin:0}.song-color-popup label{display:flex;flex-direction:column;align-items:flex-start;gap:4px}.song-swatch{width:220px;min-height:96px;margin:8px 0 12px;padding:16px;box-sizing:border-box;border:1px solid #ccc;border-radius:4px;display:flex;flex-direction:column;justify-content:center;gap:6px;background-size:100% 100%;background-repeat:no-repeat}.song-theme-fields input[type=color]{width:42px;height:30px;padding:0;border:1px solid #ccc;background:transparent}.font-chooser{position:relative;flex:1}.font-chooser-value{width:100%;min-width:220px;justify-content:flex-start;padding:0 10px}.font-chooser-menu{position:absolute;z-index:5;left:0;right:0;max-height:240px;overflow:auto;background:var(--color-white);border:1px solid #ccc;border-radius:4px;box-shadow:0 2px 6px #0000001f}.font-chooser-menu input{width:100%;box-sizing:border-box;border:0;border-bottom:1px solid #ddd;padding:8px}.font-chooser-menu ul{list-style:none;margin:0;padding:0}.font-chooser-menu li button{width:100%;justify-content:flex-start;border:0;border-radius:0;height:auto;min-height:30px;padding:6px 8px}.font-chooser-empty{padding:8px;color:#666}.song-theme-note{margin:8px 0 0;color:#333}#settingsPage,#profilePage{padding-bottom:52px}.page-footer{position:fixed;left:0;right:0;bottom:0;z-index:2;background-color:var(--color-green);width:100%;height:52px}.settings-body{padding:12px;display:flex;flex-direction:column;gap:10px}.template-tree-toggle{border:none;background:transparent;height:auto;padding:0;justify-content:flex-start;font-weight:600;width:100%}.template-tree-toggle:hover{border:none}.template-plan{padding-left:16px}.template-file{margin-left:32px}.settings-add,.settings-row{display:flex;align-items:center;gap:12px}.settings-add label{display:flex;align-items:center;gap:8px;color:var(--color-black)}.settings-add input{height:30px;border:1px solid #ccc;border-radius:4px;padding:0 8px;background:var(--color-white);color:var(--color-black)}.settings-icon-input{width:5rem}.settings-name{min-width:10rem;color:var(--color-black);font-weight:600}.settings-saved-icon{min-width:2rem;font-size:1.25rem}.publish-fields label{display:grid;grid-template-columns:14rem minmax(0,1fr);align-items:center;gap:8px;color:var(--color-black)}.publish-fields input[type=text],.publish-fields input[type=password]{height:30px;width:100%;max-width:36rem;border:1px solid #ccc;border-radius:4px;padding:0 8px;background:var(--color-white);color:var(--color-black);box-sizing:border-box}.publish-password-field{position:relative;max-width:36rem}.publish-password-field input{padding-right:34px}.publish-password-field .toggle-password{right:8px}.publish-settings-note,.publish-settings-error{color:var(--color-black)}.publish-settings-error{color:#8a1f1f}#publishStatusPopup{width:640px;text-align:left}.publish-status-line a,.publish-status-line a:hover{text-decoration:underline;word-break:break-all}.publish-status-line,.publish-status-error{margin:.35rem 0;color:var(--color-black);word-break:break-word}.publish-status-error{color:#8a1f1f}.info-box-header.songs-header{flex-direction:row;align-items:center;justify-content:flex-start;width:100%;box-sizing:border-box}.songs-heading{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.song-action-button,.song-action-button:hover{height:30px;padding:0 10px;box-sizing:border-box;border-width:2px}.song-action-separator{color:#5f6f5c;padding:0 2px}.song-template-link,.song-sort-icon{border:none;background:transparent;height:auto;padding:0;color:var(--color-green)}.song-template-link{text-decoration:underline;font-size:14px}.song-template-link:hover,.song-sort-icon:hover{border:none}.song-sort-icon{width:28px;font-size:16px}.song-template-toast{color:var(--color-green);font-size:14px}.song-template-row{display:flex;align-items:center;gap:8px;padding:10px 12px 0}.song-template-row select{min-width:16rem;height:32px}.generate-song-count{color:var(--color-black);font-size:14px}.generate-button-wrap{position:relative;display:inline-flex}.generate-button-spinner{position:absolute;top:0;right:0;bottom:0;left:0;margin:auto;width:16px;height:16px;border:2px solid rgba(101,131,97,.25);border-top-color:var(--color-green);border-radius:50%;animation:loadingSpin 1s linear infinite;pointer-events:none}.songs-label{display:inline-flex;align-items:center;gap:8px}.inline-spinner{display:inline-block;width:14px;height:14px;flex:0 0 auto;border:2px solid rgba(101,131,97,.25);border-top-color:var(--color-green);border-radius:50%;animation:loadingSpin 1s linear infinite;vertical-align:middle}.song-progress-label .inline-spinner{width:12px;height:12px;margin-left:4px}.songs-body{padding:4px 0 12px}.song-columns{position:sticky;top:0;z-index:1;padding:8px 0 4px;background:var(--color-white);color:#444;font-size:13px;font-weight:600}.song-table{display:grid;grid-template-columns:28px 3rem 11rem 11rem minmax(0,max-content) auto;column-gap:12px;row-gap:8px;max-height:460px;overflow-y:auto;padding:4px 12px 12px}.song-columns,.song-row{display:grid;grid-column:1 / -1;grid-template-columns:subgrid;column-gap:12px;align-items:center}.song-progress-row{display:flex;align-items:center;gap:12px;margin:0;padding:8px 12px 4px}.song-progress{flex:1;min-width:0;height:14px;background:var(--color-gray);border:1px solid #ccc;border-radius:7px;overflow:hidden}.song-progress-bar{height:100%;background:var(--color-green);transition:width .2s ease}.song-progress-label{min-width:4.5em;color:var(--color-black);font-variant-numeric:tabular-nums;white-space:nowrap}.song-row{background:var(--color-white);border:1px solid #ddd;border-radius:6px;padding:8px 0}.song-row.is-dragging{opacity:.35}.song-float{position:fixed;left:0;top:0;z-index:30;display:grid;grid-column:auto;grid-template-columns:28px 3rem 11rem 11rem minmax(0,max-content) auto;column-gap:12px;align-items:center;margin:0;opacity:1;pointer-events:none;box-shadow:0 10px 28px #00000038;will-change:transform}.song-drop-line{position:fixed;left:0;top:0;z-index:40;height:4px;margin:0;border-radius:2px;background:var(--color-green);pointer-events:none}.song-category-label{display:flex;align-items:center;padding:0 6px;box-sizing:border-box}.song-grip{width:28px;height:36px;padding:0;border:1px solid #ccc;border-radius:4px;background:var(--color-white);color:#666;cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;font-size:14px;line-height:1}.song-grip:active,.song-row.is-dragging .song-grip{cursor:grabbing}.song-category{height:30px;width:100%;border:1px solid #ccc;border-radius:4px;background:var(--color-white);color:var(--color-black)}.song-title-line{display:inline-flex;align-items:center;gap:0;min-width:0;max-width:28rem}.song-title{color:var(--color-black);font-weight:600;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.song-ccli{color:#333;text-align:left;white-space:nowrap;font-variant-numeric:tabular-nums}.song-row.is-hidden .song-category,.song-row.is-hidden .song-title,.song-row.is-hidden .song-ccli,.song-row.is-hidden .song-icon{color:#9a9a9a}.song-hide{justify-self:center;margin:0}.song-icon{flex:none;margin:0;padding:0;font-size:1.25rem;line-height:1}@media screen and (max-width:768px){.song-progress-row{flex-wrap:wrap}.songs-body{overflow-x:auto}.song-table{grid-template-columns:28px 3rem 9rem 9rem minmax(8rem,max-content) auto;min-width:680px}}.song-action-button:disabled{opacity:.45;cursor:default}.account-modal{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000059;display:flex;align-items:center;justify-content:center;z-index:20}.account-card{width:min(420px,calc(100% - 32px));background:#fff;border:1px solid #c8d5c4;border-radius:8px;padding:16px;display:flex;flex-direction:column;gap:12px}.account-card-header{display:flex;justify-content:space-between;align-items:center;font-weight:600}.account-close{border:0;background:transparent;font-size:22px;line-height:1;cursor:pointer}.account-card label{display:flex;flex-direction:column;gap:4px}.account-remember{flex-direction:row;align-items:center}.account-links{display:flex;justify-content:space-between}.account-link{border:0;background:transparent;color:#1d4e2f;text-decoration:underline;cursor:pointer;padding:0}.account-error{color:#8b1e1e;margin:0}.account-note,.account-locked{margin:16px}.pwd-row{position:relative;margin-bottom:10px;display:flex;align-items:center;gap:10px}.pwd-row label{width:120px;text-align:left;margin-right:10px}input[type=password],input[type=text]{height:20px;padding-right:0;padding-left:2px;box-sizing:border-box;font-size:14px;line-height:normal;margin:0;border:1px solid #ccc;border-radius:4px;width:50%}.toggle-password{position:absolute;right:10px;top:50%;transform:translateY(-50%);cursor:pointer;-webkit-user-select:none;user-select:none;width:20px;height:20px;object-fit:contain;transition:opacity .3s;opacity:.7}.toggle-password:hover{opacity:1}input::placeholder{font-style:italic;color:#888}#passwordPopup .button-container{justify-content:center}#passwordPopup .error{padding-bottom:10px}.popup{display:none;position:fixed;z-index:999;left:50%;top:50%;transform:translate(-50%,-50%);width:400px;padding:20px;background-color:#fff;box-shadow:0 4px 8px #0000004d;border-radius:10px;text-align:center}.popup .popup-content{position:relative;padding-bottom:20px}.popup .close{position:absolute;top:10px;right:15px;font-size:18px;cursor:pointer}.popup h2{margin-bottom:15px}.button-group{margin-top:20px}.button-group .button{margin:0 10px}.error{color:red;font-size:13px;height:1em;display:none}.popup.show{display:block}.popup.hidden,.hidden{display:none!important}.showError{display:block;visibility:visible;color:red}
