.rdp-root{--rdp-accent-color: blue;--rdp-accent-background-color: #f0f0ff;--rdp-day-height: 44px;--rdp-day-width: 44px;--rdp-day_button-border-radius: 100%;--rdp-day_button-border: 2px solid transparent;--rdp-day_button-height: 42px;--rdp-day_button-width: 42px;--rdp-selected-border: 2px solid var(--rdp-accent-color);--rdp-disabled-opacity: .5;--rdp-outside-opacity: .75;--rdp-today-color: var(--rdp-accent-color);--rdp-dropdown-gap: .5rem;--rdp-months-gap: 2rem;--rdp-nav_button-disabled-opacity: .5;--rdp-nav_button-height: 2.25rem;--rdp-nav_button-width: 2.25rem;--rdp-nav-height: 2.75rem;--rdp-range_middle-background-color: var(--rdp-accent-background-color);--rdp-range_middle-color: inherit;--rdp-range_start-color: white;--rdp-range_start-background: linear-gradient( var(--rdp-gradient-direction), transparent 50%, var(--rdp-range_middle-background-color) 50% );--rdp-range_start-date-background-color: var(--rdp-accent-color);--rdp-range_end-background: linear-gradient( var(--rdp-gradient-direction), var(--rdp-range_middle-background-color) 50%, transparent 50% );--rdp-range_end-color: white;--rdp-range_end-date-background-color: var(--rdp-accent-color);--rdp-week_number-border-radius: 100%;--rdp-week_number-border: 2px solid transparent;--rdp-week_number-height: var(--rdp-day-height);--rdp-week_number-opacity: .75;--rdp-week_number-width: var(--rdp-day-width);--rdp-weeknumber-text-align: center;--rdp-weekday-opacity: .75;--rdp-weekday-padding: .5rem 0rem;--rdp-weekday-text-align: center;--rdp-gradient-direction: 90deg;--rdp-animation_duration: .3s;--rdp-animation_timing: cubic-bezier(.4, 0, .2, 1)}.rdp-root[dir=rtl]{--rdp-gradient-direction: -90deg}.rdp-root[data-broadcast-calendar=true]{--rdp-outside-opacity: unset}.rdp-root{position:relative;box-sizing:border-box}.rdp-root *{box-sizing:border-box}.rdp-day{width:var(--rdp-day-width);height:var(--rdp-day-height);text-align:center}.rdp-day_button{background:none;padding:0;margin:0;cursor:pointer;font:inherit;color:inherit;justify-content:center;align-items:center;display:flex;width:var(--rdp-day_button-width);height:var(--rdp-day_button-height);border:var(--rdp-day_button-border);border-radius:var(--rdp-day_button-border-radius)}.rdp-day_button:disabled{cursor:revert}.rdp-caption_label{z-index:1;position:relative;display:inline-flex;align-items:center;white-space:nowrap;border:0}.rdp-dropdown:focus-visible~.rdp-caption_label{outline:5px auto Highlight;outline:5px auto -webkit-focus-ring-color}.rdp-button_next,.rdp-button_previous{border:none;background:none;padding:0;margin:0;cursor:pointer;font:inherit;color:inherit;-moz-appearance:none;-webkit-appearance:none;display:inline-flex;align-items:center;justify-content:center;position:relative;appearance:none;width:var(--rdp-nav_button-width);height:var(--rdp-nav_button-height)}.rdp-button_next:disabled,.rdp-button_next[aria-disabled=true],.rdp-button_previous:disabled,.rdp-button_previous[aria-disabled=true]{cursor:revert;opacity:var(--rdp-nav_button-disabled-opacity)}.rdp-chevron{display:inline-block;fill:var(--rdp-accent-color)}.rdp-root[dir=rtl] .rdp-nav .rdp-chevron{transform:rotate(180deg);transform-origin:50%}.rdp-dropdowns{position:relative;display:inline-flex;align-items:center;gap:var(--rdp-dropdown-gap)}.rdp-dropdown{z-index:2;opacity:0;-webkit-appearance:none;-moz-appearance:none;appearance:none;position:absolute;inset-block-start:0;inset-block-end:0;inset-inline-start:0;width:100%;margin:0;padding:0;cursor:inherit;border:none;line-height:inherit}.rdp-dropdown_root{position:relative;display:inline-flex;align-items:center}.rdp-dropdown_root[data-disabled=true] .rdp-chevron{opacity:var(--rdp-disabled-opacity)}.rdp-month_caption{display:flex;align-content:center;height:var(--rdp-nav-height);font-weight:700;font-size:large}.rdp-root[data-nav-layout=around] .rdp-month,.rdp-root[data-nav-layout=after] .rdp-month{position:relative}.rdp-root[data-nav-layout=around] .rdp-month_caption{justify-content:center;margin-inline-start:var(--rdp-nav_button-width);margin-inline-end:var(--rdp-nav_button-width);position:relative}.rdp-root[data-nav-layout=around] .rdp-button_previous{position:absolute;inset-inline-start:0;top:0;height:var(--rdp-nav-height);display:inline-flex}.rdp-root[data-nav-layout=around] .rdp-button_next{position:absolute;inset-inline-end:0;top:0;height:var(--rdp-nav-height);display:inline-flex;justify-content:center}.rdp-months{position:relative;display:flex;flex-wrap:wrap;gap:var(--rdp-months-gap);max-width:fit-content}.rdp-month_grid{border-collapse:collapse}.rdp-nav{position:absolute;inset-block-start:0;inset-inline-end:0;display:flex;align-items:center;height:var(--rdp-nav-height)}.rdp-weekday{opacity:var(--rdp-weekday-opacity);padding:var(--rdp-weekday-padding);font-weight:500;font-size:smaller;text-align:var(--rdp-weekday-text-align);text-transform:var(--rdp-weekday-text-transform)}.rdp-week_number{opacity:var(--rdp-week_number-opacity);font-weight:400;font-size:small;height:var(--rdp-week_number-height);width:var(--rdp-week_number-width);border:var(--rdp-week_number-border);border-radius:var(--rdp-week_number-border-radius);text-align:var(--rdp-weeknumber-text-align)}.rdp-today:not(.rdp-outside){color:var(--rdp-today-color)}.rdp-selected{font-weight:700;font-size:large}.rdp-selected .rdp-day_button{border:var(--rdp-selected-border)}.rdp-outside{opacity:var(--rdp-outside-opacity)}.rdp-disabled:not(.rdp-selected){opacity:var(--rdp-disabled-opacity)}.rdp-hidden{visibility:hidden;color:var(--rdp-range_start-color)}.rdp-range_start{background:var(--rdp-range_start-background)}.rdp-range_start .rdp-day_button{background-color:var(--rdp-range_start-date-background-color);color:var(--rdp-range_start-color)}.rdp-range_middle{background-color:var(--rdp-range_middle-background-color)}.rdp-range_middle .rdp-day_button{border:unset;border-radius:unset;color:var(--rdp-range_middle-color)}.rdp-range_end{background:var(--rdp-range_end-background);color:var(--rdp-range_end-color)}.rdp-range_end .rdp-day_button{color:var(--rdp-range_start-color);background-color:var(--rdp-range_end-date-background-color)}.rdp-range_start.rdp-range_end{background:revert}.rdp-focusable{cursor:pointer}@keyframes rdp-slide_in_left{0%{transform:translate(-100%)}to{transform:translate(0)}}@keyframes rdp-slide_in_right{0%{transform:translate(100%)}to{transform:translate(0)}}@keyframes rdp-slide_out_left{0%{transform:translate(0)}to{transform:translate(-100%)}}@keyframes rdp-slide_out_right{0%{transform:translate(0)}to{transform:translate(100%)}}.rdp-weeks_before_enter{animation:rdp-slide_in_left var(--rdp-animation_duration) var(--rdp-animation_timing) forwards}.rdp-weeks_before_exit{animation:rdp-slide_out_left var(--rdp-animation_duration) var(--rdp-animation_timing) forwards}.rdp-weeks_after_enter{animation:rdp-slide_in_right var(--rdp-animation_duration) var(--rdp-animation_timing) forwards}.rdp-weeks_after_exit{animation:rdp-slide_out_right var(--rdp-animation_duration) var(--rdp-animation_timing) forwards}.rdp-root[dir=rtl] .rdp-weeks_after_enter{animation:rdp-slide_in_left var(--rdp-animation_duration) var(--rdp-animation_timing) forwards}.rdp-root[dir=rtl] .rdp-weeks_before_exit{animation:rdp-slide_out_right var(--rdp-animation_duration) var(--rdp-animation_timing) forwards}.rdp-root[dir=rtl] .rdp-weeks_before_enter{animation:rdp-slide_in_right var(--rdp-animation_duration) var(--rdp-animation_timing) forwards}.rdp-root[dir=rtl] .rdp-weeks_after_exit{animation:rdp-slide_out_left var(--rdp-animation_duration) var(--rdp-animation_timing) forwards}@keyframes rdp-fade_in{0%{opacity:0}to{opacity:1}}@keyframes rdp-fade_out{0%{opacity:1}to{opacity:0}}.rdp-caption_after_enter{animation:rdp-fade_in var(--rdp-animation_duration) var(--rdp-animation_timing) forwards}.rdp-caption_after_exit{animation:rdp-fade_out var(--rdp-animation_duration) var(--rdp-animation_timing) forwards}.rdp-caption_before_enter{animation:rdp-fade_in var(--rdp-animation_duration) var(--rdp-animation_timing) forwards}.rdp-caption_before_exit{animation:rdp-fade_out var(--rdp-animation_duration) var(--rdp-animation_timing) forwards}:root{--color-bg: #f0f4f8;--color-surface: #ffffff;--color-surface-hover: #f8fafc;--color-primary: #0ea5e9;--color-primary-dark: #0284c7;--color-primary-light: #e0f2fe;--color-secondary: #10b981;--color-secondary-light: #d1fae5;--color-warning: #f59e0b;--color-warning-light: #fef3c7;--color-danger: #ef4444;--color-danger-light: #fee2e2;--color-text: #1e293b;--color-text-secondary: #64748b;--color-text-muted: #94a3b8;--color-border: #e2e8f0;--color-border-light: #f1f5f9;--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-xl: 20px;--shadow-sm: 0 1px 3px rgba(0,0,0,.06), 0 1px 2px rgba(0,0,0,.04);--shadow-md: 0 4px 12px rgba(0,0,0,.07), 0 2px 4px rgba(0,0,0,.04);--shadow-lg: 0 10px 30px rgba(0,0,0,.08), 0 4px 8px rgba(0,0,0,.04);--font-family: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--sidebar-width: 260px;--header-height: 70px}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:var(--font-family);background:var(--color-bg);color:var(--color-text);line-height:1.6;min-height:100vh;overflow-y:scroll;overflow-x:hidden;scrollbar-gutter:stable}a{color:inherit;text-decoration:none}button{font-family:inherit;cursor:pointer;border:none;outline:none}input,select,textarea{font-family:inherit;font-size:inherit}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--color-text-muted);border-radius:3px}.app-layout{min-height:100vh;width:100%;padding-left:var(--sidebar-width);box-sizing:border-box}.main-content{margin-left:0;padding:32px 40px;width:100%;min-width:0;box-sizing:border-box}.sidebar{position:fixed;top:0;left:0;width:var(--sidebar-width);height:100vh;background:var(--color-surface);border-right:1px solid var(--color-border);display:flex;flex-direction:column;z-index:100;overflow-y:auto}.sidebar-collapse-btn{display:none}@media (min-width: 769px){.app-layout{transition:padding-left .2s ease}.app-layout.sidebar-collapsed{padding-left:0}.sidebar{transition:transform .2s ease}.sidebar.sidebar--collapsed{transform:translate(-100%)}.sidebar-collapse-btn{display:flex;align-items:center;justify-content:center;position:absolute;top:50%;right:-14px;transform:translateY(-50%);width:28px;height:28px;padding:0;border:1px solid var(--color-border);border-radius:50%;background:var(--color-surface);color:var(--color-text-secondary);cursor:pointer;box-shadow:0 1px 4px #0f172a1f;z-index:101}.sidebar-collapse-btn:hover{background:var(--color-bg);color:var(--color-text)}.sidebar-edge-hotzone{position:fixed;top:0;left:0;width:10px;height:100vh;z-index:100}.sidebar-expand-btn{display:flex;align-items:center;justify-content:center;position:fixed;top:50%;left:16px;transform:translateY(-50%);width:36px;height:36px;padding:0;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text-secondary);cursor:pointer;box-shadow:0 2px 8px #0f172a1a;z-index:101}.sidebar-expand-btn:hover{background:var(--color-bg);color:var(--color-text)}}.sidebar-logo{display:flex;align-items:center;gap:12px;padding:24px 20px;border-bottom:1px solid var(--color-border-light)}.sidebar-logo svg{width:40px;height:40px;flex-shrink:0}.sidebar-logo h1{font-size:1.25rem;font-weight:800;color:var(--color-primary);letter-spacing:-.02em}.sidebar-logo span{display:block;font-size:.7rem;font-weight:500;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.08em}.sidebar-nav{padding:16px 12px;flex:1;display:flex;flex-direction:column;gap:4px}.nav-section-label{font-size:.68rem;font-weight:600;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.1em;padding:16px 12px 8px}.nav-link{display:flex;align-items:center;gap:12px;padding:11px 14px;border-radius:var(--radius-sm);font-size:.9rem;font-weight:500;color:var(--color-text-secondary);transition:background-color .15s ease,color .15s ease,border-color .15s ease}.nav-link:hover{background:var(--color-bg);color:var(--color-text)}.nav-link.active{background:var(--color-primary-light);color:var(--color-primary-dark);font-weight:500}.nav-link.nav-link-disabled{color:#94a3b8;background:#f1f5f9;cursor:not-allowed;pointer-events:none}.nav-link.nav-link-disabled svg{color:#94a3b8}.nav-link svg{width:20px;height:20px;flex-shrink:0}.nav-link-cages-done{color:#16a34a;font-weight:500}.nav-link-cages-done svg{color:#16a34a}.nav-link-cages-done.active{background:#dcfce7;color:#166534}.nav-link-water-done{color:#16a34a;font-weight:500}.nav-link-water-done svg{color:#16a34a}.nav-link-water-done.active{background:#dcfce7;color:#166534}.nav-link-inventory-risk{color:#dc2626;font-weight:500}.nav-link-inventory-risk svg{color:#dc2626}.nav-link-inventory-risk.active{background:#fee2e2;color:#991b1b}.nav-link-sidebar-green{color:#16a34a;font-weight:500}.nav-link-sidebar-green svg{color:#16a34a}.nav-link-sidebar-green.active{background:#dcfce7;color:#166534}.nav-link-sidebar-green.active svg{color:#166534}.field-error{color:var(--color-danger);font-size:.75rem;margin-top:4px;display:block}.cage-filters{display:flex;flex-wrap:wrap;gap:8px;margin:4px 0 16px}.cage-filter-btn{border:1px solid var(--color-border);background:#fff;color:var(--color-text-secondary);border-radius:999px;padding:6px 12px;font-size:.82rem;cursor:pointer}.cage-filter-btn:hover{border-color:var(--color-primary);color:var(--color-primary-dark)}.cage-filter-btn.active{background:var(--color-primary-light);border-color:var(--color-primary);color:var(--color-primary-dark);font-weight:600}.cage-mini-alerts{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0}.cage-mini-alert{display:inline-flex;align-items:center;gap:4px;font-size:.72rem;color:#9a3412;background:#ffedd5;border:1px solid #fdba74;padding:2px 8px;border-radius:999px}.sidebar-footer{padding:16px 20px;border-top:1px solid var(--color-border-light);font-size:.75rem;color:var(--color-text-muted);text-align:center}.page-header{margin-bottom:32px}.page-header h2{font-size:1.75rem;font-weight:800;letter-spacing:-.03em;color:var(--color-text)}.page-header p{font-size:.95rem;color:var(--color-text-secondary);margin-top:4px}.card{background:var(--color-surface);border-radius:var(--radius-lg);border:1px solid var(--color-border);box-shadow:var(--shadow-sm);overflow:hidden;transition:box-shadow .2s ease}.card:hover{box-shadow:var(--shadow-md)}.card-header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;border-bottom:1px solid var(--color-border-light)}.card-header h3{font-size:1rem;font-weight:700;letter-spacing:-.01em}.card-body{padding:24px}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:20px;margin-bottom:28px}.stat-card{background:var(--color-surface);border-radius:var(--radius-lg);border:1px solid var(--color-border);box-shadow:var(--shadow-sm);padding:24px;display:flex;align-items:flex-start;gap:16px;transition:box-shadow .2s ease,border-color .2s ease}.stat-card:hover{box-shadow:var(--shadow-md)}.stat-icon{width:48px;height:48px;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;flex-shrink:0}.stat-icon.blue{background:var(--color-primary-light);color:var(--color-primary)}.stat-icon.green{background:var(--color-secondary-light);color:var(--color-secondary)}.stat-icon.orange{background:var(--color-warning-light);color:var(--color-warning)}.stat-icon.red{background:var(--color-danger-light);color:var(--color-danger)}.stat-icon.slate{background:#e2e8f0;color:#475569}.stat-icon svg{width:24px;height:24px}.stat-info{flex:1;min-width:0}.stat-label{font-size:.8rem;font-weight:500;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.04em}.stat-value{font-size:1.65rem;font-weight:800;letter-spacing:-.03em;margin-top:2px;line-height:1.2}.stat-change{font-size:.78rem;font-weight:500;margin-top:4px}.stat-change.positive{color:var(--color-secondary)}.stat-change.negative{color:var(--color-danger)}.passport-detail-stats{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.passport-detail-stats .stat-info{overflow-wrap:anywhere;word-break:break-word}.passport-detail-stats .stat-value{font-size:1.05rem;font-weight:700;letter-spacing:-.01em;line-height:1.35}.passport-detail-stats .stat-value--chip{font-family:ui-monospace,Cascadia Code,Consolas,monospace;font-size:.95rem;font-weight:600}.passport-detail-stack{display:flex;flex-direction:column;gap:24px;margin-bottom:28px}.passport-weight-history-table{min-width:520px}.passport-weight-history-table th,.passport-weight-history-table td{vertical-align:top}.passport-weight-history-table .passport-w-wrap{overflow-wrap:anywhere;word-break:break-word;line-height:1.4}.passport-weight-history-table .passport-w-num{white-space:nowrap}.passport-weight-history-scroll{--passport-weight-visible-body-rows: 8;--passport-weight-row-estimate: 2.85rem;max-height:calc(var(--passport-weight-row-estimate) * var(--passport-weight-visible-body-rows) + 3.4rem);overflow-y:auto;padding-right:6px}.passport-weight-history-scroll .passport-weight-history-table thead th{position:sticky;top:0;z-index:2;box-shadow:0 1px 0 var(--color-border)}.add-record-grid.passport-weight-form-grid{grid-template-columns:repeat(2,1fr)}@media (max-width: 500px){.add-record-grid.passport-weight-form-grid{grid-template-columns:1fr}}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-bottom:28px}.grid-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:24px;margin-bottom:28px}.table-wrapper{overflow-x:auto}table{width:100%;border-collapse:collapse}table th{text-align:left;padding:12px 16px;font-size:.75rem;font-weight:600;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.06em;border-bottom:1px solid var(--color-border);background:var(--color-bg)}table td{padding:14px 16px;font-size:.9rem;border-bottom:1px solid var(--color-border-light);color:var(--color-text)}table tr:last-child td{border-bottom:none}table tr:hover td{background:var(--color-surface-hover)}.badge{display:inline-flex;align-items:center;padding:4px 10px;border-radius:999px;font-size:.75rem;font-weight:600;letter-spacing:.02em}.badge.blue{background:var(--color-primary-light);color:var(--color-primary-dark)}.badge.green{background:var(--color-secondary-light);color:#059669}.badge.orange{background:var(--color-warning-light);color:#d97706}.badge.red{background:var(--color-danger-light);color:#dc2626}.badge.slate{background:#e2e8f0;color:#475569}.btn{display:inline-flex;align-items:center;gap:8px;padding:10px 20px;border-radius:var(--radius-sm);font-size:.875rem;font-weight:600;transition:all .15s ease}.btn-primary{background:var(--color-primary);color:#fff}.btn-primary:hover{background:var(--color-primary-dark)}.btn-secondary{background:var(--color-bg);color:var(--color-text-secondary);border:1px solid var(--color-border)}.btn-secondary:hover{background:var(--color-border-light);color:var(--color-text)}.btn-sm{padding:6px 14px;font-size:.8rem}.form-group{margin-bottom:20px}.form-label{display:block;font-size:.85rem;font-weight:600;color:var(--color-text);margin-bottom:6px}.form-input{width:100%;padding:10px 14px;border-radius:var(--radius-sm);border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text);font-size:.9rem;transition:border-color .15s ease,box-shadow .15s ease}.form-input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px #0ea5e926;outline:none}select.form-input{padding-right:36px;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%2364748b' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right 14px center;background-size:14px}.form-select{width:100%;padding:10px 14px;border-radius:var(--radius-sm);border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text);font-size:.9rem;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%2364748b' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right 12px center;background-size:14px}.form-select:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px #0ea5e926;outline:none}.progress-bar{width:100%;height:8px;background:var(--color-bg);border-radius:4px;overflow:hidden}.progress-fill{height:100%;border-radius:4px;transition:width .3s ease}.progress-fill.blue{background:var(--color-primary)}.progress-fill.green{background:var(--color-secondary)}.progress-fill.orange{background:var(--color-warning)}.progress-fill.red{background:var(--color-danger)}.schedule-item{display:flex;align-items:center;gap:16px;padding:16px 0;border-bottom:1px solid var(--color-border-light)}.schedule-item:last-child{border-bottom:none}.schedule-time{font-size:1.1rem;font-weight:700;color:var(--color-primary);min-width:60px}.schedule-details{flex:1}.schedule-details h4{font-size:.9rem;font-weight:600}.schedule-details p{font-size:.8rem;color:var(--color-text-secondary)}.schedule-status{font-size:.78rem;font-weight:600}.schedule-status.done{color:var(--color-secondary)}.schedule-status.pending{color:var(--color-warning)}.water-param{padding:20px;border-radius:var(--radius-md);background:var(--color-bg);text-align:center}.water-param-value{font-size:2rem;font-weight:800;letter-spacing:-.03em}.water-param-label{font-size:.78rem;font-weight:500;color:var(--color-text-muted);margin-top:2px;text-transform:uppercase;letter-spacing:.04em}.water-param-status{font-size:.75rem;font-weight:600;margin-top:8px}.water-param-status.ok{color:var(--color-secondary)}.water-param-status.warn{color:var(--color-warning)}.water-param-status.danger{color:var(--color-danger)}.chart-container{width:100%;height:280px;display:flex;align-items:center;justify-content:center}.rag-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:8px}.rag-tile{padding:10px 8px;border-radius:var(--radius-sm);text-align:center;font-size:.78rem;font-weight:600}.rag-tile-name{display:block}.rag-tile--good{background:var(--color-secondary-light);color:#059669}.rag-tile--warn{background:var(--color-warning-light);color:#d97706}.rag-tile--danger{background:var(--color-danger-light);color:#dc2626}.rag-legend-dot{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:5px;vertical-align:middle}.rag-legend-dot--good{background:#059669}.rag-legend-dot--warn{background:#d97706}.rag-legend-dot--danger{background:#dc2626}.capacity-bar-track{width:100%;height:10px;border-radius:999px;background:var(--color-border-light);overflow:hidden}.capacity-bar-fill{height:100%;border-radius:999px;background:var(--color-primary)}.cages-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:20px}.cage-card{display:flex;flex-direction:column;background:var(--color-surface);border-radius:var(--radius-lg);border:1px solid var(--color-border);box-shadow:var(--shadow-sm);overflow:hidden;transition:box-shadow .2s ease,border-color .2s ease;text-decoration:none;color:inherit}.cage-card:hover{box-shadow:var(--shadow-lg);border-color:var(--color-primary)}.cage-card-header{display:flex;align-items:flex-start;justify-content:space-between;padding:20px 22px 0}.cage-card-title{display:flex;align-items:center;gap:12px}.cage-card-icon{color:var(--color-primary);flex-shrink:0}.cage-card-title h3{font-size:1.05rem;font-weight:700;letter-spacing:-.01em}.cage-card-location{font-size:.78rem;color:var(--color-text-muted)}.cage-card-body{padding:16px 22px;flex:1}.cage-card-species{font-size:.88rem;font-weight:600;color:var(--color-text-secondary);margin-bottom:14px;padding-bottom:12px;border-bottom:1px solid var(--color-border-light)}.cage-card-stats{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px;margin-bottom:14px}.cage-card-stat{display:flex;flex-direction:column;align-items:center;gap:2px;font-size:.88rem;font-weight:700;color:var(--color-text)}.cage-card-stat svg{color:var(--color-primary)}.cage-card-stat-label{font-size:.68rem;font-weight:500;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.04em}.cage-card-params{display:flex;gap:16px}.cage-card-param{display:flex;align-items:center;gap:5px;font-size:.82rem;color:var(--color-text-secondary);font-weight:500}.cage-card-param svg{color:var(--color-text-muted)}.cage-card-footer{display:flex;align-items:center;justify-content:space-between;padding:12px 22px;border-top:1px solid var(--color-border-light);font-size:.82rem;font-weight:600;color:var(--color-primary);transition:background .15s}.cage-card:hover .cage-card-footer{background:var(--color-primary-light)}.history-table th{white-space:nowrap}.history-table td{vertical-align:top;font-variant-numeric:tabular-nums}.cell-with-delta{display:flex;flex-direction:column;gap:2px}.cell-with-delta span:first-child{font-weight:600}.delta{display:inline-flex;align-items:center;gap:3px;font-size:.72rem;font-weight:600;line-height:1}.delta svg{flex-shrink:0}.delta-good{color:var(--color-secondary)}.delta-bad{color:var(--color-danger)}.delta-zero{display:inline-flex;align-items:center;gap:3px;font-size:.72rem;font-weight:500;color:var(--color-text-muted)}.delta-zero svg{flex-shrink:0}.delta-none{font-size:.72rem;color:var(--color-text-muted)}.add-record-form{padding:24px;border-bottom:1px solid var(--color-border);background:var(--color-bg)}.add-record-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.add-record-header h4{font-size:1rem;font-weight:700;color:var(--color-text)}.add-record-close{width:32px;height:32px;border-radius:var(--radius-sm);background:none;border:none;color:var(--color-text-muted);display:flex;align-items:center;justify-content:center;transition:all .15s ease}.add-record-close:hover{background:var(--color-danger-light);color:var(--color-danger)}.add-record-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:14px}.feed-plan-main-params.add-record-grid{grid-template-columns:repeat(5,minmax(0,1fr));align-items:stretch}.feed-plan-main-params .add-record-field{display:flex;flex-direction:column}.feed-plan-main-params .add-record-field label{min-height:2.75em;line-height:1.35}.map-water-form.add-record-grid{align-items:stretch}.map-water-form .add-record-field{display:flex;flex-direction:column}.map-water-form .add-record-field label{min-height:2.6em;line-height:1.3}.map-water-form .add-record-field input{margin-top:auto}.feeding-bulk-params-grid{grid-template-columns:repeat(3,1fr);align-items:stretch}.feeding-bulk-params-grid .add-record-field{display:flex;flex-direction:column}.feeding-bulk-params-grid .add-record-field label{min-height:3em;line-height:1.3}.feeding-bulk-params-grid .add-record-field input,.feeding-bulk-params-grid .add-record-field select{margin-top:auto}.feed-plan-main-params .add-record-field input,.feed-plan-main-params .add-record-field select.form-input{margin-top:auto;width:100%;min-height:42px;box-sizing:border-box;padding:9px 12px;border-radius:var(--radius-sm);border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text);font-size:.88rem;font-variant-numeric:tabular-nums;transition:border-color .15s ease,box-shadow .15s ease}.feed-plan-main-params .add-record-field input:focus,.feed-plan-main-params .add-record-field select.form-input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px #0ea5e91f;outline:none}@media (max-width: 1200px){.feed-plan-main-params.add-record-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (max-width: 900px){.feed-plan-main-params.add-record-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 500px){.feed-plan-main-params.add-record-grid{grid-template-columns:1fr}}.add-record-field label{display:block;font-size:.78rem;font-weight:600;color:var(--color-text-secondary);margin-bottom:5px}.add-record-field input,.add-record-field select{width:100%;padding:9px 12px;border-radius:var(--radius-sm);border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text);font-size:.88rem;font-variant-numeric:tabular-nums;transition:border-color .15s ease,box-shadow .15s ease}.add-record-field input[type=range]{padding:0;border:none;background:transparent;accent-color:var(--color-primary);height:20px}.add-record-field select{padding-right:34px;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%2364748b' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right 12px center;background-size:14px}.add-record-field input:focus,.add-record-field select:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px #0ea5e91f;outline:none}.add-record-field input.input-error,.add-record-field select.input-error,.add-record-field button.input-error{border-color:var(--color-danger);background:var(--color-danger-light)}.add-record-field input.input-error:focus,.add-record-field select.input-error:focus,.add-record-field button.input-error:focus{box-shadow:0 0 0 3px #ef444426}.add-record-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:20px}@media (max-width: 900px){.add-record-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width: 500px){.add-record-grid{grid-template-columns:1fr}}.map-demo-layout{display:grid;grid-template-columns:1fr 280px;gap:20px;align-items:start}.map-demo-canvas{position:relative;height:640px;background-image:linear-gradient(90deg,var(--color-border-light) 1px,transparent 1px),linear-gradient(var(--color-border-light) 1px,transparent 1px);background-size:24px 24px;background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden;cursor:grab;touch-action:none}.map-demo-canvas:active{cursor:grabbing}.map-demo-world{position:absolute;top:0;left:0;width:0;height:0;transform-origin:0 0}.map-demo-zoom{position:absolute;right:12px;bottom:12px;display:flex;align-items:center;gap:6px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:6px 8px;box-shadow:var(--shadow-sm)}.map-demo-zoom button{display:flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:var(--radius-sm);background:var(--color-bg);color:var(--color-text-secondary)}.map-demo-zoom button:hover{background:var(--color-border-light);color:var(--color-text)}.map-demo-zoom span{font-size:.78rem;font-weight:600;color:var(--color-text-secondary);min-width:38px;text-align:center}.map-shape{position:absolute;border:2px solid;display:flex;align-items:center;justify-content:center;padding:6px;cursor:grab;-webkit-user-select:none;user-select:none;transition:box-shadow .1s ease}.map-shape:active{cursor:grabbing}.map-shape-label{font-size:.78rem;font-weight:600;text-align:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%;pointer-events:none}.map-shape-resize{position:absolute;right:2px;bottom:2px;width:14px;height:14px;cursor:nwse-resize;border-right:2px solid currentColor;border-bottom:2px solid currentColor;opacity:.55}.map-shape-rotate{position:absolute;top:-26px;left:50%;transform:translate(-50%);width:12px;height:12px;border-radius:50%;background:var(--color-surface);border:2px solid var(--color-primary);cursor:grab}.map-shape-rotate:active{cursor:grabbing}.map-selection-box{position:absolute;border:1px dashed var(--color-primary);background:#0ea5e914;pointer-events:none}.map-demo-empty{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);color:var(--color-text-muted);font-size:.9rem;margin:0;white-space:nowrap}.map-demo-panel-col{display:flex;flex-direction:column;gap:16px;min-width:0;position:sticky;top:20px}.map-align-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-top:6px}.map-align-grid button{display:flex;align-items:center;justify-content:center;height:32px;border-radius:var(--radius-sm);background:var(--color-bg);border:1px solid var(--color-border);color:var(--color-text-secondary)}.map-align-grid button:hover{background:var(--color-primary-light);color:var(--color-primary-dark);border-color:var(--color-primary)}.map-color-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:6px}.map-color-swatch{width:100%;aspect-ratio:1;border-radius:50%;border:2px solid var(--color-surface);box-shadow:0 0 0 1px var(--color-border);cursor:pointer;transition:transform .1s ease}.map-color-swatch:hover{transform:scale(1.12)}.map-color-swatch--none{background:linear-gradient(to bottom right,transparent calc(50% - 1px),var(--color-danger) calc(50% - 1px),var(--color-danger) calc(50% + 1px),transparent calc(50% + 1px)),var(--color-surface)}.map-gap-input{display:flex;align-items:center;gap:8px;font-size:.85rem;color:var(--color-text-secondary);margin-left:4px}.map-gap-input input{width:64px;padding:7px 10px;border-radius:var(--radius-sm);border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text);font-size:.88rem}@media (max-width: 900px){.map-demo-layout{grid-template-columns:1fr}.map-demo-panel,.map-demo-panel-col{position:static}}.cage-detail-back{display:inline-flex;align-items:center;gap:6px;font-size:.88rem;font-weight:600;color:var(--color-text-secondary);transition:color .15s;padding:4px 0}.cage-detail-back:hover{color:var(--color-primary)}.cage-timeline-list{--cage-timeline-visible-rows: 4;--cage-timeline-row-estimate: 6.5rem;display:grid;gap:8px;max-height:calc(var(--cage-timeline-row-estimate) * var(--cage-timeline-visible-rows) + 24px);overflow-y:auto;padding-right:6px}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#0c1929,#0f2847 40%,#0a1628);position:relative;overflow:hidden;padding:20px}.login-bg{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.login-bg-circle{position:absolute;border-radius:50%}.login-bg-circle--1{width:500px;height:500px;background:radial-gradient(circle,rgba(14,165,233,.12) 0%,transparent 70%);top:-120px;right:-100px}.login-bg-circle--2{width:400px;height:400px;background:radial-gradient(circle,rgba(16,185,129,.1) 0%,transparent 70%);bottom:-80px;left:-80px}.login-bg-circle--3{width:250px;height:250px;background:radial-gradient(circle,rgba(14,165,233,.08) 0%,transparent 70%);top:50%;left:50%;transform:translate(-50%,-50%)}.login-card{position:relative;width:100%;max-width:420px;background:#ffffff0a;backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);border:1px solid rgba(255,255,255,.08);border-radius:var(--radius-xl);padding:48px 40px 36px;box-shadow:0 24px 64px #0000004d;text-align:center}.login-logo svg{width:64px;height:64px;margin:0 auto;filter:drop-shadow(0 4px 12px rgba(14,165,233,.3))}.login-title{font-size:1.8rem;font-weight:800;color:#fff;letter-spacing:-.03em;margin-top:16px}.login-subtitle{font-size:.9rem;color:#ffffff80;margin-top:6px;margin-bottom:32px}.login-form{text-align:left}.login-field{margin-bottom:22px}.login-field label{display:block;font-size:.82rem;font-weight:600;color:#ffffffa6;margin-bottom:8px;letter-spacing:.02em}.login-field input{width:100%;padding:12px 16px;border-radius:var(--radius-sm);border:1px solid rgba(255,255,255,.1);background:#ffffff0f;color:#fff;font-size:.95rem;transition:all .2s ease}.login-field input::placeholder{color:#ffffff40}.login-field input:focus{outline:none;border-color:var(--color-primary);background:#ffffff17;box-shadow:0 0 0 3px #0ea5e933}.login-password-wrapper{position:relative}.login-password-wrapper input{padding-right:48px}.login-password-toggle{position:absolute;right:12px;top:50%;transform:translateY(-50%);background:none;border:none;color:#ffffff59;padding:4px;display:flex;align-items:center;justify-content:center;transition:color .15s}.login-password-toggle:hover{color:#ffffffb3}.login-error{background:#ef44441f;border:1px solid rgba(239,68,68,.25);color:#fca5a5;font-size:.84rem;font-weight:500;padding:10px 14px;border-radius:var(--radius-sm);margin-bottom:18px}.login-btn{width:100%;padding:13px 20px;border-radius:var(--radius-sm);border:none;background:var(--color-primary);color:#fff;font-size:.95rem;font-weight:700;display:flex;align-items:center;justify-content:center;gap:10px;cursor:pointer;transition:all .2s ease;margin-top:6px}.login-btn:hover:not(:disabled){background:var(--color-primary-dark);transform:translateY(-1px);box-shadow:0 6px 20px #0ea5e959}.login-btn:active:not(:disabled){transform:translateY(0)}.login-btn:disabled{opacity:.7;cursor:not-allowed}.login-spinner{width:22px;height:22px;border:2.5px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.login-footer{margin-top:32px;font-size:.75rem;color:#fff3}.sidebar-user{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-top:1px solid var(--color-border-light);gap:10px}.sidebar-user-info{display:flex;align-items:center;gap:10px;min-width:0}.sidebar-user-avatar{width:34px;height:34px;border-radius:50%;background:var(--color-primary-light);color:var(--color-primary);display:flex;align-items:center;justify-content:center;flex-shrink:0}.sidebar-user-name{font-size:.85rem;font-weight:600;color:var(--color-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-logout{width:34px;height:34px;border-radius:var(--radius-sm);background:none;border:none;color:var(--color-text-muted);display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all .15s ease}.sidebar-logout:hover{background:var(--color-danger-light);color:var(--color-danger)}.stat-card-clickable{cursor:pointer;transition:all .2s ease;border:2px solid transparent}.stat-card-clickable:hover{border-color:var(--color-primary);box-shadow:var(--shadow-md);transform:translateY(-2px)}.stat-card-active{border-color:var(--color-primary);background:linear-gradient(135deg,#0ea5e90f,#0ea5e905);box-shadow:0 0 0 3px #0ea5e91a,var(--shadow-sm)}.chart-selector{display:flex;align-items:center;gap:8px}.chart-selector-label{font-size:1rem;font-weight:700;color:var(--color-text);white-space:nowrap}.chart-select-wrapper{position:relative;display:inline-flex;align-items:center}.chart-select{-moz-appearance:none;appearance:none;-webkit-appearance:none;background:var(--color-primary-light);border:1px solid transparent;color:var(--color-primary);font-size:.9rem;font-weight:600;padding:6px 34px 6px 14px;border-radius:var(--radius-md);cursor:pointer;transition:all .15s ease;font-family:inherit;line-height:1.4}.chart-select:hover{border-color:var(--color-primary);background:#0ea5e91f}.chart-select:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #0ea5e926}.chart-select-icon{position:absolute;right:10px;pointer-events:none;color:var(--color-primary)}.btn-icon-edit{width:40px;height:40px;border-radius:var(--radius-sm);background:none;border:1px solid transparent;color:var(--color-text-muted);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:all .15s ease;padding:0}.btn-icon-edit:hover{background:var(--color-primary-light);color:var(--color-primary);border-color:var(--color-primary)}.row-editing{background:#0ea5e90f!important}.row-editing td{border-top:1px solid var(--color-primary);border-bottom:1px solid var(--color-primary)}.meta-cell{font-size:.75rem;white-space:nowrap;color:var(--color-text-muted);letter-spacing:-.01em}.passport-filters{display:flex;align-items:center;gap:14px;padding:16px 24px;border-bottom:1px solid var(--color-border);flex-wrap:wrap}.passport-search{display:flex;align-items:center;gap:8px;background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:8px 14px;flex:1;min-width:200px;color:var(--color-text-muted)}.passport-search input{border:none;background:none;outline:none;font-size:.88rem;font-family:inherit;color:var(--color-text);width:100%}.passport-search input::placeholder{color:var(--color-text-muted)}.passport-status-filter{display:flex;gap:6px}.passport-filter-btn{padding:7px 14px;border-radius:var(--radius-md);border:1px solid var(--color-border);background:#fff;color:var(--color-text-secondary);font-size:.82rem;font-weight:600;font-family:inherit;cursor:pointer;transition:all .15s ease}.passport-filter-btn:hover{border-color:var(--color-primary);color:var(--color-primary)}.passport-filter-btn.active{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.row-clickable{cursor:pointer;transition:background .15s ease}.row-clickable:hover{background:#0ea5e90f}.feed-detail-table{width:100%;border-collapse:collapse}.feed-detail-table th,.feed-detail-table td{padding:10px 14px;text-align:center;border-bottom:1px solid var(--color-border);font-size:.88rem}.feed-detail-table th{background:var(--color-bg-secondary);font-weight:700;color:var(--color-text-secondary);white-space:nowrap;font-size:.82rem;text-transform:uppercase;letter-spacing:.03em}.feed-detail-table tbody tr:hover{background:#0ea5e90a}.feed-param-cell{text-align:left!important;font-weight:600;color:var(--color-text);white-space:nowrap}.feed-value-cell{font-variant-numeric:tabular-nums;font-weight:500}.feed-col-granule{min-width:90px;color:var(--color-primary)!important}.feed-comp-granule-group{text-align:center!important;font-size:.82rem!important;color:var(--color-text)!important;border-bottom:none!important;padding-bottom:2px!important}.feed-col-temp{min-width:52px;color:var(--color-primary)!important;font-size:.85rem!important}.feed-temp-header{color:var(--color-text)!important;font-size:.82rem!important;text-align:center!important;border-bottom:none!important;padding-bottom:2px!important}.feed-granule-cell{font-weight:600;color:var(--color-text-secondary);white-space:nowrap}.feed-rate-cell{font-variant-numeric:tabular-nums;font-weight:500;color:var(--color-text)}.feed-col-coeff{min-width:80px;color:var(--color-primary)!important}.feed-env-granule-header{text-align:center!important;color:var(--color-primary)!important;font-size:.9rem!important;font-weight:700!important;border-left:2px solid var(--color-border)}.feed-env-granule-header:first-of-type{border-left:none}.feed-env-table td:not(.feed-param-cell){text-align:center}.feed-program-table th:first-child,.feed-program-table td:first-child{text-align:left}.feed-program-table th:nth-child(2),.feed-program-table td:nth-child(2){text-align:center}.feed-env-table th:first-child,.feed-env-table td:first-child{text-align:left}.feed-edit-input{width:100%;min-width:50px;max-width:120px;padding:4px 8px;border:1px solid var(--color-primary);border-radius:var(--radius-sm);font-size:.86rem;font-family:inherit;text-align:center;background:#fff;color:var(--color-text);transition:box-shadow .15s ease;font-variant-numeric:tabular-nums}.feed-edit-input:focus{outline:none;box-shadow:0 0 0 3px #0ea5e926}.feed-param-cell .feed-edit-input{text-align:left;max-width:160px}.feed-edit-input-sm{max-width:60px!important;min-width:40px!important;padding:3px 4px}.feed-col-header-edit{display:flex;align-items:center;gap:4px}.feed-col-add{width:32px;height:32px;border-radius:var(--radius-sm);background:var(--color-primary-light);border:1px dashed var(--color-primary);color:var(--color-primary);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:all .15s ease;padding:0}.feed-col-add:hover{background:var(--color-primary);color:#fff;border-style:solid}.feed-col-remove{width:22px;height:22px;border-radius:var(--radius-sm);background:none;border:none;color:var(--color-text-muted);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;padding:0;flex-shrink:0;transition:all .15s ease}.feed-col-remove:hover{background:var(--color-danger-light);color:var(--color-danger)}.water-pool-section{margin-bottom:28px;padding:20px;border-radius:var(--radius-lg);border:1px solid transparent;transition:all .2s ease}.water-pool-issue{background:#ef444408;border-color:#ef44442e}.water-pool-title{font-size:1.1rem;font-weight:700;margin-bottom:16px;display:flex;align-items:center;gap:8px}.water-card-issue{border-color:var(--color-warning)!important;box-shadow:0 0 0 2px #f59e0b1f,var(--shadow-sm)!important}.caviar-checkbox{display:inline-flex;align-items:center;gap:8px;cursor:pointer;padding:9px 0;white-space:nowrap;-webkit-user-select:none;user-select:none}.caviar-checkbox input[type=checkbox]{width:18px;height:18px;accent-color:var(--color-primary);cursor:pointer;flex-shrink:0}.caviar-checkbox span{font-size:.88rem;font-weight:600;color:var(--color-text-secondary)}.task-add-form{padding:20px 24px;border-bottom:1px solid var(--color-border);background:var(--color-bg)}.task-add-grid{display:flex;gap:14px;align-items:flex-end}.task-add-field label{display:block;font-size:.78rem;font-weight:600;color:var(--color-text-secondary);margin-bottom:5px}.task-add-field-text{flex:1}.task-add-field-btn{flex-shrink:0}.task-check{width:28px;height:28px;border-radius:50%;border:2px solid var(--color-border);background:var(--color-surface);color:transparent;display:flex;align-items:center;justify-content:center;flex-shrink:0;cursor:pointer;transition:all .15s ease}.task-check:hover{border-color:var(--color-secondary);color:var(--color-secondary)}.task-check-done{background:var(--color-secondary);border-color:var(--color-secondary);color:#fff}.task-check-done:hover{background:var(--color-secondary);border-color:var(--color-secondary);color:#fff;opacity:.8}.schedule-item-done .schedule-time,.schedule-item-done .schedule-details h4{opacity:.45;text-decoration:line-through}.task-remove{width:30px;height:30px;border-radius:var(--radius-sm);background:none;border:none;color:var(--color-text-muted);display:flex;align-items:center;justify-content:center;flex-shrink:0;cursor:pointer;transition:all .15s ease;opacity:0}.schedule-item:hover .task-remove{opacity:1}.task-remove:hover{background:var(--color-danger-light);color:var(--color-danger)}@media (max-width: 600px){.task-add-grid{flex-direction:column;align-items:stretch}}.report-form{padding:20px 24px;border-bottom:1px solid var(--color-border);background:var(--color-bg)}.report-form-grid{display:grid;grid-template-columns:2fr 1fr 1fr auto;gap:14px;align-items:end}.report-form-field label{display:block;font-size:.78rem;font-weight:600;color:var(--color-text-secondary);margin-bottom:5px}.report-form-action{display:flex;align-items:flex-end}.report-filter-bar{display:flex;align-items:center;gap:8px;padding:14px 24px;border-bottom:1px solid var(--color-border);flex-wrap:wrap;color:var(--color-text-muted)}.report-actions{display:flex;align-items:center;gap:4px;justify-content:flex-end}.report-preview{border-top:2px solid var(--color-primary);background:var(--color-bg)}.report-preview-header{display:flex;align-items:center;justify-content:space-between;padding:16px 24px;border-bottom:1px solid var(--color-border)}.report-preview-header h4{font-size:1rem;font-weight:700;color:var(--color-text)}.report-preview-body{padding:0}@media (max-width: 900px){.report-form-grid{grid-template-columns:1fr 1fr}}@media (max-width: 500px){.report-form-grid{grid-template-columns:1fr}}.species-bar{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:24px;flex-wrap:wrap}.species-tabs{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.species-tab{display:inline-flex;align-items:center;gap:7px;padding:8px 16px;border-radius:var(--radius-md);border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text-secondary);font-size:.88rem;font-weight:600;font-family:inherit;cursor:pointer;transition:all .15s ease;position:relative}.species-tab:hover{border-color:var(--color-primary);color:var(--color-primary)}.species-tab.active{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.species-tab.active .species-tab-remove:hover{background:#fff3;color:#fff}.species-tab-remove{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:50%;margin-left:2px;transition:all .15s ease}.species-tab-remove:hover{background:var(--color-danger-light);color:var(--color-danger)}.species-tab-add{border-style:dashed;color:var(--color-primary);border-color:var(--color-primary);background:var(--color-primary-light)}.species-tab-add:hover{background:var(--color-primary);color:#fff;border-style:solid}.species-add-inline{display:flex;align-items:center;gap:6px}.stage-table th,.stage-table td{text-align:center;font-size:.88rem}.stage-table th:first-child,.stage-table td:first-child{text-align:left}.stage-group-header{text-align:center!important;font-size:.78rem!important;font-weight:700!important;color:var(--color-text)!important;border-bottom:none!important;padding-bottom:4px!important;white-space:nowrap}.stage-sub-header{font-size:.72rem!important;color:var(--color-text-muted)!important;padding-top:2px!important}.stage-val{font-weight:600;font-variant-numeric:tabular-nums;color:var(--color-text)}.stage-cards-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(380px,1fr));gap:20px}.stage-detail-card .card-header h3{font-size:1rem}.stage-params-grid{display:grid;grid-template-columns:1fr;gap:12px}.stage-param-item{display:flex;align-items:flex-start;gap:12px;padding:10px 12px;background:var(--color-bg);border-radius:var(--radius-sm);min-width:0}.stage-param-icon{width:36px;height:36px;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;flex-shrink:0}.stage-param-label{font-size:.72rem;font-weight:600;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.04em}.stage-param-value{font-size:.9rem;font-weight:700;color:var(--color-text);font-variant-numeric:tabular-nums;line-height:1.35;white-space:normal;overflow-wrap:anywhere}.stage-detail-card .card-header h3{overflow-wrap:anywhere}.stage-card-editing{border-color:var(--color-primary)!important;box-shadow:0 0 0 3px #0ea5e91f,var(--shadow-md)!important}.stage-param-item-edit{align-items:flex-start}.constructor-layout{display:grid;grid-template-columns:300px 1fr;gap:20px;align-items:start}.constructor-picker{position:sticky;top:20px;max-height:calc(100vh - 40px);overflow-y:auto}.col-group{border-bottom:1px solid var(--color-border-light)}.col-group:last-child{border-bottom:none}.col-group-header{padding:10px 20px;cursor:pointer;transition:background .15s}.col-group-header:hover{background:var(--color-bg)}.col-check{display:flex;align-items:center;gap:10px;cursor:pointer}.col-check input[type=checkbox]{width:16px;height:16px;accent-color:var(--color-primary);cursor:pointer}.col-group-name{font-size:.82rem;font-weight:700;color:var(--color-text);text-transform:uppercase;letter-spacing:.04em}.col-group-items{padding:0 12px 8px}.col-item{display:flex;align-items:center;gap:10px;padding:6px 10px;border-radius:var(--radius-sm);cursor:pointer;font-size:.85rem;color:var(--color-text-secondary);transition:all .12s ease}.col-item:hover{background:var(--color-bg);color:var(--color-text)}.col-item-active{color:var(--color-primary-dark);font-weight:600}.col-item input[type=checkbox]{width:15px;height:15px;accent-color:var(--color-primary);cursor:pointer;flex-shrink:0}.col-order-item{display:flex;align-items:center;gap:10px;padding:8px 4px;border-bottom:1px solid var(--color-border-light)}.col-order-item:last-child{border-bottom:none}.col-order-grip{color:var(--color-text-muted);cursor:grab;flex-shrink:0}.col-order-index{font-size:.72rem;font-weight:700;color:var(--color-text-muted);background:var(--color-bg);width:22px;height:22px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0}.col-order-label{font-size:.88rem;font-weight:600;color:var(--color-text);flex:1}.col-order-actions{display:flex;gap:2px;flex-shrink:0}.col-order-actions .btn-icon-edit{width:26px;height:26px}.report-col-tags{display:flex;flex-wrap:wrap;gap:4px}.report-col-tag{display:inline-block;padding:2px 8px;border-radius:var(--radius-sm);font-size:.72rem;font-weight:600;background:var(--color-primary-light);color:var(--color-primary-dark);white-space:nowrap}.report-col-tag-more{background:var(--color-bg);color:var(--color-text-muted)}.col-sort-btn{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;border-radius:var(--radius-sm);border:1px solid var(--color-border);background:var(--color-bg);color:var(--color-text-muted);cursor:pointer;font-size:.72rem;font-weight:600;transition:all .18s;margin-left:auto;margin-right:8px;flex-shrink:0}.col-sort-btn:hover{border-color:var(--color-primary);color:var(--color-primary);background:var(--color-primary-light)}.col-sort-active{border-color:var(--color-primary);color:#fff;background:var(--color-primary)}.col-sort-active:hover{background:var(--color-primary-dark);color:#fff}.col-sort-label{font-size:.68rem;letter-spacing:.02em}.th-sorted{color:var(--color-primary)!important;background:var(--color-primary-light)!important}.table-wrapper-msproject{overflow:auto;max-height:min(70vh,620px);border:1px solid #8c8c8c;background:#fff}.table-msproject{width:100%;border-collapse:collapse;table-layout:auto;font-family:Segoe UI,"Segoe UI Web (West European)",Tahoma,Arial,sans-serif;font-size:12px;line-height:1.35}.table-msproject thead th{position:sticky;top:0;z-index:2;background:linear-gradient(180deg,#f3f3f3,#e1e1e1);border:1px solid #8c8c8c;color:#1e1e1e;font-weight:600;font-size:11px;text-transform:none;letter-spacing:0;padding:5px 8px;white-space:nowrap;text-align:left;box-shadow:inset 0 1px #ffffffd9}.table-msproject tbody td{border:1px solid #c6c6c6;padding:4px 8px;font-size:12px;color:#111;background:#fff;vertical-align:middle}.table-msproject tbody tr:nth-child(2n) td:not(.col-rowid){background:#fafafa}.table-msproject tbody tr:hover td:not(.col-rowid){background:#d9ebf7}.table-msproject tbody tr:hover td.col-rowid{background:#e2e2e2}.table-msproject tbody tr:last-child td{border-bottom:1px solid #c6c6c6}.table-msproject .col-rowid{width:2.75rem;min-width:2.5rem;text-align:right;color:#505050;background:#ececec!important;font-weight:400;border-right:1px solid #8c8c8c!important;-webkit-user-select:none;user-select:none;font-variant-numeric:tabular-nums}.table-msproject thead th.col-rowid{z-index:3;background:linear-gradient(180deg,#ebebeb,#d6d6d6);text-align:center}.table-msproject thead th.th-sorted{background:linear-gradient(180deg,#d9eaf5,#c5dff0)!important;color:#0b3d5c!important}.table-msproject .badge{font-size:11px;padding:2px 8px}.source-tabs{display:flex;gap:0;border-radius:var(--radius);overflow:hidden;border:1px solid var(--color-border)}.source-tab{padding:8px 18px;font-size:.82rem;font-weight:600;cursor:pointer;background:var(--color-bg);color:var(--color-text-secondary);border:none;transition:all .18s}.source-tab:not(:last-child){border-right:1px solid var(--color-border)}.source-tab.active{background:var(--color-primary);color:#fff}.source-tab:hover:not(.active){background:var(--color-primary-light);color:var(--color-primary-dark)}.badge.purple{background:#ede9fe;color:#7c3aed}@media (max-width: 900px){.constructor-layout{grid-template-columns:1fr}.constructor-picker{position:static;max-height:none}}@media (max-width: 1024px){.grid-2,.grid-3{grid-template-columns:1fr}.stats-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width: 768px){.sidebar{transform:translate(-100%);transition:transform .25s ease;z-index:160;box-shadow:none}.sidebar.sidebar--open{transform:translate(0);box-shadow:8px 0 32px #0f172a2e}.sidebar-mobile-toggle{display:flex;align-items:center;justify-content:center;position:fixed;top:max(12px,env(safe-area-inset-top,0px));left:max(12px,env(safe-area-inset-left,0px));z-index:200;width:44px;height:44px;padding:0;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text);cursor:pointer;box-shadow:0 2px 12px #0f172a14}.sidebar-mobile-toggle:hover{background:var(--color-bg)}.sidebar-backdrop{display:block;position:fixed;top:0;right:0;bottom:0;left:0;z-index:150;margin:0;padding:0;border:none;cursor:pointer;background:#0f172a73;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px)}.sidebar-close-mobile{position:absolute;top:max(16px,env(safe-area-inset-top,0px));right:16px;z-index:5;display:flex;align-items:center;justify-content:center;width:40px;height:40px;padding:0;border:none;border-radius:var(--radius-sm);background:var(--color-bg);color:var(--color-text-secondary);cursor:pointer}.sidebar-close-mobile:hover{background:var(--color-border-light);color:var(--color-text)}.main-content{margin-left:0;padding:20px 16px;padding-top:max(64px,calc(env(safe-area-inset-top,0px) + 52px));width:100%}.app-layout{padding-left:0}.stats-grid{grid-template-columns:1fr}}.chip-scan-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a73;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:9999;display:flex;align-items:center;justify-content:center;animation:chipFadeIn .2s ease}@keyframes chipFadeIn{0%{opacity:0}to{opacity:1}}@keyframes chipSlideUp{0%{opacity:0;transform:translateY(24px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}.chip-scan-popup{background:#fff;border-radius:20px;padding:32px 36px 28px;min-width:360px;max-width:440px;box-shadow:0 20px 60px #0000002e,0 0 0 1px #0000000a;position:relative;animation:chipSlideUp .3s ease;text-align:center}.chip-scan-close{position:absolute;top:14px;right:14px;background:none;border:none;cursor:pointer;color:var(--color-text-muted);padding:4px;border-radius:8px;transition:all .15s}.chip-scan-close:hover{background:var(--color-bg);color:var(--color-text)}.chip-scan-icon{width:64px;height:64px;border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto 16px}.chip-scan-ok{background:#ecfdf5;color:#10b981}.chip-scan-warn{background:#fef3c7;color:#f59e0b}.chip-scan-title{font-size:1.15rem;font-weight:700;color:var(--color-text);margin:0 0 12px}.chip-scan-chip{display:inline-flex;align-items:center;gap:8px;background:var(--color-bg);border:1px solid var(--color-border);border-radius:10px;padding:10px 18px;font-size:.95rem;font-weight:700;font-family:Courier New,monospace;color:var(--color-primary-dark);letter-spacing:.03em;margin-bottom:8px;-webkit-user-select:all;user-select:all}.chip-scan-time{font-size:.78rem;color:var(--color-text-muted);margin:0 0 16px}.chip-scan-info{background:var(--color-bg);border-radius:12px;padding:12px 18px;margin-bottom:20px;text-align:left}.chip-scan-row{display:flex;justify-content:space-between;padding:5px 0;font-size:.88rem}.chip-scan-row:not(:last-child){border-bottom:1px solid var(--color-border)}.chip-scan-label{color:var(--color-text-muted);font-weight:500}.chip-scan-actions{display:flex;gap:10px;justify-content:center;margin-top:4px}.chip-scan-actions .btn{display:inline-flex;align-items:center;gap:6px}.confirm-dialog-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a73;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:10000;display:flex;align-items:center;justify-content:center;padding:16px;animation:chipFadeIn .2s ease}.confirm-dialog-card{background:#fff;border-radius:20px;padding:28px 32px 24px;width:100%;max-width:440px;box-shadow:0 20px 60px #0000002e,0 0 0 1px #0000000a;animation:chipSlideUp .3s ease;text-align:center}.confirm-dialog-icon{width:56px;height:56px;border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto 16px;background:var(--color-primary-light);color:var(--color-primary)}.confirm-dialog-icon.danger{background:#fee2e2;color:var(--color-danger)}.confirm-dialog-title{font-size:1.1rem;font-weight:700;color:var(--color-text);margin:0 0 10px}.confirm-dialog-message{font-size:.95rem;color:var(--color-text-secondary);white-space:pre-line;margin:0 0 22px;line-height:1.5}.confirm-dialog-actions{display:flex;gap:12px}.confirm-dialog-btn{flex:1;justify-content:center;min-height:52px;font-size:.95rem}.btn-danger{background:var(--color-danger);color:#fff}.btn-danger:hover{background:#b91c1c}.not-found{display:flex;align-items:center;justify-content:center;min-height:50vh;padding:24px}.not-found-inner{text-align:center;max-width:420px}.not-found-code{display:block;font-size:4rem;font-weight:800;line-height:1;color:var(--color-primary);opacity:.35;margin-bottom:12px;letter-spacing:-.04em}.not-found h2{margin:0 0 10px;font-size:1.35rem}.not-found p{margin:0 0 24px;color:var(--color-text-secondary);font-size:.95rem;line-height:1.5}.not-found-actions{display:flex;flex-wrap:wrap;gap:10px;justify-content:center}.not-found-actions .btn{display:inline-flex;align-items:center;gap:8px}.error-boundary{display:flex;align-items:center;justify-content:center;min-height:45vh;padding:24px}.error-boundary-card{max-width:440px;text-align:center;padding:28px 24px 24px}.error-boundary-icon{width:72px;height:72px;margin:0 auto 16px;border-radius:50%;background:#fef3c7;color:#d97706;display:flex;align-items:center;justify-content:center}.error-boundary-card h2{margin:0 0 10px;font-size:1.2rem}.error-boundary-card>p{margin:0 0 16px;color:var(--color-text-secondary);font-size:.92rem;line-height:1.5}.error-boundary-tech{text-align:left;font-size:.75rem;background:var(--color-bg);border:1px solid var(--color-border);border-radius:8px;padding:10px 12px;overflow:auto;max-height:120px;margin-bottom:16px;color:var(--color-danger)}.error-boundary-actions{display:flex;flex-wrap:wrap;gap:10px;justify-content:center}.error-boundary-actions .btn{display:inline-flex;align-items:center;gap:8px}.russian-date-picker-root{position:relative;width:100%}.russian-date-picker-trigger{display:flex;align-items:center;gap:10px;width:100%;text-align:left;cursor:pointer;font-family:inherit}.russian-date-picker-popover{position:fixed;z-index:3000;top:0;left:0;padding:6px 8px;max-height:min(72vh,260px);overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;background:var(--color-surface, #fff);border:1px solid var(--color-border, #e2e8f0);border-radius:var(--radius-md, 10px);box-shadow:0 10px 32px #0f172a24}.russian-date-picker-popover .rdp-root{--rdp-accent-color: var(--color-primary, #0ea5e9);--rdp-accent-background-color: color-mix(in srgb, var(--color-primary, #0ea5e9) 12%, transparent);--rdp-day-height: 1.55rem;--rdp-day-width: 1.55rem;--rdp-day_button-height: 1.5rem;--rdp-day_button-width: 1.5rem;--rdp-nav_button-height: 1.35rem;--rdp-nav_button-width: 1.35rem;--rdp-nav-height: 2rem;font-size:.78rem}.russian-date-picker-popover .rdp-months{max-width:100%}.russian-date-picker-popover .rdp-weekday{font-size:.65rem;font-weight:600;color:var(--color-text-muted, #64748b);padding:.2rem 0}.russian-date-picker-popover .rdp-caption_label{font-weight:700;font-size:.78rem}.caviar-import-date-field{flex:0 0 auto;min-width:min(100%,260px);max-width:320px;padding:14px 16px;border-radius:var(--radius-md, 10px);background:color-mix(in srgb,var(--color-primary, #0ea5e9) 9%,var(--color-surface, #fff));border:1px solid color-mix(in srgb,var(--color-primary, #0ea5e9) 38%,var(--color-border, #e2e8f0));box-shadow:0 1px 2px #0f172a0f}.caviar-import-date-field .caviar-import-date-label{display:flex;align-items:center;gap:8px;font-size:.82rem;font-weight:700;margin-bottom:8px;color:var(--color-text)}.caviar-import-date-field .caviar-import-date-label svg{flex-shrink:0;color:var(--color-primary, #0ea5e9)}.caviar-import-date-field .russian-date-picker-root{max-width:100%}.caviar-import-date-field .russian-date-picker-trigger{background:var(--color-surface, #fff);border-color:color-mix(in srgb,var(--color-primary, #0ea5e9) 28%,var(--color-border, #e2e8f0));font-weight:500}.cr{--cr-cols: 12px minmax(190px, 2fr) minmax(120px, 1.3fr) repeat(4, minmax(70px, .8fr)) 56px 64px 60px;font-variant-numeric:tabular-nums}.cr-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:20px}.cr-title{font-size:1.75rem;font-weight:800;letter-spacing:-.03em;line-height:1.15}.cr-subtitle{margin-top:4px;font-size:.92rem;color:var(--color-text-secondary)}.cr-kpis{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);margin-bottom:20px;overflow:hidden}.cr-kpi{display:flex;flex-direction:column;gap:2px;padding:14px 18px;text-align:left;background:none;border-left:1px solid var(--color-border-light)}.cr-kpi:first-child{border-left:none}.cr-kpi-label{font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted)}.cr-kpi-value{font-size:1.45rem;font-weight:750;letter-spacing:-.02em;color:var(--color-text)}.cr-kpi-value small{font-size:.8rem;font-weight:600;color:var(--color-text-muted)}.cr-kpi-value.is-danger{color:var(--color-danger)}.cr-kpi-action{cursor:pointer;transition:background .15s ease}.cr-kpi-action:hover{background:var(--color-surface-hover)}.cr-kpi-action.is-warn{background:var(--color-warning-light)}.cr-kpi-action.is-warn .cr-kpi-value{color:#b45309}.cr-kpi-action[aria-pressed=true]{box-shadow:inset 0 -3px 0 var(--color-warning)}.cr-kpi-action:focus-visible,.cr-seg button:focus-visible,.cr-group-head:focus-visible,.cr-icon-btn:focus-visible,.cr-link:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.cr-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:12px}.cr-search{flex:1 1 260px;display:flex;align-items:center;gap:8px;padding:0 12px;height:38px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text-muted)}.cr-search:focus-within{border-color:var(--color-primary);box-shadow:0 0 0 3px #0ea5e926}.cr-search input{flex:1;min-width:0;border:none;outline:none;background:none;color:var(--color-text);font-size:.9rem}.cr-seg{display:inline-flex;padding:3px;gap:2px;background:var(--color-border-light);border:1px solid var(--color-border);border-radius:var(--radius-sm)}.cr-seg button{display:inline-flex;align-items:center;gap:6px;height:30px;padding:0 10px;border-radius:6px;background:none;font-size:.82rem;font-weight:600;color:var(--color-text-secondary);white-space:nowrap}.cr-seg button:hover{color:var(--color-text)}.cr-seg button.is-active{background:var(--color-surface);color:var(--color-text);box-shadow:var(--shadow-sm)}.cr-seg-count{font-size:.72rem;font-weight:600;color:var(--color-text-muted)}.cr-toolbar-end{display:flex;align-items:center;gap:12px;margin-left:auto}.cr-check{display:inline-flex;align-items:center;gap:6px;font-size:.82rem;font-weight:600;color:var(--color-text-secondary);cursor:pointer;white-space:nowrap}.cr-sort{width:auto;height:38px;padding:0 34px 0 12px;font-size:.85rem}.cr-error{color:var(--color-danger);margin:0 0 12px}.cr-table{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md)}.cr-row{position:relative;display:grid;grid-template-columns:var(--cr-cols);align-items:center;column-gap:14px;padding:0 14px;min-height:48px;border-top:1px solid var(--color-border-light);font-size:.875rem}.cr-row:not(.cr-row-head):hover{background:var(--color-surface-hover)}.cr-row-head{position:sticky;top:0;z-index:2;min-height:36px;border-top:none;border-radius:var(--radius-md) var(--radius-md) 0 0;background:var(--color-surface);box-shadow:0 1px 0 var(--color-border);font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted)}.cr-row .num{text-align:right;white-space:nowrap}.cr-dot{width:8px;height:8px;border-radius:50%;background:var(--color-secondary)}.cr-state-warn .cr-dot{background:var(--color-warning);box-shadow:0 0 0 3px var(--color-warning-light)}.cr-state-empty .cr-dot{background:var(--color-border)}.cr-state-warn{background:color-mix(in srgb,var(--color-warning-light) 45%,transparent)}.cr-name{display:flex;flex-direction:column;min-width:0;padding:7px 0}.cr-link{font-weight:650;color:var(--color-text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cr-link:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0}.cr-row:hover .cr-link{color:var(--color-primary-dark)}.cr-loc{display:flex;align-items:center;gap:6px;font-size:.75rem;color:var(--color-text-muted);overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.cr-type{padding:0 6px;border-radius:4px;background:var(--color-primary-light);color:var(--color-primary-dark);font-weight:600;font-size:.68rem}.cr-species{color:var(--color-text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cr-muted{color:var(--color-text-muted)}.cr .is-danger{color:var(--color-danger);font-weight:650}.cr-w-warn{color:#b45309;font-weight:650}.cr-w-danger{color:var(--color-danger);font-weight:700}.cr-actions{display:flex;align-items:center;justify-content:flex-end;gap:4px}.cr-icon-btn{position:relative;z-index:1;display:inline-flex;padding:6px;border-radius:6px;background:none;color:var(--color-text-muted);opacity:0;transition:opacity .12s ease,background .12s ease,color .12s ease}.cr-row:hover .cr-icon-btn,.cr-icon-btn:focus-visible{opacity:1}.cr-icon-btn:hover{background:var(--color-danger-light);color:var(--color-danger)}.cr-chevron{color:var(--color-text-muted)}.cr-group-head{display:flex;align-items:center;gap:8px;width:100%;padding:10px 14px;border-top:1px solid var(--color-border);background:var(--color-bg);color:var(--color-text-secondary);text-align:left}.cr-group-title{font-size:.82rem;font-weight:700;color:var(--color-text)}.cr-group-meta{font-size:.78rem;color:var(--color-text-muted)}.cr-pill{margin-left:auto;padding:1px 8px;border-radius:999px;font-size:.72rem;font-weight:700}.cr-pill.is-warn{background:var(--color-warning-light);color:#b45309}.cr-empty{padding:28px 16px;text-align:center;color:var(--color-text-secondary)}@media (hover: none){.cr-icon-btn{opacity:1}}@media (max-width: 1200px){.cr{--cr-cols: 12px minmax(170px, 2fr) repeat(4, minmax(64px, .8fr)) 52px 60px 56px}.cr-species,.cr-row-head>:nth-child(3){display:none}}@media (max-width: 900px){.cr-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}.cr-kpi:nth-child(4){border-left:none}.cr-kpi:nth-child(n+4){border-top:1px solid var(--color-border-light)}.cr-toolbar-end{margin-left:0}.cr-row-head{display:none}.cr-row{grid-template-columns:12px repeat(3,minmax(0,1fr)) auto;row-gap:8px;padding:12px 14px}.cr-dot{grid-row:1;grid-column:1}.cr-name{grid-row:1;grid-column:2 / 5;padding:0}.cr-actions{grid-row:1;grid-column:5}.cr-row .num{display:flex;flex-direction:column;text-align:left;font-weight:600}.cr-row .num:before{content:attr(data-label);font-size:.66rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-muted)}.cr-row .num:nth-child(4),.cr-row .num:nth-child(7){grid-column:2}}@media (max-width: 600px){.cr-head{flex-direction:column;align-items:stretch}.cr-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.cr-kpi{padding:12px 14px}.cr-kpi:nth-child(n){border-left:none}.cr-kpi:nth-child(2n){border-left:1px solid var(--color-border-light)}.cr-kpi:nth-child(n+3){border-top:1px solid var(--color-border-light)}.cr-kpi-action{grid-column:1 / -1}.cr-seg{width:100%;overflow-x:auto}.cr-seg button{flex:1 0 auto;justify-content:center}.cr-toolbar-end{width:100%;justify-content:space-between}}.bf{font-variant-numeric:tabular-nums;padding-bottom:8px}.bf-head{margin-bottom:20px}.bf-title{font-size:1.75rem;font-weight:800;letter-spacing:-.03em;line-height:1.15}.bf-subtitle{margin-top:4px;font-size:.92rem;color:var(--color-text-secondary)}.bf-muted{color:var(--color-text-secondary);font-weight:400}.bf-step{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:16px 18px;margin-bottom:14px}.bf-step-head{display:flex;align-items:flex-start;gap:12px;margin-bottom:12px}.bf-step-n,.bf-stepper-n{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;border:1.5px solid var(--color-text-muted);color:var(--color-text-secondary);font-size:.8rem;font-weight:700}.bf-step-n.is-current,.is-current>.bf-stepper-n{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.bf-step-n.is-done,.is-done>.bf-stepper-n{background:var(--color-secondary);border-color:var(--color-secondary);color:#fff}.bf-step-title{display:flex;align-items:center;gap:8px;font-size:1.05rem;font-weight:700;line-height:24px}.bf-count{padding:1px 9px;border-radius:999px;background:var(--color-border-light);border:1px solid var(--color-border);color:var(--color-text-secondary);font-size:.78rem;font-weight:600;line-height:1.5}.bf-stepper{display:flex;gap:8px;list-style:none;margin-bottom:16px}.bf-stepper-item{flex:1;display:flex;align-items:center;gap:10px;padding:10px 12px 0;border-top:3px solid var(--color-border);color:var(--color-text-secondary);font-size:.875rem;font-weight:500}.bf-stepper-item.is-current{border-top-color:var(--color-primary);color:var(--color-text);font-weight:700}.bf-stepper-item.is-done{border-top-color:var(--color-secondary);color:var(--color-text)}.bf-bar-n.is-todo{border-color:#64748b;color:#cbd5e1}@media (max-width: 760px){.bf-stepper{flex-direction:column;gap:0}.bf-stepper-item{border-top:none;border-left:3px solid var(--color-border);padding:6px 12px}.bf-stepper-item.is-current{border-left-color:var(--color-primary)}.bf-stepper-item.is-done{border-left-color:var(--color-secondary)}.bf-bar-n{display:none}}.bf-step-hint{margin-top:2px;font-size:.84rem;color:var(--color-text-secondary);max-width:72ch}.bf-feeds{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}.bf-feed{display:inline-flex;align-items:center;gap:8px;min-height:36px;padding:0 12px 0 10px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:.86rem;font-weight:600;color:var(--color-text-secondary);transition:border-color .15s ease,background .15s ease,color .15s ease}.bf-feed:hover{border-color:var(--color-primary);color:var(--color-text)}.bf-feed[aria-pressed=true]{background:var(--color-primary-light);border-color:var(--color-primary);color:var(--color-primary-dark)}.bf-feed-box{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;border-radius:4px;border:1.5px solid var(--color-border);background:var(--color-surface);color:#fff}.bf-feed[aria-pressed=true] .bf-feed-box{background:var(--color-primary);border-color:var(--color-primary)}.bf-disclosure{display:inline-flex;align-items:center;gap:6px;padding:4px 0;background:none;font-size:.84rem;font-weight:600;color:var(--color-text)}.bf-disclosure .bf-muted{margin-left:6px;font-size:.8rem}.bf-formula{display:grid;grid-template-columns:repeat(3,minmax(0,220px));gap:12px;margin-top:10px;padding:12px;background:var(--color-bg);border-radius:var(--radius-sm)}.bf-field{display:flex;flex-direction:column;gap:4px;font-size:.78rem;font-weight:600;color:var(--color-text-secondary)}.bf-field .form-input{padding:8px 10px}.bf-formula-note{grid-column:1 / -1;font-size:.78rem}.bf-stale{margin-bottom:14px;background:var(--color-warning-light);border:1px solid #fcd34d;border-radius:var(--radius-md);color:#78350f}.bf-stale-head{display:flex;align-items:center;gap:10px;width:100%;padding:12px 16px;background:none;color:inherit;text-align:left;font-size:.88rem}.bf-stale-head svg{flex-shrink:0;color:#b45309}.bf-stale-toggle{margin-left:auto;font-weight:700;text-decoration:underline;text-underline-offset:3px;white-space:nowrap}.bf-stale-list{list-style:none;display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:4px 16px;max-height:240px;overflow-y:auto;padding:0 16px 12px 44px;font-size:.82rem}.bf-stale-list li{display:flex;flex-direction:column}.bf-stale-list a{font-weight:600;color:#78350f}.bf-stale-list a:hover{text-decoration:underline}.bf-stale-list .bf-muted{color:#92400e;font-size:.75rem}.bf-step-table{padding:0}.bf-table-toolbar{flex-wrap:wrap;align-items:center;padding:14px 18px;margin:0;border-bottom:1px solid var(--color-border)}.bf-table-toolbar .bf-step-title{margin-right:auto}.bf-search{display:flex;align-items:center;gap:8px;height:38px;padding:0 12px;width:240px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text-secondary)}.bf-search:focus-within{border-color:var(--color-primary);box-shadow:0 0 0 3px #0ea5e926}.bf-search input{flex:1;min-width:0;border:none;outline:none;background:none;color:var(--color-text);font-size:.9rem}.bf-table-toolbar .btn{height:38px;padding:0 14px}.bf-table-toolbar .btn:disabled,.bf-bar .btn:disabled{opacity:.5;cursor:not-allowed}.bf-empty{padding:36px 16px;text-align:center}.bf-empty-title{font-weight:700;margin-bottom:4px}.bf-table-wrap{overflow-x:auto}.bf-table{width:100%;border-collapse:separate;border-spacing:0;font-size:.875rem}.bf-table th{position:sticky;top:0;z-index:1;padding:10px 12px;background:var(--color-surface);border-bottom:1px solid var(--color-border);text-align:left;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-secondary);white-space:nowrap}.bf-table td{padding:8px 12px;border-bottom:1px solid var(--color-border-light);vertical-align:middle}.bf-table tbody tr:last-child td{border-bottom:none}.bf-table tbody tr:hover td{background:var(--color-surface-hover)}.bf-table tr.is-checked td{background:color-mix(in srgb,var(--color-primary-light) 55%,transparent)}.bf-table .num{text-align:right;white-space:nowrap}.bf-col-check{width:40px;text-align:center}.bf-col-check input{width:18px;height:18px;accent-color:var(--color-primary);cursor:pointer}.bf-name{min-width:180px}.bf-name-main{display:flex;align-items:center;gap:6px;font-weight:650}.bf-name .bf-muted{display:block;font-size:.75rem}.bf-stale-icon{color:#b45309;flex-shrink:0}.bf-col-feed{min-width:150px;max-width:200px}.bf-table th.bf-col-feed{overflow:hidden;text-overflow:ellipsis;text-transform:none;letter-spacing:0;font-size:.8rem;color:var(--color-text)}.bf-kg{display:flex;align-items:center;width:120px;height:36px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);transition:border-color .15s ease,box-shadow .15s ease}.bf-kg:focus-within{border-color:var(--color-primary);box-shadow:0 0 0 3px #0ea5e926}.bf-kg input{flex:1;min-width:0;height:100%;padding:0 4px 0 10px;border:none;outline:none;background:none;text-align:right;font-weight:650;font-size:.9rem;color:var(--color-text);-moz-appearance:textfield}.bf-kg input::-webkit-outer-spin-button,.bf-kg input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.bf-kg-unit{padding-right:10px;font-size:.78rem;color:var(--color-text-secondary)}.bf-kg-meta{display:flex;align-items:center;gap:6px;margin-top:3px;font-size:.72rem;color:var(--color-text-secondary);white-space:nowrap}.bf-src{padding:0 5px;border-radius:4px;font-weight:700;font-size:.68rem}.bf-src.is-table{background:var(--color-secondary-light);color:#047857}.bf-src.is-formula{background:var(--color-border-light);color:var(--color-text-secondary)}.bf-result{margin-bottom:12px;padding:10px 14px;border-radius:var(--radius-md);font-size:.88rem}.bf-result.is-ok{background:#f0fdf4;border:1px solid #86efac;color:#166534}.bf-result.is-err{background:#fef2f2;border:1px solid #f87171;color:#991b1b}.bf-bar{position:sticky;bottom:12px;z-index:5;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 16px;background:var(--color-text);color:#f8fafc;border-radius:var(--radius-md);box-shadow:var(--shadow-lg)}.bf-bar .bf-muted{color:#cbd5e1}.bf-bar-sum{display:flex;flex-direction:column;min-width:0}.bf-bar-main{font-size:.95rem}.bf-bar-feeds{font-size:.78rem;color:#cbd5e1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bf-bar-actions{display:flex;gap:8px;flex-shrink:0}.bf-bar .btn-secondary{background:transparent;border-color:#475569;color:#e2e8f0}.bf-bar .btn-secondary:hover{background:#334155;color:#fff}.bf :focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}@media (max-width: 760px){.bf-step{padding:14px}.bf-formula{grid-template-columns:1fr}.bf-stale-list{padding-left:16px}.bf-table-toolbar{padding:12px 14px}.bf-search{width:100%;order:3}.bf-table-toolbar .btn{order:4;width:100%;justify-content:center}.bf-bar{flex-direction:column;align-items:stretch;bottom:8px}.bf-bar-actions .btn{flex:1;justify-content:center}}.bf-bar .bf-bar-sum{flex:1}.bf-ms{position:relative;max-width:640px;margin-bottom:12px}.bf-ms-control{display:flex;flex-wrap:wrap;align-items:center;gap:6px;min-height:42px;padding:4px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);transition:border-color .15s ease,box-shadow .15s ease}.bf-ms-control.is-open,.bf-ms-control:focus-within{border-color:var(--color-primary);box-shadow:0 0 0 3px #0ea5e926}.bf-ms-tag{display:inline-flex;align-items:center;gap:4px;height:30px;padding:0 4px 0 10px;border-radius:6px;background:var(--color-primary-light);color:var(--color-primary-dark);font-size:.84rem;font-weight:600}.bf-ms-tag button{display:inline-flex;padding:4px;border-radius:4px;background:none;color:inherit}.bf-ms-tag button:hover{background:#0284c726}.bf-ms-trigger{flex:1;display:flex;align-items:center;justify-content:space-between;gap:8px;min-width:160px;height:32px;padding:0 8px;background:none;font-size:.9rem;color:var(--color-text);text-align:left}.bf-ms-caret{color:var(--color-text-secondary);transition:transform .15s ease}.is-open .bf-ms-caret{transform:rotate(180deg)}.bf-ms-pop{position:absolute;top:calc(100% + 6px);left:0;right:0;z-index:20;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);overflow:hidden}.bf-ms-search{display:flex;align-items:center;gap:8px;padding:10px 12px;border-bottom:1px solid var(--color-border-light);color:var(--color-text-secondary)}.bf-ms-search input{flex:1;min-width:0;border:none;outline:none;background:none;font-size:.9rem;color:var(--color-text)}.bf-ms-actions{display:flex;align-items:center;gap:12px;padding:6px 12px;font-size:.78rem;border-bottom:1px solid var(--color-border-light)}.bf-ms-actions .bf-muted{margin-right:auto}.bf-ms-actions button{background:none;padding:2px 0;font-weight:600;color:var(--color-primary-dark)}.bf-ms-actions button:disabled{color:var(--color-text-muted);cursor:default}.bf-ms-list{list-style:none;max-height:300px;overflow-y:auto;padding:4px}.bf-ms-option{display:grid;grid-template-columns:16px minmax(0,1fr) auto 80px;align-items:center;gap:10px;padding:8px;border-radius:6px;font-size:.875rem;cursor:pointer}.bf-ms-option:hover,.bf-ms-option:focus-visible{background:var(--color-surface-hover);outline:none}.bf-ms-option[aria-selected=true] .bf-feed-box{background:var(--color-primary);border-color:var(--color-primary)}.bf-ms-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600}.bf-ms-flag{padding:0 6px;border-radius:4px;background:var(--color-border-light);color:var(--color-text-secondary);font-size:.7rem;font-weight:700}.bf-ms-flag.is-table{background:var(--color-secondary-light);color:#047857}.bf-ms-stock{text-align:right;font-size:.8rem;color:var(--color-text-secondary);white-space:nowrap}.bf-ms-empty{padding:16px;text-align:center;color:var(--color-text-secondary);font-size:.875rem}@media (max-width: 600px){.bf-ms-option{grid-template-columns:16px minmax(0,1fr) auto}.bf-ms-stock{display:none}}.bf-table-grouped th{position:static}.bf-table-grouped thead tr:first-child th{border-bottom-color:var(--color-border-light)}.bf-table-grouped th.bf-group{text-align:center;border-left:1px solid var(--color-border);color:var(--color-text)}.bf-table-grouped .bf-group-start{border-left:1px solid var(--color-border)}.bf-table-grouped .bf-col-total{font-weight:700;background:var(--color-bg)}.bf-table-grouped thead .bf-col-total{color:var(--color-text)}.bf-table-grouped tbody tr.is-checked .bf-col-total{background:color-mix(in srgb,var(--color-primary-light) 80%,var(--color-bg))}.bf-table-grouped .bf-col-feed{min-width:110px;max-width:160px}.bf-table-grouped .bf-kg{width:96px}.bf-table-grouped .bf-kg input{padding-right:10px}.bf-table-grouped .bf-col-meal{min-width:80px}.bf-species{color:var(--color-text-secondary);white-space:nowrap}.cd{font-variant-numeric:tabular-nums}.cd-muted{color:var(--color-text-secondary)}.cd-error{color:var(--color-danger);margin:8px 0;font-size:.875rem}.cd-ok{color:#15803d;margin:8px 0;font-size:.875rem}.cd .is-danger{color:var(--color-danger)}.cd-crumbs{display:flex;align-items:center;gap:8px;font-size:.85rem;color:var(--color-text-secondary);margin-bottom:10px}.cd-crumbs a{display:inline-flex;align-items:center;gap:4px;font-weight:600;color:var(--color-primary-dark)}.cd-crumbs a:hover{text-decoration:underline}.cd-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:18px}.cd-title{font-size:1.75rem;font-weight:800;letter-spacing:-.03em;line-height:1.15}.cd-meta{display:flex;flex-wrap:wrap;gap:4px 14px;margin-top:6px;font-size:.92rem;font-weight:600;color:var(--color-text)}.cd-meta .cd-muted{font-weight:400}.cd-head-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}.cd-icon-btn{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:var(--radius-sm);background:none;color:var(--color-text-secondary);transition:background .15s ease,color .15s ease}.cd-icon-btn:hover{background:var(--color-border-light);color:var(--color-text)}.cd-icon-btn.is-danger:hover{background:var(--color-danger-light);color:var(--color-danger)}.cd-head-actions .cd-icon-btn{width:40px;height:40px;border:1px solid var(--color-border)}.cd-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);margin-bottom:18px;overflow:hidden}.cd-kpi{display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:14px 18px;background:none;border-left:1px solid var(--color-border-light);text-align:left;transition:background .15s ease}.cd-kpi:first-child{border-left:none}.cd-kpi:hover{background:var(--color-surface-hover)}.cd-kpi-label{font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-secondary)}.cd-kpi-value{font-size:1.45rem;font-weight:750;letter-spacing:-.02em;color:var(--color-text)}.cd-kpi-value small{font-size:.8rem;font-weight:600;color:var(--color-text-secondary)}.cd-kpi-sub{font-size:.78rem;color:var(--color-text-secondary)}.cd-layout{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:18px;align-items:start}.cd-section-head{display:flex;align-items:baseline;gap:10px;margin-bottom:10px}.cd-section-head h3{font-size:1rem;font-weight:700}.cd-section-head .cd-muted{font-size:.8rem}.cd-water{margin-bottom:18px}.cd-water-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.cd-wtile{display:flex;flex-direction:column;gap:4px;padding:12px 14px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);text-align:left;transition:border-color .15s ease,box-shadow .15s ease}.cd-wtile:hover{border-color:var(--color-primary);box-shadow:var(--shadow-sm)}.cd-wtile.is-warn{border-left:3px solid var(--color-warning)}.cd-wtile.is-danger{border-left:3px solid var(--color-danger)}.cd-wtile-top{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:.8rem;font-weight:600;color:var(--color-text-secondary)}.cd-zone{padding:1px 7px;border-radius:999px;font-size:.68rem;font-weight:700}.cd-zone.is-ok{background:#dcfce7;color:#15803d}.cd-zone.is-warn{background:#ffedd5;color:#b45309}.cd-zone.is-danger{background:#fee2e2;color:#b91c1c}.cd-wtile-value{font-size:1.35rem;font-weight:750;color:var(--color-text)}.cd-wtile-value small{font-size:.78rem;font-weight:600;color:var(--color-text-secondary)}.cd-wtile-foot{display:flex;align-items:flex-end;justify-content:space-between;gap:8px;min-height:28px}.cd-spark{flex:1;max-width:110px;height:28px}.cd-tabs{display:flex;gap:2px;border-bottom:1px solid var(--color-border);margin-bottom:14px;overflow-x:auto}.cd-tabs button{display:inline-flex;align-items:center;gap:6px;padding:10px 14px;background:none;border-bottom:2px solid transparent;margin-bottom:-1px;font-size:.9rem;font-weight:600;color:var(--color-text-secondary);white-space:nowrap}.cd-tabs button:hover{color:var(--color-text)}.cd-tabs button.is-active{color:var(--color-text);border-bottom-color:var(--color-primary)}.cd-tab-n{padding:0 7px;border-radius:999px;background:var(--color-border-light);border:1px solid var(--color-border);font-size:.72rem;color:var(--color-text-secondary)}.cd-panel{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:16px}.cd-panel-bar{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:10px}.cd-hint{font-size:.8rem;color:var(--color-text-secondary);line-height:1.45;max-width:70ch;margin-bottom:10px}.cd-panel-bar .cd-hint{margin-bottom:0}.cd-form{margin-bottom:14px;padding:14px;background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md)}.cd-form-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.cd-form-head h4{font-size:.95rem;font-weight:700}.cd-form-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px 12px}.cd-field{display:flex;flex-direction:column;gap:4px;min-width:0}.cd-field label{font-size:.78rem;font-weight:600;color:var(--color-text-secondary)}.cd-field .form-input{padding:8px 10px}.cd-field-wide{grid-column:1 / -1}.cd-form-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:12px}.cd-empty{padding:28px 12px;text-align:center;color:var(--color-text-secondary)}.cd-table-wrap{overflow-x:auto;margin:0 -16px -16px}.cd-table{width:100%;border-collapse:collapse;font-size:.86rem}.cd-table th{padding:8px 10px;border-bottom:1px solid var(--color-border);text-align:left;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-secondary);white-space:nowrap}.cd-table td{padding:8px 10px;border-bottom:1px solid var(--color-border-light);vertical-align:top}.cd-table tr:last-child td{border-bottom:none}.cd-table tbody tr:hover td{background:var(--color-surface-hover)}.cd-table tr.is-editing td{background:var(--color-primary-light)}.cd-table .num{text-align:right;white-space:nowrap}.cd-table .num .delta{display:flex;justify-content:flex-end;margin-top:1px}.cd-table th:first-child,.cd-table td:first-child{padding-left:16px}.cd-date{font-weight:650;white-space:nowrap}.cd-nowrap{white-space:nowrap}.cd-note{color:var(--color-text-secondary);max-width:220px}.cd-w-warn{color:#b45309;font-weight:650}.cd-w-danger{color:var(--color-danger);font-weight:700}.cd-row-actions{white-space:nowrap;text-align:right}.cd-row-actions .cd-icon-btn{width:30px;height:30px;opacity:.55}.cd-table tbody tr:hover .cd-icon-btn,.cd-row-actions .cd-icon-btn:focus-visible{opacity:1}.cd-chips,.cd-seg{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px}.cd-chips button,.cd-seg button{height:32px;padding:0 12px;border-radius:999px;border:1px solid var(--color-border);background:var(--color-surface);font-size:.82rem;font-weight:600;color:var(--color-text-secondary)}.cd-chips button:hover,.cd-seg button:hover{border-color:var(--color-primary);color:var(--color-text)}.cd-chips button.is-active,.cd-seg button.is-active{background:var(--color-primary-light);border-color:var(--color-primary);color:var(--color-primary-dark)}.cd-seg button{border-radius:var(--radius-sm)}.cd-chart{height:320px}.cd-timeline{list-style:none;display:flex;flex-direction:column}.cd-timeline li{display:grid;grid-template-columns:96px minmax(0,1fr);gap:12px;padding:10px 0 10px 12px;border-left:2px solid var(--color-primary);font-size:.86rem}.cd-timeline li+li{border-top:1px solid var(--color-border-light)}.cd-timeline li.is-mortality{border-left-color:var(--color-danger)}.cd-tl-date{font-weight:700;white-space:nowrap}.cd-tl-title{font-weight:650}.cd-tl-note{margin-top:2px;font-size:.8rem;color:var(--color-text-secondary);font-style:italic}.cd-side{position:sticky;top:16px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:14px 16px}.cd-side-title{font-size:.8rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-secondary);margin-bottom:8px}.cd-props>div{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:7px 0;border-bottom:1px solid var(--color-border-light);font-size:.86rem}.cd-props>div:last-child{border-bottom:none}.cd-props dt{color:var(--color-text-secondary)}.cd-props dd{display:flex;flex-direction:column;align-items:flex-end;text-align:right;font-weight:600}.cd-props dd small{font-weight:400;margin:2px 0 0}.cd-inline-input{width:auto;max-width:120px;padding:4px 30px 4px 8px!important;font-size:.86rem}input.cd-inline-input{max-width:70px;padding-right:8px!important;text-align:right}.cd :focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}@media (max-width: 1100px){.cd-layout{grid-template-columns:1fr}.cd-side{position:static;order:-1}.cd-props{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));column-gap:24px}.cd-props>div:last-child{border-bottom:1px solid var(--color-border-light)}}@media (max-width: 760px){.cd-head{flex-direction:column;align-items:stretch}.cd-head-actions .btn{flex:1;justify-content:center}.cd-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.cd-kpi:nth-child(3){border-left:none}.cd-kpi:nth-child(n+3){border-top:1px solid var(--color-border-light)}.cd-water-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.cd-panel-bar{flex-direction:column}.cd-chart{height:260px}.cd-timeline li{grid-template-columns:1fr;gap:2px}.cd-row-actions .cd-icon-btn{opacity:1;width:40px;height:40px}}.cd-panel-bar-end{justify-content:flex-end}.cd-side-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}.cd-side-head .cd-side-title{margin-bottom:0}.cd-side-edit{display:inline-flex;align-items:center;gap:4px;padding:4px 8px;border-radius:6px;background:none;font-size:.8rem;font-weight:600;color:var(--color-primary-dark)}.cd-side-edit:hover{background:var(--color-primary-light)}.cd-props>.cd-prop-edit{flex-direction:column;align-items:stretch;gap:4px}.cd-prop-edit dt{font-size:.78rem;font-weight:600}.cd-prop-edit dd{align-items:stretch;text-align:left;font-weight:400}.cd-prop-edit .form-input{padding:7px 10px;font-size:.875rem}.cd-side-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:10px}.pp{font-variant-numeric:tabular-nums}.pp-kpi.is-good .cr-kpi-value{color:#047857}.pp-kpi.is-warn .cr-kpi-value{color:#b45309}.pp-kpi.is-bad .cr-kpi-value{color:var(--color-danger)}.pp-kpi.is-dead .cr-kpi-value{color:var(--color-text-secondary)}.pp-kpi[aria-pressed=true]{box-shadow:inset 0 -3px 0 var(--color-primary);background:var(--color-surface-hover)}.pp-form{margin-bottom:16px}.pp-count{margin:0 0 8px;font-size:.82rem;color:var(--color-text-secondary)}.pp-panel{padding:0}.pp-panel .cd-table-wrap{margin:0}.pp-row{cursor:pointer}.pp-row.is-deceased td{color:var(--color-text-secondary)}.pp-chip{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.84rem;font-weight:700;color:var(--color-primary-dark);white-space:nowrap}a.pp-chip:hover{text-decoration:underline}.pp-status{display:inline-flex;align-items:center;gap:6px;padding:1px 9px 1px 7px;border-radius:999px;font-size:.75rem;font-weight:700;white-space:nowrap}.pp-status:before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor}.pp-status.is-healthy{background:var(--color-secondary-light);color:#047857}.pp-status.is-watch{background:var(--color-warning-light);color:#b45309}.pp-status.is-sick{background:var(--color-danger-light);color:#b91c1c}.pp-status.is-deceased{background:var(--color-border-light);color:var(--color-text-secondary)}.pp-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:10px}.pp-card{display:flex;flex-direction:column;gap:4px;padding:12px 14px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);transition:border-color .15s ease,box-shadow .15s ease}.pp-card:hover{border-color:var(--color-primary);box-shadow:var(--shadow-sm)}.pp-card.is-sick{border-left:3px solid var(--color-danger)}.pp-card.is-watch{border-left:3px solid var(--color-warning)}.pp-card.is-deceased{opacity:.75}.pp-card-top{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:2px}.pp-card-main{font-weight:650;font-size:.9rem}.pp-card-cage{font-size:.82rem;color:var(--color-text-secondary)}.pp-card-nums{display:flex;gap:18px;margin-top:6px;font-weight:700;font-size:.9rem}.pp-card-nums span{display:flex;flex-direction:column}.pp-card-nums small{font-size:.68rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-secondary)}.pp-quality{padding:1px 8px;border-radius:999px;font-size:.75rem;font-weight:700;background:var(--color-border-light);color:var(--color-text-secondary)}.pp-quality.is-good{background:var(--color-secondary-light);color:#047857}.pp-quality.is-info{background:var(--color-primary-light);color:var(--color-primary-dark)}.pp-quality.is-warn{background:var(--color-warning-light);color:#b45309}.pp-quality.is-bad{background:var(--color-danger-light);color:#b91c1c}.pd-chip-title{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:1.5rem;letter-spacing:-.01em;overflow-wrap:anywhere}.pd .cd-meta{align-items:center}.pd-age{font-size:1.2rem}.pd-edit{margin-bottom:18px}.pd-chart{height:220px;margin-bottom:12px}.pd-up{color:#047857;font-weight:650}.pd-down{color:var(--color-danger);font-weight:650}.pd-strong{font-weight:700;color:#047857}.pd-caviar-sum{display:flex;flex-wrap:wrap;align-items:center;gap:8px;font-size:.86rem}.pd-dirty{padding:1px 8px;border-radius:999px;background:var(--color-warning-light);color:#b45309;font-size:.72rem;font-weight:700}.pd-extra{display:inline-block;margin-left:6px;padding:0 6px;border-radius:4px;background:var(--color-warning-light);color:#b45309;font-size:.68rem;font-weight:700;vertical-align:1px}.pd-check{display:inline-flex;align-items:center;gap:8px;margin-top:10px;font-size:.86rem;font-weight:600;color:var(--color-text-secondary);cursor:pointer}.pd-check input{width:16px;height:16px;accent-color:var(--color-primary)}.pd-link{color:var(--color-primary-dark)}.pd-link:hover{text-decoration:underline}.pd-side-btn{width:100%;justify-content:center;margin-top:12px}.pd .cd-props dd{max-width:60%;overflow-wrap:anywhere}@media (max-width: 760px){.pp .cr-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.pd .cd-head-actions{flex-wrap:wrap}}@media (max-width: 600px){.pp .cr-kpi-action{grid-column:auto}}.pd-side-actions{display:grid;grid-template-columns:1fr;gap:8px;margin-top:12px}.pd-side-actions .btn{justify-content:center;padding-left:8px;padding-right:8px}.sh{font-variant-numeric:tabular-nums}.sh-kpis{grid-template-columns:repeat(4,minmax(0,1fr))}.sh-good{color:#047857}.sh-good small{font-size:.85rem;color:var(--color-text-secondary);font-weight:600}.sh-bar{display:block;width:100%;height:4px;margin-top:6px;border-radius:999px;background:var(--color-border-light);overflow:hidden}.sh-bar span{display:block;height:100%;background:var(--color-secondary)}.sh-feed{display:flex;flex-direction:column;gap:14px}.sh-day-title{display:flex;align-items:center;gap:8px;margin:0 0 6px 2px;font-size:.8rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-secondary)}.sh-list{list-style:none;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden}.sh-item{display:grid;grid-template-columns:52px 20px minmax(0,1fr) auto;align-items:center;gap:12px;padding:10px 14px;border-top:1px solid var(--color-border-light)}.sh-item:first-child{border-top:none}.sh-item:hover{background:var(--color-surface-hover)}.sh-item.is-missing{background:color-mix(in srgb,var(--color-warning-light) 40%,transparent)}.sh-time{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.86rem;font-weight:600;color:var(--color-text-secondary)}.sh-icon{display:inline-flex}.is-found .sh-icon{color:#047857}.is-missing .sh-icon{color:#b45309}.sh-main{display:flex;flex-direction:column;min-width:0}.sh-chip{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.88rem;font-weight:700;color:var(--color-text);overflow-wrap:anywhere}.sh-sub{font-size:.8rem;color:var(--color-text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.is-missing .sh-sub{color:#b45309;font-weight:600}@media (max-width: 760px){.sh-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.sh .cr-kpi-action{grid-column:auto}.sh-item{grid-template-columns:44px minmax(0,1fr) auto}.sh-icon{display:none}}
