@import "https://fonts.googleapis.com/css2?family=DM+Sans:ital,opsz,wght@0,9..40,400;0,9..40,500;0,9..40,600;0,9..40,700;1,9..40,400&family=JetBrains+Mono:wght@400;500&display=swap";body{background:#0f1117;margin:0}#root{min-height:100vh}:root{--bg:#0f1117;--bg-elev:#161b26;--bg-card:#1c2333;--border:#2a3344;--text:#e8ecf4;--muted:#8b95a8;--accent:#3ee8b5;--accent-dim:#2bb894;--warn:#f5a623;--danger:#ff6b6b;--col-head:#252d3d;font-family:DM Sans,system-ui,sans-serif}*{box-sizing:border-box}.app{background:radial-gradient(1200px 600px at 10% -10%, #1a2438 0%, transparent 55%), radial-gradient(800px 400px at 90% 0%, #132a28 0%, transparent 50%), var(--bg);min-height:100vh;color:var(--text)}.app--login{justify-content:center;align-items:center;padding:2rem;display:flex}.login-card{background:var(--bg-card);border:1px solid var(--border);border-radius:16px;width:100%;max-width:400px;padding:2rem;box-shadow:0 24px 48px #00000059}.login-brand{letter-spacing:-.03em;margin:0;font-size:1.75rem;font-weight:700}.login-sub{color:var(--muted);margin:.35rem 0 1.5rem;font-size:.95rem}.login-form label{color:var(--muted);flex-direction:column;gap:.35rem;margin-bottom:1rem;font-size:.8rem;font-weight:600;display:flex}.login-form input{border:1px solid var(--border);background:var(--bg-elev);color:var(--text);font:inherit;border-radius:10px;padding:.65rem .75rem}.topbar{border-bottom:1px solid var(--border);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:20;background:#161b26d9;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;padding:1rem 1.5rem;display:flex;position:sticky;top:0}.topbar-brand{flex-direction:column;gap:.15rem;display:flex}.topbar-title{letter-spacing:-.02em;font-size:1.15rem;font-weight:700}.topbar-clinic{color:var(--accent);font-family:JetBrains Mono,monospace;font-size:.8rem}.topbar-actions{flex-wrap:wrap;align-items:center;gap:.65rem;display:flex}.topbar-user{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;max-width:200px;font-size:.8rem;overflow:hidden}.inline-select select{border:1px solid var(--border);background:var(--bg-elev);color:var(--text);font:inherit;border-radius:8px;padding:.45rem .65rem;font-size:.85rem}.btn-primary,.btn-accent,.btn-ghost,.btn-sm,.btn-upload{font:inherit;cursor:pointer;border:1px solid #0000;border-radius:10px;font-size:.875rem;font-weight:600}.btn-primary{background:linear-gradient(135deg, var(--accent) 0%, var(--accent-dim) 100%);color:#0a0e14;width:100%;padding:.65rem 1rem}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-accent{background:var(--accent);color:#0a0e14;padding:.5rem 1rem}.btn-ghost{border-color:var(--border);color:var(--muted);background:0 0;padding:.45rem .85rem}.btn-ghost:hover{color:var(--text);border-color:var(--muted)}.btn-sm{background:var(--bg-elev);border-color:var(--border);color:var(--accent);padding:.35rem .65rem;font-size:.78rem}.btn-danger{color:var(--danger)!important;border-color:#ff6b6b59!important}.btn-upload{border:1px dashed var(--accent-dim);color:var(--accent);background:0 0;padding:.35rem .75rem;position:relative;overflow:hidden}.btn-upload input{opacity:0;cursor:pointer;position:absolute;inset:0}.form-err{color:var(--danger);margin:0 0 .75rem;font-size:.85rem}.banner-err{color:#ffb4b4;background:#ff6b6b1f;border:1px solid #ff6b6b59;border-radius:10px;justify-content:space-between;align-items:center;gap:1rem;margin:0 1.5rem;padding:.65rem 1rem;font-size:.9rem;display:flex}.banner-err button{color:inherit;cursor:pointer;background:0 0;border:none;font-size:1.25rem;line-height:1}.main{max-width:1600px;margin:0 auto;padding:1.25rem 1.5rem 3rem}.board-head{margin-bottom:1.25rem}.board-head h2{margin:0 0 .35rem;font-size:1.25rem}.board-hint{color:var(--muted);max-width:720px;margin:0;font-size:.88rem;line-height:1.45}.board-columns{grid-template-columns:repeat(4,minmax(0,1fr));align-items:start;gap:1rem;display:grid}@media (width<=1100px){.board-columns{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=640px){.board-columns{grid-template-columns:1fr}}.board-col{background:var(--bg-elev);border:1px solid var(--border);border-radius:14px;min-height:280px;padding:.75rem}.board-col-head{justify-content:space-between;align-items:center;padding:.5rem .35rem .25rem;display:flex}.board-col-title{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-size:.82rem;font-weight:700}.board-col-count{background:var(--col-head);color:var(--text);border-radius:6px;padding:.15rem .45rem;font-family:JetBrains Mono,monospace;font-size:.75rem}.board-col-hint{color:var(--muted);opacity:.85;margin:0 .35rem .65rem;font-size:.72rem}.board-col-cards{flex-direction:column;gap:.55rem;display:flex}.board-card{background:var(--bg-card);border:1px solid var(--border);cursor:grab;text-align:left;border-radius:12px;padding:.75rem;transition:border-color .15s,box-shadow .15s}.board-card:active{cursor:grabbing}.board-card:hover{border-color:#3ee8b559}.board-card--active{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.board-card-ref{color:var(--accent);margin-bottom:.35rem;font-family:JetBrains Mono,monospace;font-size:.72rem}.board-card-name{margin-bottom:.5rem;font-size:.95rem;font-weight:600}.board-card-bar-wrap{background:var(--bg-elev);border-radius:4px;height:4px;margin-bottom:.35rem;overflow:hidden}.board-card-bar{background:linear-gradient(90deg, var(--accent-dim), var(--accent));border-radius:4px;height:100%;transition:width .25s}.board-card-meta{color:var(--muted);font-size:.72rem}.board-card-steps{border-top:1px solid #2a3344cc;justify-content:flex-end;gap:.35rem;margin-top:.55rem;padding-top:.45rem;display:flex}.board-card-step{border:1px solid var(--border);background:var(--bg-elev);min-width:2.75rem;min-height:2.75rem;color:var(--accent);cursor:pointer;border-radius:8px;justify-content:center;align-items:center;padding:0;font-size:1.1rem;font-weight:700;line-height:1;transition:background .15s,border-color .15s,color .15s;display:inline-flex}.board-card-step:hover:not(:disabled){border-color:var(--accent-dim);background:#3ee8b51a}.board-card-step:disabled{opacity:.28;cursor:not-allowed}.board-card-step-i--wide{display:none}@media (width>=641px){.board-card-step-i--narrow{display:none}.board-card-step-i--wide{display:inline}}.ctx-menu{z-index:2000;background:var(--bg-card);border:1px solid var(--border);border-radius:10px;min-width:11rem;padding:.35rem 0;position:fixed;box-shadow:0 12px 32px #00000073}.ctx-menu-item{width:100%;color:var(--text);font:inherit;text-align:left;cursor:pointer;background:0 0;border:none;padding:.55rem 1rem;font-size:.9rem;display:block}.ctx-menu-item:hover{background:var(--bg-elev)}.ctx-menu-item--danger{color:var(--danger)}.panel-docs{background:var(--bg-elev);border:1px solid var(--border);border-radius:16px;margin-top:2rem;padding:1.25rem 1.35rem}.panel-docs-head{justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem;display:flex}.panel-docs-head h3{margin:0;font-size:1.05rem}.panel-docs-head-right{flex-wrap:wrap;align-items:center;gap:.65rem;display:flex}.btn-accent-outline{color:var(--accent);border:1px solid var(--accent-dim);font:inherit;cursor:pointer;background:0 0;border-radius:8px;padding:.4rem .75rem;font-size:.8rem;font-weight:600}.btn-accent-outline:hover{background:#3ee8b51f}.btn-warn{color:var(--warn);background:#f5a62326;border:1px solid #f5a62359}.btn-warn:hover{background:#f5a62340}.doc-upload-actions{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.modal--wide{max-width:520px;max-height:min(85vh,640px);overflow-y:auto}.docs-tree{flex-direction:column;gap:.85rem;margin:0 0 1rem;padding:0;list-style:none;display:flex}.docs-tree-folder{border:1px solid var(--border);background:var(--bg-card);border-radius:10px;padding:.65rem .75rem}.docs-tree-folder-head{flex-wrap:wrap;align-items:center;gap:.35rem .6rem;margin-bottom:.35rem;font-size:.9rem;font-weight:600;display:flex}.docs-tree-icon{opacity:.85}.docs-tree-empty{margin:.25rem 0 0;font-size:.82rem}.docs-tree-files{flex-direction:column;gap:.35rem;margin:0;padding:0 0 0 1.25rem;list-style:none;display:flex}.docs-tree-file{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;font-size:.82rem;display:flex}.docs-tree-fname{color:var(--text);text-overflow:ellipsis;white-space:nowrap;max-width:280px;overflow:hidden}.pill{border-radius:999px;padding:.3rem .65rem;font-size:.78rem;font-weight:700}.pill-ok{color:var(--accent);background:#3ee8b52e}.pill-warn{color:var(--warn);background:#f5a6232e}.doc-slots{flex-direction:column;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.doc-slot{border-bottom:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1rem;padding:.85rem 0;display:flex}.doc-slot:last-child{border-bottom:none}.doc-slot-info{flex-direction:column;flex:0 200px;gap:.25rem;min-width:0;display:flex}.doc-slot-info strong{font-size:.92rem}.doc-slot-title-row{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.doc-ready-tick{width:1.35rem;height:1.35rem;color:var(--accent);background:#3ee8b538;border-radius:50%;justify-content:center;align-items:center;font-size:.85rem;font-weight:800;line-height:1;display:inline-flex}.doc-slot--invoice-draft{flex-direction:column;align-items:stretch}.doc-slot--invoice-draft .doc-slot-info{flex:none;width:100%}.doc-slot-main--draft{width:100%}.invoice-draft-textarea{border:1px solid var(--border);width:100%;min-height:220px;color:var(--text);resize:vertical;background:linear-gradient(#1a1f2e 0%,#151a26 100%);border-radius:10px;padding:.75rem .85rem;font-family:JetBrains Mono,ui-monospace,monospace;font-size:.72rem;line-height:1.45;box-shadow:inset 0 1px #ffffff0a}.invoice-draft-textarea:focus{border-color:var(--accent-dim);box-shadow:inset 0 1px 0 #ffffff0f, 0 0 0 1px var(--accent-dim);outline:none}.invoice-draft-actions{flex-wrap:wrap;align-items:center;gap:.65rem;display:flex}.invoice-draft-warn{font-size:.72rem}.draft-promote-bar{border-bottom:1px dashed var(--border);flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:.75rem;margin-bottom:.25rem;padding:.65rem 0 .35rem;display:flex}.draft-promote-hint{flex:200px;max-width:42rem;margin:0;font-size:.78rem}.doc-slot-main--drop{outline:2px dashed var(--accent-dim);outline-offset:4px;background:#3ee8b50f;border-radius:10px}.invoice-draft-view-wrap{border-bottom:1px solid var(--border);margin-bottom:1.25rem;padding-bottom:1rem}.invoice-draft-view-title{color:var(--muted);text-transform:uppercase;letter-spacing:.06em;margin:0 0 .5rem;font-size:.85rem;font-weight:700}.invoice-draft-view{border:1px solid var(--border);background:var(--bg-elev);white-space:pre-wrap;word-break:break-word;border-radius:10px;max-height:240px;margin:0;padding:.75rem .85rem;font-family:JetBrains Mono,ui-monospace,monospace;font-size:.72rem;line-height:1.45;overflow:auto}.invoice-draft-view-empty{margin:0;font-size:.8rem}.doc-code{color:var(--muted);font-family:JetBrains Mono,monospace;font-size:.72rem}.doc-req{letter-spacing:.08em;width:fit-content;color:var(--warn);text-transform:uppercase;margin-top:.15rem;font-size:.65rem;font-weight:800;display:inline-block}.doc-slot-main{flex-direction:column;flex:260px;gap:.5rem;min-width:0;display:flex}.doc-files{flex-direction:column;gap:.4rem;margin:0;padding:0;list-style:none;display:flex}.doc-file-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;display:flex}.doc-file-actions{flex-wrap:wrap;gap:.35rem;display:flex}.doc-upload-row{flex-wrap:wrap;align-items:center;gap:.65rem;display:flex}.doc-upload-hint{color:var(--muted);flex:160px;margin:0;font-size:.72rem}.doc-fname{color:var(--accent);text-overflow:ellipsis;white-space:nowrap;max-width:min(100%,220px);font-size:.78rem;overflow:hidden}.doc-fsize{color:var(--muted);font-weight:500}.muted{color:var(--muted);font-size:.85rem}.modal-backdrop{z-index:100;background:#000000a6;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.modal{background:var(--bg-card);border:1px solid var(--border);border-radius:16px;width:100%;max-width:440px;padding:1.5rem;box-shadow:0 32px 64px #00000073}.modal h2{margin:0 0 .35rem;font-size:1.2rem}.modal-desc{color:var(--muted);margin:0 0 1.25rem;font-size:.85rem;line-height:1.45}.modal label{color:var(--muted);flex-direction:column;gap:.35rem;margin-bottom:.85rem;font-size:.78rem;font-weight:600;display:flex}.modal input{border:1px solid var(--border);background:var(--bg-elev);color:var(--text);font:inherit;border-radius:10px;padding:.55rem .65rem}.modal-actions{justify-content:flex-end;gap:.65rem;margin-top:1.25rem;display:flex}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}
