﻿/* density.css
   Dense layout overrides for Bootstrap + Kendo UI
   Load AFTER bootstrap and kendo CSS
*/

/* ---- Base font & line-height ---- */
html,
body,
.k-widget {
    font-size: 14px;
    line-height: 1.3;
}

/* ---- Bootstrap Header Font Size ---- */
h1 { font-size: 1.5rem; }
h2 { font-size: 1.4rem; }
h3 { font-size: 1.3rem; }
h4 { font-size: 1.2rem; }
h5 { font-size: 1.1rem; }
h6 { font-size: 1rem; }

/* ---- Bootstrap spacing overrides ---- */
.p-3, .px-3, .py-3 { padding: .5rem !important; }
.m-3, .mx-3, .my-3 { margin: .5rem !important; }

.alert {
    padding: .3rem .5rem .3rem .5rem;
    margin-bottom: 0;
}

/* ---- Buttons ---- */
.btn,
.k-button {
    padding: .25rem .5rem;
    font-size: 13px;
    line-height: 1.2;
}

.btn-sm,
.k-button.k-button-sm {
    padding: .15rem .4rem;
    font-size: 0.875rem;
}

.btn-lg,
.k-button.k-button-lg {
    padding: .4rem .75rem;
    font-size: 1.25rem;
    border-radius: .25rem;
}

/* ---- Forms / Inputs ---- */
.form-control,
.k-input,
.k-textbox,
.k-dropdown,
.k-combobox,
.k-datepicker,
.k-timepicker,
.k-datetimepicker {
    padding: .25rem .5rem;
    min-height: 1.75rem;
    font-size: 13px;
}

/* ---- Bootstrap floating label controls ---- */
.form-floating > .form-control,
.form-floating > .form-select {
    height: 3rem;
    min-height: 3rem;
    line-height: 1.3;
}

.form-floating > label {
    padding: .75rem .75rem;
}

/* Make floating label ::after background transparent */
.form-floating > label::after {
    background-color: transparent !important;
}

/* ---- Tables ---- */
.table td,
.table th,
.k-grid td,
.k-grid th {
    padding: .25rem .5rem !important;
    font-size: 13px;
    line-height: 1.25;
}

/* ---- Cards / Panels ---- */
.card,
.k-panelbar,
.k-window {
    padding: .5rem;
}

/* ---- Kendo Dropdown / List Popups ---- */
.k-list .k-list-item,
.k-list-container .k-item {
    padding: .25rem .5rem;
    font-size: 13px;
    line-height: 1.25;
    min-height: 1.5rem;
}

/* ---- Customer Selector (Additional size/density improvements and width control) ---- */
.cp-customer-selector {
    width: auto;
    max-width: 200px;
    font-size: 12px;
}
.cp-customer-selector .k-input-inner {
    padding-right: 0;
}

/* ---- General Kendo Medium Inputs ---- */
.k-combobox.k-input-md,
.k-datepicker.k-input-md,
.k-dropdown.k-input-md,
.k-numerictextbox.k-input-md,
.k-searchbox.k-input-md,
.k-textbox.k-input-md,
.k-timepicker.k-input-md {
    height: 1.75rem !important;
    min-height: 1.75rem !important;
    padding: 0rem 0rem 0rem .2rem !important;
    font-size: 13px !important;
    line-height: 1.2 !important;
}
/* Inner input inside pickers/dropdowns */
.k-combobox.k-input-md .k-input-inner,
.k-datepicker.k-input-md .k-input-inner,
.k-dropdown.k-input-md .k-input-inner,
.k-numerictextbox.k-input-md .k-input-inner,
.k-searchbox.k-input-md .k-input-inner,
.k-textbox.k-input-md .k-input-inner,
.k-timepicker.k-input-md .k-input-inner {
    height: 1.5rem;
    padding: .2rem .3rem;
    font-size: 13px;
    line-height: 1.2;
}

/* Different styling for text area widget */
.k-textarea.k-input-md {
    padding: 0rem !important;
}
.k-textarea.k-input-md .k-input-inner {
    padding: .2rem .2rem .2rem .5rem;
    font-size: 13px;
    line-height: 1.2;
    overflow-x: hidden;
    white-space: normal;
}

/* Picker icon/button part */
.k-input.k-input-md .k-select {
    height: 1.75rem;
    width: 1.75rem;
    min-width: 1.75rem;
    padding: 0;
}


/* ---- Kendo Grid Rows, Headers, and Pager ---- */

/* Grid toolbar */
.k-grid-toolbar {
    padding: .2rem .4rem;
    font-size: 13px;
    min-height: 1.75rem;
}

/* Grid header cells */
.k-grid-header .k-header {
    overflow: visible;
    white-space: normal;
}
.k-grid-header .k-header .k-cell-inner {
    align-items: end;
}
.k-grid-header .k-header .k-cell-inner .k-column-title {
    white-space: normal;
}

/* Grid body cells */
.k-grid td {
    padding: .25rem .5rem !important;
    font-size: 13px;
    line-height: 1.2;
    height: 2rem !important;
    min-height: 2rem !important;
}
.k-pager {
    padding: .25rem .5rem;
}

/* Grid pager container */
.k-pager-wrap,
.k-pager-numbers,
.k-pager-info,
.k-pager-input {
    font-size: 13px;
    padding: .25rem .5rem;
}

/* ---- Kendo Grid Filters ---- */

/* Column Filter button */
.k-grid-filter-menu {
    margin: unset !important;
}

/* Filter dropdowns (picker elements) */
.k-filter-menu-container .k-filter-help-text,
.k-filter-menu-container .k-picker.k-dropdownlist,
.k-filter-menu-container .k-picker.k-datepicker,
.k-filter-menu-container .k-picker.k-combobox {
    height: 1.75rem !important;
    min-height: 1.75rem !important;
    font-size: 13px;
}

/* Inner input within picker */
.k-filter-menu-container .k-picker .k-input-inner {
    height: 1.5rem !important;
    padding: .2rem .3rem;
    font-size: 13px;
    line-height: 1.2;
}

/* Filter row label text */
.k-grid .k-filter-row .k-label {
    font-size: 13px;
    line-height: 1.2;
}


/* Full width page variant for wide grid screens (set in controller method with ViewBag.FullWidthPage = true) */
.cp-full-width-page {
    max-width: 100% !important;
    padding-left: 1rem !important;
    padding-right: 1rem !important;
    margin-left: auto !important;
    margin-right: auto !important;
}
/* Wider padding for large screens */
@media (min-width: 992px) { /* Bootstrap lg breakpoint */
    .cp-full-width-page {
        padding-left: 2rem !important;
        padding-right: 2rem !important;
    }
}
@media (min-width: 1200px) { /* Bootstrap xl breakpoint */
    .cp-full-width-page {
        padding-left: 3rem !important;
        padding-right: 3rem !important;
    }
}