*{margin:0;padding:0;box-sizing:border-box}.layout-wrapper{display:grid;width:100%;height:100vh;overflow:hidden;transition:grid-template-columns .3s ease-in-out}.layout-wrapper,.layout-wrapper.menu-expanded{grid-template-columns:280px 1fr}.layout-wrapper.menu-collapsed{grid-template-columns:80px 1fr}.layout-content{height:100vh;overflow-y:auto;transition:all .3s ease-in-out}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{background:#f1f5f9;border-radius:4px}::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#94a3b8}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:1.6;color:#333}.body-gradient{background:linear-gradient(135deg,#667eea,#764ba2);height:100vh;padding:0}.main-container{width:auto;margin:20px;min-height:calc(100vh - 40px);background:hsla(0,0%,100%,.95);border-radius:12px;box-shadow:0 8px 32px rgba(0,0,0,.1);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.form-panel,.main-container{height:auto;overflow:visible;display:flex;flex-direction:column}.form-panel{padding:20px}.results-panel{padding:12px;height:100%;overflow:auto;background:linear-gradient(135deg,#1e3a8a,#3730a3 50%,#581c87);border-radius:12px;color:#fff;box-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -1px rgba(0,0,0,.06);flex:1 1}.form-layout{display:grid;grid-template-columns:1fr 1fr;grid-gap:20px;gap:20px;height:auto;overflow:visible;align-items:stretch}.section-title{color:#60a5fa;margin-bottom:12px;text-align:center}.input-group{display:flex;flex-direction:column}.input-label{display:block;font-size:16px;font-weight:600;color:#374151;margin-bottom:12px}.text-input{width:100%;padding:16px;border:1px solid #d1d5db;border-radius:10px;resize:none;font-size:16px;transition:all .2s ease-in-out;outline:none;font-family:inherit;line-height:1.5;background-color:#fff}.text-input:focus{border-color:#3b82f6;box-shadow:0 0 0 3px rgba(59,130,246,.1)}.text-input::placeholder{color:#9ca3af}.spinner{width:40px;height:40px;border:4px solid #e2e8f0;border-top-color:#3b82f6;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.features-title{font-size:18px;color:#374151;margin-bottom:16px;padding-bottom:8px;border-bottom:2px solid #e2e8f0}.price-amount{font-size:3rem;font-weight:800;color:#667eea}.price-period{font-size:18px;color:#6b7280}.features-title,.limitations-title{font-size:16px;font-weight:600;color:#1f2937;margin:0 0 12px}.limitations-title{margin-top:20px}.features-list,.limitations-list{list-style:disc;padding-left:20px;margin:0}.feature-item,.limitation-item{font-size:14px;color:#4b5563;text-align:left}.limitation-item{color:#6b7280}.features-title{font-size:1.1rem;font-weight:600;color:#2d3748;margin-bottom:1rem}.features-list{list-style:none;padding:0;margin:0 0 1.5rem}.feature-item{display:flex;align-items:center;gap:.75rem;padding:.5rem;color:#4a5568}.feature-item svg{color:#10b981;flex-shrink:0}.limitations-title{font-size:1rem;font-weight:600;color:#e53e3e;margin-bottom:1rem}.limitations-list{list-style:none;padding:0;margin:0}.limitation-item{padding:.5rem 0;color:#718096;font-size:.9rem}.limitation-item:before{content:"※ ";color:#e53e3e;font-weight:600}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.section-title{font-size:16px;font-weight:600;color:#4b5563;margin:0}.form-group{display:flex;flex-direction:column;gap:6px}.form-label{font-size:14px;font-weight:500;color:#374151}.form-input{padding:12px 16px;border:1px solid #d1d5db;border-radius:8px;font-size:14px;transition:all .2s ease;background:#fff}.form-input:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px rgba(102,126,234,.1)}.password-field{position:relative}.password-toggle{position:absolute;right:12px;top:50%;transform:translateY(-50%);background:none;border:none;color:#6b7280;cursor:pointer;padding:4px;transition:color .2s ease}.password-toggle:hover{color:#667eea}.form-hint{font-size:12px;color:#6b7280;margin:0}.form-options{justify-content:space-between;margin:8px 0}.checkbox-label,.form-options{display:flex;align-items:center}.checkbox-label{gap:8px;cursor:pointer;font-size:14px;color:#374151}.checkbox{width:16px;height:16px;accent-color:#667eea}.checkbox-text{-webkit-user-select:none;-moz-user-select:none;user-select:none}.auth-button{padding:12px 24px;background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:8px;color:#fff;font-size:16px;font-weight:600;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center;gap:8px;margin-top:8px}.auth-button:hover:not(:disabled){background:linear-gradient(135deg,#764ba2,#667eea);transform:translateY(-1px);box-shadow:0 8px 25px rgba(102,126,234,.3)}.auth-button:disabled{opacity:.6;cursor:not-allowed;transform:none}.auth-footer{margin-top:24px;text-align:center}.auth-switch{font-size:14px;color:#6b7280;margin:0}.auth-switch-button{background:none;border:none;color:#667eea;font-weight:500;cursor:pointer;margin-left:4px;transition:color .2s ease}.auth-switch-button:hover{color:#764ba2;text-decoration:underline}.loading-page{position:absolute;top:0;left:0;width:100%;height:100vh;background:linear-gradient(135deg,#667eea,#764ba2);display:flex;align-items:center;justify-content:center;z-index:9999}.loading-page-container{position:relative;min-height:100vh}.loading-icon-center{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;animation:pulse 2s ease-in-out infinite;filter:drop-shadow(0 0 12px rgba(255,255,255,.4))}.loading-icon-center p{color:hsla(0,0%,100%,.9);font-size:16px;font-weight:500;margin:0;text-align:center;animation:fadeInOut 2s ease-in-out infinite}.loading-container{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px}.loading-icon{margin-bottom:20px;animation:pulse 2s ease-in-out infinite;filter:drop-shadow(0 0 8px rgba(102,126,234,.3))}.loading-text{color:hsla(0,0%,100%,.8);font-size:16px;margin:0;opacity:.8;animation:fadeInOut 2s ease-in-out infinite}@keyframes pulse{0%{transform:scale(1);opacity:1}50%{transform:scale(1.1);opacity:.7}to{transform:scale(1);opacity:1}}@keyframes fadeInOut{0%{opacity:.8}50%{opacity:.4}to{opacity:.8}}.alert{padding:12px 16px;border-radius:8px;margin-bottom:20px;display:flex;align-items:center;gap:8px;font-size:14px;line-height:1.4}.alert-error{background:rgba(239,68,68,.1);border:1px solid rgba(239,68,68,.2);color:#dc2626}.alert-success{background:rgba(34,197,94,.1);border:1px solid rgba(34,197,94,.2);color:#16a34a}.alert-warning{background:rgba(245,158,11,.1);border:1px solid rgba(245,158,11,.2);color:#d97706}@media (max-width:640px){.auth-page{padding:16px}.auth-card{padding:24px}.auth-title{font-size:20px}.form-group{gap:4px}.form-options{flex-direction:column;align-items:flex-start;gap:12px}}.create-estimate-button,.retry-button{padding:12px 24px;background:linear-gradient(135deg,#3b82f6,#1d4ed8);color:#fff;border:none;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease}.create-estimate-button:hover,.retry-button:hover{background:linear-gradient(135deg,#1d4ed8,#1e40af);transform:translateY(-1px)}.back-nav-button{display:flex;align-items:center;gap:8px;padding:8px 16px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:6px;color:#2d3748;font-size:14px;cursor:pointer;transition:all .2s ease;flex-shrink:0}.back-nav-button:hover{background:#edf2f7;border-color:#cbd5e0}.back-nav-button-compact{display:flex;align-items:center;justify-content:center;width:36px;height:36px;padding:8px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:6px;color:#2d3748;cursor:pointer;transition:all .2s ease;flex-shrink:0}.back-nav-button-compact:hover{background:#edf2f7;border-color:#cbd5e0}.estimate-info{flex:1 1}.estimate-detail-title{font-size:28px;font-weight:700;color:#2d3748;margin:0 0 8px}.estimate-meta{display:flex;gap:24px;color:#4a5568;font-size:14px}.estimate-detail-content{overflow:hidden}.error-page{display:flex;align-items:center;justify-content:center;min-height:400px;padding:40px}.error-content{text-align:center;color:#2d3748}.error-content h2{font-size:24px;font-weight:600;margin:16px 0 8px;color:#2d3748}.error-content p{font-size:16px;color:#4a5568;margin:0 0 24px}.error-actions{display:flex;gap:12px;justify-content:center}.back-button{padding:8px 16px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:6px;color:#2d3748;font-size:14px;cursor:pointer;transition:all .2s ease}.back-button:hover{background:#edf2f7;border-color:#cbd5e0}@media (max-width:768px){.pagination{flex-direction:column;gap:12px}.pagination-button{width:100%;justify-content:center}.back-nav-button{align-self:flex-start}.estimate-meta{flex-direction:column;gap:8px}.estimate-detail-title,.history-title{font-size:24px}.table-header,.table-row{grid-template-columns:50px 1fr 240px}.header-cell:nth-child(4),.header-cell:nth-child(5),.table-cell:nth-child(4),.table-cell:nth-child(5){display:none}.estimates-table{margin:0 -20px;border-radius:0;border-left:none;border-right:none}.action-buttons{flex-direction:column;gap:4px}.delete-button,.view-detail-button{padding:4px 8px;font-size:11px;min-width:60px;justify-content:center}}.toast-container{position:fixed;top:20px;right:20px;z-index:9999;flex-direction:column;pointer-events:none}.toast,.toast-container{display:flex;gap:12px;max-width:400px}.toast{align-items:flex-start;padding:16px;border-radius:8px;background:#fff;box-shadow:0 10px 25px rgba(0,0,0,.1),0 4px 10px rgba(0,0,0,.05);border-left:4px solid;pointer-events:all;transform:translateX(100%);animation:slideIn .3s ease-out forwards;transition:all .3s ease;min-width:320px}.toast:hover{transform:translateX(0) scale(1.02);box-shadow:0 15px 35px rgba(0,0,0,.15),0 6px 15px rgba(0,0,0,.08)}.toast-success{border-left-color:#10b981;background:linear-gradient(135deg,#ecfdf5,#f0fdf4)}.toast-error{border-left-color:#ef4444;background:linear-gradient(135deg,#fef2f2,#fef2f2)}.toast-warning{border-left-color:#f59e0b;background:linear-gradient(135deg,#fffbeb,#fef3c7)}.toast-info{border-left-color:#3b82f6;background:linear-gradient(135deg,#eff6ff,#dbeafe)}.toast-icon{flex-shrink:0;width:20px;height:20px;margin-top:2px}.toast-success .toast-icon{color:#059669}.toast-error .toast-icon{color:#dc2626}.toast-warning .toast-icon{color:#d97706}.toast-info .toast-icon{color:#2563eb}.toast-content{flex:1 1;min-width:0}.toast-title{font-weight:600;font-size:14px;margin-bottom:4px;color:#1f2937;line-height:1.4}.toast-message{font-size:14px;color:#4b5563;line-height:1.5;word-wrap:break-word}.toast-close{flex-shrink:0;width:20px;height:20px;border:none;background:none;color:#6b7280;cursor:pointer;border-radius:4px;transition:all .2s ease;display:flex;align-items:center;justify-content:center;margin-top:2px}.toast-close:hover{color:#374151;background:rgba(0,0,0,.05)}@keyframes slideIn{0%{transform:translateX(100%);opacity:0}to{transform:translateX(0);opacity:1}}@keyframes slideOut{0%{transform:translateX(0);opacity:1}to{transform:translateX(100%);opacity:0}}.toast.removing{animation:slideOut .3s ease-in forwards}@media (max-width:640px){.toast-container{top:10px;right:10px;left:10px;max-width:none}.toast{min-width:auto;max-width:none;margin:0}}