/* used in all study tables */
.study-table th {
    border-top: 0;
    white-space: nowrap;
    vertical-align: bottom;
    border-bottom: 2px solid #ddd;
    padding: 8px;
    line-height: 1.42857143;
    text-align: left;
}
.study-table td {
    padding: 8px;
    white-space: nowrap;
    line-height: 1.42857143;
    vertical-align: top;
    border-top: 1px solid #ddd;
    border-spacing: 0;
}
/* end */
/* used in profile-modals.php */
.info-table td { 
    padding: 8px;
    white-space: nowrap;
    line-height: 1.42857143;
    vertical-align: top;
    border-top: 1px solid #ddd;
    border-spacing: 0;
}
/* end */
.homepage-nav-dropdown-group:hover .dropdown-menu-icon {
    transition: all .3s ease-out;
    transform: translateX(0);
    opacity: 1;
}
.pulse-ring { /* used in voice_notes_modal.php */
    animation: pulsate infinite 1.5s;
}
/* live waveform while recording, used in qc_rework_comment_modal.php */
.qcrw-rec-wave span {
    animation: qcrwWave 1.1s ease-in-out infinite;
    transform-origin: center;
}
.qcrw-rec-wave span:nth-child(3n) { animation-delay: -.3s; }
.qcrw-rec-wave span:nth-child(3n+1) { animation-delay: -.6s; }
.qcrw-rec-wave span:nth-child(4n) { animation-duration: .8s; }
.qcrw-rec-wave span:nth-child(5n) { animation-duration: 1.4s; }
@keyframes qcrwWave {
    0%, 100% { transform: scaleY(.2); }
    50% { transform: scaleY(1); }
}
input::-webkit-outer-spin-button,
input::-webkit-inner-spin-button {
  -webkit-appearance: none;
  appearance: none;
  margin: 0;
}
.highcharts-figure,
.highcharts-data-table table {
  min-width: 300px;
  max-width: 90%;
  margin: 1em auto;
}

#container {
  height: 400px;
}

.highcharts-data-table table {
  font-family: Verdana, sans-serif;
  border-collapse: collapse;
  border: 1px solid #ebebeb;
  margin: 10px auto;
  text-align: center;
  width: 100%;
  max-width: 500px;
}

.highcharts-data-table caption {
  padding: 1em 0;
  font-size: 1.2em;
  color: #555;
}

.highcharts-data-table th {
  font-weight: 600;
  padding: 0.5em;
}

.highcharts-data-table td,
.highcharts-data-table th,
.highcharts-data-table caption {
  padding: 0.5em;
}

.highcharts-data-table thead tr,
.highcharts-data-table tr:nth-child(even) {
  background: #f8f8f8;
}

.highcharts-data-table tr:hover {
  background: #f1f7ff;
}

.highcharts-drilldown-axis-label {
    text-decoration: none !important;
    cursor: default !important;
}

.highcharts-data-table table {
  font-family: Verdana, sans-serif;
  border-collapse: collapse;
  border: 1px solid #ebebeb;
  margin: 10px auto;
  text-align: center;
  width: 100%;
  max-width: 500px;
}
.highcharts-data-table th {
  font-weight: 600;
  padding: 0.5em;
}
/* Firefox */
input[type=number] {
  -moz-appearance: textfield;
}
.view_on {
	background: #1dd0c0 !important;
    border-color: #005149 !important;
    box-shadow: inset 0px 0px 4px #01554d !important;
    outline: none !important;
}
.menubar_scroll::-webkit-scrollbar {
  width: 5px;
}
.menubar_scroll::-webkit-scrollbar-track {
  background: #333333;
}
.menubar_scroll::-webkit-scrollbar-thumb {
  background: #c5c5c5;
			border-radius: 5px;
}
.ck .ck-powered-by {
  display: none !important;
}
@-webkit-keyframes pulsate {
    0% {
        -webkit-transform: scale(0.7, 0.7);
        opacity: 1;
    }

    100% {
        -webkit-transform: scale(1.004, 1.004);
        opacity: 0;
    }
}
@media (max-width: 310px) {
    .profileName {
        display: none !important;
    }
}
@media print
{    
    .no-print, .no-print *
    {
        display: none !important;
    }
}
/* Once #speechToTextBtn is moved into CKEditor's toolbar (see
   moveSpeechToTextIntoEditorToolbar in main.js), it sits inside CKEditor's
   .ck-reset_all scope, whose reset rules (specificity beats plain Tailwind
   utility classes) force width/height/background/position back to
   auto/auto/transparent/static on it. ck-reset_all-excluded on the button
   protects its children (icon svgs, label), but the button element itself
   still needs its own box restored here with matching Tailwind purple-600/
   700/800 values. */
#speechToTextBtn {
  position: relative;
  width: 1.75rem;
  height: 1.75rem;
  background-color: rgb(147 51 234);
}
#speechToTextBtn:hover {
  background-color: rgb(126 34 206);
}
#speechToTextBtn.bg-purple-800 {
  background-color: rgb(107 33 168);
}
.ck-content .table {
  width: 100%;
  float: none !important;
}

/* billing_op.php: vertically centre cells (tag chips make rows taller) */
.billing-op-table th,
.billing-op-table td {
    vertical-align: middle;
}

/* billing_op.php toolbar */
.billing-toolbar-btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    height: 36px;
    padding: 0 12px;
    border: 1px solid #d4d4d4;
    border-radius: 6px;
    background: #fff;
    color: #262626;
    font-size: 14px;
    white-space: nowrap;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
}
.billing-toolbar-btn:hover {
    background: #f5f5f5;
}
.billing-toolbar-btn svg {
    width: 16px;
    height: 16px;
    flex-shrink: 0;
    fill: currentColor;
}
.billing-toolbar-btn-primary {
    border-color: #bae6fd;
    background: #f0f9ff;
    color: #0369a1;
}
.billing-toolbar-btn-primary:hover {
    background: #e0f2fe;
}
/* Tag filter menu: right-aligned to its button on desktop; on phones the toolbar wraps and the
   button sits at the left edge, so open rightwards and never exceed the viewport. */
.billing-tag-filter-menu {
    right: 0;
    max-width: calc(100vw - 32px);
}
@media (max-width: 639px) {
    .billing-tag-filter-menu {
        left: 0;
        right: auto;
    }
}
.billing-toolbar-control {
    height: 36px;
    border: 1px solid #d4d4d4;
    border-radius: 6px;
    background: #fff;
    font-size: 14px;
    outline: none;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
}
.billing-toolbar-control:focus {
    border-color: #0ea5e9;
}
.billing-search-clear {
    position: absolute;
    right: 8px;
    top: 50%;
    width: 20px;
    height: 20px;
    transform: translateY(-50%);
}
.billing-search-clear,
.billing-search-clear svg {
    fill: #c4c4c4;
}
.billing-search-clear svg {
    width: 20px;
    height: 20px;
}
.billing-search-clear.hidden {
    display: none;
}

/* billing lists: resizable columns (sizes are injected by initBillingColumnResize in main.js) */
th.billing-resizable-col {
    position: relative;
}
.billing-col-resizer {
    position: absolute;
    top: 0;
    right: -4px;
    width: 8px;
    height: 100%;
    cursor: col-resize;
    z-index: 1;
    touch-action: none;
}
.billing-col-resizer::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 3px;
    width: 2px;
    height: 14px;
    transform: translateY(-50%);
    border-radius: 1px;
    background: #d4d4d4;
}
th.billing-resizable-col:hover .billing-col-resizer::after {
    background: #a3a3a3;
}
.billing-col-resizer:hover::after,
.billing-col-resizer.active::after {
    height: 100%;
    background: #0284c7;
}
