.loader-background{display:flex;justify-content:center;align-items:center;height:100vh;width:100vw;background:linear-gradient(135deg,#008b95,#00b4d8);position:fixed;top:0;left:0;z-index:9999}.loader{border:8px solid rgba(255,255,255,.3);border-top:8px solid #fff;border-radius:50%;width:64px;height:64px;animation:spin 1s linear infinite}.toast-container{position:fixed;top:20px;left:50%;transform:translate(-50%);z-index:9999;display:flex;flex-direction:column;gap:12px;pointer-events:none;max-width:90%;width:400px}.toast{padding:16px 24px;border-radius:8px;color:#fff;font-size:16px;font-weight:600;text-align:center;box-shadow:0 4px 12px #0000004d;animation:slideDown .3s ease-out;pointer-events:auto}@keyframes slideDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.toast-success{background-color:#4ade80}.toast-error{background-color:#f87171}.toast-info{background-color:#008b95}.toast-warning{background-color:#fcd34d;color:#000}.legal-terms-container{display:flex;flex-direction:column;height:100vh;background-color:#008b95;padding-top:48px;overflow-y:auto;position:relative}.legal-terms-content{flex-grow:1;padding:16px 16px 40px;display:flex;flex-direction:column;gap:16px;align-items:center}.legal-terms-close-button{position:absolute;top:16px;right:16px;background:#ffffff26;border:1px solid rgba(255,255,255,.3);border-radius:50%;width:40px;height:40px;display:flex;align-items:center;justify-content:center;color:#fff;cursor:pointer;transition:all .2s;z-index:10}.legal-terms-close-button:hover{background:#ffffff40;transform:scale(1.05)}.legal-terms-logos{display:flex;justify-content:center;align-items:center;gap:32px;margin-top:4px;margin-bottom:32px;flex-wrap:wrap}.legal-terms-hero{max-width:160px;height:auto;max-height:80px;object-fit:contain}.legal-terms-title{font-size:28px;color:#fff;font-weight:700;text-align:center}.legal-terms-body{color:#fff;font-size:16px;line-height:24px;text-align:left;margin-bottom:16px}.legal-terms-body--bullet{padding-left:16px}.legal-terms-bullet-char{font-size:1.4em;font-weight:700;line-height:1;vertical-align:-.1em}.legal-terms-body-small{color:#fff;font-size:14px;line-height:22px;text-align:left;margin-bottom:8px}.legal-terms-text-content{width:100%;max-width:600px;display:flex;flex-direction:column;gap:8px}.legal-terms-section{margin-top:20px}.legal-terms-text-content>.legal-terms-section:first-child{margin-top:0}.legal-terms-section-title{color:#fff;font-size:18px;font-weight:600;margin-bottom:12px;text-align:left}.legal-terms-primary-button{background-color:#fff;border-radius:999px;padding:16px 32px;width:100%;max-width:400px;color:#008b95;font-weight:700;font-size:18px;letter-spacing:.5px;text-align:center;transition:transform .2s;margin-top:12px;border:none;cursor:pointer}.legal-terms-primary-button:active{transform:scale(.98)}.legal-terms-icon-circle{width:100px;height:100px;border-radius:50%;background:#ffffff26;display:flex;align-items:center;justify-content:center;color:#fff;margin:16px 0}.legal-terms-note{background:#ffffff1a;border-radius:12px;padding:16px;margin-top:8px}.legal-terms-note p{color:#fff;font-size:14px;margin:0;text-align:center}.info-menu-container{position:relative;z-index:1000}.info-menu-button{background:none;border:none;color:#fff;cursor:pointer;padding:8px;display:flex;align-items:center;justify-content:center;transition:all .3s ease;border-radius:8px}.info-menu-button:hover{background:#ffffff1a;transform:scale(1.1)}.info-menu-button:active{transform:scale(.95)}.info-menu-dropdown{position:absolute;top:calc(100% + 8px);right:0;background:#fff;border-radius:12px;box-shadow:0 4px 20px #00000026;min-width:200px;overflow:hidden;animation:slideDown .2s ease}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.info-menu-item{width:100%;padding:16px 20px;border:none;background:none;cursor:pointer;display:flex;align-items:center;justify-content:center;color:#333;font-size:15px;transition:background .2s ease;text-align:center}.info-menu-item:hover{background:#f5f5f5}.info-menu-item:active{background:#e8e8e8}.info-menu-item:not(:last-child){border-bottom:1px solid #e0e0e0}.info-menu-item span{font-weight:500}.login-container{display:flex;flex-direction:column;height:100vh;background-color:#008b95;overflow-y:auto;position:relative}.login-info-button{position:absolute;top:16px;right:16px;z-index:10}.login-info-button .info-menu-button{background:#ffffff26;border:1px solid rgba(255,255,255,.3);border-radius:50%;width:44px;height:44px;display:flex;align-items:center;justify-content:center;color:#fff;cursor:pointer;transition:all .2s;padding:0}.login-info-button .info-menu-button:hover{background:#ffffff40;transform:scale(1.05)}.login-content{flex-grow:1;padding:40px 20px}.login-title{font-size:28px;font-weight:700;color:#fff;text-align:center;margin-bottom:12px}.login-subtitle{font-size:16px;color:#fff;text-align:center;margin-bottom:24px}.login-form{display:flex;flex-direction:column;gap:28px}.login-input-group{display:flex;flex-direction:column;gap:8px}.login-label{font-size:16px;font-weight:600;color:#fff}.login-input{background-color:#fff;border-radius:8px;padding:20px;font-size:16px;color:#000;border:none}.login-input-cups{text-transform:uppercase}.login-input::placeholder{color:#999;text-transform:none}.login-hint,.login-privacy-text{font-size:13px;color:#fff;margin:0;line-height:1.4}.login-privacy-link{color:#fff;font-weight:600;text-decoration:underline}.login-primary-button{background-color:#fff;border-radius:8px;padding:20px;color:#008b95;font-size:18px;font-weight:600;transition:transform .2s;border:none;cursor:pointer}.login-primary-button:active:not(:disabled){transform:scale(.98)}.login-primary-button:disabled{opacity:.5;cursor:not-allowed}.login-logos{display:flex;justify-content:center;align-items:center;gap:32px;margin:20px auto;flex-wrap:wrap}.login-logo{max-width:160px;height:auto;max-height:80px;object-fit:contain}.cups-identification-container{min-height:100vh;background:linear-gradient(135deg,#008b95,#006b73);padding:20px;overflow-y:auto;position:relative}.cups-identification-content{display:flex;flex-direction:column;max-width:600px;width:100%;margin:0 auto;min-height:calc(100vh - 40px)}.cups-identification-header{margin-bottom:28px}.cups-identification-title{font-size:32px;font-weight:700;color:#fff;margin:0 0 8px}.cups-identification-subtitle{font-size:16px;color:#fff;margin:0}.cups-identification-info-button{position:absolute;top:20px;right:20px;z-index:10}.cups-identification-info-button .info-menu-button{background:#ffffff26;border:1px solid rgba(255,255,255,.3);border-radius:50%;width:44px;height:44px;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s;padding:0}.cups-identification-info-button .info-menu-button:hover{background:#ffffff40;transform:scale(1.05)}.cups-identification-empty{background:#ffffff1a;border:1px dashed rgba(255,255,255,.3);border-radius:16px;padding:32px 24px;text-align:center;margin-bottom:20px}.cups-identification-empty-text{font-size:16px;color:#fff;margin:0;line-height:1.5}.cups-identification-list{display:flex;flex-direction:column;gap:16px;margin-bottom:20px}.cups-identification-card{background:#fff;border-radius:16px;padding:20px;box-shadow:0 4px 6px #0000001a}.cups-identification-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;gap:5px;overflow:hidden}.cups-identification-card-cups{font-size:14px;font-weight:600;color:#008b95;margin:0;font-family:monospace;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cups-identification-card-badge{background:#fff;color:#008b95;padding:4px 9px;border-radius:12px;font-size:12px;font-weight:600;white-space:nowrap;flex-shrink:0}.cups-identification-card-last-reading{background:#f5f5f5;border-radius:8px;padding:12px;margin-bottom:16px}.cups-identification-card-reading-value{font-size:16px;font-weight:600;color:#333;margin:0 0 4px}.cups-identification-card-reading-date{font-size:14px;color:#666;margin:0}.cups-identification-card-actions{display:flex;gap:12px;flex-wrap:wrap}.cups-identification-card-button{flex:1;min-width:120px;padding:12px 16px;border-radius:12px;font-size:16px;font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px;transition:all .2s;border:none}.cups-identification-card-button-primary{background:#008b95;color:#fff}.cups-identification-card-button-primary:hover{background:#007580;transform:translateY(-2px);box-shadow:0 4px 12px #008b954d}.cups-identification-card-button-secondary{background:transparent;color:#008b95;border:2px solid #008b95}.cups-identification-card-button-secondary:hover{background:#008b951a}.cups-identification-add-button{width:100%;padding:16px 24px;background:#ffffff26;border:2px dashed rgba(255,255,255,.5);border-radius:16px;color:#fff;font-size:18px;font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:12px;transition:all .2s;margin-top:auto}.cups-identification-add-button:hover{background:#ffffff40;border-color:#fffc;transform:translateY(-2px)}.cups-identification-new-cups{background:#fff;border-radius:16px;padding:24px;margin-top:auto}.cups-identification-new-cups-title{font-size:20px;font-weight:700;color:#008b95;margin:0 0 20px}.cups-identification-new-cups .login-input-group{margin-bottom:20px}.cups-identification-new-cups .login-label{display:block;font-size:14px;font-weight:600;color:#008b95;margin-bottom:8px}.cups-identification-new-cups .login-input{width:100%;padding:14px 16px;border:2px solid #e0e0e0;border-radius:12px;font-size:16px;color:#333;background-color:#fff;box-sizing:border-box;transition:border-color .2s}.cups-identification-new-cups .login-input::placeholder{color:#999;text-transform:none}.cups-identification-new-cups .login-input:focus{outline:none;border-color:#008b95}.cups-identification-new-cups .login-input:disabled{background-color:#f5f5f5;cursor:not-allowed;opacity:.6}.cups-identification-new-cups .login-hint{font-size:12px;color:#666;margin-top:6px;line-height:1.4}.cups-identification-input-group{margin-bottom:20px}.cups-identification-label{display:block;font-size:14px;font-weight:600;color:#008b95;margin-bottom:8px}.cups-identification-hint{font-size:12px;color:#666;margin-top:6px;line-height:1.4}.cups-identification-input{width:100%;padding:14px 16px;border:2px solid #e0e0e0;border-radius:12px;font-size:16px;font-family:monospace;color:#333;box-sizing:border-box;transition:border-color .2s}.cups-identification-input:focus{outline:none;border-color:#008b95}.cups-identification-input:disabled{background-color:#f5f5f5;cursor:not-allowed;opacity:.6}.cups-identification-new-cups-actions{display:flex;gap:12px}.cups-identification-button-secondary,.cups-identification-button-primary{flex:1;padding:14px 20px;border-radius:12px;font-size:16px;font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px;transition:all .2s;border:none}.cups-identification-button-secondary{background:transparent;color:#666;border:2px solid #e0e0e0}.cups-identification-button-secondary:hover:not(:disabled){background:#f5f5f5;border-color:#008b95;color:#008b95}.cups-identification-button-secondary:disabled{cursor:not-allowed;opacity:.5}.cups-identification-button-primary{background:#008b95;color:#fff}.cups-identification-button-primary:hover:not(:disabled){background:#007580;transform:translateY(-2px);box-shadow:0 4px 12px #008b954d}.cups-identification-button-primary:disabled{opacity:.5;cursor:not-allowed;transform:none}.cups-identification-card-title-section{display:flex;align-items:center;justify-content:space-between;gap:12px;flex:1;min-width:0;overflow:hidden}.cups-identification-card-info{display:flex;flex-direction:column;gap:4px;flex:1;min-width:0}.cups-identification-card-name-row{display:flex;align-items:center;gap:8px;min-width:0}.cups-identification-card-custom-name{font-size:18px;font-weight:700;color:#333;margin:0;line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cups-identification-card-icon-buttons{display:flex;gap:4px;flex-shrink:0}.cups-identification-card-edit-icon{background:transparent;border:none;color:#008b95;cursor:pointer;padding:6px;display:flex;align-items:center;justify-content:center;transition:all .2s;border-radius:8px;flex-shrink:0}.cups-identification-card-edit-icon:hover{background:#008b951a}.cups-identification-card-delete-icon{color:#dc2626}.cups-identification-card-delete-icon:hover{background:#dc26261a}.cups-identification-card-edit-section{display:flex;flex-direction:column;gap:8px;width:100%}.cups-identification-card-edit-input{width:100%;padding:10px 12px;border:2px solid #008b95;border-radius:8px;font-size:16px;color:#333;box-sizing:border-box}.cups-identification-card-edit-input:focus{outline:none;border-color:#007580}.cups-identification-card-edit-buttons{display:flex;gap:8px}.cups-identification-card-edit-button{flex:1;padding:8px;border:none;border-radius:8px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s}.cups-identification-card-edit-confirm{background:#008b95;color:#fff}.cups-identification-card-edit-confirm:hover{background:#007580}.cups-identification-card-edit-cancel{background:#e0e0e0;color:#666}.cups-identification-card-edit-cancel:hover{background:#d0d0d0}.cups-identification-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.cups-identification-modal{background:#fff;border-radius:20px;padding:32px 24px;max-width:400px;width:100%;box-shadow:0 20px 60px #0000004d;text-align:center}.cups-identification-modal-icon{width:80px;height:80px;border-radius:50%;background:#dc26261a;color:#dc2626;display:flex;align-items:center;justify-content:center;margin:0 auto 20px}.cups-identification-modal-title{font-size:24px;font-weight:700;color:#333;margin:0 0 12px}.cups-identification-modal-text{font-size:16px;color:#666;line-height:1.5;margin:0 0 28px}.cups-identification-modal-text strong{color:#333;font-weight:600;display:block;margin:8px 0;font-family:monospace;font-size:14px}.cups-identification-modal-buttons{display:flex;gap:12px}.cups-identification-modal-button{flex:1;padding:12px 20px;border-radius:12px;font-size:16px;font-weight:600;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center;gap:8px}.cups-identification-modal-button-cancel{background:transparent;color:#666;border:2px solid #e0e0e0}.cups-identification-modal-button-cancel:hover{background:#f5f5f5;border-color:#d0d0d0}.cups-identification-modal-button-delete{background:#dc2626;color:#fff;border:2px solid #dc2626}.cups-identification-modal-button-delete:hover{background:#b91c1c;border-color:#b91c1c;transform:translateY(-2px);box-shadow:0 4px 12px #dc26264d}.cups-identification-modal-button-primary{background:#008b95;color:#fff;border:2px solid #008b95}.cups-identification-modal-button-primary:hover:not(:disabled){background:#007580;border-color:#007580;transform:translateY(-2px);box-shadow:0 4px 12px #008b954d}.cups-identification-modal-button-primary:disabled{opacity:.5;cursor:not-allowed;transform:none}.cups-identification-logos{display:flex;justify-content:center;align-items:center;gap:32px;margin:32px auto 20px;padding:0 20px;flex-wrap:wrap}.cups-identification-logo{max-width:140px;height:auto;max-height:70px;object-fit:contain;opacity:.9}.capture-method-container{min-height:100vh;background:linear-gradient(135deg,#008b95,#006b73);padding:20px;overflow-y:auto}.capture-method-content{display:flex;flex-direction:column;max-width:600px;width:100%;margin:0 auto;min-height:calc(100vh - 40px)}.capture-method-header-row{display:flex;align-items:center;gap:20px;margin-bottom:20px}.capture-method-back-button{background:#ffffff26;border:1px solid rgba(255,255,255,.3);border-radius:12px;padding:10px;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;width:fit-content;transition:all .2s;flex-shrink:0}.capture-method-back-button:hover{background:#ffffff40}.capture-method-title{font-size:24px;font-weight:700;color:#fff;margin:0}.capture-method-name{font-size:20px;font-weight:600;color:#fff;margin:0 0 8px}.capture-method-subtitle{font-size:14px;color:#fff;margin:0 0 8px;font-family:monospace}.capture-method-description{font-size:16px;color:#fff;margin:0 0 20px;line-height:1.5}.capture-method-options{display:flex;flex-direction:column;gap:16px;margin-bottom:16px}.capture-method-option-card{background:#fff;border-radius:14px;padding:16px;cursor:pointer;transition:all .2s;border:2px solid transparent;text-align:center;min-height:160px}.capture-method-option-card:hover:not(:disabled){transform:translateY(-4px);box-shadow:0 8px 24px #00000026;border-color:#008b95}.capture-method-option-card:disabled{opacity:.5;cursor:not-allowed}.capture-method-option-icon{color:#008b95;margin-bottom:10px;display:flex;align-items:center;justify-content:center}.capture-method-option-title{font-size:17px;font-weight:700;color:#333;margin:0 0 4px}.capture-method-option-description{font-size:14px;color:#666;margin:0;line-height:1.5}.capture-method-option-disabled{display:inline-block;background:#fee;color:#c00;padding:6px 12px;border-radius:8px;font-size:12px;font-weight:600;margin-top:12px}.capture-method-tips{background:#ffffff1a;border-radius:16px;padding:20px;margin-top:0}.capture-method-tips-title{font-size:16px;font-weight:700;color:#fff;margin:0 0 12px}.capture-method-tips-list{list-style:none;padding:0;margin:0}.capture-method-tips-list li{font-size:14px;color:#fff;margin-bottom:8px;padding-left:24px;position:relative}.capture-method-tips-list li:before{content:"✓";position:absolute;left:0;color:#4ade80;font-weight:700}.capture-method-tips-list li.warning-item:before{content:"⚠";color:#fcd34d}.capture-method-tips-list li:last-child{margin-bottom:0}.camera-capture-container{position:fixed;top:0;left:0;right:0;bottom:0;background:#000;display:flex;flex-direction:row}@media screen and (orientation: portrait){.camera-capture-container{transform:rotate(90deg);transform-origin:center center;width:100vh;height:100vw;left:50%;top:50%;margin-left:-50vh;margin-top:-50vw}}.camera-capture-back-button{position:absolute;top:20px;left:20px;z-index:100;background:#00000080;border:1px solid rgba(255,255,255,.3);border-radius:12px;padding:12px;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s}.camera-capture-back-button:hover{background:#000000b3}.camera-capture-video-container{flex:1;position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center}.camera-capture-preview-container{flex:1;position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center;background:#000}.camera-capture-preview-image,.camera-capture-video{width:100%;height:100%;object-fit:cover}@media screen and (orientation: portrait){.camera-capture-video{transform:rotate(-90deg);width:100vw;height:100vh;object-fit:cover}.camera-capture-preview-container .camera-capture-preview-image{transform:rotate(-90deg);width:150%;height:150%;max-width:none;object-fit:cover}}.camera-capture-frame{width:auto;height:70%;max-height:400px;aspect-ratio:5/3;border:3px solid rgba(0,139,149,.8);border-radius:16px;box-shadow:0 0 0 9999px #00000080}.camera-capture-instruction{position:absolute;top:20px;left:50%;transform:translate(-50%);margin-top:0;color:#fff;font-size:14px;font-weight:600;text-align:center;background:#000000b3;padding:8px 20px;border-radius:24px}.camera-capture-loading{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);background:#000c;padding:24px 32px;border-radius:16px;color:#fff;font-size:16px}.camera-capture-overlay{position:absolute;top:0;left:0;right:0;bottom:0;pointer-events:none;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:20px}.camera-capture-controls{background:#000000e6;padding:20px 16px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px;min-height:auto;min-width:120px;max-width:140px}.camera-capture-control-button{background:#ffffff26;border:1px solid rgba(255,255,255,.3);border-radius:50%;width:48px;height:48px;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s}.camera-capture-control-button:hover:not(:disabled){background:#ffffff40;transform:scale(1.1)}.camera-capture-control-button:disabled{opacity:.3;cursor:not-allowed}.camera-capture-capture-button{background:#008b95;border:4px solid #ffffff;border-radius:50%;width:64px;height:64px;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s;box-shadow:0 4px 12px #008b9580}.camera-capture-capture-button:hover:not(:disabled){background:#007580;transform:scale(1.1);box-shadow:0 6px 20px #008b95b3}.camera-capture-capture-button:disabled{opacity:.5;cursor:not-allowed}.camera-capture-preview-button{flex:1;max-width:100%;padding:16px 24px;border-radius:16px;color:#fff;font-size:16px;font-weight:600;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;transition:all .2s;border:none}.camera-capture-preview-button:hover{transform:translateY(-2px);box-shadow:0 6px 20px #0000004d}.camera-capture-preview-overlay{position:absolute;bottom:0;left:0;right:0;background:linear-gradient(to top,rgba(0,0,0,.8),transparent);padding:32px 20px 20px;pointer-events:none}.camera-capture-preview-text{color:#fff;font-size:18px;font-weight:600;text-align:center;margin:0}.camera-capture-retake{background:#666}.camera-capture-retake:hover{background:#555}.camera-capture-confirm{background:#008b95}.camera-capture-confirm:hover{background:#007580}.camera-capture-guide{position:absolute;bottom:auto;top:50%;left:auto;right:160px;transform:translateY(-50%);border-radius:12px;width:50%;max-width:280px;z-index:5}.camera-capture-guide-close{position:absolute;top:12px;right:-4px;background:#fffffff2;border:none;border-radius:50%;width:28px;height:28px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:#000;transition:all .2s;z-index:1;box-shadow:0 2px 8px #0000004d}.camera-capture-guide-close:hover{background:#fff;transform:scale(1.1)}.camera-capture-guide-image{width:100%;height:auto;border-radius:12px;display:block;max-width:260px}.file-upload-container{min-height:100vh;background:linear-gradient(135deg,#008b95,#006b73);padding:20px;overflow-y:auto}.file-upload-content{display:flex;flex-direction:column;max-width:600px;width:100%;margin:0 auto;min-height:calc(100vh - 40px)}.file-upload-header-row{display:flex;align-items:center;gap:20px;margin-bottom:20px}.file-upload-back-button{background:#ffffff26;border:1px solid rgba(255,255,255,.3);border-radius:12px;padding:10px;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;width:fit-content;transition:all .2s;flex-shrink:0}.file-upload-back-button:hover{background:#ffffff40}.file-upload-title{font-size:24px;font-weight:700;color:#fff;margin:0}.file-upload-name{font-size:20px;font-weight:600;color:#fff;margin:0 0 8px}.file-upload-subtitle{font-size:14px;color:#fff;margin:0 0 24px;font-family:monospace}.file-upload-area{background:#fff;border-radius:16px;padding:24px;margin-bottom:24px}.file-upload-placeholder{width:100%;min-height:180px;border:3px dashed #ccc;border-radius:12px;background:#f9f9f9;display:flex;flex-direction:column;align-items:center;justify-content:center;cursor:pointer;transition:all .2s;padding:20px}.file-upload-placeholder:hover{border-color:#008b95;background:#f0f9fa}.file-upload-icon{color:#008b95;margin-bottom:16px}.file-upload-placeholder-text{font-size:18px;font-weight:600;color:#333;margin:0 0 8px}.file-upload-placeholder-subtext{font-size:14px;color:#666;margin:0}.file-upload-preview-container{display:flex;flex-direction:column;gap:16px}.file-upload-preview{width:100%;height:auto;max-height:400px;object-fit:contain;border-radius:12px;box-shadow:0 4px 12px #0000001a}.file-upload-remove-button{padding:12px 24px;background:transparent;border:2px solid #008b95;border-radius:12px;color:#008b95;font-size:16px;font-weight:600;cursor:pointer;transition:all .2s}.file-upload-remove-button:hover{background:#008b951a}.file-upload-tips{background:#ffffff1a;border-radius:16px;padding:20px;margin-bottom:24px}.file-upload-tips-header{display:flex;align-items:center;gap:12px;margin-bottom:12px;color:#fff}.file-upload-tips-title{font-size:16px;font-weight:700;margin:0}.file-upload-tips-list{list-style:none;padding:0;margin:0}.file-upload-tips-list li{font-size:14px;color:#fff;margin-bottom:8px;padding-left:24px;position:relative}.file-upload-tips-list li:before{content:"✓";position:absolute;left:0;color:#4ade80;font-weight:700}.file-upload-tips-list li.warning-item:before{content:"⚠";color:#fcd34d}.file-upload-tips-list li:last-child{margin-bottom:0}.file-upload-continue-button{width:100%;padding:16px 24px;background:#fff;border:none;border-radius:16px;color:#008b95;font-size:18px;font-weight:600;cursor:pointer;transition:all .2s;margin-top:auto}.file-upload-continue-button:hover{transform:translateY(-2px);box-shadow:0 8px 24px #ffffff4d}.rotating{animation:rotate 2s linear infinite}@keyframes rotate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.file-upload-placeholder:disabled{opacity:.7;cursor:not-allowed}.file-upload-placeholder:disabled:hover{transform:none;border-color:#008b9580;background:#008b950d}.ocr-review-container{min-height:100vh;background:linear-gradient(135deg,#008b95,#006b73);padding:20px;overflow-y:auto}.ocr-review-content{display:flex;flex-direction:column;max-width:600px;width:100%;margin:0 auto;padding-bottom:20px}.ocr-review-header-row{display:flex;align-items:center;gap:20px;margin-bottom:20px}.ocr-review-back-button{background:#ffffff26;border:1px solid rgba(255,255,255,.3);border-radius:12px;padding:10px;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;width:fit-content;transition:all .2s;flex-shrink:0}.ocr-review-back-button:hover{background:#ffffff40}.ocr-review-title{font-size:24px;font-weight:700;color:#fff;margin:0}.ocr-review-name{font-size:20px;font-weight:600;color:#fff;margin:0 0 8px}.ocr-review-subtitle{font-size:14px;color:#fff;margin:0 0 24px;font-family:monospace}.ocr-review-image-container{background:#000;border-radius:16px;overflow:hidden;margin-bottom:20px;width:100%;aspect-ratio:4/3;display:flex;align-items:center;justify-content:center}.ocr-review-image{width:100%;height:100%;object-fit:cover;display:block;transition:opacity .3s ease-in-out}@media screen and (orientation: portrait){.ocr-review-image.camera-source{transform:rotate(-90deg);width:135%;height:135%;object-fit:cover}}.ocr-review-processing{background:#fff;border-radius:16px;padding:48px 24px;text-align:center;margin-bottom:20px}.ocr-review-spinner{color:#008b95;margin:0 auto 16px;animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.ocr-review-processing-text{font-size:18px;font-weight:600;color:#333;margin:0 0 8px}.ocr-review-processing-subtext{font-size:14px;color:#666;margin:0}.ocr-review-form{background:#fff;border-radius:16px;padding:24px;margin-bottom:20px}.ocr-review-input-group{margin-bottom:20px}.ocr-review-input-group:last-child{margin-bottom:0}.ocr-review-label{display:flex;align-items:center;gap:6px;font-size:14px;font-weight:600;color:#333;margin-bottom:8px}.ocr-review-label-icon{color:#008b95;flex-shrink:0}.ocr-review-input{width:100%;padding:14px 16px;border:2px solid #e0e0e0;border-radius:12px;font-size:20px;font-weight:700;color:#333;box-sizing:border-box;transition:border-color .2s}.ocr-review-input:focus{outline:none;border-color:#008b95}.ocr-review-input--empty{border-color:#f87171}.ocr-review-input--empty:focus{border-color:#f87171}.ocr-review-info{background:#ffffff1a;border:1px solid rgba(255,255,255,.3);border-radius:12px;padding:16px;display:flex;align-items:flex-start;gap:12px;margin-bottom:20px}.ocr-review-info svg{color:#fcd34d;flex-shrink:0;margin-top:2px}.ocr-review-info-text{font-size:14px;color:#fff;margin:0;line-height:1.5}.ocr-review-confirm-button{width:100%;padding:16px 24px;background:#fff;border:none;border-radius:16px;color:#008b95;font-size:18px;font-weight:600;cursor:pointer;transition:all .2s}.ocr-review-confirm-button:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 8px 24px #ffffff4d}.ocr-review-confirm-button:active:not(:disabled){transform:scale(.98)}.ocr-review-confirm-button:disabled{opacity:.5;cursor:not-allowed}.confirmation-container{min-height:100vh;background:linear-gradient(135deg,#008b95,#006b73);padding:20px;display:flex;align-items:center;justify-content:center;overflow-y:auto}.confirmation-content{display:flex;flex-direction:column;align-items:center;max-width:500px;width:100%;text-align:center;padding:20px 0}.confirmation-icon{color:#4ade80;margin-bottom:24px;animation:scaleIn .5s ease-out}@keyframes scaleIn{0%{transform:scale(0);opacity:0}to{transform:scale(1);opacity:1}}.confirmation-title{font-size:32px;font-weight:700;color:#fff;margin:0 0 16px}.confirmation-message{font-size:16px;color:#fff;margin:0 0 32px;line-height:1.5}.confirmation-details{background:#ffffff1a;border-radius:16px;padding:24px;width:100%;margin-bottom:32px}.confirmation-detail-item{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.confirmation-detail-item:last-child{margin-bottom:0}.confirmation-detail-label{font-size:14px;color:#b0d8da;font-weight:600}.confirmation-detail-value{font-size:14px;color:#fff;font-weight:600;text-align:right}.confirmation-button{width:100%;padding:16px 24px;background:#fff;border:none;border-radius:16px;color:#008b95;font-size:18px;font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:12px;transition:all .2s;margin-bottom:16px}.confirmation-button:hover{transform:translateY(-2px);box-shadow:0 8px 24px #ffffff4d}.confirmation-note{font-size:14px;color:#fff;margin:0;line-height:1.5}.no-connection-container{min-height:100vh;background:linear-gradient(135deg,#008b95,#006b73);padding:20px;display:flex;align-items:center;justify-content:center;overflow-y:auto}.no-connection-content{display:flex;flex-direction:column;align-items:center;max-width:500px;width:100%;text-align:center;padding:20px 0}.no-connection-icon{color:#fff;margin-bottom:24px;animation:pulse 2s ease-in-out infinite}.no-connection-title{font-size:32px;font-weight:700;color:#fff;margin:0 0 16px}.no-connection-message{font-size:16px;color:#fff;margin:0 0 32px;line-height:1.5}.no-connection-info{background:#ffffff1a;border-radius:16px;padding:24px;width:100%;margin-bottom:32px}.no-connection-info-text{font-size:14px;color:#fff;margin:0 0 12px;line-height:1.6}.no-connection-info-text:last-child{margin-bottom:0}.no-connection-button{width:100%;padding:16px 24px;background:#fff;border:none;border-radius:16px;color:#008b95;font-size:18px;font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:12px;transition:all .2s}.no-connection-button:hover{transform:translateY(-2px);box-shadow:0 8px 24px #ffffff4d}.ocr-error-container{min-height:100vh;background:linear-gradient(135deg,#008b95,#006b73);padding:20px;display:flex;align-items:center;justify-content:center;overflow-y:auto}.ocr-error-content{display:flex;flex-direction:column;align-items:center;max-width:500px;width:100%;text-align:center;padding:20px 0}.ocr-error-icon{color:#fff;margin-bottom:24px;animation:pulse 2s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.ocr-error-title{font-size:32px;font-weight:700;color:#fff;margin:0 0 16px}.ocr-error-message{font-size:16px;color:#fff;margin:0 0 32px;line-height:1.5}.ocr-error-info{background:#ffffff1a;border-radius:16px;padding:24px;width:100%;margin-bottom:32px}.ocr-error-info-text{font-size:14px;color:#fff;margin:0 0 12px;line-height:1.6}.ocr-error-info-text:last-child{margin-bottom:0}.ocr-error-button{width:100%;padding:16px 24px;background:#fff;border:none;border-radius:16px;color:#008b95;font-size:18px;font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:12px;transition:all .2s}.ocr-error-button:hover{transform:translateY(-2px);box-shadow:0 8px 24px #ffffff4d}.device-not-supported-container{min-height:100vh;background:linear-gradient(135deg,#008b95,#006b73);padding:20px;display:flex;align-items:center;justify-content:center;overflow-y:auto}.device-not-supported-content{display:flex;flex-direction:column;align-items:center;max-width:500px;width:100%;text-align:center;padding:20px 0}.device-not-supported-logos{display:flex;gap:32px;align-items:center;justify-content:center;margin-bottom:32px;flex-wrap:wrap}.device-not-supported-logo{max-height:80px;max-width:160px;width:auto;height:auto;object-fit:contain}.device-not-supported-icon{color:#fff;margin-bottom:24px;animation:bounce 2s ease-in-out infinite}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.device-not-supported-title{font-size:32px;font-weight:700;color:#fff;margin:0 0 16px}.device-not-supported-message{font-size:16px;color:#fff;margin:0 0 32px;line-height:1.5}.device-not-supported-message strong{color:#fff;font-weight:600}.device-not-supported-info{background:#ffffff1a;border-radius:16px;padding:24px;width:100%}.device-not-supported-info-text{font-size:14px;color:#fff;margin:0 0 12px;line-height:1.6}.device-not-supported-info-text:last-child{margin-bottom:0}.history-container{min-height:100vh;background:linear-gradient(135deg,#008b95,#006b73);padding:20px;overflow-y:auto}.history-content{display:flex;flex-direction:column;max-width:600px;width:100%;margin:0 auto;padding-bottom:20px}.history-back-button{background:#ffffff26;border:1px solid rgba(255,255,255,.3);border-radius:12px;padding:12px;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;width:fit-content;margin-bottom:20px;transition:all .2s}.history-back-button:hover{background:#ffffff40}.history-title{font-size:32px;font-weight:700;color:#fff;margin:0 0 8px}.history-name{font-size:20px;font-weight:600;color:#fff;margin:0 0 4px}.history-subtitle{font-size:14px;color:#fff;margin:0 0 24px;font-family:monospace}.history-empty{background:#ffffff1a;border:1px dashed rgba(255,255,255,.3);border-radius:16px;padding:48px 24px;text-align:center}.history-empty-icon{color:#fff6;margin:0 auto 16px}.history-empty-text{font-size:18px;font-weight:600;color:#fff;margin:0 0 8px}.history-empty-subtext{font-size:14px;color:#fff;margin:0}.history-summary{background:#ffffff1a;border-radius:16px;padding:20px;margin-bottom:24px;display:flex;gap:24px;flex-wrap:wrap}.history-summary-item{flex:1;min-width:120px;display:flex;flex-direction:column;gap:8px}.history-summary-label{font-size:12px;color:#b0d8da;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.history-summary-value{font-size:24px;color:#fff;font-weight:700}.history-info-message{background:#ffffff26;border:1px solid rgba(255,255,255,.3);border-radius:12px;padding:12px 16px;margin-bottom:16px;color:#fff;font-size:14px;font-weight:500;text-align:center}.history-list{display:flex;flex-direction:column;gap:16px}.history-card{background:#fff;border-radius:16px;padding:20px;box-shadow:0 4px 6px #0000001a}.history-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;flex-wrap:wrap;gap:12px}.history-card-badge{background:#008b95;color:#fff;padding:4px 12px;border-radius:12px;font-size:12px;font-weight:600;text-transform:uppercase}.history-card-date{display:flex;align-items:center;gap:8px;color:#666;font-size:14px}.history-card-date svg{color:#008b95}.history-card-reading{display:flex;align-items:center;gap:12px;background:#f0f9fa;padding:16px;border-radius:12px;margin-bottom:12px}.history-card-reading svg{color:#008b95}.history-card-value{font-size:24px;font-weight:700;color:#008b95}.history-card-detail{display:flex;justify-content:space-between;padding:12px 0;border-top:1px solid #f0f0f0;margin-bottom:12px}.history-card-detail-label{font-size:14px;color:#666;font-weight:600}.history-card-detail-value{font-size:14px;color:#333;font-family:monospace}.history-card-observations{background:#fff9e6;border-left:3px solid #fcd34d;padding:12px;border-radius:8px;margin-bottom:12px}.history-card-observations p{font-size:14px;color:#666;margin:0;line-height:1.5}.history-card-status{display:inline-block;padding:6px 12px;border-radius:12px;font-size:12px;font-weight:600}.history-card-status-sent{background:#4ade8026;color:#16a34a}.history-card-status-error{background:#f8717126;color:#dc2626}.history-card-edited-badge{display:inline-flex;align-items:center;justify-content:center;color:#f59e0b;margin-left:4px;flex-shrink:0}.user-guide-container{display:flex;flex-direction:column;height:100vh;background-color:#008b95;overflow-y:auto;position:relative}.user-guide-content{flex-grow:1;padding:16px 16px 40px;display:flex;flex-direction:column;gap:16px;align-items:center}.user-guide-top-bar{display:flex;align-items:center;justify-content:space-between;width:100%;padding:16px 0 10px 25px}.user-guide-close-button{background:#ffffff26;border:1px solid rgba(255,255,255,.3);border-radius:50%;width:40px;height:40px;display:flex;align-items:center;justify-content:center;color:#fff;cursor:pointer;transition:all .2s;flex-shrink:0}.user-guide-close-button:hover{background:#ffffff40}.user-guide-logos{display:flex;align-items:center;gap:24px;flex-wrap:wrap}.user-guide-logo{max-width:140px;height:auto;max-height:70px;object-fit:contain}.user-guide-title{font-size:26px;color:#fff;font-weight:700;text-align:center;margin-bottom:16px}.user-guide-image-container{width:100%;height:180px;background:#ffffff1a;border-radius:16px;display:flex;align-items:center;justify-content:center;overflow:hidden;margin:12px 0}.user-guide-image{width:100%;height:100%;object-fit:cover}.user-guide-body{color:#fff;font-size:16px;line-height:24px;text-align:center;padding:0 8px}.user-guide-navigation{display:flex;gap:12px;width:100%;max-width:400px;margin-top:24px}.user-guide-button{flex:1;padding:14px 24px;border-radius:999px;font-weight:700;font-size:16px;display:flex;align-items:center;justify-content:center;gap:8px;cursor:pointer;transition:all .2s;border:none}.user-guide-button-primary{background-color:#fff;color:#008b95}.user-guide-button-primary:active{transform:scale(.98)}.user-guide-button-secondary{background:transparent;color:#fff;border:2px solid rgba(255,255,255,.5)}.user-guide-button-secondary:hover{background:#ffffff1a}.user-guide-dots{display:flex;gap:8px;justify-content:center;margin-top:20px}.user-guide-dot{width:10px;height:10px;border-radius:50%;background:#ffffff4d;transition:all .3s}.user-guide-dot.active{background:#fff;width:12px;height:12px}.install-prompt-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background-color:#008b95;z-index:9999;display:flex;flex-direction:column;align-items:center;justify-content:safe center;padding:24px;overflow-y:auto;-webkit-overflow-scrolling:touch;animation:installFadeIn .3s ease-out}@keyframes installFadeIn{0%{opacity:0}to{opacity:1}}.install-prompt-close{position:absolute;top:16px;right:16px;background:#ffffff26;border:1px solid rgba(255,255,255,.3);border-radius:50%;width:40px;height:40px;display:flex;align-items:center;justify-content:center;color:#fff;cursor:pointer;transition:all .2s}.install-prompt-close:hover{background:#ffffff40;transform:scale(1.05)}.install-prompt-content{display:flex;flex-direction:column;align-items:center;gap:20px;max-width:400px;width:100%;text-align:center}.install-prompt-logos{display:flex;justify-content:center;align-items:center;gap:32px;margin-bottom:16px;flex-wrap:wrap}.install-prompt-logo{max-width:140px;height:auto;max-height:70px;object-fit:contain}.install-prompt-icon-circle{width:100px;height:100px;border-radius:50%;background:#ffffff26;display:flex;align-items:center;justify-content:center;color:#fff}.install-prompt-title{font-size:28px;color:#fff;font-weight:700;margin:0}.install-prompt-description{color:#fff;font-size:16px;line-height:24px;margin:0}.install-prompt-description-chrome{color:#fff;font-size:16px;line-height:24px;margin:0 0 18px}.install-prompt-install-button{background-color:#fff;border-radius:999px;padding:16px 32px;width:100%;max-width:400px;color:#008b95;font-weight:700;font-size:18px;letter-spacing:.5px;text-align:center;transition:transform .2s;margin-top:12px;border:none;cursor:pointer}.install-prompt-install-button:active{transform:scale(.98)}.install-prompt-skip-button{background:none;border:none;color:#fff;font-size:15px;cursor:pointer;padding:12px 16px;text-decoration:underline;transition:color .2s}.install-prompt-skip-button:hover{color:#fff}.install-guide-steps{display:flex;flex-direction:column;gap:12px;width:100%;max-width:400px;margin-top:4px}.install-guide-step{display:flex;align-items:center;gap:10px}.install-guide-step-number{flex-shrink:0;width:32px;height:32px;border-radius:50%;background:#fff3;border:1.5px solid rgba(255,255,255,.5);display:flex;align-items:center;justify-content:center;color:#fff;font-weight:800;font-size:16px}.install-guide-step-body{display:flex;align-items:center;gap:6px;flex:1;text-align:left}.install-guide-step-icon{flex-shrink:0;display:flex;align-items:center}.install-guide-step-text{color:#fff;font-size:15px;line-height:22px;text-align:left;margin-left:8px}.install-guide-step-text strong{color:#fff}.install-guide-note{background:#ffffff1a;border-radius:12px;padding:14px 16px;width:100%;max-width:400px;margin-top:4px}.install-guide-note p{color:#fffc;font-size:13px;line-height:20px;margin:0;text-align:center}.install-guide-app-icon-wrapper{width:52px;height:52px;border-radius:12px;overflow:hidden;margin-top:-15px;box-shadow:0 4px 16px #0003;flex-shrink:0}.install-guide-app-icon{width:90%;height:90%;padding-top:2px;object-fit:cover;transform:scale(1.5)}@font-face{font-family:"M PLUS 1";src:url(/assets/fonts/MPLUS1-VariableFont_wght.ttf) format("truetype");font-weight:100 900;font-style:normal;font-display:swap}*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none}html,body{height:100%;width:100%;overflow:auto}#root{min-height:100%;width:100%}body{font-family:"M PLUS 1",system-ui,-apple-system,sans-serif;font-optical-sizing:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#008b95}input,textarea,button{font-family:inherit}button{cursor:pointer;border:none;outline:none}input:focus,textarea:focus{outline:none}input[type=text],input[type=number],textarea{font-size:16px}
