:root{color-scheme:light dark;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:12px;background:#f3f6fb;color:#172033}*{box-sizing:border-box}body{margin:0;min-width:320px}button,input,select,textarea{font:inherit}button{border:0;border-radius:10px;background:#2563eb;color:#fff;padding:.75rem 1rem;cursor:pointer;font-weight:700}button.secondary{background:#eef2f7;color:#172033}.icon-button{display:inline-flex;align-items:center;justify-content:center;padding:.35rem;border-radius:8px}.row-actions{display:inline-flex;align-items:center;gap:.35rem}.icon-button.danger{background:#fee2e2;color:#b91c1c}.icon-button.danger:hover{background:#fecaca}input,select,textarea{border:1px solid #d8e0ee;border-radius:10px;padding:.75rem;background:#fff;color:#172033;width:100%;font-weight:400}input.required-empty,select.required-empty,textarea.required-empty{border-color:#ef4444;background:#fff7ed;box-shadow:0 0 0 3px #ef44441f}input.required-empty::placeholder,textarea.required-empty::placeholder{color:#b91c1c}input:disabled{background:#eef2f7;color:#334155;cursor:not-allowed;font-weight:800}label{color:#475569;font-weight:800}textarea{min-height:90px;resize:vertical}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:.9rem;border-bottom:1px solid #e5eaf3;white-space:nowrap}th{color:#64748b;font-size:.82rem;text-transform:uppercase}thead th{position:sticky;top:0;z-index:1;background:#fff}tbody tr{cursor:pointer}tbody tr:hover{background:#f8fafc}.selected-row{background:#dbeafe}.selected-row:hover{background:#bfdbfe}.app-shell{display:grid;grid-template-columns:280px 1fr;min-height:100vh;transition:grid-template-columns .2s ease}.app-shell.sidebar-collapsed{grid-template-columns:72px 1fr}.sidebar{background:#0f172a;color:#fff;padding:1.25rem;display:flex;flex-direction:column;gap:1rem}.sidebar-collapsed .sidebar{padding:1.25rem .5rem;overflow:hidden}.sidebar-collapsed .brand{justify-content:center;padding:.75rem 0 1.5rem}.sidebar-collapsed .sidebar a,.sidebar-collapsed .ghost{justify-content:center;gap:0}.sidebar-collapsed .sidebar a span,.sidebar-collapsed .ghost span,.sidebar-collapsed .brand-text{display:none}.brand{display:flex;align-items:center;gap:.75rem;font-weight:800;font-size:1.05rem;padding:.75rem .25rem 1.5rem}.sidebar nav{display:grid;gap:.4rem}.sidebar a,.ghost{display:flex;align-items:center;gap:.7rem;color:#cbd5e1;text-decoration:none;padding:.75rem;border-radius:12px;background:transparent;text-align:left}.sidebar a.active,.sidebar a:hover,.ghost:hover{background:#1e293b;color:#fff}.content{padding:2rem;overflow:auto}.menu-toggle{display:inline-flex;align-items:center;gap:.55rem;background:#fff;color:#172033;border:1px solid #d8e0ee;box-shadow:0 10px 24px #0f172a14;flex-shrink:0}.page-header{display:flex;justify-content:space-between;align-items:end;gap:1rem;margin-bottom:1rem}.page-header h1{margin:0;font-size:1.6rem}.page-header p{margin:.2rem 0 0;color:#64748b;font-size:.875rem}.content-topbar{display:flex;align-items:center;gap:1.25rem;margin-bottom:1rem}.content-topbar .page-header{margin-bottom:0;flex:1}.kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem;margin-bottom:1rem}.kpi-grid article,.panel{background:#ffffffeb;border:1px solid #e5eaf3;border-radius:18px;box-shadow:0 18px 40px #0f172a14}.kpi-grid article{padding:1.25rem}.kpi-grid span{color:#64748b;display:block}.kpi-grid strong{font-size:2.25rem;display:block;margin-top:.5rem}.panel{padding:1.25rem;margin-bottom:1rem;overflow-x:auto}.chart-panel h2,.panel h2{margin-top:0}.panel-title{display:flex;justify-content:space-between;align-items:start;gap:1rem;margin-bottom:1rem}.panel-title p{margin:.35rem 0 0;color:#64748b}.panel-title select{max-width:280px}.toolbar{display:grid;grid-template-columns:minmax(140px,1fr) 200px auto auto auto auto auto;gap:.75rem;margin-bottom:1rem}.search-wrapper{position:relative;display:flex;align-items:center;min-width:0}.search-wrapper input{width:100%;min-width:0}.search-clear{position:absolute;right:.6rem;background:transparent;border:none;color:#64748b;cursor:pointer;padding:0;display:flex;align-items:center}.search-clear:hover{color:#172033}.th-sort{display:inline-flex;align-items:center;gap:.3rem;background:transparent;border:none;color:inherit;font:inherit;font-weight:inherit;text-transform:inherit;letter-spacing:inherit;cursor:pointer;padding:0}.th-sort svg{color:#94a3b8}.th-sort:hover svg{color:#172033}.th-sort.active{color:#2563eb}.pagination{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-top:1rem;flex-wrap:wrap}.pagination-info{color:#64748b;font-size:.9rem}.pagination-pages{display:flex;align-items:center;gap:.35rem}.pagination-pages button{padding:.4rem .7rem;border-radius:8px}.pagination-pages button.page-nav{display:inline-flex;align-items:center;padding:.4rem .5rem}.pagination-pages button.page-number.active{background:#2563eb;color:#fff}.pagination-pages button:disabled{opacity:.45;cursor:not-allowed}.pagination-ellipsis{color:#64748b;padding:0 .15rem}.th-sort.active svg{color:#2563eb}th:has(.th-sort.active){background:#eff4ff;border-radius:8px}.th-filterable{position:static}.th-filterable.filtered{background:#eff4ff;border-radius:8px}.th-head{display:flex;align-items:center;gap:.35rem}.col-filter-btn{display:inline-flex;align-items:center;justify-content:center;background:transparent;border:none;color:#94a3b8;cursor:pointer;padding:.15rem;border-radius:6px}.col-filter-btn:hover{color:#172033;background:#f1f5f9}.col-filter-btn.active{color:#2563eb}.col-filter-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60}.col-filter-menu{position:fixed;z-index:70;background:#fff;border:1px solid #d8e0ee;border-radius:12px;box-shadow:0 12px 32px #0f172a29;padding:.5rem;min-width:200px;max-height:280px;overflow:auto;display:flex;flex-direction:column;gap:.15rem;text-transform:none}.col-filter-item{display:flex;align-items:center;gap:.5rem;font-size:.85rem;font-weight:400;color:#172033;cursor:pointer;padding:.3rem .4rem;border-radius:6px;white-space:nowrap}.col-filter-item:hover{background:#f1f5f9}.col-filter-item input{width:auto;margin:0}.col-filter-count{color:#94a3b8;font-size:.78rem}.col-filter-top{display:flex;align-items:center;justify-content:space-between;gap:.5rem;border-bottom:1px solid #e5eaf3;padding-bottom:.25rem;margin-bottom:.15rem}.col-filter-clear{padding:.2rem .55rem;font-size:.78rem;white-space:nowrap}.title-with-action{display:inline-flex;align-items:center;gap:.5rem}.add-button{padding:.3rem;border-radius:999px}.status{background:#dbeafe;color:#1d4ed8;border-radius:999px;padding:.25rem .6rem;font-size:.82rem;font-weight:800}.status-registered,.status-in-progress,.status-finished,.status-delivered{background:#ffedd5;color:#c2410c}.status-closed{background:#dcfce7;color:#15803d}.status-cancelled{background:#fee2e2;color:#b91c1c}.task-status{border-radius:999px;padding:.2rem .55rem;font-size:.75rem;font-weight:700;white-space:nowrap}.task-pending{background:#fee2e2;color:#b91c1c}.task-in-progress{background:#dbeafe;color:#1d4ed8}.task-done{background:#dcfce7;color:#15803d}.task-field-pending{background:#fef2f2;border-color:#fca5a5;color:#b91c1c}.task-field-in-progress{background:#eff6ff;border-color:#93c5fd;color:#1d4ed8}.task-field-done{background:#f0fdf4;border-color:#86efac;color:#15803d}.attachments-cell{display:inline-flex;align-items:center;gap:.45rem}.attachment-size{color:#64748b;font-size:.82rem;font-weight:400}.attachments-table{border:1px solid #e5eaf3;border-radius:12px;overflow:hidden}.attachments-table table{table-layout:fixed;min-width:0}.attachments-table th:nth-child(1),.attachments-table td:nth-child(1){width:34%}.attachments-table th:nth-child(2),.attachments-table td:nth-child(2){width:20%}.attachments-table th:nth-child(3),.attachments-table td:nth-child(3){width:16%}.attachments-table th:nth-child(4),.attachments-table td:nth-child(4){width:16%}.attachments-table th:nth-child(5),.attachments-table td:nth-child(5){width:14%;text-align:center}.attachment-folder{color:#2563eb;font-weight:600}.attachment-folder-title{display:block;margin-top:.55rem;color:#2563eb;font-size:.82rem;font-weight:600}.drive-browser{border:1px solid #d8e0ee;border-radius:12px;background:#f8fafc;margin-top:.5rem;overflow:hidden}.drive-toolbar{display:flex;align-items:center;gap:.5rem;padding:.55rem .75rem;border-bottom:1px solid #e5eaf3;flex-wrap:wrap}.drive-path{color:#334155;font-weight:600;font-size:.92rem}.drive-action{display:inline-flex;align-items:center;gap:.35rem;padding:.4rem .75rem}.drive-new-folder{display:flex;align-items:center;gap:.5rem;padding:.55rem .75rem;border-bottom:1px solid #e5eaf3;background:#fff}.drive-new-folder input{flex:1}.drive-list{max-height:240px;overflow:auto}.drive-row{display:grid;grid-template-columns:auto 1fr auto auto;gap:.6rem;align-items:center;padding:.45rem .75rem;border-top:1px solid #e5eaf3;-webkit-user-select:none;user-select:none}.drive-row.selectable{cursor:default}.drive-row.selected{background:#dbeafe}.drive-row.folder.drop-target{background:#bfdbfe;outline:2px dashed #2563eb;outline-offset:-2px}.drive-browser.drop-target{outline:2px dashed #2563eb;outline-offset:-2px;background:#eff6ff}.drive-row:first-child{border-top:none}.drive-row.folder{cursor:pointer}.drive-row.folder:hover{background:#e8eefb}.drive-folder-icon{color:#2563eb;display:inline-flex;align-items:center}.drive-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#172033}.drive-meta{color:#64748b;font-size:.82rem;white-space:nowrap}.drive-empty{padding:.9rem .75rem;color:#64748b}.pending-badge{font-size:.72rem;color:#b45309;background:#fef3c7;border-radius:6px;padding:.1rem .4rem;margin-left:.35rem}.attachments-table td,.file-name-cell{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tooltip-text{position:relative}.tooltip-text:hover:after{content:attr(title);position:absolute;left:0;bottom:calc(100% + .4rem);z-index:80;max-width:min(520px,80vw);white-space:normal;overflow-wrap:anywhere;background:#0f172a;color:#fff;border-radius:10px;padding:.55rem .75rem;box-shadow:0 14px 34px #0f172a47;font-size:.85rem;line-height:1.35;text-transform:none}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem}.register-row{display:grid;grid-template-columns:1fr 1fr 1fr 1.6fr 1fr;gap:.65rem}tr.row-flash{animation:rowFlash 3.5s ease-out}@keyframes rowFlash{0%{background-color:#bfdbfe}60%{background-color:#eff6ff}to{background-color:transparent}}.client-row{display:grid;grid-template-columns:1.3fr 1.2fr 1fr;gap:.65rem}.equipment-row{display:grid;grid-template-columns:1.4fr 1fr;gap:.65rem;align-items:start}.form-grid h2{grid-column:1 / -1}.form-grid textarea,.form-grid button:not(.icon-button),.field-full{grid-column:1 / -1}.form-actions{grid-column:1 / -1;display:flex;justify-content:flex-end;gap:.75rem}.form-actions button{min-width:120px}.field-full{display:grid;gap:.4rem}.split{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.split-3{grid-template-columns:1fr 1fr 1fr}.clients-layout{display:flex;flex-direction:column;gap:1rem}.clients-layout .panel{display:flex;flex-direction:column}.clients-layout .table-scroll{max-height:260px}.table-scroll{max-height:610px;overflow:auto;border-radius:12px;border:1px solid #e5eaf3}.table-scroll table{min-width:680px}.login-page{min-height:100vh;display:grid;place-items:center;background:radial-gradient(circle at top left,#2563eb,transparent 32%),linear-gradient(135deg,#0f172a,#172554)}.login-card{width:min(440px,calc(100vw - 2rem));display:grid;gap:1rem;background:#fff;color:#172033;padding:2rem;border-radius:24px;box-shadow:0 30px 80px #00000059}.login-card h1{margin:0}.login-card p{margin:0;color:#64748b}.login-card label{display:grid;gap:.4rem;font-weight:700}.error{color:#dc2626;font-weight:700}.success{color:#15803d;background:#dcfce7;border:1px solid #86efac;border-radius:10px;padding:.75rem;font-weight:800}.upload{display:grid;gap:1rem}.upload-status{display:grid;grid-template-columns:1fr auto;align-items:center;gap:.75rem}.progress{height:16px;background:#e5eaf3;border-radius:999px;overflow:hidden}.progress span{display:block;height:100%;background:linear-gradient(90deg,#2563eb,#06b6d4);transition:width .2s ease}.file-picker input{display:none}.file-picker span,.file-picker button{display:inline-flex;justify-content:center;align-items:center;border-radius:10px;background:#eef2f7;color:#172033;padding:.85rem 1rem;cursor:pointer;border:1px dashed #94a3b8}.file-picker span:hover,.file-picker button:hover{background:#dbeafe;border-color:#2563eb}.selected-files{border:1px solid #e5eaf3;border-radius:12px;padding:.75rem;background:#f8fafc}.selected-file-row{display:grid;grid-template-columns:1fr auto auto;gap:.75rem;align-items:center;padding:.55rem 0;border-top:1px solid #e5eaf3;color:#334155}.selected-file-row span:last-child{color:#64748b}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:grid;place-items:center;padding:1.5rem;background:#0f172a8c;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.modal-card{width:min(920px,100%);max-height:calc(100vh - 1.5rem);overflow:auto;background:#fff;border-radius:22px;border:1px solid #e5eaf3;box-shadow:0 30px 80px #0f172a59;padding:1rem 1.25rem}.modal-card.service-modal{display:flex;flex-direction:column;overflow:hidden}.service-modal .modal-header{flex-shrink:0}.service-modal .form-grid{flex:1;overflow-y:auto;min-height:0;padding-top:.5rem;padding-right:.25rem}.service-modal-actions{display:flex;justify-content:flex-end;gap:.6rem;flex-shrink:0;border-top:1px solid #e5eaf3;padding-top:.85rem;margin-top:.85rem}.service-modal-actions button{min-width:120px}.small-modal{width:min(680px,100%)}.modal-header{display:flex;justify-content:space-between;align-items:start;gap:1rem;margin-bottom:.75rem}.modal-header h2{margin:0}.modal-header p{margin:.35rem 0 0;color:#64748b}.modal-header .modal-error{margin:0;align-self:center;font-size:.8rem;font-weight:700;color:#dc2626;text-align:right;max-width:45%;flex:0 1 auto}.confirm-card{width:min(520px,100%);background:#fff;border-radius:22px;border:1px solid #fbbf24;box-shadow:0 30px 80px #0f172a59;padding:1.5rem}.confirm-card.warning{background:linear-gradient(180deg,#fffbeb,#fff)}.confirm-card h2{margin:0 0 .75rem;color:#172033}.confirm-card p{color:#475569;line-height:1.5}.warning-button{background:#d97706}.warning-button:hover{background:#b45309}.success-modal{width:min(420px,100%);background:linear-gradient(180deg,#ecfdf5,#fff);border:1px solid #86efac;border-radius:22px;box-shadow:0 30px 80px #0f172a59;padding:1.5rem;text-align:center}.success-modal h2{margin:0 0 .75rem;color:#15803d}.success-modal p{margin:0;color:#334155;line-height:1.5}.modal-card textarea{min-height:76px}.modal-card .form-grid{gap:.65rem}.modal-card input,.modal-card select,.modal-card textarea{padding:.6rem .75rem}.compact-code{gap:.25rem}.compact-code input{padding:.55rem .75rem}.compact-picker span{padding:.65rem}.floating-field{position:relative;display:block}.floating-field>span{position:absolute;top:-.42rem;left:.75rem;z-index:2;padding:0 .25rem;background:#fff;color:#94a3b8;font-size:.68rem;line-height:1;font-weight:400;text-transform:none;letter-spacing:0}.floating-field input,.floating-field select,.floating-field textarea{padding-top:.72rem}.service-modal input,.service-modal select,.service-modal textarea{font-size:.95rem;font-weight:400;color:#172033}.service-modal input::placeholder,.service-modal textarea::placeholder{color:#64748b;font-weight:400;opacity:.85}.service-modal .floating-field>span,.service-modal .compact-code{color:#64748b;font-weight:400}.service-modal .compact-code input{font-weight:700}.compact-textarea{min-height:54px;max-height:72px}.modal-card .selected-files{padding:.6rem .75rem;max-height:150px;overflow:auto}.modal-card .selected-file-row{padding:.4rem 0}.attachments-grid{font-size:.88rem}.attachments-grid strong{font-size:.9rem}.attachment-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.5rem;margin-top:.5rem}.attachment-card{display:grid;grid-template-columns:1fr auto;gap:.35rem .5rem;align-items:center;border:1px solid #e5eaf3;border-radius:10px;background:#fff;padding:.5rem}.attachment-card .row-actions{grid-column:1 / -1;justify-content:flex-end}.attachment-card .icon-button{padding:.28rem}@media(max-width:900px){.app-shell{grid-template-columns:1fr}.sidebar{position:static}.toolbar,.kpi-grid,.split,.split-3,.form-grid{grid-template-columns:1fr}.register-row{grid-template-columns:1fr 1fr}.client-row,.equipment-row,.attachment-cards{grid-template-columns:1fr}.panel-title{display:grid}.panel-title select{max-width:none}.content{padding:1rem}}.phone-input-wrapper{position:relative;display:flex;align-items:stretch;width:100%}.phone-country-btn{display:inline-flex;align-items:center;gap:.3rem;padding:0 .65rem;border-radius:10px 0 0 10px;border:1px solid #d8e0ee;border-right:none;background:#f1f5f9;color:#172033;cursor:pointer;font-weight:400;white-space:nowrap;flex-shrink:0}.phone-country-btn:hover{background:#e2e8f0}.phone-flag{font-size:1.15rem;line-height:1}.phone-dial{font-size:.82rem;color:#475569}.phone-chevron{color:#94a3b8;transition:transform .15s}.phone-chevron.open{transform:rotate(180deg)}.phone-number-input{border-radius:0 10px 10px 0!important;flex:1;min-width:0}.phone-dropdown{position:fixed;z-index:200;background:#fff;border:1px solid #d8e0ee;border-radius:12px;box-shadow:0 12px 32px #0f172a24;overflow:hidden}.phone-search{border:none!important;border-bottom:1px solid #e5eaf3!important;border-radius:0!important;padding:.55rem .75rem!important;font-size:.85rem;width:100%}.phone-dropdown ul{list-style:none;margin:0;padding:.3rem 0;max-height:360px;overflow-y:auto}.phone-dropdown li{display:flex;align-items:center;gap:.55rem;padding:.5rem .75rem;cursor:pointer;font-size:.88rem}.phone-dropdown li:hover{background:#f1f5f9}.phone-dropdown li.selected{background:#dbeafe}.phone-country-name{flex:1;color:#172033}.phone-dial-option{color:#64748b;font-size:.8rem}.phone-dropdown li.no-results{color:#94a3b8;cursor:default;justify-content:center}
