:root{--primary-color: #0d8244;--primary-color-light: #e8f3ee;--background-color: #f4f7f9;--text-color: #2c3e50;--text-color-light: #66788a;--card-background: #ffffff;--card-shadow: 0 6px 20px rgba(0, 0, 0, .08);--border-radius: 16px;--border-color: #e0e7ef;--error-color: #d9534f}body{font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;background-color:var(--background-color);color:var(--text-color);margin:0;padding:1rem;display:flex;justify-content:center;align-items:flex-start;min-height:100vh;box-sizing:border-box}.container{max-width:600px;width:100%;text-align:center}header{margin-bottom:2rem}.header-main{display:flex;justify-content:space-between;align-items:center;height:48px;gap:.5rem}.header-title-group{display:flex;align-items:center;gap:.75rem;position:absolute;left:50%;transform:translate(-50%)}header h1{font-size:2.25rem;font-weight:700;margin:0;color:var(--primary-color);white-space:nowrap}header p{color:var(--text-color-light);margin-bottom:0;font-size:1.1rem}.header-controls{display:flex;align-items:center;gap:.75rem;margin-left:auto}.camera-container{position:relative;width:100%;height:0;padding-top:75%;background-color:#111;border-radius:var(--border-radius);overflow:hidden;box-shadow:var(--card-shadow),inset 0 0 0 1px #0000001a}@supports (aspect-ratio: 4 / 3){.camera-container{padding-top:0;height:auto;aspect-ratio:4 / 3}}#camera-feed,#capture-canvas{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover}#capture-btn{position:absolute;bottom:20px;left:50%;transform:translate(-50%);width:70px;height:70px;border-radius:50%;border:6px solid rgba(255,255,255,.9);background-color:transparent;cursor:pointer;transition:all .2s cubic-bezier(.175,.885,.32,1.275);padding:0}#capture-btn:before{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:75%;height:75%;background-color:#fff;border-radius:50%;transition:transform .2s ease-in-out}#capture-btn:hover:not(:disabled):before{transform:translate(-50%,-50%) scale(1.05)}#capture-btn:active:not(:disabled):before{transform:translate(-50%,-50%) scale(.9)}#capture-btn:disabled{cursor:not-allowed;border-color:#fff6}#capture-btn:disabled:before{background-color:#fff6}#flip-camera-btn,#retake-btn{position:absolute;bottom:20px;left:20px;background:#0006;border:none;border-radius:50%;width:44px;height:44px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background-color .2s ease;backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px)}#flip-camera-btn:hover,#retake-btn:hover{background:#0009}.input-separator{margin:1rem 0;font-weight:600;color:var(--text-color-light);display:flex;align-items:center;text-align:center}.input-separator:before,.input-separator:after{content:"";flex:1;border-bottom:1px solid var(--border-color)}.input-separator:not(:empty):before{margin-right:.5em}.input-separator:not(:empty):after{margin-left:.5em}.input-container{margin-bottom:2rem}.text-input-group{display:flex;gap:.5rem}.text-input{flex-grow:1;padding:.85rem;border:1px solid var(--border-color);border-radius:12px;font-size:1rem;transition:border-color .2s ease,box-shadow .2s ease;background-color:var(--card-background)}.text-input:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 3px var(--primary-color-light)}.analyze-button{padding:.75rem 1.5rem;border-radius:12px;border:none;font-size:1rem;font-weight:600;cursor:pointer;background-color:var(--primary-color);color:#fff;transition:background-color .2s ease}.analyze-button:hover:not(:disabled){background-color:#0a6836}.analyze-button:disabled,.text-input:disabled{cursor:not-allowed;background-color:#a5d6b9}.text-input:disabled{background-color:var(--background-color)}.results-container{margin-top:0;padding:1.5rem;background-color:var(--card-background);border-radius:var(--border-radius);box-shadow:var(--card-shadow);min-height:150px;display:flex;justify-content:center;align-items:center;text-align:left;transition:all .3s ease-in-out}#placeholder-text{color:var(--text-color-light);font-size:1.1rem;display:flex;flex-direction:column;align-items:center;gap:1rem;text-align:center}#placeholder-text:before{content:"";display:block;width:50px;height:50px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M23 19a2 2 0 0 1-2 2H3a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h4l2-3h6l2 3h4a2 2 0 0 1 2 2z'%3E%3C/path%3E%3Ccircle cx='12' cy='13' r='4'%3E%3C/circle%3E%3C/svg%3E");background-size:contain;background-position:center;background-repeat:no-repeat;opacity:.4}.error-message{color:var(--error-color);font-weight:500}.loader{border:5px solid var(--border-color);border-top:5px solid var(--primary-color);border-radius:50%;width:40px;height:40px;animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.result-card{width:100%;animation:fadeIn .5s ease-in-out forwards}@keyframes fadeIn{0%{opacity:0;transform:translateY(15px)}to{opacity:1;transform:translateY(0)}}.result-card__title{text-align:center;margin-top:0;margin-bottom:1.5rem;font-size:1.75rem;font-weight:600}.carbon-estimate{display:flex;align-items:center;gap:1rem;background-color:var(--primary-color-light);padding:1rem;border-radius:12px;margin-bottom:1.5rem}.carbon-estimate__icon svg{color:var(--primary-color)}.carbon-estimate__value{font-size:1.75rem;font-weight:700;margin:0;color:var(--primary-color)}.carbon-estimate__unit{font-weight:500;font-size:1.2rem}.carbon-estimate__label{margin:0;color:#555;font-size:.9rem}.details-section{margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid var(--border-color);position:relative}.details-section h3{margin-top:0;margin-bottom:1rem;font-size:1.1rem;font-weight:600}.details-section ul{list-style-type:none;padding-left:0}.details-section li{margin-bottom:.5rem;color:var(--text-color-light)}.alternatives-list li{margin-bottom:1rem}.alternatives-list p{margin:.25rem 0 0;line-height:1.5}.alternatives-list em{color:var(--primary-color);font-style:normal}.breakdown-table{width:100%;border-collapse:collapse}.breakdown-table td{padding:.75rem .5rem;border-bottom:1px solid var(--border-color)}.breakdown-table tr:last-child td{border-bottom:none}.breakdown-table td:last-child{text-align:right;font-weight:600}.sources-list a{color:var(--primary-color);text-decoration:none;font-weight:500}.sources-list a:hover{text-decoration:underline}.save-footprint-btn{display:block;width:100%;padding:.85rem;margin-top:2rem;font-size:1rem;font-weight:600;color:#fff;background-color:var(--primary-color);border:none;border-radius:12px;cursor:pointer;transition:all .2s ease}.save-footprint-btn:hover:not(:disabled){background-color:#0a6836;transform:translateY(-2px);box-shadow:0 4px 10px #0000001a}.save-footprint-btn:disabled{background-color:#a5d6b9;cursor:not-allowed}.personal-footprint{margin-top:2.5rem;padding:1.5rem;background-color:var(--primary-color-light);border-radius:var(--border-radius)}.personal-footprint h2{margin:0 0 .5rem;font-size:1.25rem;font-weight:600}#total-footprint-value{margin:0;font-size:2.25rem;font-weight:700;color:var(--primary-color)}.history-container{margin-top:2.5rem;text-align:left}.history-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}#clear-history-btn{background:none;border:1px solid var(--border-color);border-radius:10px;padding:.5rem 1rem;cursor:pointer;color:var(--text-color-light);font-weight:500;transition:all .2s ease}#clear-history-btn:hover{background-color:var(--card-background);border-color:#aaa;color:var(--text-color)}#history-empty{text-align:center;padding:2rem;background-color:var(--card-background);border-radius:var(--border-radius);border:1px dashed var(--border-color)}#history-empty p{margin:0 0 .25rem;font-weight:500}#history-empty span{color:var(--text-color-light);font-size:.9rem}#history-list{display:grid;gap:1rem}.history-item{display:flex;align-items:center;gap:1rem;padding:1rem;background-color:var(--card-background);border-radius:var(--border-radius);box-shadow:0 2px 8px #0000000f;position:relative;overflow:hidden;transition:transform .2s ease,box-shadow .2s ease}.history-item:hover{transform:translateY(-2px);box-shadow:0 4px 12px #00000014}.history-item__thumbnail{width:60px;height:60px;object-fit:cover;border-radius:10px;flex-shrink:0;border:1px solid var(--border-color)}.history-item__info{flex-grow:1}.history-item__name{margin:0 0 .25rem;font-size:1rem;font-weight:600}.history-item__estimate{margin:0;color:var(--text-color-light)}.history-item__saved-badge{position:absolute;top:10px;right:10px;background-color:var(--primary-color);color:#fff;padding:3px 8px;border-radius:12px;font-size:.75rem;font-weight:600}.settings-btn{background-color:var(--primary-color-light);border:none;border-radius:50%;width:40px;height:40px;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--primary-color)}.modal-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:#0009;display:flex;justify-content:center;align-items:center;z-index:1000;backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px);opacity:0;visibility:hidden;transition:opacity .3s ease,visibility .3s ease}.modal-overlay:focus{outline:none}.modal-overlay.show{opacity:1;visibility:visible}.modal-content{background:#fff;padding:2rem;border-radius:var(--border-radius);width:90%;max-width:450px;box-shadow:0 10px 30px #0000001a;position:relative;transform:scale(.95);transition:transform .3s ease}.modal-overlay.show .modal-content{transform:scale(1)}.modal-close-btn{position:absolute;top:10px;right:10px;background:none;border:none;font-size:2rem;color:var(--text-color-light);cursor:pointer;line-height:1}.modal-content h2{margin-top:0;font-weight:600;text-align:center;margin-bottom:2rem}.btn-primary{padding:.75rem 1.5rem;border-radius:12px;border:none;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s ease;background-color:var(--primary-color);color:#fff}.btn-primary:hover{background-color:#0a6836}.modal-actions{display:flex;justify-content:flex-end;margin-top:2rem}.welcome-list{text-align:left;list-style:none;padding:0;margin:1.5rem 0}.welcome-list li{font-size:1.1rem;margin-bottom:1rem;color:var(--text-color)}#settings-modal .modal-content{text-align:left}#settings-modal fieldset{border:1px solid var(--border-color);border-radius:12px;margin-bottom:1.5rem;padding:1rem}#settings-modal legend{font-weight:600;padding:0 .5rem}#settings-modal label{display:block;margin-bottom:.75rem}#settings-modal label:last-child{margin-bottom:0}.settings-input{width:100%;padding:.75rem;border:1px solid var(--border-color);border-radius:10px;font-size:1rem;box-sizing:border-box}.settings-note{font-size:.8rem;color:var(--text-color-light);margin:.5rem 0 0}.refinement-form{margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid var(--border-color)}.refinement-form p{margin-top:0;margin-bottom:.75rem;font-size:.9rem;color:var(--text-color-light)}.refinement-input-group{display:flex;gap:.5rem}.refinement-input{flex-grow:1;padding:.75rem;border:1px solid var(--border-color);border-radius:10px;font-size:1rem;transition:border-color .2s ease,box-shadow .2s ease}.refinement-input:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 3px var(--primary-color-light)}.refinement-button{padding:.75rem 1.5rem;border-radius:10px;border:none;font-size:1rem;font-weight:600;cursor:pointer;background-color:var(--primary-color);color:#fff;transition:background-color .2s ease}.refinement-button:hover{background-color:#0a6836}.faq-btn{background-color:var(--border-color);color:var(--text-color-light);border:none;width:28px;height:28px;border-radius:50%;font-size:1rem;font-weight:700;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center;line-height:1}.faq-btn:hover{background-color:#d1dae5;transform:scale(1.1)}.modal-faq{max-width:600px;text-align:left}.faq-content{max-height:60vh;overflow-y:auto;padding-right:1rem}.faq-content details{border-bottom:1px solid var(--border-color);padding:1rem 0}.faq-content details:last-of-type{border-bottom:none}.faq-content summary{font-weight:600;cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center}.faq-content summary::-webkit-details-marker{display:none}.faq-content summary:after{content:"+";font-size:1.5rem;font-weight:400;color:var(--primary-color);transition:transform .2s ease}.faq-content details[open] summary:after{transform:rotate(45deg)}.faq-answer{display:grid;grid-template-rows:0fr;transition:grid-template-rows .3s ease-out}details[open] .faq-answer{grid-template-rows:1fr}.faq-answer>div{overflow:hidden;color:var(--text-color-light);line-height:1.6;padding-top:1rem}.faq-content .disclaimer summary{color:var(--error-color)}.faq-content .disclaimer .faq-answer>div{color:var(--error-color)}.fatal-error-container{position:fixed;top:0;left:0;width:100%;height:100%;background-color:var(--background-color);display:flex;justify-content:center;align-items:center;z-index:2000;text-align:center;padding:1rem;box-sizing:border-box}.fatal-error-container>div{max-width:500px}.fatal-error-container h1{color:var(--error-color)}
