:root{--bg:#f7f5f0;--ink:#1a1a18;--ink-soft:#6b6b63;--accent:#2a5c45;--accent-light:#e8f0ec;--accent-warm:#c8d8b0;--rule:#dddbd4;--mono:"DM Mono", monospace;--serif:"DM Serif Display", serif;--sans:"DM Sans", sans-serif}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{background:var(--bg);color:var(--ink);font-family:var(--sans);min-height:100vh;font-size:16px;line-height:1.6;overflow-x:hidden}#root{flex-direction:column;min-height:100vh;display:flex}.activity-selector{flex-direction:column;gap:12px;display:flex}.field-row{grid-template-columns:1fr 1fr;gap:12px;display:grid}.field{flex-direction:column;gap:5px;display:flex}.field label{font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-soft);font-size:10px}.field select,.field input[type=date]{border:1px solid var(--rule);background:var(--bg);width:100%;font-family:var(--sans);color:var(--ink);-webkit-appearance:none;border-radius:2px;outline:none;padding:8px 12px;font-size:13px;transition:border-color .2s,background .2s}.field select:focus,.field input[type=date]:focus{border-color:var(--accent);background:#fff}.field select:disabled,.field input[type=date]:disabled{background:var(--bg);color:var(--ink-soft);cursor:not-allowed;opacity:.5}.version-validity{font-family:var(--mono);letter-spacing:.06em;color:var(--accent);font-size:9px}.scope-description{color:var(--ink-soft);font-size:12px;font-weight:300;line-height:1.5}@media (width<=640px){.field-row{grid-template-columns:1fr}}.amount-input{flex-direction:column;gap:12px;display:flex}.amount-input input[type=number]{border:1px solid var(--rule);background:var(--bg);width:100%;font-family:var(--sans);color:var(--ink);-webkit-appearance:none;-moz-appearance:textfield;border-radius:2px;outline:none;padding:8px 12px;font-size:13px;transition:border-color .2s,background .2s}.amount-input input[type=number]:focus{border-color:var(--accent);background:#fff}.amount-input input[type=number]:disabled{background:var(--bg);color:var(--ink-soft);cursor:not-allowed;opacity:.5}.amount-input input[type=number]::placeholder{color:var(--ink-soft);opacity:.6}.quantity-hint{font-family:var(--mono);letter-spacing:.06em;color:var(--accent);font-size:9px}.results-display{flex-direction:column;gap:0;display:flex}.results-empty{flex-direction:column;justify-content:center;align-items:center;gap:12px;min-height:140px;display:flex}.empty-icon{color:var(--accent-warm)}.empty-icon svg{width:24px;height:24px}.results-prompt{color:var(--ink-soft);text-align:center;max-width:240px;font-size:13px;font-weight:300;line-height:1.5}.result-hero{background:var(--ink);border-radius:2px;flex-direction:column;align-items:center;gap:2px;margin-bottom:16px;padding:20px 16px;display:flex}.result-hero-label{font-family:var(--mono);letter-spacing:.15em;text-transform:uppercase;color:#6a8c6a;font-size:9px}.result-hero-value{font-family:var(--serif);color:var(--accent-warm);letter-spacing:-.02em;font-size:32px;font-weight:400;line-height:1.15}.result-hero-unit{font-family:var(--mono);color:#888;letter-spacing:.06em;font-size:11px}.result-hero-alt{font-family:var(--mono);color:#666;letter-spacing:.04em;margin-top:2px;font-size:10px}.result-details{flex-direction:column;gap:16px;display:flex}.result-detail-group{flex-direction:column;gap:0;display:flex}.detail-group-title{font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--accent);border-bottom:1px solid var(--rule);margin-bottom:2px;padding-bottom:8px;font-size:9px}.detail-row{border-bottom:1px solid var(--rule);justify-content:space-between;align-items:baseline;padding:6px 0;font-size:12px;display:flex}.detail-label{font-family:var(--sans);color:var(--ink-soft);font-weight:300}.detail-value{font-family:var(--mono);color:var(--ink);letter-spacing:.02em;text-align:right;font-size:11px}.quality-badge{font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--accent);background:var(--accent-light);border:1px solid var(--accent-warm);border-radius:2px;padding:1px 6px;font-size:9px}.result-source{font-family:var(--mono);color:var(--ink-soft);letter-spacing:.04em;text-align:right;border-top:1px solid var(--rule);margin-top:12px;padding-top:10px;font-size:10px}.calculator{border:1px solid var(--rule);grid-template-columns:1fr 1fr;gap:0;width:100%;display:grid}.calc-inputs{border-right:1px solid var(--rule);flex-direction:column;padding:24px 28px;display:flex}.calc-inputs-header,.calc-results-header{border-bottom:1px solid var(--rule);align-items:center;gap:10px;margin-bottom:16px;padding-bottom:10px;display:flex}.calc-section-num{font-family:var(--mono);letter-spacing:.12em;color:var(--accent);font-size:10px}.calc-section-title{font-family:var(--serif);color:var(--ink);font-size:18px;font-weight:400;line-height:1.2}.calc-divider{background:var(--rule);height:1px;margin:16px 0}.calc-results{flex-direction:column;padding:24px 28px;display:flex}@media (width<=768px){.calculator{grid-template-columns:1fr}.calc-inputs{border-right:none;border-bottom:1px solid var(--rule)}}.admin{flex-direction:column;gap:1.5rem;display:flex}.admin-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:1rem;display:flex}.admin-user{align-items:center;gap:.75rem;padding-bottom:.25rem;display:flex}.admin-user-email{color:#5a7a56;font-size:.82rem}.admin-signout-btn{color:#5a7a56;cursor:pointer;background:#fff;border:1px solid #c5dbc3;border-radius:5px;padding:.3rem .75rem;font-size:.8rem;font-weight:500;transition:background .15s,color .15s}.admin-signout-btn:hover{color:#dc2626;background:#fef2f2;border-color:#fecaca}.admin-tabs{border-bottom:2px solid #d1e3d0;gap:0;display:flex}.admin-tab{cursor:pointer;color:#5a7a56;white-space:nowrap;background:0 0;border:none;border-bottom:2px solid #0000;border-radius:6px 6px 0 0;margin-bottom:-2px;padding:.6rem 1.3rem;font-size:.9rem;font-weight:500;transition:color .15s,background .15s,border-color .15s}.admin-tab:hover{color:#2d5a27;background:#f0f7ef}.admin-tab.active{color:#2d5a27;background:#fff;border-bottom-color:#2d5a27;font-weight:600}.tab-badge{color:#888;font-size:.85em;font-weight:400}.admin-content{min-height:400px}.admin-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:1rem;display:flex}.admin-toolbar h3{color:#2d5a27;margin:0;font-size:1.05rem;font-weight:600}.toolbar-right{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.admin-loading{color:#5a7a56;padding:1rem 0;font-style:italic}.admin-error{color:#c0392b;background:#fff5f5;border:1px solid #f5c6cb;border-radius:6px;margin-bottom:1rem;padding:.75rem 1rem}.admin-table{border-collapse:collapse;width:100%;font-size:.88rem}.admin-table th{text-align:left;text-transform:uppercase;letter-spacing:.5px;color:#2d5a27;white-space:nowrap;border-bottom:2px solid #d1e3d0;padding:.55rem .75rem;font-size:.75rem}.admin-table td{vertical-align:middle;border-bottom:1px solid #edf5ec;padding:.55rem .75rem}.admin-table tr:hover td{background:#f9fdf9}.row-inactive td{color:#aaa}.row-actions{gap:.4rem;display:flex}.status-badge{text-transform:uppercase;letter-spacing:.4px;border-radius:12px;padding:.15rem .55rem;font-size:.72rem;font-weight:600;display:inline-block}.status-badge.active{color:#2d5a27;background:#edf5ec}.status-badge.inactive{color:#888;background:#f0f0f0}.btn-primary{color:#fff;cursor:pointer;white-space:nowrap;background:#2d5a27;border:none;border-radius:6px;padding:.45rem 1rem;font-size:.88rem;font-weight:600;transition:background .15s}.btn-primary:hover:not(:disabled){background:#1a3a17}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-secondary{color:#2d5a27;cursor:pointer;white-space:nowrap;background:#fff;border:1px solid #d1e3d0;border-radius:6px;padding:.45rem 1rem;font-size:.88rem;font-weight:500;transition:background .15s}.btn-secondary:hover:not(:disabled){background:#f0f7ef}.btn-secondary:disabled{opacity:.5;cursor:not-allowed}.btn-sm{color:#2d5a27;cursor:pointer;white-space:nowrap;background:#fff;border:1px solid #c5dbc3;border-radius:5px;padding:.28rem .65rem;font-size:.78rem;font-weight:500;transition:background .15s}.btn-sm:hover:not(:disabled){background:#edf5ec}.btn-sm:disabled{opacity:.5;cursor:not-allowed}.btn-sm.btn-ghost{color:#888;border-color:#ddd}.btn-sm.btn-ghost:hover:not(:disabled){color:#555;background:#f5f5f5}.btn-icon{cursor:pointer;color:#5a7a56;white-space:nowrap;background:#fff;border:1px solid #d1e3d0;border-radius:5px;padding:.35rem .75rem;font-size:.83rem;transition:background .15s,color .15s}.btn-icon.active{color:#fff;background:#2d5a27;border-color:#2d5a27}.btn-icon:hover:not(.active){color:#2d5a27;background:#edf5ec}.library-form,.factor-form{margin-bottom:1.5rem}.library-form h4,.factor-form h4{color:#2d5a27;margin-bottom:1rem;font-size:.95rem;font-weight:600}.form-grid{grid-template-columns:160px 1fr;align-items:start;gap:.55rem 1rem;margin-bottom:1rem;display:grid}.form-grid label{color:#2d5a27;text-transform:uppercase;letter-spacing:.4px;padding-top:.45rem;font-size:.78rem;font-weight:600}.form-grid input,.form-grid select,.form-grid textarea{color:#111;box-sizing:border-box;background:#fff;border:1px solid #d1e3d0;border-radius:6px;width:100%;padding:.42rem .7rem;font-family:inherit;font-size:.88rem;transition:border-color .15s}.form-grid input:focus,.form-grid select:focus,.form-grid textarea:focus{outline-offset:1px;outline:2px solid #2d5a27}.form-grid textarea{resize:vertical}.form-actions{gap:.75rem;display:flex}.form-error{color:#c0392b;margin-bottom:.75rem;font-size:.85rem}.tag{color:#2d5a27;white-space:nowrap;background:#edf5ec;border-radius:12px;margin:.1rem;padding:.12rem .45rem;font-size:.72rem;display:inline-block}.browser-empty{color:#aaa;text-align:center;padding:2rem 0;font-style:italic}.activity-browser{flex-direction:column;gap:1rem;display:flex}.browser-filters{flex-wrap:wrap;align-items:flex-end;gap:1rem;display:flex}.browser-filters .field{flex-direction:column;gap:.3rem;display:flex}.browser-filters .field label{color:#2d5a27;text-transform:uppercase;letter-spacing:.4px;font-size:.75rem;font-weight:600}.browser-filters .field select,.browser-filters .field input{background:#fff;border:1px solid #d1e3d0;border-radius:6px;padding:.45rem .7rem;font-family:inherit;font-size:.88rem}.browser-filters .field select:focus,.browser-filters .field input:focus{outline-offset:1px;outline:2px solid #2d5a27}.search-field{flex:1;min-width:200px}.search-field input{width:100%}.tree-view{flex-direction:column;gap:.4rem;display:flex}.tree-node{cursor:pointer;text-align:left;background:0 0;border:none;border-radius:6px;align-items:center;gap:.5rem;width:100%;padding:.5rem .75rem;font-family:inherit;font-size:.9rem;transition:background .12s;display:flex}.tree-node:hover{background:#edf5ec}.tree-toggle{color:#5a7a56;flex-shrink:0;width:.9rem;font-size:.78rem}.tree-scope{border:1px solid #d1e3d0;border-radius:8px;overflow:hidden}.scope-node{color:#1a2e1a;background:#f0f7ef;border-radius:0;padding:.6rem .75rem;font-size:.92rem;font-weight:600}.scope-node:hover{background:#e5f2e4}.scope-badge{color:#fff;background:#2d5a27;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;min-width:1.8rem;padding:.1rem .45rem;font-size:.72rem;font-weight:700;display:inline-flex}.scope-desc{color:#5a7a56;margin-left:auto;font-size:.78rem;font-weight:400}.tree-category{border-top:1px solid #edf5ec}.category-node{color:#2d5a27;padding-left:1.25rem;font-weight:500}.count-badge{color:#2d5a27;background:#d1e3d0;border-radius:10px;margin-left:auto;padding:.1rem .5rem;font-size:.72rem;font-weight:600}.tree-activities{background:#fff;flex-direction:column;gap:.15rem;margin:0;padding:.25rem 0 .5rem 2.5rem;list-style:none;display:flex}.tree-activity{padding:0}.activity-link{cursor:pointer;text-align:left;background:0 0;border:none;border-radius:5px;align-items:center;gap:.6rem;width:100%;padding:.35rem .75rem;font-family:inherit;transition:background .12s;display:flex}.activity-link:hover{background:#f0f7ef}.activity-name{color:#1a2e1a;flex:1;font-size:.87rem}.activity-unit{color:#aaa;flex-shrink:0;font-size:.78rem;font-style:italic}.activity-tags{flex-wrap:wrap;flex-shrink:0;gap:.2rem;display:flex}.activity-table td{font-size:.85rem}.activity-table code{color:#2d5a27;background:#f0f7ef;border-radius:4px;padding:.1rem .4rem;font-size:.8rem}.factor-editor{flex-direction:column;gap:1.25rem;display:flex}.factor-editor-empty{color:#5a7a56;text-align:center;justify-content:center;align-items:center;min-height:280px;font-size:.95rem;display:flex}.editor-activity-info h3{color:#1a2e1a;margin:0 0 .2rem;font-size:1.05rem;font-weight:600}.editor-breadcrumb{color:#5a7a56;margin:0;font-size:.8rem}.library-select{color:#111;cursor:pointer;background:#fff;border:1px solid #d1e3d0;border-radius:6px;padding:.4rem .7rem;font-family:inherit;font-size:.88rem}.library-select:focus{outline-offset:1px;outline:2px solid #2d5a27}.factor-timeline{flex-direction:column;display:flex}.timeline-item{align-items:flex-start;gap:.75rem;display:flex}.timeline-marker{flex-direction:column;flex-shrink:0;align-items:center;width:1.2rem;padding-top:1.35rem;display:flex}.timeline-dot{background:#c5dbc3;border:2px solid #d1e3d0;border-radius:50%;flex-shrink:0;width:11px;height:11px}.timeline-item.current .timeline-dot{background:#2d5a27;border-color:#2d5a27}.timeline-line{background:#d1e3d0;flex:1;width:2px;min-height:1.25rem;margin-top:3px}.timeline-content{flex:1;margin-bottom:1rem;padding:1rem 1.25rem}.timeline-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:.5rem;display:flex}.version-tag{color:#1a2e1a;font-size:1rem;font-weight:700}.current-badge{color:#fff;text-transform:uppercase;letter-spacing:.5px;vertical-align:middle;background:#2d5a27;border-radius:12px;margin-left:.4rem;padding:.12rem .45rem;font-size:.68rem;font-weight:700;display:inline-block}.timeline-actions{gap:.4rem;display:flex}.timeline-value{align-items:baseline;gap:.5rem;margin-bottom:.4rem;display:flex}.ef-value{color:#2d5a27;font-variant-numeric:tabular-nums;font-size:1.5rem;font-weight:700}.ef-unit{color:#5a7a56;font-size:.8rem}.timeline-meta{color:#888;flex-wrap:wrap;align-items:center;gap:1rem;font-size:.8rem;display:flex}.data-quality{text-transform:uppercase;letter-spacing:.4px;border-radius:4px;padding:.12rem .4rem;font-size:.7rem;font-weight:600}.quality-high{color:#2d5a27;background:#edf5ec}.quality-medium{color:#9a7d0a;background:#fef9e7}.quality-low{color:#884ea0;background:#fdf2f8}.quality-estimated{color:#ca6f1e;background:#fef5e7}.timeline-source{color:#bbb;margin-top:.4rem;font-size:.78rem;font-style:italic}.login-container{justify-content:center;align-items:center;min-height:400px;padding:2rem;display:flex}.login-card{background:var(--surface,#fff);border:1px solid var(--border,#e5e7eb);border-radius:12px;width:100%;max-width:380px;padding:2.5rem;box-shadow:0 4px 24px #0000000f}.login-title{color:var(--text-primary,#111827);margin:0 0 .25rem;font-size:1.4rem;font-weight:700}.login-subtitle{color:var(--text-secondary,#6b7280);margin:0 0 1.75rem;font-size:.875rem}.login-form{flex-direction:column;gap:1.1rem;display:flex}.login-field{flex-direction:column;gap:.35rem;display:flex}.login-field label{color:var(--text-primary,#111827);font-size:.875rem;font-weight:500}.login-field input{border:1px solid var(--border,#d1d5db);background:var(--input-bg,#fff);color:var(--text-primary,#111827);border-radius:6px;outline:none;padding:.6rem .75rem;font-size:.95rem;transition:border-color .15s}.login-field input:focus{border-color:var(--accent,#2563eb);box-shadow:0 0 0 3px #2563eb1a}.login-error{color:#dc2626;background:#fef2f2;border:1px solid #fecaca;border-radius:6px;margin:0;padding:.5rem .75rem;font-size:.85rem}.login-btn{background:var(--accent,#2563eb);color:#fff;cursor:pointer;border:none;border-radius:6px;margin-top:.25rem;padding:.65rem 1rem;font-size:.95rem;font-weight:600;transition:background .15s,opacity .15s}.login-btn:hover:not(:disabled){background:var(--accent-hover,#1d4ed8)}.login-btn:disabled{opacity:.65;cursor:not-allowed}.app{flex-direction:column;min-height:100vh;display:flex}.site-nav{z-index:100;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--rule);background:#f7f5f0d9;justify-content:space-between;align-items:center;padding:20px 48px;display:flex;position:fixed;top:0;left:0;right:0}.nav-left{align-items:center;gap:32px;display:flex}.nav-logo{font-family:var(--mono);letter-spacing:.08em;color:var(--ink);font-size:13px;font-weight:500;text-decoration:none}.nav-logo span{color:var(--accent)}.nav-links{gap:24px;display:flex}.nav-links a,.nav-link-btn{font-family:var(--mono);letter-spacing:.06em;color:var(--ink-soft);cursor:pointer;background:0 0;border:none;padding:0;font-size:12px;text-decoration:none;transition:color .2s}.nav-links a:hover,.nav-link-btn:hover{color:var(--ink)}.nav-link-btn.active{color:var(--accent)}.nav-right{align-items:center;gap:16px;display:flex}.nav-badge{font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--accent);background:var(--accent-light);border:1px solid var(--accent-warm);border-radius:2px;padding:4px 10px;font-size:11px}.nav-hamburger{cursor:pointer;background:0 0;border:none;flex-direction:column;gap:5px;padding:4px;display:none}.nav-hamburger span{background:var(--ink);transform-origin:50%;width:22px;height:1.5px;transition:transform .2s,opacity .2s;display:block}.nav-hamburger.open span:first-child{transform:translateY(6.5px)rotate(45deg)}.nav-hamburger.open span:nth-child(2){opacity:0}.nav-hamburger.open span:nth-child(3){transform:translateY(-6.5px)rotate(-45deg)}.mobile-menu{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--rule);z-index:99;background:#f7f5f0f7;flex-direction:column;gap:0;padding:24px;display:none;position:fixed;top:57px;left:0;right:0}.mobile-menu.open{display:flex}.mobile-menu a,.mobile-menu button{font-family:var(--mono);letter-spacing:.08em;color:var(--ink);border:none;border-bottom:1px solid var(--rule);cursor:pointer;text-align:left;background:0 0;justify-content:space-between;align-items:center;width:100%;padding:16px 0;font-size:14px;text-decoration:none;display:flex}.mobile-menu a:last-child,.mobile-menu button:last-child{border-bottom:none}.mobile-menu a:after,.mobile-menu button:after{content:"→";color:var(--accent);font-size:12px}.mobile-menu button.active{color:var(--accent)}.page-header{border-bottom:1px solid var(--rule);align-items:baseline;gap:20px;padding:76px 48px 16px;display:flex}.header-label{font-family:var(--mono);letter-spacing:.15em;text-transform:uppercase;color:var(--accent);flex-shrink:0;align-items:center;gap:10px;font-size:10px;display:flex}.header-label:before{content:"";background:var(--accent);width:16px;height:1px;display:block}.page-header h1{font-family:var(--serif);color:var(--ink);letter-spacing:-.01em;padding-bottom:16px;font-size:24px;font-weight:400;line-height:1.2}.page-header h1 em{color:var(--accent);font-style:italic}.main-content{flex:1;width:100%;padding:20px 48px}.site-footer{border-top:1px solid var(--rule);justify-content:space-between;align-items:center;padding:16px 48px;display:flex}.footer-logo{font-family:var(--mono);color:var(--ink-soft);letter-spacing:.06em;font-size:12px}.footer-logo strong{color:var(--ink)}.footer-copy{font-family:var(--mono);color:var(--ink-soft);letter-spacing:.06em;font-size:11px}.footer-copy a{color:var(--ink-soft);text-decoration:none;transition:color .2s}.footer-copy a:hover{color:var(--accent)}@media (width<=900px){.site-nav{padding:16px 24px}.nav-hamburger{display:flex}.nav-links{display:none!important}.page-header{flex-direction:column;gap:8px;padding:76px 24px 12px}.main-content{padding:16px 24px}.site-footer{flex-direction:column;align-items:flex-start;gap:8px;padding:16px 24px}}
