.print-root{background:#fff;color:#000;font-family:Helvetica Neue,Arial,sans-serif}.print-root .page{box-sizing:border-box;background:#fff;break-after:page;overflow:hidden}.print-root .page:last-child{break-after:auto}.print-root .page-inner{width:100%;height:100%;display:flex;flex-direction:column}.print-root .running-header{flex:0 0 auto;height:10mm;display:flex;align-items:center;justify-content:space-between;gap:4mm;border-bottom:.4mm solid #000;padding-bottom:1mm;margin-bottom:2mm;font-size:8pt}.print-root .running-header .study{font-weight:700}.print-root .running-header .range{font-weight:500;text-align:center;flex:1 1 auto}.print-root .running-header .pageno{font-weight:600;white-space:nowrap}.print-root .blocks{display:grid;align-content:start;justify-content:start;column-gap:0;row-gap:4mm}.print-root .day-block{break-inside:avoid}.print-root .page-footer{flex:0 0 auto;margin-top:auto;padding-top:1.5mm;border-top:.3mm solid #000;font-size:7pt;font-weight:600;line-height:1.35}.print-root .day-header{height:7mm;line-height:7mm;font-size:8pt;font-weight:700}.print-root .day-header .cont{font-weight:500;font-style:italic}.print-root table{border-collapse:collapse;table-layout:fixed}.print-root col.col-id{width:14mm}.print-root col.col-mon{width:7mm}.print-root col.col-cage{width:10mm}.print-root col.col-metric{width:13mm}.print-root th.mon,.print-root td.mon{font-size:7pt;font-weight:700}.print-root th,.print-root td{border:.3mm solid #000;padding:0;text-align:center;vertical-align:middle;overflow:hidden}.print-root thead th{height:10mm;line-height:1;padding:0 .4mm;font-size:6.5pt;font-weight:700;overflow-wrap:anywhere;word-break:break-word}.print-root tbody td{height:6mm}.print-root td.id,.print-root th.id,.print-root td.cage,.print-root th.cage{font-size:6.5pt}.print-root tr.group-band td{height:6mm;padding:0 1mm;text-align:left;font-size:7pt;font-weight:700;-webkit-print-color-adjust:exact;print-color-adjust:exact}@media screen{.print-root .page{box-shadow:0 1mm 3mm #00000040;margin:0 auto 6mm}}@media print{.print-root .page{box-shadow:none;margin:0}}:root{color-scheme:light}*{box-sizing:border-box}body{margin:0;background:#f4f4f5;color:#18181b;font-family:system-ui,-apple-system,sans-serif}.app{display:flex;flex-direction:column;height:100vh}.toolbar{display:flex;align-items:center;gap:16px;padding:10px 16px;background:#fff;border-bottom:1px solid #e4e4e7}.toolbar .brand{display:inline-flex;align-items:center;gap:8px;font-size:15px;font-weight:700}.brand-icon{width:22px;height:22px;display:block;border-radius:5px}.toolbar .meta{color:#52525b;font-size:13px}.toolbar button{margin-left:auto;padding:7px 16px;font-size:14px;border:1px solid #18181b;border-radius:6px;background:#18181b;color:#fff;cursor:pointer}.toolbar button:disabled{opacity:.4;cursor:not-allowed}.workspace{flex:1;display:flex;min-height:0}.config-panel{width:360px;flex:0 0 360px;overflow:auto;padding:16px 16px 64px;background:#fff;border-right:1px solid #e4e4e7}.config-panel h2{display:flex;align-items:center;gap:8px;font-size:13px;text-transform:uppercase;letter-spacing:.04em;color:#71717a;margin:22px 0 10px}.config-panel h2 .add{margin-left:auto}.field{display:flex;flex-direction:column;gap:3px;flex:1;margin-bottom:8px}.field.narrow{flex:0 0 96px}.field>span{font-size:11px;color:#71717a}.row{display:flex;gap:8px;align-items:flex-end}.check{display:flex;align-items:center;gap:6px;font-size:13px;margin-bottom:8px}.toggles{display:flex;flex-wrap:wrap;align-items:center;gap:8px 20px;margin:2px 0 12px}.toggles .check{margin-bottom:0}.toggles .check span{white-space:nowrap}input,select{font:inherit;font-size:13px;padding:5px 7px;border:1px solid #d4d4d8;border-radius:5px;background:#fff;width:100%}input[type=checkbox]{width:auto;flex:none;margin:0}.group{border:1px solid #e4e4e7;border-radius:8px;padding:10px;margin-bottom:10px}.metric-row,.animal-row{align-items:center;margin-bottom:6px}.animals{max-height:320px;overflow:auto;padding-right:4px}.animal-id{flex:1}.animal-cage{flex:0 0 120px}.hint{font-size:11px;color:#a1a1aa;margin:0 0 8px}button.add,button.remove{font-size:12px;padding:4px 8px;border:1px solid #d4d4d8;border-radius:5px;background:#fafafa;color:#3f3f46;cursor:pointer;width:auto}button.remove{color:#b91c1c}.color-row{align-items:center;gap:10px}.color-input{width:44px;flex:0 0 44px;height:30px;padding:2px;cursor:pointer}.preview-area{flex:1;min-width:0;overflow:auto;background:#e8e8ea}.preview{padding:24px}.preview-controls{display:flex;align-items:center;gap:16px;margin-bottom:14px;font-size:13px;color:#3f3f46}.preview-scale{zoom:var(--preview-zoom, 1)}.preview-scale.grayscale{filter:grayscale(1)}.problems{margin:24px;padding:14px 18px;color:#b91c1c;background:#fef2f2;border:1px solid #fecaca;border-radius:8px}.problems ul{margin:8px 0 0;padding-left:20px}.warnings{margin:24px 24px 0;padding:10px 16px;color:#92400e;background:#fffbeb;border:1px solid #fde68a;border-radius:8px;font-size:13px}.warnings ul{margin:6px 0 0;padding-left:20px}.empty-preview{margin:24px;padding:28px;color:#71717a;background:#fff;border:1px dashed #d4d4d8;border-radius:8px;text-align:center}@media print{body{background:#fff}.app,.workspace{display:block;height:auto}.no-print{display:none!important}.preview-area{overflow:visible;background:#fff}.preview{padding:0}.preview-scale{zoom:1!important;filter:none!important}}
