:root{--farc-primary:#0072ce;--farc-primary-deep:#005fa3;--farc-secondary:#00a86b;--farc-secondary-light:#e6f0ff;--farc-danger:#e74c3c;--farc-warning:#f59e0b;--farc-bg:#f4f6fa;--farc-white:#ffffff;--farc-text:#26282c;--farc-text-muted:#6b7280;--farc-border:#d8dce2;--farc-radius:8px;--farc-spacing:1.5rem;--farc-gap:0.6rem;--farc-card-shadow:0 2px 16px rgba(0, 0, 0, 0.07), 0 1px 4px rgba(0, 0, 0, 0.04);--farc-card-shadow-hover:0 6px 28px rgba(0, 0, 0, 0.1), 0 2px 8px rgba(0, 0, 0, 0.05);--farc-n-color:#1a56db;--farc-p-color:#7c3aed;--farc-k-color:#059669;--farc-transition:0.18s ease}.farc-header{position:relative;background:linear-gradient(135deg,#003d7a 0%,#0072ce 55%,#005fa3 100%);color:#fff;padding:2.5rem 1rem;overflow:hidden;border-radius:var(--farc-radius);box-shadow:var(--farc-card-shadow);margin-bottom:1.2rem}.farc-header-bg{position:absolute;inset:0;background-image:radial-gradient(circle at 80% 20%,rgb(255 255 255 / .07) 0%,transparent 50%),radial-gradient(circle at 10% 80%,rgb(0 168 107 / .15) 0%,transparent 40%);pointer-events:none}.farc-header-inner{position:relative;z-index:1}.farc-logo{display:flex;align-items:center;gap:.6rem;margin-bottom:.4rem}.farc-logo-icon{font-size:2rem!important;line-height:1;filter:drop-shadow(0 0 8px rgb(255 255 255 / .4))}.farc-logo-text{font-size:clamp(1.25rem, 2.5vw, 1.75rem)!important;font-weight:700;letter-spacing:-.02em;line-height:1}.farc-tagline{font-size:0.82rem!important;color:rgb(255 255 255 / .65)!important;letter-spacing:.04em;text-transform:uppercase}.farc-container{max-width:960px;margin:0 auto}.farc-intro-strip{display:flex;align-items:center;gap:0;background:var(--farc-white)!important;border:1px solid var(--farc-border);border-radius:var(--farc-radius);padding:.9rem 1.4rem;margin-bottom:1.5rem;box-shadow:var(--farc-card-shadow)}.farc-intro-item{display:flex;align-items:center;gap:.5rem;font-size:0.85rem!important;color:var(--farc-text-muted)!important;flex:1;justify-content:center}.farc-intro-num{font-size:1.4rem!important;color:var(--farc-primary)!important;line-height:1}.farc-intro-divider{width:1px;height:2rem;background:var(--farc-border)!important}.farc-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.2rem;align-items:start}.farc-col{display:flex;flex-direction:column;gap:1.2rem}.farc-card{background:var(--farc-white)!important;border:1px solid var(--farc-border);border-radius:var(--farc-radius);padding:var(--farc-spacing);box-shadow:var(--farc-card-shadow);transition:box-shadow var(--farc-transition)}.farc-card:hover{box-shadow:var(--farc-card-shadow-hover)}.farc-card--optional{border-style:dashed;background:#fafbfc!important}.farc-card-header{display:flex;align-items:flex-start;gap:.75rem;margin-bottom:1.2rem;padding-bottom:1rem;border-bottom:1px solid var(--farc-border)}.farc-card-icon{font-size:1.6rem!important;line-height:1;padding-top:2px}.farc-card-title{font-size:1.05rem!important;color:var(--farc-text)!important;margin-bottom:.1rem;display:flex;align-items:center;gap:.5rem}.farc-card-sub{font-size:0.78rem!important;color:var(--farc-text-muted)!important}.farc-badge{font-size:0.65rem!important;font-weight:600;background:#e0f2fe!important;color:#0369a1;border-radius:20px;padding:2px 8px;letter-spacing:.05em;text-transform:uppercase;vertical-align:middle}.farc-field-group{display:flex;flex-direction:column;gap:var(--farc-gap)}.farc-field-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.farc-label{font-size:0.82rem!important;font-weight:600;color:var(--farc-text)!important;display:flex;align-items:center;gap:.4rem}.farc-input,.farc-select{width:100%;min-height:42px!important;padding:.5rem .85rem;border:1px solid var(--farc-border)!important;border-radius:var(--farc-radius);font-size:0.92rem!important;font-family:inherit;color:var(--farc-text)!important;background:var(--farc-white)!important;transition:border-color var(--farc-transition),box-shadow var(--farc-transition);appearance:none;-webkit-appearance:none}.farc-select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%236b7280' stroke-width='2.5'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .75rem center;padding-right:2.2rem;cursor:pointer}.farc-input:focus,.farc-select:focus{outline:none;border-color:var(--farc-primary)!important;box-shadow:0 0 0 3px rgb(0 114 206 / .12)}.farc-input.farc-input--error{border-color:var(--farc-danger)!important}.farc-input.farc-input--valid{border-color:var(--farc-secondary)!important}.farc-tooltip{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;background:#e5e7eb!important;color:#374151!important;border-radius:50%;font-size:0.65rem!important;font-weight:700;cursor:help;position:relative;flex-shrink:0;transition:background var(--farc-transition)}.farc-tooltip:hover{background:var(--farc-primary)!important;color:#fff!important}.farc-tooltip::after{content:attr(data-tip);position:absolute;bottom:calc(100% + 8px);left:50%;transform:translateX(-50%);background:#1e293b!important;color:#fff!important;font-size:0.72rem!important;font-weight:400;padding:.5rem .75rem;border-radius:6px;white-space:normal;width:220px;text-align:left;line-height:1.4;opacity:0;pointer-events:none;transition:opacity 0.15s;z-index:100;box-shadow:0 4px 12px rgb(0 0 0 / .2)}.farc-tooltip::before{content:"";position:absolute;bottom:calc(100% + 2px);left:50%;transform:translateX(-50%);border:5px solid #fff0;border-top-color:#1e293b;opacity:0;pointer-events:none;transition:opacity 0.15s}.farc-tooltip:hover::after,.farc-tooltip:hover::before{opacity:1}.farc-unit-toggle{display:flex;align-items:center;gap:.75rem;margin-bottom:1rem}.farc-unit-label{font-size:0.8rem!important;font-weight:600;color:var(--farc-text-muted)!important;white-space:nowrap}.farc-toggle-group{display:flex;border:1px solid var(--farc-border);border-radius:var(--farc-radius);overflow:hidden}.farc-toggle-btn{padding:.35rem .8rem;font-size:0.78rem!important;font-weight:600;font-family:inherit;border:none;background:var(--farc-white)!important;color:var(--farc-text-muted)!important;cursor:pointer;transition:background var(--farc-transition),color var(--farc-transition)}.farc-toggle-btn--active{background:var(--farc-primary)!important;color:#fff!important}.farc-npk-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:.7rem}.farc-npk-grid--soil{margin-top:0}.farc-npk-card{background:#f9fafb!important;border:1px solid var(--farc-border);border-radius:var(--farc-radius);padding:.7rem .65rem .5rem;display:flex;flex-direction:column;gap:.4rem;transition:border-color var(--farc-transition)}.farc-npk-card--n{border-top:3px solid var(--farc-n-color)}.farc-npk-card--p{border-top:3px solid var(--farc-p-color)}.farc-npk-card--k{border-top:3px solid var(--farc-k-color)}.farc-npk-label{font-size:0.7rem!important;font-weight:700;color:var(--farc-text-muted)!important;text-transform:uppercase;letter-spacing:.04em}.farc-npk-input{font-size:0.9rem!important;padding:.45rem .6rem}.farc-npk-hint{font-size:0.65rem!important;color:var(--farc-secondary)!important;min-height:.9rem;font-weight:500}.farc-bench-row{margin-top:.9rem;display:flex;align-items:center;justify-content:space-between;background:#f0fdf4!important;border:1px solid #bbf7d0;border-radius:var(--farc-radius);padding:.6rem .85rem;gap:.5rem}.farc-bench-label{font-size:0.78rem!important;color:#166534!important}.farc-bench-btn{font-family:inherit;font-size:0.75rem!important;font-weight:600;background:var(--farc-secondary)!important;color:#fff!important;border:none;border-radius:var(--farc-radius);padding:.3rem .75rem;cursor:pointer;transition:background var(--farc-transition);white-space:nowrap}.farc-bench-btn:hover{background:#00875a!important}.farc-grade-row{display:flex;align-items:flex-end;gap:.5rem;margin-top:.4rem}.farc-grade-dash{font-size:1.2rem!important;color:var(--farc-border)!important;padding-bottom:.6rem;flex-shrink:0}.farc-grade-input{text-align:center;font-size:1rem;font-weight:600}.farc-grade-sum-row{display:flex;align-items:center;gap:.4rem;margin-top:.6rem;font-size:0.78rem!important;color:var(--farc-text-muted)!important}.farc-grade-sum-label{font-weight:700}.farc-grade-sum-val{font-weight:700;color:var(--farc-text)!important;transition:color var(--farc-transition)}.farc-grade-sum-val.farc-sum--warn{color:var(--farc-warning)!important}.farc-grade-sum-val.farc-sum--error{color:var(--farc-danger)!important}.farc-button{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;font-family:inherit;font-size:0.92rem!important;font-weight:600;border:none;border-radius:var(--farc-radius);padding:.75rem 1.4rem;cursor:pointer;transition:background var(--farc-transition),transform var(--farc-transition),box-shadow var(--farc-transition);text-decoration:none}.farc-button:active{transform:translateY(1px)}.farc-button--calc{background:linear-gradient(135deg,var(--farc-primary) 0%,#005fa3 100%);color:#fff!important;width:100%;padding:.9rem;font-size:1rem;box-shadow:0 4px 14px rgb(0 114 206 / .25)}.farc-button--calc:hover{background:linear-gradient(135deg,#005fa3 0%,#004a80 100%);box-shadow:0 6px 20px rgb(0 114 206 / .35)}.farc-button-icon{font-size:1.1rem!important}.farc-button--pdf{background:var(--farc-primary)!important;color:#fff!important}.farc-button--copy{background:var(--farc-secondary)!important;color:#fff!important}.farc-button--reset{background:#f1f5f9!important;color:var(--farc-text)!important;border:1px solid var(--farc-border)}.farc-button--outline{background:#fff0;color:var(--farc-text)!important;border:1px solid var(--farc-border)}.farc-button--danger{background:var(--farc-danger)!important;color:#fff!important}.farc-button--pdf:hover{background:var(--farc-primary-deep)!important}.farc-button--copy:hover{background:#00875a!important}.farc-button--reset:hover{background:#e2e8f0!important}.farc-button--danger:hover{background:#c0392b!important}.farc-error-zone{display:flex;align-items:center;gap:.5rem;background:#fef2f2!important;border:1px solid #fecaca;border-radius:var(--farc-radius);padding:.75rem 1rem;color:#b91c1c!important;font-size:0.86rem!important;font-weight:500;margin-top:.5rem;animation:farc-shake 0.35s ease}@keyframes farc-shake{0%,100%{transform:translateX(0)}20%{transform:translateX(-5px)}40%{transform:translateX(5px)}60%{transform:translateX(-3px)}80%{transform:translateX(3px)}}.farc-error-icon{font-size:1rem}.farc-results{margin-top:2rem;animation:farc-slide-up 0.4s ease forwards}@keyframes farc-slide-up{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.farc-results-header{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:1.2rem;padding-bottom:.8rem;border-bottom:2px solid var(--farc-primary)}.farc-results-title{font-size:1.4rem!important;font-weight:500;color:var(--farc-text)!important}.farc-results-meta{font-size:0.78rem!important;color:var(--farc-text-muted)!important;text-align:right}.farc-summary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1rem;margin-bottom:1.5rem}.farc-summary-card{background:var(--farc-white)!important;border:1px solid var(--farc-border);border-radius:var(--farc-radius);padding:1.1rem 1.2rem;box-shadow:var(--farc-card-shadow);position:relative;overflow:hidden}.farc-summary-card::before{content:"";position:absolute;top:0;left:0;right:0;height:3px}.farc-summary-card--n::before{background:var(--farc-n-color)!important}.farc-summary-card--p::before{background:var(--farc-p-color)!important}.farc-summary-card--k::before{background:var(--farc-k-color)!important}.farc-summary-card--total::before{background:linear-gradient(90deg,var(--farc-primary),var(--farc-secondary))!important}.farc-summary-label{font-size:0.72rem!important;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--farc-text-muted)!important;margin-bottom:.3rem}.farc-summary-value{font-size:1.6rem!important;color:var(--farc-text)!important;line-height:1.1}.farc-summary-unit{font-size:0.75rem!important;color:var(--farc-text-muted)!important;font-weight:400}.farc-summary-sub{font-size:0.72rem!important;color:var(--farc-text-muted)!important;margin-top:.25rem}.farc-detail-wrap{background:var(--farc-white)!important;border:1px solid var(--farc-border);border-radius:var(--farc-radius);padding:1.2rem;box-shadow:var(--farc-card-shadow);margin-bottom:1.2rem;overflow-x:auto}.farc-detail-title{font-size:1rem!important;margin-bottom:1rem;color:var(--farc-text)!important}.farc-table{width:100%;border-collapse:collapse;font-size:0.84rem!important;border:none!important}.farc-table tr,.farc-table thead{border:none!important}.farc-table th{background:#f8fafc!important;padding:.55rem .8rem;text-align:left;font-size:0.72rem!important;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--farc-text-muted)!important;border-bottom:2px solid var(--farc-border);white-space:nowrap}.farc-table td{padding:.7rem .8rem;border-right:none;border-left:none;border-bottom:1px solid #f1f5f9;color:var(--farc-text)!important;vertical-align:middle}.farc-table tr:last-child td{border-bottom:none}.farc-table tr:hover td{background:#f9fbfc!important}.farc-td--nutrient{font-weight:600;display:flex;align-items:center;gap:.5rem}.farc-td-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.farc-td-dot--n{background:var(--farc-n-color)!important}.farc-td-dot--p{background:var(--farc-p-color)!important}.farc-td-dot--k{background:var(--farc-k-color)!important}.farc-td--bold{font-weight:700}.farc-notes-box{background:#eff6ff!important;border:1px solid #bfdbfe;border-left:4px solid var(--farc-primary);border-radius:var(--farc-radius);padding:1rem 1.2rem;font-size:0.83rem!important;color:#1e3a5f!important;line-height:1.65;margin-bottom:1.25rem}.farc-notes-box h4{font-weight:700;margin-bottom:.4rem;font-size:0.85rem!important}.farc-notes-box ul{padding-left:1.2rem;display:flex;flex-direction:column;gap:.25rem;list-style:none;margin:0!important}.farc-action-row{display:flex;gap:.75rem;flex-wrap:wrap}.farc-modal-overlay{position:fixed;inset:0;background:rgb(0 0 0 / .45)!important;backdrop-filter:blur(3px);z-index:1000;display:flex;align-items:center;justify-content:center;animation:farc-fade-in 0.2s ease}@keyframes farc-fade-in{from{opacity:0}to{opacity:1}}.farc-modal{background:var(--farc-white)!important;border-radius:12px;padding:2rem;max-width:380px;width:calc(100% - 2rem);text-align:center;box-shadow:0 20px 60px rgb(0 0 0 / .2);animation:farc-scale-in 0.2s ease}@keyframes farc-scale-in{from{transform:scale(.92);opacity:0}to{transform:scale(1);opacity:1}}.farc-modal-icon{font-size:2.5rem!important;margin-bottom:.75rem}.farc-modal-title{font-size:1.3rem!important;margin-bottom:.5rem}.farc-modal-body{font-size:0.85rem!important;color:var(--farc-text-muted)!important;margin-bottom:1.5rem}.farc-modal-actions{display:flex;gap:.75rem;justify-content:center}.farc-toast{position:fixed;bottom:1.5rem;right:1.5rem;background:#1e293b!important;color:#fff!important;padding:.7rem 1.2rem;border-radius:8px;font-size:0.85rem!important;font-weight:500;box-shadow:0 6px 20px rgb(0 0 0 / .25);transform:translateY(100px);opacity:0;transition:transform 0.3s ease,opacity 0.3s ease;z-index:2000;pointer-events:none;max-width:280px}.farc-toast.farc-toast--show{transform:translateY(0);opacity:1}@media (max-width:720px){.farc-logo-text{font-size:1.45rem!important}.farc-grid{grid-template-columns:1fr}.farc-field-row{grid-template-columns:1fr;gap:.75rem}.farc-npk-grid{grid-template-columns:1fr}.farc-grade-row{flex-wrap:wrap}.farc-results-header{flex-direction:column;gap:.3rem}.farc-results-meta{text-align:left}.farc-action-row{flex-direction:column}.farc-action-row .farc-button{width:100%}.farc-intro-strip{padding:.7rem 1rem}.farc-intro-item{font-size:0.75rem!important}.farc-intro-num{font-size:1.1rem!important}.farc-bench-row{flex-direction:column;align-items:flex-start}}@media (max-width:400px){.farc-grade-row{gap:.25rem}.farc-grade-dash{display:none}}@media (min-width:721px) and (max-width:900px){.farc-npk-grid{grid-template-columns:1fr 1fr 1fr}}@media print{.farc-header-bg,.farc-action-row,.farc-button,.farc-modal-overlay,.farc-toast{display:none!important}.farc-card{box-shadow:none;border:1px solid #ccc}}
