:root{--sg-sidebar-w:248px;--sg-sidebar-mini:72px;--sg-topbar-h:60px}body{background:var(--bs-body-bg);min-height:100vh}.sg-sidebar{width:var(--sg-sidebar-w);background:var(--bs-tertiary-bg);border-right:1px solid var(--bs-border-color);z-index:1040;flex-direction:column;transition:width .15s,transform .2s;display:flex;position:fixed;inset:0 auto 0 0;overflow-x:hidden}.sg-brand{height:var(--sg-topbar-h);color:var(--bs-body-color);white-space:nowrap;align-items:center;gap:.6rem;padding:0 1rem;font-size:1.15rem;font-weight:600;text-decoration:none;display:flex}.sg-brand img{object-fit:contain;flex-shrink:0;width:40px;height:40px}.sg-nav{margin:0;padding:.5rem;list-style:none;overflow-y:auto}.sg-nav ul{margin:0;padding:0;list-style:none}.sg-nav a,.sg-nav button{width:100%;color:var(--bs-secondary-color);white-space:nowrap;text-align:left;background:0 0;border:0;border-radius:.5rem;align-items:center;gap:.75rem;padding:.55rem .8rem;text-decoration:none;display:flex}.sg-nav a:hover,.sg-nav button:hover{background:var(--bs-secondary-bg);color:var(--bs-body-color)}.sg-nav a.active{background:var(--bs-primary);color:#fff}.sg-nav button.active{color:var(--bs-body-color)}.sg-nav .sg-sub a{padding-left:2.6rem;font-size:.92rem}.sg-nav svg{flex-shrink:0}.sg-chevron{margin-left:auto;transition:transform .15s}.sg-chevron.open{transform:rotate(90deg)}.sg-main{margin-left:var(--sg-sidebar-w);flex-direction:column;min-width:0;min-height:100vh;transition:margin-left .15s;display:flex}.sg-topbar{z-index:1030;height:var(--sg-topbar-h);background:color-mix(in srgb, var(--bs-body-bg) 88%, transparent);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-bottom:1px solid var(--bs-border-color);align-items:center;gap:1rem;padding:0 1.25rem;display:flex;position:sticky;top:0}.sg-content{flex:1;min-width:0;padding:1.25rem}body.sg-mini .sg-sidebar{width:var(--sg-sidebar-mini)}body.sg-mini .sg-sidebar .sg-hide,body.sg-mini .sg-sidebar .sg-sub{display:none}body.sg-mini .sg-main{margin-left:var(--sg-sidebar-mini)}body.sg-mini .sg-sidebar:hover{width:var(--sg-sidebar-w);box-shadow:0 0 24px #0006}body.sg-mini .sg-sidebar:hover .sg-hide{display:inline}body.sg-mini .sg-sidebar:hover .sg-sub{display:block}@media (max-width:1199.98px){.sg-sidebar{transform:translate(-100%);width:var(--sg-sidebar-w)!important}body.sg-mobile-open .sg-sidebar{transform:none;box-shadow:0 0 32px #00000080}.sg-main,body.sg-mini .sg-main{margin-left:0}body.sg-mini .sg-sidebar .sg-hide{display:inline}body.sg-mini .sg-sidebar .sg-sub{display:block}}.sg-backdrop{z-index:1035;background:#00000073;position:fixed;inset:0}.sg-page-head{background:var(--bs-info-bg-subtle);border-radius:.75rem;margin-bottom:1.25rem;padding:.9rem 1.25rem}.sg-page-head .breadcrumb{margin:0;font-size:.85rem}.sg-page-head a{color:var(--bs-secondary-color);text-decoration:none}.section-card{margin-bottom:24px}.table thead th{white-space:nowrap;text-align:center;vertical-align:middle}.table td{vertical-align:middle}.drag-handle{cursor:grab;-webkit-user-select:none;user-select:none}.dragging{opacity:.6}.drag-handle.disabled{cursor:not-allowed;opacity:.4}.straw-row>td{background:#ffc1071f!important}.calendar-grid{border:1px solid var(--bs-border-color);border-radius:6px;overflow:hidden}.calendar-header,.calendar-row{grid-template-columns:repeat(7,minmax(0,1fr));display:grid}.calendar-header{background:var(--bs-tertiary-bg);font-weight:600}.calendar-cell{border-right:1px solid var(--bs-border-color);border-bottom:1px solid var(--bs-border-color);min-width:0;min-height:72px;padding:6px;overflow:hidden}.calendar-cell-empty{background:#ffffff05;min-height:40px}.calendar-room-line{line-height:1}.calendar-phase-chip{white-space:nowrap;text-overflow:ellipsis;background:#ffffff0d;border-radius:3px;max-width:100%;margin:1px 2px 1px 0;padding:1px 4px;font-size:.78em;display:inline-block;overflow:hidden}.calendar-phase-chip .calendar-chip-room{margin-right:2px;font-weight:700}.calendar-header .calendar-cell:nth-child(7n),.calendar-row .calendar-cell:nth-child(7n){border-right:none}.calendar-row:last-child .calendar-cell{border-bottom:none}.calendar-date{color:var(--bs-secondary-color);font-size:.85em;font-weight:700}.calendar-date .harvest-info{font-size:.85em;font-style:italic;font-weight:400}.calendar-event{font-size:.85em}.calendar-event.load{color:#4d94ff}.calendar-event.sarm{color:#a370f7}.calendar-event.pinShock{color:#e685b5}.calendar-event.pin1{color:#3dd5f3}.calendar-event.fruit1{color:#20c997}.calendar-event.harvest1{color:#48c78e}.calendar-event.rest{color:#b48bf0}.calendar-event.pin2{color:#29b6d6}.calendar-event.fruit2{color:#4fd1a5}.calendar-event.harvest2{color:#fd9843}.calendar-event.empty{color:#adb5bd}.calendar-event.clean{color:#8f99a3}.calendar-event.incubate{color:#3dd5f3}.calendar-cell.today{background:#0d6efd2e}.calendar-cell.harvest-1{background:#ffc10714}.calendar-cell.harvest-2{background:#0d6efd1a}.calendar-cell.harvest-3{background:#19875424}.calendar-legend{flex-wrap:wrap;gap:.35rem .75rem;display:flex}.calendar-yearly-header{font-weight:600}.calendar-yearly-month-title{margin-bottom:4px;font-size:.9rem;font-weight:600}.calendar-grid-sm{font-size:.75rem}.calendar-grid-sm .calendar-cell{min-height:36px;padding:2px 4px}.calendar-grid-sm .calendar-date{font-size:.8em}.monthly-summary-scroll{border:1px solid var(--bs-border-color);border-radius:6px;max-height:min(62vh,580px);margin-bottom:1rem;overflow:auto}.monthly-summary-scroll thead th{z-index:2;box-shadow:inset 0 -1px 0 var(--bs-border-color);position:sticky;top:0}.monthly-summary td{text-align:center}.monthly-summary td:first-child,.monthly-summary th:first-child{text-align:left}.monthly-summary tr.january>td{background:#ffc1071f}.chart-box{height:560px;position:relative}.expense-item{border:1px solid var(--bs-border-color);border-radius:6px}.expense-status-past{background:#dc354524!important}.expense-status-current{background:#19875424!important}.expense-status-future{background:#0d6efd24!important}.btn-link-plain{color:var(--bs-link-color);background:0 0;border:0;padding:0;text-decoration:underline}@media (max-width:767.98px){.chart-box{height:300px}.sg-content{padding:.75rem}}@media print{.sg-sidebar,.sg-topbar,.btn,form{display:none!important}.sg-main{margin-left:0!important}}
