:root{--primary:#3c9fbc;--primary-dark:#307f96;--primary-soft:#3c9fbc1f;--bg:#fff;--surface:#fff;--surface-hover:#f5fafb;--border:#d9e6ea;--border-subtle:#ebf4f6;--text-primary:#0f172a;--text-secondary:#64748b;--text-muted:#94a3b8;--success:#16a34a;--success-soft:#16a34a1f;--warning:#d97706;--warning-soft:#d977061f;--danger:#dc2626;--danger-soft:#dc26261a;--info:var(--primary);--info-soft:var(--primary-soft);--neutral-soft:#64748b1f;--shadow-sm:0 1px 2px #0f172a0f;--shadow-md:0 4px 12px #0f172a14;--shadow-lg:0 12px 32px #0f172a2e;--radius-sm:6px;--radius-md:10px;--radius-lg:14px;--sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--mono:ui-monospace, SFMono-Regular, Consolas, Menlo, monospace;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;font:15px/1.5 var(--sans);color:var(--text-primary);background:var(--bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}html,body,#root{height:100%}body,h1,h2,h3,h4,p{margin:0}a{color:inherit}button{font-family:inherit}.app-shell{min-height:100vh;display:flex}.sidebar{background:var(--surface);border-right:1px solid var(--border);flex-direction:column;flex-shrink:0;width:250px;display:flex}.sidebar-brand{border-bottom:1px solid var(--border);align-items:center;gap:12px;padding:20px;display:flex}.sidebar-brand-mark{border-radius:var(--radius-sm);background:var(--primary);color:#fff;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;font-size:.85rem;font-weight:700;display:flex}.sidebar-brand-name{font-size:.95rem;font-weight:600;line-height:1.2}.sidebar-brand-sub{color:var(--text-secondary);font-size:.78rem}.sidebar-nav{flex-direction:column;gap:2px;padding:12px;display:flex}.sidebar-nav-item{border-radius:var(--radius-sm);color:var(--text-secondary);padding:10px 14px;font-size:.9rem;font-weight:500;text-decoration:none;display:block}.sidebar-nav-item:hover{background:var(--surface-hover);color:var(--text-primary)}.sidebar-nav-item.active{background:var(--primary-soft);color:var(--primary)}.sidebar-backdrop{display:none}.main-area{flex-direction:column;flex:1;min-width:0;display:flex}.topbar{background:var(--surface);border-bottom:1px solid var(--border);flex-shrink:0;justify-content:flex-end;align-items:center;gap:16px;height:64px;padding:0 24px;display:flex}.sidebar-toggle{display:none}.topbar-user{align-items:center;gap:10px;display:flex}.user-avatar{background:var(--primary-soft);width:36px;height:36px;color:var(--primary);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:.8rem;font-weight:700;display:flex}.user-meta{line-height:1.25}.user-name{font-size:.88rem;font-weight:600}.user-role{color:var(--text-secondary);text-transform:capitalize;font-size:.75rem}.content{flex:1;width:100%;max-width:1280px;margin:0 auto;padding:28px 32px 48px}@media (width<=900px){.sidebar{z-index:40;transition:transform .2s;position:fixed;inset:0 auto 0 0;transform:translate(-100%)}.sidebar.sidebar-open{box-shadow:var(--shadow-lg);transform:translate(0)}.sidebar-backdrop{z-index:30;background:#0f172a66;display:block;position:fixed;inset:0}.sidebar-toggle{display:inline-flex}.topbar{justify-content:space-between}.content{padding:20px 16px 40px}}.page-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:24px;display:flex}.page-header h1{font-size:1.4rem;font-weight:700}.page-header p{color:var(--text-secondary);margin-top:4px;font-size:.9rem}.page-header-actions{flex-wrap:wrap;gap:10px;display:flex}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);padding:20px}.card+.card{margin-top:16px}.danger-zone{border-color:var(--danger);background:var(--danger-soft)}.danger-zone p{margin-bottom:14px}.card-header{justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}.card-header h2{font-size:1.05rem;font-weight:600}.card-header p{color:var(--text-secondary);margin-top:2px;font-size:.85rem}.stat-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px;margin-bottom:24px;display:grid}.stat-tile{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);padding:18px 20px}.stat-tile-label{text-transform:uppercase;letter-spacing:.04em;color:var(--text-secondary);font-size:.78rem;font-weight:600}.stat-tile-value{margin-top:6px;font-size:1.9rem;font-weight:700}.stat-tile-accent{border-top:3px solid var(--primary)}.btn{border-radius:var(--radius-sm);cursor:pointer;white-space:nowrap;border:1px solid #0000;justify-content:center;align-items:center;gap:6px;padding:9px 16px;font-size:.87rem;font-weight:600;transition:background .15s,border-color .15s;display:inline-flex}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover:not(:disabled){background:var(--primary-dark)}.btn-secondary{background:var(--surface);border-color:var(--border);color:var(--text-primary)}.btn-secondary:hover:not(:disabled){background:var(--surface-hover)}.btn-danger{background:var(--danger);color:#fff}.btn-danger:hover:not(:disabled){filter:brightness(.92)}.btn-ghost{color:var(--text-secondary);background:0 0}.btn-ghost:hover:not(:disabled){background:var(--surface-hover);color:var(--text-primary)}.btn-sm{padding:6px 12px;font-size:.8rem}.icon-button{cursor:pointer;color:var(--text-secondary);border-radius:var(--radius-sm);background:0 0;border:none;justify-content:center;align-items:center;width:34px;height:34px;display:inline-flex}.icon-button:hover{background:var(--surface-hover);color:var(--text-primary)}.link-button{color:var(--primary);cursor:pointer;font:inherit;background:0 0;border:none;padding:0;font-weight:600}.link-button:hover{text-decoration:underline}.toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}.filters-bar{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.search-input,.filters-bar select,.filters-bar input{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-primary);padding:8px 12px;font-size:.87rem}.search-input{min-width:220px}.search-input:focus,.filters-bar select:focus,.filters-bar input:focus,input:focus,select:focus,textarea:focus{outline:2px solid var(--primary-soft);outline-offset:1px;border-color:var(--primary)}.table-wrapper{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);overflow-x:auto}table.data-table{border-collapse:collapse;width:100%;font-size:.87rem}.data-table th{text-align:left;text-transform:uppercase;letter-spacing:.04em;color:var(--text-secondary);border-bottom:1px solid var(--border);white-space:nowrap;padding:12px 16px;font-size:.72rem;font-weight:600}.data-table td{border-bottom:1px solid var(--border-subtle);vertical-align:middle;padding:13px 16px}.data-table tbody tr:last-child td{border-bottom:none}.data-table tbody tr.clickable-row{cursor:pointer}.data-table tbody tr.clickable-row:hover td{background:var(--surface-hover)}.cell-secondary{color:var(--text-secondary);font-size:.82rem}.cell-mono{font-family:var(--mono);font-size:.82rem}.cell-danger{color:var(--danger);font-weight:600}.badge{white-space:nowrap;text-transform:capitalize;border-radius:999px;align-items:center;gap:5px;padding:3px 11px;font-size:.74rem;font-weight:600;display:inline-flex}.badge-status-open{background:var(--neutral-soft);color:var(--text-secondary)}.badge-status-assigned{background:var(--info-soft);color:var(--info)}.badge-status-in_progress{background:var(--warning-soft);color:var(--warning)}.badge-status-resolved{background:var(--success-soft);color:var(--success)}.badge-status-closed{background:var(--neutral-soft);color:var(--text-muted)}.badge-status-scheduled{background:var(--neutral-soft);color:var(--text-secondary)}.badge-status-completed{background:var(--success-soft);color:var(--success)}.badge-status-cancelled{background:var(--neutral-soft);color:var(--text-muted)}.badge-priority-low{background:var(--neutral-soft);color:var(--text-secondary)}.badge-priority-medium{background:var(--info-soft);color:var(--info)}.badge-priority-high{background:var(--warning-soft);color:var(--warning)}.badge-priority-critical{background:var(--danger-soft);color:var(--danger)}.badge-active{background:var(--success-soft);color:var(--success)}.badge-inactive{background:var(--neutral-soft);color:var(--text-secondary)}.status-dot{background:currentColor;border-radius:50%;width:7px;height:7px;display:inline-block}.form-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;display:grid}.form-field{flex-direction:column;gap:6px;display:flex}.form-field.full-width{grid-column:1/-1}.form-field label{color:var(--text-secondary);font-size:.82rem;font-weight:600}.form-field input,.form-field select,.form-field textarea{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-primary);padding:9px 12px;font-family:inherit;font-size:.9rem}.form-field textarea{resize:vertical;min-height:90px}.form-error{color:var(--danger);margin:0;font-size:.82rem}.form-actions{justify-content:flex-end;gap:10px;margin-top:22px;display:flex}.form-hint{color:var(--text-muted);font-size:.78rem}.photo-picker{flex-direction:column;gap:10px;margin-top:8px;display:flex}.photo-picker-grid,.attachment-gallery-grid{grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:10px;display:grid}.photo-thumb{border:1px solid var(--border);border-radius:var(--radius-sm);aspect-ratio:1;background:var(--surface-hover);position:relative;overflow:hidden}.photo-thumb img,.attachment-thumb img{object-fit:cover;width:100%;height:100%;display:block}.photo-thumb-remove{color:#fff;cursor:pointer;background:#0f172ab8;border:none;padding:4px 0;font-size:.72rem;position:absolute;bottom:0;left:0;right:0}.photo-thumb-remove:disabled{cursor:not-allowed;opacity:.6}.attachment-thumb{border:1px solid var(--border);border-radius:var(--radius-sm);aspect-ratio:1;background:var(--surface-hover);cursor:pointer;padding:0;overflow:hidden}.attachment-lightbox-image{border-radius:var(--radius-sm);max-width:100%;max-height:70vh;margin:0 auto;display:block}.attachment-doc-list{flex-direction:column;gap:8px;display:flex}.attachment-doc-row{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-hover);align-items:center;gap:10px;padding:8px 12px;display:flex}.attachment-doc-name{text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:.9rem;overflow:hidden}.attachment-category-select{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-primary);padding:4px 8px;font-family:inherit;font-size:.8rem}.modal-overlay{z-index:100;background:#0f172a80;justify-content:center;align-items:flex-start;padding:40px 20px;display:flex;position:fixed;inset:0;overflow-y:auto}.modal{background:var(--surface);border-radius:var(--radius-lg);width:100%;max-width:560px;box-shadow:var(--shadow-lg);padding:24px}.modal-header{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:18px;display:flex}.modal-header h2{font-size:1.1rem;font-weight:700}.state-box{color:var(--text-secondary);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:10px;padding:56px 24px;display:flex}.state-box.state-error{color:var(--danger)}.state-title{color:var(--text-primary);font-weight:600}.spinner{border:3px solid var(--border);border-top-color:var(--primary);border-radius:50%;width:26px;height:26px;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.kv-grid{grid-template-columns:160px 1fr;gap:12px;font-size:.88rem;display:grid}.kv-grid dt{color:var(--text-secondary)}.kv-grid dd{margin:0;font-weight:500}@media (width<=560px){.kv-grid{grid-template-columns:1fr;row-gap:4px}.kv-grid dt{margin-top:8px}}.section-title{margin-bottom:4px;font-size:1rem;font-weight:700}.two-col{grid-template-columns:1fr 1fr;align-items:start;gap:16px;display:grid}@media (width<=900px){.two-col{grid-template-columns:1fr}}.qr-box{align-items:center;gap:16px;display:flex}.qr-box img{border:1px solid var(--border);border-radius:var(--radius-sm);background:#fff;width:128px;height:128px;padding:6px}.qr-meta{flex-direction:column;gap:8px;min-width:0;font-size:.85rem;display:flex}.qr-token-row{align-items:center;gap:8px;display:flex}.full-screen-center{justify-content:center;align-items:center;min-height:100vh;display:flex}.public-page{background:var(--bg);min-height:100vh}.public-header{background:var(--surface);border-bottom:1px solid var(--border);align-items:center;gap:12px;padding:16px 24px;display:flex}.public-header-title{font-weight:700}.public-content{max-width:560px;margin:0 auto;padding:24px 16px 48px}.public-success h1{margin-bottom:8px;font-size:1.25rem}.public-ticket-number{font-family:var(--mono);color:var(--primary);margin-bottom:16px;font-size:1.1rem;font-weight:700}.qr-print-card{text-align:center;flex-direction:column;align-items:center;gap:16px;padding:32px;display:flex}.qr-print-card dl.kv-grid{text-align:left;grid-template-columns:auto auto;justify-content:center}@media print{.sidebar,.topbar,.sidebar-backdrop,.no-print{display:none!important}.app-shell,.main-area,.content{margin:0!important;padding:0!important;display:block!important}.qr-print-card{box-shadow:none;border:none}}.notification-bell{position:relative}.notification-badge{background:var(--danger);color:#fff;border-radius:999px;justify-content:center;align-items:center;min-width:16px;height:16px;padding:0 4px;font-size:.65rem;font-weight:700;line-height:1;display:flex;position:absolute;top:2px;right:2px}.notification-panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);width:360px;max-width:calc(100vw - 32px);box-shadow:var(--shadow-lg);z-index:50;position:absolute;top:calc(100% + 8px);right:0;overflow:hidden}.notification-panel-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:12px 16px;display:flex}.notification-panel-header h3{margin:0;font-size:.95rem}.notification-list{max-height:360px;margin:0;padding:0;list-style:none;overflow-y:auto}.notification-item{text-align:left;border:none;border-bottom:1px solid var(--border-subtle);cursor:pointer;background:0 0;width:100%;padding:12px 16px;display:block}.notification-item:hover{background:var(--surface-hover)}.notification-item.unread{background:var(--primary-soft)}.notification-item-title{margin-bottom:2px;font-size:.85rem;font-weight:600}.notification-item-message{color:var(--text-secondary);margin-bottom:4px;font-size:.82rem}.notification-item-time{color:var(--text-muted);font-size:.72rem}.notification-panel-footer{text-align:center;border-top:1px solid var(--border);padding:10px 16px}
