:root{--bg: #ffffff;--surface: #ffffff;--surface2: #f8f5f7;--surface3: #f1e9ee;--border: rgba(32, 24, 30, .09);--border2: rgba(32, 24, 30, .18);--text: #1f1520;--text2: #5f4358;--text3: #8b6b82;--accent: rgb(186, 0, 112);--accent-dim: rgba(186, 0, 112, .1);--cat-nut: #2da44e;--cat-nut-bg: rgba(45, 164, 78, .12);--cat-sed: #c87af0;--cat-sed-bg: rgba(200, 122, 240, .12);--cat-atb: #f5a623;--cat-atb-bg: rgba(245, 166, 35, .12);--cat-qmt: #ef5e5e;--cat-qmt-bg: rgba(239, 94, 94, .12);--cat-oth: #4ab3c7;--cat-oth-bg: rgba(74, 179, 199, .12);--mono: "IBM Plex Mono", monospace;--sans: "IBM Plex Sans", sans-serif}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--sans);background:var(--bg);color:var(--text);min-height:100dvh;overflow-x:hidden}#header{display:flex;align-items:center;gap:16px;padding:0 20px;height:52px;background:var(--surface);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:100}.logo{font-family:var(--mono);font-size:13px;font-weight:500;color:var(--accent);letter-spacing:.05em;white-space:nowrap;margin-right:8px}.week-nav{display:flex;align-items:center;gap:6px;background:var(--surface2);border:1px solid var(--border2);border-radius:6px;padding:4px 8px}.week-nav button{background:none;border:none;color:var(--text2);cursor:pointer;font-size:14px;width:20px;height:20px;display:flex;align-items:center;justify-content:center;border-radius:3px;transition:all .15s}.week-nav button:hover{background:var(--surface3);color:var(--text)}#week-label{font-family:var(--mono);font-size:11px;color:var(--text2);min-width:80px;text-align:center}.week-dates{color:var(--text3)}.floor-tabs{display:flex;gap:2px;background:var(--surface2);border:1px solid var(--border);border-radius:6px;padding:3px;overflow-x:auto;flex-shrink:0;scrollbar-width:none}.floor-tabs::-webkit-scrollbar{display:none}.floor-tab{padding:4px 12px;border-radius:4px;font-size:12px;font-weight:500;cursor:pointer;background:none;border:none;color:var(--text2);transition:all .15s}.floor-tab.active{background:var(--accent);color:#fff}.floor-tab:hover:not(.active){background:var(--surface3);color:var(--text)}.header-actions{margin-left:12px;display:flex;gap:8px;align-items:center;min-width:0}.btn{display:flex;align-items:center;gap:6px;padding:6px 12px;border-radius:6px;font-size:12px;font-weight:500;cursor:pointer;border:1px solid var(--border2);background:var(--surface2);color:var(--text2);transition:all .15s;white-space:nowrap}.btn:hover{background:var(--surface3);color:var(--text);border-color:var(--border2)}.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn.primary:hover{background:#ce2084}.btn svg{width:14px;height:14px;flex-shrink:0}.search-box{display:flex;align-items:center;gap:8px;padding:5px 10px;border-radius:6px;background:var(--surface2);border:1px solid var(--border2);min-width:200px}.search-box svg{width:13px;height:13px;color:var(--text3);flex-shrink:0}.search-box input{background:none;border:none;outline:none;color:var(--text);font-size:12px;width:100%;font-family:var(--sans)}.search-box input::placeholder{color:var(--text3)}#view-main{display:block}#view-history{display:none}#main-area{padding:16px 20px}.section-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px;margin-bottom:12px}.section-actions{display:flex;gap:8px;align-items:center}.section-title{font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--text3)}.patient-count{font-family:var(--mono);font-size:11px;color:var(--text3)}.table-wrap{overflow-x:auto;border:1px solid var(--border);border-radius:8px}table.patient-table{width:100%;border-collapse:collapse;min-width:850px}table.patient-table thead th{background:var(--surface2);padding:8px 12px;font-size:10px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--text3);text-align:left;border-bottom:1px solid var(--border);white-space:nowrap}table.patient-table tbody tr{border-bottom:1px solid var(--border);transition:background .1s}table.patient-table tbody tr:last-child{border-bottom:none}table.patient-table tbody tr:hover{background:var(--surface2)}table.patient-table td{padding:8px 12px;vertical-align:middle}.cell-room{font-family:var(--mono);font-size:13px;font-weight:500;color:var(--accent);white-space:nowrap}.cell-patient-name{font-size:13px;font-weight:500;color:var(--text)}.cell-sub{font-size:11px;color:var(--text3);margin-top:2px}.cell-diag{font-size:11px;font-family:var(--mono);background:var(--surface2);padding:2px 6px;border-radius:3px;color:var(--text2);white-space:nowrap;display:inline-block}.day-cell-btn{width:100%;min-height:44px;background:var(--surface2);border:1px solid var(--border);border-radius:6px;cursor:pointer;padding:6px;display:flex;flex-direction:column;gap:3px;transition:all .15s;position:relative}.day-cell-btn:hover{border-color:var(--accent);background:var(--accent-dim)}.day-cell-btn.has-data{border-color:var(--border2)}.day-badges{display:flex;flex-wrap:wrap;gap:2px}.badge{font-size:9px;font-weight:600;padding:1px 5px;border-radius:3px;letter-spacing:.04em}.badge.nut{background:var(--cat-nut-bg);color:var(--cat-nut)}.badge.sed{background:var(--cat-sed-bg);color:var(--cat-sed)}.badge.atb{background:var(--cat-atb-bg);color:var(--cat-atb)}.badge.qmt{background:var(--cat-qmt-bg);color:var(--cat-qmt)}.badge.oth{background:var(--cat-oth-bg);color:var(--cat-oth)}.cell-empty{color:var(--text3);font-size:11px;text-align:center;padding:4px}.days-row-cards-grid{padding:10px 12px;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}.days-row-card{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:10px;min-height:86px;cursor:pointer;transition:all .15s;display:flex;flex-direction:column;gap:8px;text-align:left}.days-row-card.has-data{border-color:var(--border2);background:var(--surface)}.days-row-card:hover{border-color:var(--accent);background:var(--accent-dim)}.days-row-card-header{display:flex;align-items:center;justify-content:space-between;gap:8px}.days-row-day{font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:var(--text2);font-weight:600}.days-row-summary{font-size:11px;color:var(--text3);line-height:1.5;white-space:pre-line;word-break:break-word}#entry-overlay{display:none;position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;z-index:200;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);overscroll-behavior:contain}#entry-overlay.open{display:flex;justify-content:flex-end;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch}#entry-panel{position:relative;width:520px;height:100dvh;height:-webkit-fill-available;background:var(--surface);border-left:1px solid var(--border);z-index:201;display:flex;flex-direction:column;transition:transform .25s cubic-bezier(.4,0,.2,1);overflow:hidden;margin-left:auto;transform:translate(100%)}#entry-panel.open{transform:translate(0)}.panel-header{padding:16px 20px;border-bottom:1px solid var(--border);display:flex;align-items:flex-start;justify-content:space-between;gap:12px;flex-shrink:0}.panel-title{display:flex;flex-direction:column;gap:3px}.panel-patient-name{font-size:15px;font-weight:600;color:var(--text)}.panel-meta{font-size:11px;color:var(--text3);font-family:var(--mono)}.panel-close{background:none;border:none;color:var(--text2);cursor:pointer;padding:4px;border-radius:4px;font-size:18px;line-height:1;flex-shrink:0}.panel-close:hover{background:var(--surface3);color:var(--text)}.day-selector{display:flex;gap:4px;padding:10px 20px;border-bottom:1px solid var(--border);flex-shrink:0;background:var(--surface2)}.day-btn{flex:1;padding:6px;border-radius:5px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;cursor:pointer;border:1px solid var(--border);background:none;color:var(--text2);transition:all .15s;text-align:center}.day-btn .day-date{display:block;margin-top:2px;font-size:10px;letter-spacing:0;text-transform:none;color:#ffffffe0}.day-btn:not(.active) .day-date{color:var(--text3)}.day-btn.active{background:var(--accent);border-color:var(--accent);color:#fff}.day-btn:hover:not(.active){background:var(--surface3);color:var(--text)}.panel-body{overflow-y:auto;flex:1;padding:16px 20px 20px;display:flex;flex-direction:column;gap:12px;scroll-behavior:smooth;overscroll-behavior:contain;scroll-padding-top:14px;scroll-padding-bottom:80px}.cat-section:last-child{border-color:var(--cat-oth);border-opacity:.4}.cat-section{border:1px solid var(--border);border-radius:8px;overflow:hidden;transition:border-color .2s}.cat-section:has(.cat-body:not([style*="display:none"])){border-color:var(--border2);box-shadow:0 1px 4px #0000000f}.cat-header{display:flex;align-items:center;gap:8px;padding:8px 12px;cursor:pointer;-webkit-user-select:none;user-select:none;transition:background .1s}.cat-header:hover{background:var(--surface3)}.cat-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.cat-label{font-size:12px;font-weight:600;flex:1;letter-spacing:.03em}.cat-toggle{font-size:11px;color:var(--text3);transition:color .15s;flex-shrink:0;width:16px;text-align:center}.cat-header:hover .cat-toggle{color:var(--text2)}.cat-summary{font-size:10px;color:var(--text3);max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cat-body{padding:10px 12px;border-top:1px solid var(--border);display:flex;flex-direction:column;gap:8px;background:var(--surface2)}.tags-row{display:flex;flex-wrap:wrap;gap:5px;max-height:min(20dvh,130px);overflow-y:auto;overscroll-behavior:contain;scroll-behavior:smooth;scroll-padding-top:6px;scroll-padding-bottom:6px;padding-right:2px}.tag-chip{font-size:11px;padding:3px 9px;border-radius:20px;cursor:pointer;border:1px solid;transition:all .12s;background:none;font-family:var(--sans)}.tag-chip:hover{opacity:.8}.tag-chip.nut{color:var(--cat-nut);border-color:var(--cat-nut)}.tag-chip.nut.active{background:var(--cat-nut);color:#fff}.tag-chip.sed{color:var(--cat-sed);border-color:var(--cat-sed)}.tag-chip.sed.active{background:var(--cat-sed);color:#fff}.tag-chip.atb{color:var(--cat-atb);border-color:var(--cat-atb)}.tag-chip.atb.active{background:var(--cat-atb);color:#1a0f00}.tag-chip.qmt{color:var(--cat-qmt);border-color:var(--cat-qmt)}.tag-chip.qmt.active{background:var(--cat-qmt);color:#fff}.tag-chip.oth{color:var(--cat-oth);border-color:var(--cat-oth)}.tag-chip.oth.active{background:var(--cat-oth);color:#fff}.cat-textarea{width:100%;background:var(--surface);border:1px solid var(--border);border-radius:5px;color:var(--text);font-size:12px;font-family:var(--sans);padding:8px 10px;resize:vertical;min-height:60px;outline:none;transition:border-color .15s;line-height:1.5}.cat-textarea:focus{border-color:var(--accent)}.cat-textarea::placeholder{color:var(--text3)}.panel-footer{padding:14px 20px;border-top:1px solid var(--border);display:flex;gap:8px;justify-content:flex-end;flex-wrap:wrap;flex-shrink:0;background:var(--surface2);position:sticky;bottom:0;z-index:10}.overlay-base{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;z-index:300;display:none;align-items:flex-start;justify-content:center;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);overflow-y:auto;padding:16px}.overlay-base.open{display:flex}.modal-card{background:var(--surface);border:1px solid var(--border2);border-radius:10px;width:480px;max-width:100%;max-height:calc(100dvh - 32px);display:flex;flex-direction:column;margin:auto}#csv-overlay{display:none;position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;z-index:300;align-items:flex-start;justify-content:center;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);overflow-y:auto;padding:16px}#csv-overlay.open{display:flex}#csv-modal{background:var(--surface);border:1px solid var(--border2);border-radius:10px;width:480px;max-width:100%;max-height:calc(100dvh - 32px);display:flex;flex-direction:column;margin:auto}#csv-modal .modal-body{overflow-y:auto;flex:1}#add-patient-overlay,#move-patient-overlay{display:none;position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;z-index:300;align-items:flex-start;justify-content:center;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);overflow-y:auto;padding:16px}#add-patient-overlay.open,#move-patient-overlay.open{display:flex}#add-patient-modal,#move-patient-modal{background:var(--surface);border:1px solid var(--border2);border-radius:10px;width:480px;max-width:100%;max-height:calc(100dvh - 32px);display:flex;flex-direction:column;margin:auto}#move-patient-modal{width:520px}#add-patient-modal .modal-body,#move-patient-modal .modal-body{overflow-y:auto;flex:1}#add-patient-modal input,#add-patient-modal textarea,#move-patient-modal input{border:2px dashed var(--border2);border-radius:8px;padding:36px 20px;text-align:center;cursor:pointer;transition:all .2s}.drop-zone:hover,.drop-zone.drag-over{border-color:var(--accent);background:var(--accent-dim)}.drop-zone svg{width:32px;height:32px;color:var(--text3);margin:0 auto 10px;display:block}.drop-zone p{font-size:13px;color:var(--text2)}.drop-zone small{font-size:11px;color:var(--text3)}#csv-preview{margin-top:16px;display:none;flex-direction:column;gap:8px}.preview-info{display:flex;gap:8px;align-items:center;background:var(--surface2);padding:10px 12px;border-radius:6px;font-size:12px}.preview-info svg{width:14px;height:14px;color:var(--cat-nut);flex-shrink:0}.preview-list{max-height:min(200px,30dvh);overflow-y:auto;border:1px solid var(--border);border-radius:6px}.preview-row{display:flex;gap:12px;padding:7px 12px;font-size:11px;border-bottom:1px solid var(--border);align-items:center}.preview-row:last-child{border-bottom:none}.preview-row:hover{background:var(--surface2)}.pr-room{font-family:var(--mono);color:var(--accent);min-width:35px;font-size:12px}.pr-name{flex:1;color:var(--text)}.pr-doc{color:var(--text3);font-size:10px}.history-filters{display:flex;gap:10px;margin-bottom:16px;flex-wrap:wrap}.filter-input{background:var(--surface2);border:1px solid var(--border2);border-radius:6px;color:var(--text);font-size:12px;font-family:var(--sans);padding:7px 12px;outline:none;transition:border-color .15s}.filter-input:focus{border-color:var(--accent)}.filter-input::placeholder{color:var(--text3)}#history-results{display:flex;flex-direction:column;gap:8px}.hist-card{background:var(--surface);border:1px solid var(--border);border-radius:8px;overflow:hidden}.hist-card-header{display:flex;align-items:center;gap:12px;padding:10px 14px;background:var(--surface2);cursor:pointer}.hist-card-body{padding:12px 14px;display:none;flex-direction:column;gap:8px}.hist-card-body.open{display:flex}.hist-day-entry{font-size:12px;color:var(--text2);line-height:1.5}.hist-day-label{font-weight:600;color:var(--text);margin-right:6px}.modal-header{padding:18px 20px 14px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between}.modal-title{font-size:15px;font-weight:600}.modal-body{padding:20px}.modal-footer{padding:12px 20px;border-top:1px solid var(--border);display:flex;gap:8px;justify-content:flex-end}#add-patient-modal input,#add-patient-modal textarea,#move-patient-modal input{width:100%;background:var(--surface2);border:1px solid var(--border2);border-radius:5px;color:var(--text);font-size:12px;padding:8px 10px;font-family:var(--sans)}#add-patient-modal textarea{resize:vertical}.bed-card{border:1px solid var(--border);border-radius:7px;padding:8px 10px;cursor:pointer;transition:all .15s;background:var(--surface2);display:flex;flex-direction:column;gap:3px}.bed-card:hover{border-color:var(--accent);background:var(--accent-dim)}.bed-card.selected{border-color:var(--accent);background:var(--accent-dim);box-shadow:0 0 0 2px var(--accent)}.bed-card.occupied{opacity:.5}.bed-card.occupied:hover{border-color:var(--cat-qmt);background:var(--cat-qmt-bg)}.bed-card-room{font-family:var(--mono);font-size:13px;font-weight:600;color:var(--accent)}.bed-card.occupied .bed-card-room{color:var(--text2)}.bed-card-name{font-size:10px;color:var(--text3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bed-card-status{font-size:9px;font-weight:600;letter-spacing:.04em}.bed-card-status.free{color:var(--cat-nut)}.bed-card-status.busy{color:var(--cat-qmt)}.move-floor-btn{padding:3px 10px;border-radius:4px;font-size:11px;font-weight:600;cursor:pointer;border:1px solid var(--border2);background:none;color:var(--text2);transition:all .15s}.move-floor-btn.active{background:var(--accent);border-color:var(--accent);color:#fff}.move-floor-btn:hover:not(.active){background:var(--surface3)}#patient-days-overlay{display:none;position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;z-index:200;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}#patient-days-overlay.open{display:block}#patient-days-panel{position:fixed;top:0;right:-520px;width:520px;height:100dvh;height:-webkit-fill-available;background:var(--surface);border-left:1px solid var(--border);z-index:201;display:flex;flex-direction:column;transition:right .25s cubic-bezier(.4,0,.2,1);overflow:hidden}#patient-days-panel.open{right:0}.day-list-item{padding:14px 20px;border-bottom:1px solid var(--border);cursor:pointer;transition:background .15s}.day-list-item:hover{background:var(--surface2)}.day-list-item:last-child{border-bottom:none}.day-list-header{display:flex;align-items:center;gap:10px;margin-bottom:6px}.day-list-day{font-size:13px;font-weight:600;color:var(--accent);min-width:70px}.day-list-badges{display:flex;gap:4px;flex-wrap:wrap}.day-list-summary{font-size:11px;color:var(--text2);line-height:1.4;white-space:pre-line;word-break:break-word}.day-list-empty{font-size:11px;color:var(--text3);font-style:italic}#toast{position:fixed;bottom:20px;left:50%;transform:translate(-50%) translateY(60px);background:var(--surface3);border:1px solid var(--border2);color:var(--text);padding:10px 18px;border-radius:6px;font-size:13px;z-index:999;transition:transform .3s,opacity .3s;opacity:0;pointer-events:none;white-space:nowrap}#toast.show{transform:translate(-50%) translateY(0);opacity:1}#config-banner{background:linear-gradient(135deg,#1a1035,#0d1b3e);border-bottom:2px solid var(--accent);padding:20px 24px;display:flex;gap:16px;align-items:flex-start}#config-banner.hidden{display:none}.config-banner-icon{font-size:22px;flex-shrink:0;margin-top:2px}.config-banner-text{flex:1}.config-banner-text h3{font-size:14px;font-weight:600;margin-bottom:6px;color:var(--text)}.config-banner-text p{font-size:12px;color:var(--text2);line-height:1.6}.config-form{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:12px}.config-form input{background:var(--surface2);border:1px solid var(--border2);border-radius:5px;color:var(--text);font-size:11px;font-family:var(--mono);padding:6px 10px;outline:none}.config-form input:focus{border-color:var(--accent)}.config-form input::placeholder{color:var(--text3)}.config-form input.full{grid-column:1/-1}.user-panel{display:flex;align-items:center;gap:6px;margin-left:auto;background:var(--surface2);padding:4px 8px 4px 12px;border-radius:6px;border:1px solid var(--border);min-width:0;max-width:240px;flex-shrink:0}.user-name-btn{display:flex;align-items:center;gap:5px;background:none;border:none;cursor:pointer;padding:2px 4px;border-radius:4px;transition:background .12s;font-size:11px;font-family:var(--mono);color:var(--accent);font-weight:500;min-width:0;flex:1}.user-name-btn #user-name-display{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block}.user-name-btn:hover{background:var(--surface3)}.user-logout-btn{background:none;border:none;cursor:pointer;color:var(--text3);font-size:11px;padding:4px 6px;border-radius:4px;flex-shrink:0;white-space:nowrap}.user-logout-btn:hover{background:var(--surface3);color:var(--text)}#login-screen{display:none;position:fixed;top:0;right:0;bottom:0;left:0;background:var(--bg);z-index:500;align-items:center;justify-content:center;overflow:auto}#login-screen.visible{display:flex}.login-bg-grid{position:absolute;top:0;right:0;bottom:0;left:0;background-image:linear-gradient(var(--border) 1px,transparent 1px),linear-gradient(90deg,var(--border) 1px,transparent 1px);background-size:40px 40px;-webkit-mask-image:radial-gradient(ellipse 70% 70% at 50% 50%,black 30%,transparent 100%);mask-image:radial-gradient(ellipse 70% 70% at 50% 50%,black 30%,transparent 100%);pointer-events:none}.login-container{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;gap:28px;padding:24px 16px;width:100%;max-width:400px}.login-logo{display:flex;align-items:center;gap:14px}.login-logo svg{width:44px;height:44px;flex-shrink:0}.login-title{font-size:20px;font-weight:600;color:var(--text);letter-spacing:-.01em}.login-subtitle{font-size:12px;color:var(--text3);margin-top:2px}.login-card{width:100%;background:var(--surface);border:1px solid var(--border2);border-radius:14px;padding:28px 24px;display:flex;flex-direction:column;gap:16px;box-shadow:0 20px 60px #0006}.login-card-header{font-size:15px;font-weight:600;color:var(--text);margin-bottom:4px}.login-error{background:#ef5e5e1f;border:1px solid rgba(239,94,94,.3);border-radius:7px;padding:10px 12px;font-size:12px;color:#ef5e5e;line-height:1.5}.login-field{display:flex;flex-direction:column;gap:6px}.login-field label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text3)}.login-field input{background:var(--surface2);border:1px solid var(--border2);border-radius:8px;color:var(--text);font-size:14px;padding:11px 14px;outline:none;transition:border-color .15s,box-shadow .15s;font-family:var(--sans);width:100%}.login-field input:focus{border-color:var(--accent);box-shadow:0 0 0 3px #3d7ef526}.login-field input::placeholder{color:var(--text3)}.login-pass-wrap{position:relative}.login-pass-wrap input{padding-right:42px}.pass-toggle{position:absolute;right:10px;top:50%;transform:translateY(-50%);background:none;border:none;color:var(--text3);cursor:pointer;padding:4px;border-radius:4px;display:flex;align-items:center}.pass-toggle svg{width:16px;height:16px}.pass-toggle:hover{color:var(--text2)}.login-forgot{text-align:right;margin-top:-8px}.login-forgot button{background:none;border:none;color:var(--accent);font-size:11px;cursor:pointer;padding:0;font-family:var(--sans)}.login-forgot button:hover{text-decoration:underline}.login-btn{width:100%;justify-content:center;padding:12px;font-size:14px;border-radius:8px;margin-top:4px;gap:8px}.login-reset-msg{display:flex;align-items:center;gap:10px;background:#2da44e1a;border:1px solid rgba(45,164,78,.25);border-radius:8px;padding:12px 16px;font-size:12px;color:#2da44e;width:100%}@media (max-width: 420px){.login-card{padding:22px 18px;border-radius:12px}.login-logo svg{width:36px;height:36px}.login-title{font-size:17px}}#mobile-card-list{display:none}@media (max-width: 640px){.table-wrap{display:none}#mobile-card-list{display:flex;flex-direction:column;gap:8px;margin-top:4px}.mobile-card{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:12px 14px;cursor:pointer;transition:border-color .15s,background .15s;display:flex;flex-direction:column;gap:8px;-webkit-tap-highlight-color:transparent}.mobile-card:active{background:var(--surface2);border-color:var(--border2)}.mobile-card-top{display:flex;align-items:center;gap:10px}.mobile-card-days{display:flex;gap:5px;flex-wrap:wrap}.mobile-day-pill{font-size:11px;font-weight:600;padding:5px 10px;border-radius:20px;background:var(--surface2);border:1px solid var(--border2);color:var(--text2);cursor:pointer;transition:all .12s;-webkit-tap-highlight-color:transparent}.mobile-day-pill.has-data{background:var(--accent-dim);border-color:var(--accent);color:var(--accent)}.mobile-day-pill:active{opacity:.7}.mobile-card-hint{font-size:11px;color:var(--text3);font-style:italic}.mobile-card-diag{font-size:10px;font-family:var(--mono);color:var(--text3);background:var(--surface2);padding:2px 7px;border-radius:3px;align-self:flex-start;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mobile-card-diag:empty{display:none}#entry-panel .panel-footer{flex-wrap:wrap;justify-content:space-between;gap:8px}#entry-panel .panel-footer .btn:first-child{order:1}#entry-panel .panel-footer .btn#btn-copy-prev{order:2;flex:1}#entry-panel .panel-footer .btn.primary{order:3;flex:1}}@media (max-width: 700px){#header{flex-wrap:wrap;height:auto;padding:10px;gap:8px}.floor-tabs{order:3;width:100%}.header-actions{width:100%;justify-content:space-between;order:4;margin-top:4px}.search-box{min-width:auto;flex:1}#header .btn span:not(#btn-copy-prev-label){display:none}.btn svg{width:16px;height:16px}#entry-panel{width:100%;height:100dvh}#entry-overlay.open{justify-content:stretch}#patient-days-panel{width:100%;right:-100%;height:100dvh}#patient-days-panel.open{right:0}#csv-overlay,#add-patient-overlay,#move-patient-overlay{padding:8px}#csv-modal,#add-patient-modal,#move-patient-modal{max-height:calc(100dvh - 16px);border-radius:8px}.modal-header{padding:14px 16px 12px}.modal-body{padding:14px 16px}.modal-footer{padding:10px 16px}.days-row-cards-grid{grid-template-columns:1fr 1fr}.config-form{grid-template-columns:1fr}.config-form input.full{grid-column:1}}@media (max-width: 480px){.days-row-cards-grid{grid-template-columns:1fr}#btn-copy-prev{order:-1;width:100%;justify-content:center}}.btn,.floor-tab,.day-btn,.tag-chip,.panel-close,.week-nav button,.cat-header,.days-row-card,.bed-card{touch-action:manipulation}@media (hover: none) and (pointer: coarse){.day-btn{min-height:38px}.floor-tab{min-height:36px}.tag-chip{min-height:34px;padding:6px 12px}.week-nav button{width:36px;height:36px}.panel-close{width:36px;height:36px;font-size:16px}.cat-header{min-height:44px}input,textarea,select{font-size:16px!important}}::-webkit-scrollbar{width:6px;height:5px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background-color:#0003;border-radius:4px}.no-data{text-align:center;padding:60px 20px;color:var(--text3);font-size:14px}.no-data svg{width:40px;height:40px;margin:0 auto 12px;display:block;opacity:.3}.spinner{width:16px;height:16px;border:2px solid var(--border2);border-top-color:var(--accent);border-radius:50%;animation:spin .7s linear infinite;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}@keyframes slideUp{0%{transform:translate(-50%) translateY(20px);opacity:0}to{transform:translate(-50%) translateY(0);opacity:1}}#pwa-install-banner{position:fixed;bottom:20px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:14px;background:var(--surface);border:1px solid var(--border2);border-radius:12px;padding:12px 16px;z-index:490;box-shadow:0 8px 40px #00000080;width:min(420px,calc(100vw - 32px));animation:slideUp .3s ease}#print-content{display:none}@media print{body>*:not(#print-content){display:none!important}#print-content{display:block!important;font-family:Courier New,Courier,monospace;font-size:11pt;color:#000;background:#fff;padding:0;margin:0}.print-header{font-size:13pt;font-weight:700;margin-bottom:4pt}.print-subheader{font-size:10pt;color:#444;margin-bottom:14pt;border-bottom:1pt solid #000;padding-bottom:6pt}.print-patient{margin-bottom:10pt;page-break-inside:avoid}.print-patient-line{font-size:11pt;font-weight:700}.print-meds{font-size:10pt;margin-left:16pt;margin-top:2pt}.print-meds-line{margin-bottom:1pt}.print-no-meds{font-size:10pt;color:#888;margin-left:16pt;font-style:italic}.print-separator{border:none;border-top:1pt dotted #ccc;margin:8pt 0}@page{size:A4;margin:18mm 15mm}}.history-view-selector .btn.active{background:var(--accent);color:#fff;border-color:var(--accent)}.week-badge{background:var(--surface2);border-radius:12px;padding:2px 8px;font-size:10px;font-family:var(--mono);color:var(--text2)}.hist-card-header.compact{cursor:pointer;padding:8px 12px}
