.App{text-align:center}.App-logo{height:40vmin;pointer-events:none}@media (prefers-reduced-motion:no-preference){.App-logo{animation:App-logo-spin 20s linear infinite}}.App-header{background-color:#282c34;min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:calc(10px + 2vmin);color:white}.App-link{color:#61dafb}@keyframes App-logo-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}body,html{margin:0;padding:0;height:100%;background-color:#f0f2f5}h1{font-size:2rem;font-weight:700}h2{font-size:1.5rem}h2,h3{font-weight:600}h3{font-size:1.25rem}.login_page{position:fixed;top:0;left:0;width:100%;height:100%;background-color:#f0f2f5;display:flex;justify-content:center;align-items:center;z-index:9999}.login_box{background:white;padding:40px;border-radius:8px;box-shadow:0 5px 20px rgba(0,0,0,.2);width:300px;text-align:center}.login_box input{margin:10px 0;border:1px solid #ddd;border-radius:4px}.login_box button,.login_box input{width:100%;padding:10px;font-size:1em}.login_box button{background-color:#0078d7;color:white;border:none;border-radius:4px;font-weight:700;cursor:pointer}.login_box button:hover{background-color:#005ea2}.login_box button:disabled:hover{background:#0078d7;cursor:default}.loading-screen{position:fixed;top:0;left:0;width:100vw;height:100vh;background-color:white;color:black;display:flex;justify-content:center;align-items:center;z-index:9999}.copyright{font-size:.95em;color:#A9A9A9}.welcome_wrapper{display:flex;flex-direction:column;align-items:center;padding:40px 20px;font-family:sans-serif;background-color:#f5f5f5;min-height:100vh}.welcome_box{background-color:#fff;padding:40px;width:800px;border-radius:8px;box-shadow:0 4px 20px rgba(0,0,0,.05);text-align:center}.logo_placeholder{background:#ccc;width:60px;height:60px;margin:0 auto 20px;display:flex;align-items:center;justify-content:center;font-weight:700}.welcome_text{margin-bottom:30px;font-size:16px;line-height:1.5;color:#222}.details_1{margin:20px 0;padding:15px;background-color:#f8f9fa;border:1px solid #dee2e6;border-radius:8px;text-align:left;max-width:100%;box-sizing:border-box}.summary_1{font-size:1.17em;font-weight:700}.popup_overlay{position:fixed;top:0;left:0;width:100%;height:100%;background-color:rgba(0,0,0,.6);display:flex;align-items:center;justify-content:center;z-index:9998}.popup_modal{background:white;padding:30px;border-radius:10px;position:relative;max-width:1000px;max-height:none;overflow-y:visible;width:90%;text-align:left;z-index:9999}.popup_modal ol{list-style:decimal;padding-left:20px;margin-bottom:1rem}.popup_close{position:sticky;right:15px;float:right;z-index:10000}.centered_column_container{display:flex;flex-direction:column;align-items:center}.next_button{background-color:#ddd;padding:12px 20px;border:none;display:block;margin:10px auto;width:40%;font-size:16px;font-weight:700;cursor:pointer}.next_button:disabled{background-color:#f5f5f5;color:#aaa;cursor:not-allowed}.next_button_highlighted{background-color:#00BB00;padding:12px 20px;border:none;display:block;margin:10px auto;width:40%;font-size:16px;font-weight:700;cursor:pointer}.back_button{margin-top:10px}.calculate_cost_button{background-color:#ddd;padding:12px 20px;border:none;display:block;margin:10px auto;width:40%;font-size:16px;font-weight:700;cursor:pointer}.welcome_nav{margin-top:20px;display:flex;gap:10px}.nav_item{padding:6px 12px;background:#eee;border-radius:6px;font-size:14px;color:#666}.nav_item.active{background:#ddd;font-weight:700}.goal_box{width:800px;max-width:90%;text-align:left}.goal_box .logo_placeholder{align-self:flex-start}.goal_title{font-size:1.5rem;font-weight:400;color:#333;margin-bottom:.5rem;width:100%}.goal_subtitle{font-size:1rem;color:#666;margin-top:0;margin-bottom:2rem;width:100%}.goal_option_list{width:100%;text-align:left;margin-bottom:1.5rem}.goal_option_wrapper{display:flex;align-items:center;margin-bottom:1rem;cursor:pointer;padding:.5rem;border-radius:8px;transition:background-color .2s ease}.goal_option_wrapper:hover{background-color:#f7f7f7}.goal_custom_checkbox{width:24px;height:24px;border-radius:50%;margin-right:1rem;transition:background-color .2s;flex-shrink:0;border:1px solid #e0e0e0}.goal_square_checkbox{width:20px;height:20px;border:2px solid #ccc;border-radius:4px;margin-right:1rem;transition:all .2s;flex-shrink:0;position:relative;background-color:#fff}.goal_square_checkbox.checked{background-color:#6e85d3;border-color:#6e85d3}.goal_square_checkbox.checked:after{content:"";position:absolute;left:6px;top:2px;width:5px;height:10px;border:solid white;border-width:0 3px 3px 0;transform:rotate(45deg)}.goal_option_label{font-size:1rem;color:#333;cursor:pointer}.goal_others_input{width:100%;margin-left:0;padding:10px;border:1px solid #ddd;border-radius:4px;font-size:1rem;margin-bottom:1rem}.summary_container{text-align:left}.summary_section{margin-bottom:2rem}.summary_section h3{font-size:1rem;color:#555;border-bottom:1px solid #eee;padding-bottom:.5rem;margin-bottom:1rem}.summary_details_header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.summary_details_header h3{border:none;margin:0}.summary_details_header .edit_button{background:none;border:none;font-weight:700;color:#007bff;cursor:pointer}.summary_item{font-size:1rem;color:#333;margin-bottom:.5rem}.summary_list{padding:15px;margin-bottom:2rem}.summary_details_section,.summary_list{border:1px solid #ddd;border-radius:8px;background-color:#f9f9f9}.summary_details_section{padding:20px;margin-top:1rem}.config_item{margin-bottom:1rem;display:flex;flex-direction:column;gap:.5rem}.config_item:last-child{margin-bottom:0}.config_item label{font-weight:500;margin-bottom:.25rem}.config_item input,.config_item select{padding:.5rem;border:1px solid #ccc;border-radius:4px;font-size:1rem}.config_item input:focus,.config_item select:focus{outline:none;border-color:#4ea1ff;box-shadow:0 0 0 2px rgba(78,161,255,.2)}.error_message{color:#e74c3c;font-size:.875rem;color:#d9534f;font-size:.875em;margin-top:5px;text-align:left;display:block}.spinner{width:10px;height:10px;border:2px solid #a9a9a9;border-top-color:transparent;border-radius:50%;animation:spin .6s linear infinite;display:inline-block}@keyframes spin{to{transform:rotate(1turn)}}.logo_image{display:block;width:200px;height:auto;margin-left:auto;margin-right:auto;margin-bottom:20px}.tooltip{position:relative;cursor:help;color:#6e85d3;text-decoration:underline;display:inline-block;width:fit-content}.tooltip_text{visibility:hidden;width:250px;background-color:#222;color:#fff;text-align:left;border-radius:8px;padding:8px;position:absolute;z-index:51;bottom:125%;left:50%;transform:translateX(-50%);opacity:0;transition:opacity .25s;font-size:.85rem;line-height:1.2;white-space:normal}.tooltip_text:after{content:"";position:absolute;top:100%;left:50%;margin-left:-5px;border:5px solid transparent;border-top-color:#222}.tooltip:focus .tooltip_text,.tooltip:hover .tooltip_text{visibility:visible;opacity:1}.estimated_cost{margin:20px 0;padding:15px;background-color:#f8f9fa;border:1px solid #dee2e6;border-radius:8px;text-align:left;max-width:100%;box-sizing:border-box}.estimated_cost pre{margin:0;font-family:Courier New,Courier,monospace;font-size:.9rem;line-height:1.4;white-space:pre-wrap;word-wrap:break-word;overflow-wrap:break-word;max-width:100%;overflow-x:auto}.list-item{margin-bottom:.5em}.link{color:#2563eb;cursor:pointer}.link,.link:hover{text-decoration:underline}.feedback-modal{position:fixed;top:0;left:0;z-index:5;width:100vw;height:100vh;background-color:rgba(0,0,0,.5);display:flex;align-items:center;justify-content:center}.feedback-modal-content{background-color:#fff;padding:2rem;border-radius:12px;max-width:600px;width:90%;max-height:90vh;overflow-y:auto;box-shadow:0 8px 30px rgba(0,0,0,.2);position:relative}.main-button{background-color:#0078d7;color:white;padding:10px;border:none;font-weight:700;margin-right:10px;border-radius:4px}.popup_close{position:absolute;top:10px;right:16px;font-size:24px;background:none;border:none;cursor:pointer}.question-section{display:flex;flex-direction:column;align-items:flex-start;text-align:left;gap:.5rem;border-top:1px solid #ddd;padding-top:1.5rem;margin-top:1.5rem}.radio-option{display:flex;align-items:center;gap:.5rem}.question-section .other-input,.question-section .text-area-input{width:100%;resize:vertical}.error-message{color:#d32f2f;font-size:12px;margin-top:4px;margin-left:24px}