.line-login-button{display:inline-flex;align-items:center;justify-content:center;gap:12px;background:#06c755;color:#fff;border:none;border-radius:8px;font-weight:600;cursor:pointer;transition:all .3s ease;font-family:inherit;position:relative;overflow:hidden}.line-login-button:before{content:"";position:absolute;top:0;left:0;width:100%;height:100%;background:#ffffff1a;transform:translate(-100%);transition:transform .3s ease}.line-login-button:hover:before{transform:translate(0)}.line-login-button:hover{background:#05b04c;transform:translateY(-2px);box-shadow:0 4px 12px #06c75566}.line-login-button:active{transform:translateY(0);box-shadow:0 2px 6px #06c7554d}.line-login-button.small{padding:8px 16px;font-size:14px;gap:8px}.line-login-button.small .line-logo{width:20px;height:20px}.line-login-button.medium{padding:12px 24px;font-size:16px;gap:12px}.line-login-button.medium .line-logo{width:24px;height:24px}.line-login-button.large{padding:16px 32px;font-size:18px;gap:14px}.line-login-button.large .line-logo{width:28px;height:28px}.line-login-button.full-width{width:100%}.line-logo{display:flex;align-items:center;justify-content:center;flex-shrink:0}.line-logo svg{width:100%;height:100%}.line-text{position:relative;z-index:1;white-space:nowrap}.line-login-button:disabled{background:#ccc;cursor:not-allowed;transform:none}.line-login-button:disabled:hover{background:#ccc;box-shadow:none;transform:none}.line-login-button:disabled:before{display:none}@media(max-width:480px){.line-login-button.medium{padding:10px 20px;font-size:15px}.line-login-button.large{padding:14px 28px;font-size:16px}}@media(prefers-color-scheme:dark){.line-login-button{box-shadow:0 2px 8px #06c7554d}.line-login-button:hover{box-shadow:0 4px 16px #06c75580}}.login-modal-overlay{position:fixed;top:0;left:0;width:100vw;height:100vh;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:200000;padding:16px;box-sizing:border-box;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);animation:fadeIn .2s ease-out}.login-modal{background:#fff;padding:24px;border-radius:16px;width:100%;max-width:420px;box-shadow:0 8px 32px #00000040;animation:slideUp .3s ease-out;max-height:90vh;overflow-y:auto;overflow-x:hidden;position:relative;display:flex;flex-direction:column}@keyframes slideUp{0%{opacity:0;transform:translateY(20px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.login-modal h2{margin-top:0;margin-bottom:20px;text-align:center;font-size:1.5rem;color:#333;font-weight:700;flex-shrink:0}.login-tabs{display:flex;gap:8px;margin-bottom:24px;border-bottom:2px solid #f0f0f0}.login-tab{flex:1;padding:12px 16px;background:none;border:none;border-bottom:3px solid transparent;cursor:pointer;font-size:.95rem;font-weight:600;color:#999;transition:all .2s ease;position:relative;bottom:-2px}.login-tab:hover:not(:disabled){color:#667eea;background-color:#f8f9ff}.login-tab.active{color:#667eea;border-bottom-color:#667eea;background-color:#f8f9ff}.login-tab:disabled{opacity:.5;cursor:not-allowed}.help-text{font-size:.9rem;color:#666;line-height:1.6;margin-bottom:20px;padding:12px 16px;background-color:#f8f9ff;border-radius:8px;border-left:3px solid #667eea}.login-modal form label{display:block;margin-bottom:16px;font-size:.95rem;font-weight:600;color:#555}.login-modal form input{width:100%;padding:14px 16px;margin-top:6px;box-sizing:border-box;border:2px solid #e0e0e0;border-radius:12px;font-size:16px;transition:all .2s ease;background-color:#fafafa}.login-modal form input:focus{outline:none;border-color:#667eea;background-color:#fff;box-shadow:0 0 0 3px #667eea1a}.login-modal form input::placeholder{color:#aaa;font-size:15px}.login-modal-buttons{display:flex;justify-content:space-between;gap:12px;margin-top:24px}.login-modal-buttons button{flex:1;padding:14px 20px;border:none;border-radius:12px;cursor:pointer;font-size:1rem;font-weight:600;transition:all .2s ease;min-height:48px}.login-modal-buttons button:first-child{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;box-shadow:0 4px 12px #667eea4d}.login-modal-buttons button:first-child:hover:not(:disabled){box-shadow:0 6px 16px #667eea66;transform:translateY(-2px)}.login-modal-buttons button:first-child:active:not(:disabled){transform:translateY(0)}.login-modal-buttons button:last-child{background-color:#f5f5f5;color:#666;border:2px solid #e0e0e0}.login-modal-buttons button:last-child:hover:not(:disabled){background-color:#e8e8e8;border-color:#ccc}.login-modal-buttons button:disabled{opacity:.6;cursor:not-allowed}.login-modal-buttons button.loading{display:flex;align-items:center;justify-content:center;gap:8px}.forgot-password-link{text-align:right;margin-top:4px;margin-bottom:8px}.forgot-password-link .link-button{background:none;border:none;color:#667eea;text-decoration:none;cursor:pointer;font-size:.9rem;padding:8px;font-weight:500;transition:color .2s;min-height:36px}.forgot-password-link .link-button:hover{color:#764ba2;text-decoration:underline}.error-message{background-color:#fff5f5;border-left:4px solid #f56565;color:#c53030;padding:12px 16px;border-radius:8px;margin-bottom:16px;font-size:.9rem;line-height:1.5;animation:shake .3s ease}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-8px)}75%{transform:translate(8px)}}.success-message{background-color:#f0fff4;border-left:4px solid #48bb78;color:#2f855a;padding:12px 16px;border-radius:8px;margin-bottom:16px;font-size:.9rem;line-height:1.5}.register-link{text-align:center;margin-top:20px;padding-top:20px;border-top:1px solid #e0e0e0;font-size:.95rem;color:#666}.register-link .link-button{background:none;border:none;color:#667eea;text-decoration:none;cursor:pointer;font-weight:600;padding:8px;margin-left:4px;transition:color .2s;min-height:36px}.register-link .link-button:hover{color:#764ba2;text-decoration:underline}@media(max-width:768px){.login-modal-overlay{padding:0;align-items:flex-end}.login-modal{border-radius:24px 24px 0 0;max-width:100%;height:auto;max-height:90vh;padding:16px 20px;padding-bottom:max(120px,calc(120px + env(safe-area-inset-bottom)));animation:slideUpMobile .3s ease-out;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;position:relative;display:flex;flex-direction:column}@keyframes slideUpMobile{0%{transform:translateY(100%)}to{transform:translateY(0)}}.login-modal h2{font-size:1.3rem;margin-bottom:16px;margin-top:0;flex-shrink:0}.login-modal form label{font-size:.9rem;margin-bottom:14px}.login-modal form input{padding:12px 14px;font-size:16px}.login-modal form{flex:1;min-height:0;display:flex;flex-direction:column}.login-modal-buttons{gap:10px;margin-top:20px;padding-bottom:max(20px,env(safe-area-inset-bottom));flex-direction:column;flex-shrink:0}.login-modal-buttons button{width:100%;min-height:48px;font-size:1rem}.forgot-password-link{margin-top:-6px;margin-bottom:10px}.register-link{font-size:.9rem;margin-top:16px;margin-bottom:20px;flex-shrink:0}.forgot-password-link .link-button,.register-link .link-button{min-height:40px;padding:8px}.login-tabs{gap:4px;margin-bottom:20px}.login-tab{padding:14px 12px;font-size:.9rem}.help-text{font-size:.85rem;padding:10px 12px;margin-bottom:14px;line-height:1.4}}.registration-modal-overlay{position:fixed;top:0;left:0;width:100vw;height:100vh;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:200000;overflow-y:auto;padding:20px;box-sizing:border-box;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.registration-modal{background:#fff;border-radius:16px;width:90%;max-width:540px;max-height:90vh;display:flex;flex-direction:column;box-shadow:0 8px 32px #00000040;animation:slideIn .3s ease-out}@keyframes slideIn{0%{opacity:0;transform:translateY(20px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:12px 20px;border-bottom:1px solid #e0e0e0}.modal-header h2{margin:0;font-size:1.2rem;color:#333}.close-button{background:none;border:none;font-size:2rem;color:#999;cursor:pointer;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:background-color .2s,color .2s}.close-button:hover:not(:disabled){background-color:#f0f0f0;color:#333}.close-button:disabled{opacity:.5;cursor:not-allowed}.registration-modal .step-indicator{display:flex;justify-content:center;align-items:center;padding:4px 0;gap:6px}.modal-body{padding:12px 16px;overflow-y:auto;-webkit-overflow-scrolling:touch;flex:1;min-height:0}.registration-form{display:flex;flex-direction:column;gap:8px}.step-description{margin:0 0 4px;color:#666;font-size:.8rem;line-height:1.4}.registration-form label{display:flex;flex-direction:column;gap:4px;font-size:.9rem;font-weight:600;color:#333}.registration-form input[type=text],.registration-form input[type=tel],.registration-form input[type=password],.registration-form input[type=date]{width:100%;padding:10px 12px;border:1.5px solid #e0e0e0;border-radius:8px;font-size:16px;box-sizing:border-box;transition:all .2s ease;background-color:#fafafa}.registration-form input::placeholder{color:#aaa;opacity:1;font-size:15px}.registration-form input:focus{outline:none;border-color:#667eea;background-color:#fff;box-shadow:0 0 0 3px #667eea1a}.registration-form input:disabled{background-color:#f5f5f5;cursor:not-allowed;opacity:.6}.error-text{color:#e53935;font-size:.85rem;font-weight:500;margin-top:4px;display:flex;align-items:center;gap:4px}.error-text:before{content:"⚠";font-size:1rem}.help-text{color:#999;font-size:.8rem;font-weight:400;margin-top:4px}.step-dot{width:8px;height:8px;border-radius:50%;background:#e0e0e0;transition:all .2s}.step-dot--active{background:#667eea;width:24px;border-radius:4px}.reg-phone-input,.reg-code-input,.reg-input{width:100%;padding:12px 14px;border:1.5px solid #e0e0e0;border-radius:10px;font-size:16px;box-sizing:border-box;background:#fafafa;transition:border-color .2s}.reg-phone-input:focus,.reg-code-input:focus,.reg-input:focus{outline:none;border-color:#667eea;background:#fff}.reg-code-input{text-align:center;font-size:20px;letter-spacing:8px;font-weight:600}.reg-agree-btn{width:100%;padding:14px;border:2px solid #667eea;border-radius:12px;background:#fff;color:#667eea;font-size:.9rem;font-weight:600;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:all .15s}.reg-agree-btn:active{background:#667eea;color:#fff}.reg-action-row{display:flex;gap:8px}.reg-back-btn{flex:1;padding:12px;border:none;border-radius:10px;background:#f0f0f0;color:#666;font-size:.9rem;font-weight:600;cursor:pointer;-webkit-tap-highlight-color:transparent}.reg-back-btn:active:not(:disabled){background:#e0e0e0}.reg-submit-btn{flex:2;padding:12px;border:none;border-radius:10px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;font-size:.95rem;font-weight:600;cursor:pointer;-webkit-tap-highlight-color:transparent;display:flex;align-items:center;justify-content:center;gap:6px}.reg-submit-btn:disabled{opacity:.5;cursor:not-allowed}.reg-submit-btn:active:not(:disabled){transform:scale(.98)}.reg-terms-links{text-align:center;font-size:.75rem;color:#999}.reg-terms-links a{color:#667eea;text-decoration:none}.reg-agreed-badge{display:inline-block;margin-left:6px;padding:1px 6px;background:#667eea;color:#fff;border-radius:8px;font-size:.65rem;font-weight:600}.reg-cancel-link{width:100%;padding:8px;border:none;background:none;color:#999;font-size:.8rem;cursor:pointer;text-align:center}.reg-detail-toggle{width:100%;padding:8px;border:none;background:none;color:#667eea;font-size:.8rem;font-weight:500;cursor:pointer;text-align:center}.reg-inline-row{display:flex;gap:8px}.reg-inline-row .reg-input{flex:1;min-width:0}.reg-sex-buttons{display:flex;gap:8px}.reg-sex-btn{flex:1;padding:10px;border:1.5px solid #e0e0e0;border-radius:10px;background:#fafafa;color:#666;font-size:.9rem;font-weight:600;cursor:pointer;transition:all .15s;-webkit-tap-highlight-color:transparent}.reg-sex-btn--active{border-color:#667eea;background:#667eea;color:#fff}.reg-sex-btn:active:not(:disabled){transform:scale(.97)}.agree-toggles{display:flex;flex-direction:column;gap:6px}.agree-toggle-item{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;background:#f8f9fa;border-radius:8px;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:background .15s}.agree-toggle-item:active{background:#eef0f2}.agree-link{color:#667eea;font-size:.85rem;font-weight:600;text-decoration:none}.agree-link:active{text-decoration:underline}.agree-switch{font-size:.75rem;font-weight:600;padding:4px 10px;border-radius:12px;background:#e0e0e0;color:#999;transition:all .2s;flex-shrink:0}.agree-switch--on{background:#667eea;color:#fff}.error-alert{background-color:#ffebee;color:#c62828;padding:12px 16px;border-radius:6px;font-size:.9rem;border-left:4px solid #e53935}.info-alert{background-color:#e3f2fd;color:#1565c0;padding:12px 16px;border-radius:6px;font-size:.9rem;border-left:4px solid #1e88e5;line-height:1.6}.name-row{display:flex;gap:10px}.half-width{flex:1}.radio-group{display:flex;gap:24px;padding:8px 0}.radio-label{display:flex;align-items:center;gap:8px;font-weight:400;cursor:pointer}.radio-label input[type=radio]{width:18px;height:18px;cursor:pointer}.checkbox-group{display:flex;flex-direction:column;gap:4px;padding:8px 10px;background-color:#f9f9f9;border-radius:6px}.registration-modal .checkbox-label{display:flex;align-items:center;gap:6px;font-weight:400;font-size:.82rem;line-height:1.4;min-height:32px}.registration-modal .checkbox-label input[type=checkbox]{width:16px;height:16px;min-width:16px;cursor:pointer;flex-shrink:0}.registration-modal .checkbox-text{flex:1;line-height:1.4}.registration-modal .checkbox-text,.registration-modal .checkbox-text *{display:inline!important}.checkbox-label a{color:#667eea;text-decoration:none;font-weight:600}.checkbox-label a:hover{text-decoration:underline}.line-register-section{margin-bottom:0}.register-divider{display:flex;align-items:center;gap:10px;margin:8px 0;color:#999;font-size:.8rem}.register-divider:before,.register-divider:after{content:"";flex:1;height:1px;background:#e0e0e0}.form-buttons{display:flex;justify-content:space-between;gap:8px;margin-top:4px}.form-buttons button{flex:1;padding:10px 16px;border:none;border-radius:10px;font-size:.9rem;font-weight:600;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center;gap:6px;min-height:44px}.form-buttons button:not(.primary){background-color:#f0f0f0;color:#333}.form-buttons button:not(.primary):hover:not(:disabled){background-color:#e0e0e0}.form-buttons button.primary:hover:not(:disabled){background:linear-gradient(135deg,#5568d3,#6639 8b,#6639);box-shadow:0 4px 12px #667eea66}@media(max-width:600px){.registration-modal{width:95%;max-height:95vh}.modal-header{padding:16px 20px}.modal-header h2{font-size:1.25rem}.modal-body{padding:20px}.registration-modal .step-indicator{padding:16px;gap:0}.registration-modal .step{min-width:70px;gap:8px}.registration-modal .step-number{width:42px;height:42px;min-width:42px;min-height:42px;font-size:1.15rem;line-height:1;border-width:2px}.registration-modal .step-label{font-size:.8rem}.registration-modal .step-divider{width:40px;margin:21px 10px 0}.name-row{flex-direction:column;gap:16px}.form-buttons{flex-direction:column}}.duplicate-dialog{text-align:center;padding:30px 20px}.duplicate-dialog .dialog-icon{font-size:3rem;margin-bottom:16px}.duplicate-dialog h3{font-size:1.2rem;font-weight:600;color:#333;margin-bottom:16px}.duplicate-dialog p{font-size:.95rem;color:#666;line-height:1.6;margin-bottom:12px}.duplicate-dialog .info-text{background-color:#fff9e6;border-left:4px solid #ffc107;padding:12px;border-radius:4px;font-size:.9rem;color:#856404;text-align:left;margin-top:20px}.duplicate-dialog .dialog-buttons{display:flex;gap:12px;justify-content:center;margin-top:24px}.duplicate-dialog .dialog-buttons button{padding:10px 24px;border:none;border-radius:6px;font-size:.95rem;font-weight:600;cursor:pointer;transition:all .2s}.duplicate-dialog .dialog-buttons button.primary{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.duplicate-dialog .dialog-buttons button.primary:hover{transform:translateY(-1px);box-shadow:0 4px 12px #667eea66}.duplicate-dialog .dialog-buttons button.secondary{background-color:#e0e0e0;color:#333}.duplicate-dialog .dialog-buttons button.secondary:hover{background-color:#d0d0d0}.link-button-inline{background:none;border:none;color:#667eea;text-decoration:none;font-weight:600;cursor:pointer;padding:0;font-size:inherit;display:inline}.link-button-inline:hover{text-decoration:underline}.terms-modal-overlay{position:fixed;top:0;left:0;width:100vw;height:100vh;background:#0009;display:flex;align-items:center;justify-content:center;z-index:200001;padding:20px}.terms-modal-content{background:#fff;border-radius:12px;width:90%;max-width:800px;height:80vh;display:flex;flex-direction:column;box-shadow:0 8px 32px #0003}.terms-modal-header{display:flex;justify-content:space-between;align-items:center;padding:16px 24px;border-bottom:1px solid #e0e0e0}.terms-modal-header h3{margin:0;font-size:1.2rem;color:#333}.terms-modal-body{flex:1;overflow:hidden}@media(max-width:768px){.registration-modal-overlay{padding:0;align-items:flex-end}.registration-modal{width:100%;max-width:100%;max-height:92vh;border-radius:24px 24px 0 0;display:flex;flex-direction:column;animation:slideUpMobile .3s ease-out}@keyframes slideUpMobile{0%{transform:translateY(100%)}to{transform:translateY(0)}}.modal-header{padding:10px 16px;position:sticky;top:0;background:#fff;z-index:10;border-radius:24px 24px 0 0}.modal-header h2{font-size:1.1rem}.modal-body{padding:10px 16px;padding-bottom:calc(16px + env(safe-area-inset-bottom,0px));overflow-y:auto;-webkit-overflow-scrolling:touch;flex:1;min-height:0}.registration-modal .step-indicator{padding:6px 16px}.registration-form{gap:6px}.registration-form input[type=text],.registration-form input[type=tel],.registration-form input[type=password],.registration-form input[type=date]{padding:10px 12px;font-size:16px}.form-buttons{gap:8px;margin-top:8px;flex-direction:column-reverse}.form-buttons button{width:100%;min-height:44px;font-size:.9rem}.radio-label input[type=radio],.checkbox-label input[type=checkbox]{width:20px;height:20px;min-width:20px;accent-color:#667eea}.radio-label,.checkbox-label{font-size:.82rem;min-height:36px;align-items:center;padding:2px 0;gap:8px}.checkbox-group{padding:8px 10px;gap:2px}.registration-form input[type=tel]{font-size:16px;padding:10px 12px;letter-spacing:1px;font-variant-numeric:tabular-nums}.name-row{flex-direction:column;gap:12px}.half-width{width:100%}.terms-modal-content{width:95%;height:90vh;border-radius:16px}.error-text{font-size:.9rem}.help-text.password-rules{font-size:.8rem;padding:8px 10px}}.password-reset-modal-overlay{position:fixed;top:0;left:0;width:100vw;height:100vh;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:200001;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.password-reset-modal{background:#fff;border-radius:12px;box-shadow:0 8px 32px #0003;width:90%;max-width:500px;max-height:90vh;overflow-y:auto;animation:modalSlideIn .3s ease-out}@keyframes modalSlideIn{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:24px 24px 16px;border-bottom:1px solid #e0e0e0}.modal-header h2{margin:0;font-size:1.3rem;font-weight:600;color:#333}.close-button{background:none;border:none;font-size:1.8rem;color:#999;cursor:pointer;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:all .2s}.close-button:hover{background-color:#f5f5f5;color:#333}.close-button:disabled{cursor:not-allowed;opacity:.5}.step-indicator{display:flex;align-items:center;justify-content:center;padding:24px 24px 0;gap:12px}.password-reset-modal .step{display:flex;flex-direction:column;align-items:center;gap:8px;opacity:.4;transition:opacity .3s}.password-reset-modal .step.active{opacity:1}.password-reset-modal .step-number{width:48px;height:48px;min-width:48px;min-height:48px;border-radius:50%;background-color:#e0e0e0;color:#666;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:1.2rem;line-height:1;transition:all .3s;flex-shrink:0}.password-reset-modal .step.active .step-number{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;box-shadow:0 4px 12px #667eea4d}.password-reset-modal .step-label{font-size:.85rem;font-weight:500;color:#666}.password-reset-modal .step.active .step-label{color:#333;font-weight:600}.password-reset-modal .step-divider{width:60px;height:2px;background-color:#e0e0e0;margin-top:-30px}.modal-body{padding:24px}.step-description{font-size:.9rem;color:#666;line-height:1.6;margin-bottom:24px;text-align:center}.password-reset-form{display:flex;flex-direction:column;gap:20px}.password-reset-form label{display:flex;flex-direction:column;gap:6px;font-size:.9rem;font-weight:600;color:#333}.label-text{display:inline-flex;align-items:center;flex-wrap:nowrap;white-space:nowrap}.required{color:#e53935;font-size:.75rem;font-weight:600;margin-left:4px;white-space:nowrap;display:inline}.optional{color:#999;font-size:.75rem;font-weight:500;margin-left:4px;white-space:nowrap;display:inline}.password-reset-form input[type=text],.password-reset-form input[type=tel],.password-reset-form input[type=password],.password-reset-form input[type=date]{width:100%;padding:10px 12px;border:1px solid #ddd;border-radius:6px;font-size:.95rem;box-sizing:border-box;transition:border-color .2s}.password-reset-form input::placeholder{color:#999;opacity:1}.password-reset-form input:focus{outline:none;border-color:#667eea}.password-reset-form input:disabled{background-color:#f5f5f5;cursor:not-allowed}.error-text{color:#e53935;font-size:.8rem;font-weight:400;margin-top:-4px}.help-text{color:#999;font-size:.8rem;font-weight:400;margin-top:-4px}.help-text.password-rules{line-height:1.4;color:#666;background-color:#f9f9f9;padding:6px 8px;border-radius:4px;border-left:3px solid #667eea;margin-top:2px;font-size:.75rem;word-break:break-word}.error-alert{background-color:#ffebee;border-left:4px solid #e53935;padding:12px;border-radius:4px;font-size:.9rem;color:#c62828}.form-buttons{display:flex;gap:12px;margin-top:8px}.form-buttons button{flex:1;padding:12px 24px;border:none;border-radius:8px;font-size:.95rem;font-weight:600;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center;gap:8px}.form-buttons button.primary{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.form-buttons button.primary:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px #667eea66}.form-buttons button:not(.primary){background-color:#e0e0e0;color:#333}.form-buttons button:not(.primary):hover:not(:disabled){background-color:#d0d0d0}.form-buttons button:disabled{opacity:.6;cursor:not-allowed}.spinner{display:inline-block;width:16px;height:16px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite}.completion-message{text-align:center;padding:30px 20px}.completion-icon{font-size:3rem;margin-bottom:16px}.completion-message h3{font-size:1.2rem;font-weight:600;color:#333;margin-bottom:12px}.completion-message p{font-size:.95rem;color:#666;line-height:1.6;margin-bottom:24px}@media(max-width:768px){.password-reset-modal{width:95%}.modal-body{padding:20px}.step-indicator{padding:20px 20px 0}.step-divider{width:40px}.form-buttons{flex-direction:column}}:root{--primary-color: #007acc;--primary-hover: #005fa3;--secondary-bg: #ccc;--font-sans: "Segoe UI", sans-serif;--border-radius: 8px;--border-radius-sm: 6px;--btn-font-size: .95rem;--avatar-size: 28px;--z-high: 9999}.user-status-panel,.user-dropdown,.user-button{display:flex;align-items:center;gap:10px;font-family:var(--font-sans)}.user-dropdown{position:relative}.login-button,.user-button,.login-dialog .button-row button{border:none;cursor:pointer;transition:background-color .2s ease;font-size:var(--btn-font-size)}.auth-buttons{display:flex;gap:10px;align-items:center}.login-button{background-color:var(--primary-color);color:#fff;padding:8px 14px;border-radius:var(--border-radius);min-width:80px;white-space:nowrap;text-align:center;border:none;font-weight:500;text-shadow:none}.login-button:hover{background-color:var(--primary-hover)}.register-button{background-color:#28a745;color:#fff;padding:8px 14px;border-radius:var(--border-radius);min-width:80px;white-space:nowrap;text-align:center;border:none;cursor:pointer;transition:background-color .2s ease;font-size:var(--btn-font-size);font-weight:500;text-shadow:none}.register-button:hover{background-color:#218838}.user-button{gap:8px;background:none;padding:6px 10px;border-radius:var(--border-radius)}.user-avatar{width:var(--avatar-size);height:var(--avatar-size);border-radius:50%;background-color:var(--primary-color);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:var(--btn-font-size)}.user-name{color:#000;font-size:var(--btn-font-size);white-space:nowrap;font-weight:500;text-shadow:none}.user-menu{display:none}.user-status-panel{position:static;top:auto;right:auto;z-index:var(--z-high)}.user-button-mobile{background:none;border:none;cursor:pointer;padding:4px;display:flex;align-items:center;justify-content:center}.user-avatar-guest{background-color:#6c757d;font-size:1.1rem}@media(max-width:768px){.user-status-panel{max-width:fit-content;justify-content:flex-start}.user-button{padding:6px 10px;gap:8px}.user-name{display:inline;font-size:1rem;font-weight:600;max-width:120px;overflow:hidden;text-overflow:ellipsis}.user-avatar{width:36px;height:36px;font-size:1.1rem}.user-avatar-guest{width:36px;height:36px;font-size:1.3rem}.user-button-mobile{padding:6px}}.info-panel{display:flex;flex-direction:column;box-sizing:border-box;background:#fffffff2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.3);border-radius:20px;box-shadow:0 8px 32px #0000001a;height:100%}.pc-tabs{display:flex;background:linear-gradient(135deg,#fffffff2,#f8fafcf2);border-bottom:1px solid rgba(226,232,240,.8);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:20px 20px 0 0;padding:8px;gap:4px}.pc-tabs .tab-button{flex:1;padding:12px 16px;background:transparent;border:none;cursor:pointer;font-weight:500;font-size:14px;color:#64748b;border-radius:12px;transition:all .3s ease;display:flex;align-items:center;justify-content:center;gap:8px;position:relative;overflow:hidden;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.pc-tabs .tab-button:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(135deg,#667eea,#764ba2);opacity:0;transition:opacity .3s ease;border-radius:12px}.pc-tabs .tab-button:hover{color:#475569;transform:translateY(-1px);box-shadow:0 4px 12px #0000001a}.pc-tabs .tab-button:hover:before{opacity:.1}.pc-tabs .tab-button.active{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;box-shadow:0 6px 20px #667eea4d;transform:translateY(-2px)}.pc-tabs .tab-button.active:before{opacity:0}.hidden{display:none!important}.tab-content{flex:1 1 auto;min-height:0;padding:16px 16px 60px;overflow-y:auto;-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:rgba(156,163,175,.5) transparent;box-sizing:border-box}.tab-content::-webkit-scrollbar{width:6px}.tab-content::-webkit-scrollbar-track{background:transparent}.tab-content::-webkit-scrollbar-thumb{background:#9ca3af80;border-radius:3px}.tab-content::-webkit-scrollbar-thumb:hover{background:#9ca3afb3}.tab-content .health-record-tab.iframe-view{position:absolute;top:0;left:0;right:0;bottom:0;width:100%;height:100%;display:flex;flex-direction:column;margin:0;padding:0}.tab-content:has(.health-record-tab.iframe-view){padding:0!important;overflow:hidden!important;position:relative;width:100%;height:100%}@media screen and (min-width:769px){.info-panel{height:100%;overflow:hidden}.tab-content{flex:1 1 auto;min-height:0;overflow-y:auto;padding:16px 16px 40px}}@media screen and (max-width:768px){.info-panel{background:#ffffffb3;margin-top:0;padding-bottom:0;position:relative;z-index:900}.pc-tabs{padding:6px;gap:3px;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;scrollbar-width:none;min-height:52px;flex-shrink:0}.pc-tabs::-webkit-scrollbar{display:none}.pc-tabs .tab-button{flex:0 0 auto;min-width:80px;padding:14px 12px;font-size:13px;white-space:nowrap;line-height:1.2;touch-action:manipulation;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none}.pc-tabs .tab-button:active{transform:scale(.96);background:linear-gradient(135deg,#667eea1a,#764ba21a)}.pc-tabs .tab-button.active:active{transform:scale(.98)}.tab-content{padding:20px 12px 120px}}.home-tab-container{padding:0 0 40px;box-sizing:border-box}.step-value{display:inline-flex;align-items:baseline;justify-content:flex-end;gap:4px;font-size:2.5rem;font-weight:700;color:#667eea;width:100%}.step-value .step-unit{font-size:1.2rem;font-weight:500;color:#666}.reward-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.reward-header h4{margin:0;font-size:1.1rem;font-weight:600}.reward-header .refresh-btn{padding:6px 10px;background:#667eea1a;border:1px solid rgba(102,126,234,.2);border-radius:8px;cursor:pointer;transition:all .2s ease;font-size:1rem}.reward-header .refresh-btn:hover:not(:disabled){background:#667eea33;transform:rotate(180deg)}.reward-header .refresh-btn:disabled{opacity:.5;cursor:not-allowed}.already-received{padding:16px;text-align:center;color:#4caf50;font-weight:500;background:#4caf501a;border-radius:8px;border:1px solid rgba(76,175,80,.2)}.reward-list{display:flex;flex-direction:column;gap:12px;max-height:400px;overflow-y:auto;padding-right:8px}.reward-list::-webkit-scrollbar{width:6px}.reward-list::-webkit-scrollbar-track{background:#667eea0d;border-radius:3px}.reward-list::-webkit-scrollbar-thumb{background:#667eea4d;border-radius:3px}.reward-list::-webkit-scrollbar-thumb:hover{background:#667eea80}.reward-list .reward-item{display:flex;align-items:center;gap:12px;padding:12px;background:#667eea0d;border-radius:8px;border:1px solid rgba(102,126,234,.1);transition:all .2s ease}.reward-list .reward-item:hover{background:#667eea1a;transform:translate(4px)}.manga-reader-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000;z-index:10000;display:flex;justify-content:center;align-items:center}.manga-reader-container{width:100%;height:100%;max-width:800px;background:#1a1a1a;position:relative;overflow-y:auto;overflow-x:hidden}.manga-reader-header{position:sticky;top:0;background:#000000e6;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding:12px 16px;display:flex;justify-content:space-between;align-items:center;z-index:100;border-bottom:1px solid rgba(255,255,255,.1)}.manga-close-btn{background:#ffffff1a;color:#fff;border:none;width:40px;height:40px;border-radius:50%;cursor:pointer;font-size:20px;transition:all .2s;display:flex;align-items:center;justify-content:center;padding:0}.manga-close-btn:hover{background:#fff3;transform:scale(1.1)}.manga-close-btn:active{transform:scale(.95)}.manga-progress{color:#ffffffb3;font-size:14px}.manga-title-page{min-height:calc(100vh - 60px);display:flex;align-items:center;justify-content:center;padding:40px 20px}.manga-title-content{text-align:center;max-width:600px}.manga-title-thumbnail{width:100%;max-width:400px;height:auto;border-radius:16px;margin-bottom:24px;box-shadow:0 8px 32px #00000080}.manga-episode-title{color:#fff;font-size:28px;margin:0 0 16px}.manga-episode-description{color:#ffffffb3;font-size:16px;line-height:1.6;margin:0 0 32px}.manga-start-btn{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;padding:16px 48px;border-radius:12px;font-size:18px;font-weight:700;cursor:pointer;transition:all .3s;box-shadow:0 4px 20px #667eea66}.manga-start-btn:hover{transform:translateY(-2px);box-shadow:0 6px 30px #667eea99}.manga-content-area{min-height:calc(100vh - 120px);display:flex;flex-direction:column;align-items:center;padding:20px;cursor:pointer;-webkit-user-select:none;user-select:none}.manga-page{width:100%;max-width:800px;position:relative}.manga-page-image{width:100%;height:auto;display:block;border-radius:8px;box-shadow:0 4px 20px #00000080}.manga-page-text{margin-top:16px;background:#ffffff1a;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding:16px;border-radius:12px;color:#fff;text-align:center;font-size:16px;line-height:1.6}.manga-navigation-hint{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);display:flex;flex-direction:column;gap:20px;pointer-events:none;opacity:.3;transition:opacity .3s}.manga-content-area:hover .manga-navigation-hint{opacity:.6}.hint-prev,.hint-next{color:#fff;font-size:24px;font-weight:700;text-shadow:0 2px 10px rgba(0,0,0,.8)}.manga-episode-end{background:#000c;padding:40px 20px;text-align:center}.manga-end-content{max-width:500px;margin:0 auto}.manga-end-content h3{color:#fff;font-size:32px;margin:0 0 16px}.manga-end-content p{color:#ffffffb3;font-size:16px;margin:0 0 32px}.manga-next-episode-btn,.manga-back-btn{display:block;width:100%;max-width:300px;margin:0 auto 16px;padding:16px;border:none;border-radius:12px;font-size:16px;font-weight:700;cursor:pointer;transition:all .2s}.manga-next-episode-btn{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;box-shadow:0 4px 20px #667eea66}.manga-next-episode-btn:hover{transform:translateY(-2px);box-shadow:0 6px 30px #667eea99}.manga-back-btn{background:#ffffff1a;color:#fff}.manga-back-btn:hover{background:#fff3}.manga-reader-footer{position:sticky;bottom:0;background:#000000e6;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding:12px 16px;display:flex;justify-content:space-between;gap:16px;border-top:1px solid rgba(255,255,255,.1)}.manga-nav-btn{flex:1;padding:12px;background:#ffffff1a;color:#fff;border:none;border-radius:8px;font-size:16px;cursor:pointer;transition:all .2s}.manga-nav-btn:hover:not(:disabled){background:#fff3}.manga-nav-btn:disabled{opacity:.3;cursor:not-allowed}@media(max-width:768px){.manga-episode-title{font-size:24px}.manga-episode-description{font-size:14px}.manga-start-btn{padding:14px 32px;font-size:16px}.manga-content-area{padding:10px}.manga-page-text{font-size:14px}.hint-prev,.hint-next{font-size:18px}}.manga-list-container{width:100%;height:100%;overflow-y:auto;background:linear-gradient(135deg,#667eea,#764ba2);padding:20px;box-sizing:border-box}.manga-list-header{display:flex;align-items:center;justify-content:center;gap:20px;margin-bottom:30px;padding:20px 0;position:relative}.manga-list-header h2{font-size:32px;font-weight:700;color:#fff;margin:0;text-shadow:2px 2px 4px rgba(0,0,0,.3)}.manga-back-btn{position:absolute;left:0;background:#fff3;border:2px solid rgba(255,255,255,.5);color:#fff;width:44px;height:44px;border-radius:50%;cursor:pointer;font-size:20px;font-weight:700;transition:all .3s ease;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);display:flex;align-items:center;justify-content:center;padding:0}.manga-back-btn:hover{background:#ffffff4d;transform:scale(1.1)}.manga-back-btn:active{transform:scale(.95)}.manga-series-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:20px;max-width:1200px;margin:0 auto}.manga-series-card{background:#fff;border-radius:16px;overflow:hidden;box-shadow:0 4px 20px #00000026;cursor:pointer;transition:transform .3s ease,box-shadow .3s ease;position:relative;height:400px}.manga-series-card:hover{transform:translateY(-8px);box-shadow:0 8px 30px #00000040}.manga-cover-image{width:100%;height:100%;object-fit:cover}.manga-card-overlay{position:absolute;bottom:0;left:0;right:0;background:linear-gradient(to top,rgba(0,0,0,.9),transparent);padding:20px;color:#fff}.manga-card-overlay h3{margin:0 0 8px;font-size:18px}.manga-card-overlay p{margin:0 0 12px;font-size:14px;opacity:.9;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.manga-card-meta{display:flex;gap:15px;font-size:13px;opacity:.8}.manga-series-detail{display:flex;gap:30px;background:#ffffff1a;border-radius:16px;padding:30px;margin-bottom:40px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.manga-series-cover{width:200px;height:300px;object-fit:cover;border-radius:12px;box-shadow:0 4px 20px #0000004d}.manga-series-info{flex:1;color:#fff}.manga-series-description{font-size:16px;line-height:1.6;margin-bottom:20px;opacity:.95}.manga-series-author,.manga-series-count{font-size:14px;opacity:.8;margin:8px 0}.manga-episode-list h3{color:#fff;font-size:24px;margin-bottom:20px;text-shadow:2px 2px 4px rgba(0,0,0,.3)}.episode-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:20px}.episode-card{background:#fff;border-radius:12px;overflow:hidden;cursor:pointer;transition:transform .3s ease,box-shadow .3s ease;box-shadow:0 4px 15px #00000026}.episode-card:hover{transform:translateY(-5px);box-shadow:0 6px 25px #00000040}.episode-thumbnail{width:100%;height:180px;object-fit:cover}.episode-info{padding:15px}.episode-info h4{margin:0 0 8px;font-size:16px;color:#333}.episode-info p{margin:0 0 12px;font-size:13px;color:#666;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.episode-pages{font-size:12px;color:#999;display:inline-block;padding:4px 12px;background:#f0f0f0;border-radius:12px}.manga-list{width:100%;height:100%;overflow-y:auto;background:linear-gradient(135deg,#667eea,#764ba2);padding:20px;box-sizing:border-box}.manga-list-header{text-align:center;margin-bottom:30px;padding:20px 0}.manga-list-title{font-size:32px;font-weight:700;color:#fff;margin:0;text-shadow:2px 2px 4px rgba(0,0,0,.3)}.manga-list-subtitle{font-size:16px;color:#ffffffe6;margin:10px 0 0}.manga-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:20px;max-width:1200px;margin:0 auto}.manga-card{background:#fff;border-radius:16px;overflow:hidden;box-shadow:0 4px 20px #00000026;cursor:pointer;transition:transform .3s ease,box-shadow .3s ease;position:relative}.manga-card:hover{transform:translateY(-8px);box-shadow:0 8px 30px #00000040}.manga-card:active{transform:translateY(-4px);box-shadow:0 6px 25px #0003}.manga-thumbnail{width:100%;height:200px;object-fit:cover;background:linear-gradient(135deg,#f093fb,#f5576c);display:flex;align-items:center;justify-content:center;font-size:72px;color:#ffffffb3}.manga-info{padding:20px}.manga-title{font-size:20px;font-weight:700;color:#333;margin:0 0 10px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis;line-height:1.4}.manga-description{font-size:14px;color:#666;margin:0 0 15px;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis;line-height:1.6}.manga-meta{display:flex;justify-content:space-between;align-items:center;padding-top:15px;border-top:1px solid #eeeeee}.manga-author{font-size:13px;color:#999;display:flex;align-items:center}.manga-author:before{content:"✏️";margin-right:5px}.manga-pages{font-size:13px;color:#999;display:flex;align-items:center}.manga-pages:before{content:"📄";margin-right:5px}.manga-list-empty{text-align:center;padding:80px 20px;color:#fffc}.manga-list-empty-icon{font-size:80px;margin-bottom:20px}.manga-list-empty-text{font-size:18px;font-weight:500}@media(max-width:768px){.manga-list-container{padding:15px}.manga-list-header h2{font-size:24px}.manga-back-btn{font-size:14px;padding:8px 16px}.manga-series-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:15px}.manga-series-card{height:250px}.manga-series-detail{flex-direction:column;padding:20px;gap:20px}.manga-series-cover{width:100%;height:auto;max-width:200px;margin:0 auto}.episode-grid{grid-template-columns:1fr;gap:15px}.manga-list{padding:15px}.manga-list-title{font-size:28px}.manga-list-subtitle{font-size:14px}.manga-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:15px}.manga-thumbnail{height:150px;font-size:48px}.manga-info{padding:15px}.manga-title{font-size:16px}.manga-description{font-size:13px}.manga-meta{flex-direction:column;align-items:flex-start;gap:5px}}@media(max-width:480px){.manga-grid{grid-template-columns:1fr;gap:15px}.manga-thumbnail{height:200px}}.aq-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;z-index:1200;display:flex;align-items:flex-end;justify-content:center}.aq-modal{background:#fff;border-radius:24px 24px 0 0;width:100%;max-width:480px;min-height:60dvh;max-height:92dvh;overflow-y:auto;display:flex;flex-direction:column}.aq-top-header{display:flex;align-items:center;gap:8px;padding:10px 16px;position:sticky;top:0;background:#fff;z-index:10;border-bottom:1px solid #f0f0f0;flex-shrink:0}.aq-top-title{flex:1;font-size:.9rem;font-weight:700;color:#222;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.aq-top-progress{font-size:.78rem;font-weight:700;color:#6366f1;background:#ede9fe;border-radius:12px;padding:3px 10px;white-space:nowrap;flex-shrink:0}.aq-intro{display:flex;flex-direction:column;align-items:center;padding:32px 24px;gap:12px;text-align:center;flex:1}.aq-intro-icon{font-size:3rem;margin-bottom:4px}.aq-intro-title{font-size:1.2rem;font-weight:700;color:#222;margin:0}.aq-intro-desc{font-size:.85rem;color:#666;line-height:1.6;margin:0}.aq-intro-meta{display:flex;gap:16px;font-size:.8rem;color:#888;background:#f5f5f5;border-radius:20px;padding:6px 16px}.aq-intro-meta span:before{content:"• "}.aq-start-btn{background:linear-gradient(135deg,#6366f1,#a855f7);color:#fff;border:none;border-radius:16px;padding:14px 40px;font-size:1rem;font-weight:700;cursor:pointer;margin-top:8px;width:100%;max-width:280px}.aq-cancel-btn{background:none;border:none;color:#aaa;font-size:.85rem;cursor:pointer;padding:4px}.aq-quiz{display:flex;flex-direction:column;padding:16px;gap:16px;flex:1}.aq-progress-bar{height:6px;background:#f0f0f0;border-radius:3px;overflow:hidden}.aq-progress-fill{height:100%;background:linear-gradient(90deg,#6366f1,#a855f7);border-radius:3px;transition:width .3s ease}.aq-progress-label{display:flex;justify-content:space-between;align-items:center;font-size:.78rem;color:#aaa}.aq-exit-btn{background:none;border:none;color:#aaa;font-size:.75rem;cursor:pointer;padding:2px 6px}.aq-reaction{display:flex;align-items:flex-start;gap:10px;background:#f0f7ff;border-radius:16px;padding:14px 16px;animation:aq-fade-in .25s ease}@keyframes aq-fade-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.aq-reaction-icon{font-size:1.2rem;flex-shrink:0}.aq-reaction-text{font-size:.9rem;color:#333;line-height:1.5}.aq-question-card{background:#fafafa;border-radius:16px;padding:20px 18px;box-shadow:0 2px 8px #0000000f;animation:aq-fade-in .2s ease}.aq-question-text{font-size:1rem;font-weight:600;color:#222;line-height:1.6;margin:0}.aq-choices{display:flex;flex-direction:column;gap:8px;animation:aq-fade-in .2s ease}.aq-choice-btn{background:#fff;border:1.5px solid #e5e7eb;border-radius:14px;padding:14px 18px;font-size:.92rem;color:#333;text-align:left;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:all .15s;font-weight:500}.aq-choice-btn:active{background:#e0f0ff;border-color:#6366f1;color:#6366f1;transform:scale(.98)}.aq-scale{display:flex;flex-direction:column;gap:10px;animation:aq-fade-in .2s ease}.aq-scale-labels{display:flex;justify-content:space-between;font-size:.75rem;color:#888;padding:0 4px}.aq-scale-buttons{display:flex;gap:8px;justify-content:center}.aq-scale-btn{width:52px;height:52px;border-radius:50%;border:2px solid #e5e7eb;background:#fff;font-size:1.1rem;font-weight:700;color:#555;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:all .15s}.aq-scale-btn--active{background:#6366f1;border-color:#6366f1;color:#fff}.aq-numeric{display:flex;flex-direction:column;gap:10px;animation:aq-fade-in .2s ease}.aq-numeric-input{border:1.5px solid #e5e7eb;border-radius:14px;padding:14px 16px;font-size:1.1rem;font-weight:600;color:#333;outline:none;text-align:center}.aq-numeric-input:focus{border-color:#6366f1}.aq-text-input{border:1.5px solid #e5e7eb;border-radius:14px;padding:12px 14px;font-size:.9rem;color:#333;outline:none;resize:none;font-family:inherit;line-height:1.5}.aq-text-input:focus{border-color:#6366f1}.aq-numeric-actions{display:flex;gap:8px}.aq-skip-btn{flex:0 0 auto;background:none;border:1.5px solid #ddd;color:#aaa;border-radius:12px;padding:12px 16px;font-size:.85rem;cursor:pointer}.aq-numeric-ok{flex:1;background:#6366f1;color:#fff;border:none;border-radius:12px;padding:12px;font-size:.9rem;font-weight:700;cursor:pointer}.aq-complete{display:flex;flex-direction:column;align-items:center;padding:32px 24px 40px;gap:14px;text-align:center;flex:1}.aq-complete-emoji{font-size:3.5rem}.aq-complete-title{font-size:1.3rem;font-weight:700;color:#222;margin:0}.aq-risk-badge{border-radius:20px;padding:6px 20px;font-size:.9rem;font-weight:700}.aq-complete-advice{display:flex;align-items:flex-start;gap:10px;background:#f0f7ff;border-radius:16px;padding:16px;text-align:left;max-width:340px}.aq-advice-icon{font-size:1.2rem;flex-shrink:0}.aq-complete-advice p{margin:0;font-size:.88rem;color:#333;line-height:1.6}.aq-complete-score{font-size:.78rem;color:#aaa}.aq-done-btn{background:#6366f1;color:#fff;border:none;border-radius:16px;padding:14px 48px;font-size:1rem;font-weight:700;cursor:pointer;margin-top:4px}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;z-index:1000;display:flex;align-items:flex-end;justify-content:center}.modal-sheet{background:#fff;border-radius:24px 24px 0 0;width:100%;max-width:540px;max-height:92dvh;display:flex;flex-direction:column;overflow-y:auto;-webkit-overflow-scrolling:touch;position:relative}.modal-handle{width:40px;height:4px;background:#ddd;border-radius:2px;margin:10px auto 0;flex-shrink:0}.modal-header{display:flex;align-items:center;padding:10px 16px 8px;gap:8px;flex-shrink:0;position:sticky;top:0;background:#fff;z-index:10;border-bottom:1px solid #f0f0f0}.modal-back-btn{display:flex;align-items:center;gap:4px;background:none;border:none;font-size:.85rem;font-weight:700;color:#6366f1;cursor:pointer;padding:6px 10px;border-radius:10px;white-space:nowrap;flex-shrink:0;-webkit-tap-highlight-color:transparent;transition:background .15s}.modal-back-btn:hover,.modal-back-btn:active{background:#f0f0ff}.modal-title{flex:1;font-size:.95rem;font-weight:700;color:#222;text-align:center;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.modal-header-right{display:flex;align-items:center;gap:6px;flex-shrink:0}.modal-footer{position:sticky;bottom:0;background:linear-gradient(to top,#fff 80%,transparent);padding:12px 16px 28px;z-index:10}.modal-footer-close{width:100%;padding:13px;border:none;border-radius:14px;background:#6366f1;color:#fff;font-size:.9rem;font-weight:700;cursor:pointer;letter-spacing:.04em;-webkit-tap-highlight-color:transparent;transition:opacity .15s}.modal-footer-close:active{opacity:.8}.modal-content{flex:1;padding:10px 16px 80px;display:flex;flex-direction:column;gap:12px}.med-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;z-index:1000;display:flex;align-items:flex-end;justify-content:center}.med-modal{background:#fff;border-radius:24px 24px 0 0;width:100%;max-width:480px;max-height:88dvh;display:flex;flex-direction:column;overflow:hidden}.med-handle{width:40px;height:4px;background:#ddd;border-radius:2px;margin:10px auto 0;flex-shrink:0}.med-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px 10px;flex-shrink:0}.med-header-title{font-size:1rem;font-weight:700;color:#222}.med-close{background:none;border:none;font-size:1rem;color:#888;cursor:pointer;padding:4px 8px}.med-alert-banner{display:flex;align-items:center;gap:8px;background:#fff7ed;border-left:3px solid #f97316;margin:0 16px 4px;padding:10px 14px;border-radius:10px;font-size:.82rem;color:#92400e;flex-shrink:0}.med-tabs{display:flex;border-bottom:1px solid #f0f0f0;padding:0 16px;flex-shrink:0}.med-tab{flex:1;background:none;border:none;border-bottom:2px solid transparent;padding:10px 0;font-size:.88rem;font-weight:600;color:#aaa;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:all .15s}.med-tab--active{color:#007acc;border-bottom-color:#007acc}.med-list{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:12px 16px 32px;display:flex;flex-direction:column;gap:8px}.med-empty{text-align:center;color:#bbb;font-size:.85rem;padding:32px 0}.med-card{background:#fff;border:1.5px solid #e5e7eb;border-radius:14px;padding:12px 14px;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:border-color .15s}.med-card--warning{border-color:#fed7aa;background:#fffbf5}.med-card--ended{opacity:.55}.med-card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;margin-bottom:6px}.med-card-left{flex:1;min-width:0}.med-card-name{font-size:.92rem;font-weight:700;color:#222;line-height:1.3}.med-card-date-header{font-size:.88rem;font-weight:700;color:#222}.med-card-facility{font-size:.72rem;color:#3b82f6;margin-top:1px}.med-card-count{font-size:.72rem;color:#888;margin-right:4px}.med-drug-list{display:flex;flex-direction:column;gap:6px;padding:8px 0 4px;border-top:1px solid #f0f0f0;margin-top:8px}.med-drug-row{display:flex;flex-direction:column;gap:1px}.med-drug-name{font-size:.85rem;font-weight:600;color:#333}.med-drug-dosage{font-size:.72rem;color:#888}.med-card-generic{font-size:.72rem;color:#888;margin-top:2px}.med-card-right{display:flex;align-items:center;gap:6px;flex-shrink:0}.med-badge{font-size:.68rem;font-weight:700;border-radius:10px;padding:2px 8px}.med-badge--active{background:#dcfce7;color:#166534}.med-badge--ended{background:#f3f4f6;color:#9ca3af}.med-expand-icon{font-size:.65rem;color:#bbb}.med-dosage{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.med-dosage-timing{font-size:.78rem;color:#555;background:#f3f4f6;border-radius:8px;padding:2px 8px}.med-dosage-amount{font-size:.78rem;color:#555;font-weight:600}.med-dosage-days{font-size:.72rem;color:#888}.med-warning{display:flex;gap:6px;align-items:flex-start;background:#fff7ed;border-radius:8px;padding:6px 10px;margin-top:6px;font-size:.75rem;color:#92400e;line-height:1.4}.med-detail{border-top:1px solid #f0f0f0;margin-top:10px;padding-top:10px;display:flex;flex-direction:column;gap:5px}.med-detail-row{display:flex;gap:8px;font-size:.78rem}.med-detail-label{color:#aaa;flex:0 0 64px;flex-shrink:0}.med-add-btn{background:#007acc;color:#fff;border:none;border-radius:20px;padding:6px 14px;font-size:.82rem;font-weight:700;cursor:pointer;-webkit-tap-highlight-color:transparent}.med-qr-wrap{display:flex;flex-direction:column;gap:12px}.qr-scanner{position:relative;width:100%;border-radius:14px;overflow:hidden;background:#000;aspect-ratio:1}.qr-video{width:100%;height:100%;object-fit:cover}.qr-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center}.qr-frame{width:60%;aspect-ratio:1;border:3px solid #fff;border-radius:12px;box-shadow:0 0 0 2000px #0006}.qr-hint{position:absolute;bottom:16px;left:0;right:0;text-align:center;color:#fff;font-size:.82rem;margin:0}.qr-error{padding:24px;text-align:center;color:#ef4444;font-size:.85rem}.qr-unsupported{text-align:center;padding:16px 0;color:#555;font-size:.85rem;display:flex;flex-direction:column;gap:8px}.qr-unsupported-icon{font-size:2rem}.qr-unsupported-sub{font-size:.78rem;color:#888;line-height:1.5}.med-qr-result{background:#f0fdf4;border:1.5px solid #bbf7d0;border-radius:14px;padding:16px;text-align:center;display:flex;flex-direction:column;gap:8px}.med-qr-result-label{font-size:.85rem;color:#166534;font-weight:700;margin:0}.med-qr-result-value{font-size:.78rem;color:#555;word-break:break-all;margin:0}.med-search-wrap{display:flex;flex-direction:column;gap:10px}.med-search-type-row{display:flex;gap:8px}.med-search-type-btn{flex:1;padding:9px;border:1.5px solid #e5e7eb;border-radius:10px;background:#f9fafb;font-size:.85rem;font-weight:600;color:#666;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:all .15s}.med-search-type-btn--active{border-color:#007acc;background:#eff6ff;color:#007acc}.med-search-field-label{font-size:.76rem;font-weight:600;color:#888;margin-bottom:-4px}.med-search-row{display:flex;gap:8px}.med-search-row .med-reg-input{flex:1}.med-search-execute-btn{width:100%;padding:10px;background:#007acc;color:#fff;border:none;border-radius:10px;font-size:.9rem;font-weight:700;cursor:pointer;-webkit-tap-highlight-color:transparent;margin-top:2px}.med-search-execute-btn:disabled{opacity:.4}.med-search-btn{background:#007acc;color:#fff;border:none;border-radius:10px;padding:0 16px;font-size:.85rem;font-weight:700;cursor:pointer;flex-shrink:0}.med-search-btn:disabled{opacity:.5}.med-search-results{display:flex;flex-direction:column;gap:6px}.med-search-result-item{background:#fff;border:1.5px solid #e5e7eb;border-radius:12px;padding:10px 14px;text-align:left;cursor:pointer;display:flex;flex-direction:column;gap:2px;-webkit-tap-highlight-color:transparent;transition:border-color .15s}.med-search-result-item:hover{border-color:#007acc}.med-search-result-top{display:flex;align-items:center;justify-content:space-between;gap:8px}.med-search-result-name{font-size:.9rem;font-weight:700;color:#222;flex:1;min-width:0}.med-search-result-generic{font-size:.72rem;color:#888}.med-search-result-pharmacy{font-size:.72rem;color:#60a5fa}.med-search-result-type{font-size:.64rem;font-weight:700;border-radius:8px;padding:2px 7px;flex-shrink:0}.med-search-result-type--prescription{background:#dbeafe;color:#1d4ed8}.med-search-result-type--otc{background:#fef9c3;color:#854d0e}.med-search-empty{text-align:center;color:#888;font-size:.82rem;padding:8px 0}.med-manual-btn{background:#f9fafb;border:1.5px dashed #d1d5db;border-radius:12px;padding:14px;font-size:.85rem;color:#555;cursor:pointer;width:100%;text-align:center;-webkit-tap-highlight-color:transparent}.med-manual-btn:hover{border-color:#007acc;color:#007acc}.med-reg-form{display:flex;flex-direction:column;gap:8px;padding-bottom:16px}.med-reg-type-row{display:flex;gap:8px;margin-bottom:4px}.med-reg-type-btn{flex:1;padding:8px;border:1.5px solid #e5e7eb;border-radius:10px;background:#f9fafb;font-size:.82rem;font-weight:600;color:#666;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:all .15s}.med-reg-type-btn--active{border-color:#007acc;background:#eff6ff;color:#007acc}.med-reg-label{font-size:.78rem;font-weight:600;color:#555;margin-bottom:2px}.med-reg-input{width:100%;padding:9px 12px;border:1.5px solid #e5e7eb;border-radius:10px;font-size:.88rem;box-sizing:border-box;outline:none;transition:border-color .15s}.med-reg-input:focus{border-color:#007acc}.med-reg-select{width:100%;padding:9px 12px;border:1.5px solid #e5e7eb;border-radius:10px;font-size:.88rem;background:#fff;outline:none;box-sizing:border-box}.med-reg-row{display:flex;gap:8px}.med-reg-field{flex:1;display:flex;flex-direction:column;gap:4px;min-width:0}.med-reg-textarea{width:100%;padding:9px 12px;border:1.5px solid #e5e7eb;border-radius:10px;font-size:.88rem;resize:none;box-sizing:border-box;outline:none;font-family:inherit;transition:border-color .15s}.med-reg-textarea:focus{border-color:#007acc}.med-reg-error{color:#ef4444;font-size:.78rem;margin:0}.med-reg-actions{display:flex;gap:8px;margin-top:8px}.med-reg-back-btn{flex:0 0 auto;padding:10px 16px;border:1.5px solid #e5e7eb;border-radius:10px;background:#fff;font-size:.85rem;color:#555;cursor:pointer}.med-reg-save-btn{flex:1;padding:10px;background:#007acc;color:#fff;border:none;border-radius:10px;font-size:.88rem;font-weight:700;cursor:pointer;-webkit-tap-highlight-color:transparent}.med-reg-save-btn:disabled{opacity:.5}.med-section-header{display:flex;align-items:center;gap:8px;font-size:.82rem;font-weight:700;padding:8px 4px 4px;color:#555}.med-section-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.med-section-dot--active{background:#22c55e}.med-section-dot--past{background:#d1d5db}.med-section-header--active{color:#166534}.med-section-header--past{color:#9ca3af;margin-top:16px}.med-pagination{display:flex;align-items:center;justify-content:center;gap:16px;padding:12px 0 4px}.med-page-btn{padding:8px 16px;border:1.5px solid #e5e7eb;border-radius:10px;background:#fff;font-size:.82rem;font-weight:600;color:#3b82f6;cursor:pointer;-webkit-tap-highlight-color:transparent}.med-page-btn:disabled{opacity:.3;cursor:default}.med-page-info{font-size:.8rem;color:#888;font-weight:600}.exam-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;z-index:1000;display:flex;align-items:flex-end;justify-content:center;padding-top:env(safe-area-inset-top,0px)}.exam-modal{background:#fff;border-radius:24px 24px 0 0;width:100%;max-width:540px;max-height:min(92dvh,calc(100dvh - 16px));min-height:0;display:flex;flex-direction:column;overflow:hidden}.exam-handle{width:40px;height:4px;background:#ddd;border-radius:2px;margin:12px auto 8px;flex-shrink:0}.exam-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px 8px;flex-shrink:0;gap:8px;background:#fff;border-bottom:1px solid #f5f5f5}.exam-header-title{font-size:1rem;font-weight:700;color:#222;flex:1}.exam-header-right{display:flex;align-items:center;gap:8px}.exam-back{display:flex;align-items:center;gap:4px;background:none;border:none;font-size:.85rem;font-weight:600;color:#6366f1;cursor:pointer;padding:4px 8px;border-radius:8px;-webkit-tap-highlight-color:transparent}.exam-back:hover{background:#f0f0ff}.exam-range-btns{display:flex;gap:4px}.exam-range-btn{font-size:.72rem;font-weight:700;padding:3px 10px;border-radius:20px;border:1.5px solid #e0e0e0;background:#f8f8f8;color:#666;cursor:pointer;transition:all .15s}.exam-range-btn--active{background:#6366f1;color:#fff;border-color:#6366f1}.exam-close{background:none;border:none;font-size:1rem;color:#888;cursor:pointer;padding:4px 8px;flex-shrink:0}.exam-tabs-row{display:flex;flex-direction:column;padding:8px 16px 10px;flex-shrink:0;gap:6px;border-bottom:1px solid #f0f0f0}.exam-tabs{display:flex;gap:4px;overflow-x:auto;-webkit-overflow-scrolling:touch;background:#fff;border-bottom:1px solid #f0f0f0}.exam-tabs::-webkit-scrollbar{display:none}.exam-tab{white-space:nowrap;font-size:.75rem;font-weight:700;padding:6px 14px;border-radius:20px;border:1.5px solid #e0e0e0;background:#f8f8f8;color:#666;cursor:pointer;transition:all .15s;flex-shrink:0}.exam-tab--active{background:#6366f1;color:#fff;border-color:#6366f1}.exam-date-scroll{display:flex;gap:8px;overflow-x:auto;padding:4px 16px 12px;flex-shrink:0;-webkit-overflow-scrolling:touch;border-bottom:1px solid #f0f0f0;margin-bottom:4px}.exam-date-scroll::-webkit-scrollbar{display:none}.exam-date-btn{display:flex;flex-direction:column;align-items:flex-start;gap:2px;background:#f5f5f5;border:1.5px solid transparent;border-radius:12px;padding:8px 14px;cursor:pointer;white-space:nowrap;flex-shrink:0;-webkit-tap-highlight-color:transparent;transition:all .15s}.exam-date-btn--active{background:#e0f0ff;border-color:#007acc}.exam-date-label{font-size:.82rem;font-weight:700;color:#333}.exam-date-btn--active .exam-date-label{color:#007acc}.exam-date-facility{font-size:.68rem;color:#888}.exam-date-alert{font-size:.65rem;font-weight:700;color:#f59e0b;background:#fef3c7;border-radius:8px;padding:1px 6px}.exam-content{flex:1;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:8px 16px 64px;display:flex;flex-direction:column;gap:10px}.exam-items-scroll{flex:1;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;display:flex;flex-direction:column;gap:10px;padding-bottom:64px}.alerts-list{display:flex;flex-direction:column;gap:8px}.alerts-note{font-size:.74rem;color:#888;margin:0 0 4px;line-height:1.5}.alert-group-card{border:1.5px solid #fee2e2;border-radius:14px;overflow:hidden;cursor:pointer;transition:border-color .15s}.alert-group-card:active{border-color:#f87171}.alert-group-header{display:flex;align-items:center;gap:8px;padding:10px 14px;background:#fef2f2}.alert-group-date{font-size:.85rem;font-weight:700;color:#222}.alert-group-facility{font-size:.72rem;color:#888}.alert-group-category{font-size:.72rem;font-weight:700;color:#6366f1;background:#eef2ff;border-radius:6px;padding:1px 8px}.alert-group-count{font-size:.72rem;font-weight:700;color:#ef4444;margin-left:auto}.alert-group-arrow{font-size:.82rem;color:#9ca3af}.alert-group-items{padding:4px 0}.alert-row{display:flex;align-items:center;justify-content:space-between;background:#fff;border:1px solid #f0f0f0;border-radius:14px;padding:12px 14px;gap:8px}.alert-row-left{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0}.alert-item-name{font-size:.85rem;font-weight:700;color:#222}.alert-item-unit{font-size:.7rem;color:#999;margin-left:4px}.alert-ref{font-size:.68rem;color:#bbb}.alert-row-right{display:flex;align-items:center;gap:6px;flex-shrink:0}.alert-trend{font-size:.8rem;font-weight:700}.alert-value{font-size:1rem;font-weight:800}.spark-hl{font-size:.65rem;font-weight:900;border-radius:6px;padding:1px 6px;letter-spacing:.05em}.spark-hl--h{background:#fee2e2;color:#ef4444}.spark-hl--l{background:#dbeafe;color:#3b82f6}.trends-grid{display:flex;flex-direction:column;gap:14px}.trends-group-header{font-size:.85rem;font-weight:700;color:#6366f1;background:#eef2ff;border-radius:10px;padding:8px 14px;margin-top:4px}.spark-wrap{background:#fff;border:1px solid #f0f0f0;border-radius:14px;padding:12px 12px 8px;overflow:hidden}.spark-header{display:flex;align-items:center;gap:6px;margin-bottom:8px;flex-wrap:wrap}.spark-name{font-size:.85rem;font-weight:700;color:#222}.spark-unit{font-size:.7rem;color:#999}.spark-latest{margin-left:auto;font-size:1rem;font-weight:800}.spark-svg{display:block;width:100%;height:auto;overflow:visible}.spark-ref{font-size:.67rem;color:#bbb;margin-top:4px;text-align:right}.exam-comment{display:flex;gap:10px;background:#f0f7ff;border-radius:14px;padding:12px 14px}.exam-comment-icon{font-size:1.2rem;flex-shrink:0}.exam-comment p{margin:0;font-size:.82rem;color:#334155;line-height:1.6}.exam-group{background:#fff;border:1px solid #f0f0f0;border-radius:14px}.exam-group-name{font-size:.75rem;font-weight:700;color:#666;background:#f8f8f8;padding:10px 14px;border-bottom:1px solid #f0f0f0;letter-spacing:.04em}.exam-items{display:flex;flex-direction:column}.exam-item{display:flex;align-items:center;justify-content:space-between;padding:14px;border-bottom:1px solid #f0f0f0;gap:10px;min-height:48px}.exam-item:last-child{border-bottom:none}.exam-item-left{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.exam-item-name{font-size:.85rem;color:#333;line-height:1.4}.exam-item-ref{font-size:.7rem;color:#aaa}.exam-item-right{display:flex;align-items:center;gap:5px;flex-shrink:0}.exam-trend{font-size:.75rem;font-weight:700}.exam-trend--up{color:#ef4444}.exam-trend--down{color:#3b82f6}.exam-item-value{font-size:.88rem;font-weight:700;color:#222}.exam-item-unit{font-size:.7rem;font-weight:400;color:#888}.exam-judgment-badge{font-size:.65rem;font-weight:700;border-radius:8px;padding:2px 7px;white-space:nowrap}.exam-empty{display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center;color:#bbb;font-size:.85rem;padding:40px 0}.exam-footer{flex-shrink:0;background:#fff;border-top:1px solid #f0f0f0;padding:10px 16px 24px}.exam-footer-close{width:100%;padding:13px;border:none;border-radius:14px;background:#6366f1;color:#fff;font-size:.9rem;font-weight:700;cursor:pointer;letter-spacing:.04em;-webkit-tap-highlight-color:transparent}.exam-reg-trigger-btn{background:#6366f1;color:#fff;border:none;border-radius:20px;padding:6px 12px;font-size:.78rem;font-weight:700;cursor:pointer;-webkit-tap-highlight-color:transparent}.exam-reg-form{display:flex;flex-direction:column;gap:8px;padding-bottom:16px}.exam-reg-row{display:flex;gap:8px}.exam-reg-field{flex:1;display:flex;flex-direction:column;gap:4px;min-width:0}.exam-reg-label{font-size:.78rem;font-weight:600;color:#555}.exam-reg-input{width:100%;padding:9px 12px;border:1.5px solid #e5e7eb;border-radius:10px;font-size:.88rem;box-sizing:border-box;outline:none;transition:border-color .15s}.exam-reg-input:focus{border-color:#6366f1}.exam-reg-textarea{width:100%;padding:9px 12px;border:1.5px solid #e5e7eb;border-radius:10px;font-size:.88rem;resize:none;box-sizing:border-box;font-family:inherit;outline:none;transition:border-color .15s}.exam-reg-textarea:focus{border-color:#6366f1}.exam-reg-items-header{display:flex;align-items:center;justify-content:space-between}.exam-reg-add-item-btn{background:none;border:1.5px solid #6366f1;border-radius:8px;color:#6366f1;font-size:.78rem;font-weight:700;padding:3px 10px;cursor:pointer}.exam-reg-item-row{display:flex;gap:6px;align-items:center}.exam-reg-item-name{flex:3}.exam-reg-item-value{flex:2}.exam-reg-item-unit{flex:1.5}.exam-reg-remove-btn{background:none;border:none;color:#bbb;font-size:.8rem;cursor:pointer;flex-shrink:0;padding:0 4px}.exam-reg-error{color:#ef4444;font-size:.78rem;margin:0}.exam-reg-actions{display:flex;gap:8px;margin-top:8px}.exam-reg-back-btn{flex:0 0 auto;padding:10px 16px;border:1.5px solid #e5e7eb;border-radius:10px;background:#fff;font-size:.85rem;color:#555;cursor:pointer}.exam-reg-save-btn{flex:1;padding:10px;background:#6366f1;color:#fff;border:none;border-radius:10px;font-size:.88rem;font-weight:700;cursor:pointer;-webkit-tap-highlight-color:transparent}.exam-reg-save-btn:disabled{opacity:.5}.exam-reg-search-wrap{display:flex;flex-direction:column;gap:12px}.exam-reg-search-row{display:flex;gap:8px}.exam-reg-search-row .exam-reg-input{flex:1}.exam-reg-search-btn{background:#6366f1;color:#fff;border:none;border-radius:10px;padding:0 14px;font-size:.85rem;font-weight:700;cursor:pointer;flex-shrink:0}.exam-reg-search-btn:disabled{opacity:.5}.exam-reg-results{display:flex;flex-direction:column;gap:6px}.exam-reg-result-item{background:#fff;border:1.5px solid #e5e7eb;border-radius:12px;padding:10px 14px;text-align:left;cursor:pointer;display:flex;flex-direction:column;gap:2px;-webkit-tap-highlight-color:transparent;transition:border-color .15s}.exam-reg-result-item:hover{border-color:#6366f1}.exam-reg-result-name{font-size:.9rem;font-weight:700;color:#222}.exam-reg-result-cat{font-size:.72rem;color:#888}.exam-reg-result-unit{font-size:.72rem;color:#6366f1}.exam-reg-empty{text-align:center;color:#888;font-size:.82rem}.exam-manual-btn{background:#f9fafb;border:1.5px dashed #d1d5db;border-radius:12px;padding:14px;font-size:.85rem;color:#555;cursor:pointer;width:100%;text-align:center}.exam-manual-btn:hover{border-color:#6366f1;color:#6366f1}.exam-photo-wrap{display:flex;flex-direction:column;gap:12px}.exam-photo-placeholder{text-align:center;padding:24px 16px;display:flex;flex-direction:column;gap:8px;align-items:center;color:#555;font-size:.85rem}.exam-photo-icon{font-size:2.5rem}.exam-photo-sub{font-size:.78rem;color:#aaa}.exam-photo-preview{background:#eff6ff;border-radius:10px;padding:8px 12px;font-size:.82rem;color:#3b82f6}.exam-analyzing{display:flex;flex-direction:column;align-items:center;gap:12px;padding:32px 0;color:#555;font-size:.85rem}.exam-analyzing-spinner{width:32px;height:32px;border:3px solid #e5e7eb;border-top-color:#6366f1;border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.exam-analyze-error{background:#fef2f2;border-radius:10px;padding:12px;text-align:center;color:#dc2626;font-size:.82rem}.cal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;z-index:1000;display:flex;align-items:flex-end;justify-content:center}.cal-modal{background:#fff;border-radius:24px 24px 0 0;width:100%;max-width:480px;max-height:92dvh;display:flex;flex-direction:column;overflow:hidden}.cal-header{display:flex;align-items:center;justify-content:space-between;padding:16px 16px 12px;border-bottom:1px solid #f0f0f0;flex-shrink:0}.cal-close{background:none;border:none;font-size:1.1rem;color:#888;cursor:pointer;padding:4px 8px;border-radius:8px}.cal-month-nav{display:flex;align-items:center;gap:16px}.cal-nav-btn{background:none;border:none;font-size:1.4rem;color:#007acc;cursor:pointer;padding:2px 8px;line-height:1}.cal-month-label{font-size:1rem;font-weight:700;color:#222;min-width:100px;text-align:center}.cal-grid-header{display:grid;grid-template-columns:repeat(7,1fr);padding:4px 8px 0;flex-shrink:0}.cal-weekday{text-align:center;font-size:.7rem;font-weight:600;color:#aaa;padding:4px 0}.cal-weekday--sun{color:#ef4444}.cal-weekday--sat{color:#3b82f6}.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);padding:0 8px 8px;flex-shrink:0}.cal-cell{display:flex;flex-direction:column;align-items:center;padding:4px 2px;border-radius:10px;cursor:pointer;min-height:44px;-webkit-tap-highlight-color:transparent;transition:background .15s}.cal-cell--empty{cursor:default}.cal-cell:not(.cal-cell--empty):active{background:#f0f7ff}.cal-cell--today .cal-day-num{background:#007acc;color:#fff;border-radius:50%;width:26px;height:26px;display:flex;align-items:center;justify-content:center}.cal-cell--selected:not(.cal-cell--today) .cal-day-num{background:#e0f0ff;color:#007acc;border-radius:50%;width:26px;height:26px;display:flex;align-items:center;justify-content:center;font-weight:700}.cal-day-num{font-size:.82rem;font-weight:500;color:#333;width:26px;height:26px;display:flex;align-items:center;justify-content:center}.cal-cell--sun .cal-day-num{color:#ef4444}.cal-cell--sat .cal-day-num{color:#3b82f6}.cal-cell--today .cal-day-num,.cal-cell--selected.cal-cell--sun .cal-day-num,.cal-cell--selected.cal-cell--sat .cal-day-num{color:inherit}.cal-dots{display:flex;gap:2px;margin-top:2px;height:6px;align-items:center}.cal-dot{width:5px;height:5px;border-radius:50%;flex-shrink:0}.cal-timeline{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;border-top:1px solid #f0f0f0;background:#fafafa}.cal-timeline-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px 8px;position:sticky;top:0;background:#fafafa;z-index:1}.cal-timeline-date{font-size:.88rem;font-weight:700;color:#222}.cal-diary-btn{background:none;border:1px solid #007acc;color:#007acc;border-radius:20px;padding:4px 12px;font-size:.75rem;font-weight:600;cursor:pointer;-webkit-tap-highlight-color:transparent}.cal-timeline-empty{display:flex;flex-direction:column;align-items:center;gap:12px;padding:32px 16px;color:#aaa;font-size:.85rem}.cal-timeline-empty p{margin:0}.cal-diary-btn-large{background:#007acc;color:#fff;border:none;border-radius:12px;padding:10px 24px;font-size:.9rem;font-weight:600;cursor:pointer}.cal-events{padding:4px 12px 24px;display:flex;flex-direction:column;gap:6px}.cal-event{display:flex;gap:8px;background:#fff;border-radius:12px;padding:10px 12px;box-shadow:0 1px 4px #0000000f}.cal-event-line{width:3px;border-radius:2px;flex-shrink:0;min-height:100%}.cal-event-body{flex:1;min-width:0}.cal-event-top{display:flex;align-items:center;gap:6px;margin-bottom:3px}.cal-event-time{font-size:.72rem;color:#888;flex-shrink:0}.cal-event-badge{font-size:.68rem;font-weight:600;border-radius:10px;padding:1px 7px}.cal-event-title{font-size:.88rem;font-weight:600;color:#222;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cal-event-detail{font-size:.75rem;color:#888;margin-top:2px;line-height:1.4}.cal-add-diary-row{display:flex;align-items:center;gap:8px;background:none;border:1.5px dashed #ddd;border-radius:12px;padding:10px 14px;color:#aaa;font-size:.82rem;cursor:pointer;width:100%;text-align:left;-webkit-tap-highlight-color:transparent}.cal-add-icon{font-size:1rem}.diary-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;z-index:1100;display:flex;align-items:flex-end;justify-content:center}.diary-modal{background:#fff;border-radius:24px 24px 0 0;width:100%;max-width:480px;padding:0 0 env(safe-area-inset-bottom,16px);display:flex;flex-direction:column;gap:0;max-height:90dvh;overflow-y:auto}.diary-handle{width:40px;height:4px;background:#ddd;border-radius:2px;margin:10px auto 4px;flex-shrink:0}.diary-prompt{display:flex;align-items:flex-start;gap:10px;padding:12px 20px 16px;border-bottom:1px solid #f0f0f0}.diary-prompt-icon{font-size:1.4rem;flex-shrink:0;margin-top:2px}.diary-prompt-body{flex:1}.diary-prompt-date{font-size:.75rem;color:#888;margin-bottom:2px}.diary-prompt-text{font-size:.95rem;font-weight:600;color:#222}.diary-section-label{font-size:.72rem;font-weight:700;color:#aaa;text-transform:uppercase;letter-spacing:.04em;margin-bottom:8px}.diary-mood-section{padding:14px 20px 12px;border-bottom:1px solid #f5f5f5}.diary-mood-row{display:flex;gap:6px}.diary-mood-btn{flex:1;display:flex;flex-direction:column;align-items:center;gap:3px;background:#f8f8f8;border:1.5px solid transparent;border-radius:12px;padding:8px 4px;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:all .15s}.diary-mood-btn--active{background:#e0f0ff;border-color:#007acc}.diary-mood-emoji{font-size:1.3rem;line-height:1}.diary-mood-label{font-size:.6rem;color:#888;font-weight:600}.diary-mood-btn--active .diary-mood-label{color:#007acc}.diary-tags-section{padding:12px 20px;border-bottom:1px solid #f5f5f5}.diary-tags{display:flex;flex-wrap:wrap;gap:6px}.diary-tag{background:#f3f4f6;border:1.5px solid transparent;color:#555;border-radius:20px;padding:5px 12px;font-size:.78rem;font-weight:500;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:all .15s}.diary-tag--active{background:#e0f0ff;border-color:#007acc;color:#007acc;font-weight:600}.diary-brushing-section{padding:12px 20px;border-bottom:1px solid #f5f5f5;background:#f8fff9}.diary-brushing-row{display:flex;gap:8px;margin-top:8px}.diary-brushing-btn{flex:1;display:flex;flex-direction:column;align-items:center;gap:4px;padding:10px 6px;background:#fff;border:1.5px solid #d4eedd;border-radius:12px;font-size:.8rem;color:#444;cursor:pointer;transition:background .15s,border-color .15s}.diary-brushing-btn span:first-child{font-size:1.3rem;line-height:1}.diary-brushing-btn:hover{background:#edfff3;border-color:#6fcf97}.diary-brushing-btn--active{background:#e8fdf0;border-color:#27ae60;color:#1a7a40;font-weight:700}.diary-text-section{padding:12px 20px}.diary-textarea{width:100%;border:1.5px solid #e5e7eb;border-radius:14px;padding:12px 14px;font-size:.9rem;line-height:1.6;color:#333;resize:none;outline:none;box-sizing:border-box;font-family:inherit;background:#fafafa;transition:border-color .15s}.diary-textarea:focus{border-color:#007acc;background:#fff}.diary-textarea::placeholder{color:#bbb}.diary-actions{display:flex;gap:8px;padding:8px 20px 16px}.diary-cancel-btn{flex:0 0 auto;background:none;border:1.5px solid #ddd;color:#888;border-radius:12px;padding:12px 16px;font-size:.88rem;font-weight:600;cursor:pointer;-webkit-tap-highlight-color:transparent}.diary-save-btn{flex:1;background:#007acc;color:#fff;border:none;border-radius:12px;padding:12px;font-size:.88rem;font-weight:700;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:opacity .15s}.diary-save-btn:disabled{opacity:.35;cursor:default}.sw-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;z-index:1000;display:flex;align-items:flex-end;justify-content:center}.sw-modal{background:#fff;border-radius:24px 24px 0 0;width:100%;max-width:540px;max-height:92dvh;display:flex;flex-direction:column;overflow:hidden}.sw-handle{width:40px;height:4px;background:#ddd;border-radius:2px;margin:10px auto 0;flex-shrink:0}.sw-header{display:flex;align-items:center;padding:10px 16px 8px;gap:8px;flex-shrink:0;background:#fff;border-bottom:1px solid #f0f0f0}.sw-back-btn{display:flex;align-items:center;gap:4px;background:none;border:none;font-size:.85rem;font-weight:700;color:#6366f1;cursor:pointer;padding:6px 10px;border-radius:10px;white-space:nowrap;flex-shrink:0;-webkit-tap-highlight-color:transparent;transition:background .15s}.sw-back-btn:hover,.sw-back-btn:active{background:#f0f0ff}.sw-header-title{flex:1;font-size:.95rem;font-weight:700;color:#222;text-align:center;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sw-tabs{display:flex;gap:4px;padding:8px 12px 10px;overflow-x:auto;-webkit-overflow-scrolling:touch;background:#fff;border-bottom:1px solid #f0f0f0;flex-shrink:0}.sw-tabs::-webkit-scrollbar{display:none}.sw-content{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:10px 14px 16px;display:flex;flex-direction:column;gap:12px}.sw-footer{flex-shrink:0;background:#fff;border-top:1px solid #f0f0f0;padding:10px 16px 24px}.sw-footer-close{width:100%;padding:13px;border:none;border-radius:14px;background:#f97316;color:#fff;font-size:.9rem;font-weight:700;cursor:pointer;letter-spacing:.04em;-webkit-tap-highlight-color:transparent;transition:opacity .15s}.sw-footer-close:active{opacity:.8}.sw-tab{white-space:nowrap;font-size:.75rem;font-weight:700;padding:6px 14px;border-radius:20px;border:1.5px solid #e0e0e0;background:#f8f8f8;color:#666;cursor:pointer;flex-shrink:0;transition:all .15s}.sw-tab--active{background:#f97316;color:#fff;border-color:#f97316}.sw-current-level-card{background:#fff;border:1px solid #f0f0f0;border-radius:16px;padding:16px;display:flex;flex-direction:column;gap:8px}.sw-current-level-header{display:flex;align-items:center;justify-content:space-between}.sw-current-level-title{font-size:.8rem;font-weight:700;color:#666}.sw-current-level-date{font-size:.72rem;color:#aaa}.sw-current-level-main{display:flex;align-items:center;gap:10px;border-radius:12px;padding:10px 16px}.sw-current-level-code{font-size:1.5rem;font-weight:900;line-height:1}.sw-current-level-name{font-size:.9rem;font-weight:700}.sw-current-level-desc{font-size:.76rem;color:#888;margin:0;line-height:1.5}.sw-level-scale{display:flex;gap:4px;margin-top:6px}.sw-level-step{flex:1;min-width:0;text-align:center;padding:5px 2px;border-radius:8px;background:#f3f4f6;border:1px solid #e5e7eb;transition:all .2s;overflow:hidden}.sw-level-step--past{opacity:.55}.sw-level-step--active{transform:scale(1.08);box-shadow:0 2px 8px #0000002e;z-index:1;position:relative}.sw-level-code{font-size:.62rem;font-weight:800;display:block;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:clip}.sw-status-card{background:#fff;border:1px solid #f0f0f0;border-radius:14px;padding:12px 14px;cursor:pointer;display:flex;flex-direction:column;gap:8px;transition:box-shadow .15s}.sw-status-card:active{box-shadow:0 2px 8px #0000001a}.sw-status-top{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.sw-status-date{font-size:.82rem;font-weight:700;color:#222}.sw-status-facility{font-size:.7rem;color:#888}.sw-risk-badge{font-size:.65rem;font-weight:700;border:1.5px solid;border-radius:10px;padding:1px 8px;margin-left:auto}.sw-status-arrow{font-size:.65rem;color:#bbb}.sw-status-summary{display:flex;flex-wrap:wrap;gap:5px}.sw-tag{font-size:.72rem;font-weight:600;background:#f3f4f6;color:#555;border-radius:8px;padding:3px 8px}.sw-tag--ok{background:#dcfce7;color:#22c55e}.sw-status-detail{border-top:1px solid #f5f5f5;padding-top:10px;display:flex;flex-direction:column;gap:6px}.sw-detail-row{display:flex;justify-content:space-between;font-size:.8rem;color:#444}.sw-detail-row span:first-child{color:#888}.sw-detail-memo{font-size:.78rem;color:#555;background:#f8f9fa;border-radius:8px;padding:8px 10px;line-height:1.5}.sw-detail-practitioner{font-size:.7rem;color:#aaa;text-align:right}.sw-diary-card{background:#fff;border:1px solid #f0f0f0;border-radius:14px;padding:12px 14px;display:flex;flex-direction:column;gap:6px}.sw-diary-header{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.sw-diary-date{font-size:.8rem;font-weight:700;color:#333}.sw-diary-time{font-size:.72rem;font-weight:700;color:#f97316;background:#fff7ed;border-radius:8px;padding:2px 8px}.sw-choking-badge{font-size:.65rem;font-weight:700;color:#ef4444;background:#fee2e2;border-radius:8px;padding:2px 8px}.sw-diary-food{font-size:.8rem;color:#444;line-height:1.5}.sw-diary-meta{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.sw-amount-badge{font-size:.7rem;font-weight:700;background:#fef3c7;color:#92400e;border-radius:8px;padding:2px 8px}.sw-amount-badge--ok{background:#dcfce7;color:#166534}.sw-diary-condition{font-size:.75rem;color:#666}.sw-tooth-chart{background:#fff;border:1px solid #f0f0f0;border-radius:14px;padding:12px}.sw-tooth-jaw-label{font-size:.7rem;font-weight:700;color:#888;text-align:center;margin:4px 0 2px}.sw-tooth-jaw-sep{border-top:1.5px dashed #e0e0e0;margin:6px 0}.sw-tooth-row{display:flex;align-items:center;gap:4px;margin-bottom:2px}.sw-tooth-row-label{font-size:.6rem;color:#aaa;width:16px;text-align:center;flex-shrink:0}.sw-tooth-cells{display:flex;gap:2px;flex:1}.sw-tooth-cell{flex:1;display:flex;flex-direction:column;align-items:center;border:1.5px solid;border-radius:5px;padding:2px 0;min-width:0;cursor:default}.sw-tooth-num{font-size:.5rem;color:#999;line-height:1}.sw-tooth-cond{font-size:.65rem;font-weight:800;line-height:1.2}.sw-tooth-legend{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px;padding-top:8px;border-top:1px solid #f0f0f0}.sw-tooth-legend-item{display:flex;align-items:center;gap:4px;font-size:.68rem;color:#555}.sw-tooth-legend-dot{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:4px;font-size:.6rem;font-weight:800}.sw-oral-card{background:#fff;border:1px solid #f0f0f0;border-radius:14px;padding:12px 14px;display:flex;flex-direction:column;gap:10px}.sw-oral-header{display:flex;align-items:center;gap:8px}.sw-oral-date{font-size:.82rem;font-weight:700;color:#333}.sw-oral-facility{font-size:.7rem;color:#888}.sw-oral-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.sw-oral-item{display:flex;flex-direction:column;gap:2px;background:#f8f9fa;border-radius:10px;padding:8px 10px}.sw-oral-label{font-size:.68rem;color:#888}.sw-oral-value{font-size:.88rem;font-weight:700;color:#222}.sw-oral-value--warn{color:#ef4444}.sw-oral-memo{font-size:.78rem;color:#555;background:#f0f7ff;border-radius:8px;padding:8px 10px;line-height:1.5}.sw-profile-section{background:#fff;border:1px solid #f0f0f0;border-radius:14px;padding:12px 14px;display:flex;flex-direction:column;gap:6px}.sw-profile-title{font-size:.75rem;font-weight:700;color:#f97316;margin-bottom:2px}.sw-profile-row{display:flex;justify-content:space-between;font-size:.8rem;color:#444;gap:8px}.sw-profile-row span:first-child{color:#888;flex-shrink:0}.sw-allergy-list{display:flex;flex-wrap:wrap;gap:6px}.sw-allergy-tag{font-size:.75rem;font-weight:700;background:#fee2e2;color:#ef4444;border-radius:8px;padding:3px 10px}.sw-profile-note{font-size:.8rem;color:#555;background:#fff7ed;border-radius:12px;padding:10px 14px;line-height:1.6}.sw-section-label{font-size:.75rem;font-weight:700;color:#888;letter-spacing:.04em}.sw-section-note{font-size:.73rem;color:#aaa;margin:0}.sw-dental-next{display:flex;align-items:center;justify-content:space-between;background:#ede9fe;border-radius:12px;padding:10px 14px;font-size:.82rem;color:#5b21b6;font-weight:600}.sw-dental-next strong{font-size:.95rem}.sw-empty{text-align:center;color:#bbb;font-size:.85rem;padding:40px 0}.sw-add-btn{display:flex;align-items:center;justify-content:center;gap:6px;width:100%;padding:10px;border:2px dashed #f97316;border-radius:12px;background:#fff7ed;color:#f97316;font-size:.85rem;font-weight:700;cursor:pointer;transition:all .15s;flex-shrink:0}.sw-add-btn:active{opacity:.7}.sw-add-btn--open{border-style:solid;background:#fff;color:#9ca3af}.sw-form{background:#fff;border:1.5px solid #f97316;border-radius:16px;padding:14px;display:flex;flex-direction:column;gap:14px;animation:sw-form-in .2s ease}@keyframes sw-form-in{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.sw-form-row{display:flex;flex-direction:column;gap:6px}.sw-form-label{font-size:.75rem;font-weight:700;color:#888}.sw-form-textarea{border:1.5px solid #e5e7eb;border-radius:10px;padding:8px 12px;font-size:.88rem;color:#333;resize:none;font-family:inherit;line-height:1.5;outline:none}.sw-form-textarea:focus{border-color:#f97316}.sw-chips{display:flex;flex-wrap:wrap;gap:6px}.sw-chip{padding:5px 12px;border-radius:20px;border:1.5px solid #e5e7eb;background:#f8f8f8;color:#666;font-size:.78rem;font-weight:600;cursor:pointer;transition:all .15s;white-space:nowrap}.sw-chip--active{background:#f97316;border-color:#f97316;color:#fff}.sw-chip--risk-low.sw-chip--active{background:#22c55e;border-color:#22c55e}.sw-chip--risk-med.sw-chip--active{background:#f59e0b;border-color:#f59e0b}.sw-chip--risk-high.sw-chip--active{background:#ef4444;border-color:#ef4444}.sw-chip--ok.sw-chip--active{background:#22c55e;border-color:#22c55e}.sw-chip--ng.sw-chip--active{background:#ef4444;border-color:#ef4444}.sw-form-save{width:100%;padding:11px;border:none;border-radius:12px;background:#f97316;color:#fff;font-size:.9rem;font-weight:700;cursor:pointer;transition:opacity .15s}.sw-form-save:active{opacity:.8}.sw-date-nav{display:flex;align-items:center;justify-content:space-between;background:#f8f9fa;border-radius:12px;padding:8px 12px}.sw-date-nav-btn{background:none;border:none;font-size:1.1rem;color:#f97316;cursor:pointer;padding:4px 10px;border-radius:8px;-webkit-tap-highlight-color:transparent}.sw-date-nav-btn:disabled{color:#d1d5db;cursor:default}.sw-date-nav-btn:not(:disabled):active{background:#fff7ed}.sw-date-nav-label{font-size:.85rem;font-weight:700;color:#333;text-align:center;flex:1}.sw-meal-slots{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}.sw-meal-slot{display:flex;flex-direction:column;align-items:center;gap:4px;padding:12px 4px;border-radius:14px;border:2px solid #e5e7eb;background:#fafafa;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:all .15s}.sw-meal-slot--empty:active{background:#fff7ed;border-color:#f97316}.sw-meal-slot--done{background:#f0fdf4;border-color:#86efac;cursor:default}.sw-meal-slot-emoji{font-size:1.3rem;line-height:1}.sw-meal-slot-label{font-size:.68rem;font-weight:700;color:#555}.sw-meal-slot-status{font-size:.72rem;font-weight:800;color:#f97316}.sw-meal-slot--done .sw-meal-slot-status{color:#22c55e}.sw-mode-picker{display:flex;flex-direction:column;gap:8px;background:#fff;border:1.5px solid #f97316;border-radius:16px;padding:12px;animation:sw-form-in .2s ease}.sw-mode-picker-header{display:flex;align-items:center;justify-content:space-between;font-size:.85rem;font-weight:700;color:#333;padding-bottom:8px;border-bottom:1px solid #f5f5f5}.sw-mode-picker-close{background:none;border:none;font-size:1rem;color:#bbb;cursor:pointer;padding:2px 6px}.sw-quiz-context{display:flex;align-items:center;gap:8px;background:#fff7ed;border:1.5px solid #fed7aa;border-radius:10px;padding:7px 12px;font-size:.8rem;font-weight:700}.sw-quiz-context-date{color:#92400e}.sw-quiz-context-meal{color:#c2410c}.sw-diary-entry-grid{display:flex;flex-direction:column;gap:8px}.sw-diary-entry-btn{display:flex;align-items:center;gap:12px;width:100%;padding:14px 16px;border:2px solid #e5e7eb;border-radius:14px;background:#fafafa;cursor:pointer;text-align:left;transition:all .15s;-webkit-tap-highlight-color:transparent}.sw-diary-entry-btn:active{transform:scale(.98)}.sw-diary-entry-btn--full{border-color:#f97316;background:#fff7ed}.sw-diary-entry-btn--photo{border-color:#6366f1;background:#ede9fe}.sw-diary-entry-btn--swallow{border-color:#22c55e;background:#f0fdf4}.sw-diary-entry-icon{font-size:1.6rem;flex-shrink:0;line-height:1}.sw-diary-entry-label{font-size:.88rem;font-weight:700;color:#1a1a1a;display:block;line-height:1.3}.sw-diary-entry-sub{font-size:.7rem;color:#888;display:block;margin-top:2px}.sw-diary-entry-btn--full .sw-diary-entry-label{color:#c2410c}.sw-diary-entry-btn--photo .sw-diary-entry-label{color:#4338ca}.sw-diary-entry-btn--swallow .sw-diary-entry-label{color:#166534}.sw-quiz-food-step{display:flex;flex-direction:column;gap:8px}.sw-quiz-food-row{display:flex;gap:8px;align-items:flex-start}.sw-quiz-camera-btn{flex-shrink:0;width:44px;height:44px;border-radius:12px;border:1.5px solid #e5e7eb;background:#f3f4f6;font-size:1.2rem;cursor:pointer;display:flex;align-items:center;justify-content:center;-webkit-tap-highlight-color:transparent;transition:background .15s}.sw-quiz-camera-btn:active{background:#e0e7ff}.sw-quiz{display:flex;flex-direction:column;gap:16px;padding:4px 0;animation:sw-form-in .2s ease}.sw-quiz-dots{display:flex;justify-content:center;gap:6px}.sw-quiz-dot{width:7px;height:7px;border-radius:50%;background:#e5e7eb;transition:all .2s}.sw-quiz-dot--done{background:#fed7aa}.sw-quiz-dot--current{background:#f97316;width:20px;border-radius:4px}.sw-quiz-question{font-size:1rem;font-weight:700;color:#1a1a1a;text-align:center;margin:0;line-height:1.5}.sw-quiz-options{display:grid;grid-template-columns:1fr 1fr;gap:8px}.sw-quiz-option{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:14px 8px;border:2px solid #e5e7eb;border-radius:14px;background:#fafafa;cursor:pointer;transition:all .15s;-webkit-tap-highlight-color:transparent}.sw-quiz-option:active{transform:scale(.97)}.sw-quiz-option--active{border-color:#f97316;background:#fff7ed}.sw-quiz-option-emoji{font-size:1.6rem;line-height:1}.sw-quiz-option-label{font-size:.78rem;font-weight:700;color:#333;text-align:center}.sw-quiz-option--active .sw-quiz-option-label{color:#c2410c}.sw-quiz-textarea{width:100%;box-sizing:border-box}.sw-quiz-nav{display:flex;align-items:center;justify-content:space-between;gap:8px}.sw-quiz-nav-right{display:flex;align-items:center;gap:8px}.sw-quiz-back{background:none;border:none;font-size:.82rem;font-weight:700;color:#9ca3af;cursor:pointer;padding:6px 10px;border-radius:10px;-webkit-tap-highlight-color:transparent}.sw-quiz-back:active{background:#f3f4f6}.sw-quiz-skip{background:none;border:1.5px solid #e5e7eb;font-size:.78rem;font-weight:600;color:#9ca3af;cursor:pointer;padding:6px 12px;border-radius:10px;-webkit-tap-highlight-color:transparent}.sw-quiz-save{flex-shrink:0;width:auto;padding:10px 20px;font-size:.85rem}.sw-search-wrap{position:relative}.sw-search-input{width:100%;padding:9px 12px;border:1.5px solid #e5e7eb;border-radius:10px;font-size:.88rem;color:#333;font-family:inherit;outline:none;box-sizing:border-box;transition:border-color .15s}.sw-search-input:focus{border-color:#f97316}.sw-search-loading{display:block;font-size:.72rem;color:#aaa;padding:4px 2px}.sw-search-results{position:absolute;top:calc(100% + 4px);left:0;right:0;background:#fff;border:1.5px solid #f97316;border-radius:12px;box-shadow:0 4px 16px #0000001f;z-index:10;overflow:hidden}.sw-search-result-item{display:flex;align-items:center;justify-content:space-between;width:100%;padding:10px 14px;border:none;background:#fff;cursor:pointer;text-align:left;gap:8px;transition:background .12s;border-bottom:1px solid #f5f5f5}.sw-search-result-item:last-child{border-bottom:none}.sw-search-result-item:active{background:#fff7ed}.sw-search-result-name{font-size:.85rem;color:#333;font-weight:600;flex:1;text-align:left}.sw-search-result-kcal{font-size:.72rem;color:#f97316;font-weight:700;white-space:nowrap;flex-shrink:0}.sw-selected-foods{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:6px}.sw-selected-food-chip{display:inline-flex;align-items:center;gap:4px;background:#fff7ed;color:#c2410c;border:1.5px solid #fed7aa;border-radius:20px;padding:4px 10px;font-size:.78rem;font-weight:600}.sw-selected-food-remove{background:none;border:none;color:#f97316;font-size:.85rem;font-weight:700;cursor:pointer;padding:0;line-height:1;display:flex;align-items:center;-webkit-tap-highlight-color:transparent}.sw-form-level-chips{display:flex;gap:4px}.sw-form-level-chip{flex:1;text-align:center;padding:6px 2px;border-radius:8px;border:1.5px solid #e5e7eb;background:#f8f8f8;font-size:.68rem;font-weight:700;cursor:pointer;transition:all .15s}.mm-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;display:flex;align-items:flex-end;justify-content:center;z-index:25000;animation:mmFadeIn .2s ease}@keyframes mmFadeIn{0%{opacity:0}to{opacity:1}}.mm-sheet{background:#fff;border-radius:20px 20px 0 0;width:100%;max-width:520px;max-height:88vh;display:flex;flex-direction:column;overflow:hidden;animation:mmSlideUp .3s ease}@keyframes mmSlideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}@media(min-width:769px){.mm-overlay{align-items:center}.mm-sheet{border-radius:20px;max-height:78vh}}.mm-header{display:flex;align-items:center;gap:8px;padding:16px 16px 12px;border-bottom:1px solid #f0f0f0;flex-shrink:0}.mm-title{font-size:1.05rem;font-weight:700;color:#222;flex:1}.mm-back-btn{background:none;border:none;font-size:.9rem;color:#5b8dee;cursor:pointer;padding:4px 0;font-weight:600}.mm-header-sub{flex:1;font-size:.95rem;font-weight:700;color:#333;text-align:center}.mm-close-btn{background:#f0f0f0;border:none;width:30px;height:30px;border-radius:50%;font-size:.85rem;color:#666;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-left:auto}.mm-date-nav{display:flex;align-items:center;justify-content:center;gap:16px;padding:10px 16px;background:#f8f9ff;border-bottom:1px solid #eee;flex-shrink:0}.mm-date-arrow{background:#fff;border:1px solid #ddd;border-radius:8px;width:34px;height:34px;font-size:1.2rem;color:#555;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s}.mm-date-arrow:hover:not(:disabled){background:#eef0ff}.mm-date-label{font-size:.95rem;font-weight:700;color:#333;min-width:160px;text-align:center}.mm-body{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch}.mm-loading{text-align:center;padding:24px;color:#999;font-size:.88rem}.mm-calorie-summary{text-align:center;padding:8px 16px;font-size:.85rem;color:#666;background:#fffbf0;border-bottom:1px solid #f5e9c0}.mm-calorie-summary strong{color:#e07a00;font-size:1.1rem}.mm-slot{padding:12px 16px;border-bottom:1px solid #f0f0f0}.mm-slot-header{display:flex;align-items:center;gap:6px;margin-bottom:6px}.mm-slot-icon{font-size:1.15rem;line-height:1}.mm-slot-label{font-size:.92rem;font-weight:700;color:#333}.mm-slot-kcal{font-size:.78rem;color:#888;margin-left:4px}.mm-add-btn{margin-left:auto;background:#5b8dee;color:#fff;border:none;width:28px;height:28px;border-radius:50%;font-size:1.1rem;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:background .15s,transform .1s}.mm-add-btn:hover{background:#4070d0;transform:scale(1.08)}.mm-item-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}.mm-item{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:5px 8px;background:#f7f8fc;border-radius:8px;font-size:.85rem}.mm-item-name{color:#333;flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mm-item-cal{color:#888;font-size:.78rem;flex-shrink:0}.mm-slot-empty{font-size:.82rem;color:#bbb;margin:0;padding:4px 8px;cursor:pointer}.mm-slot-empty:hover{color:#5b8dee}.mm-daily-trigger{padding:14px 16px 20px;border-top:1px solid #f0f0f0}.mm-daily-btn{display:block;width:100%;padding:13px;background:#f5f7ff;border:1.5px dashed #5b8dee;border-radius:12px;color:#35b;font-size:.9rem;font-weight:700;cursor:pointer;text-align:center;transition:background .15s}.mm-daily-btn:hover{background:#eaedff}.mm-daily-done{text-align:center;font-size:.88rem;color:#27ae60;font-weight:700;padding:10px 0}.mm-dc-view{padding:24px 20px;display:flex;flex-direction:column;align-items:center}.mm-dc-step{width:100%;display:flex;flex-direction:column;align-items:center;gap:20px;animation:mmDcFade .2s ease}@keyframes mmDcFade{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.mm-dc-dots{display:flex;gap:8px}.mm-dc-dot{width:8px;height:8px;border-radius:50%;background:#dde0f0;transition:background .2s}.mm-dc-dot--active{background:#5b8dee}.mm-dc-dot--done{background:#27ae60}.mm-dc-question{font-size:1.05rem;font-weight:700;color:#222;text-align:center;line-height:1.4}.mm-dc-chips{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;width:100%}.mm-dc-chip{flex:1;min-width:72px;max-width:100px;display:flex;flex-direction:column;align-items:center;gap:6px;padding:14px 8px;background:#fff;border:1.5px solid #dde2f0;border-radius:14px;cursor:pointer;transition:background .15s,border-color .15s,transform .1s}.mm-dc-chip:hover{background:#f0f4ff;border-color:#9ab0ee;transform:translateY(-2px)}.mm-dc-chip--selected{background:#eef2ff;border-color:#5b8dee;transform:scale(1.05)}.mm-dc-chip--selected .mm-dc-label{color:#35b;font-weight:700}.mm-dc-emoji{font-size:1.8rem;line-height:1}.mm-dc-label{font-size:.75rem;color:#555;text-align:center}.mm-dc-done{display:flex;flex-direction:column;align-items:center;gap:12px;padding:24px 0;color:#555;font-size:.95rem}.mm-dc-done p{margin:0;font-weight:600;color:#27ae60}.mm-dc-done-icon{font-size:3rem}.mm-add-view{padding:16px;display:flex;flex-direction:column;gap:12px}.mm-search-row{display:flex;gap:8px}.mm-search-input{flex:1;padding:10px 14px;border:1.5px solid #d4d8e8;border-radius:10px;font-size:.92rem;color:#333;outline:none;transition:border-color .2s}.mm-search-input:focus{border-color:#5b8dee}.mm-search-btn{padding:10px 16px;background:#5b8dee;color:#fff;border:none;border-radius:10px;font-size:.88rem;font-weight:600;cursor:pointer;flex-shrink:0;transition:background .15s}.mm-search-btn:hover:not(:disabled){background:#4070d0}.mm-search-btn:disabled{opacity:.5;cursor:not-allowed}.mm-search-results{display:flex;flex-direction:column;gap:6px;max-height:240px;overflow-y:auto;border:1px solid #eee;border-radius:10px;background:#fafafa}.mm-result-item{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 14px;background:none;border:none;border-bottom:1px solid #f0f0f0;cursor:pointer;text-align:left;transition:background .12s}.mm-result-item:last-child{border-bottom:none}.mm-result-item:hover{background:#eef0ff}.mm-result-name{font-size:.9rem;color:#222;flex:1}.mm-result-cal{font-size:.8rem;color:#888;flex-shrink:0}.mm-no-results{font-size:.84rem;color:#aaa;text-align:center;margin:0;padding:8px 0}.mm-divider{display:flex;align-items:center;gap:10px;color:#ccc;font-size:.82rem}.mm-divider:before,.mm-divider:after{content:"";flex:1;height:1px;background:#e8e8e8}.mm-photo-btn{padding:12px;background:#fff7ed;border:1.5px dashed #f59e0b;border-radius:12px;color:#b45309;font-size:.92rem;font-weight:600;cursor:pointer;text-align:center;transition:background .15s}.mm-photo-btn:hover{background:#fef3c7}.mm-analyzing{display:flex;flex-direction:column;align-items:center;gap:10px;padding:16px 0;color:#666;font-size:.88rem}.mm-spinner{width:28px;height:28px;border:3px solid #e0e0e0;border-top-color:#5b8dee;border-radius:50%;animation:mmSpin .8s linear infinite}@keyframes mmSpin{to{transform:rotate(360deg)}}.mm-candidates-view{padding:16px;display:flex;flex-direction:column;gap:8px}.mm-candidates-hint{font-size:.85rem;color:#888;margin:0 0 4px}.mm-candidate-item{display:flex;flex-direction:column;gap:4px;padding:12px 14px;background:#f7f8fc;border:1.5px solid #e0e4f0;border-radius:12px;cursor:pointer;text-align:left;transition:background .12s,border-color .12s}.mm-candidate-item:hover{background:#eef0ff;border-color:#5b8dee}.mm-candidate-main{display:flex;align-items:center;justify-content:space-between}.mm-candidate-name{font-size:.95rem;font-weight:600;color:#222}.mm-candidate-prob{font-size:.78rem;color:#888}.mm-candidate-nutrition{display:flex;gap:10px;font-size:.78rem;color:#888}.mm-confirm-view{padding:16px;display:flex;flex-direction:column;gap:14px}.mm-confirm-card{background:#f7f8fc;border-radius:14px;padding:16px;display:flex;flex-direction:column;gap:6px}.mm-confirm-name{font-size:1.1rem;font-weight:700;color:#222}.mm-confirm-cal{font-size:1.3rem;font-weight:700;color:#e07a00}.mm-confirm-nutrition{display:flex;flex-wrap:wrap;gap:8px;margin-top:4px}.mm-confirm-nutrition span{font-size:.8rem;color:#888;background:#fff;padding:3px 8px;border-radius:6px;border:1px solid #e8e8e8}.mm-type-row{display:flex;gap:6px;flex-wrap:wrap}.mm-type-btn{flex:1;min-width:60px;padding:8px 4px;background:#f0f0f0;border:1.5px solid transparent;border-radius:10px;font-size:.8rem;font-weight:600;color:#555;cursor:pointer;transition:background .15s,border-color .15s;text-align:center}.mm-type-btn--active{background:#eef2ff;border-color:#5b8dee;color:#35b}.mm-register-btn{padding:14px;background:#5b8dee;color:#fff;border:none;border-radius:12px;font-size:.95rem;font-weight:700;cursor:pointer;width:100%;transition:background .15s}.mm-register-btn:hover:not(:disabled){background:#4070d0}.mm-register-btn:disabled{opacity:.6;cursor:not-allowed}.mm-error{font-size:.84rem;color:#e03a3a;background:#fff0f0;border-radius:8px;padding:8px 12px;margin:0}.ex-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;display:flex;align-items:flex-end;justify-content:center;z-index:25000;animation:exFadeIn .2s ease}@keyframes exFadeIn{0%{opacity:0}to{opacity:1}}.ex-sheet{background:#fff;border-radius:20px 20px 0 0;width:100%;max-width:520px;max-height:88vh;display:flex;flex-direction:column;overflow:hidden;animation:exSlideUp .3s ease}@keyframes exSlideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}@media(min-width:769px){.ex-overlay{align-items:center}.ex-sheet{border-radius:20px;max-height:78vh}}.ex-header{display:flex;align-items:center;padding:16px 16px 12px;border-bottom:1px solid #f0f0f0;flex-shrink:0}.ex-title{font-size:1.05rem;font-weight:700;color:#222;flex:1}.ex-back-btn{background:none;border:none;font-size:.9rem;color:#5b8dee;cursor:pointer;font-weight:600;flex:1}.ex-close-btn{background:#f0f0f0;border:none;width:30px;height:30px;border-radius:50%;font-size:.85rem;color:#666;cursor:pointer;display:flex;align-items:center;justify-content:center;margin-left:auto;flex-shrink:0}.ex-date-nav{display:flex;align-items:center;justify-content:center;gap:16px;padding:10px 16px;background:#f8f9ff;border-bottom:1px solid #eee;flex-shrink:0}.ex-date-arrow{background:#fff;border:1px solid #ddd;border-radius:8px;width:34px;height:34px;font-size:1.2rem;color:#555;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s}.ex-date-arrow:hover:not(:disabled){background:#eef0ff}.ex-date-label{font-size:.95rem;font-weight:700;color:#333;min-width:160px;text-align:center}.ex-body{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch}.ex-loading{text-align:center;padding:24px;color:#999;font-size:.88rem}.ex-empty{display:flex;flex-direction:column;align-items:center;gap:8px;padding:32px 16px 16px;color:#bbb}.ex-empty-icon{font-size:2.5rem}.ex-empty p{font-size:.85rem;margin:0}.ex-summary-bar{display:flex;justify-content:center;gap:32px;padding:10px 16px;background:#fff9f0;border-bottom:1px solid #f5e9c0;font-size:.88rem;color:#666}.ex-summary-bar strong{color:#e07a00;font-size:1.05rem}.ex-record-card{padding:12px 16px;border-bottom:1px solid #f4f4f4}.ex-record-main{display:flex;align-items:center;justify-content:space-between;gap:8px}.ex-record-name{font-size:.95rem;font-weight:600;color:#222}.ex-record-cal{font-size:.88rem;color:#e07a00;font-weight:700;flex-shrink:0}.ex-record-sub{font-size:.8rem;color:#999;margin-top:3px}.ex-add-btn{display:block;width:calc(100% - 32px);margin:14px 16px;padding:13px;background:#eef2ff;border:1.5px dashed #5b8dee;border-radius:12px;color:#35b;font-size:.92rem;font-weight:700;cursor:pointer;text-align:center;transition:background .15s}.ex-add-btn:hover{background:#dde6ff}.ex-squat-banner{display:flex;align-items:center;justify-content:space-between;margin:4px 16px 20px;padding:14px 16px;background:linear-gradient(135deg,#f0f4ff,#e0e8ff);border-radius:14px;cursor:pointer;transition:transform .15s,box-shadow .15s;border:1px solid #c7d2fe}.ex-squat-banner:hover{transform:translateY(-2px);box-shadow:0 4px 16px #5b8dee33}.ex-squat-body{display:flex;align-items:center;gap:12px}.ex-squat-icon{font-size:2rem;line-height:1}.ex-squat-title{font-size:.95rem;font-weight:700;color:#23a}.ex-squat-sub{font-size:.78rem;color:#569;margin-top:2px}.ex-squat-arrow{font-size:1.1rem;color:#5b8dee;font-weight:700}.ex-add-view{padding:16px;display:flex;flex-direction:column;gap:16px}.ex-form-label{font-size:.82rem;font-weight:700;color:#555;margin-bottom:6px}.ex-type-grid{display:flex;flex-wrap:wrap;gap:8px}.ex-type-chip{padding:8px 14px;background:#f0f2f8;border:1.5px solid transparent;border-radius:20px;font-size:.84rem;color:#444;cursor:pointer;transition:background .15s,border-color .15s;white-space:nowrap}.ex-type-chip:hover{background:#dde4f8}.ex-type-chip--active{background:#eef2ff;border-color:#5b8dee;color:#24b;font-weight:700}.ex-form-field{display:flex;flex-direction:column;gap:4px}.ex-form-row{display:flex;gap:16px}.ex-form-row .ex-form-field{flex:1}.ex-input{padding:10px 12px;border:1.5px solid #d4d8e8;border-radius:10px;font-size:.92rem;color:#333;outline:none;transition:border-color .2s;width:100%;box-sizing:border-box}.ex-input:focus{border-color:#5b8dee}.ex-input--center{text-align:center}.ex-duration-row{display:flex;align-items:center;gap:8px}.ex-duration-row .ex-input{flex:1}.ex-duration-btn{width:36px;height:36px;background:#f0f2f8;border:1.5px solid #d4d8e8;border-radius:8px;font-size:1rem;color:#444;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:background .15s}.ex-duration-btn:hover{background:#dde4f8}.ex-duration-presets{display:flex;gap:6px;margin-top:6px;flex-wrap:wrap}.ex-preset-btn{padding:4px 10px;background:#f4f4f4;border:1px solid #ddd;border-radius:8px;font-size:.78rem;color:#555;cursor:pointer;transition:background .12s,border-color .12s}.ex-preset-btn:hover{background:#e8eaf8}.ex-preset-btn--active{background:#eef2ff;border-color:#5b8dee;color:#24b;font-weight:700}.ex-cal-row{display:flex;align-items:center;gap:6px}.ex-cal-row .ex-input{flex:1}.ex-cal-unit{font-size:.84rem;color:#888;flex-shrink:0}.ex-cal-hint{font-size:.74rem;color:#aaa;margin-top:4px}.ex-register-btn{padding:14px;background:#5b8dee;color:#fff;border:none;border-radius:12px;font-size:.95rem;font-weight:700;cursor:pointer;width:100%;transition:background .15s;margin-top:4px}.ex-register-btn:hover:not(:disabled){background:#4070d0}.ex-register-btn:disabled{opacity:.6;cursor:not-allowed}.ex-error{font-size:.84rem;color:#e03a3a;background:#fff0f0;border-radius:8px;padding:8px 12px;margin:0}.vital-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;z-index:1000;display:flex;align-items:flex-end;justify-content:center}.vital-modal{background:#fff;border-radius:24px 24px 0 0;width:100%;max-width:540px;max-height:min(92dvh,calc(100dvh - 16px));min-height:0;display:flex;flex-direction:column;overflow:hidden}.vital-handle{width:40px;height:4px;background:#ddd;border-radius:2px;margin:12px auto 8px;flex-shrink:0}.vital-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px 8px;flex-shrink:0;gap:8px;background:#fff;border-bottom:1px solid #f5f5f5}.vital-header-title{font-size:1rem;font-weight:700;color:#222;flex:1}.vital-latest-row{display:flex;gap:8px;padding:12px 16px;overflow-x:auto;flex-shrink:0;-webkit-overflow-scrolling:touch}.vital-latest-card{display:flex;align-items:center;gap:8px;background:#f8fafc;border:1px solid #e5e7eb;border-radius:12px;padding:10px 14px;min-width:0;flex:1}.vital-latest-icon{font-size:1.2rem;flex-shrink:0}.vital-latest-info{display:flex;flex-direction:column;min-width:0}.vital-latest-label{font-size:.72rem;font-weight:600;color:#888}.vital-latest-date{font-size:.65rem;color:#bbb}.vital-latest-value{margin-left:auto;display:flex;align-items:baseline;gap:2px;font-size:1.1rem;font-weight:700;color:#222;flex-shrink:0}.vital-val-sys{color:#ef4444}.vital-val-sep{color:#888;font-size:.85rem}.vital-val-dia{color:#3b82f6}.vital-val-unit{font-size:.65rem;color:#888;font-weight:400;margin-left:2px}.vital-tabs-row{display:flex;flex-direction:column;padding:8px 16px 10px;flex-shrink:0;gap:6px;border-bottom:1px solid #f0f0f0}.vital-tabs{display:flex;gap:4px}.vital-tab{flex:1;padding:8px 4px;border:1.5px solid #e5e7eb;border-radius:10px;background:#fff;font-size:.78rem;font-weight:600;color:#888;cursor:pointer;text-align:center;-webkit-tap-highlight-color:transparent;transition:all .15s}.vital-tab--active{background:#6366f1;color:#fff;border-color:#6366f1}.vital-range-btns{display:flex;gap:4px}.vital-range-btn{font-size:.72rem;font-weight:700;padding:3px 10px;border-radius:20px;border:1.5px solid #e5e7eb;background:#fff;color:#888;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:all .15s}.vital-range-btn--active{background:#6366f1;color:#fff;border-color:#6366f1}.vital-content{flex:1;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:8px 8px 32px}.vital-loading{text-align:center;padding:40px 0;color:#888;font-size:.88rem}.vital-empty{text-align:center;padding:40px 0;color:#888}.vital-empty p{margin:8px 0 0;font-size:.85rem}.di-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;z-index:1000;display:flex;align-items:flex-end;justify-content:center}.di-modal{background:#fff;border-radius:24px 24px 0 0;width:100%;max-width:480px;max-height:88dvh;display:flex;flex-direction:column;overflow:hidden}.di-handle{width:40px;height:4px;background:#ddd;border-radius:2px;margin:10px auto 0;flex-shrink:0}.di-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px 10px;flex-shrink:0}.di-header-title{font-size:1rem;font-weight:700;color:#222}.di-message{margin:0 16px 4px;padding:10px 14px;border-radius:10px;font-size:.82rem;font-weight:600;flex-shrink:0}.di-message--ok{background:#f0fdf4;color:#166534}.di-message--err{background:#fef2f2;color:#dc2626}.di-intro{padding:4px 16px 12px;font-size:.8rem;color:#888;line-height:1.5;flex-shrink:0}.di-list{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:4px 16px 32px;display:flex;flex-direction:column;gap:12px}.di-card{border:1.5px solid #e5e7eb;border-radius:16px;padding:14px;background:#fff;transition:border-color .15s}.di-card--connected{border-color:#bbf7d0;background:#f0fdf4}.di-card-header{display:flex;align-items:flex-start;gap:12px;margin-bottom:10px}.di-card-icon{width:44px;height:44px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:1.4rem;flex-shrink:0}.di-card-info{flex:1;min-width:0}.di-card-name{font-size:.95rem;font-weight:700;color:#222;margin-bottom:2px}.di-card-desc{font-size:.75rem;color:#888;line-height:1.4}.di-status-badge{font-size:.68rem;font-weight:700;border-radius:10px;padding:3px 9px;flex-shrink:0}.di-status-badge--on{background:#dcfce7;color:#166534}.di-status-badge--off{background:#f3f4f6;color:#9ca3af}.di-card-detail{border-top:1px solid #e5e7eb;padding-top:10px;margin-bottom:10px;display:flex;flex-direction:column;gap:4px}.di-detail-row{display:flex;gap:8px;font-size:.78rem}.di-detail-label{color:#aaa;flex:0 0 56px;flex-shrink:0}.di-card-actions{display:flex;gap:8px}.di-connect-btn{flex:1;padding:10px;border:none;border-radius:10px;color:#fff;font-size:.88rem;font-weight:700;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:opacity .15s}.di-connect-btn:disabled{opacity:.5}.di-sync-btn{flex:1;padding:9px;background:#fff;border:1.5px solid;border-radius:10px;font-size:.82rem;font-weight:700;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:opacity .15s}.di-sync-btn:disabled{opacity:.5}.di-disconnect-btn{flex:0 0 auto;padding:9px 14px;background:#fff;border:1.5px solid #e5e7eb;border-radius:10px;font-size:.78rem;color:#888;cursor:pointer;-webkit-tap-highlight-color:transparent}.di-disconnect-btn:disabled{opacity:.5}.di-enterprise-form{border-top:1px solid #e5e7eb;padding-top:12px;margin-bottom:10px;display:flex;flex-direction:column;gap:10px}.di-form-field{display:flex;flex-direction:column;gap:4px}.di-form-label{font-size:.75rem;font-weight:600;color:#666}.di-form-input{padding:10px 12px;border:1.5px solid #e5e7eb;border-radius:10px;font-size:.88rem;outline:none;transition:border-color .15s}.di-form-input:focus{border-color:#6366f1}.cql-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;z-index:1000;display:flex;align-items:flex-end;justify-content:center}.cql-modal{background:#fff;border-radius:24px 24px 0 0;width:100%;max-width:540px;max-height:92dvh;display:flex;flex-direction:column;overflow:hidden}.cql-handle{width:40px;height:4px;background:#ddd;border-radius:2px;margin:10px auto 0;flex-shrink:0}.cql-header{padding:12px 16px;border-bottom:1px solid #f0f0f0;flex-shrink:0}.cql-header-top{display:flex;align-items:center;justify-content:space-between}.cql-title{font-size:1rem;font-weight:700;color:#222;margin:0}.cql-close{background:none;border:none;font-size:1.1rem;color:#999;cursor:pointer;padding:4px 8px;-webkit-tap-highlight-color:transparent}.cql-subtitle{font-size:.75rem;color:#888;margin:4px 0 0}.cql-cats{display:flex;gap:4px;margin-top:10px;overflow-x:auto;-webkit-overflow-scrolling:touch}.cql-cats::-webkit-scrollbar{display:none}.cql-cat{padding:5px 12px;font-size:.72rem;font-weight:400;border-radius:16px;border:none;background:#f3f4f6;color:#666;cursor:pointer;white-space:nowrap;flex-shrink:0;-webkit-tap-highlight-color:transparent;transition:all .15s}.cql-cat--active{font-weight:600;background:#3b82f6;color:#fff}.cql-list{flex:1;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:12px 16px 32px;display:flex;flex-direction:column;gap:8px}.cql-card{background:#fff;border:1.5px solid #e5e7eb;border-radius:14px;padding:14px 16px;cursor:pointer;text-align:left;-webkit-tap-highlight-color:transparent;transition:border-color .15s}.cql-card:hover{border-color:#3b82f6}.cql-card-inner{display:flex;align-items:flex-start;gap:12px}.cql-card-icon{font-size:1.6rem;flex-shrink:0;line-height:1}.cql-card-body{flex:1;min-width:0}.cql-card-name{font-size:.88rem;font-weight:700;color:#222;margin:0;line-height:1.3}.cql-card-desc{font-size:.75rem;color:#666;margin:4px 0 0;line-height:1.4}.cql-card-meta{display:flex;gap:8px;margin-top:6px;align-items:center}.cql-card-badge{font-size:.68rem;font-weight:600;color:#3b82f6;background:#eff6ff;padding:2px 8px;border-radius:10px}.cql-card-count{font-size:.72rem;color:#888}.cql-card-arrow{font-size:1rem;color:#ccc;flex-shrink:0;align-self:center}.cql-empty{text-align:center;padding:40px 0;color:#bbb;font-size:.85rem}.cql-error{text-align:center;padding:40px 0;color:#e74c3c;font-size:.85rem}.zone-share-icons{display:flex;gap:8px;align-items:center;justify-content:flex-start;margin-top:8px}.share-icon-button{width:36px;height:36px;padding:0;border:none;border-radius:50%;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center;color:#fff;flex-shrink:0}.share-icon-button:hover{transform:translateY(-2px) scale(1.1);box-shadow:0 4px 8px #0003}.share-icon-button:active{transform:translateY(0) scale(1)}.share-icon-button.x-twitter{background:#000}.share-icon-button.x-twitter:hover{background:#1a1a1a}.share-icon-button.facebook{background:#1877f2}.share-icon-button.facebook:hover{background:#0e63d1}.share-icon-button.line{background:#06c755}.share-icon-button.line:hover{background:#05a847}.share-icon-button.copy{background:#667eea}.share-icon-button.copy:hover{background:#764ba2}.share-icon-button.copy.copied{background:#10b981}@media(max-width:768px){.zone-share-icons{gap:6px}.share-icon-button{width:32px;height:32px}.share-icon-button svg{width:16px;height:16px}}.zone-like-button-container{position:relative;display:inline-block}.zone-like-button{display:flex;align-items:center;gap:8px;padding:10px 20px;background:#fff;border:2px solid #e5e7eb;border-radius:24px;font-size:16px;font-weight:600;color:#6b7280;cursor:pointer;transition:all .3s ease;box-shadow:0 2px 4px #0000000d}.zone-like-button:hover{border-color:#ef4444;color:#ef4444;transform:scale(1.05);box-shadow:0 4px 12px #ef444433}.zone-like-button.liked{background:linear-gradient(135deg,#ef4444,#dc2626);border-color:#dc2626;color:#fff}.zone-like-button.liked:hover{background:linear-gradient(135deg,#dc2626,#b91c1c);transform:scale(1.05)}.zone-like-button.animating{animation:pulse .6s ease}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.15)}}.like-icon{width:24px;height:24px;transition:all .3s ease}.zone-like-button:hover .like-icon{transform:scale(1.1)}.zone-like-button.liked .like-icon{stroke:none}.like-count{font-size:16px;font-weight:600;min-width:24px;text-align:center}.like-animation{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);pointer-events:none}.floating-heart{position:absolute;width:20px;height:20px;color:#ef4444;opacity:0;animation:float-up 1.5s ease-out forwards}.floating-heart.heart-0{left:-30px;animation-delay:0s}.floating-heart.heart-1{left:-15px;animation-delay:.1s}.floating-heart.heart-2{left:0;animation-delay:.2s}.floating-heart.heart-3{left:15px;animation-delay:.3s}.floating-heart.heart-4{left:30px;animation-delay:.4s}.floating-heart.heart-5{left:45px;animation-delay:.5s}@keyframes float-up{0%{opacity:1;transform:translateY(0) scale(.5)}50%{opacity:.8;transform:translateY(-30px) scale(1)}to{opacity:0;transform:translateY(-60px) scale(.3)}}@media(max-width:768px){.zone-like-button{padding:8px 16px;font-size:14px}.like-icon{width:20px;height:20px}.like-count{font-size:14px;min-width:20px}.floating-heart{width:16px;height:16px}}.live-status-banner{display:flex;flex-direction:column;gap:12px;margin-bottom:16px;width:100%}.live-banner{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-radius:12px;background:linear-gradient(135deg,#fffffff2,#ffffffe6);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 4px 12px #00000014;transition:all .3s ease;cursor:pointer;text-decoration:none;color:inherit;border:1px solid rgba(0,0,0,.06)}.live-banner:hover{transform:translateY(-2px);box-shadow:0 6px 16px #0000001f}.live-banner.youtube-live{background:linear-gradient(135deg,red,#c00);color:#fff;border:none}.live-banner.youtube-live:hover{background:linear-gradient(135deg,#ff1a1a,#d90000)}.live-banner.minecraft-monitoring{background:linear-gradient(135deg,#4caf50,#388e3c);color:#fff;cursor:pointer;border:none}.banner-content{display:flex;align-items:center;gap:12px;flex:1}.live-indicator,.status-indicator{display:flex;align-items:center;gap:6px;padding:4px 10px;background:#fff3;border-radius:20px;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.live-dot,.status-dot{width:8px;height:8px;border-radius:50%;animation:pulse 2s ease-in-out infinite}.live-dot,.status-dot.online{background:#fff;box-shadow:0 0 8px #fffc}.status-dot.offline{background:#666;animation:none}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.6;transform:scale(1.1)}}.live-text,.status-text{font-size:11px;font-weight:700;letter-spacing:.5px}.banner-info{display:flex;flex-direction:column;gap:2px}.banner-title{font-size:12px;font-weight:700;line-height:1.3;white-space:nowrap}.banner-subtitle{font-size:12px;opacity:.9;line-height:1.3}.banner-action{display:flex;align-items:center;justify-content:center;width:36px;height:36px;background:#fff3;border-radius:50%;transition:all .3s ease}.live-banner:hover .banner-action{background:#ffffff4d;transform:scale(1.1)}.banner-stats{display:flex;gap:12px;align-items:center}.stat{display:flex;align-items:center;gap:6px;padding:6px 12px;background:#fff3;border-radius:20px;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);min-width:64px}.stat.player-stat{min-width:80px}.stat-icon{font-size:16px;line-height:1}.stat-value{font-size:14px;font-weight:700;min-width:32px;text-align:right;font-variant-numeric:tabular-nums}@media(max-width:768px){.live-status-banner{gap:10px;margin-bottom:12px}.live-banner{padding:10px 12px;border-radius:10px}.banner-title{font-size:11px}.banner-subtitle{font-size:10px}.banner-action{width:32px;height:32px}.banner-stats{gap:8px}.stat{padding:4px 8px;min-width:56px}.stat.player-stat{min-width:64px}.stat-icon{font-size:14px}.stat-value{font-size:12px;min-width:28px}}@media(prefers-color-scheme:dark){.live-banner{background:linear-gradient(135deg,#282828f2,#1e1e1ee6);border:1px solid rgba(255,255,255,.1)}}.dialog-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:10000;padding:20px;animation:fadeIn .2s ease-out}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.dialog-content{background:#fff;border-radius:16px;max-width:500px;width:100%;max-height:90vh;overflow-y:auto;box-shadow:0 20px 60px #0000004d;animation:slideUp .3s ease-out}@keyframes slideUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.dialog-header{display:flex;align-items:center;justify-content:space-between;padding:20px;border-bottom:1px solid #e0e0e0;background:linear-gradient(135deg,#4caf50,#388e3c);border-radius:16px 16px 0 0;color:#fff}.dialog-header h2{margin:0;font-size:20px;font-weight:700}.dialog-close{background:#fff3;border:none;width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:20px;color:#fff;transition:all .2s ease}.dialog-close:hover{background:#ffffff4d;transform:scale(1.1)}.dialog-body{padding:24px}.server-info-section{margin-bottom:24px}.server-info-section:last-child{margin-bottom:0}.server-info-section h3{margin:0 0 12px;font-size:16px;font-weight:600;color:#333}.server-address{display:flex;align-items:center;gap:8px;padding:12px;background:#f5f5f5;border-radius:8px;border:2px solid #e0e0e0}.server-address code{flex:1;font-family:Courier New,monospace;font-size:14px;color:#2196f3;font-weight:600;word-break:break-all}.copy-button{background:#4caf50;color:#fff;border:none;padding:6px 12px;border-radius:6px;font-size:12px;font-weight:600;cursor:pointer;transition:all .2s ease;white-space:nowrap}.copy-button:hover{background:#45a049;transform:scale(1.05)}.server-version,.server-capacity{margin:0;font-size:16px;font-weight:600;color:#4caf50;padding:12px;background:#e8f5e9;border-radius:8px;text-align:center}.server-info-section.important{background:#fff3e0;padding:16px;border-radius:12px;border:2px solid #ff9800}.server-info-section.important h3{color:#ff9800}.join-steps{margin:12px 0;padding-left:24px}.join-steps li{margin:8px 0;font-size:14px;line-height:1.6;color:#333}.notice{margin:12px 0 0;padding:12px;background:#fff;border-radius:8px;font-size:13px;font-weight:600;color:#d32f2f;text-align:center;border:2px solid #ffcdd2}.dialog-footer{padding:16px 24px;border-top:1px solid #e0e0e0;display:flex;justify-content:flex-end;gap:8px}.dialog-button{padding:10px 24px;border-radius:8px;font-size:14px;font-weight:600;border:none;cursor:pointer;transition:all .2s ease}.dialog-button.primary{background:#4caf50;color:#fff}.dialog-button.primary:hover{background:#45a049;transform:translateY(-1px);box-shadow:0 4px 12px #4caf504d}@media(max-width:768px){.dialog-content{max-width:95%;border-radius:12px}.dialog-header h2{font-size:18px}.dialog-body{padding:16px}.server-info-section{margin-bottom:16px}.server-info-section h3{font-size:14px}.server-address code{font-size:12px}.copy-button{font-size:11px;padding:4px 8px}.server-version,.server-capacity{font-size:14px;padding:10px}.join-steps li{font-size:13px}.notice{font-size:12px;padding:10px}}@media(prefers-color-scheme:dark){.dialog-content{background:#1e1e1e;color:#fff}.dialog-header{border-bottom-color:#333}.server-info-section h3{color:#fff}.server-address{background:#2a2a2a;border-color:#444}.server-version,.server-capacity{background:#1b5e20;color:#a5d6a7}.server-info-section.important{background:#3e2723;border-color:#ff9800}.join-steps li{color:#e0e0e0}.notice{background:#2a2a2a;border-color:#d32f2f}.dialog-footer{border-top-color:#333}}.header-bar{position:fixed;top:0;left:0;width:100%;padding-top:env(safe-area-inset-top,0px);height:calc(56px + env(safe-area-inset-top,0px));display:flex;justify-content:space-between;align-items:center;padding-left:8px;padding-right:8px;background:#f8f9fafa;box-shadow:0 2px 8px #00000014;border-bottom:1px solid rgba(0,0,0,.06);overflow:visible;z-index:1002}.header-button-group{display:flex;flex-direction:column;align-items:center;gap:2px}.header-button{width:40px;height:40px;border-radius:8px;border:1.5px solid rgba(102,126,234,.25);background:#667eea14;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center;font-size:18px;box-shadow:0 1px 3px #0000000d}.header-button:hover{background:#667eea26;border-color:#667eea66;transform:translateY(-2px);box-shadow:0 2px 6px #0000001a}.header-button:active{transform:translateY(0);box-shadow:0 1px 2px #00000014}.header-button.active{background:#4ecdc433;border-color:#4ecdc480;box-shadow:0 2px 4px #4ecdc433}.button-label{font-size:10px;color:#000;white-space:nowrap;font-weight:500}.header-bar>div:first-child{display:flex;flex-wrap:nowrap;gap:8px;overflow:hidden}@media(max-width:768px){.header-bar{min-height:calc(var(--mobile-header-height, 64px) + env(safe-area-inset-top,0px));height:auto;padding-top:calc(4px + env(safe-area-inset-top,0px));padding-bottom:4px;align-items:center}.header-left{padding-top:0}.header-right{display:none!important}}.header-left{display:flex;align-items:center;min-width:0}.header-right{display:flex;align-items:center}.user-status-panel{position:static;height:56px;display:flex;align-items:center;z-index:1003}.user-status-panel .login-button{margin:0}.realtime-voice-status{position:fixed;bottom:120px;right:30px;display:flex;flex-direction:column;align-items:flex-end;gap:12px;z-index:9999;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.status-indicator{display:flex;align-items:center;gap:8px;background:#fffffff2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding:12px 18px;border-radius:24px;box-shadow:0 4px 16px #00000026;animation:slideInFromRight .3s ease-out}.status-dot{width:10px;height:10px;border-radius:50%;transition:all .3s ease}.status-dot.connected{background:#10b981;box-shadow:0 0 8px #10b98199;animation:statusPulse 2s infinite}.status-dot.disconnected{background:#ef4444}.status-text{font-size:14px;font-weight:600;color:#000c;white-space:nowrap}.speaking-indicator{display:flex;align-items:center;gap:8px;background:#93c5fdf2;padding:10px 16px;border-radius:20px;font-size:13px;font-weight:600;color:#000000e6;box-shadow:0 4px 12px #3b82f64d;animation:slideInFromRight .3s ease-out}.pulse-animation{width:8px;height:8px;border-radius:50%;background:#3b82f6;animation:statusPulse 1s infinite}@keyframes statusPulse{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.2);opacity:.7}}@keyframes slideInFromRight{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}@media(max-width:768px){.realtime-voice-status{bottom:100px;right:20px}.status-indicator{padding:10px 14px}.status-text{font-size:12px}.speaking-indicator{font-size:12px;padding:8px 12px}}.weather-picker-dropdown{position:absolute;top:100%;right:0;margin-top:6px;background:#fffffff7;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-radius:12px;box-shadow:0 4px 20px #00000026;border:1px solid rgba(0,0,0,.08);padding:6px;z-index:1010;min-width:160px;animation:modalSlideIn .2s ease-out}.weather-picker-item{display:block;width:100%;padding:8px 12px;border:none;background:transparent;border-radius:8px;cursor:pointer;font-size:14px;text-align:left;white-space:nowrap;transition:background .15s ease;color:#333}.weather-picker-item:hover{background:#667eea1a}.weather-picker-item.selected{background:#4ecdc433;font-weight:600}.modal-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:2000;padding:20px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.modal-container{position:relative;background:#fff;border-radius:16px;box-shadow:0 8px 32px #0003;max-width:1200px;width:100%;max-height:90vh;overflow:auto;padding:24px;animation:modalSlideIn .3s ease-out}.modal-close-btn{position:absolute;top:16px;right:16px;width:32px;height:32px;border:none;background:#0000001a;color:#666;font-size:20px;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease;z-index:10}.modal-close-btn:hover{background:#0003;transform:scale(1.1)}@keyframes modalSlideIn{0%{opacity:0;transform:translateY(-20px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}@media(max-width:768px){.modal-overlay{padding:10px}.modal-container{padding:16px;max-height:95vh;border-radius:12px}.modal-close-btn{top:12px;right:12px;width:28px;height:28px;font-size:18px}}.navigator-bubble{position:fixed;bottom:100px;left:20px;right:20px;max-width:calc(100% - 40px);background:#fffffffa;border-radius:16px;padding:16px 20px;box-shadow:0 -4px 20px #00000026;font-size:.95rem;line-height:1.5;z-index:11000;border:2px solid rgba(102,126,234,.2);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);display:flex;align-items:flex-start;gap:12px}@media(max-width:768px){.navigator-bubble{bottom:auto;top:28%;left:10px;right:10px;box-shadow:0 4px 20px #00000026}.bubble-triangle{top:-10px;right:30px;left:auto}}.bubble-emotion-icon{font-size:1.5rem;flex-shrink:0;line-height:1;filter:drop-shadow(0 2px 4px rgba(0,0,0,.1))}.bubble-text{color:#333;word-break:break-word;flex:1}.bubble-triangle{position:absolute;top:-10px;left:30px;width:0;height:0;border-left:10px solid transparent;border-right:10px solid transparent;border-bottom:10px solid rgba(255,255,255,.98);filter:drop-shadow(0 -2px 2px rgba(0,0,0,.1))}@media(min-width:769px){.navigator-bubble{bottom:20px;left:auto;right:150px;max-width:500px}.bubble-triangle{left:auto;right:30px}}.character-bubble{position:fixed;bottom:42%;right:28%;max-width:320px;min-width:200px;opacity:0;transform:translateY(20px) scale(.8);transition:all .4s cubic-bezier(.34,1.56,.64,1);z-index:9999;pointer-events:none;filter:drop-shadow(0 8px 16px rgba(102,126,234,.3))}.character-bubble.visible{opacity:1;transform:translateY(0) scale(1)}.bubble-tail{position:absolute;bottom:-15px;right:60px;width:0;height:0;border-left:15px solid transparent;border-right:15px solid transparent;border-top:20px solid rgba(255,255,255,.98);filter:drop-shadow(0 2px 4px rgba(0,0,0,.1))}.bubble-content{background:linear-gradient(135deg,#fffffffa,#fffafffa);border:3px solid #f0e6ff;border-radius:24px;padding:16px 20px;box-shadow:0 4px 20px #667eea33,inset 0 1px #ffffffe6;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);position:relative;overflow:hidden}.bubble-content:before{content:"";position:absolute;top:-50%;left:-50%;width:200%;height:200%;background:radial-gradient(circle,rgba(255,255,255,.3) 0%,transparent 70%);animation:bubble-shine 3s ease-in-out infinite;pointer-events:none}@keyframes bubble-shine{0%,to{transform:translate(0);opacity:.3}50%{transform:translate(20px,20px);opacity:.6}}.bubble-header{display:flex;align-items:center;gap:6px;margin-bottom:8px;position:relative;z-index:1}.bubble-icon{font-size:18px;animation:bubble-bounce 1s ease-in-out infinite}.bubble-emotion-icon{font-size:20px;filter:drop-shadow(0 2px 4px rgba(0,0,0,.15))}@keyframes bubble-bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-3px)}}.bubble-name{font-size:13px;font-weight:700;color:#667eea;text-shadow:0 1px 2px rgba(255,255,255,.8)}.bubble-text{font-size:15px;line-height:1.6;color:#333;font-weight:500;position:relative;z-index:1;min-height:24px}.bubble-cursor{display:inline-block;margin-left:2px;color:#667eea;animation:cursor-blink 1s step-end infinite}@keyframes cursor-blink{0%,50%{opacity:1}51%,to{opacity:0}}.bubble-music-notes{position:absolute;top:10px;right:15px;display:flex;gap:5px;z-index:2}.note{font-size:16px;color:#764ba2;animation:note-float 2s ease-in-out infinite;opacity:.8}.note-1{animation-delay:0s}.note-2{animation-delay:.3s}.note-3{animation-delay:.6s}@keyframes note-float{0%,to{transform:translateY(0) rotate(0);opacity:.8}50%{transform:translateY(-10px) rotate(10deg);opacity:1}}.bubble-sparkles{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:10}.sparkle{position:absolute;font-size:14px;animation:sparkle-twinkle 2s ease-in-out infinite;opacity:0}.sparkle-1{top:10%;right:15%;animation-delay:0s}.sparkle-2{top:60%;right:5%;animation-delay:.7s}.sparkle-3{top:30%;left:10%;animation-delay:1.4s}@keyframes sparkle-twinkle{0%,to{opacity:0;transform:scale(.5) rotate(0)}50%{opacity:1;transform:scale(1.2) rotate(180deg)}}@media(max-width:768px){.character-bubble{bottom:15%;right:10px;left:auto;transform:translateY(20px) scale(.8);max-width:280px}.character-bubble.visible{transform:translateY(0) scale(1)}.bubble-tail{right:40px;left:auto}.bubble-content{padding:12px 16px}.bubble-text{font-size:14px}}@media(max-width:480px){.character-bubble{max-width:240px;bottom:12%;right:5px}.bubble-content{padding:10px 14px;border-radius:18px}.bubble-text{font-size:13px}.bubble-icon{font-size:16px}.bubble-name{font-size:12px}}@keyframes bubble-fade-out{0%{opacity:1;transform:translateY(0) scale(1)}to{opacity:0;transform:translateY(-20px) scale(.9)}}.bluemap-overlay{position:fixed;top:0;left:0;right:0;bottom:0;width:100vw;height:100dvh;min-height:100dvh;background:#0009;display:flex;justify-content:center;align-items:center;z-index:150000;pointer-events:auto}.bluemap-container{background:#fff;border-radius:14px;overflow:hidden;box-shadow:0 4px 24px #00000052;display:flex;flex-direction:column;position:relative;width:min(909px,95vw);height:min(700px,90dvh);z-index:10001;transition:box-shadow .2s;padding:0}.bluemap-header{display:flex;align-items:center;justify-content:space-between;background:#292929;color:#fff;padding:0 20px;height:48px;min-height:48px;font-size:1.1rem;font-weight:700;border-radius:14px 14px 0 0;box-sizing:border-box;position:relative;z-index:10}.bluemap-title{flex:1;text-align:left;font-size:1.1rem;padding-left:2px}.bluemap-close-btn{position:relative;right:-6px;top:0;background:none;border:none;color:#fff;font-size:2rem;font-weight:700;cursor:pointer;border-radius:50%;width:44px;height:44px;line-height:42px;display:flex;align-items:center;justify-content:center;transition:background .2s;z-index:20}.bluemap-close-btn:hover{background:#f4433624;color:#f44336}.bluemap-close-btn{touch-action:auto}.bluemap-iframe{display:block;width:100%;height:100%;border:none;border-radius:0 0 12px 12px;background:#eee}@media(max-width:1024px),(max-height:800px),(pointer:coarse){.bluemap-container{max-width:100vw!important;max-height:100dvh!important;width:99vw!important;height:97dvh!important;min-width:0;min-height:0;border-radius:8px;padding:0}.bluemap-header{font-size:1rem;padding:0 10px;height:44px;min-height:44px;border-radius:8px 8px 0 0}.bluemap-close-btn{width:38px;height:38px;font-size:1.6rem}}@supports (-webkit-touch-callout: none){@media(max-width:1024px)and (orientation:landscape){.bluemap-container{height:calc(100vh - 32px)!important;min-height:0!important;max-height:97vh!important;margin-top:8px;margin-bottom:8px}}}.mobile-bottom-menu{position:fixed;bottom:0;left:0;width:100%;height:calc(56px + env(safe-area-inset-bottom,0px));padding-bottom:env(safe-area-inset-bottom,0px);display:flex;background-color:#fff;border-top:1px solid #e5e7eb;z-index:12100;pointer-events:auto}.menu-button{flex:1;background:none;border:none;padding:6px 0 2px;display:flex;flex-direction:column;align-items:center;justify-content:center;font-family:Segoe UI,Meiryo,sans-serif;color:#888;transition:color .2s;cursor:pointer;-webkit-tap-highlight-color:transparent}.menu-button .menu-icon{font-size:1.3rem;line-height:1}.menu-button .menu-label{font-size:.65rem;margin-top:2px;font-weight:500}.mobile-bottom-menu .menu-button.active{color:#007acc;border-top:2px solid #007acc}.mobile-bottom-menu .menu-button.active .menu-icon,.mobile-bottom-menu .menu-button.active .menu-label{color:#007acc}@media(min-width:768px){.mobile-bottom-menu{display:none!important}}.meal-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:flex-end;justify-content:center;z-index:25000;animation:mealFadeIn .2s ease}@keyframes mealFadeIn{0%{opacity:0}to{opacity:1}}.meal-modal{background:#fff;border-radius:20px 20px 0 0;width:100%;max-width:480px;max-height:85vh;display:flex;flex-direction:column;animation:mealSlideUp .3s ease}@keyframes mealSlideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}@media(min-width:769px){.meal-modal-overlay{align-items:center}.meal-modal{border-radius:20px;max-height:70vh}}.meal-modal-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid #f0f0f0;flex-shrink:0}.meal-modal-header h3{margin:0;font-size:1.05rem;font-weight:700;color:#333}.meal-modal-close{background:none;border:none;font-size:1.2rem;color:#999;cursor:pointer;padding:4px 8px;border-radius:8px}.meal-modal-close:active{background:#f5f5f5}.meal-modal-body{flex:1;overflow-y:auto;padding:20px;-webkit-overflow-scrolling:touch}.meal-btn{border:none;border-radius:12px;padding:12px 20px;font-size:.95rem;font-weight:600;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:opacity .15s}.meal-btn:active{opacity:.7}.meal-btn-primary{background:linear-gradient(135deg,#22c55e,#16a34a);color:#fff}.meal-btn-secondary{background:#f3f4f6;color:#333}.meal-btn-back{background:none;color:#666;padding:8px 0;font-size:.85rem}.meal-step-capture{display:flex;flex-direction:column;align-items:center;gap:16px}.meal-capture-icon{font-size:3rem;margin-bottom:4px}.meal-capture-text{text-align:center;color:#666;font-size:.9rem;line-height:1.6;margin:0}.meal-capture-buttons{display:flex;gap:12px;width:100%}.meal-capture-buttons .meal-btn{flex:1;text-align:center}.meal-search-section{width:100%;margin-top:8px;padding-top:16px;border-top:1px solid #f0f0f0}.meal-search-label{font-size:.8rem;color:#888;margin:0 0 8px}.meal-search-row{display:flex;gap:8px}.meal-search-input{flex:1;border:1px solid #ddd;border-radius:10px;padding:10px 14px;font-size:.9rem;outline:none}.meal-search-input:focus{border-color:#22c55e}.meal-search-results{display:flex;flex-direction:column;gap:6px;margin-top:10px;max-height:200px;overflow-y:auto}.meal-step-analyzing{display:flex;flex-direction:column;align-items:center;gap:16px;padding:40px 0;color:#666}.meal-spinner{width:40px;height:40px;border:3px solid #e5e7eb;border-top-color:#22c55e;border-radius:50%;animation:mealSpin .8s linear infinite}@keyframes mealSpin{to{transform:rotate(360deg)}}.meal-step-select{display:flex;flex-direction:column;gap:12px}.meal-select-hint{font-size:.85rem;color:#888;margin:0}.meal-candidates{display:flex;flex-direction:column;gap:8px}.meal-candidate-card{display:flex;flex-direction:column;gap:4px;background:#f9fafb;border:1px solid #e5e7eb;border-radius:12px;padding:12px 14px;cursor:pointer;text-align:left;-webkit-tap-highlight-color:transparent;transition:border-color .15s,background .15s}.meal-candidate-card:active{background:#ecfdf5;border-color:#22c55e}.meal-candidate-main{display:flex;justify-content:space-between;align-items:center}.meal-candidate-name{font-weight:600;font-size:.95rem;color:#333}.meal-candidate-prob{font-size:.75rem;color:#22c55e;font-weight:600}.meal-candidate-cal{font-size:.8rem;color:#666;font-weight:600}.meal-candidate-nutrition{display:flex;gap:10px;font-size:.72rem;color:#888}.meal-step-confirm{display:flex;flex-direction:column;gap:16px}.meal-confirm-item{text-align:center;padding:16px;background:#f0fdf4;border-radius:14px}.meal-confirm-name{font-size:1.15rem;font-weight:700;color:#333}.meal-confirm-cal{font-size:1.5rem;font-weight:800;color:#22c55e;margin-top:4px}.meal-confirm-nutrition{display:flex;flex-direction:column;gap:6px;background:#f9fafb;border-radius:12px;padding:12px 14px}.meal-confirm-nutrition>div{display:flex;justify-content:space-between;font-size:.85rem;color:#555}.meal-type-selector{display:flex;flex-direction:column;gap:8px}.meal-type-label{font-size:.85rem;color:#888;margin:0;font-weight:600}.meal-type-buttons{display:flex;gap:8px}.meal-type-btn{flex:1;border:2px solid #e5e7eb;background:#fff;border-radius:10px;padding:10px 0;font-size:.85rem;font-weight:600;color:#666;cursor:pointer;transition:all .15s;-webkit-tap-highlight-color:transparent}.meal-type-btn.active{border-color:#22c55e;background:#f0fdf4;color:#16a34a}.meal-type-btn:active{transform:scale(.96)}.meal-confirm-actions{display:flex;justify-content:space-between;align-items:center;gap:12px}.meal-confirm-actions .meal-btn-primary{flex:1}.meal-error{color:#ef4444;font-size:.85rem;text-align:center;margin:0;padding:8px 12px;background:#fef2f2;border-radius:8px}.meal-step-done{display:flex;flex-direction:column;align-items:center;gap:16px;padding:20px 0}.meal-done-icon{font-size:3rem}.meal-done-text{text-align:center;font-size:.95rem;color:#333;line-height:1.6;margin:0}.meal-done-actions{display:flex;gap:12px;width:100%}.meal-done-actions .meal-btn{flex:1;text-align:center}.pet-sprite{position:absolute;display:flex;flex-direction:column;align-items:center;cursor:grab;transition:left 2s ease-in-out,top 2s ease-in-out;transform-origin:bottom center;z-index:10;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;touch-action:none}.pet-sprite__emoji--dark{filter:brightness(.3) saturate(.5) drop-shadow(0 2px 4px rgba(0,0,0,.3))}.pet-sprite--dragging{transition:none!important;cursor:grabbing;z-index:100;filter:drop-shadow(0 4px 12px rgba(0,0,0,.25))}.pet-sprite__emoji{font-size:10rem;line-height:1;filter:drop-shadow(0 2px 4px rgba(0,0,0,.15))}.pet-sprite__name{font-size:.6rem;color:#555;background:#ffffffd9;border-radius:8px;padding:1px 6px;margin-top:2px;white-space:nowrap;font-weight:600;opacity:0;transition:opacity .2s}.pet-sprite__live2d{width:600px;height:600px;pointer-events:auto}.pet-sprite__live2d canvas{display:block}.pet-sprite:hover .pet-sprite__name{opacity:1}.pet-sprite__particle{position:absolute;top:-8px;right:-4px;font-size:.8rem;animation:pet-particle-float 2s ease-in-out infinite;pointer-events:none}.pet-mood--happy .pet-sprite__emoji{filter:drop-shadow(0 0 8px rgba(251,191,36,.5))}.pet-mood--sleepy .pet-sprite__emoji{opacity:.7}.pet-mood--alert .pet-sprite__emoji{filter:drop-shadow(0 0 6px rgba(239,68,68,.3))}.pet-mood--hungry .pet-sprite__emoji{filter:drop-shadow(0 0 6px rgba(249,115,22,.3))}.pet-anim--idle .pet-sprite__emoji{animation:pet-idle 3s ease-in-out infinite}.pet-anim--walk .pet-sprite__emoji{animation:pet-walk .6s ease-in-out infinite}.pet-anim--sit .pet-sprite__emoji{animation:pet-sit 4s ease-in-out infinite}.pet-anim--sleep .pet-sprite__emoji{animation:pet-sleep 3s ease-in-out infinite}.pet-anim--eat .pet-sprite__emoji{animation:pet-eat 1s ease-in-out infinite}.pet-anim--play .pet-sprite__emoji{animation:pet-play .5s ease-in-out infinite}.pet-anim--nuzzle .pet-sprite__emoji{animation:pet-nuzzle 1.5s ease-in-out infinite}.pet-anim--jump .pet-sprite__emoji{animation:pet-jump .8s ease-in-out infinite}.pet-anim--swim .pet-sprite__emoji{animation:pet-swim 2s ease-in-out infinite}.pet-anim--fly .pet-sprite__emoji{animation:pet-fly 1.2s ease-in-out infinite}.pet-anim--sing .pet-sprite__emoji{animation:pet-sing .8s ease-in-out infinite}@keyframes pet-idle{0%,to{transform:translateY(0)}50%{transform:translateY(-3px)}}@keyframes pet-walk{0%,to{transform:translate(0) rotate(0)}25%{transform:translate(3px) rotate(5deg)}75%{transform:translate(-3px) rotate(-5deg)}}@keyframes pet-sit{0%,to{transform:scale(1)}50%{transform:scale(1.03)}}@keyframes pet-sleep{0%,to{transform:scale(1) rotate(0);opacity:.7}50%{transform:scale(.95) rotate(3deg);opacity:.6}}@keyframes pet-eat{0%,to{transform:translateY(0)}30%{transform:translateY(4px)}60%{transform:translateY(0)}}@keyframes pet-play{0%,to{transform:rotate(0) scale(1)}25%{transform:rotate(10deg) scale(1.1)}50%{transform:rotate(-10deg) scale(1)}75%{transform:rotate(5deg) scale(1.05)}}@keyframes pet-nuzzle{0%,to{transform:translate(0)}25%{transform:translate(5px) rotate(5deg)}75%{transform:translate(-5px) rotate(-5deg)}}@keyframes pet-jump{0%,to{transform:translateY(0) scale(1)}40%{transform:translateY(-16px) scale(1.1)}60%{transform:translateY(-12px) scale(1.05)}}@keyframes pet-swim{0%,to{transform:translate(0) translateY(0)}25%{transform:translate(6px) translateY(-2px)}50%{transform:translate(0) translateY(2px)}75%{transform:translate(-6px) translateY(-2px)}}@keyframes pet-fly{0%,to{transform:translateY(0) scale(1)}50%{transform:translateY(-12px) scale(1.05)}}@keyframes pet-sing{0%,to{transform:scale(1) rotate(0)}20%{transform:scale(1.1) rotate(-3deg)}40%{transform:scale(1.05) rotate(3deg)}60%{transform:scale(1.1) rotate(-2deg)}80%{transform:scale(1) rotate(2deg)}}@keyframes pet-particle-float{0%,to{transform:translateY(0) scale(1);opacity:1}50%{transform:translateY(-8px) scale(1.2);opacity:.6}}.pet-gadget-layer{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:8;overflow:hidden}.pet-gadget-layer .pet-sprite,.pet-gadget-layer .pet-layer__settings-btn,.pet-gadget-layer .pet-gadget{pointer-events:auto}.pet-layer__settings-btn{position:fixed;bottom:160px;right:16px;width:44px;height:44px;border-radius:50%;border:none;background:#ffffffeb;box-shadow:0 2px 10px #0000002e;font-size:1.3rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:transform .2s,box-shadow .2s;z-index:10000;pointer-events:auto}.pet-layer__settings-btn:hover{transform:scale(1.15);box-shadow:0 3px 12px #0000002e}.pet-gadget{position:absolute;transform-origin:bottom center;transition:left 1s ease,top 1s ease}.gadget-aquarium{width:80px;height:50px;background:linear-gradient(180deg,#93c5fd4d,#3b82f640);border:2px solid rgba(59,130,246,.35);border-radius:4px 4px 8px 8px;position:relative;overflow:hidden}.gadget-aquarium:after{content:"";position:absolute;bottom:0;left:0;right:0;height:6px;background:linear-gradient(90deg,#d4a574,#c4956a,#d4a574);border-radius:0 0 6px 6px}.gadget-birdcage{width:50px;height:65px;border:2px solid rgba(180,160,120,.5);border-radius:25px 25px 4px 4px;position:relative;background:repeating-linear-gradient(90deg,transparent,transparent 6px,rgba(180,160,120,.3) 6px,rgba(180,160,120,.3) 7px)}.gadget-birdcage:after{content:"🪝";position:absolute;top:-14px;left:50%;transform:translate(-50%);font-size:.8rem}.gadget-cushion{width:60px;height:25px;background:linear-gradient(180deg,#fbbf24,#f59e0b);border-radius:50%;opacity:.7;box-shadow:0 2px 6px #0000001a}.gadget-doghouse{width:55px;height:45px;background:linear-gradient(180deg,#92400e,#b45309 40%,#d97706);border-radius:4px;position:relative;clip-path:polygon(50% 0%,100% 35%,100% 100%,0% 100%,0% 35%)}.gadget-doghouse:after{content:"";position:absolute;bottom:0;left:50%;transform:translate(-50%);width:20px;height:22px;background:#451a03;border-radius:10px 10px 0 0}.pet-settings-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;z-index:10001;display:flex;align-items:flex-end;justify-content:center}.pet-settings-modal{background:#fff;border-radius:20px 20px 0 0;width:100%;max-width:480px;max-height:80vh;overflow-y:auto;padding:20px;animation:pet-settings-slide-up .3s ease-out}@keyframes pet-settings-slide-up{0%{transform:translateY(100%)}to{transform:translateY(0)}}.pet-settings__header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.pet-settings__header h2{font-size:1.1rem;font-weight:700;margin:0}.pet-settings__close{width:32px;height:32px;border:none;background:#f3f4f6;border-radius:50%;font-size:1.2rem;cursor:pointer;display:flex;align-items:center;justify-content:center;color:#666}.pet-settings__section{margin-bottom:20px}.pet-settings__section h3{font-size:.85rem;font-weight:600;color:#666;margin:0 0 10px}.pet-settings__placed-list{display:flex;flex-direction:column;gap:6px}.pet-settings__placed-item{display:flex;align-items:center;gap:8px;padding:8px 12px;background:#f9fafb;border-radius:10px}.placed-item__icon{font-size:1.3rem}.placed-item__name{font-weight:600;font-size:.85rem;flex:1}.placed-item__mood{font-size:.7rem;color:#888;background:#e5e7eb;padding:2px 8px;border-radius:8px}.placed-item__remove{width:24px;height:24px;border:none;background:#fee2e2;color:#dc2626;border-radius:50%;cursor:pointer;font-size:.9rem;display:flex;align-items:center;justify-content:center}.pet-settings__species-tabs{display:flex;gap:8px;margin-bottom:12px}.species-tab{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;padding:10px 4px;border:2px solid #e5e7eb;border-radius:12px;background:#fff;cursor:pointer;font-size:.75rem;font-weight:600;color:#666;transition:all .2s}.species-tab span:first-child{font-size:1.4rem}.species-tab--active{border-color:#6366f1;background:#eef2ff;color:#4338ca}.pet-settings__name-input{width:100%;padding:10px 14px;border:1.5px solid #e5e7eb;border-radius:10px;font-size:.85rem;margin-bottom:12px;outline:none;box-sizing:border-box}.pet-settings__name-input:focus{border-color:#6366f1}.pet-settings__variant-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.variant-card{display:flex;flex-direction:column;align-items:center;gap:4px;padding:14px 8px;border:2px solid #e5e7eb;border-radius:14px;background:#fff;cursor:pointer;transition:all .2s}.variant-card:hover{transform:scale(1.05);box-shadow:0 4px 12px #0000001a}.variant-card:active{transform:scale(.97)}.variant-card__icon{font-size:1.8rem}.variant-card__name{font-size:.75rem;font-weight:600;color:#555}.mobile-home-tab{display:flex;flex-direction:column;height:100%;overflow:hidden}.mht-character-space{flex:0 0 30%;min-height:120px;max-height:240px;pointer-events:none;position:relative}.mht-content{flex:1;min-height:0;display:flex;flex-direction:column;gap:12px;padding:12px 12px 24px;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;background:linear-gradient(to bottom,#fff0,#ffffffb3 16px,#ffffffd9);border-radius:20px 20px 0 0}.mht-bubble{background:#ffffffeb;border-radius:16px;padding:14px 16px;box-shadow:0 2px 8px #00000014}.mht-bubble-content{display:flex;align-items:flex-start;gap:8px}.mht-bubble-icon{font-size:1.2rem;flex-shrink:0;margin-top:1px}.mht-bubble-text{margin:0;font-size:.9rem;line-height:1.5;color:#333}.mht-weather-bar{display:flex;justify-content:space-between;align-items:center;background:#ffffffeb;border-radius:12px;padding:10px 14px;font-size:.8rem;color:#555;box-shadow:0 1px 4px #0000000d}.mht-weather-detail{font-size:.7rem;color:#888}.mht-cards{display:flex;gap:10px;overflow-x:auto;padding:2px 0;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch}.mht-cards::-webkit-scrollbar{display:none}.mht-card{flex:0 0 auto;width:100px;background:#ffffffeb;border-radius:14px;padding:12px 10px;text-align:center;box-shadow:0 2px 6px #0000000f;border-top:3px solid #94a3b8;scroll-snap-align:start}.mht-card--empty{width:100%;border-top-color:#94a3b8}.mht-card-icon{font-size:1.4rem;margin-bottom:4px}.mht-card-label{font-size:.7rem;color:#888;font-weight:600}.mht-card-value{font-size:1.1rem;font-weight:700;margin:2px 0}.mht-card-sub{font-size:.65rem;color:#999}.mht-card--tappable{cursor:pointer;-webkit-tap-highlight-color:transparent}.mht-card--tappable:active{transform:scale(.95);opacity:.8}.mht-land-banner{display:flex;align-items:center;gap:8px;background:#ffffffeb;border:none;border-radius:14px;padding:14px 16px;font-size:.9rem;color:#333;box-shadow:0 2px 6px #0000000f;cursor:pointer;-webkit-tap-highlight-color:transparent;width:100%;text-align:left}.mht-land-text{flex:1;font-weight:500}.mht-land-arrow{color:#007acc;font-weight:600}.mht-action-banner{display:flex;align-items:center;gap:8px;border:none;border-radius:14px;padding:14px 16px;font-size:.85rem;color:#fff;box-shadow:0 2px 6px #0000001a;cursor:pointer;-webkit-tap-highlight-color:transparent;width:100%;text-align:left}.mht-action-training{background:linear-gradient(135deg,#6366f1,#8b5cf6)}.mht-phr-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.mht-phr-btn{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;border:none;border-radius:16px;padding:14px 4px;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:transform .12s,opacity .12s}.mht-phr-btn:active{transform:scale(.93);opacity:.8}.mht-phr-btn--assessment{background:linear-gradient(135deg,#ede9fe,#ddd6fe)}.mht-phr-btn--medicine{background:linear-gradient(135deg,#fff7ed,#fed7aa)}.mht-phr-btn--examination{background:linear-gradient(135deg,#ecfdf5,#bbf7d0)}.mht-phr-btn--calendar{background:linear-gradient(135deg,#eff6ff,#bfdbfe)}.mht-phr-btn--meal{background:linear-gradient(135deg,#fff9f0,#fde68a)}.mht-phr-btn--swallowing{background:linear-gradient(135deg,#f0fff4,#bbf7d0)}.mht-phr-btn--training{background:linear-gradient(135deg,#f0f4ff,#c7d2fe)}.mht-phr-btn--integration{background:linear-gradient(135deg,#f5f3ff,#ddd6fe)}.mht-phr-icon{font-size:1.5rem;line-height:1}.mht-phr-label{font-size:.65rem;font-weight:700;color:#444;text-align:center;line-height:1.2}.mht-timeline-card{background:#ffffffeb;border-radius:16px;padding:14px 16px;box-shadow:0 2px 8px #0000000f;display:flex;flex-direction:column;gap:10px}.mht-timeline-header{display:flex;align-items:center;justify-content:space-between}.mht-timeline-title{font-size:.88rem;font-weight:700;color:#222}.mht-timeline-more{background:none;border:none;font-size:.75rem;color:#007acc;font-weight:600;cursor:pointer;padding:0;-webkit-tap-highlight-color:transparent}.mht-timeline-events{display:flex;flex-direction:column;gap:6px}.mht-tl-event{display:flex;align-items:center;gap:8px}.mht-tl-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0}.mht-tl-time{font-size:.72rem;color:#aaa;width:36px;flex-shrink:0}.mht-tl-title{font-size:.82rem;color:#333;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mht-timeline-empty-row{font-size:.78rem;color:#bbb;text-align:center;padding:4px 0}.mht-diary-trigger{background:none;border:1.5px dashed #ddd;border-radius:10px;padding:8px 12px;font-size:.8rem;color:#888;cursor:pointer;width:100%;text-align:left;-webkit-tap-highlight-color:transparent}.mht-line-banner{display:flex;align-items:center;gap:10px;background:#ffffffeb;border-radius:14px;padding:12px 14px;box-shadow:0 2px 6px #0000000f}.mht-line-icon{font-size:1.5rem;flex-shrink:0}.mht-line-body{flex:1;min-width:0}.mht-line-title{font-size:.85rem;font-weight:600;color:#333}.mht-line-desc{font-size:.7rem;color:#888;margin-top:1px}.mht-line-btn{flex-shrink:0;background:#06c755;color:#fff;border:none;border-radius:20px;padding:6px 16px;font-size:.8rem;font-weight:600;text-decoration:none;cursor:pointer}.mobile-consult-tab{display:flex;flex-direction:column;height:100%;overflow:hidden;pointer-events:auto}.mct-character-space{flex:0 0 30%;min-height:120px;pointer-events:none}.mct-body{flex:1;display:flex;flex-direction:column;overflow:hidden;background:linear-gradient(to bottom,#fff0,#ffffffd9 20px,#fffffff2);border-radius:20px 20px 0 0}.mct-messages{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:12px;display:flex;flex-direction:column;gap:10px}.mct-welcome{display:flex;flex-direction:column;align-items:center;gap:16px;padding:24px 12px}.mct-welcome-text{font-size:1.1rem;font-weight:600;color:#555}.mct-quick-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;width:100%}.mct-quick-btn{display:flex;align-items:center;gap:8px;background:#ffffffeb;border:1px solid #e5e7eb;border-radius:12px;padding:12px 14px;font-size:.85rem;color:#333;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:background .15s,transform .1s}.mct-quick-btn:active{transform:scale(.97);background:#f0f4ff}.mct-quick-icon{font-size:1.2rem}.mct-msg{display:flex;align-items:flex-end;gap:6px}.mct-msg--user{flex-direction:row-reverse}.mct-msg-avatar{font-size:1.3rem;flex-shrink:0;margin-bottom:2px}.mct-msg-bubble{max-width:78%;padding:10px 14px;border-radius:16px;font-size:.88rem;line-height:1.5;word-break:break-word;white-space:pre-wrap}.mct-msg-bubble--ai{background:#fffffff2;color:#333;border-bottom-left-radius:4px}.mct-msg-bubble--user{background:#007acc;color:#fff;border-bottom-right-radius:4px}.mct-thinking{color:#999;animation:mct-pulse 1.2s ease-in-out infinite}@keyframes mct-pulse{0%,to{opacity:1}50%{opacity:.5}}.mct-input-area{display:flex;gap:8px;padding:10px 12px;background:#fffffff2;border-top:1px solid #e5e7eb}.mct-input{flex:1;border:1px solid #e0e0e0;border-radius:24px;padding:10px 16px;font-size:.9rem;outline:none;background:#f8f9fa;transition:border-color .2s}.mct-input:focus{border-color:#007acc;background:#fff}.mct-send-btn{width:42px;height:42px;border:none;border-radius:50%;background:#007acc;color:#fff;font-size:1.1rem;cursor:pointer;display:flex;align-items:center;justify-content:center;-webkit-tap-highlight-color:transparent;flex-shrink:0}.mct-send-btn:disabled{background:#ccc;cursor:default}.mct-followup{display:flex;flex-direction:column;align-items:center;gap:10px;padding:16px 4px 8px;margin-top:4px;border-top:1px dashed #e0e0e0}.mct-followup-text{font-size:.85rem;color:#888}.mobile-land-tab{display:flex;flex-direction:column;gap:12px;padding:12px;height:100%;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;background:#fff}.mlt-map-card{background:#fff;border-radius:16px;overflow:hidden;box-shadow:0 2px 8px #00000014}.mlt-map-preview{width:100%;height:240px;background:#e2e8f0;cursor:pointer;position:relative;overflow:hidden}.mlt-map-iframe{width:100%;height:100%;border:none;pointer-events:none}.mlt-map-overlay{position:absolute;bottom:0;left:0;right:0;padding:10px;background:linear-gradient(transparent,#00000080);color:#fff;font-size:.85rem;text-align:center;font-weight:500}.mlt-map-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;gap:8px;color:#666;font-size:.9rem}.mlt-map-placeholder span:first-child{font-size:2rem}.mlt-map-info{display:flex;align-items:center;justify-content:space-between;padding:12px 16px}.mlt-map-info-left{display:flex;flex-direction:column;gap:2px}.mlt-map-label{font-size:.95rem;font-weight:600;color:#333}.mlt-map-coords{font-size:.75rem;color:#888}.mlt-map-open-btn{background:none;border:none;color:#007acc;font-size:.85rem;font-weight:500;cursor:pointer;-webkit-tap-highlight-color:transparent}.mlt-training-banner{display:flex;align-items:center;justify-content:space-between;background:linear-gradient(135deg,#6366f1,#8b5cf6);border:none;border-radius:14px;padding:14px 16px;color:#fff;cursor:pointer;-webkit-tap-highlight-color:transparent;width:100%}.mlt-training-left{display:flex;align-items:center;gap:10px}.mlt-training-icon{font-size:1.4rem}.mlt-training-title{font-size:.9rem;font-weight:600;text-align:left}.mlt-training-desc{font-size:.75rem;opacity:.85;text-align:left}.mlt-training-arrow{font-size:1.1rem;font-weight:600}.mlt-reward-card{background:#fff;border-radius:16px;padding:14px 16px;box-shadow:0 2px 8px #00000014}.mlt-reward-summary{display:flex;gap:12px;margin:10px 0}.mlt-reward-stat{flex:1;display:flex;flex-direction:column;align-items:center;background:#f8f9fa;border-radius:12px;padding:10px}.mlt-reward-stat-value{font-size:1.2rem;font-weight:700;color:#333}.mlt-reward-stat-label{font-size:.7rem;color:#888;margin-top:2px}.mlt-reward-list{display:flex;flex-direction:column;gap:8px;margin-top:8px}.mlt-reward-item{display:flex;align-items:center;justify-content:space-between;padding:8px 10px;background:#fafafa;border-radius:10px}.mlt-reward-item-left{display:flex;align-items:center;gap:10px;flex:1;min-width:0}.mlt-reward-item-img{width:32px;height:32px;border-radius:6px;background:#eee;flex-shrink:0}.mlt-reward-item-name{font-size:.85rem;font-weight:600;color:#333}.mlt-reward-item-desc{font-size:.7rem;color:#999;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mlt-reward-item-step{font-size:.8rem;font-weight:600;color:#007acc;white-space:nowrap;margin-left:8px}.mlt-section-header{font-size:.95rem;font-weight:600;color:#333;padding:4px 0}.mlt-community-hint{font-size:.8rem;color:#888}.mlt-community-btn{background:#f8f9fa;border:1px solid #e5e7eb;border-radius:12px;padding:12px;font-size:.85rem;color:#007acc;font-weight:500;cursor:pointer;-webkit-tap-highlight-color:transparent;width:100%}.mobile-mypage{display:flex;flex-direction:column;gap:16px;padding:12px 12px 24px;height:100%;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;background:#fff}.mmp-profile-card{display:flex;align-items:center;gap:14px;background:#ffffffeb;border-radius:16px;padding:16px;box-shadow:0 2px 8px #00000014}.mmp-avatar{width:48px;height:48px;border-radius:50%;background:#e2e8f0;display:flex;align-items:center;justify-content:center;font-size:1.5rem;flex-shrink:0}.mmp-profile-info{flex:1;min-width:0}.mmp-nickname{font-size:1rem;font-weight:600;color:#333}.mmp-edit-profile-btn{background:none;border:none;color:#007acc;font-size:.8rem;padding:0;margin-top:2px;cursor:pointer}.mmp-section{display:flex;flex-direction:column;gap:6px}.mmp-section-title{font-size:.75rem;font-weight:600;color:#888;text-transform:uppercase;letter-spacing:.05em;padding-left:4px}.mmp-menu-list{background:#ffffffeb;border-radius:14px;overflow:hidden;box-shadow:0 2px 6px #0000000f}.mmp-menu-item{display:flex;align-items:center;gap:10px;width:100%;padding:14px 16px;background:none;border:none;border-bottom:1px solid #f0f0f0;font-size:.9rem;color:#333;cursor:pointer;-webkit-tap-highlight-color:transparent;text-align:left;text-decoration:none;box-sizing:border-box;font-family:inherit}.mmp-menu-item:last-child{border-bottom:none}.mmp-menu-icon{font-size:1.1rem;flex-shrink:0;width:24px;text-align:center}.mmp-menu-label{flex:1;min-width:0}.mmp-menu-arrow{color:#ccc;font-size:1.2rem;font-weight:300;flex-shrink:0}.mmp-toggle{font-size:.75rem;font-weight:600;padding:3px 10px;border-radius:12px;background:#e5e7eb;color:#888;flex-shrink:0}.mmp-toggle--on{background:#007acc;color:#fff}.mmp-line-status{font-size:.8rem;font-weight:500;flex-shrink:0}.mmp-line-linked{color:#06c755}.mmp-line-unlinked{color:#06c755;text-decoration:none}.mmp-weather-picker{display:grid;grid-template-columns:1fr 1fr;gap:6px;padding:8px 4px}.mmp-weather-option{background:#f8f9fa;border:2px solid #e5e7eb;border-radius:10px;padding:10px 8px;font-size:.8rem;color:#333;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:border-color .15s}.mmp-weather-option--selected{border-color:#007acc;background:#e8f4fd;font-weight:600}.mmp-logout-btn{background:none;border:1px solid #ef4444;border-radius:14px;padding:14px;font-size:.9rem;color:#ef4444;cursor:pointer;-webkit-tap-highlight-color:transparent;width:100%}.mobile-landing{display:flex;flex-direction:column;height:100%;overflow:hidden}.ml-spacer{flex:0 0 35%;min-height:140px;pointer-events:none}.ml-content{flex:1;display:flex;flex-direction:column;gap:16px;padding:12px;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;background:linear-gradient(to bottom,#fff0,#fffc 16px,#ffffffe6);border-radius:20px 20px 0 0}.ml-bubble{background:#fffffff2;border-radius:18px;padding:18px 20px;box-shadow:0 2px 12px #0000001a;text-align:center}.ml-bubble p{margin:0;font-size:1rem;line-height:1.6;color:#333}.ml-bubble p:first-child{font-size:1.15rem;font-weight:600}.ml-merit{background:#ffffffeb;border-radius:12px;padding:10px 14px;box-shadow:0 2px 8px #0000000f;font-size:.85rem;color:#444;line-height:1.6;text-align:center}.ml-auth-buttons{display:flex;flex-direction:column;gap:10px}.ml-btn{width:100%;padding:14px;border:none;border-radius:14px;font-size:.95rem;font-weight:600;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:transform .1s}.ml-btn:active{transform:scale(.98)}.ml-btn--sms{background:#007acc;color:#fff}.ml-btn--line{background:#06c755;color:#fff}.ml-btn--login{background:#ffffffeb;color:#333;border:1px solid #e5e7eb}.app-footer{position:fixed;bottom:0;left:0;right:0;background:#fffffff2;border-top:1px solid rgba(0,0,0,.1);padding:12px 20px;z-index:900;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.footer-content{max-width:1280px;margin:0 auto;display:flex;flex-direction:column;align-items:center;gap:8px}.footer-links{display:flex;align-items:center;gap:12px;flex-wrap:wrap;justify-content:center}.footer-link{color:#667eea;text-decoration:none;font-size:13px;font-weight:500;transition:color .3s ease}.footer-link:hover{color:#5568d3;text-decoration:underline}.footer-separator{color:#ccc;font-size:13px}.footer-copyright{color:#999;font-size:12px;text-align:center}@media(max-width:768px){.app-footer{padding:10px 16px;bottom:56px}.footer-links{gap:8px}.footer-link,.footer-separator{font-size:12px}.footer-copyright{font-size:11px}}@media(max-width:480px){.footer-links{flex-direction:column;gap:4px}.footer-separator{display:none}}.cookie-consent-overlay{position:fixed;bottom:0;left:0;right:0;z-index:10000;background:#00000080;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);padding:0;animation:fadeIn .3s ease-in-out}.cookie-consent-banner{background:linear-gradient(135deg,#fff,#f8f9fa);border-top:3px solid #4a90e2;box-shadow:0 -4px 20px #00000026;padding:24px;max-width:1200px;margin:0 auto}.cookie-consent-content{margin-bottom:16px}.cookie-consent-title{font-size:1.2rem;font-weight:700;color:#2c3e50;margin:0 0 12px;display:flex;align-items:center;gap:8px}.cookie-consent-text{font-size:.95rem;color:#555;line-height:1.6;margin:8px 0}.cookie-consent-text a{color:#4a90e2;text-decoration:underline;font-weight:500}.cookie-consent-text a:hover{color:#357abd}.cookie-consent-list{margin:12px 0;padding-left:24px;color:#555}.cookie-consent-list li{margin:4px 0;font-size:.9rem}.cookie-consent-actions{display:flex;gap:12px;justify-content:flex-end}.cookie-consent-btn{padding:10px 24px;border:none;border-radius:6px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s ease;box-shadow:0 2px 4px #0000001a}.cookie-consent-btn:hover{transform:translateY(-1px);box-shadow:0 4px 8px #00000026}.cookie-consent-btn:active{transform:translateY(0)}.cookie-consent-btn-accept{background:linear-gradient(135deg,#4a90e2,#357abd);color:#fff}.cookie-consent-btn-accept:hover{background:linear-gradient(135deg,#357abd,#2868a8)}.cookie-consent-btn-decline{background:#e0e0e0;color:#555}.cookie-consent-btn-decline:hover{background:#d0d0d0}@media(max-width:768px){.cookie-consent-banner{padding:16px}.cookie-consent-title{font-size:1rem}.cookie-consent-text{font-size:.85rem}.cookie-consent-list li{font-size:.8rem}.cookie-consent-actions{flex-direction:column}.cookie-consent-btn{width:100%;padding:12px}}@keyframes fadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.background-color-picker{background:#000000d9;border-radius:12px;padding:20px;color:#fff;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:2px solid rgba(255,255,255,.1)}.picker-header h3{margin:0 0 20px;font-size:18px;font-weight:700;text-align:center}.preset-section,.custom-section,.transparent-section,.alpha-section,.preview-section,.obs-guide-section{margin-bottom:20px}.preset-colors{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.preset-button{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:12px 8px;border:2px solid rgba(255,255,255,.2);border-radius:8px;cursor:pointer;transition:all .3s ease;background-clip:padding-box;position:relative}.preset-button:before{content:"";position:absolute;top:-2px;right:-2px;bottom:-2px;left:-2px;border-radius:8px;padding:2px;background:linear-gradient(135deg,#ffffff4d,#ffffff1a);-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask-composite:exclude;opacity:0;transition:opacity .3s ease}.preset-button:hover:before{opacity:1}.preset-button.active{border-color:#0f0;box-shadow:0 0 10px #00ff0080}.preset-icon{font-size:24px;margin-bottom:4px}.preset-name{font-size:12px;color:#ffffffe6;text-shadow:0 1px 2px rgba(0,0,0,.5)}.custom-picker{display:flex;gap:10px;align-items:center}.color-input{width:60px;height:40px;border:2px solid rgba(255,255,255,.2);border-radius:8px;cursor:pointer;background:transparent}.color-input:disabled{opacity:.5;cursor:not-allowed}.hex-input{flex:1;height:40px;padding:0 12px;background:#ffffff1a;border:2px solid rgba(255,255,255,.2);border-radius:8px;color:#fff;font-size:14px;font-family:monospace;transition:all .3s ease}.hex-input:focus{outline:none;border-color:#0f0;background:#ffffff26}.hex-input:disabled{opacity:.5;cursor:not-allowed}.transparent-section label{display:flex;align-items:center;gap:8px;cursor:pointer;-webkit-user-select:none;user-select:none}.transparent-checkbox{width:20px;height:20px;cursor:pointer}.transparent-info{margin-top:10px;padding:10px;background:#00ff001a;border:1px solid rgba(0,255,0,.3);border-radius:6px;font-size:13px;color:#0f0}.alpha-slider{width:100%;height:8px;border-radius:4px;background:linear-gradient(to right,transparent,#ffffff);outline:none;cursor:pointer;-webkit-appearance:none}.alpha-slider::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:20px;height:20px;border-radius:50%;background:#0f0;cursor:pointer;box-shadow:0 2px 4px #0000004d}.alpha-slider::-moz-range-thumb{width:20px;height:20px;border-radius:50%;background:#0f0;cursor:pointer;border:none;box-shadow:0 2px 4px #0000004d}.preview-box{position:relative;height:100px;border-radius:8px;border:2px solid rgba(255,255,255,.2);display:flex;align-items:center;justify-content:center;overflow:hidden}.preview-transparent-pattern{position:absolute;top:0;right:0;bottom:0;left:0;background-image:linear-gradient(45deg,#808080 25%,transparent 25%),linear-gradient(-45deg,#808080 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#808080 75%),linear-gradient(-45deg,transparent 75%,#808080 75%);background-size:20px 20px;background-position:0 0,0 10px,10px -10px,-10px 0px}.preview-text{position:relative;z-index:1;font-size:16px;font-weight:700;color:#fff;text-shadow:0 2px 4px rgba(0,0,0,.8);background:#00000080;padding:8px 16px;border-radius:6px}.obs-guide-link{display:inline-flex;align-items:center;gap:5px;padding:10px 16px;background:linear-gradient(135deg,#2196f3,#1976d2);color:#fff;text-decoration:none;border-radius:8px;font-size:14px;font-weight:600;transition:all .3s ease;box-shadow:0 2px 4px #0000004d}.obs-guide-link:hover{transform:translateY(-2px);box-shadow:0 4px 8px #2196f366;background:linear-gradient(135deg,#42a5f5,#2196f3)}@media(max-width:768px){.background-color-picker{padding:15px}.preset-colors{grid-template-columns:repeat(3,1fr)}.preset-button{padding:8px 4px}.preset-icon{font-size:20px}.preset-name{font-size:10px}}.vrm-model-selector{background:#000000d9;border-radius:12px;padding:20px;color:#fff;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:2px solid rgba(255,255,255,.1)}.selector-header h3{margin:0 0 20px;font-size:18px;font-weight:700;text-align:center}.file-upload-section,.default-models-section,.url-input-section,.info-section,.future-features{margin-bottom:20px}.section-label{display:block;font-size:14px;font-weight:600;margin-bottom:10px;color:#ccc}.file-upload-group{display:flex;flex-direction:column;gap:8px}.login-required-notice{background:#ff980026;border:1px solid rgba(255,152,0,.4);color:#ffb74d;padding:10px 12px;border-radius:6px;font-size:13px;font-weight:500;margin-bottom:10px;text-align:center}.file-upload-label{cursor:pointer;display:inline-block}.file-upload-label input:disabled{cursor:not-allowed}.file-input-hidden{display:none}.file-upload-button{display:inline-block;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:10px 20px;border-radius:8px;font-size:14px;font-weight:600;transition:all .3s ease;cursor:pointer;border:2px solid transparent;text-align:center}.file-upload-button:hover{transform:translateY(-2px);box-shadow:0 4px 12px #667eea66;border-color:#ffffff4d}.file-upload-button.disabled{background:linear-gradient(135deg,#555,#666);cursor:not-allowed;opacity:.5;transform:none}.file-upload-button.disabled:hover{transform:none;box-shadow:none}.file-name-display{background:#667eea1a;border:1px solid #667eea;color:#667eea;padding:8px 12px;border-radius:6px;font-size:12px;font-weight:500;text-align:center}.model-list{display:flex;flex-direction:column;gap:10px}.model-button{display:flex;align-items:center;gap:10px;padding:12px 16px;background:#ffffff0d;border:2px solid rgba(255,255,255,.2);border-radius:8px;cursor:pointer;transition:all .3s ease;color:#fff;font-size:14px}.model-button:hover{background:#ffffff1a;border-color:#ffffff4d}.model-button.active{background:#00ff001a;border-color:#0f0;box-shadow:0 0 10px #00ff004d}.model-icon{font-size:24px;flex-shrink:0}.model-name{flex:1;text-align:left}.model-check{color:#0f0;font-weight:700;font-size:18px}.url-input-group{display:flex;flex-direction:column;gap:10px}.url-input{width:100%;height:40px;padding:0 12px;background:#ffffff1a;border:2px solid rgba(255,255,255,.2);border-radius:8px;color:#fff;font-size:14px;transition:all .3s ease;box-sizing:border-box}.url-input:focus{outline:none;border-color:#0f0;background:#ffffff26}.url-input:disabled{opacity:.5;cursor:not-allowed}.load-button{width:100%;height:40px;padding:0 20px;background:linear-gradient(135deg,#0f0,#0c0);color:#000;border:none;border-radius:8px;font-size:14px;font-weight:700;cursor:pointer;transition:all .3s ease;white-space:nowrap;box-sizing:border-box}.load-button:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 8px #0f06}.load-button:disabled{opacity:.5;cursor:not-allowed;transform:none}.error-message{margin-top:10px;padding:10px;background:#ff00001a;border:1px solid rgba(255,0,0,.3);border-radius:6px;font-size:13px;color:#f55}.info-section{background:#2196f31a;border:1px solid rgba(33,150,243,.3);border-radius:8px;padding:12px}.info-item{font-size:13px;color:#90caf9;margin-bottom:8px;line-height:1.5}.info-item:last-child{margin-bottom:0}.future-features{background:#ff98001a;border:1px solid rgba(255,152,0,.3);border-radius:8px;padding:12px}.future-label{font-size:14px;font-weight:600;color:#ffb74d;margin-bottom:8px}.future-list{margin:0;padding-left:20px;font-size:13px;color:#ffcc80}.future-list li{margin-bottom:4px}.future-list li:last-child{margin-bottom:0}.vroid-hub-guide{background:#4caf501a;border:1px solid rgba(76,175,80,.3);border-radius:8px;padding:12px;margin-bottom:20px}.guide-header{display:flex;align-items:center;gap:8px;font-size:14px;color:#81c784;margin-bottom:12px;font-weight:600}.guide-icon{font-size:18px}.guide-steps{margin:0;padding-left:20px;font-size:13px;color:#a5d6a7;line-height:1.6}.guide-steps li{margin-bottom:12px}.guide-steps li:last-child{margin-bottom:0}.guide-example{background:#0000004d;border:1px solid rgba(76,175,80,.4);border-radius:4px;padding:6px 10px;margin-top:6px;font-family:Courier New,monospace;font-size:12px;color:#c8e6c9;word-break:break-all}.guide-example code{color:#c8e6c9;font-size:12px}.guide-note{color:#ffb74d;font-size:12px;margin-top:4px;font-style:italic}.guide-steps-sub{margin-top:8px;padding-left:16px}.guide-steps-sub div{margin-bottom:4px;color:#c8e6c9}.mobile-hint{background:#2196f326;border:1px solid rgba(33,150,243,.4);border-radius:6px;padding:10px 12px;font-size:13px;color:#90caf9;text-align:center;margin-bottom:0}@media(max-width:768px){.vrm-model-selector{padding:15px}.selector-header h3{font-size:16px;margin-bottom:15px}.section-label{font-size:13px}.file-upload-button,.load-button{font-size:13px;padding:8px 16px}.url-input{font-size:13px;height:38px}.model-button{padding:10px 14px;font-size:13px}}.game-recommendation-overlay{position:fixed;bottom:20px;right:20px;z-index:250000;max-width:350px;pointer-events:auto;font-family:Segoe UI,Meiryo,sans-serif}.game-recommendation-dialog{background:linear-gradient(145deg,#667eea,#764ba2);border-radius:16px;padding:20px;box-shadow:0 10px 30px #0000004d;color:#fff;animation:slideInUp .4s ease-out}.training3d-theme{background:linear-gradient(145deg,#11998e,#38ef7d)}.recommendation-header{display:flex;align-items:center;gap:12px;margin-bottom:16px}.recommendation-icon{font-size:2rem;display:flex;align-items:center;justify-content:center;width:48px;height:48px;background:#fff3;border-radius:50%}.recommendation-header h3{margin:0;font-size:1.2rem;font-weight:600}.recommendation-content{margin-bottom:20px}.recommendation-message{margin:0 0 16px;line-height:1.5;font-size:.95rem}.training-preview{display:flex;flex-direction:column;gap:8px}.preview-feature{display:flex;align-items:center;gap:8px;padding:6px 12px;background:#ffffff26;border-radius:20px;font-size:.85rem}.feature-icon{font-size:1rem}.recommendation-actions{display:flex;gap:12px;justify-content:space-between}.play-button{flex:1;padding:12px 16px;background:#ffffffe6;color:#333;border:none;border-radius:25px;font-weight:600;font-size:.9rem;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px;transition:all .2s ease}.training-play-button{background:#fffffff2;color:#11998e}.play-button:hover{background:#fff;transform:translateY(-1px);box-shadow:0 4px 8px #0003}.dismiss-button{padding:12px 16px;background:transparent;color:#fffc;border:1px solid rgba(255,255,255,.3);border-radius:25px;font-size:.85rem;cursor:pointer;transition:all .2s ease;white-space:nowrap}.dismiss-button:hover{background:#ffffff1a;color:#fff}.button-icon{font-size:1rem}@keyframes slideInUp{0%{opacity:0;transform:translateY(20px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}@media(max-width:768px){.game-recommendation-overlay{bottom:10px;right:10px;left:10px;max-width:none}.recommendation-actions{flex-direction:column}.dismiss-button{align-self:center;min-width:120px}}.voice-consult-container{position:fixed;bottom:120px;right:30px;z-index:9999;display:flex;align-items:center;gap:10px}.voice-consult-button{display:flex;align-items:center;gap:8px;padding:16px 24px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:50px;font-size:16px;font-weight:700;cursor:pointer;box-shadow:0 4px 15px #667eea66;transition:all .3s ease;user-select:none;-webkit-user-select:none}.voice-consult-button.no-permission{background:linear-gradient(135deg,#999,#666);cursor:not-allowed}.voice-consult-button:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 20px #667eea99}.voice-consult-button:active:not(:disabled){transform:translateY(0)}.voice-consult-button:disabled{opacity:.5;cursor:not-allowed}.voice-consult-button.recording{background:linear-gradient(135deg,#f093fb,#f5576c);animation:pulse 1.5s ease-in-out infinite}@keyframes pulse{0%,to{box-shadow:0 4px 15px #f5576c66}50%{box-shadow:0 4px 25px #f5576ccc}}.recording-icon{font-size:18px;animation:blink 1s ease-in-out infinite}@keyframes blink{0%,to{opacity:1}50%{opacity:.3}}.mic-icon{font-size:20px}.button-text{font-size:16px;font-weight:600}.transcript-preview-overlay{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);z-index:10000;pointer-events:none}.transcript-preview-content{background:#667eeaf2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:3px solid white;border-radius:16px;padding:20px 30px;max-width:500px;box-shadow:0 8px 32px #0000004d;animation:fadeIn .3s ease}@keyframes fadeIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}.transcript-label{font-size:16px;color:#fff;font-weight:700;margin-right:12px;display:block;margin-bottom:8px}.transcript-text{font-size:20px;color:#fff;line-height:1.6;font-weight:600;display:block}.device-selector-toggle{width:48px;height:48px;border-radius:50%;background:#667eeae6;color:#fff;border:none;font-size:20px;cursor:pointer;box-shadow:0 4px 15px #667eea66;transition:all .3s ease;display:flex;align-items:center;justify-content:center}.device-selector-toggle:hover:not(:disabled){transform:scale(1.1);background:#667eea}.device-selector-toggle:disabled{opacity:.5;cursor:not-allowed}.device-selector-dropdown{position:fixed;bottom:180px;right:30px;z-index:10000;background:#fff;border-radius:12px;box-shadow:0 8px 32px #0003;min-width:250px;max-width:350px;overflow:hidden;animation:slideUp .3s ease}@keyframes slideUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.device-selector-header{padding:12px 16px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;font-weight:700;font-size:14px}.device-option{width:100%;padding:12px 16px;border:none;background:#fff;text-align:left;cursor:pointer;transition:background .2s ease;font-size:14px;color:#333;border-bottom:1px solid #f0f0f0}.device-option:hover{background:#f5f5f5}.device-option.selected{background:#e8eeff;color:#667eea;font-weight:600}.device-option:last-child{border-bottom:none}@media(max-width:768px){.voice-consult-container{bottom:auto;top:72px;right:20px;left:20px;justify-content:center}.voice-consult-button{padding:12px 20px;font-size:14px;flex:1;max-width:280px}.device-selector-toggle{width:40px;height:40px;font-size:18px}.device-selector-dropdown{bottom:auto;top:130px;right:20px;min-width:200px}.transcript-preview-content{max-width:280px;font-size:13px;padding:16px 20px}.transcript-text{font-size:16px}}.speech-bubble{position:fixed;max-width:400px;min-width:200px;background:#fffffff2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:16px;padding:16px 20px;box-shadow:0 4px 20px #00000026;z-index:1000;animation:bubbleSlideIn .3s ease-out;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif}.speech-bubble-top-left{top:20px;left:20px}.speech-bubble-top-right{top:20px;right:20px}.speech-bubble-bottom-left{bottom:100px;left:20px}.speech-bubble-bottom-right{bottom:100px;right:20px}.speech-bubble-center{top:50%;left:50%;transform:translate(-50%,-50%)}@media(max-width:768px){.speech-bubble{max-width:calc(100vw - 40px);min-width:250px}.speech-bubble-top-left,.speech-bubble-top-right{top:10px;left:10px;right:10px}.speech-bubble-bottom-left,.speech-bubble-bottom-right{bottom:80px;left:10px;right:10px}}.speech-bubble-assistant{background:linear-gradient(135deg,#93c5fdf2,#bfdbfef2);border:2px solid rgba(59,130,246,.3)}.speech-bubble-user{background:#f3f4f6f2;border:2px solid rgba(156,163,175,.3)}.speech-bubble-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;padding-bottom:8px;border-bottom:1px solid rgba(0,0,0,.1)}.speech-bubble-character{font-weight:600;font-size:14px;color:#000c}.speech-bubble-streaming-indicator{display:flex;align-items:center;gap:4px}.speech-bubble-streaming-indicator .dot{width:6px;height:6px;background:#3b82f6cc;border-radius:50%;animation:dotPulse 1.4s infinite ease-in-out}.speech-bubble-streaming-indicator .dot:nth-child(1){animation-delay:0s}.speech-bubble-streaming-indicator .dot:nth-child(2){animation-delay:.2s}.speech-bubble-streaming-indicator .dot:nth-child(3){animation-delay:.4s}@keyframes dotPulse{0%,80%,to{transform:scale(.8);opacity:.5}40%{transform:scale(1.2);opacity:1}}.speech-bubble-content{font-size:15px;line-height:1.6;color:#000000e6;word-wrap:break-word;white-space:pre-wrap}.speech-bubble-cursor{display:inline-block;margin-left:2px;color:#3b82f6cc;animation:cursorBlink 1s infinite}@keyframes cursorBlink{0%,49%{opacity:1}50%,to{opacity:0}}@keyframes bubbleSlideIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.speech-bubble-bottom-left,.speech-bubble-bottom-right{animation:bubbleSlideInBottom .3s ease-out}@keyframes bubbleSlideInBottom{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.speech-bubble-center{animation:bubbleSlideInCenter .3s ease-out}@keyframes bubbleSlideInCenter{0%{opacity:0;transform:translate(-50%,-50%) scale(.9)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}.speech-bubble:hover{box-shadow:0 6px 25px #0003}@media(prefers-color-scheme:dark){.speech-bubble{background:#1f2937f2}.speech-bubble-assistant{background:linear-gradient(135deg,#1e3a8af2,#3b82f6f2);border-color:#60a5fa4d}.speech-bubble-user{background:#374151f2;border-color:#6b72804d}.speech-bubble-character,.speech-bubble-content{color:#ffffffe6}.speech-bubble-header{border-bottom-color:#ffffff1a}}.embed-zone-container{width:100%;height:100vh;display:flex;flex-direction:column;background:linear-gradient(135deg,#667eea,#764ba2);overflow:hidden}.embed-map-wrapper{position:relative;flex:1;width:100%;overflow:hidden}.embed-map-iframe{width:100%;height:100%;border:none;pointer-events:none}.embed-click-overlay{position:absolute;top:0;left:0;width:100%;height:100%;background:#0000;cursor:pointer;transition:background .3s ease;display:flex;align-items:center;justify-content:center}.embed-click-overlay:hover{background:#0000001a}.embed-overlay-text{opacity:0;color:#fff;font-size:18px;font-weight:600;background:#000000b3;padding:12px 24px;border-radius:24px;transition:opacity .3s ease;pointer-events:none}.embed-click-overlay:hover .embed-overlay-text{opacity:1}.embed-info-bar{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;background:#fffffff2;border-top:2px solid rgba(102,126,234,.3);box-shadow:0 -2px 10px #0000001a}.embed-coordinates{font-size:14px;font-weight:600;color:#333}.embed-like-button{display:flex;align-items:center}.embed-footer{padding:8px 20px;background:#ffffffe6;text-align:center;border-top:1px solid rgba(102,126,234,.2)}.embed-footer-link{font-size:12px;color:#667eea;text-decoration:none;font-weight:600;transition:color .3s ease}.embed-footer-link:hover{color:#764ba2;text-decoration:underline}.embed-zone-error{width:100%;height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;font-size:16px;text-align:center;padding:20px}.embed-zone-error p{margin:8px 0}@media(max-width:768px){.embed-info-bar{flex-direction:column;gap:12px;padding:12px 16px}.embed-coordinates{font-size:13px}.embed-overlay-text{font-size:16px;padding:10px 20px}.embed-footer-link{font-size:11px}}@media(max-height:500px){.embed-info-bar{padding:10px 16px}.embed-footer{padding:6px 16px}.embed-coordinates{font-size:12px}.embed-footer-link{font-size:10px}}.zone-detail-container{min-height:100vh;height:auto;overflow-y:auto;overflow-x:hidden;background:linear-gradient(135deg,#f5f7fa,#c3cfe2);font-family:Segoe UI,Meiryo,sans-serif}.zone-detail-header{background:#fff;padding:20px;box-shadow:0 2px 8px #0000001a;position:sticky;top:0;z-index:100}.back-button{background:none;border:none;color:#667eea;font-size:16px;font-weight:600;cursor:pointer;padding:8px 0;margin-bottom:12px;transition:all .2s ease}.back-button:hover{color:#764ba2;transform:translate(-4px)}.zone-title{margin:0;font-size:28px;color:#333;display:flex;align-items:center;gap:12px}.zone-emoji{font-size:32px}.zone-detail-main{max-width:1200px;margin:0 auto;padding:32px 20px;display:flex;flex-direction:column;gap:24px}.zone-map-section{width:100%}.map-wrapper{position:relative;width:100%;aspect-ratio:16/9;border-radius:16px;overflow:hidden;box-shadow:0 8px 24px #00000026;background:#f3f3f3}.map-iframe{width:100%;height:100%;border:none;display:block}.map-overlay{position:absolute;top:16px;left:16px;z-index:10}.map-badge{background:#000000b3;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:#fff;padding:8px 16px;border-radius:24px;display:flex;align-items:center;gap:8px;font-size:14px;font-weight:600;box-shadow:0 4px 12px #0003}.badge-icon{font-size:18px}.zone-info-section{width:100%}.info-card{background:#fff;padding:24px;border-radius:12px;box-shadow:0 4px 12px #0000001a}.info-title{margin:0 0 20px;font-size:20px;color:#333;font-weight:600}.info-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:16px}.info-item{display:flex;align-items:center;gap:12px;padding:16px;background:#f9fafb;border-radius:8px;border:1px solid #e5e7eb}.info-icon{font-size:24px}.info-content{flex:1}.info-label{font-size:12px;color:#666;margin-bottom:4px}.info-value{font-size:16px;color:#333;font-weight:600}.zone-id{font-family:Courier New,monospace;font-size:14px;color:#667eea}.zone-actions-section{width:100%}.action-card{background:#fff;padding:32px;border-radius:12px;box-shadow:0 4px 12px #0000001a;text-align:center}.action-title{margin:0 0 12px;font-size:24px;color:#333;font-weight:700}.action-description{margin:0 0 24px;font-size:16px;color:#666;line-height:1.6}.like-button-large{display:flex;justify-content:center;margin-bottom:32px;transform:scale(1.5);padding:20px 0}.share-section{border-top:2px solid #e5e7eb;padding-top:24px}.share-title{margin:0 0 16px;font-size:18px;color:#333;font-weight:600}.zone-cta-section{width:100%}.cta-card{background:linear-gradient(135deg,#667eea,#764ba2);padding:40px;border-radius:12px;box-shadow:0 8px 24px #667eea4d;text-align:center;color:#fff}.cta-title{margin:0 0 12px;font-size:28px;font-weight:700}.cta-description{margin:0 0 32px;font-size:16px;line-height:1.8;opacity:.95}.cta-buttons{display:flex;gap:16px;justify-content:center;flex-wrap:wrap}.cta-button{padding:14px 32px;border-radius:8px;font-size:16px;font-weight:600;cursor:pointer;border:none;transition:all .2s ease}.cta-button.primary{background:#fff;color:#667eea}.cta-button.primary:hover{transform:translateY(-2px);box-shadow:0 6px 16px #ffffff4d}.cta-button.secondary{background:transparent;color:#fff;border:2px solid white}.cta-button.secondary:hover{background:#ffffff1a;transform:translateY(-2px)}.zone-detail-footer{background:#333;color:#fff;padding:24px;text-align:center}.footer-text{margin:0;font-size:14px;opacity:.8}.zone-detail-error{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;background:linear-gradient(135deg,#f5f7fa,#c3cfe2);padding:40px;text-align:center}.zone-detail-error p{font-size:18px;color:#666;margin:8px 0}.zone-detail-error button{margin-top:24px;padding:12px 24px;background:#667eea;color:#fff;border:none;border-radius:8px;font-size:16px;font-weight:600;cursor:pointer;transition:all .2s ease}.zone-detail-error button:hover{background:#764ba2;transform:translateY(-2px);box-shadow:0 4px 12px #667eea4d}@media(max-width:768px){.zone-title{font-size:22px}.zone-emoji{font-size:26px}.zone-detail-main{padding:20px 16px;gap:20px}.map-wrapper{aspect-ratio:4/3}.info-card,.action-card{padding:20px}.info-grid{grid-template-columns:1fr}.action-title{font-size:20px}.like-button-large{transform:scale(1.3)}.cta-card{padding:32px 20px}.cta-title{font-size:22px}.cta-buttons{flex-direction:column}.cta-button{width:100%}}.line-callback-container{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#667eea,#764ba2);padding:20px}.line-callback-card{background:#fff;border-radius:16px;padding:48px 32px;max-width:400px;width:100%;text-align:center;box-shadow:0 10px 40px #0003;animation:slideUp .4s ease-out}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.line-callback-icon{width:80px;height:80px;margin:0 auto 24px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:48px}.line-callback-icon.processing{background:#f0f4ff}.line-callback-icon.success{background:#d4edda;color:#28a745}.line-callback-icon.error{background:#f8d7da;color:#dc3545}.spinner-large{width:48px;height:48px;border:4px solid #f3f3f3;border-top:4px solid #667eea;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.checkmark{font-weight:700;animation:scaleIn .3s ease-out}.error-mark{font-weight:700;animation:shake .5s ease-out}@keyframes scaleIn{0%{transform:scale(0)}to{transform:scale(1)}}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-10px)}75%{transform:translate(10px)}}.line-callback-card h2{font-size:24px;font-weight:600;color:#333;margin-bottom:12px}.line-callback-card p{font-size:16px;color:#666;margin-bottom:0}.line-callback-card .error-message{color:#dc3545;font-weight:500;margin-top:12px}.retry-button{margin-top:24px;padding:12px 32px;background:#667eea;color:#fff;border:none;border-radius:8px;font-size:16px;font-weight:600;cursor:pointer;transition:all .3s ease}.retry-button:hover{background:#5568d3;transform:translateY(-2px);box-shadow:0 4px 12px #667eea66}.retry-button:active{transform:translateY(0)}@media(max-width:480px){.line-callback-card{padding:32px 24px}.line-callback-icon{width:64px;height:64px;font-size:36px}.spinner-large{width:36px;height:36px}.line-callback-card h2{font-size:20px}.line-callback-card p{font-size:14px}}.settings-container{min-height:100vh;background:linear-gradient(135deg,#667eea,#764ba2);padding:20px}.settings-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:60vh;color:#fff}.settings-loading .spinner-large{width:48px;height:48px;border:4px solid rgba(255,255,255,.3);border-top:4px solid white;border-radius:50%;animation:spin 1s linear infinite;margin-bottom:16px}.settings-header{display:flex;align-items:center;gap:16px;margin-bottom:24px}.settings-header h1{color:#fff;font-size:28px;font-weight:700;margin:0}.settings-tabs{display:flex;gap:8px;margin-bottom:24px;overflow-x:auto;-webkit-overflow-scrolling:touch}.settings-tab{background:#fff3;color:#fff;border:none;border-radius:8px;padding:12px 24px;font-size:15px;font-weight:600;cursor:pointer;transition:all .3s ease;white-space:nowrap;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.settings-tab:hover{background:#ffffff4d}.settings-tab.active{background:#fff;color:#667eea}.settings-content{background:#fff;border-radius:16px;padding:32px;box-shadow:0 10px 40px #0000001a;animation:fadeIn .4s ease-out}.settings-section h2{font-size:24px;font-weight:700;color:#333;margin-bottom:24px}.settings-info-list{display:flex;flex-direction:column;gap:20px}.settings-info-item{border-bottom:1px solid #eee;padding-bottom:16px}.settings-info-item:last-child{border-bottom:none;padding-bottom:0}.settings-info-item label{display:block;font-size:14px;font-weight:600;color:#666;margin-bottom:8px}.settings-info-item p{font-size:16px;color:#333;margin:0}.line-status{margin-bottom:24px}.status-badge{display:inline-block;padding:6px 16px;border-radius:20px;font-size:14px;font-weight:600}.status-badge.connected{background:#d4edda;color:#28a745}.status-badge.disconnected{background:#f8d7da;color:#dc3545}.line-linked-info,.line-unlinked-info{max-width:600px}.line-profile{display:flex;align-items:center;gap:16px;padding:20px;background:#f8f9fa;border-radius:12px;margin-bottom:24px}.line-profile-image{width:64px;height:64px;border-radius:50%;object-fit:cover;border:3px solid #06C755}.line-profile-info{flex:1}.line-display-name{font-size:18px;font-weight:700;color:#333;margin:0 0 4px}.line-user-id{font-size:14px;color:#666;margin:0}.line-linked-benefits h3,.line-benefits h3{font-size:18px;font-weight:600;color:#333;margin-bottom:12px}.line-linked-benefits ul,.line-benefits ul{list-style:none;padding:0;margin:0 0 24px}.line-linked-benefits li,.line-benefits li{padding:8px 0;font-size:15px;color:#555}.unlink-button{width:100%;padding:14px;background:#dc3545;color:#fff;border:none;border-radius:8px;font-size:16px;font-weight:600;cursor:pointer;transition:all .3s ease;margin-bottom:12px}.unlink-button:hover{background:#c82333;transform:translateY(-2px);box-shadow:0 4px 12px #dc354566}.unlink-button:active{transform:translateY(0)}.unlink-warning{font-size:14px;color:#856404;background:#fff3cd;border:1px solid #ffeaa7;border-radius:8px;padding:12px;margin:0}.line-link-button-container{margin:24px 0}.link-description{font-size:14px;color:#666;text-align:center;margin:16px 0 0}.coming-soon{text-align:center;font-size:18px;color:#666;padding:60px 20px}@media(max-width:768px){.settings-container{padding:16px}.settings-header h1{font-size:24px}.settings-content{padding:20px}.settings-section h2{font-size:20px}.settings-tab{padding:10px 16px;font-size:14px}.line-profile{flex-direction:column;text-align:center}.line-profile-image{width:80px;height:80px}}@media(max-width:480px){.settings-header{flex-direction:column;align-items:flex-start;gap:12px}.settings-tabs{gap:6px}.settings-tab{padding:8px 12px;font-size:13px}.settings-content{padding:16px}.line-profile-image{width:64px;height:64px}.line-display-name{font-size:16px}}html,body,#root{overflow:auto!important;height:auto!important;min-height:100vh!important}.terms-container{min-height:100vh;background:linear-gradient(135deg,#667eea,#764ba2);padding:20px}.terms-header{max-width:900px;margin:0 auto 32px}.terms-header h1{color:#fff;font-size:32px;font-weight:700;margin:16px 0 8px}.terms-header .last-updated{color:#ffffffe6;font-size:14px;margin:0}.back-button{background:#fff3;color:#fff;border:none;border-radius:8px;padding:8px 16px;font-size:14px;font-weight:600;cursor:pointer;transition:all .3s ease;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.back-button:hover{background:#ffffff4d;transform:translate(-2px)}.terms-content{max-width:900px;margin:0 auto;background:#fff;border-radius:16px;padding:48px;box-shadow:0 10px 40px #0000001a;animation:fadeIn .4s ease-out}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.terms-section{margin-bottom:48px}.terms-section:last-child{margin-bottom:0}.terms-section h2{font-size:24px;font-weight:700;color:#333;margin-bottom:16px;padding-bottom:8px;border-bottom:2px solid #667eea}.terms-section h3{font-size:18px;font-weight:600;color:#555;margin:24px 0 12px}.terms-section p{font-size:15px;line-height:1.8;color:#555;margin-bottom:16px}.terms-section ul{margin:16px 0;padding-left:24px}.terms-section li{font-size:15px;line-height:1.8;color:#555;margin-bottom:8px}.terms-highlight{background:#f8f9ff;padding:24px;border-radius:12px;border:2px solid #667eea}.important-notice{background:#fff3cd;border:1px solid #ffc107;border-radius:8px;padding:16px;margin-bottom:16px}.important-notice strong{color:#856404}.youtube-terms-box{background:#fff;border:2px solid #667eea;border-radius:12px;padding:24px;margin:24px 0}.youtube-terms-box h3{color:#667eea;font-size:18px;font-weight:600;margin-top:0;margin-bottom:12px}.youtube-terms-box p{margin-bottom:12px}.youtube-terms-box ul{margin:12px 0;padding-left:20px}.youtube-terms-box li{margin-bottom:8px}.terms-notice{font-style:italic;color:#666;font-size:14px;margin-top:12px;padding-top:12px;border-top:1px solid #e0e0e0}.external-link{color:#667eea;text-decoration:none;font-weight:600;word-break:break-all;transition:color .3s ease}.external-link:hover{color:#5568d3;text-decoration:underline}.inline-link{color:#667eea;text-decoration:none;font-weight:600;transition:color .3s ease}.inline-link:hover{color:#5568d3;text-decoration:underline}.external-link-button{display:inline-block;background:#667eea;color:#fff;text-decoration:none;padding:12px 24px;border-radius:8px;font-weight:600;font-size:15px;transition:all .3s ease;margin-top:12px}.external-link-button:hover{background:#5568d3;transform:translateY(-2px);box-shadow:0 4px 12px #667eea66}.related-links{background:#f8f9fa;padding:24px;border-radius:12px;margin-top:24px}.related-links h3{color:#333;font-size:18px;font-weight:600;margin-top:0;margin-bottom:12px}.related-links p{margin-bottom:12px;color:#666}.contact-info{background:#f8f9fa;padding:20px;border-radius:8px;border-left:4px solid #667eea}.contact-info p{margin:0;line-height:1.8}.contact-info strong{color:#333;font-size:16px}@media(max-width:768px){.terms-container{padding:16px}.terms-header h1{font-size:24px}.terms-content{padding:24px}.terms-section h2{font-size:20px}.terms-section h3{font-size:16px}.terms-section p,.terms-section li{font-size:14px}.youtube-terms-box{padding:16px}}@media(max-width:480px){.terms-header{margin-bottom:24px}.terms-header h1{font-size:20px}.terms-content{padding:20px}.terms-section{margin-bottom:32px}.terms-section h2{font-size:18px}.external-link-button{display:block;text-align:center}}:root{--mobile-ads-height: 84px;--mobile-bottomnav-height: 56px;--mobile-header-height: 64px}.app-container{position:relative;width:100vw;height:100dvh;height:100vh;overflow:hidden;background-size:cover;background-position:center;background-repeat:no-repeat}.header-bar{position:fixed;top:0;left:0;width:100%;height:56px;display:flex;justify-content:space-between;align-items:center;padding:0 18px;background:#fffffff0;box-shadow:0 2px 8px #00000012;z-index:1002}.login-dialog{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);background:#fff;padding:24px;border-radius:var(--border-radius-sm);box-shadow:0 10px 30px #00000026;width:340px;z-index:9999;font-family:var(--font-sans)}.panel-mobile{position:absolute;left:0;right:0;top:calc(var(--mobile-header-height) + env(safe-area-inset-top,0px));bottom:calc(var(--mobile-bottomnav-height) + env(safe-area-inset-bottom,0px));display:flex;flex-direction:column;background:transparent;padding:0;box-sizing:border-box;z-index:1200;overflow:hidden;pointer-events:none}.panel-mobile>*{pointer-events:auto}.bottom-menu-wrapper{position:fixed;bottom:0;left:0;width:100%;height:56px;background:#fffffff2;box-shadow:0 -2px 8px #00000012;padding-bottom:env(safe-area-inset-bottom);box-sizing:border-box;display:flex;justify-content:space-around;align-items:center;z-index:1003}@media(min-width:768px){.header-bar{position:absolute;top:24px;left:24px;right:24px;width:auto;max-width:1280px;margin:0 auto;border-radius:13px}.panel-mobile,.bottom-menu-wrapper{display:none!important}.panel-pc{position:absolute;top:90px;left:24px;width:430px;bottom:24px;display:flex;flex-direction:column;background:#fffffff2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.3);border-radius:16px;box-shadow:0 2px 12px #0000000f;overflow:hidden;z-index:9990}}.login-dialog h3{margin-bottom:20px;font-size:1.25rem;text-align:center}.login-dialog label,.login-dialog input,.login-dialog .button-row button{font-size:var(--btn-font-size)}.login-dialog label{display:block;margin-bottom:12px;color:#333}.login-dialog input{width:100%;padding:8px;margin-top:4px;border:1px solid #ccc;border-radius:var(--border-radius-sm);box-sizing:border-box}.login-dialog .button-row{display:flex;justify-content:space-between;gap:10px;margin-top:12px}.login-dialog .button-row button{flex:1;padding:10px;border-radius:var(--border-radius-sm)}.login-dialog .button-row button:first-child{background-color:var(--primary-color);color:#fff}.login-dialog .button-row button:last-child{background-color:var(--secondary-bg);color:#333}.login-dialog .button-row button:hover{opacity:.9}html,body,#root{width:100vw;margin:0;padding:0;position:static!important;box-sizing:border-box}body:has(.app-container),body:has(.app-container) #root{height:100dvh;overflow:hidden}body:not(:has(.app-container)),body:not(:has(.app-container)) #root{height:auto;min-height:100dvh;overflow:visible}body{background:none!important}.ui-button-group{display:flex;flex-direction:row;align-items:center;gap:12px}.icon-button{width:40px;height:40px;border-radius:50%;background-color:#f5f5f5;display:flex;align-items:center;justify-content:center;border:1px solid #ccc;cursor:pointer;transition:background-color .2s;padding:0;box-sizing:border-box}.icon-button img{width:22px;height:22px}.map-button{display:flex;align-items:center;gap:6px;padding:0 14px;font-size:1rem;height:40px;border-radius:20px;border:1.5px solid #007acc;background:#fff;color:#007acc;cursor:pointer;transition:background-color .2s;box-sizing:border-box}.map-button img{width:22px;height:22px}.map-button:hover{background-color:#e6f2ff}.open-map-button{display:inline-block;padding:4px 8px;margin-left:8px;background:#007acc;color:#fff;border:none;border-radius:4px;font-size:.8rem;cursor:pointer;position:relative;z-index:1010;transition:background-color .2s}.open-map-button:hover{background:#005a99}@media(max-width:768px){.panel-mobile{position:fixed;top:calc(44px + env(safe-area-inset-top,0px));bottom:calc(56px + env(safe-area-inset-bottom,0px));left:0;right:0;background:transparent;border-radius:0;padding:0;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;border:none;z-index:1200;overflow:hidden;display:flex;flex-direction:column;pointer-events:none}.panel-mobile>*{pointer-events:auto}.header-bar{padding:8px;flex-wrap:nowrap}.panel-mobile .info-panel{height:100%;margin-top:0!important;display:flex;flex-direction:column}.header-bar>div:first-child{display:flex;flex-wrap:nowrap;gap:2px;overflow-x:auto;padding-bottom:2px;scrollbar-width:none;-ms-overflow-style:none}.header-bar>div:first-child::-webkit-scrollbar{display:none}.header-button-group{gap:1px;min-width:50px}.header-button{width:32px;height:32px;padding:4px;font-size:12px}.button-label{font-size:8px}.panel-toggle-overlay{top:70px;right:10px;left:auto;flex-direction:column;gap:8px;z-index:30000}.panel-open-btn{margin:0;min-width:120px;padding:10px 12px;font-size:13px}}@media(max-width:480px){.panel-toggle-overlay{top:60px;right:8px;left:8px;gap:6px}.panel-open-btn{padding:8px 10px;font-size:12px;min-height:40px}}@media(max-width:360px){.panel-toggle-overlay{flex-direction:column;gap:4px;right:5px;left:5px}.panel-open-btn{min-width:100px}}@keyframes slideInRight{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}@keyframes slideInUp{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}.panel-mobile,.panel-pc{animation:slideInUp .3s ease-out}@media(max-width:768px){.chat-panel{width:calc(100vw - 40px)!important;height:350px!important;bottom:90px!important;right:20px!important;left:20px!important}.chat-toggle-btn{bottom:30px!important;right:30px!important;width:50px!important;height:50px!important;font-size:20px!important}.streaming-overlay{position:fixed!important;top:60px!important;left:10px!important;right:10px!important;width:auto!important;max-width:calc(100vw - 20px)!important;min-width:auto!important;margin:0!important;padding:12px!important;z-index:15000!important}}.header-button-group{display:flex;flex-direction:column;align-items:center;gap:4px}.header-button{background:#fff3;border:1px solid rgba(255,255,255,.3);border-radius:8px;padding:8px;cursor:pointer;transition:all .2s ease;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);width:40px;height:40px;display:flex;align-items:center;justify-content:center;font-size:16px}.header-button:hover{background:#ffffff4d;transform:translateY(-1px)}.header-button.active{background:#667eeacc;border-color:#667eea;color:#fff}.header-button.active-focus{background:#ff6b6bcc;border-color:#ff6b6b;color:#fff}.button-label{font-size:10px;color:#000;font-weight:500;text-align:center;white-space:nowrap;text-shadow:none}
