.ticket-list{background:#fff;border-radius:0;box-shadow:none;overflow:hidden;flex:1;display:flex;flex-direction:column;border-right:1px solid #ddd;height:100%}.ticket-list-header{display:flex;flex-direction:column;padding:0;border-bottom:1px solid #ddd;flex-shrink:0;background:#fff}.header-top{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;border-bottom:1px solid #ddd}.ticket-list-header h1{margin:0;font-size:16px;font-weight:600}.ticket-list-header button{padding:4px 8px;font-size:12px}.search-box{padding:6px 12px;background-color:#fff}.search-box input{width:100%;padding:6px 8px;border:1px solid #ddd;border-radius:3px;font-size:13px;margin:0}.ticket-table{width:100%;border-collapse:collapse;flex:1;display:flex;flex-direction:column;overflow:hidden;height:100%}.ticket-table thead{display:table;width:calc(100% - 17px);background:#f5f5f5;flex-shrink:0;table-layout:fixed;padding-right:17px}.ticket-table tbody{display:block;overflow-y:scroll;width:100%;flex:1;table-layout:fixed}.ticket-table tr{display:table;width:100%;table-layout:fixed}.ticket-table thead{position:sticky;top:0;background-color:#f9f9f9;border-bottom:2px solid #ddd}.ticket-table th{padding:6px 8px;text-align:left;font-weight:600;color:#555;font-size:12px;white-space:nowrap;height:32px;border-bottom:1px solid #ddd}.ticket-table th.ticket-due,.ticket-table th.ticket-hours{text-align:center}.ticket-table th.ticket-id{text-align:left}.ticket-row{border-bottom:1px solid #f0f0f0;cursor:pointer;transition:background-color .15s;height:28px}.ticket-row:hover{background-color:#f0f7ff}.ticket-table td{padding:4px 8px;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:20px}.ticket-id{font-weight:600;color:#007bff;width:60px;flex:0 0 60px;text-align:left}.ticket-status{width:80px;flex:0 0 80px;font-weight:500;text-align:left}.ticket-customer{width:140px;flex:0 0 140px;text-align:left}.ticket-brief{width:280px;flex:0 0 280px;overflow:hidden;text-overflow:ellipsis;text-align:left}.ticket-assigned{width:110px;flex:0 0 110px;text-align:left}.ticket-due{width:100px;flex:0 0 100px;text-align:center}.ticket-hours{width:80px;flex:0 0 80px;text-align:center}.ticket-list-loading,.ticket-list-error,.ticket-list-empty{padding:40px;text-align:center;color:#666;font-size:16px}.ticket-list-error{color:#dc3545;background-color:#f8d7da;border:1px solid #f5c6cb;border-radius:4px}.ticket-detail-form-container{padding:12px 0;border-top:1px solid #eee}.ticket-detail-form{display:flex;flex-direction:column;gap:12px;padding:12px}.ticket-detail-form h3{margin:0;font-size:13px;font-weight:600;color:#333;border-bottom:1px solid #eee;padding-bottom:8px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:8px}.form-group{display:flex;flex-direction:column;gap:4px}.form-group label{font-weight:500;color:#555;font-size:12px}.form-group input,.form-group select,.form-group textarea{padding:6px 8px;border:1px solid #ddd;border-radius:3px;font-family:inherit;font-size:13px;background-color:#fff}.form-group textarea{resize:vertical;min-height:60px;font-family:monospace}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:#007bff;box-shadow:0 0 0 2px #007bff40}.checkbox-group{display:flex;flex-direction:column;gap:6px;background:#f9f9f9;padding:8px;border-radius:3px;border:1px solid #eee}.checkbox-label{display:flex;align-items:center;gap:6px;cursor:pointer;font-size:13px;-webkit-user-select:none;user-select:none}.checkbox-label input[type=checkbox]{margin:0;cursor:pointer;width:14px;height:14px}.form-error{padding:8px;background-color:#f8d7da;border:1px solid #f5c6cb;border-radius:3px;color:#721c24;font-size:12px}.form-success{padding:8px;background-color:#d4edda;border:1px solid #c3e6cb;border-radius:3px;color:#155724;font-size:12px}.form-submit{padding:8px 12px;background-color:#007bff;color:#fff;border:none;border-radius:3px;font-weight:500;cursor:pointer;transition:background-color .2s;font-size:12px;margin-top:4px}.form-submit:hover:not(:disabled){background-color:#0056b3}.form-submit:disabled{background-color:#6c757d;cursor:not-allowed}.autocomplete-container{display:flex;flex-direction:column;gap:8px}.autocomplete-input-wrapper{position:relative}.autocomplete-input{width:100%;padding:6px 8px;border:1px solid #ddd;border-radius:3px;font-size:13px;font-family:inherit}.autocomplete-input:focus{outline:none;border-color:#007bff;box-shadow:0 0 0 2px #007bff40}.autocomplete-dropdown{position:absolute;top:100%;left:0;right:0;background:#fff;border:1px solid #ddd;border-top:none;border-radius:0 0 3px 3px;max-height:200px;overflow-y:auto;z-index:10;box-shadow:0 2px 4px #0000001a}.autocomplete-option{padding:8px;cursor:pointer;font-size:13px;border-bottom:1px solid #f0f0f0}.autocomplete-option:hover{background-color:#f0f7ff}.autocomplete-option:last-child{border-bottom:none}.autocomplete-selected{display:flex;flex-wrap:wrap;gap:6px}.autocomplete-tag{display:inline-flex;align-items:center;gap:6px;background-color:#007bff;color:#fff;padding:4px 8px;border-radius:12px;font-size:12px}.autocomplete-remove{background:none;border:none;color:#fff;cursor:pointer;font-size:16px;padding:0;line-height:1}.autocomplete-remove:hover{color:#ccc}.time-entry-list{display:flex;flex-direction:column;gap:8px}.added-entries{display:flex;flex-direction:column;gap:4px}.entry-item{display:flex;justify-content:space-between;align-items:center;background-color:#e7f3ff;padding:6px 8px;border-radius:3px;border-left:3px solid #007bff;font-size:12px}.entry-item span{color:#333;font-weight:500}.remove-entry{background:none;border:none;color:#d9534f;cursor:pointer;font-size:16px;padding:0;line-height:1;margin-left:8px}.remove-entry:hover{color:#c9302c}.time-entry-list .form-row{gap:4px;align-items:flex-end}.time-entry-list .form-group input{font-size:12px;padding:4px 6px}.add-entry-btn{padding:4px 8px;background-color:#28a745;color:#fff;border:none;border-radius:3px;cursor:pointer;font-size:11px;font-weight:500;transition:background-color .2s}.add-entry-btn:hover{background-color:#218838}.form-header{display:flex;justify-content:space-between;align-items:center;gap:8px}.form-header h3{margin:0;flex:1}.form-header .btn-cancel{margin:0;padding:4px 8px;font-size:11px}.time-entry-edit-row{display:flex;align-items:center;gap:6px;background-color:#e7f3ff;padding:6px 8px;border-radius:3px;border-left:3px solid #007bff}.time-entry-edit-row input{padding:4px 6px;border:1px solid #ddd;border-radius:2px;font-size:12px;flex:1;min-width:60px}.time-entry-edit-row span{color:#666;font-weight:500}.time-entry-display{display:flex;justify-content:space-between;align-items:center}.time-entry-display span{color:#333;font-weight:500;flex:1}.btn-entry-edit,.btn-entry-save,.btn-entry-cancel,.btn-entry-delete{padding:2px 6px;border:none;border-radius:2px;cursor:pointer;font-size:10px;font-weight:500;white-space:nowrap}.btn-entry-edit{background-color:#007bff;color:#fff;margin-left:4px}.btn-entry-edit:hover{background-color:#0056b3}.btn-entry-save{background-color:#28a745;color:#fff}.btn-entry-save:hover{background-color:#218838}.btn-entry-cancel{background-color:#6c757d;color:#fff}.btn-entry-cancel:hover{background-color:#5a6268}.btn-entry-delete{background-color:#dc3545;color:#fff;margin-left:2px}.btn-entry-delete:hover{background-color:#c82333}.ticket-detail-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#00000080;display:flex;justify-content:flex-end;z-index:1000;animation:fadeIn .2s ease-out}@keyframes fadeIn{0%{background-color:#0000}to{background-color:#00000080}}.ticket-detail-panel{background:#fff;width:600px;height:100%;overflow-y:auto;box-shadow:-2px 0 8px #00000026;display:flex;flex-direction:column;animation:slideIn .3s ease-out}@keyframes slideIn{0%{transform:translate(100%)}to{transform:translate(0)}}.ticket-detail-header{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;border-bottom:2px solid #eee;flex-shrink:0}.ticket-detail-header h2{margin:0;font-size:18px}.close-button{background:none;border:none;font-size:24px;cursor:pointer;color:#666;padding:0;width:28px;height:28px;display:flex;align-items:center;justify-content:center;transition:color .2s}.close-button:hover{color:#000}.ticket-detail-content{flex:1;overflow-y:auto;padding:12px}.ticket-info{background:#f9f9f9;border-radius:4px;padding:12px;margin-bottom:12px}.info-group{display:flex;flex-direction:column;gap:8px;margin-bottom:10px}.info-row{display:flex;gap:12px;align-items:flex-start}.info-row label{font-weight:600;width:120px;color:#555;font-size:13px;flex-shrink:0}.info-row span{flex:1;word-break:break-word;font-size:13px;color:#333}.btn-edit{background-color:#007bff;color:#fff;border:none;padding:6px 12px;border-radius:3px;cursor:pointer;font-size:12px;margin-top:8px}.btn-edit:hover{background-color:#0056b3}.edit-form{background:#f9f9f9;border-radius:4px;padding:12px;margin-bottom:12px}.form-group{margin-bottom:10px;display:flex;flex-direction:column;gap:4px}.edit-form .form-group label{font-weight:600;color:#555;font-size:13px}.edit-form input,.edit-form select{padding:6px 8px;border:1px solid #ddd;border-radius:3px;font-size:13px;font-family:inherit}.button-group{display:flex;gap:8px;margin-top:12px}.btn-save,.btn-cancel{flex:1;padding:6px 12px;border:none;border-radius:3px;cursor:pointer;font-size:12px;font-weight:500}.btn-save{background-color:#28a745;color:#fff}.btn-save:hover{background-color:#218838}.btn-cancel{background-color:#6c757d;color:#fff}.btn-cancel:hover{background-color:#5a6268}.section{margin-bottom:16px}.section h3{margin:0 0 8px;font-size:13px;font-weight:600;color:#333;border-bottom:1px solid #eee;padding-bottom:6px}.description-text{margin:0;font-size:13px;line-height:1.5;white-space:pre-wrap;word-wrap:break-word;color:#555}.no-data{margin:0;font-size:13px;color:#999;font-style:italic}.details-list{display:flex;flex-direction:column;gap:8px}.detail-item{background-color:#f0f7ff;padding:8px;border-radius:3px;border-left:3px solid #007bff;font-size:12px}.detail-item p{margin:4px 0;line-height:1.4}.detail-item strong{color:#555}.loading,.error{padding:24px;text-align:center;font-size:13px}.error{color:#dc3545;background-color:#f8d7da;border:1px solid #f5c6cb;border-radius:3px;margin:12px}.detail-header{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:6px}.detail-header p{margin:0}.time-entries{margin-top:6px;padding-top:6px;border-top:1px solid rgba(0,123,255,.2)}.time-entries p{margin:4px 0}.time-entry{display:flex;gap:12px;align-items:center;padding:4px 8px;background-color:#007bff0d;border-radius:2px;margin-top:4px;font-size:11px}.time-entry span{color:#666}.no-entries{margin:4px 0;font-size:12px;color:#999}.detail-actions{display:flex;gap:6px;margin-top:8px;padding-top:8px;border-top:1px solid rgba(0,123,255,.1)}.btn-detail-edit{background-color:#007bff;color:#fff;border:none;padding:4px 8px;border-radius:3px;cursor:pointer;font-size:11px;font-weight:500}.btn-detail-edit:hover{background-color:#0056b3}.btn-detail-delete{background-color:#dc3545;color:#fff;border:none;padding:4px 8px;border-radius:3px;cursor:pointer;font-size:11px;font-weight:500}.btn-detail-delete:hover{background-color:#c82333}.app{display:flex;flex-direction:column;height:100vh;background-color:#f5f5f5}.app-header{background:linear-gradient(135deg,#007bff,#0056b3);color:#fff;padding:20px;box-shadow:0 2px 8px #0000001a;flex-shrink:0}.app-header h1{margin:0;font-size:28px;font-weight:600}.app-main{display:flex;flex:1;padding:0;gap:0;overflow:hidden}@media (max-width: 1024px){.app-main{padding:16px;gap:16px}.app-header h1{font-size:24px}}@media (max-width: 768px){.app-main{padding:12px;gap:12px}}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#f5f5f5;color:#333}button{cursor:pointer;border:none;border-radius:4px;padding:8px 16px;font-size:14px;background-color:#007bff;color:#fff;transition:background-color .2s}button:hover{background-color:#0056b3}input,select,textarea{width:100%;padding:8px;margin:4px 0;border:1px solid #ddd;border-radius:4px;font-family:inherit;font-size:14px}input:focus,select:focus,textarea:focus{outline:none;border-color:#007bff;box-shadow:0 0 0 2px #007bff40}
