:root{--color-bg: #F7F6F3;--color-surface: #FFFFFF;--color-primary: #217A70;--color-primary-hover: #1A5E56;--color-result-bg: #DCF0EC;--color-header-bg: #EDF7F5;--color-warning: #F4A261;--color-error: #E76F51;--color-text: #141D2B;--color-subtle: #6B7280;--color-border: #E2E4E8;--font-body: "Plus Jakarta Sans", system-ui, -apple-system, sans-serif;--font-mono: "Geist Mono", "Courier New", monospace;--font-size-xs: 11px;--font-size-sm: 12px;--font-size-base: 14px;--font-size-lg: 18px;--font-size-xl: 36px;--spacing-xs: 4px;--spacing-sm: 8px;--spacing-md: 16px;--spacing-lg: 24px;--spacing-xl: 40px;--radius: 14px;--radius-sm: 6px;--radius-pill: 9999px;--shadow-xs: 0 1px 2px rgba(0,0,0,.05);--shadow-sm: 0 2px 6px rgba(0,0,0,.07), 0 1px 2px rgba(0,0,0,.04);--shadow-md: 0 8px 24px rgba(0,0,0,.08), 0 2px 6px rgba(0,0,0,.04);--shadow-lg: 0 20px 48px rgba(0,0,0,.1), 0 4px 12px rgba(0,0,0,.05)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-body);font-size:var(--font-size-base);background:var(--color-bg);color:var(--color-text);line-height:1.6;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.75' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)' opacity='0.022'/%3E%3C/svg%3E")}button{font-family:inherit;cursor:pointer}input,select,textarea{font-family:inherit;font-size:var(--font-size-base)}.app{max-width:960px;margin:0 auto;padding:var(--spacing-lg) var(--spacing-md);display:flex;flex-direction:column;gap:var(--spacing-lg)}.section-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:var(--shadow-sm);overflow:hidden;animation:cardEnter .3s ease both}@keyframes cardEnter{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.section-card:nth-child(1){animation-delay:0ms}.section-card:nth-child(2){animation-delay:60ms}.section-card:nth-child(3){animation-delay:.12s}.section-card:nth-child(4){animation-delay:.18s}.section-header{position:sticky;top:0;z-index:10;background:var(--color-header-bg);border-bottom:1px solid var(--color-border);padding:var(--spacing-md) var(--spacing-lg);display:flex;align-items:center;gap:var(--spacing-sm)}.section-number{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;background:var(--color-primary);color:#fff;font-size:var(--font-size-sm);font-weight:700;flex-shrink:0}.section-title{font-size:var(--font-size-lg);font-weight:700;color:var(--color-text)}.section-body{padding:var(--spacing-lg);display:flex;flex-direction:column;gap:var(--spacing-md)}.result-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--spacing-md)}@media (max-width: 640px){.result-grid{grid-template-columns:1fr}}.result-card{background:var(--color-result-bg);border-radius:var(--radius-sm);padding:var(--spacing-lg) var(--spacing-md)}.result-card--full{grid-column:1 / -1}.result-label{font-size:var(--font-size-sm);text-transform:uppercase;letter-spacing:.08em;color:var(--color-subtle);font-weight:600;margin-bottom:var(--spacing-sm)}.result-value{font-size:var(--font-size-xl);font-weight:800;color:var(--color-text);line-height:1;letter-spacing:-.02em}.result-value--null{font-size:var(--font-size-lg);color:var(--color-subtle);font-weight:400}.result-formula{font-family:var(--font-mono);font-size:var(--font-size-sm);color:var(--color-subtle);margin-top:var(--spacing-sm);line-height:1.5}.field-group{display:flex;flex-direction:column;gap:var(--spacing-xs)}.field-label{font-size:var(--font-size-sm);font-weight:600;color:var(--color-text)}.field-row{display:flex;gap:var(--spacing-sm);align-items:center;flex-wrap:wrap}input[type=number],input[type=text],select{border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:6px 10px;min-height:44px;color:var(--color-text);background:#fff;width:100%}input[type=number]:focus,input[type=text]:focus,select:focus{outline:2px solid var(--color-primary);outline-offset:2px;border-color:var(--color-primary)}.toggle-group{display:flex;border:1px solid var(--color-border);border-radius:var(--radius-pill);overflow:hidden;background:var(--color-bg);padding:3px;gap:2px}.toggle-btn{flex:1;padding:7px 14px;min-height:38px;background:transparent;border:none;border-radius:var(--radius-pill);color:var(--color-subtle);font-family:var(--font-body);font-size:var(--font-size-base);font-weight:500;transition:background .18s ease,color .18s ease,box-shadow .18s ease}.toggle-btn--active{background:var(--color-primary);color:#fff;font-weight:600;box-shadow:var(--shadow-xs)}.toggle-btn:not(.toggle-btn--active):hover{background:var(--color-surface);color:var(--color-text)}.toggle-btn:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--spacing-xs);min-height:44px;padding:8px 16px;border-radius:var(--radius-sm);border:1px solid var(--color-border);background:#fff;color:var(--color-text);font-size:var(--font-size-base);font-weight:500;transition:background .15s,border-color .15s}.btn:hover{background:var(--color-bg);border-color:var(--color-primary)}.btn:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.btn:disabled{opacity:.45;cursor:not-allowed}.btn--primary{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.btn--primary:hover{background:var(--color-primary-hover);border-color:var(--color-primary-hover)}.btn--sm{min-height:36px;padding:6px 12px;font-size:var(--font-size-sm)}.validation-error{font-size:var(--font-size-sm);color:var(--color-error);margin-top:var(--spacing-xs)}.validation-warning{font-size:var(--font-size-sm);color:var(--color-warning);margin-top:var(--spacing-xs)}.app-header{text-align:center;padding:var(--spacing-lg) 0 var(--spacing-sm)}.app-title{font-size:26px;font-weight:700;color:var(--color-primary);margin-bottom:var(--spacing-xs)}.app-subtitle{font-size:var(--font-size-base);color:var(--color-subtle);margin-bottom:var(--spacing-sm)}.disclaimer-bar{background:var(--color-header-bg);border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:var(--spacing-sm) var(--spacing-md);font-size:var(--font-size-sm);color:var(--color-subtle);display:flex;flex-direction:column;gap:var(--spacing-xs)}.disclaimer-summary{font-style:italic}.disclaimer-toggle{background:none;border:none;color:var(--color-primary);font-size:var(--font-size-sm);text-decoration:underline;cursor:pointer;padding:0;text-align:left}.disclaimer-full{margin-top:var(--spacing-xs);line-height:1.7;color:var(--color-subtle)}.save-bar{display:flex;align-items:center;gap:var(--spacing-sm);flex-wrap:wrap}.save-status{font-size:var(--font-size-sm);color:var(--color-subtle);flex:1;min-width:120px}.save-status--success{color:var(--color-primary);font-weight:600}.save-status--warn{color:var(--color-warning)}@media (max-width: 640px){.save-bar{flex-direction:column}.save-bar .btn{width:100%}.save-status{text-align:center}}.checkbox-row{display:flex;align-items:center;gap:var(--spacing-sm);cursor:pointer}.checkbox-row input[type=checkbox]{width:18px;height:18px;min-height:0;accent-color:var(--color-primary);cursor:pointer}.table-controls{display:flex;gap:var(--spacing-sm);flex-wrap:wrap;align-items:center;margin-bottom:var(--spacing-md)}.table-settings{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:var(--spacing-md);margin-bottom:var(--spacing-md)}.table-scroll-wrap{overflow-x:scroll;-webkit-overflow-scrolling:touch;border:1px solid var(--color-border);border-radius:var(--radius-sm)}.pregnancy-table{border-collapse:separate;border-spacing:0;width:max-content;min-width:100%;font-size:var(--font-size-sm)}.pregnancy-table th,.pregnancy-table td{padding:6px 10px;border-right:1px solid var(--color-border);border-bottom:1px solid var(--color-border);white-space:nowrap;background:#fff}.pregnancy-table thead th{background:var(--color-header-bg);font-weight:700;text-align:center;color:var(--color-subtle);font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:.04em}.pregnancy-table thead th.col-label,.pregnancy-table thead th.col-base{background:var(--color-header-bg);position:sticky;z-index:3;text-align:left}.pregnancy-table thead th.col-label{left:0;min-width:140px}.pregnancy-table thead th.col-base{left:140px;min-width:100px}.pregnancy-table tbody td.col-label{position:sticky;left:0;z-index:2;background:#fff;font-weight:500;min-width:140px;border-right:2px solid var(--color-border)}.pregnancy-table tbody td.col-base{position:sticky;left:140px;z-index:2;background:#fff;min-width:100px;border-right:2px solid var(--color-border)}.pregnancy-table tbody tr.derived-row td{background:var(--color-result-bg);font-style:italic;color:var(--color-subtle);text-align:center}.pregnancy-table tbody tr.derived-row td.col-label{background:var(--color-result-bg);font-style:italic;font-weight:600;color:var(--color-text)}.pregnancy-table tbody tr.derived-row td.col-base{background:var(--color-result-bg)}.pregnancy-table tbody tr:last-child td{border-bottom:none}.pregnancy-table thead th:last-child,.pregnancy-table tbody td:last-child{border-right:none}.col-pp{background:var(--color-header-bg)!important;font-weight:700!important}.week-col-past{color:var(--color-subtle)!important;opacity:.55}.week-col-current{background:var(--color-result-bg)!important;color:var(--color-primary)!important;font-weight:700!important;border-bottom:2px solid var(--color-primary)!important}.pregnancy-table thead th.week-col-current{background:var(--color-result-bg)!important;color:var(--color-primary)!important;border-bottom:2px solid var(--color-primary)!important}.table-label-input{border:none;background:transparent;font-size:var(--font-size-sm);width:130px;min-height:30px;padding:2px 4px;border-radius:var(--radius-sm);color:var(--color-text)}.table-label-input:focus{outline:2px solid var(--color-primary);background:#fff}.table-base-input{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:#fff;font-size:var(--font-size-sm);width:76px;min-height:30px;padding:2px 6px;text-align:right}.table-base-input:focus{outline:2px solid var(--color-primary)}.table-cell-value{text-align:right}.row-actions{display:flex;gap:4px;justify-content:center}.row-actions button{width:28px;height:28px;min-height:0;padding:0;font-size:14px;line-height:1;display:flex;align-items:center;justify-content:center}.reseed-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:100}.reseed-dialog{background:#fff;border-radius:var(--radius);padding:var(--spacing-lg);max-width:380px;width:90%;box-shadow:var(--shadow-lg)}.reseed-dialog h3{margin-bottom:var(--spacing-sm);font-size:var(--font-size-lg)}.reseed-dialog p{font-size:var(--font-size-sm);color:var(--color-subtle);margin-bottom:var(--spacing-md)}.reseed-dialog .reseed-buttons{display:flex;gap:var(--spacing-sm)}.dose-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-md)}@media (max-width: 640px){.dose-grid{grid-template-columns:1fr}}.tooltip-wrap{position:relative;display:inline-block}.tooltip-icon{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:50%;background:var(--color-border);color:var(--color-subtle);font-size:11px;font-weight:700;cursor:help;-webkit-user-select:none;user-select:none;vertical-align:middle;margin-left:4px}.tooltip-text{position:absolute;bottom:120%;left:50%;transform:translate(-50%);background:var(--color-text);color:#fff;font-size:var(--font-size-sm);padding:6px 10px;border-radius:var(--radius-sm);white-space:nowrap;pointer-events:none;opacity:0;transition:opacity .15s;z-index:20}.tooltip-wrap:hover .tooltip-text,.tooltip-wrap:focus-within .tooltip-text{opacity:1}.tdd-inputs{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-md)}@media (max-width: 640px){.tdd-inputs{grid-template-columns:1fr}}@media print{body{background:#fff}.save-bar,.table-controls .btn,.row-actions{display:none!important}.app{padding:0;gap:16px}.section-header{position:static}.disclaimer-full{display:block!important}.disclaimer-toggle{display:none}@page{size:landscape;margin:1cm}.section-card{box-shadow:none;border:1px solid #ccc}.pregnancy-table .week-col-odd{display:none!important}.pregnancy-table{font-size:9px;width:100%}.table-scroll-wrap{overflow:visible;border:none}.section-table{break-before:page}}
