:root{--bg: #0f1219;--surface: #1a1f2e;--surface2: #232a3d;--text: #e8eaef;--muted: #9aa3b2;--border: rgba(255, 255, 255, .08);--radius: 12px;--shadow: 0 8px 32px rgba(0, 0, 0, .35)}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:DM Sans,system-ui,sans-serif;background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased}code{font-size:.9em;background:var(--surface2);padding:.15em .4em;border-radius:6px}.app{max-width:1600px;margin:0 auto;padding:1.25rem 1.25rem 2rem}.header{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:1.25rem;margin-bottom:1.25rem}.header__title{margin:0;font-size:1.5rem;font-weight:700;letter-spacing:-.02em}.header__subtitle{margin:.35rem 0 0;font-size:.9rem;color:var(--muted)}.header__form{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}.input{min-width:200px;padding:.65rem .85rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--text);font:inherit}.input:focus{outline:2px solid rgba(100,149,237,.45);outline-offset:2px}.input:disabled{opacity:.5}.btn{font:inherit;font-weight:600;padding:.65rem 1rem;border-radius:var(--radius);border:1px solid transparent;cursor:pointer;transition:background .15s,border-color .15s,opacity .15s}.btn:disabled{opacity:.45;cursor:not-allowed}.btn--primary{background:linear-gradient(135deg,#5c6bc0,#7e57c2);color:#fff}.btn--primary:hover:not(:disabled){filter:brightness(1.08)}.btn--ghost{background:transparent;border-color:var(--border);color:var(--text)}.btn--ghost:hover:not(:disabled){background:var(--surface2)}.btn--warn{background:#ef53502e;border-color:#ef535073;color:#ffd7d6}.btn--warn:hover:not(:disabled){background:#ef535040}.btn--small{padding:.4rem .75rem;font-size:.85rem}.notify-settings{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1rem 1.1rem;margin-bottom:1rem}.notify-settings__row{display:flex;align-items:center;justify-content:flex-start}.notify-settings__toggle{font:inherit;font-size:.86rem;font-weight:600;border:1px solid var(--border);border-radius:8px;background:var(--surface2);color:var(--text);padding:.4rem .75rem;cursor:pointer}.notify-settings__toggle:hover{border-color:#fff3}.notify-settings__label{display:block;font-size:.9rem;color:var(--muted);margin-top:.65rem}.notify-settings__actions{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.65rem}.notify-settings__chips{display:flex;flex-wrap:wrap;gap:.5rem 1rem}.notify-settings__check{display:inline-flex;align-items:center;gap:.4rem;font-size:.85rem;cursor:pointer;-webkit-user-select:none;user-select:none}.notify-settings__check input{accent-color:#7e57c2}.notify-settings__check span{border-bottom:2px solid transparent;padding-bottom:2px}.board-columns-settings{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1rem 1.1rem;margin-bottom:1rem}.board-columns-settings__row{display:flex;align-items:center;justify-content:flex-start}.board-columns-settings__label{display:block;font-size:.9rem;color:var(--muted);max-width:52rem;line-height:1.4;margin-bottom:.65rem}.board-columns-settings__toggle{font:inherit;font-size:.86rem;font-weight:600;border:1px solid var(--border);border-radius:8px;background:var(--surface2);color:var(--text);padding:.4rem .75rem;cursor:pointer}.board-columns-settings__toggle:hover{border-color:#fff3}.board-columns-settings__actions{margin-bottom:.65rem}.board-columns-settings__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.4rem}.board-columns-settings__item{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.5rem 1rem;padding:.35rem 0;border-bottom:1px solid var(--border)}.board-columns-settings__item:last-child{border-bottom:none;padding-bottom:0}.board-columns-settings__check{display:flex;align-items:flex-start;gap:.5rem;font-size:.88rem;cursor:pointer;flex:1;min-width:12rem}.board-columns-settings__check input{margin-top:.2rem;accent-color:#5c6bc0}.board-columns-settings__name{border-left:3px solid var(--border);padding-left:.5rem;line-height:1.35}.board-columns-settings__solo{font:inherit;font-size:.8rem;font-weight:600;padding:.25rem .6rem;border-radius:8px;border:1px solid var(--border);background:var(--surface2);color:var(--muted);cursor:pointer;white-space:nowrap}.board-columns-settings__solo:hover{color:var(--text);border-color:#ffffff26}.banner{padding:.85rem 1rem;border-radius:var(--radius);margin-bottom:1rem;font-size:.9rem}.banner--warn{background:#ffa7261f;border:1px solid rgba(255,167,38,.35)}.banner--error{background:#ef53501f;border:1px solid rgba(239,83,80,.35)}.loading{color:var(--muted);margin:1rem 0}.board{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(260px,1fr);gap:.75rem;overflow-x:auto;padding-bottom:.5rem;scroll-snap-type:x mandatory}.column{scroll-snap-align:start;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);min-height:420px;display:flex;flex-direction:column;box-shadow:var(--shadow)}.column__header{display:flex;align-items:center;justify-content:space-between;padding:.75rem .85rem;border-bottom:3px solid var(--column-accent, #666);background:var(--surface2);border-radius:var(--radius) var(--radius) 0 0}.column__title{margin:0;font-size:.95rem;font-weight:600}.column__count{font-size:.8rem;color:var(--muted);background:var(--bg);padding:.2rem .5rem;border-radius:999px}.column__cards{padding:.6rem;display:flex;flex-direction:column;gap:.5rem;flex:1;overflow-y:auto;max-height:min(70vh,640px)}.patient-card{text-align:left;width:100%;padding:.75rem .85rem;border-radius:10px;border:1px solid var(--border);background:var(--bg);color:inherit;font:inherit;cursor:pointer;transition:border-color .15s,transform .12s}.patient-card:hover{border-color:#ffffff2e;transform:translateY(-1px)}.patient-card__name{display:block;font-weight:600;margin-bottom:.25rem}.patient-card__time{font-size:.8rem;color:var(--muted)}.patient-card__note{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;margin-top:.45rem;font-size:.78rem;color:var(--muted);line-height:1.35;text-align:left}.tabs{display:flex;gap:.35rem;margin-bottom:1rem;padding:.2rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);width:fit-content}.tabs__btn{font:inherit;font-weight:600;font-size:.9rem;padding:.5rem 1rem;border:none;border-radius:10px;background:transparent;color:var(--muted);cursor:pointer;transition:background .15s,color .15s}.tabs__btn:hover{color:var(--text);background:var(--surface2)}.tabs__btn--active{background:var(--surface2);color:var(--text);box-shadow:0 0 0 1px var(--border)}.report{margin-top:.25rem}.report__toolbar{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:1rem;margin-bottom:1rem}.report__filters{display:flex;flex-wrap:wrap;gap:1rem}.report__field{display:flex;flex-direction:column;gap:.35rem;font-size:.85rem;color:var(--muted)}.report__actions{display:flex;flex-wrap:wrap;gap:.5rem}.report__hint{font-size:.85rem;color:var(--muted);margin:0 0 1rem;max-width:900px;line-height:1.45}.report__table-wrap{overflow-x:auto;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface)}.report__table{width:100%;border-collapse:collapse;font-size:.85rem}.report__table th,.report__table td{padding:.65rem .75rem;text-align:left;border-bottom:1px solid var(--border);vertical-align:top}.report__table th{background:var(--surface2);font-weight:600;white-space:nowrap}.report__table tr:last-child td{border-bottom:none}.report__cell-note{max-width:200px;word-break:break-word}.report__empty{text-align:center;color:var(--muted);padding:2rem 1rem!important}.report__table--unified .report__th-unit{font-weight:500;color:var(--muted);font-size:.75em}.report__cell-num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.report__cell-num--total{font-weight:600}.report__cell-id{font-size:.78rem;max-width:5.5rem}.report__cell-id code{font-size:inherit;background:transparent;padding:0;color:var(--muted)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000a6;display:flex;align-items:center;justify-content:center;padding:1rem;z-index:1000;animation:fadeIn .2s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal{position:relative;width:100%;max-width:480px;background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:1.5rem 1.5rem 1.25rem;box-shadow:var(--shadow);animation:slideUp .22s ease}@keyframes slideUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.modal__close{position:absolute;top:.65rem;right:.75rem;width:2rem;height:2rem;border:none;background:transparent;color:var(--muted);font-size:1.5rem;line-height:1;cursor:pointer;border-radius:8px}.modal__close:hover{background:var(--surface2);color:var(--text)}.modal__title{margin:0 2rem .5rem 0;font-size:1.25rem}.modal__meta{margin:.35rem 0;font-size:.95rem;color:var(--muted)}.modal__note{margin-top:1rem;padding-top:1rem;border-top:1px solid var(--border)}.modal__note-label{display:block;font-size:.85rem;font-weight:600;color:var(--muted);margin-bottom:.4rem}.modal__textarea{width:100%;padding:.65rem .75rem;border:1px solid var(--border);border-radius:10px;background:var(--bg);color:var(--text);font:inherit;resize:vertical;min-height:5rem}.modal__textarea:focus{outline:2px solid rgba(100,149,237,.45);outline-offset:2px}.modal__note-save{margin-top:.5rem}.modal__history{margin-top:1rem;padding-top:1rem;border-top:1px solid var(--border)}.modal__history-title{margin:0 0 .5rem;font-size:.85rem;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.modal__history-list{margin:0;padding-left:1.1rem;font-size:.9rem;color:var(--muted)}.modal__flow{margin-top:1rem}.modal__flow-label{font-size:.85rem;color:var(--muted);display:block;margin-bottom:.5rem}.modal__flow-chips{display:flex;flex-wrap:wrap;gap:.35rem}.modal__chip{font-size:.72rem;padding:.25rem .45rem;border-radius:6px;border:1px solid var(--border);color:var(--muted)}.modal__chip--active{font-weight:600;background:#ffffff0f}.modal__actions{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:flex-end;margin-top:1.35rem;padding-top:1rem;border-top:1px solid var(--border)}
