@layer tailwind-base, primevue, tailwind-utilities;

@layer tailwind-base
{
  *, ::before, ::after{
    --tw-border-spacing-x: 0;
    --tw-border-spacing-y: 0;
    --tw-translate-x: 0;
    --tw-translate-y: 0;
    --tw-rotate: 0;
    --tw-skew-x: 0;
    --tw-skew-y: 0;
    --tw-scale-x: 1;
    --tw-scale-y: 1;
    --tw-pan-x:  ;
    --tw-pan-y:  ;
    --tw-pinch-zoom:  ;
    --tw-scroll-snap-strictness: proximity;
    --tw-gradient-from-position:  ;
    --tw-gradient-via-position:  ;
    --tw-gradient-to-position:  ;
    --tw-ordinal:  ;
    --tw-slashed-zero:  ;
    --tw-numeric-figure:  ;
    --tw-numeric-spacing:  ;
    --tw-numeric-fraction:  ;
    --tw-ring-inset:  ;
    --tw-ring-offset-width: 0px;
    --tw-ring-offset-color: #fff;
    --tw-ring-color: rgb(59 130 246 / 0.5);
    --tw-ring-offset-shadow: 0 0 #0000;
    --tw-ring-shadow: 0 0 #0000;
    --tw-shadow: 0 0 #0000;
    --tw-shadow-colored: 0 0 #0000;
    --tw-blur:  ;
    --tw-brightness:  ;
    --tw-contrast:  ;
    --tw-grayscale:  ;
    --tw-hue-rotate:  ;
    --tw-invert:  ;
    --tw-saturate:  ;
    --tw-sepia:  ;
    --tw-drop-shadow:  ;
    --tw-backdrop-blur:  ;
    --tw-backdrop-brightness:  ;
    --tw-backdrop-contrast:  ;
    --tw-backdrop-grayscale:  ;
    --tw-backdrop-hue-rotate:  ;
    --tw-backdrop-invert:  ;
    --tw-backdrop-opacity:  ;
    --tw-backdrop-saturate:  ;
    --tw-backdrop-sepia:  ;
    --tw-contain-size:  ;
    --tw-contain-layout:  ;
    --tw-contain-paint:  ;
    --tw-contain-style:  ;
  }
  ::backdrop{
    --tw-border-spacing-x: 0;
    --tw-border-spacing-y: 0;
    --tw-translate-x: 0;
    --tw-translate-y: 0;
    --tw-rotate: 0;
    --tw-skew-x: 0;
    --tw-skew-y: 0;
    --tw-scale-x: 1;
    --tw-scale-y: 1;
    --tw-pan-x:  ;
    --tw-pan-y:  ;
    --tw-pinch-zoom:  ;
    --tw-scroll-snap-strictness: proximity;
    --tw-gradient-from-position:  ;
    --tw-gradient-via-position:  ;
    --tw-gradient-to-position:  ;
    --tw-ordinal:  ;
    --tw-slashed-zero:  ;
    --tw-numeric-figure:  ;
    --tw-numeric-spacing:  ;
    --tw-numeric-fraction:  ;
    --tw-ring-inset:  ;
    --tw-ring-offset-width: 0px;
    --tw-ring-offset-color: #fff;
    --tw-ring-color: rgb(59 130 246 / 0.5);
    --tw-ring-offset-shadow: 0 0 #0000;
    --tw-ring-shadow: 0 0 #0000;
    --tw-shadow: 0 0 #0000;
    --tw-shadow-colored: 0 0 #0000;
    --tw-blur:  ;
    --tw-brightness:  ;
    --tw-contrast:  ;
    --tw-grayscale:  ;
    --tw-hue-rotate:  ;
    --tw-invert:  ;
    --tw-saturate:  ;
    --tw-sepia:  ;
    --tw-drop-shadow:  ;
    --tw-backdrop-blur:  ;
    --tw-backdrop-brightness:  ;
    --tw-backdrop-contrast:  ;
    --tw-backdrop-grayscale:  ;
    --tw-backdrop-hue-rotate:  ;
    --tw-backdrop-invert:  ;
    --tw-backdrop-opacity:  ;
    --tw-backdrop-saturate:  ;
    --tw-backdrop-sepia:  ;
    --tw-contain-size:  ;
    --tw-contain-layout:  ;
    --tw-contain-paint:  ;
    --tw-contain-style:  ;
  }
  /*
! tailwindcss v3.4.13 | MIT License | https://tailwindcss.com
*//*
1. Prevent padding and border from affecting element width. (https://github.com/mozdevs/cssremedy/issues/4)
2. Allow adding a border to an element by just adding a border-width. (https://github.com/tailwindcss/tailwindcss/pull/116)
*/

*,
::before,
::after {
  box-sizing: border-box; /* 1 */
  border-width: 0; /* 2 */
  border-style: solid; /* 2 */
  border-color: #e5e7eb; /* 2 */
}

::before,
::after {
  --tw-content: '';
}

/*
1. Use a consistent sensible line-height in all browsers.
2. Prevent adjustments of font size after orientation changes in iOS.
3. Use a more readable tab size.
4. Use the user's configured `sans` font-family by default.
5. Use the user's configured `sans` font-feature-settings by default.
6. Use the user's configured `sans` font-variation-settings by default.
7. Disable tap highlights on iOS
*/

html,
:host {
  line-height: 1.5; /* 1 */
  -webkit-text-size-adjust: 100%; /* 2 */
  -moz-tab-size: 4; /* 3 */
  -o-tab-size: 4;
     tab-size: 4; /* 3 */
  font-family: ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; /* 4 */
  font-feature-settings: normal; /* 5 */
  font-variation-settings: normal; /* 6 */
  -webkit-tap-highlight-color: transparent; /* 7 */
}

/*
1. Remove the margin in all browsers.
2. Inherit line-height from `html` so users can set them as a class directly on the `html` element.
*/

body {
  margin: 0; /* 1 */
  line-height: inherit; /* 2 */
}

/*
1. Add the correct height in Firefox.
2. Correct the inheritance of border color in Firefox. (https://bugzilla.mozilla.org/show_bug.cgi?id=190655)
3. Ensure horizontal rules are visible by default.
*/

hr {
  height: 0; /* 1 */
  color: inherit; /* 2 */
  border-top-width: 1px; /* 3 */
}

/*
Add the correct text decoration in Chrome, Edge, and Safari.
*/

abbr:where([title]) {
  -webkit-text-decoration: underline dotted;
          text-decoration: underline dotted;
}

/*
Remove the default font size and weight for headings.
*/

h1,
h2,
h3,
h4,
h5,
h6 {
  font-size: inherit;
  font-weight: inherit;
}

/*
Reset links to optimize for opt-in styling instead of opt-out.
*/

a {
  color: inherit;
  text-decoration: inherit;
}

/*
Add the correct font weight in Edge and Safari.
*/

b,
strong {
  font-weight: bolder;
}

/*
1. Use the user's configured `mono` font-family by default.
2. Use the user's configured `mono` font-feature-settings by default.
3. Use the user's configured `mono` font-variation-settings by default.
4. Correct the odd `em` font sizing in all browsers.
*/

code,
kbd,
samp,
pre {
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; /* 1 */
  font-feature-settings: normal; /* 2 */
  font-variation-settings: normal; /* 3 */
  font-size: 1em; /* 4 */
}

/*
Add the correct font size in all browsers.
*/

small {
  font-size: 80%;
}

/*
Prevent `sub` and `sup` elements from affecting the line height in all browsers.
*/

sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}

sub {
  bottom: -0.25em;
}

sup {
  top: -0.5em;
}

/*
1. Remove text indentation from table contents in Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=999088, https://bugs.webkit.org/show_bug.cgi?id=201297)
2. Correct table border color inheritance in all Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=935729, https://bugs.webkit.org/show_bug.cgi?id=195016)
3. Remove gaps between table borders by default.
*/

table {
  text-indent: 0; /* 1 */
  border-color: inherit; /* 2 */
  border-collapse: collapse; /* 3 */
}

/*
1. Change the font styles in all browsers.
2. Remove the margin in Firefox and Safari.
3. Remove default padding in all browsers.
*/

button,
input,
optgroup,
select,
textarea {
  font-family: inherit; /* 1 */
  font-feature-settings: inherit; /* 1 */
  font-variation-settings: inherit; /* 1 */
  font-size: 100%; /* 1 */
  font-weight: inherit; /* 1 */
  line-height: inherit; /* 1 */
  letter-spacing: inherit; /* 1 */
  color: inherit; /* 1 */
  margin: 0; /* 2 */
  padding: 0; /* 3 */
}

/*
Remove the inheritance of text transform in Edge and Firefox.
*/

button,
select {
  text-transform: none;
}

/*
1. Correct the inability to style clickable types in iOS and Safari.
2. Remove default button styles.
*/

button,
input:where([type='button']),
input:where([type='reset']),
input:where([type='submit']) {
  -webkit-appearance: button; /* 1 */
  background-color: transparent; /* 2 */
  background-image: none; /* 2 */
}

/*
Use the modern Firefox focus style for all focusable elements.
*/

:-moz-focusring {
  outline: auto;
}

/*
Remove the additional `:invalid` styles in Firefox. (https://github.com/mozilla/gecko-dev/blob/2f9eacd9d3d995c937b4251a5557d95d494c9be1/layout/style/res/forms.css#L728-L737)
*/

:-moz-ui-invalid {
  box-shadow: none;
}

/*
Add the correct vertical alignment in Chrome and Firefox.
*/

progress {
  vertical-align: baseline;
}

/*
Correct the cursor style of increment and decrement buttons in Safari.
*/

::-webkit-inner-spin-button,
::-webkit-outer-spin-button {
  height: auto;
}

/*
1. Correct the odd appearance in Chrome and Safari.
2. Correct the outline style in Safari.
*/

[type='search'] {
  -webkit-appearance: textfield; /* 1 */
  outline-offset: -2px; /* 2 */
}

/*
Remove the inner padding in Chrome and Safari on macOS.
*/

::-webkit-search-decoration {
  -webkit-appearance: none;
}

/*
1. Correct the inability to style clickable types in iOS and Safari.
2. Change font properties to `inherit` in Safari.
*/

::-webkit-file-upload-button {
  -webkit-appearance: button; /* 1 */
  font: inherit; /* 2 */
}

/*
Add the correct display in Chrome and Safari.
*/

summary {
  display: list-item;
}

/*
Removes the default spacing and border for appropriate elements.
*/

blockquote,
dl,
dd,
h1,
h2,
h3,
h4,
h5,
h6,
hr,
figure,
p,
pre {
  margin: 0;
}

fieldset {
  margin: 0;
  padding: 0;
}

legend {
  padding: 0;
}

ol,
ul,
menu {
  list-style: none;
  margin: 0;
  padding: 0;
}

/*
Reset default styling for dialogs.
*/
dialog {
  padding: 0;
}

/*
Prevent resizing textareas horizontally by default.
*/

textarea {
  resize: vertical;
}

/*
1. Reset the default placeholder opacity in Firefox. (https://github.com/tailwindlabs/tailwindcss/issues/3300)
2. Set the default placeholder color to the user's configured gray 400 color.
*/

input::-moz-placeholder, textarea::-moz-placeholder {
  opacity: 1; /* 1 */
  color: #9ca3af; /* 2 */
}

input::placeholder,
textarea::placeholder {
  opacity: 1; /* 1 */
  color: #9ca3af; /* 2 */
}

/*
Set the default cursor for buttons.
*/

button,
[role="button"] {
  cursor: pointer;
}

/*
Make sure disabled buttons don't get the pointer cursor.
*/
:disabled {
  cursor: default;
}

/*
1. Make replaced elements `display: block` by default. (https://github.com/mozdevs/cssremedy/issues/14)
2. Add `vertical-align: middle` to align replaced elements more sensibly by default. (https://github.com/jensimmons/cssremedy/issues/14#issuecomment-634934210)
   This can trigger a poorly considered lint error in some tools but is included by design.
*/

img,
svg,
video,
canvas,
audio,
iframe,
embed,
object {
  display: block; /* 1 */
  vertical-align: middle; /* 2 */
}

/*
Constrain images and videos to the parent width and preserve their intrinsic aspect ratio. (https://github.com/mozdevs/cssremedy/issues/14)
*/

img,
video {
  max-width: 100%;
  height: auto;
}

/* Make elements with the HTML hidden attribute stay hidden by default */
[hidden] {
  display: none;
}
}

@layer tailwind-utilities
{
  .visible{
    visibility: visible;
  }
  .collapse{
    visibility: collapse;
  }
  .fixed{
    position: fixed;
  }
  .absolute{
    position: absolute;
  }
  .relative{
    position: relative;
  }
  .sticky{
    position: sticky;
  }
  .inset-0{
    inset: 0px;
  }
  .-left-\[19px\]{
    left: -19px;
  }
  .bottom-1{
    bottom: 0.25rem;
  }
  .left-\[7px\]{
    left: 7px;
  }
  .right-0{
    right: 0px;
  }
  .top-0{
    top: 0px;
  }
  .top-1{
    top: 0.25rem;
  }
  .z-10{
    z-index: 10;
  }
  .z-50{
    z-index: 50;
  }
  .z-\[1000\]{
    z-index: 1000;
  }
  .col-span-12{
    grid-column: span 12 / span 12;
  }
  .row-span-12{
    grid-row: span 12 / span 12;
  }
  .m-0{
    margin: 0px;
  }
  .my-0{
    margin-top: 0px;
    margin-bottom: 0px;
  }
  .my-2{
    margin-top: 0.5rem;
    margin-bottom: 0.5rem;
  }
  .my-4{
    margin-top: 1rem;
    margin-bottom: 1rem;
  }
  .-mb-px{
    margin-bottom: -1px;
  }
  .-mt-2{
    margin-top: -0.5rem;
  }
  .mb-0{
    margin-bottom: 0px;
  }
  .mb-1{
    margin-bottom: 0.25rem;
  }
  .mb-1\.5{
    margin-bottom: 0.375rem;
  }
  .mb-16{
    margin-bottom: 4rem;
  }
  .mb-2{
    margin-bottom: 0.5rem;
  }
  .mb-3{
    margin-bottom: 0.75rem;
  }
  .mb-3\.5{
    margin-bottom: 0.875rem;
  }
  .mb-4{
    margin-bottom: 1rem;
  }
  .mb-5{
    margin-bottom: 1.25rem;
  }
  .mb-6{
    margin-bottom: 1.5rem;
  }
  .mb-7{
    margin-bottom: 1.75rem;
  }
  .mb-9{
    margin-bottom: 2.25rem;
  }
  .ml-0{
    margin-left: 0px;
  }
  .ml-1{
    margin-left: 0.25rem;
  }
  .ml-4{
    margin-left: 1rem;
  }
  .ml-auto{
    margin-left: auto;
  }
  .mr-1{
    margin-right: 0.25rem;
  }
  .mr-2{
    margin-right: 0.5rem;
  }
  .mt-0{
    margin-top: 0px;
  }
  .mt-0\.5{
    margin-top: 0.125rem;
  }
  .mt-1{
    margin-top: 0.25rem;
  }
  .mt-1\.5{
    margin-top: 0.375rem;
  }
  .mt-12{
    margin-top: 3rem;
  }
  .mt-2{
    margin-top: 0.5rem;
  }
  .mt-3{
    margin-top: 0.75rem;
  }
  .mt-8{
    margin-top: 2rem;
  }
  .mt-auto{
    margin-top: auto;
  }
  .block{
    display: block;
  }
  .inline{
    display: inline;
  }
  .flex{
    display: flex;
  }
  .inline-flex{
    display: inline-flex;
  }
  .table{
    display: table;
  }
  .grid{
    display: grid;
  }
  .hidden{
    display: none;
  }
  .aspect-\[22\.86\/24\.57\]{
    aspect-ratio: 22.86/24.57;
  }
  .\!h-8{
    height: 2rem !important;
  }
  .h-2{
    height: 0.5rem;
  }
  .h-3{
    height: 0.75rem;
  }
  .h-3\.5{
    height: 0.875rem;
  }
  .h-\[calc\(100vh-15rem\)\]{
    height: calc(100vh - 15rem);
  }
  .h-\[calc\(100vh-18rem\)\]{
    height: calc(100vh - 18rem);
  }
  .h-\[calc\(100vh-2rem\)\]{
    height: calc(100vh - 2rem);
  }
  .h-full{
    height: 100%;
  }
  .h-screen{
    height: 100vh;
  }
  .max-h-60{
    max-height: 15rem;
  }
  .max-h-80{
    max-height: 20rem;
  }
  .max-h-\[340px\]{
    max-height: 340px;
  }
  .max-h-\[calc\(90vh-30rem\)\]{
    max-height: calc(90vh - 30rem);
  }
  .min-h-0{
    min-height: 0px;
  }
  .min-h-10{
    min-height: 2.5rem;
  }
  .\!w-48{
    width: 12rem !important;
  }
  .\!w-8{
    width: 2rem !important;
  }
  .w-0\.5{
    width: 0.125rem;
  }
  .w-10{
    width: 2.5rem;
  }
  .w-2{
    width: 0.5rem;
  }
  .w-20{
    width: 5rem;
  }
  .w-24{
    width: 6rem;
  }
  .w-28{
    width: 7rem;
  }
  .w-3{
    width: 0.75rem;
  }
  .w-3\.5{
    width: 0.875rem;
  }
  .w-32{
    width: 8rem;
  }
  .w-4{
    width: 1rem;
  }
  .w-40{
    width: 10rem;
  }
  .w-56{
    width: 14rem;
  }
  .w-6\/12{
    width: 50%;
  }
  .w-60{
    width: 15rem;
  }
  .w-64{
    width: 16rem;
  }
  .w-72{
    width: 18rem;
  }
  .w-80{
    width: 20rem;
  }
  .w-96{
    width: 24rem;
  }
  .w-\[25rem\]{
    width: 25rem;
  }
  .w-\[28rem\]{
    width: 28rem;
  }
  .w-full{
    width: 100%;
  }
  .min-w-0{
    min-width: 0px;
  }
  .min-w-\[150px\]{
    min-width: 150px;
  }
  .min-w-\[190px\]{
    min-width: 190px;
  }
  .max-w-\[32rem\]{
    max-width: 32rem;
  }
  .max-w-\[34rem\]{
    max-width: 34rem;
  }
  .flex-1{
    flex: 1 1 0%;
  }
  .flex-auto{
    flex: 1 1 auto;
  }
  .flex-shrink{
    flex-shrink: 1;
  }
  .flex-shrink-0{
    flex-shrink: 0;
  }
  .shrink-0{
    flex-shrink: 0;
  }
  .border-collapse{
    border-collapse: collapse;
  }
  .-translate-y-1\/2{
    --tw-translate-y: -50%;
    transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
  }
  .translate-x-1\/2{
    --tw-translate-x: 50%;
    transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
  }
  .rotate-90{
    --tw-rotate: 90deg;
    transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
  }
  .transform{
    transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
  }
  @keyframes fadeinright{

    0%{
      opacity: 0;
      transform: translateX(100%);
      transition: transform 0.12s cubic-bezier(0, 0, 0.2, 1), opacity 0.12s cubic-bezier(0, 0, 0.2, 1);
    }

    100%{
      opacity: 1;
      transform: translateX(0%);
    }
  }
  .animate-fadeinright{
    animation: fadeinright 0.15s linear;
  }
  @keyframes fadeoutright{

    0%{
      opacity: 1;
      transform: translateX(0%);
      transition: transform 0.12s cubic-bezier(0, 0, 0.2, 1), opacity 0.12s cubic-bezier(0, 0, 0.2, 1);
    }

    100%{
      opacity: 0;
      transform: translateX(100%);
    }
  }
  .animate-fadeoutright{
    animation: fadeoutright 0.15s linear;
  }
  @keyframes slidedown{

    0%{
      max-height: 0;
    }

    100%{
      max-height: auto;
    }
  }
  .animate-slidedown{
    animation: slidedown 0.45s ease-in-out;
  }
  @keyframes slideup{

    0%{
      max-height: 1000px;
    }

    100%{
      max-height: 0;
    }
  }
  .animate-slideup{
    animation: slideup 0.45s cubic-bezier(0, 1, 0, 1);
  }
  .cursor-help{
    cursor: help;
  }
  .cursor-not-allowed{
    cursor: not-allowed;
  }
  .cursor-pointer{
    cursor: pointer;
  }
  .select-none{
    -webkit-user-select: none;
       -moz-user-select: none;
            user-select: none;
  }
  .resize{
    resize: both;
  }
  .list-disc{
    list-style-type: disc;
  }
  .list-none{
    list-style-type: none;
  }
  .grid-cols-1{
    grid-template-columns: repeat(1, minmax(0, 1fr));
  }
  .grid-cols-12{
    grid-template-columns: repeat(12, minmax(0, 1fr));
  }
  .grid-cols-2{
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .grid-cols-4{
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
  .flex-col{
    flex-direction: column;
  }
  .flex-wrap{
    flex-wrap: wrap;
  }
  .items-start{
    align-items: flex-start;
  }
  .items-end{
    align-items: flex-end;
  }
  .items-center{
    align-items: center;
  }
  .items-baseline{
    align-items: baseline;
  }
  .justify-start{
    justify-content: flex-start;
  }
  .justify-end{
    justify-content: flex-end;
  }
  .justify-center{
    justify-content: center;
  }
  .justify-between{
    justify-content: space-between;
  }
  .gap-0{
    gap: 0px;
  }
  .gap-1{
    gap: 0.25rem;
  }
  .gap-1\.5{
    gap: 0.375rem;
  }
  .gap-12{
    gap: 3rem;
  }
  .gap-2{
    gap: 0.5rem;
  }
  .gap-2\.5{
    gap: 0.625rem;
  }
  .gap-24{
    gap: 6rem;
  }
  .gap-3{
    gap: 0.75rem;
  }
  .gap-4{
    gap: 1rem;
  }
  .gap-5{
    gap: 1.25rem;
  }
  .gap-6{
    gap: 1.5rem;
  }
  .gap-7{
    gap: 1.75rem;
  }
  .gap-x-6{
    -moz-column-gap: 1.5rem;
         column-gap: 1.5rem;
  }
  .gap-y-3{
    row-gap: 0.75rem;
  }
  .space-y-1 > :not([hidden]) ~ :not([hidden]){
    --tw-space-y-reverse: 0;
    margin-top: calc(0.25rem * calc(1 - var(--tw-space-y-reverse)));
    margin-bottom: calc(0.25rem * var(--tw-space-y-reverse));
  }
  .self-start{
    align-self: flex-start;
  }
  .overflow-auto{
    overflow: auto;
  }
  .overflow-hidden{
    overflow: hidden;
  }
  .overflow-y-auto{
    overflow-y: auto;
  }
  .overflow-y-hidden{
    overflow-y: hidden;
  }
  .truncate{
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }
  .text-ellipsis{
    text-overflow: ellipsis;
  }
  .whitespace-normal{
    white-space: normal;
  }
  .whitespace-nowrap{
    white-space: nowrap;
  }
  .whitespace-pre-line{
    white-space: pre-line;
  }
  .break-normal{
    overflow-wrap: normal;
    word-break: normal;
  }
  .rounded{
    border-radius: 0.25rem;
  }
  .rounded-full{
    border-radius: 9999px;
  }
  .rounded-lg{
    border-radius: 0.5rem;
  }
  .rounded-sm{
    border-radius: 0.125rem;
  }
  .rounded-xl{
    border-radius: 0.75rem;
  }
  .border{
    border-width: 1px;
  }
  .border-0{
    border-width: 0px;
  }
  .border-2{
    border-width: 2px;
  }
  .border-x-0{
    border-left-width: 0px;
    border-right-width: 0px;
  }
  .border-y{
    border-top-width: 1px;
    border-bottom-width: 1px;
  }
  .border-b{
    border-bottom-width: 1px;
  }
  .border-b-2{
    border-bottom-width: 2px;
  }
  .border-l-2{
    border-left-width: 2px;
  }
  .border-t{
    border-top-width: 1px;
  }
  .border-solid{
    border-style: solid;
  }
  .\!border-surface-400{
    --tw-border-opacity: 1 !important;
    border-color: color-mix(in srgb, var(--p-surface-400) calc(100% * var(--tw-border-opacity)), transparent) !important;
  }
  .\!border-yellow-500{
    --tw-border-opacity: 1 !important;
    border-color: rgb(234 179 8 / var(--tw-border-opacity)) !important;
  }
  .border-\[\#e2e8f0\]{
    --tw-border-opacity: 1;
    border-color: rgb(226 232 240 / var(--tw-border-opacity));
  }
  .border-amber-200{
    --tw-border-opacity: 1;
    border-color: rgb(253 230 138 / var(--tw-border-opacity));
  }
  .border-green-200{
    --tw-border-opacity: 1;
    border-color: rgb(187 247 208 / var(--tw-border-opacity));
  }
  .border-green-300{
    --tw-border-opacity: 1;
    border-color: rgb(134 239 172 / var(--tw-border-opacity));
  }
  .border-primary{
    --tw-border-opacity: 1;
    border-color: color-mix(in srgb, var(--p-primary-color) calc(100% * var(--tw-border-opacity)), transparent);
  }
  .border-red-300{
    --tw-border-opacity: 1;
    border-color: rgb(252 165 165 / var(--tw-border-opacity));
  }
  .border-slate-100{
    --tw-border-opacity: 1;
    border-color: rgb(241 245 249 / var(--tw-border-opacity));
  }
  .border-surface-200{
    --tw-border-opacity: 1;
    border-color: color-mix(in srgb, var(--p-surface-200) calc(100% * var(--tw-border-opacity)), transparent);
  }
  .border-surface-300{
    --tw-border-opacity: 1;
    border-color: color-mix(in srgb, var(--p-surface-300) calc(100% * var(--tw-border-opacity)), transparent);
  }
  .border-transparent{
    border-color: transparent;
  }
  .border-white{
    --tw-border-opacity: 1;
    border-color: rgb(255 255 255 / var(--tw-border-opacity));
  }
  .border-l-green-500{
    --tw-border-opacity: 1;
    border-left-color: rgb(34 197 94 / var(--tw-border-opacity));
  }
  .border-l-orange-500{
    --tw-border-opacity: 1;
    border-left-color: rgb(249 115 22 / var(--tw-border-opacity));
  }
  .border-l-surface-300{
    --tw-border-opacity: 1;
    border-left-color: color-mix(in srgb, var(--p-surface-300) calc(100% * var(--tw-border-opacity)), transparent);
  }
  .border-l-surface-400{
    --tw-border-opacity: 1;
    border-left-color: color-mix(in srgb, var(--p-surface-400) calc(100% * var(--tw-border-opacity)), transparent);
  }
  .bg-\[\#fafbfc\]{
    --tw-bg-opacity: 1;
    background-color: rgb(250 251 252 / var(--tw-bg-opacity));
  }
  .bg-amber-50{
    --tw-bg-opacity: 1;
    background-color: rgb(255 251 235 / var(--tw-bg-opacity));
  }
  .bg-amber-500{
    --tw-bg-opacity: 1;
    background-color: rgb(245 158 11 / var(--tw-bg-opacity));
  }
  .bg-green-50{
    --tw-bg-opacity: 1;
    background-color: rgb(240 253 244 / var(--tw-bg-opacity));
  }
  .bg-green-500{
    --tw-bg-opacity: 1;
    background-color: rgb(34 197 94 / var(--tw-bg-opacity));
  }
  .bg-primary\/5{
    background-color: color-mix(in srgb, var(--p-primary-color) calc(100% * 0.05), transparent);
  }
  .bg-red-50{
    --tw-bg-opacity: 1;
    background-color: rgb(254 242 242 / var(--tw-bg-opacity));
  }
  .bg-red-500{
    --tw-bg-opacity: 1;
    background-color: rgb(239 68 68 / var(--tw-bg-opacity));
  }
  .bg-slate-300{
    --tw-bg-opacity: 1;
    background-color: rgb(203 213 225 / var(--tw-bg-opacity));
  }
  .bg-slate-50{
    --tw-bg-opacity: 1;
    background-color: rgb(248 250 252 / var(--tw-bg-opacity));
  }
  .bg-slate-500{
    --tw-bg-opacity: 1;
    background-color: rgb(100 116 139 / var(--tw-bg-opacity));
  }
  .bg-slate-700{
    --tw-bg-opacity: 1;
    background-color: rgb(51 65 85 / var(--tw-bg-opacity));
  }
  .bg-surface-0{
    --tw-bg-opacity: 1;
    background-color: color-mix(in srgb, var(--p-surface-0) calc(100% * var(--tw-bg-opacity)), transparent);
  }
  .bg-surface-100{
    --tw-bg-opacity: 1;
    background-color: color-mix(in srgb, var(--p-surface-100) calc(100% * var(--tw-bg-opacity)), transparent);
  }
  .bg-surface-200{
    --tw-bg-opacity: 1;
    background-color: color-mix(in srgb, var(--p-surface-200) calc(100% * var(--tw-bg-opacity)), transparent);
  }
  .bg-surface-400{
    --tw-bg-opacity: 1;
    background-color: color-mix(in srgb, var(--p-surface-400) calc(100% * var(--tw-bg-opacity)), transparent);
  }
  .bg-surface-50{
    --tw-bg-opacity: 1;
    background-color: color-mix(in srgb, var(--p-surface-50) calc(100% * var(--tw-bg-opacity)), transparent);
  }
  .bg-white{
    --tw-bg-opacity: 1;
    background-color: rgb(255 255 255 / var(--tw-bg-opacity));
  }
  .\!bg-opacity-20{
    --tw-bg-opacity: 0.2 !important;
  }
  .object-contain{
    -o-object-fit: contain;
       object-fit: contain;
  }
  .object-cover{
    -o-object-fit: cover;
       object-fit: cover;
  }
  .\!p-0{
    padding: 0px !important;
  }
  .\!p-1{
    padding: 0.25rem !important;
  }
  .p-0{
    padding: 0px;
  }
  .p-2{
    padding: 0.5rem;
  }
  .p-3{
    padding: 0.75rem;
  }
  .p-4{
    padding: 1rem;
  }
  .p-5{
    padding: 1.25rem;
  }
  .p-6{
    padding: 1.5rem;
  }
  .\!px-2{
    padding-left: 0.5rem !important;
    padding-right: 0.5rem !important;
  }
  .\!py-0\.5{
    padding-top: 0.125rem !important;
    padding-bottom: 0.125rem !important;
  }
  .px-0{
    padding-left: 0px;
    padding-right: 0px;
  }
  .px-1{
    padding-left: 0.25rem;
    padding-right: 0.25rem;
  }
  .px-2{
    padding-left: 0.5rem;
    padding-right: 0.5rem;
  }
  .px-3{
    padding-left: 0.75rem;
    padding-right: 0.75rem;
  }
  .px-4{
    padding-left: 1rem;
    padding-right: 1rem;
  }
  .px-5{
    padding-left: 1.25rem;
    padding-right: 1.25rem;
  }
  .px-6{
    padding-left: 1.5rem;
    padding-right: 1.5rem;
  }
  .px-8{
    padding-left: 2rem;
    padding-right: 2rem;
  }
  .px-\[22px\]{
    padding-left: 22px;
    padding-right: 22px;
  }
  .py-0{
    padding-top: 0px;
    padding-bottom: 0px;
  }
  .py-0\.5{
    padding-top: 0.125rem;
    padding-bottom: 0.125rem;
  }
  .py-1{
    padding-top: 0.25rem;
    padding-bottom: 0.25rem;
  }
  .py-1\.5{
    padding-top: 0.375rem;
    padding-bottom: 0.375rem;
  }
  .py-10{
    padding-top: 2.5rem;
    padding-bottom: 2.5rem;
  }
  .py-12{
    padding-top: 3rem;
    padding-bottom: 3rem;
  }
  .py-14{
    padding-top: 3.5rem;
    padding-bottom: 3.5rem;
  }
  .py-16{
    padding-top: 4rem;
    padding-bottom: 4rem;
  }
  .py-2{
    padding-top: 0.5rem;
    padding-bottom: 0.5rem;
  }
  .py-3{
    padding-top: 0.75rem;
    padding-bottom: 0.75rem;
  }
  .py-4{
    padding-top: 1rem;
    padding-bottom: 1rem;
  }
  .py-5{
    padding-top: 1.25rem;
    padding-bottom: 1.25rem;
  }
  .py-6{
    padding-top: 1.5rem;
    padding-bottom: 1.5rem;
  }
  .py-8{
    padding-top: 2rem;
    padding-bottom: 2rem;
  }
  .py-\[18px\]{
    padding-top: 18px;
    padding-bottom: 18px;
  }
  .pb-12{
    padding-bottom: 3rem;
  }
  .pb-2{
    padding-bottom: 0.5rem;
  }
  .pb-4{
    padding-bottom: 1rem;
  }
  .pb-8{
    padding-bottom: 2rem;
  }
  .pl-4{
    padding-left: 1rem;
  }
  .pl-5{
    padding-left: 1.25rem;
  }
  .pl-6{
    padding-left: 1.5rem;
  }
  .pr-0{
    padding-right: 0px;
  }
  .pr-2{
    padding-right: 0.5rem;
  }
  .pr-4{
    padding-right: 1rem;
  }
  .pt-1{
    padding-top: 0.25rem;
  }
  .pt-2{
    padding-top: 0.5rem;
  }
  .pt-3{
    padding-top: 0.75rem;
  }
  .pt-4{
    padding-top: 1rem;
  }
  .pt-5{
    padding-top: 1.25rem;
  }
  .text-left{
    text-align: left;
  }
  .text-center{
    text-align: center;
  }
  .text-right{
    text-align: right;
  }
  .align-top{
    vertical-align: top;
  }
  .align-middle{
    vertical-align: middle;
  }
  .\!text-\[0\.65rem\]{
    font-size: 0.65rem !important;
  }
  .\!text-\[0\.7rem\]{
    font-size: 0.7rem !important;
  }
  .\!text-xs{
    font-size: 0.75rem !important;
    line-height: 1rem !important;
  }
  .text-2xl{
    font-size: 1.5rem;
    line-height: 2rem;
  }
  .text-3xl{
    font-size: 1.875rem;
    line-height: 2.25rem;
  }
  .text-4xl{
    font-size: 2.25rem;
    line-height: 2.5rem;
  }
  .text-\[10px\]{
    font-size: 10px;
  }
  .text-\[11px\]{
    font-size: 11px;
  }
  .text-\[9\.5px\]{
    font-size: 9.5px;
  }
  .text-\[9px\]{
    font-size: 9px;
  }
  .text-base{
    font-size: 1rem;
    line-height: 1.5rem;
  }
  .text-lg{
    font-size: 1.125rem;
    line-height: 1.75rem;
  }
  .text-sm{
    font-size: 0.875rem;
    line-height: 1.25rem;
  }
  .text-xl{
    font-size: 1.25rem;
    line-height: 1.75rem;
  }
  .text-xs{
    font-size: 0.75rem;
    line-height: 1rem;
  }
  .font-bold{
    font-weight: 700;
  }
  .font-extrabold{
    font-weight: 800;
  }
  .font-medium{
    font-weight: 500;
  }
  .font-normal{
    font-weight: 400;
  }
  .font-semibold{
    font-weight: 600;
  }
  .uppercase{
    text-transform: uppercase;
  }
  .normal-case{
    text-transform: none;
  }
  .italic{
    font-style: italic;
  }
  .tabular-nums{
    --tw-numeric-spacing: tabular-nums;
    font-variant-numeric: var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction);
  }
  .leading-\[normal\]{
    line-height: normal;
  }
  .leading-none{
    line-height: 1;
  }
  .leading-relaxed{
    line-height: 1.625;
  }
  .leading-tight{
    line-height: 1.25;
  }
  .tracking-\[0\.2px\]{
    letter-spacing: 0.2px;
  }
  .tracking-\[1\.2px\]{
    letter-spacing: 1.2px;
  }
  .tracking-normal{
    letter-spacing: 0em;
  }
  .tracking-wide{
    letter-spacing: 0.025em;
  }
  .text-\[\#64748b\]{
    --tw-text-opacity: 1;
    color: rgb(100 116 139 / var(--tw-text-opacity));
  }
  .text-amber-600{
    --tw-text-opacity: 1;
    color: rgb(217 119 6 / var(--tw-text-opacity));
  }
  .text-amber-700{
    --tw-text-opacity: 1;
    color: rgb(180 83 9 / var(--tw-text-opacity));
  }
  .text-gray-500{
    --tw-text-opacity: 1;
    color: rgb(107 114 128 / var(--tw-text-opacity));
  }
  .text-gray-600{
    --tw-text-opacity: 1;
    color: rgb(75 85 99 / var(--tw-text-opacity));
  }
  .text-green-600{
    --tw-text-opacity: 1;
    color: rgb(22 163 74 / var(--tw-text-opacity));
  }
  .text-green-700{
    --tw-text-opacity: 1;
    color: rgb(21 128 61 / var(--tw-text-opacity));
  }
  .text-primary{
    --tw-text-opacity: 1;
    color: color-mix(in srgb, var(--p-primary-color) calc(100% * var(--tw-text-opacity)), transparent);
  }
  .text-red-500{
    --tw-text-opacity: 1;
    color: rgb(239 68 68 / var(--tw-text-opacity));
  }
  .text-red-600{
    --tw-text-opacity: 1;
    color: rgb(220 38 38 / var(--tw-text-opacity));
  }
  .text-red-700{
    --tw-text-opacity: 1;
    color: rgb(185 28 28 / var(--tw-text-opacity));
  }
  .text-slate-500{
    --tw-text-opacity: 1;
    color: rgb(100 116 139 / var(--tw-text-opacity));
  }
  .text-slate-600{
    --tw-text-opacity: 1;
    color: rgb(71 85 105 / var(--tw-text-opacity));
  }
  .text-slate-700{
    --tw-text-opacity: 1;
    color: rgb(51 65 85 / var(--tw-text-opacity));
  }
  .text-slate-800{
    --tw-text-opacity: 1;
    color: rgb(30 41 59 / var(--tw-text-opacity));
  }
  .text-slate-900{
    --tw-text-opacity: 1;
    color: rgb(15 23 42 / var(--tw-text-opacity));
  }
  .text-surface-300{
    --tw-text-opacity: 1;
    color: color-mix(in srgb, var(--p-surface-300) calc(100% * var(--tw-text-opacity)), transparent);
  }
  .text-surface-400{
    --tw-text-opacity: 1;
    color: color-mix(in srgb, var(--p-surface-400) calc(100% * var(--tw-text-opacity)), transparent);
  }
  .text-surface-500{
    --tw-text-opacity: 1;
    color: color-mix(in srgb, var(--p-surface-500) calc(100% * var(--tw-text-opacity)), transparent);
  }
  .text-surface-600{
    --tw-text-opacity: 1;
    color: color-mix(in srgb, var(--p-surface-600) calc(100% * var(--tw-text-opacity)), transparent);
  }
  .text-surface-700{
    --tw-text-opacity: 1;
    color: color-mix(in srgb, var(--p-surface-700) calc(100% * var(--tw-text-opacity)), transparent);
  }
  .text-surface-800{
    --tw-text-opacity: 1;
    color: color-mix(in srgb, var(--p-surface-800) calc(100% * var(--tw-text-opacity)), transparent);
  }
  .text-surface-900{
    --tw-text-opacity: 1;
    color: color-mix(in srgb, var(--p-surface-900) calc(100% * var(--tw-text-opacity)), transparent);
  }
  .text-white\/40{
    color: rgb(255 255 255 / 0.4);
  }
  .text-yellow-600{
    --tw-text-opacity: 1;
    color: rgb(202 138 4 / var(--tw-text-opacity));
  }
  .underline{
    text-decoration-line: underline;
  }
  .line-through{
    text-decoration-line: line-through;
  }
  .opacity-50{
    opacity: 0.5;
  }
  .opacity-60{
    opacity: 0.6;
  }
  .opacity-70{
    opacity: 0.7;
  }
  .opacity-80{
    opacity: 0.8;
  }
  .shadow{
    --tw-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);
    --tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);
    box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
  }
  .shadow-sm{
    --tw-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);
    --tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);
    box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
  }
  .outline{
    outline-style: solid;
  }
  .filter{
    filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
  }
  .backdrop-blur-\[65px\]{
    --tw-backdrop-blur: blur(65px);
    -webkit-backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
    backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
  }
  .transition{
    transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter;
    transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;
    transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-backdrop-filter;
    transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
    transition-duration: 150ms;
  }
  .transition-all{
    transition-property: all;
    transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
    transition-duration: 150ms;
  }
  .transition-colors{
    transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;
    transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
    transition-duration: 150ms;
  }
  .transition-transform{
    transition-property: transform;
    transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
    transition-duration: 150ms;
  }
  .duration-150{
    transition-duration: 150ms;
  }
  .duration-200{
    transition-duration: 200ms;
  }
  .duration-300{
    transition-duration: 300ms;
  }
  .duration-\[400ms\]{
    transition-duration: 400ms;
  }
  .ease-in-out{
    transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  }
  .ease-out{
    transition-timing-function: cubic-bezier(0, 0, 0.2, 1);
  }
  .animate-duration-150{
    animation-duration: 150ms;
  }
  .animate-ease-in-out{
    animation-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  }
  .rounded-border{
    border-radius: var(--p-content-border-radius);
  }
  .text-color{
    color: var(--p-text-color);
  }
}

/*
:root
{
  --p-button-border-radius: var(--p-form-field-border-radius);
  --p-button-rounded-border-radius: 2rem;
  --p-button-gap: 0.5rem;
  --p-button-padding-x: var(--p-form-field-padding-x);
  --p-button-padding-y: var(--p-form-field-padding-y);
  --p-button-icon-only-width: 2.5rem;
  --p-button-sm-font-size: 0.875rem;
  --p-button-sm-padding-x: 0.625rem;
  --p-button-sm-padding-y: 0.375rem;
  --p-button-lg-font-size: 1.125rem;
  --p-button-lg-padding-x: 0.875rem;
  --p-button-lg-padding-y: 0.625rem;
  --p-button-label-font-weight: 500;
  --p-button-raised-shadow: 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12);
  --p-button-focus-ring-width: var(--p-focus-ring-width);
  --p-button-focus-ring-style: var(--p-focus-ring-style);
  --p-button-focus-ring-offset: var(--p-focus-ring-offset);
  --p-button-badge-size: 1rem;
  --p-button-transition-duration: var(--p-form-field-transition-duration);
  --p-button-primary-background: var(--p-primary-color);
  --p-button-primary-hover-background: var(--p-primary-hover-color);
  --p-button-primary-active-background: var(--p-primary-active-color);
  --p-button-primary-border-color: var(--p-primary-color);
  --p-button-primary-hover-border-color: var(--p-primary-hover-color);
  --p-button-primary-active-border-color: var(--p-primary-active-color);
  --p-button-primary-color: var(--p-primary-contrast-color);
  --p-button-primary-hover-color: var(--p-primary-contrast-color);
  --p-button-primary-active-color: var(--p-primary-contrast-color);
  --p-button-primary-focus-ring-color: var(--p-primary-color);
  --p-button-primary-focus-ring-shadow: none;
  --p-button-secondary-background: var(--p-surface-100);
  --p-button-secondary-hover-background: var(--p-surface-200);
  --p-button-secondary-active-background: var(--p-surface-300);
  --p-button-secondary-border-color: var(--p-surface-100);
  --p-button-secondary-hover-border-color: var(--p-surface-200);
  --p-button-secondary-active-border-color: var(--p-surface-300);
  --p-button-secondary-color: var(--p-surface-600);
  --p-button-secondary-hover-color: var(--p-surface-700);
  --p-button-secondary-active-color: var(--p-surface-800);
  --p-button-secondary-focus-ring-color: var(--p-surface-600);
  --p-button-secondary-focus-ring-shadow: none;
  --p-button-info-background: var(--p-sky-500);
  --p-button-info-hover-background: var(--p-sky-600);
  --p-button-info-active-background: var(--p-sky-700);
  --p-button-info-border-color: var(--p-sky-500);
  --p-button-info-hover-border-color: var(--p-sky-600);
  --p-button-info-active-border-color: var(--p-sky-700);
  --p-button-info-color: #ffffff;
  --p-button-info-hover-color: #ffffff;
  --p-button-info-active-color: #ffffff;
  --p-button-info-focus-ring-color: var(--p-sky-500);
  --p-button-info-focus-ring-shadow: none;
  --p-button-success-background: var(--p-green-500);
  --p-button-success-hover-background: var(--p-green-600);
  --p-button-success-active-background: var(--p-green-700);
  --p-button-success-border-color: var(--p-green-500);
  --p-button-success-hover-border-color: var(--p-green-600);
  --p-button-success-active-border-color: var(--p-green-700);
  --p-button-success-color: #ffffff;
  --p-button-success-hover-color: #ffffff;
  --p-button-success-active-color: #ffffff;
  --p-button-success-focus-ring-color: var(--p-green-500);
  --p-button-success-focus-ring-shadow: none;
  --p-button-warn-background: var(--p-orange-500);
  --p-button-warn-hover-background: var(--p-orange-600);
  --p-button-warn-active-background: var(--p-orange-700);
  --p-button-warn-border-color: var(--p-orange-500);
  --p-button-warn-hover-border-color: var(--p-orange-600);
  --p-button-warn-active-border-color: var(--p-orange-700);
  --p-button-warn-color: #ffffff;
  --p-button-warn-hover-color: #ffffff;
  --p-button-warn-active-color: #ffffff;
  --p-button-warn-focus-ring-color: var(--p-orange-500);
  --p-button-warn-focus-ring-shadow: none;
  --p-button-help-background: var(--p-purple-500);
  --p-button-help-hover-background: var(--p-purple-600);
  --p-button-help-active-background: var(--p-purple-700);
  --p-button-help-border-color: var(--p-purple-500);
  --p-button-help-hover-border-color: var(--p-purple-600);
  --p-button-help-active-border-color: var(--p-purple-700);
  --p-button-help-color: #ffffff;
  --p-button-help-hover-color: #ffffff;
  --p-button-help-active-color: #ffffff;
  --p-button-help-focus-ring-color: var(--p-purple-500);
  --p-button-help-focus-ring-shadow: none;
  --p-button-danger-background: var(--p-red-500);
  --p-button-danger-hover-background: var(--p-red-600);
  --p-button-danger-active-background: var(--p-red-700);
  --p-button-danger-border-color: var(--p-red-500);
  --p-button-danger-hover-border-color: var(--p-red-600);
  --p-button-danger-active-border-color: var(--p-red-700);
  --p-button-danger-color: #ffffff;
  --p-button-danger-hover-color: #ffffff;
  --p-button-danger-active-color: #ffffff;
  --p-button-danger-focus-ring-color: var(--p-red-500);
  --p-button-danger-focus-ring-shadow: none;
  --p-button-contrast-background: var(--p-surface-950);
  --p-button-contrast-hover-background: var(--p-surface-900);
  --p-button-contrast-active-background: var(--p-surface-800);
  --p-button-contrast-border-color: var(--p-surface-950);
  --p-button-contrast-hover-border-color: var(--p-surface-900);
  --p-button-contrast-active-border-color: var(--p-surface-800);
  --p-button-contrast-color: var(--p-surface-0);
  --p-button-contrast-hover-color: var(--p-surface-0);
  --p-button-contrast-active-color: var(--p-surface-0);
  --p-button-contrast-focus-ring-color: var(--p-surface-950);
  --p-button-contrast-focus-ring-shadow: none;
  --p-button-outlined-primary-hover-background: var(--p-primary-50);
  --p-button-outlined-primary-active-background: var(--p-primary-100);
  --p-button-outlined-primary-border-color: var(--p-primary-200);
  --p-button-outlined-primary-color: var(--p-primary-color);
  --p-button-outlined-secondary-hover-background: var(--p-surface-50);
  --p-button-outlined-secondary-active-background: var(--p-surface-100);
  --p-button-outlined-secondary-border-color: var(--p-surface-200);
  --p-button-outlined-secondary-color: var(--p-surface-500);
  --p-button-outlined-success-hover-background: var(--p-green-50);
  --p-button-outlined-success-active-background: var(--p-green-100);
  --p-button-outlined-success-border-color: var(--p-green-200);
  --p-button-outlined-success-color: var(--p-green-500);
  --p-button-outlined-info-hover-background: var(--p-sky-50);
  --p-button-outlined-info-active-background: var(--p-sky-100);
  --p-button-outlined-info-border-color: var(--p-sky-200);
  --p-button-outlined-info-color: var(--p-sky-500);
  --p-button-outlined-warn-hover-background: var(--p-orange-50);
  --p-button-outlined-warn-active-background: var(--p-orange-100);
  --p-button-outlined-warn-border-color: var(--p-orange-200);
  --p-button-outlined-warn-color: var(--p-orange-500);
  --p-button-outlined-help-hover-background: var(--p-purple-50);
  --p-button-outlined-help-active-background: var(--p-purple-100);
  --p-button-outlined-help-border-color: var(--p-purple-200);
  --p-button-outlined-help-color: var(--p-purple-500);
  --p-button-outlined-danger-hover-background: var(--p-red-50);
  --p-button-outlined-danger-active-background: var(--p-red-100);
  --p-button-outlined-danger-border-color: var(--p-red-200);
  --p-button-outlined-danger-color: var(--p-red-500);
  --p-button-outlined-contrast-hover-background: var(--p-surface-50);
  --p-button-outlined-contrast-active-background: var(--p-surface-100);
  --p-button-outlined-contrast-border-color: var(--p-surface-700);
  --p-button-outlined-contrast-color: var(--p-surface-950);
  --p-button-outlined-plain-hover-background: var(--p-surface-50);
  --p-button-outlined-plain-active-background: var(--p-surface-100);
  --p-button-outlined-plain-border-color: var(--p-surface-200);
  --p-button-outlined-plain-color: var(--p-surface-700);
  --p-button-text-primary-hover-background: var(--p-primary-50);
  --p-button-text-primary-active-background: var(--p-primary-100);
  --p-button-text-primary-color: var(--p-primary-color);
  --p-button-text-secondary-hover-background: var(--p-surface-50);
  --p-button-text-secondary-active-background: var(--p-surface-100);
  --p-button-text-secondary-color: var(--p-surface-500);
  --p-button-text-success-hover-background: var(--p-green-50);
  --p-button-text-success-active-background: var(--p-green-100);
  --p-button-text-success-color: var(--p-green-500);
  --p-button-text-info-hover-background: var(--p-sky-50);
  --p-button-text-info-active-background: var(--p-sky-100);
  --p-button-text-info-color: var(--p-sky-500);
  --p-button-text-warn-hover-background: var(--p-orange-50);
  --p-button-text-warn-active-background: var(--p-orange-100);
  --p-button-text-warn-color: var(--p-orange-500);
  --p-button-text-help-hover-background: var(--p-purple-50);
  --p-button-text-help-active-background: var(--p-purple-100);
  --p-button-text-help-color: var(--p-purple-500);
  --p-button-text-danger-hover-background: var(--p-red-50);
  --p-button-text-danger-active-background: var(--p-red-100);
  --p-button-text-danger-color: var(--p-red-500);
  --p-button-text-plain-hover-background: var(--p-surface-50);
  --p-button-text-plain-active-background: var(--p-surface-100);
  --p-button-text-plain-color: var(--p-surface-700);
  --p-button-link-color: var(--p-primary-color);
  --p-button-link-hover-color: var(--p-primary-color);
  --p-button-link-active-color: var(--p-primary-color);
}
*/

.hover\:border-primary\/40:hover{
  border-color: color-mix(in srgb, var(--p-primary-color) calc(100% * 0.4), transparent);
}

.hover\:bg-surface-100:hover{
  --tw-bg-opacity: 1;
  background-color: color-mix(in srgb, var(--p-surface-100) calc(100% * var(--tw-bg-opacity)), transparent);
}

.hover\:bg-surface-50:hover{
  --tw-bg-opacity: 1;
  background-color: color-mix(in srgb, var(--p-surface-50) calc(100% * var(--tw-bg-opacity)), transparent);
}

.hover\:text-red-700:hover{
  --tw-text-opacity: 1;
  color: rgb(185 28 28 / var(--tw-text-opacity));
}

.focus-visible\:outline-none:focus-visible{
  outline: 2px solid transparent;
  outline-offset: 2px;
}

.focus-visible\:outline-offset-0:focus-visible{
  outline-offset: 0px;
}

.focus-visible\:ring-1:focus-visible{
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
}

.focus-visible\:ring-inset:focus-visible{
  --tw-ring-inset: inset;
}

.focus-visible\:ring-primary-500:focus-visible{
  --tw-ring-opacity: 1;
  --tw-ring-color: color-mix(in srgb, var(--p-primary-500) calc(100% * var(--tw-ring-opacity)), transparent);
}

@media (min-width: 640px){

  .sm\:inline{
    display: inline;
  }

  .sm\:hidden{
    display: none;
  }

  .sm\:grid-cols-2{
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .sm\:grid-cols-3{
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (min-width: 768px){

  .md\:\!w-96{
    width: 24rem !important;
  }

  .md\:w-40{
    width: 10rem;
  }

  .md\:w-56{
    width: 14rem;
  }

  .md\:w-64{
    width: 16rem;
  }

  .md\:w-\[28rem\]{
    width: 28rem;
  }

  .md\:w-\[34rem\]{
    width: 34rem;
  }

  .md\:w-\[35rem\]{
    width: 35rem;
  }
}

@media (min-width: 1024px){

  .lg\:static{
    position: static;
  }

  .lg\:\!w-\[30rem\]{
    width: 30rem !important;
  }

  .lg\:grid-cols-4{
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}@font-face {
    font-family: 'primeicons';
    font-display: block;
    src: url('/assets/primeicons-DMOk5skT.eot');
    src: url('/assets/primeicons-DMOk5skT.eot?#iefix') format('embedded-opentype'), url('/assets/primeicons-C6QP2o4f.woff2') format('woff2'), url('/assets/primeicons-WjwUDZjB.woff') format('woff'), url('/assets/primeicons-MpK4pl85.ttf') format('truetype'), url('/assets/primeicons-Dr5RGzOO.svg?#primeicons') format('svg');
    font-weight: normal;
    font-style: normal;
}

.pi {
    font-family: 'primeicons';
    speak: none;
    font-style: normal;
    font-weight: normal;
    font-variant: normal;
    text-transform: none;
    line-height: 1;
    display: inline-block;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

.pi:before {
    --webkit-backface-visibility:hidden;
    backface-visibility: hidden;
}

.pi-fw {
    width: 1.28571429em;
    text-align: center;
}

.pi-spin {
    animation: fa-spin 2s infinite linear;
}

@media (prefers-reduced-motion: reduce) {
  .pi-spin {
    animation-delay: -1ms;
    animation-duration: 1ms;
    animation-iteration-count: 1;
    transition-delay: 0s;
    transition-duration: 0s;
  }
}

@keyframes fa-spin {
    0% {
        transform: rotate(0deg);
    }
    100% {
        transform: rotate(359deg);
    }
}

.pi-folder-plus:before {
    content: "\ea05";
}

.pi-receipt:before {
    content: "\ea06";
}

.pi-asterisk:before {
    content: "\ea07";
}

.pi-face-smile:before {
    content: "\ea08";
}

.pi-pinterest:before {
    content: "\ea09";
}

.pi-expand:before {
    content: "\ea0a";
}

.pi-pen-to-square:before {
    content: "\ea0b";
}

.pi-wave-pulse:before {
    content: "\ea0c";
}

.pi-turkish-lira:before {
    content: "\ea0d";
}

.pi-spinner-dotted:before {
    content: "\ea0e";
}

.pi-crown:before {
    content: "\ea0f";
}

.pi-pause-circle:before {
    content: "\ea10";
}

.pi-warehouse:before {
    content: "\ea11";
}

.pi-objects-column:before {
    content: "\ea12";
}

.pi-clipboard:before {
    content: "\ea13";
}

.pi-play-circle:before {
    content: "\ea14";
}

.pi-venus:before {
    content: "\ea15";
}

.pi-cart-minus:before {
    content: "\ea16";
}

.pi-file-plus:before {
    content: "\ea17";
}

.pi-microchip:before {
    content: "\ea18";
}

.pi-twitch:before {
    content: "\ea19";
}

.pi-building-columns:before {
    content: "\ea1a";
}

.pi-file-check:before {
    content: "\ea1b";
}

.pi-microchip-ai:before {
    content: "\ea1c";
}

.pi-trophy:before {
    content: "\ea1d";
}

.pi-barcode:before {
    content: "\ea1e";
}

.pi-file-arrow-up:before {
    content: "\ea1f";
}

.pi-mars:before {
    content: "\ea20";
}

.pi-tiktok:before {
    content: "\ea21";
}

.pi-arrow-up-right-and-arrow-down-left-from-center:before {
    content: "\ea22";
}

.pi-ethereum:before {
    content: "\ea23";
}

.pi-list-check:before {
    content: "\ea24";
}

.pi-thumbtack:before {
    content: "\ea25";
}

.pi-arrow-down-left-and-arrow-up-right-to-center:before {
    content: "\ea26";
}

.pi-equals:before {
    content: "\ea27";
}

.pi-lightbulb:before {
    content: "\ea28";
}

.pi-star-half:before {
    content: "\ea29";
}

.pi-address-book:before {
    content: "\ea2a";
}

.pi-chart-scatter:before {
    content: "\ea2b";
}

.pi-indian-rupee:before {
    content: "\ea2c";
}

.pi-star-half-fill:before {
    content: "\ea2d";
}

.pi-cart-arrow-down:before {
    content: "\ea2e";
}

.pi-calendar-clock:before {
    content: "\ea2f";
}

.pi-sort-up-fill:before {
    content: "\ea30";
}

.pi-sparkles:before {
    content: "\ea31";
}

.pi-bullseye:before {
    content: "\ea32";
}

.pi-sort-down-fill:before {
    content: "\ea33";
}

.pi-graduation-cap:before {
    content: "\ea34";
}

.pi-hammer:before {
    content: "\ea35";
}

.pi-bell-slash:before {
    content: "\ea36";
}

.pi-gauge:before {
    content: "\ea37";
}

.pi-shop:before {
    content: "\ea38";
}

.pi-headphones:before {
    content: "\ea39";
}

.pi-eraser:before {
    content: "\ea04";
}

.pi-stopwatch:before {
    content: "\ea01";
}

.pi-verified:before {
    content: "\ea02";
}

.pi-delete-left:before {
    content: "\ea03";
}

.pi-hourglass:before {
    content: "\e9fe";
}

.pi-truck:before {
    content: "\ea00";
}

.pi-wrench:before {
    content: "\e9ff";
}

.pi-microphone:before {
    content: "\e9fa";
}

.pi-megaphone:before {
    content: "\e9fb";
}

.pi-arrow-right-arrow-left:before {
    content: "\e9fc";
}

.pi-bitcoin:before {
    content: "\e9fd";
}

.pi-file-edit:before {
    content: "\e9f6";
}

.pi-language:before {
    content: "\e9f7";
}

.pi-file-export:before {
    content: "\e9f8";
}

.pi-file-import:before {
    content: "\e9f9";
}

.pi-file-word:before {
    content: "\e9f1";
}

.pi-gift:before {
    content: "\e9f2";
}

.pi-cart-plus:before {
    content: "\e9f3";
}

.pi-thumbs-down-fill:before {
    content: "\e9f4";
}

.pi-thumbs-up-fill:before {
    content: "\e9f5";
}

.pi-arrows-alt:before {
    content: "\e9f0";
}

.pi-calculator:before {
    content: "\e9ef";
}

.pi-sort-alt-slash:before {
    content: "\e9ee";
}

.pi-arrows-h:before {
    content: "\e9ec";
}

.pi-arrows-v:before {
    content: "\e9ed";
}

.pi-pound:before {
    content: "\e9eb";
}

.pi-prime:before {
    content: "\e9ea";
}

.pi-chart-pie:before {
    content: "\e9e9";
}

.pi-reddit:before {
    content: "\e9e8";
}

.pi-code:before {
    content: "\e9e7";
}

.pi-sync:before {
    content: "\e9e6";
}

.pi-shopping-bag:before {
    content: "\e9e5";
}

.pi-server:before {
    content: "\e9e4";
}

.pi-database:before {
    content: "\e9e3";
}

.pi-hashtag:before {
    content: "\e9e2";
}

.pi-bookmark-fill:before {
    content: "\e9df";
}

.pi-filter-fill:before {
    content: "\e9e0";
}

.pi-heart-fill:before {
    content: "\e9e1";
}

.pi-flag-fill:before {
    content: "\e9de";
}

.pi-circle:before {
    content: "\e9dc";
}

.pi-circle-fill:before {
    content: "\e9dd";
}

.pi-bolt:before {
    content: "\e9db";
}

.pi-history:before {
    content: "\e9da";
}

.pi-box:before {
    content: "\e9d9";
}

.pi-at:before {
    content: "\e9d8";
}

.pi-arrow-up-right:before {
    content: "\e9d4";
}

.pi-arrow-up-left:before {
    content: "\e9d5";
}

.pi-arrow-down-left:before {
    content: "\e9d6";
}

.pi-arrow-down-right:before {
    content: "\e9d7";
}

.pi-telegram:before {
    content: "\e9d3";
}

.pi-stop-circle:before {
    content: "\e9d2";
}

.pi-stop:before {
    content: "\e9d1";
}

.pi-whatsapp:before {
    content: "\e9d0";
}

.pi-building:before {
    content: "\e9cf";
}

.pi-qrcode:before {
    content: "\e9ce";
}

.pi-car:before {
    content: "\e9cd";
}

.pi-instagram:before {
    content: "\e9cc";
}

.pi-linkedin:before {
    content: "\e9cb";
}

.pi-send:before {
    content: "\e9ca";
}

.pi-slack:before {
    content: "\e9c9";
}

.pi-sun:before {
    content: "\e9c8";
}

.pi-moon:before {
    content: "\e9c7";
}

.pi-vimeo:before {
    content: "\e9c6";
}

.pi-youtube:before {
    content: "\e9c5";
}

.pi-flag:before {
    content: "\e9c4";
}

.pi-wallet:before {
    content: "\e9c3";
}

.pi-map:before {
    content: "\e9c2";
}

.pi-link:before {
    content: "\e9c1";
}

.pi-credit-card:before {
    content: "\e9bf";
}

.pi-discord:before {
    content: "\e9c0";
}

.pi-percentage:before {
    content: "\e9be";
}

.pi-euro:before {
    content: "\e9bd";
}

.pi-book:before {
    content: "\e9ba";
}

.pi-shield:before {
    content: "\e9b9";
}

.pi-paypal:before {
    content: "\e9bb";
}

.pi-amazon:before {
    content: "\e9bc";
}

.pi-phone:before {
    content: "\e9b8";
}

.pi-filter-slash:before {
    content: "\e9b7";
}

.pi-facebook:before {
    content: "\e9b4";
}

.pi-github:before {
    content: "\e9b5";
}

.pi-twitter:before {
    content: "\e9b6";
}

.pi-step-backward-alt:before {
    content: "\e9ac";
}

.pi-step-forward-alt:before {
    content: "\e9ad";
}

.pi-forward:before {
    content: "\e9ae";
}

.pi-backward:before {
    content: "\e9af";
}

.pi-fast-backward:before {
    content: "\e9b0";
}

.pi-fast-forward:before {
    content: "\e9b1";
}

.pi-pause:before {
    content: "\e9b2";
}

.pi-play:before {
    content: "\e9b3";
}

.pi-compass:before {
    content: "\e9ab";
}

.pi-id-card:before {
    content: "\e9aa";
}

.pi-ticket:before {
    content: "\e9a9";
}

.pi-file-o:before {
    content: "\e9a8";
}

.pi-reply:before {
    content: "\e9a7";
}

.pi-directions-alt:before {
    content: "\e9a5";
}

.pi-directions:before {
    content: "\e9a6";
}

.pi-thumbs-up:before {
    content: "\e9a3";
}

.pi-thumbs-down:before {
    content: "\e9a4";
}

.pi-sort-numeric-down-alt:before {
    content: "\e996";
}

.pi-sort-numeric-up-alt:before {
    content: "\e997";
}

.pi-sort-alpha-down-alt:before {
    content: "\e998";
}

.pi-sort-alpha-up-alt:before {
    content: "\e999";
}

.pi-sort-numeric-down:before {
    content: "\e99a";
}

.pi-sort-numeric-up:before {
    content: "\e99b";
}

.pi-sort-alpha-down:before {
    content: "\e99c";
}

.pi-sort-alpha-up:before {
    content: "\e99d";
}

.pi-sort-alt:before {
    content: "\e99e";
}

.pi-sort-amount-up:before {
    content: "\e99f";
}

.pi-sort-amount-down:before {
    content: "\e9a0";
}

.pi-sort-amount-down-alt:before {
    content: "\e9a1";
}

.pi-sort-amount-up-alt:before {
    content: "\e9a2";
}

.pi-palette:before {
    content: "\e995";
}

.pi-undo:before {
    content: "\e994";
}

.pi-desktop:before {
    content: "\e993";
}

.pi-sliders-v:before {
    content: "\e991";
}

.pi-sliders-h:before {
    content: "\e992";
}

.pi-search-plus:before {
    content: "\e98f";
}

.pi-search-minus:before {
    content: "\e990";
}

.pi-file-excel:before {
    content: "\e98e";
}

.pi-file-pdf:before {
    content: "\e98d";
}

.pi-check-square:before {
    content: "\e98c";
}

.pi-chart-line:before {
    content: "\e98b";
}

.pi-user-edit:before {
    content: "\e98a";
}

.pi-exclamation-circle:before {
    content: "\e989";
}

.pi-android:before {
    content: "\e985";
}

.pi-google:before {
    content: "\e986";
}

.pi-apple:before {
    content: "\e987";
}

.pi-microsoft:before {
    content: "\e988";
}

.pi-heart:before {
    content: "\e984";
}

.pi-mobile:before {
    content: "\e982";
}

.pi-tablet:before {
    content: "\e983";
}

.pi-key:before {
    content: "\e981";
}

.pi-shopping-cart:before {
    content: "\e980";
}

.pi-comments:before {
    content: "\e97e";
}

.pi-comment:before {
    content: "\e97f";
}

.pi-briefcase:before {
    content: "\e97d";
}

.pi-bell:before {
    content: "\e97c";
}

.pi-paperclip:before {
    content: "\e97b";
}

.pi-share-alt:before {
    content: "\e97a";
}

.pi-envelope:before {
    content: "\e979";
}

.pi-volume-down:before {
    content: "\e976";
}

.pi-volume-up:before {
    content: "\e977";
}

.pi-volume-off:before {
    content: "\e978";
}

.pi-eject:before {
    content: "\e975";
}

.pi-money-bill:before {
    content: "\e974";
}

.pi-images:before {
    content: "\e973";
}

.pi-image:before {
    content: "\e972";
}

.pi-sign-in:before {
    content: "\e970";
}

.pi-sign-out:before {
    content: "\e971";
}

.pi-wifi:before {
    content: "\e96f";
}

.pi-sitemap:before {
    content: "\e96e";
}

.pi-chart-bar:before {
    content: "\e96d";
}

.pi-camera:before {
    content: "\e96c";
}

.pi-dollar:before {
    content: "\e96b";
}

.pi-lock-open:before {
    content: "\e96a";
}

.pi-table:before {
    content: "\e969";
}

.pi-map-marker:before {
    content: "\e968";
}

.pi-list:before {
    content: "\e967";
}

.pi-eye-slash:before {
    content: "\e965";
}

.pi-eye:before {
    content: "\e966";
}

.pi-folder-open:before {
    content: "\e964";
}

.pi-folder:before {
    content: "\e963";
}

.pi-video:before {
    content: "\e962";
}

.pi-inbox:before {
    content: "\e961";
}

.pi-lock:before {
    content: "\e95f";
}

.pi-unlock:before {
    content: "\e960";
}

.pi-tags:before {
    content: "\e95d";
}

.pi-tag:before {
    content: "\e95e";
}

.pi-power-off:before {
    content: "\e95c";
}

.pi-save:before {
    content: "\e95b";
}

.pi-question-circle:before {
    content: "\e959";
}

.pi-question:before {
    content: "\e95a";
}

.pi-copy:before {
    content: "\e957";
}

.pi-file:before {
    content: "\e958";
}

.pi-clone:before {
    content: "\e955";
}

.pi-calendar-times:before {
    content: "\e952";
}

.pi-calendar-minus:before {
    content: "\e953";
}

.pi-calendar-plus:before {
    content: "\e954";
}

.pi-ellipsis-v:before {
    content: "\e950";
}

.pi-ellipsis-h:before {
    content: "\e951";
}

.pi-bookmark:before {
    content: "\e94e";
}

.pi-globe:before {
    content: "\e94f";
}

.pi-replay:before {
    content: "\e94d";
}

.pi-filter:before {
    content: "\e94c";
}

.pi-print:before {
    content: "\e94b";
}

.pi-align-right:before {
    content: "\e946";
}

.pi-align-left:before {
    content: "\e947";
}

.pi-align-center:before {
    content: "\e948";
}

.pi-align-justify:before {
    content: "\e949";
}

.pi-cog:before {
    content: "\e94a";
}

.pi-cloud-download:before {
    content: "\e943";
}

.pi-cloud-upload:before {
    content: "\e944";
}

.pi-cloud:before {
    content: "\e945";
}

.pi-pencil:before {
    content: "\e942";
}

.pi-users:before {
    content: "\e941";
}

.pi-clock:before {
    content: "\e940";
}

.pi-user-minus:before {
    content: "\e93e";
}

.pi-user-plus:before {
    content: "\e93f";
}

.pi-trash:before {
    content: "\e93d";
}

.pi-external-link:before {
    content: "\e93c";
}

.pi-window-maximize:before {
    content: "\e93b";
}

.pi-window-minimize:before {
    content: "\e93a";
}

.pi-refresh:before {
    content: "\e938";
}
  
.pi-user:before {
    content: "\e939";
}

.pi-exclamation-triangle:before {
    content: "\e922";
}

.pi-calendar:before {
    content: "\e927";
}

.pi-chevron-circle-left:before {
    content: "\e928";
}

.pi-chevron-circle-down:before {
    content: "\e929";
}

.pi-chevron-circle-right:before {
    content: "\e92a";
}

.pi-chevron-circle-up:before {
    content: "\e92b";
}

.pi-angle-double-down:before {
    content: "\e92c";
}

.pi-angle-double-left:before {
    content: "\e92d";
}

.pi-angle-double-right:before {
    content: "\e92e";
}

.pi-angle-double-up:before {
    content: "\e92f";
}

.pi-angle-down:before {
    content: "\e930";
}

.pi-angle-left:before {
    content: "\e931";
}

.pi-angle-right:before {
    content: "\e932";
}

.pi-angle-up:before {
    content: "\e933";
}

.pi-upload:before {
    content: "\e934";
}

.pi-download:before {
    content: "\e956";
}

.pi-ban:before {
    content: "\e935";
}

.pi-star-fill:before {
    content: "\e936";
}

.pi-star:before {
    content: "\e937";
}

.pi-chevron-left:before {
    content: "\e900";
}

.pi-chevron-right:before {
    content: "\e901";
}

.pi-chevron-down:before {
    content: "\e902";
}

.pi-chevron-up:before {
    content: "\e903";
}

.pi-caret-left:before {
    content: "\e904";
}

.pi-caret-right:before {
    content: "\e905";
}

.pi-caret-down:before {
    content: "\e906";
}

.pi-caret-up:before {
    content: "\e907";
}

.pi-search:before {
    content: "\e908";
}

.pi-check:before {
    content: "\e909";
}

.pi-check-circle:before {
    content: "\e90a";
}

.pi-times:before {
    content: "\e90b";
}

.pi-times-circle:before {
    content: "\e90c";
}

.pi-plus:before {
    content: "\e90d";
}

.pi-plus-circle:before {
    content: "\e90e";
}

.pi-minus:before {
    content: "\e90f";
}

.pi-minus-circle:before {
    content: "\e910";
}

.pi-circle-on:before {
    content: "\e911";
}

.pi-circle-off:before {
    content: "\e912";
}

.pi-sort-down:before {
    content: "\e913";
}

.pi-sort-up:before {
    content: "\e914";
}

.pi-sort:before {
    content: "\e915";
}

.pi-step-backward:before {
    content: "\e916";
}

.pi-step-forward:before {
    content: "\e917";
}

.pi-th-large:before {
    content: "\e918";
}

.pi-arrow-down:before {
    content: "\e919";
}

.pi-arrow-left:before {
    content: "\e91a";
}

.pi-arrow-right:before {
    content: "\e91b";
}

.pi-arrow-up:before {
    content: "\e91c";
}

.pi-bars:before {
    content: "\e91d";
}

.pi-arrow-circle-down:before {
    content: "\e91e";
}

.pi-arrow-circle-left:before {
    content: "\e91f";
}

.pi-arrow-circle-right:before {
    content: "\e920";
}

.pi-arrow-circle-up:before {
    content: "\e921";
}

.pi-info:before {
    content: "\e923";
}

.pi-info-circle:before {
    content: "\e924";
}

.pi-home:before {
    content: "\e925";
}

.pi-spinner:before {
    content: "\e926";
}
@keyframes fadeOut{from{opacity:1}to{opacity:0}}.v-toast--fade-out{animation-name:fadeOut}@keyframes fadeInDown{from{opacity:0;transform:translate3d(0, -100%, 0)}to{opacity:1;transform:none}}.v-toast--fade-in-down{animation-name:fadeInDown}@keyframes fadeInUp{from{opacity:0;transform:translate3d(0, 100%, 0)}to{opacity:1;transform:none}}.v-toast--fade-in-up{animation-name:fadeInUp}.fade-enter-active,.fade-leave-active{transition:opacity 150ms ease-out}.fade-enter,.fade-leave-to{opacity:0}.v-toast{position:fixed;display:flex;top:0;bottom:0;left:0;right:0;padding:2em;overflow:hidden;z-index:1090;pointer-events:none}.v-toast__item{display:inline-flex;align-items:center;animation-duration:150ms;margin:.5em 0;box-shadow:0 1px 4px rgba(0,0,0,.12),0 0 6px rgba(0,0,0,.04);border-radius:.25em;pointer-events:auto;opacity:.92;color:#fff;min-height:3em;cursor:pointer}.v-toast__item--success{background-color:#47d78a}.v-toast__item--info{background-color:#1c85d5}.v-toast__item--warning{background-color:#febc22}.v-toast__item--error{background-color:#f7471c}.v-toast__item--default{background-color:#343a40}.v-toast__item--warning{color:#000}.v-toast__item.v-toast__item--top,.v-toast__item.v-toast__item--bottom{align-self:center}.v-toast__item.v-toast__item--top-right,.v-toast__item.v-toast__item--bottom-right{align-self:flex-end}.v-toast__item.v-toast__item--top-left,.v-toast__item.v-toast__item--bottom-left{align-self:flex-start}.v-toast__text{margin:0;padding:.5em 1em;word-break:break-word}.v-toast__icon{display:none}.v-toast.v-toast--top{flex-direction:column}.v-toast.v-toast--bottom{flex-direction:column-reverse}.v-toast.v-toast--custom-parent{position:absolute}@media screen and (max-width: 768px){.v-toast{padding:0;position:fixed !important}}.v-toast__item{opacity:1;min-height:4em}.v-toast__item .v-toast__text{padding:1.5em 1em}.v-toast__item .v-toast__icon{display:block;width:27px;min-width:27px;height:27px;margin-left:1em;background:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 45.999 45.999'%3e %3cpath fill='%23fff' d='M39.264 6.736c-8.982-8.981-23.545-8.982-32.528 0-8.982 8.982-8.981 23.545 0 32.528 8.982 8.98 23.545 8.981 32.528 0 8.981-8.983 8.98-23.545 0-32.528zM25.999 33a3 3 0 11-6 0V21a3 3 0 116 0v12zm-3.053-17.128c-1.728 0-2.88-1.224-2.844-2.735-.036-1.584 1.116-2.771 2.879-2.771 1.764 0 2.88 1.188 2.917 2.771-.001 1.511-1.152 2.735-2.952 2.735z'/%3e %3c/svg%3e") no-repeat}[dir=rtl] .v-toast__item .v-toast__icon{margin-left:unset;margin-right:1em}.v-toast__item.v-toast__item--success .v-toast__icon{background:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 52 52'%3e %3cpath fill='%23fff' d='M26 0C11.664 0 0 11.663 0 26s11.664 26 26 26 26-11.663 26-26S40.336 0 26 0zm14.495 17.329l-16 18a1.997 1.997 0 01-2.745.233l-10-8a2 2 0 012.499-3.124l8.517 6.813L37.505 14.67a2.001 2.001 0 012.99 2.659z'/%3e %3c/svg%3e") no-repeat}.v-toast__item.v-toast__item--error .v-toast__icon{background:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 51.976 51.976'%3e %3cpath fill='%23fff' d='M44.373 7.603c-10.137-10.137-26.632-10.138-36.77 0-10.138 10.138-10.137 26.632 0 36.77s26.632 10.138 36.77 0c10.137-10.138 10.137-26.633 0-36.77zm-8.132 28.638a2 2 0 01-2.828 0l-7.425-7.425-7.778 7.778a2 2 0 11-2.828-2.828l7.778-7.778-7.425-7.425a2 2 0 112.828-2.828l7.425 7.425 7.071-7.071a2 2 0 112.828 2.828l-7.071 7.071 7.425 7.425a2 2 0 010 2.828z'/%3e %3c/svg%3e") no-repeat}.v-toast__item.v-toast__item--warning .v-toast__icon{background:url("data:image/svg+xml,%3csvg viewBox='0 0 52 52' xmlns='http://www.w3.org/2000/svg'%3e %3cpath fill='%23000' d='M49.466 41.26L29.216 6.85c-.69-1.16-1.89-1.85-3.22-1.85-1.32 0-2.53.69-3.21 1.85L2.536 41.26c-.71 1.2-.72 2.64-.03 3.85.68 1.18 1.89 1.89 3.24 1.89h40.51c1.35 0 2.56-.71 3.23-1.89.7-1.21.69-2.65-.02-3.85zm-25.53-21.405h3.381v3.187l-.724 8.92H24.66l-.725-8.92v-3.187zm2.97 17.344a1.712 1.712 0 01-1.267.543c-.491 0-.914-.181-1.268-.543a1.788 1.788 0 01-.531-1.297c0-.502.176-.935.53-1.297a1.712 1.712 0 011.269-.544c.49 0 .914.181 1.268.544s.53.795.53 1.297c0 .503-.176.934-.53 1.297z'/%3e %3c/svg%3e") no-repeat}

.estado-carga[data-v-ffa33642] {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  border: 1px solid transparent;
  border-radius: 10px;
  padding: 6px 13px;
}
.ec-loading[data-v-ffa33642] { background: #f6f8fb; border-color: #e2e8f0;
}
.ec-error[data-v-ffa33642],
.ec-stale[data-v-ffa33642] { background: #fef2f2; border-color: #fecaca;
}
.ec-ok[data-v-ffa33642] { background: #ecfdf5; border-color: #a7f3d0;
}
.ec-dot[data-v-ffa33642] { width: 8px; height: 8px; border-radius: 50%; flex: none;
}
.ec-ok .ec-dot[data-v-ffa33642] { background: #15803d; box-shadow: 0 0 0 3px rgba(21, 128, 61, 0.2);
}
.ec-stale .ec-dot[data-v-ffa33642] { background: #dc2626; box-shadow: 0 0 0 3px rgba(220, 38, 38, 0.2);
}
.ec-ic[data-v-ffa33642] { font-size: 14px;
}
.ec-loading .ec-ic[data-v-ffa33642] { color: #64748b;
}
.ec-error .ec-ic[data-v-ffa33642] { color: #dc2626;
}
.ec-txt[data-v-ffa33642] { display: flex; flex-direction: column; line-height: 1.25; text-align: left;
}
.ec-t1[data-v-ffa33642] { font-size: 12.5px; font-weight: 600;
}
.ec-ok .ec-t1[data-v-ffa33642] { color: #166534;
}
.ec-stale .ec-t1[data-v-ffa33642] { color: #b91c1c;
}
.ec-loading .ec-t1[data-v-ffa33642] { color: #475569;
}
.ec-error .ec-t1[data-v-ffa33642] { color: #b91c1c;
}
.ec-t2[data-v-ffa33642] { font-size: 11px; color: #64748b; font-variant-numeric: tabular-nums; margin-top: 1px;
}

.bm-head[data-v-bc0546f2] {
    display: flex;
    align-items: flex-start;
    gap: 13px;
    padding: 18px 20px 16px;
    border-bottom: 1px solid var(--p-surface-200);
}
.bm-ico[data-v-bc0546f2] {
    width: 40px;
    height: 40px;
    flex: none;
    border-radius: 11px;
    display: grid;
    place-items: center;
    font-size: 18px;
}
.bm-int-primary[data-v-bc0546f2] { background: rgba(79, 195, 247, 0.16); color: #234a72;
}
.bm-int-danger[data-v-bc0546f2] { background: #fef2f2; color: #dc2626;
}
.bm-int-success[data-v-bc0546f2] { background: #ecfdf5; color: #15803d;
}
.bm-int-warn[data-v-bc0546f2] { background: #fffbeb; color: #b45309;
}
.bm-htext[data-v-bc0546f2] { flex: 1; min-width: 0;
}
.bm-title[data-v-bc0546f2] {
    font-size: 15.5px;
    font-weight: 800;
    letter-spacing: -0.01em;
    color: var(--p-surface-800);
    margin: 0;
}
.bm-subtitle[data-v-bc0546f2] {
    font-size: 12px;
    color: var(--p-surface-500);
    margin: 3px 0 0;
}
.bm-close[data-v-bc0546f2] {
    width: 30px;
    height: 30px;
    border-radius: 8px;
    border: 0;
    background: transparent;
    color: var(--p-surface-400);
    cursor: pointer;
    display: grid;
    place-items: center;
    font-size: 14px;
    flex: none;
}
.bm-close[data-v-bc0546f2]:hover { background: var(--p-surface-100); color: var(--p-surface-700);
}
.bm-body[data-v-bc0546f2] {
    padding: 18px 20px;
    overflow: auto;
}
.bm-body-flush[data-v-bc0546f2] { padding: 0;
}
.bm-foot[data-v-bc0546f2] {
    display: flex;
    align-items: center;
    gap: 10px;
    justify-content: flex-end;
    flex-wrap: wrap;
    padding: 13px 20px;
    border-top: 1px solid var(--p-surface-200);
    background: var(--p-surface-50);
}

/* No-scoped: el contenido del Dialog se teletransporta; estas clases se aplican vía pt. */
/* El panel: fondo blanco, bordes redondeados y sombra (al ocultar la cabecera nativa
   había que reponerlos explícitamente para no depender del tema). */
.bm-root {
    background: #ffffff !important;
    border: 1px solid var(--p-surface-200);
    border-radius: 16px !important;
    overflow: hidden;
    box-shadow: 0 24px 60px -12px rgba(16, 32, 52, 0.45);
}
.bm-content {
    padding: 0 !important;
    background: #ffffff !important;
    border-radius: 16px;
}
/* Máscara/overlay translúcida (scrim) en vez de un gris plano. */
.bm-mask {
    background: rgba(15, 23, 42, 0.45) !important;
}
.bm-root .bm-body { max-height: min(64vh, 640px);
}

/* Etiqueta de sección reutilizable dentro de cualquier modal. */
.sec-lbl {
    font-size: 10.5px;
    font-weight: 700;
    letter-spacing: 0.5px;
    text-transform: uppercase;
    color: var(--p-surface-400);
    margin: 0 0 6px;
}

/* Estilos para el botón seleccionado */
[data-pc-name="selectbutton"] button[data-p-checked="true"]
{
    color: white !important;
}

/* Estilos para el botón seleccionado */
[data-pc-name="selectbutton"] button[data-p-checked="true"]::before
{
    background-color: var(--p-primary-500) !important;
}

/* Tarjetas de acceso rápido */
.acc[data-v-65600426] {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 10px;
    background: #fff;
    border: 1px solid var(--p-surface-200);
    border-radius: 16px;
    padding: 22px;
    min-height: 150px;
    overflow: hidden;
    text-decoration: none;
    color: inherit;
    transition: transform 0.16s ease, box-shadow 0.16s ease, border-color 0.16s ease;
}
.acc[data-v-65600426]::after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 3px;
    background: var(--p-primary-500);
    opacity: 0;
    transition: opacity 0.16s ease;
}
.acc[data-v-65600426]:hover {
    transform: translateY(-3px);
    box-shadow: 0 16px 36px -18px rgba(16, 32, 52, 0.45);
    border-color: var(--p-surface-300);
}
.acc[data-v-65600426]:hover::after { opacity: 1;
}
.acc-wide[data-v-65600426] { grid-column: 1 / -1;
}
.acc-ico[data-v-65600426] { width: 46px; height: 46px; line-height: 0;
}
.acc-ico svg[data-v-65600426] { width: 46px; height: 46px;
}
.acc-title[data-v-65600426] {
    font-size: 15.5px;
    font-weight: 800;
    letter-spacing: -0.01em;
    color: var(--p-surface-800);
    margin: 0;
}
.acc-desc[data-v-65600426] {
    font-size: 12.5px;
    color: var(--p-surface-500);
    line-height: 1.5;
    margin: 0;
    flex: 1;
}
.acc-go[data-v-65600426] {
    position: absolute;
    right: 18px;
    bottom: 16px;
    color: var(--p-surface-300);
    font-size: 16px;
    transition: transform 0.16s ease, color 0.16s ease;
}
.acc:hover .acc-go[data-v-65600426] { color: var(--p-primary-500); transform: translateX(3px);
}

/* Marca de aviso: solo un punto en la esquina cuando hay pendientes */
.acc-mark[data-v-65600426] {
    position: absolute;
    top: 15px;
    right: 15px;
    width: 11px;
    height: 11px;
    border-radius: 50%;
    background: #f59e0b;
    box-shadow: 0 0 0 3px #fff;
}

/* Overlay + panel deslizante a la derecha */
.msg-overlay[data-v-dd31609b] {
    position: fixed;
    inset: 0;
    background: rgba(15, 23, 42, 0.45);
    z-index: 50;
    display: flex;
    justify-content: flex-end;
}
.msg-panel[data-v-dd31609b] {
    width: 400px;
    max-width: 92vw;
    height: 100dvh;
    background: #fff;
    box-shadow: -12px 0 40px -12px rgba(16, 32, 52, 0.35);
    display: flex;
    flex-direction: column;
    animation: msg-slide-dd31609b 0.18s ease-out;
}
@keyframes msg-slide-dd31609b {
from { transform: translateX(24px); opacity: 0.6;
}
to { transform: translateX(0); opacity: 1;
}
}
.ov-fade-enter-active[data-v-dd31609b],
.ov-fade-leave-active[data-v-dd31609b] { transition: opacity 0.18s ease;
}
.ov-fade-enter-from[data-v-dd31609b],
.ov-fade-leave-to[data-v-dd31609b] { opacity: 0;
}
@media (prefers-reduced-motion: reduce) {
.msg-panel[data-v-dd31609b] { animation: none;
}
}

/* Cabecera */
.msg-head[data-v-dd31609b] {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 18px 20px;
    border-bottom: 1px solid var(--p-surface-200);
}
.msg-ico[data-v-dd31609b] {
    width: 40px;
    height: 40px;
    flex: none;
    border-radius: 11px;
    display: grid;
    place-items: center;
    font-size: 18px;
    background: rgba(79, 195, 247, 0.16);
    color: #234a72;
}
.msg-htext[data-v-dd31609b] { flex: 1; min-width: 0;
}
.msg-title[data-v-dd31609b] { font-size: 15.5px; font-weight: 800; color: var(--p-surface-800); margin: 0; letter-spacing: -0.01em;
}
.msg-subtitle[data-v-dd31609b] { font-size: 12px; color: var(--p-surface-500); margin: 2px 0 0;
}
.msg-close[data-v-dd31609b] {
    width: 30px; height: 30px; border-radius: 8px; border: 0; background: transparent;
    color: var(--p-surface-400); cursor: pointer; display: grid; place-items: center; font-size: 14px; flex: none;
}
.msg-close[data-v-dd31609b]:hover { background: var(--p-surface-100); color: var(--p-surface-700);
}

/* Lista */
.msg-list[data-v-dd31609b] {
    list-style: none;
    margin: 0;
    padding: 14px 16px;
    overflow-y: auto;
    flex: 1;
    min-height: 0;
    display: flex;
    flex-direction: column;
    gap: 12px;
}
.msg-item[data-v-dd31609b] {
    background: var(--p-surface-50);
    border: 1px solid var(--p-surface-200);
    border-radius: 12px;
    padding: 12px 14px;
}
.msg-item-head[data-v-dd31609b] { display: flex; align-items: center; gap: 10px; margin-bottom: 8px;
}
.msg-avatar[data-v-dd31609b] { width: 34px; height: 34px; font-size: 13px;
}
.msg-name[data-v-dd31609b] { font-weight: 700; font-size: 13px; color: var(--p-surface-800); min-width: 0;
}
.msg-date[data-v-dd31609b] { margin-left: auto; font-size: 11px; color: var(--p-surface-400); font-variant-numeric: tabular-nums; white-space: nowrap;
}
.msg-body[data-v-dd31609b] { margin: 0; font-size: 13px; color: var(--p-surface-700); line-height: 1.5; white-space: pre-line;
}

/* Estados vacío / error */
.msg-empty[data-v-dd31609b] {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 12px;
    color: var(--p-surface-400);
    padding: 24px;
    text-align: center;
}
.msg-empty-ico[data-v-dd31609b] {
    width: 54px; height: 54px; border-radius: 14px; display: grid; place-items: center;
    font-size: 24px; background: var(--p-surface-100); color: var(--p-surface-400);
}
.msg-empty-ico.err[data-v-dd31609b] { background: #fef2f2; color: #dc2626;
}

/* Estado de carga: icono en círculo tintado + spinner navy + etiqueta */
.loading-state[data-v-18a63b5f] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 16px;
    min-height: 320px;
    padding: 40px 20px;
}
.loading-spinner-wrap[data-v-18a63b5f] {
    width: 68px;
    height: 68px;
    border-radius: 50%;
    display: grid;
    place-items: center;
    background: rgba(79, 195, 247, 0.14);
}
.loading-label[data-v-18a63b5f] {
    font-size: 13px;
    font-weight: 600;
    color: var(--p-surface-500);
    letter-spacing: 0.2px;
    margin: 0;
}
/* Recolorea el spinner a navy (en vez del ciclo de colores por defecto), conservando el trazo animado. */
[data-v-18a63b5f] .p-progressspinner-circle {
    stroke: #1a3a5c !important;
    animation: p-progressspinner-dash 1.5s ease-in-out infinite !important;
}

/* Curso: azul si es el actual, rojo si no lo es */
.curso-pill[data-v-18a63b5f] {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    border: 0;
    border-radius: 10px;
    padding: 9px 14px;
    font-size: 13px;
    font-weight: 700;
    color: #fff;
    cursor: pointer;
    white-space: nowrap;
    transition: filter 0.15s ease;
}
.curso-pill[data-v-18a63b5f]:hover { filter: brightness(0.94);
}
.curso-actual[data-v-18a63b5f] { background: var(--p-primary-color, #1a3a5c);
}
.curso-noactual[data-v-18a63b5f] { background: #dc2626;
}

/* Enlace del plan: puede ir en varias líneas y se lee bien; celdas alineadas arriba */
[data-v-18a63b5f] .p-datatable-tbody > tr > td { vertical-align: top;
}
.plan-link[data-v-18a63b5f] {
    display: inline-block;
    color: var(--p-primary-color, #1a3a5c);
    font-weight: 700;
    line-height: 1.45;
    white-space: normal;
    overflow-wrap: anywhere;
    word-break: break-word;
    max-width: 100ch;
}
.plan-link[data-v-18a63b5f]:hover { text-decoration: underline;
}

/* Coordinadores: icono + contador (solo recuento, carga rápida) */
.coord-btn[data-v-18a63b5f] {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    border: 1px solid var(--p-surface-300);
    background: #fff;
    color: var(--p-primary-color, #1a3a5c);
    border-radius: 20px;
    padding: 5px 12px;
    cursor: pointer;
    font-weight: 800;
    font-size: 12.5px;
    transition: background 0.12s ease;
}
.coord-btn[data-v-18a63b5f]:hover { background: #eef4fb;
}
.coord-btn .pi[data-v-18a63b5f] { font-size: 13px;
}
.coord-n[data-v-18a63b5f] { font-variant-numeric: tabular-nums;
}

/* Estado en una sola línea (la columna se ajusta al estado más largo) */
[data-v-18a63b5f] .estado-tag { white-space: nowrap;
}

/* Fecha última propuesta + relativa */
.fecha-cell[data-v-18a63b5f] {
    display: flex;
    flex-direction: column;
    font-variant-numeric: tabular-nums;
}
.fecha-rel[data-v-18a63b5f] {
    font-size: 11px;
    color: var(--p-surface-400);
    margin-top: 2px;
}

/* Unidad de plantilla como chip, justo debajo de la dedicación (cabecera del modal). */
.dp-unidad-chip[data-v-bc6a1494] {
    display: inline-flex;
    align-items: center;
    max-width: 100%;
    font-size: 12px;
    font-weight: 700;
    line-height: 1.3;
    color: #234a72;
    background: #eef4fb;
    border: 1px solid #cfe0f1;
    border-radius: 20px;
    padding: 4px 12px;
}

/* Meta de cada asignatura como chips (plan y total de horas) en vez de texto con "|". */
.dp-asig-meta[data-v-bc6a1494] {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-top: 8px;
}
.dp-chip[data-v-bc6a1494] {
    display: inline-flex;
    align-items: center;
    font-size: 12px;
    font-weight: 700;
    color: var(--p-surface-600);
    background: var(--p-surface-100);
    border: 1px solid var(--p-surface-200);
    border-radius: 6px;
    padding: 2px 9px;
}
.dp-chip-plan[data-v-bc6a1494] {
    color: #234a72;
    background: #eef4fb;
    border-color: #cfe0f1;
}

/* Título de sección (Asignaturas / Reducciones) con contador, estilo del mockup. */
.dp-sec-title[data-v-bc6a1494] {
    font-size: 13px;
    font-weight: 800;
    color: #1a3a5c;
    margin: 4px 0 12px;
    display: flex;
    align-items: center;
    gap: 8px;
}
.dp-sec-n[data-v-bc6a1494] {
    font-size: 11px;
    font-weight: 800;
    background: var(--p-surface-100);
    color: var(--p-surface-600);
    border-radius: 20px;
    padding: 1px 8px;
}

/* Reducciones como tarjetas con icono rojo, ámbito y horas en rojo (estilo del mockup). */
.dp-reduc[data-v-bc6a1494] {
    display: flex;
    align-items: center;
    gap: 12px;
    border: 1px solid var(--p-surface-200);
    border-radius: 11px;
    padding: 12px 14px;
    margin-bottom: 8px;
    background: var(--p-surface-0);
}
.dp-reduc-ic[data-v-bc6a1494] {
    width: 38px;
    height: 38px;
    border-radius: 10px;
    background: #fef2f2;
    color: #dc2626;
    display: grid;
    place-items: center;
    flex: none;
    font-size: 15px;
}
.dp-reduc-t[data-v-bc6a1494] {
    flex: 1;
    min-width: 0;
}
.dp-reduc-n[data-v-bc6a1494] {
    font-size: 13.5px;
    font-weight: 700;
    color: var(--p-surface-800);
}
.dp-reduc-a[data-v-bc6a1494] {
    font-size: 11.5px;
    color: var(--p-surface-500);
    margin-top: 2px;
}
.dp-reduc-h[data-v-bc6a1494] {
    font-size: 14px;
    font-weight: 800;
    color: #dc2626;
    font-variant-numeric: tabular-nums;
}

/* Tabla interna de asignaciones (expansión de cada asignatura), estilo del mockup. */
.dp-asig-exp[data-v-bc6a1494] {
    border-top: 1px solid var(--p-surface-100);
    background: var(--p-surface-50);
    padding: 4px 8px 8px;
}
.dp-inner[data-v-bc6a1494] {
    width: 100%;
    border-collapse: collapse;
    font-size: 12.5px;
}
.dp-inner thead th[data-v-bc6a1494] {
    text-align: left;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: .4px;
    text-transform: uppercase;
    color: var(--p-surface-500);
    padding: 9px 12px;
    white-space: nowrap;
}
.dp-inner tbody td[data-v-bc6a1494] {
    padding: 9px 12px;
    border-top: 1px solid var(--p-surface-100);
    color: var(--p-surface-700);
    vertical-align: middle;
}
.dp-inner tbody tr:hover td[data-v-bc6a1494] {
    background: var(--p-surface-0);
}
.tnum[data-v-bc6a1494] {
    font-variant-numeric: tabular-nums;
}
.dp-h[data-v-bc6a1494] {
    font-weight: 800;
    color: var(--p-surface-800);
}
.dp-pill[data-v-bc6a1494] {
    display: inline-flex;
    align-items: center;
    font-size: 10.5px;
    font-weight: 700;
    padding: 2px 9px;
    border-radius: 20px;
    white-space: nowrap;
}
.dp-pill-sem[data-v-bc6a1494] {
    background: var(--p-surface-100);
    color: var(--p-surface-600);
}
.dp-pill-tipo[data-v-bc6a1494] {
    background: #eff6ff;
    color: #0ea5e9;
    border: 1px solid #bfdbfe;
}
.dp-yes[data-v-bc6a1494] {
    color: #16a34a;
    font-weight: 800;
}
.dp-no[data-v-bc6a1494] {
    color: var(--p-surface-300);
}

/* Cuadros de horas: todos del mismo tamaño (rejilla de columnas iguales, alturas
   estiradas) y con el título siempre arriba a la izquierda. */
.dp-kpis[data-v-bc6a1494] {
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    gap: 10px;
    align-items: stretch;
}
.dp-kpi[data-v-bc6a1494] {
    height: 100%;
    display: flex;
    flex-direction: column;
    text-align: left;
    border: 1px solid var(--p-surface-200);
    border-radius: 12px;
    padding: 12px 13px;
    background: var(--p-surface-0);
}
.dp-kpi-l[data-v-bc6a1494] {
    margin: 0;
    text-align: left;
    align-self: flex-start;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: .4px;
    text-transform: uppercase;
    color: var(--p-surface-500);
    line-height: 1.25;
    /* Reserva 2 líneas para que el valor quede alineado en todos los cuadros. */
    min-height: 2.5em;
}
.dp-kpi-v[data-v-bc6a1494] {
    margin: auto 0 0;
    text-align: left;
    font-size: 22px;
    font-weight: 800;
    letter-spacing: -.02em;
    color: var(--p-surface-800);
    font-variant-numeric: tabular-nums;
}
.dp-kpi-total[data-v-bc6a1494] {
    background: #1a3a5c;
    border-color: #1a3a5c;
}
.dp-kpi-total .dp-kpi-l[data-v-bc6a1494] {
    color: rgba(255, 255, 255, .66);
}
.dp-kpi-total .dp-kpi-v[data-v-bc6a1494] {
    color: #fff;
}
.dp-kpi-reduc .dp-kpi-v[data-v-bc6a1494] {
    color: #dc2626;
}
@media (max-width: 820px) {
.dp-kpis[data-v-bc6a1494] {
        grid-template-columns: repeat(3, 1fr);
}
}
@media (max-width: 520px) {
.dp-kpis[data-v-bc6a1494] {
        grid-template-columns: repeat(2, 1fr);
}
}
[data-v-bc6a1494] .p-dark .dp-kpi {
    border-color: var(--p-surface-700);
    background: var(--p-surface-900);
}
[data-v-bc6a1494] .p-dark .dp-kpi-v {
    color: var(--p-surface-0);
}

/* Avatar de iniciales del resultado (mismo estilo que el selector de asignaturas). */
.prof-avatar[data-v-a85764f1] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    width: 2.125rem;
    height: 2.125rem;
    border-radius: 999px;
    background: var(--p-primary-50, #eef4fb);
    color: var(--p-primary-color, #234a72);
    font-size: 12px;
    font-weight: 600;
}

/* Chip azul del DNI, coherente con el resto de buscadores. */
.dni-chip[data-v-a85764f1] {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    font-size: 13px;
    font-weight: 500;
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
    letter-spacing: 0.3px;
    color: var(--p-primary-color, #234a72);
    background: var(--p-primary-50, #eef4fb);
    border: 1px solid var(--p-primary-200, #cfe0f1);
    border-radius: 7px;
    padding: 2px 9px;
    white-space: nowrap;
}
.dni-chip .pi[data-v-a85764f1] {
    font-size: 12px;
}

/* --- Strip de la baja --- */
.m-baja[data-v-7e00d9f2] {
    padding: 14px 1.5rem;
    background: var(--p-surface-50);
    border-top: 1px solid var(--p-surface-200);
    border-bottom: 1px solid var(--p-surface-200);
}
.m-field[data-v-7e00d9f2] { display: flex; flex-direction: column; gap: 2px;
}
.m-field-lbl[data-v-7e00d9f2] {
    font-size: 10.5px;
    text-transform: uppercase;
    letter-spacing: 0.4px;
    font-weight: 700;
    color: var(--p-surface-400);
    display: inline-flex;
    align-items: center;
    gap: 5px;
}
.m-field-lbl .pi[data-v-7e00d9f2] { font-size: 11px;
}
.m-field-val[data-v-7e00d9f2] {
    font-size: 14px;
    font-weight: 700;
    color: var(--p-surface-800);
    font-variant-numeric: tabular-nums;
}

/* --- Cuerpo scrollable --- */
.m-body[data-v-7e00d9f2] {
    display: flex;
    flex-direction: column;
    gap: 12px;
    padding: 1.25rem 1.5rem;
    max-height: 58vh;
    overflow-y: auto;
}

/* --- Tarjeta por asignación --- */
.m-card[data-v-7e00d9f2] {
    border: 1px solid var(--p-surface-200);
    border-left: 4px solid var(--p-surface-300);
    border-radius: 11px;
    padding: 15px;
    display: flex;
    flex-direction: column;
    gap: 12px;
    background: #fff;
    transition: box-shadow 0.15s;
}
.m-card[data-v-7e00d9f2]:hover { box-shadow: 0 2px 10px rgba(15, 23, 42, 0.06);
}
/* Colores de franja (reutiliza las clases que ya devuelve cardBorderClass) */
.m-card.border-l-green-500[data-v-7e00d9f2] { border-left-color: #16a34a;
}
.m-card.border-l-orange-500[data-v-7e00d9f2] { border-left-color: #f59e0b; background: #fffdf7;
}
.m-card.border-l-surface-400[data-v-7e00d9f2] { border-left-color: var(--p-surface-400); background: var(--p-surface-50);
}
/* Sin solicitud: franja y fondo gris clarito. */
.m-card.border-l-surface-300[data-v-7e00d9f2] { border-left-color: var(--p-surface-300); background: var(--p-surface-50);
}
.m-code[data-v-7e00d9f2] {
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.3px;
    color: var(--p-primary-color, #1a3a5c);
    background: color-mix(in srgb, var(--p-primary-color, #1a3a5c) 10%, #fff);
    border-radius: 6px;
    padding: 2px 8px;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

/* --- Chip de estado de la tarjeta --- */
.m-state[data-v-7e00d9f2] {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    font-size: 11px;
    font-weight: 700;
    padding: 2px 9px;
    border-radius: 20px;
    white-space: nowrap;
}
.m-state .pi[data-v-7e00d9f2] { font-size: 11px;
}
.m-state-ok[data-v-7e00d9f2] { background: #ecfdf5; color: #15803d;
}
.m-state-warn[data-v-7e00d9f2] { background: #fffbeb; color: #b45309;
}
.m-state-none[data-v-7e00d9f2] { background: #f3f4f6; color: #6b7280;
}

/* --- Toggle --- */
.m-toggle[data-v-7e00d9f2] {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 9px 12px;
    background: var(--p-surface-50);
    border-radius: 8px;
}

/* --- Stat tiles --- */
.m-stats[data-v-7e00d9f2] { display: flex; gap: 10px;
}
.m-stat[data-v-7e00d9f2] {
    flex: 1;
    border: 1px solid var(--p-surface-200);
    border-radius: 9px;
    padding: 9px 8px;
    text-align: center;
    background: #fff;
}
.m-stat-lbl[data-v-7e00d9f2] {
    font-size: 9.5px;
    text-transform: uppercase;
    letter-spacing: 0.4px;
    font-weight: 700;
    color: var(--p-surface-400);
    margin: 0;
}
.m-stat-val[data-v-7e00d9f2] {
    font-size: 20px;
    font-weight: 800;
    margin: 3px 0 0;
    color: var(--p-surface-800);
    font-variant-numeric: tabular-nums;
    line-height: 1.1;
}
.m-stat-ok[data-v-7e00d9f2] { background: #f0fdf4; border-color: #bbf7d0;
}
.m-stat-ok .m-stat-lbl[data-v-7e00d9f2], .m-stat-ok .m-stat-val[data-v-7e00d9f2] { color: #15803d;
}
.m-stat-warn[data-v-7e00d9f2] { background: #fffbeb; border-color: #fde68a;
}
.m-stat-warn .m-stat-lbl[data-v-7e00d9f2], .m-stat-warn .m-stat-val[data-v-7e00d9f2] { color: #b45309;
}

/* --- Barra de progreso (cabecera y tarjeta) --- */
.m-progress[data-v-7e00d9f2] {
    height: 7px;
    border-radius: 20px;
    background: var(--p-surface-200);
    overflow: hidden;
}
.m-progress > i[data-v-7e00d9f2] { display: block; height: 100%; border-radius: 20px;
}
.m-progress > i.ok[data-v-7e00d9f2] { background: #16a34a;
}
.m-progress > i.warn[data-v-7e00d9f2] { background: #f59e0b;
}

/* --- Fila de sustituto --- */
.m-sust[data-v-7e00d9f2] {
    display: flex;
    align-items: center;
    gap: 10px;
    border: 1px solid var(--p-surface-200);
    border-radius: 9px;
    padding: 8px 10px;
    background: #fff;
}
.m-sust-solicitud[data-v-7e00d9f2] { background: #fef2f2; border-color: #fecaca;
}
.m-sust-ico[data-v-7e00d9f2] {
    width: 30px;
    height: 30px;
    border-radius: 8px;
    display: inline-grid;
    place-items: center;
    background: var(--p-surface-100);
    color: var(--p-surface-500);
    flex: none;
}
.m-sust-ico.is-req[data-v-7e00d9f2] { background: #fee2e2; color: #dc2626;
}

/* --- Botón responsable de actas --- */
.m-resp[data-v-7e00d9f2] {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    flex: none;
    font-size: 11px;
    font-weight: 700;
    padding: 5px 9px;
    border-radius: 20px;
    border: 1px solid var(--p-surface-300);
    background: #fff;
    color: var(--p-surface-500);
    cursor: pointer;
    transition: background 0.12s, color 0.12s, border-color 0.12s;
}
.m-resp .pi[data-v-7e00d9f2] { font-size: 12px;
}
.m-resp[data-v-7e00d9f2]:hover { background: var(--p-surface-50);
}
.m-resp.is-on[data-v-7e00d9f2] { background: #fffbeb; color: #b45309; border-color: #fde68a;
}

/* --- Sin sustitución --- */
.m-noreq[data-v-7e00d9f2] {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 12.5px;
    font-style: italic;
    color: var(--p-surface-400);
    background: var(--p-surface-50);
    border-radius: 8px;
    padding: 10px 12px;
    margin: 0;
}
.tabular-nums[data-v-7e00d9f2] { font-variant-numeric: tabular-nums;
}

/* Tarjeta de profesor: pulida (más redondeo, hover sutil) sin cambiar la estructura. */
.desfase-card[data-v-a43bba37] {
    background: #fff;
    border: 1px solid var(--p-surface-200);
    border-radius: 12px;
    padding: 14px;
    margin-bottom: 10px;
    transition: box-shadow 0.15s ease, border-color 0.15s ease;
}
.desfase-card[data-v-a43bba37]:hover {
    box-shadow: 0 8px 22px -14px rgba(16, 32, 52, 0.35);
    border-color: var(--p-surface-300);
}

/* Fila de un profesor de baja: fondo tenue (algo más marcado que el blanco) pero distinguible
   del ámbar del desfase "por debajo", para no confundirlos. */
.fila-baja[data-v-a43bba37] {
    background: #fdf3f3;
    border-color: #f0d5d5;
}

/* Etiqueta de estado en la cabecera de la tarjeta: solo "por debajo" llama la atención;
   0 o pasarse de las horas objetivo se considera correcto (OK). */
.dh-estado[data-v-a43bba37] {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    font-size: 10.5px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.02em;
    padding: 3px 9px;
    border-radius: 999px;
}
.dh-estado.ok[data-v-a43bba37] {
    color: #15803d;
    background: #f0fdf4;
}
.dh-estado.under[data-v-a43bba37] {
    color: #b45309;
    background: #fffbeb;
}

/* Barra de progreso de horas: llena en verde cuando se alcanza o supera el objetivo,
   proporcional en ámbar cuando está por debajo. */
.dh-progress[data-v-a43bba37] {
    margin-top: 4px;
}
.dh-bar-track[data-v-a43bba37] {
    height: 6px;
    border-radius: 999px;
    background: var(--p-surface-200);
    overflow: hidden;
}
.dh-bar-fill[data-v-a43bba37] {
    display: block;
    height: 100%;
    border-radius: 999px;
}
.dh-bar-fill.ok[data-v-a43bba37] {
    background: #16a34a;
}
.dh-bar-fill.under[data-v-a43bba37] {
    background: #f59e0b;
}
.dh-bar-labels[data-v-a43bba37] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    font-size: 13px;
    font-weight: 600;
    color: var(--p-surface-500);
    margin-top: 8px;
}
.dh-delta-ok[data-v-a43bba37] {
    color: #15803d;
    font-weight: 700;
}
.dh-delta-under[data-v-a43bba37] {
    color: #b45309;
    font-weight: 700;
}

/* Botón "Ver docencia": ocupa todo el ancho de la tarjeta, bajo la barra de progreso. */
.dh-btn-docencia[data-v-a43bba37] {
    margin-top: 12px;
    width: 100%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    font: inherit;
    font-size: 12.5px;
    font-weight: 600;
    color: var(--p-primary-color, #1e4d7b);
    background: var(--p-primary-50, #eef4fb);
    border: 1px solid var(--p-primary-200, #cfe0f1);
    border-radius: 8px;
    padding: 8px 12px;
    cursor: pointer;
    transition: background 0.15s ease;
}
.dh-btn-docencia[data-v-a43bba37]:hover {
    background: var(--p-primary-100, #dce9f6);
}

.asignacion:not(:first-child)
{
  margin-top: 0.75rem;
}

/* Input del profesor de baja (titular): tachado y con borde/tinte rojo para distinguirlo
   claramente de los sustitutos. Se fuerza sobre el estilo de input deshabilitado. */
.input-baja.p-inputtext,
.input-baja {
  text-decoration: line-through !important;
  color: #b91c1c !important;
  border-color: #fca5a5 !important;
  background: #fef2f2 !important;
  opacity: 1 !important;
}

/* Semestre del grupo, como píldora para separarlo visualmente del resto de columnas. */
.semestre-pill {
  display: inline-flex;
  align-items: center;
  font-size: 12px;
  font-weight: 700;
  color: var(--p-primary-color, #1e4d7b);
  background: var(--p-primary-50, #eef4fb);
  border: 1px solid var(--p-primary-200, #cfe0f1);
  border-radius: 999px;
  padding: 3px 11px;
  white-space: nowrap;
}

/* Cabecera de subsección por tipología dentro de un grupo (Teoría, Prácticas, etc.).
   Se pinta una sola vez por cada tramo de profesores con el mismo tipo. */
.tipo-subheader {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 4px 0 8px;
  border-bottom: 1px dashed #e2e8f0;
}
.tipo-subheader-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 1.85rem;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  color: #475569;
  background: #f1f5f9;
  border: 1px solid #e2e8f0;
  border-radius: 6px;
  padding: 2px 7px;
}
.tipo-subheader-count {
  font-size: 11px;
  font-weight: 600;
  color: #64748b;
  background: #f8fafc;
  border: 1px solid #eef2f7;
  border-radius: 999px;
  padding: 1px 8px;
}
.tipo-subheader-bajas {
  font-size: 11px;
  font-weight: 700;
  color: #9f1239;
  background: #fdeaea;
  border: 1px solid #e7b7b7;
  border-radius: 999px;
  padding: 1px 8px;
}
.tipo-subheader-sum {
  margin-left: auto;
  font-size: 11px;
  font-weight: 600;
  color: #94a3b8;
}

/* Estado de carga: icono en círculo tintado + spinner navy + etiqueta */
/* Indicador de carga sobre el esqueleto: barra de progreso indeterminada en el borde superior. */
.sk-page {
  position: relative;
}
.sk-bar {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 3px;
  overflow: hidden;
  z-index: 20;
  background: transparent;
}
.sk-bar::before {
  content: "";
  position: absolute;
  height: 100%;
  width: 40%;
  border-radius: 3px;
  background: linear-gradient(90deg, transparent, #4fc3f7, #1a3a5c);
  animation: sk-bar-move 1.2s ease-in-out infinite;
}
@keyframes sk-bar-move {
0% { left: -40%;
}
100% { left: 100%;
}
}
@media (prefers-reduced-motion: reduce) {
.sk-bar::before { animation: none; left: 0; width: 100%; opacity: .5;
}
}

/* Esqueleto de carga: filas de la tabla y tarjetas del desfase, mismas cajas que el contenido real. */
.sk-row {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 16px 4px;
  border-bottom: 1px solid var(--p-surface-200);
}
.sk-card {
  border: 1px solid var(--p-surface-200);
  border-radius: 12px;
  padding: 14px;
  margin-bottom: 10px;
}
.loading-state {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 16px;
  min-height: 320px;
  padding: 40px 20px;
  width: 100%;
}
.loading-spinner-wrap {
  width: 68px;
  height: 68px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  background: rgba(79, 195, 247, 0.14);
}
.loading-label {
  font-size: 13px;
  font-weight: 600;
  color: #64748b;
  letter-spacing: 0.2px;
  margin: 0;
}
/* Recolorea el spinner a navy (en vez del ciclo de colores por defecto), conservando el trazo animado. */
:deep(.p-progressspinner-circle) {
  stroke: #1a3a5c !important;
  animation: p-progressspinner-dash 1.5s ease-in-out infinite !important;
}

/* Banda de curso académico: azul si es el activo, rojo si no lo es. */
.curso-band {
  width: 100%;
  color: #fff;
  text-align: center;
  padding: 11px 16px;
  border-radius: 14px;
  box-shadow: 0 1px 2px rgba(16, 32, 52, 0.06), 0 10px 24px -14px rgba(16, 32, 52, 0.3);
  font-size: 1.1rem;
  font-weight: 700;
  letter-spacing: 0.4px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
}
.curso-activo { background: #1a3a5c;
}
.curso-noactivo { background: #dc2626;
}

/* Volver a selección de planes */
.plan-back {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  margin-top: 10px;
  font-size: 12.5px;
  font-weight: 600;
  color: #1a3a5c;
}
.plan-back:hover { text-decoration: underline;
}

/* Cabecera del plan: icono + centro/nombre a la izquierda, acciones a la derecha */
.plan-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 16px;
  margin-top: 14px;
  flex-wrap: wrap;
}
.plan-info {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  min-width: 0;
}
.plan-ico {
  width: 42px;
  height: 42px;
  flex: none;
  border-radius: 12px;
  display: grid;
  place-items: center;
  font-size: 18px;
  background: rgba(79, 195, 247, 0.16);
  color: #234a72;
}
.plan-info-text { min-width: 0;
}
.plan-centro {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.4px;
  text-transform: uppercase;
  color: #64748b;
  margin: 3px 0 0;
}
.plan-nombre {
  font-size: 19px;
  font-weight: 800;
  color: #1a3a5c;
  letter-spacing: -0.01em;
  margin: 2px 0 0;
}
.plan-actions {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 12px;
}

/* Aviso de borrador enviado por el coordinador */
.borrador-info {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-top: 10px;
  padding: 7px 12px;
  background: #eff6ff;
  border: 1px solid #bfdbfe;
  border-radius: 9px;
  font-size: 12.5px;
  color: #1e40af;
  width: -moz-fit-content;
  width: fit-content;
}

/* Toolbar de búsqueda/acciones (antes header del DataTable) */
.plan-toolbar {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
  flex-wrap: wrap;
  padding: 14px 0 4px;
  margin-top: 6px;
  border-top: 1px solid #e2e8f0;
}
:deep(.search-box .p-inputtext) {
  border-radius: 9px;
}

/* Chips de recuento de errores (Datos / Laurea) */
.err-chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 11.5px;
  font-weight: 700;
  padding: 5px 12px;
  border-radius: 20px;
  cursor: pointer;
}
.err-chip-d { color: #b91c1c; background: #fef2f2; border: 1px solid #fecaca;
}
.err-chip-l { color: #0369a1; background: #f0f9ff; border: 1px solid #bae6fd;
}

/* Metadatos de la asignatura como chips (código, tipo, créditos, horas, alumnos). */
.asig-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 8px;
}
.asig-chip {
  display: inline-flex;
  align-items: center;
  font-size: 11px;
  font-weight: 700;
  color: #475569;
  background: #eef2f7;
  border: 1px solid #e2e8f0;
  border-radius: 7px;
  padding: 2px 8px;
  white-space: nowrap;
}
.asig-chip-cod {
  color: var(--p-primary-color, #234a72);
  background: var(--p-primary-50, #eef4fb);
  border-color: var(--p-primary-200, #cfe0f1);
}

/* Chip del DNI que aparece como segunda línea bajo el nombre del profesor en el
   selector. Estilo azul, coherente con el chip del código de asignatura (asig-chip-cod). */
.dni-chip {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: 13px;
  font-weight: 500;
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  letter-spacing: 0.3px;
  color: var(--p-primary-color, #234a72);
  background: var(--p-primary-50, #eef4fb);
  border: 1px solid var(--p-primary-200, #cfe0f1);
  border-radius: 7px;
  padding: 2px 9px;
  white-space: nowrap;
}
.dni-chip .pi {
  font-size: 12px;
}

/* Buscador interno del desplegable de profesor (variante 1): lupa a la izquierda,
   input redondeado con fondo suave y separador bajo el buscador. Se aplica solo a
   este Select mediante la clase 'sel-prof-overlay' añadida a su overlay (pt +
   ptOptions.mergeProps, para NO perder las clases del preset), ya que el panel se
   teletransporta al body. Como PrimeVue va en modo `unstyled`, las clases `p-*` no
   existen; se apunta a hooks fiables (role="searchbox" y atributos data-pc-*). */
.sel-prof-overlay [data-pc-section="header"] {
  padding: 0.625rem;
  border-bottom: 1px solid var(--p-content-border-color, #e2e8f0);
}
.sel-prof-overlay input[role="searchbox"] {
  width: 100%;
  height: 38px;
  border-radius: 8px;
  background: var(--p-surface-50, #f8fafc);
  padding-left: 2.5rem;
  padding-right: 0.75rem;
}
.sel-prof-overlay [data-pc-name="inputicon"] {
  left: 0.85rem !important;
  right: auto !important;
  color: #94a3b8;
}

/* Opción especial "Solicitar profesor" del selector: fila destacada con borde
   discontinuo e icono, para diferenciarla de las opciones de profesor reales. */
.opcion-solicitar {
  display: flex;
  align-items: center;
  gap: 10px;
  width: 100%;
  padding: 9px 10px;
  border: 1px dashed var(--p-primary-300, #a9c6e8);
  border-radius: 8px;
  background: var(--p-primary-50, #eef4fb);
  color: var(--p-primary-color, #234a72);
  font-weight: 500;
}
.opcion-solicitar-ico {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 2.125rem;
  height: 2.125rem;
  border-radius: 999px;
  background: #fff;
  color: var(--p-primary-color, #234a72);
}
.opcion-solicitar-ico .pi {
  font-size: 1rem;
}

/* Avatar de iniciales en las opciones del selector de profesor. */
.prof-avatar {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 2.125rem;
  height: 2.125rem;
  border-radius: 999px;
  background: var(--p-primary-50, #eef4fb);
  color: var(--p-primary-color, #234a72);
  font-size: 12px;
  font-weight: 600;
}

/* Badge circular para el estado "OK" de una asignatura (check verde discreto). */
.estado-ok-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.5rem;
  height: 1.5rem;
  border-radius: 999px;
  background: #f0fdf4;
  border: 1px solid #bbf7d0;
  color: #16a34a;
}

/* Conector visual (↳) que indica que un sustituto cuelga del titular de baja. */
.conector-sus {
  color: #cbd5e1;
  font-size: 15px;
  line-height: 1;
  width: 14px;
  text-align: center;
}

/* Barra de cobertura de la baja: horas cubiertas por sustitutos sobre las horas a repartir. */
.cobertura-baja {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-top: 2px;
}
.cob-bar {
  flex: 1;
  max-width: 150px;
  height: 6px;
  border-radius: 20px;
  background: #e2e8f0;
  overflow: hidden;
}
.cob-bar > i {
  display: block;
  height: 100%;
  border-radius: 20px;
}
.cob-bar > i.ok { background: #16a34a;
}
.cob-bar > i.warn { background: #f59e0b;
}
.cob-txt {
  font-size: 11px;
  color: #64748b;
  white-space: nowrap;
}

/* Botón "Registrar sustitución" junto a los sustitutos */
.btn-sustitucion {
  color: #1a3a5c;
}
.btn-sustitucion:hover {
  background: #eef3f8;
}

/* Fila de asignatura con duplicados: tinte tenue + acento lateral fino (sin degradado) */
.fila-duplicados > td {
  background-color: #fef2f2 !important;
}
.fila-duplicados > td:first-child {
  box-shadow: inset 3px 0 0 0 #f43f5e;
}

/* Línea de asignación duplicada: fondo tenue sólido + borde lateral fino, sin degradado */
.asignacion-duplicada {
  background: #fef2f2;
  border-left: 3px solid #f43f5e;
  border-radius: 0 0.5rem 0.5rem 0;
  padding: 0.5rem 0.75rem;
  margin-left: -0.75rem;
}

/* ── Cambios respecto a la última planificación validada ────────────────────────────────
   Una asignación con cambios se pinta como un bloque de dos líneas: la de arriba es cómo
   estaba en la validada (.linea-antes) y la de abajo cómo queda ahora. El bloque lleva el
   tinte y el acento lateral; las cajas concretas que cambian se tiñen por separado. */
.asignacion-bloque {
  border-radius: 0 0.5rem 0.5rem 0;
}
.asignacion-bloque:not(:first-child) {
  margin-top: 0.75rem;
}

/* Dentro de un bloque, el margen entre "antes" y "ahora" es menor que entre asignaciones,
   para que las dos líneas se lean como una sola unidad. */
.asignacion-bloque .asignacion:not(:first-child) {
  margin-top: 0.25rem;
}
.bloque-modificada,
.bloque-nueva,
.bloque-eliminada {
  padding: 0.5rem 0.75rem;
  margin-left: -0.75rem;
}
.bloque-modificada {
  background: #f5f9ff;
  border-left: 3px solid #3b82f6;
}
.bloque-nueva {
  background: #f1fbf5;
  border-left: 3px solid #22c55e;
}
.bloque-eliminada {
  background: #fdf4f4;
  border-left: 3px solid #f43f5e;
}

/* Valores de la línea "antes" que NO han cambiado: se repiten como contexto, atenuados,
   para que la vista se vaya a lo que sí cambia. */
.campo-igual.p-inputtext,
.campo-igual {
  background: #f8fafc !important;
  border-style: dashed !important;
  color: #94a3b8 !important;
  opacity: 1;
}
.texto-igual {
  opacity: 0.45;
}

/* Valor anterior de un campo que ha cambiado. Misma paleta que el profesor de baja
   (.input-baja), para que "lo que ya no vale" se lea igual en toda la pantalla. */
.campo-antes.p-inputtext,
.campo-antes {
  text-decoration: line-through !important;
  color: #b91c1c !important;
  border-color: #fca5a5 !important;
  background: #fef2f2 !important;
  opacity: 1 !important;
}
.texto-antes {
  color: #b91c1c;
  text-decoration: line-through;
}

/* Valor nuevo de un campo que ha cambiado (y todos los campos de una asignación nueva). */
.campo-ahora.p-inputtext,
.campo-ahora {
  color: #15803d !important;
  font-weight: 700 !important;
  border-color: #22c55e !important;
  background: #eefaf3 !important;
  opacity: 1 !important;
}
.texto-ahora {
  color: #15803d;
  font-weight: 700;
}

/* Grupo que sólo existe en la validada: no se puede editar, así que se le oculta el lápiz
   del row editor (mismo recurso que se usa con .grupo-edicion-duplicado y el guardar). */
.grupo-fantasma > td {
  background-color: #fdf4f4 !important;
}
.grupo-fantasma .p-datatable-row-editor-init,
.grupo-fantasma .p-row-editor-init {
  display: none !important;
}

/* Contadores de cambios en la cabecera de la asignatura: "1 nueva · 2 modificadas · 1 eliminada" */
.cnt-cambios {
  display: inline-flex;
  gap: 5px;
}
.cnt-cambios > span {
  font-size: 11px;
  font-weight: 800;
  border-radius: 6px;
  padding: 1px 7px;
  white-space: nowrap;
}
.cnt-nuevas {
  color: #15803d;
  background: #e7f8ee;
  border: 1px solid #a7d9bd;
}
.cnt-modificadas {
  color: #1d4ed8;
  background: #e8f1fe;
  border: 1px solid #bcd7f6;
}
.cnt-eliminadas {
  color: #9f1239;
  background: #fdeaea;
  border: 1px solid #e7b7b7;
}

/* Fila de asignatura con asignaciones distintas de la copia: tinte tenue + acento lateral fino */
.fila-distinta-copia > td {
  background-color: #f5f9ff !important;
}
.fila-distinta-copia > td:first-child {
  box-shadow: inset 3px 0 0 0 #93c5fd;
}

/* Fila de grupo en edición que contiene una asignación duplicada:
   - Tinte rosado para destacar visualmente
   - Se oculta el botón "Guardar" del row editor para impedir confirmar
*/
.grupo-edicion-duplicado > td {
  background-color: #fff1f2 !important;
}
.grupo-edicion-duplicado .p-datatable-row-editor-save,
.grupo-edicion-duplicado .p-row-editor-save {
  display: none !important;
}


/* ── Filtros: ámbito a la izquierda, estado y exportar a la derecha, buscador debajo ── */
.sol-filtros[data-v-ecd1f44d] {
    border-top: 1px solid var(--p-surface-200);
    border-bottom: 1px solid var(--p-surface-200);
    background: var(--p-surface-0);
    padding: 20px 0 16px;
}
.sol-filtros-row[data-v-ecd1f44d] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 16px;
    flex-wrap: wrap;
}
.sol-filtros-l[data-v-ecd1f44d],
.sol-filtros-r[data-v-ecd1f44d] {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
}
.sol-search-row[data-v-ecd1f44d] {
    margin-top: 14px;
}
.sol-search[data-v-ecd1f44d] {
    width: 22rem;
    max-width: 100%;
}
.sol-search[data-v-ecd1f44d] input {
    width: 100%;
}

/* ── Asignatura: solo nombre y plan; el resto del detalle vive en el modal ── */
.sol-asig-nm[data-v-ecd1f44d] {
    font-size: 14px;
    font-weight: 800;
    letter-spacing: -0.01em;
    color: var(--p-surface-800);
    margin: 0;
}
.sol-asig-plan[data-v-ecd1f44d] {
    font-size: 12.5px;
    color: var(--p-surface-500);
    margin: 4px 0 0;
    line-height: 1.35;
}

/* ── Tabla ── */
[data-v-ecd1f44d] .p-datatable-thead > tr > th {
    font-size: 10.5px;
    font-weight: 700;
    letter-spacing: 0.45px;
    text-transform: uppercase;
    color: var(--p-surface-500);
    background: var(--p-surface-50);
    border-bottom: 1px solid var(--p-surface-200);
    padding: 11px 16px;
    white-space: nowrap;
}
[data-v-ecd1f44d] .p-datatable-tbody > tr > td {
    padding: 14px 16px;
    border-bottom: 1px solid var(--p-surface-100);
    vertical-align: middle;
    color: var(--p-surface-700);
}
[data-v-ecd1f44d] .p-datatable-tbody > tr {
    transition: background-color 0.12s ease;
}
[data-v-ecd1f44d] .p-datatable-tbody > tr:hover {
    background: var(--p-surface-50);
}

/* ── Fecha + antigüedad (en rojo si lleva más de una semana pendiente) ── */
.sol-fecha[data-v-ecd1f44d] {
    font-weight: 700;
    color: var(--p-surface-700);
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}
.sol-rel[data-v-ecd1f44d] {
    display: block;
    font-size: 11px;
    font-weight: 600;
    color: var(--p-surface-400);
    margin-top: 3px;
}
.sol-rel-old[data-v-ecd1f44d] {
    color: #dc2626;
}

/* ── Docente asignado ── */
.sol-asignado[data-v-ecd1f44d] {
    display: inline-flex;
    align-items: center;
    gap: 8px;
}
.sol-av[data-v-ecd1f44d] {
    width: 26px;
    height: 26px;
    border-radius: 50%;
    flex: none;
    display: grid;
    place-items: center;
    font-size: 10px;
    font-weight: 800;
    background: #eef4fb;
    color: #234a72;
    border: 1px solid #cfe0f1;
}
.sol-sin[data-v-ecd1f44d] {
    color: var(--p-surface-400);
    font-style: italic;
}
.sol-estado-tag[data-v-ecd1f44d] {
    white-space: nowrap;
}

/* ── Estado vacío ── */
.sol-empty[data-v-ecd1f44d] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
    padding: 48px 20px;
    text-align: center;
}
.sol-empty-ic[data-v-ecd1f44d] {
    width: 52px;
    height: 52px;
    border-radius: 14px;
    background: var(--p-surface-100);
    color: var(--p-surface-400);
    display: grid;
    place-items: center;
    font-size: 20px;
    margin-bottom: 4px;
}
.sol-empty-t[data-v-ecd1f44d] {
    margin: 0;
    font-size: 14.5px;
    font-weight: 800;
    color: var(--p-surface-700);
}
.sol-empty-s[data-v-ecd1f44d] {
    margin: 0;
    font-size: 13px;
    color: var(--p-surface-500);
    max-width: 44ch;
}

/* ══ MODAL ══ */
.sol-age[data-v-ecd1f44d] {
    display: inline-flex;
    align-items: center;
    font-size: 11px;
    font-weight: 700;
    padding: 4px 10px;
    border-radius: 20px;
    background: #fef2f2;
    color: #dc2626;
    border: 1px solid #fecaca;
    white-space: nowrap;
    flex: none;
}

/* Resolución de una solicitud ya cerrada: lo primero que se lee */
.sol-res[data-v-ecd1f44d] {
    display: flex;
    align-items: center;
    gap: 12px;
    border: 1px solid;
    border-radius: 12px;
    padding: 13px 15px;
}
.sol-res-ok[data-v-ecd1f44d] { background: #ecfdf5; border-color: #bbf7d0;
}
.sol-res-bad[data-v-ecd1f44d] { background: #fef2f2; border-color: #fecaca;
}
.sol-res-info[data-v-ecd1f44d] { background: #f5f3ff; border-color: #ddd6fe;
}
.sol-res-ic[data-v-ecd1f44d] {
    width: 38px;
    height: 38px;
    border-radius: 11px;
    flex: none;
    display: grid;
    place-items: center;
    font-size: 15px;
    background: #fff;
}
.sol-res-ok .sol-res-ic[data-v-ecd1f44d] { color: #15803d;
}
.sol-res-bad .sol-res-ic[data-v-ecd1f44d] { color: #b91c1c;
}
.sol-res-info .sol-res-ic[data-v-ecd1f44d] { color: #6d28d9;
}
.sol-res-t[data-v-ecd1f44d] { flex: 1; min-width: 0;
}
.sol-res-l[data-v-ecd1f44d] {
    font-size: 10.5px;
    font-weight: 700;
    letter-spacing: 0.5px;
    text-transform: uppercase;
    margin: 0;
}
.sol-res-ok .sol-res-l[data-v-ecd1f44d] { color: #15803d;
}
.sol-res-bad .sol-res-l[data-v-ecd1f44d] { color: #b91c1c;
}
.sol-res-info .sol-res-l[data-v-ecd1f44d] { color: #6d28d9;
}
.sol-res-v[data-v-ecd1f44d] {
    font-size: 14.5px;
    font-weight: 800;
    color: var(--p-surface-800);
    margin: 3px 0 0;
    display: flex;
    align-items: center;
    gap: 9px;
    flex-wrap: wrap;
}

/* Tarjeta de asignatura con chips (el detalle que se quitó de la tabla) */
.sol-card[data-v-ecd1f44d] {
    border: 1px solid var(--p-surface-200);
    border-radius: 11px;
    padding: 13px 14px;
    background: var(--p-surface-50);
}
.sol-card-nm[data-v-ecd1f44d] {
    font-size: 15px;
    font-weight: 800;
    letter-spacing: -0.01em;
    color: var(--p-surface-800);
    margin: 0;
}
.sol-chips[data-v-ecd1f44d] {
    display: flex;
    gap: 5px;
    flex-wrap: wrap;
    margin-top: 8px;
}
.sol-chip[data-v-ecd1f44d] {
    font-size: 10.5px;
    font-weight: 700;
    color: var(--p-surface-600);
    background: var(--p-surface-100);
    border: 1px solid var(--p-surface-200);
    border-radius: 6px;
    padding: 2px 8px;
    white-space: nowrap;
}
.sol-chip-plan[data-v-ecd1f44d] {
    color: #234a72;
    background: #eef4fb;
    border-color: #cfe0f1;
    white-space: normal;
}
.sol-chip-tipo[data-v-ecd1f44d] {
    color: #0ea5e9;
    background: #eff6ff;
    border-color: #bfdbfe;
}
.sol-chip-num[data-v-ecd1f44d] {
    color: #234a72;
    background: #eef4fb;
    border-color: #cfe0f1;
    font-variant-numeric: tabular-nums;
}

/* Hilo: observación del coordinador y respuesta del revisor */
.sol-thread[data-v-ecd1f44d] {
    display: flex;
    flex-direction: column;
}
.sol-msg[data-v-ecd1f44d] {
    display: flex;
    gap: 11px;
    position: relative;
    padding-bottom: 14px;
}
.sol-msg[data-v-ecd1f44d]:last-child { padding-bottom: 0;
}
.sol-msg[data-v-ecd1f44d]::before {
    content: "";
    position: absolute;
    left: 15px;
    top: 34px;
    bottom: 0;
    width: 2px;
    background: var(--p-surface-200);
}
.sol-msg[data-v-ecd1f44d]:last-child::before { display: none;
}
.sol-msg-av[data-v-ecd1f44d] {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    flex: none;
    display: grid;
    place-items: center;
    font-size: 12px;
    z-index: 1;
}
.sol-av-coord[data-v-ecd1f44d] { background: #eef4fb; color: #234a72; border: 1px solid #cfe0f1;
}
.sol-av-rev[data-v-ecd1f44d] {
    background: var(--p-surface-100);
    color: var(--p-surface-600);
    border: 1px solid var(--p-surface-200);
}
.sol-msg-c[data-v-ecd1f44d] { flex: 1; min-width: 0;
}
.sol-msg-w[data-v-ecd1f44d] {
    display: flex;
    align-items: baseline;
    gap: 8px;
    flex-wrap: wrap;
}
.sol-msg-who[data-v-ecd1f44d] {
    font-size: 12.5px;
    font-weight: 800;
    color: var(--p-surface-800);
}
.sol-msg-when[data-v-ecd1f44d] {
    font-size: 11.5px;
    color: var(--p-surface-400);
    font-variant-numeric: tabular-nums;
}
.sol-msg-txt[data-v-ecd1f44d] {
    margin: 7px 0 0;
    font-size: 13.5px;
    color: var(--p-surface-700);
    background: var(--p-surface-0);
    border: 1px solid var(--p-surface-200);
    border-radius: 9px;
    padding: 10px 12px;
    white-space: pre-line;
}
.sol-msg-coord[data-v-ecd1f44d] { border-left: 3px solid #0ea5e9;
}
.sol-msg-rev[data-v-ecd1f44d] {
    border-left: 3px solid var(--p-surface-300);
    background: var(--p-surface-50);
}
.sol-msg-none[data-v-ecd1f44d] {
    margin: 7px 0 0;
    font-size: 12.5px;
    color: var(--p-surface-400);
    font-style: italic;
    background: var(--p-surface-50);
    border: 1px dashed var(--p-surface-300);
    border-radius: 9px;
    padding: 10px 12px;
}
.sol-quote[data-v-ecd1f44d] {
    margin: 0;
    font-size: 13.5px;
    color: var(--p-surface-700);
    background: var(--p-surface-0);
    border: 1px solid var(--p-surface-200);
    border-left: 3px solid #0ea5e9;
    border-radius: 9px;
    padding: 10px 12px;
    white-space: pre-line;
}

/* Selector de acción */
.sol-actions[data-v-ecd1f44d] {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 8px;
}
@media (max-width: 640px) {
.sol-actions[data-v-ecd1f44d] { grid-template-columns: 1fr;
}
}
.sol-opt[data-v-ecd1f44d] {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    text-align: left;
    font-family: inherit;
    border: 1px solid var(--p-surface-200);
    border-radius: 11px;
    padding: 11px 12px;
    background: var(--p-surface-0);
    cursor: pointer;
    transition: border-color 0.15s, box-shadow 0.15s, background 0.15s;
}
.sol-opt[data-v-ecd1f44d]:hover {
    border-color: var(--p-surface-300);
    background: var(--p-surface-50);
}
.sol-opt[data-v-ecd1f44d]:focus-visible {
    outline: 2px solid #0ea5e9;
    outline-offset: 2px;
}
.sol-opt[aria-pressed="true"][data-v-ecd1f44d] {
    border-color: #1a3a5c;
    box-shadow: inset 0 0 0 1px #1a3a5c;
    background: var(--p-surface-50);
}
.sol-opt-dan[aria-pressed="true"][data-v-ecd1f44d] {
    border-color: #dc2626;
    box-shadow: inset 0 0 0 1px #dc2626;
}
.sol-opt-ic[data-v-ecd1f44d] {
    font-size: 14px;
    margin-bottom: 5px;
    color: var(--p-surface-600);
}
.sol-opt[aria-pressed="true"] .sol-opt-ic[data-v-ecd1f44d] { color: #1a3a5c;
}
.sol-opt-dan[aria-pressed="true"] .sol-opt-ic[data-v-ecd1f44d] { color: #dc2626;
}
.sol-opt-n[data-v-ecd1f44d] {
    font-size: 12.5px;
    font-weight: 800;
    color: var(--p-surface-800);
}
.sol-opt-d[data-v-ecd1f44d] {
    font-size: 11px;
    color: var(--p-surface-500);
    margin-top: 2px;
    line-height: 1.35;
}

/* Profesor elegido */
.sol-picked[data-v-ecd1f44d] {
    display: flex;
    align-items: center;
    gap: 11px;
    border: 1px solid #cfe0f1;
    background: #f7fbff;
    border-radius: 10px;
    padding: 11px 13px;
}
.sol-picked-n[data-v-ecd1f44d] {
    flex: 1;
    min-width: 0;
    font-size: 13.5px;
    font-weight: 800;
    color: var(--p-surface-800);
}
.sol-av-lg[data-v-ecd1f44d] {
    width: 34px;
    height: 34px;
    font-size: 11px;
    background: #fff;
}

/* Ayuda y contador del texto */
.sol-helprow[data-v-ecd1f44d] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 10px;
    font-size: 11.5px;
}
.sol-help[data-v-ecd1f44d] { color: var(--p-surface-500);
}
.sol-help-err[data-v-ecd1f44d] { color: #dc2626; font-weight: 700;
}
.sol-count[data-v-ecd1f44d] {
    color: var(--p-surface-400);
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}
.sol-foot-hint[data-v-ecd1f44d] {
    margin-right: auto;
    font-size: 11.5px;
    color: var(--p-surface-500);
}

/* ── Carga ── */
.loading-state[data-v-ecd1f44d] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 16px;
    min-height: 320px;
    padding: 40px 20px;
}
.loading-spinner-wrap[data-v-ecd1f44d] {
    width: 68px;
    height: 68px;
    border-radius: 50%;
    display: grid;
    place-items: center;
    background: #eef4fb;
}
.loading-label[data-v-ecd1f44d] {
    font-size: 13px;
    font-weight: 600;
    color: var(--p-surface-500);
    letter-spacing: 0.2px;
    margin: 0;
}
/* Recolorea el spinner a navy conservando el trazo animado. */
[data-v-ecd1f44d] .p-progressspinner-circle {
    stroke: #1a3a5c !important;
    animation: p-progressspinner-dash 1.5s ease-in-out infinite !important;
}

/* ── Filtros: ámbito a la izquierda, estado a la derecha, buscador debajo ── */
.sol-filtros[data-v-699608f3] {
    border-top: 1px solid var(--p-surface-200);
    border-bottom: 1px solid var(--p-surface-200);
    background: var(--p-surface-0);
    padding: 20px 0 16px;
}
.sol-filtros-row[data-v-699608f3] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 16px;
    flex-wrap: wrap;
}
.sol-filtros-l[data-v-699608f3],
.sol-filtros-r[data-v-699608f3] {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
}
.sol-search-row[data-v-699608f3] {
    margin-top: 14px;
}
.sol-search[data-v-699608f3] {
    width: 22rem;
    max-width: 100%;
}
.sol-search[data-v-699608f3] input {
    width: 100%;
}

/* ── Asignatura: solo nombre y plan; el resto del detalle vive en el modal ── */
.sol-asig-nm[data-v-699608f3] {
    font-size: 14px;
    font-weight: 800;
    letter-spacing: -0.01em;
    color: var(--p-surface-800);
    margin: 0;
}
.sol-asig-plan[data-v-699608f3] {
    font-size: 12.5px;
    color: var(--p-surface-500);
    margin: 4px 0 0;
    line-height: 1.35;
}

/* ── Tabla ── */
[data-v-699608f3] .p-datatable-thead > tr > th {
    font-size: 10.5px;
    font-weight: 700;
    letter-spacing: 0.45px;
    text-transform: uppercase;
    color: var(--p-surface-500);
    background: var(--p-surface-50);
    border-bottom: 1px solid var(--p-surface-200);
    padding: 11px 16px;
    white-space: nowrap;
}
[data-v-699608f3] .p-datatable-tbody > tr > td {
    padding: 14px 16px;
    border-bottom: 1px solid var(--p-surface-100);
    vertical-align: middle;
    color: var(--p-surface-700);
}
[data-v-699608f3] .p-datatable-tbody > tr {
    transition: background-color 0.12s ease;
}
[data-v-699608f3] .p-datatable-tbody > tr:hover {
    background: var(--p-surface-50);
}

/* ── Fecha + antigüedad (en rojo si lleva más de una semana pendiente) ── */
.sol-fecha[data-v-699608f3] {
    font-weight: 700;
    color: var(--p-surface-700);
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}
.sol-rel[data-v-699608f3] {
    display: block;
    font-size: 11px;
    font-weight: 600;
    color: var(--p-surface-400);
    margin-top: 3px;
}
.sol-rel-old[data-v-699608f3] {
    color: #dc2626;
}

/* ── Grupo asignado ── */
.sol-asignado[data-v-699608f3] {
    display: inline-flex;
    align-items: center;
    gap: 8px;
}
.sol-av[data-v-699608f3] {
    width: 26px;
    height: 26px;
    border-radius: 50%;
    flex: none;
    display: grid;
    place-items: center;
    font-size: 10px;
    font-weight: 800;
    background: #eef4fb;
    color: #234a72;
    border: 1px solid #cfe0f1;
}
.sol-av-grupo[data-v-699608f3] {
    background: #f5f3ff;
    color: #7c3aed;
    border-color: #ddd6fe;
}
.sol-sin[data-v-699608f3] {
    color: var(--p-surface-400);
    font-style: italic;
}
.sol-estado-tag[data-v-699608f3] {
    white-space: nowrap;
}

/* ── Estado vacío ── */
.sol-empty[data-v-699608f3] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
    padding: 48px 20px;
    text-align: center;
}
.sol-empty-ic[data-v-699608f3] {
    width: 52px;
    height: 52px;
    border-radius: 14px;
    background: var(--p-surface-100);
    color: var(--p-surface-400);
    display: grid;
    place-items: center;
    font-size: 20px;
    margin-bottom: 4px;
}
.sol-empty-t[data-v-699608f3] {
    margin: 0;
    font-size: 14.5px;
    font-weight: 800;
    color: var(--p-surface-700);
}
.sol-empty-s[data-v-699608f3] {
    margin: 0;
    font-size: 13px;
    color: var(--p-surface-500);
    max-width: 44ch;
}

/* ══ MODAL ══ */
.sol-age[data-v-699608f3] {
    display: inline-flex;
    align-items: center;
    font-size: 11px;
    font-weight: 700;
    padding: 4px 10px;
    border-radius: 20px;
    background: #fef2f2;
    color: #dc2626;
    border: 1px solid #fecaca;
    white-space: nowrap;
    flex: none;
}

/* Resolución de una solicitud ya cerrada */
.sol-res[data-v-699608f3] {
    display: flex;
    align-items: center;
    gap: 12px;
    border: 1px solid;
    border-radius: 12px;
    padding: 13px 15px;
}
.sol-res-ok[data-v-699608f3] { background: #ecfdf5; border-color: #bbf7d0;
}
.sol-res-bad[data-v-699608f3] { background: #fef2f2; border-color: #fecaca;
}
.sol-res-info[data-v-699608f3] { background: #f5f3ff; border-color: #ddd6fe;
}
.sol-res-ic[data-v-699608f3] {
    width: 38px;
    height: 38px;
    border-radius: 11px;
    flex: none;
    display: grid;
    place-items: center;
    font-size: 15px;
    background: #fff;
}
.sol-res-ok .sol-res-ic[data-v-699608f3] { color: #15803d;
}
.sol-res-bad .sol-res-ic[data-v-699608f3] { color: #b91c1c;
}
.sol-res-info .sol-res-ic[data-v-699608f3] { color: #6d28d9;
}
.sol-res-t[data-v-699608f3] { flex: 1; min-width: 0;
}
.sol-res-l[data-v-699608f3] {
    font-size: 10.5px;
    font-weight: 700;
    letter-spacing: 0.5px;
    text-transform: uppercase;
    margin: 0;
}
.sol-res-ok .sol-res-l[data-v-699608f3] { color: #15803d;
}
.sol-res-bad .sol-res-l[data-v-699608f3] { color: #b91c1c;
}
.sol-res-info .sol-res-l[data-v-699608f3] { color: #6d28d9;
}
.sol-res-v[data-v-699608f3] {
    font-size: 14.5px;
    font-weight: 800;
    color: var(--p-surface-800);
    margin: 3px 0 0;
    display: flex;
    align-items: center;
    gap: 9px;
    flex-wrap: wrap;
}

/* Tarjeta de asignatura */
.sol-card[data-v-699608f3] {
    border: 1px solid var(--p-surface-200);
    border-radius: 11px;
    padding: 13px 14px;
    background: var(--p-surface-50);
}
.sol-card-nm[data-v-699608f3] {
    font-size: 15px;
    font-weight: 800;
    letter-spacing: -0.01em;
    color: var(--p-surface-800);
    margin: 0;
}
.sol-chips[data-v-699608f3] {
    display: flex;
    gap: 5px;
    flex-wrap: wrap;
    margin-top: 8px;
}
.sol-chip[data-v-699608f3] {
    font-size: 10.5px;
    font-weight: 700;
    color: var(--p-surface-600);
    background: var(--p-surface-100);
    border: 1px solid var(--p-surface-200);
    border-radius: 6px;
    padding: 2px 8px;
    white-space: nowrap;
}
.sol-chip-plan[data-v-699608f3] {
    color: #234a72;
    background: #eef4fb;
    border-color: #cfe0f1;
    white-space: normal;
}

/* Hilo: observación del coordinador y respuesta del revisor */
.sol-thread[data-v-699608f3] {
    display: flex;
    flex-direction: column;
}
.sol-msg[data-v-699608f3] {
    display: flex;
    gap: 11px;
    position: relative;
    padding-bottom: 14px;
}
.sol-msg[data-v-699608f3]:last-child { padding-bottom: 0;
}
.sol-msg[data-v-699608f3]::before {
    content: "";
    position: absolute;
    left: 15px;
    top: 34px;
    bottom: 0;
    width: 2px;
    background: var(--p-surface-200);
}
.sol-msg[data-v-699608f3]:last-child::before { display: none;
}
.sol-msg-av[data-v-699608f3] {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    flex: none;
    display: grid;
    place-items: center;
    font-size: 12px;
    z-index: 1;
}
.sol-av-coord[data-v-699608f3] { background: #eef4fb; color: #234a72; border: 1px solid #cfe0f1;
}
.sol-av-rev[data-v-699608f3] {
    background: var(--p-surface-100);
    color: var(--p-surface-600);
    border: 1px solid var(--p-surface-200);
}
.sol-msg-c[data-v-699608f3] { flex: 1; min-width: 0;
}
.sol-msg-w[data-v-699608f3] {
    display: flex;
    align-items: baseline;
    gap: 8px;
    flex-wrap: wrap;
}
.sol-msg-who[data-v-699608f3] {
    font-size: 12.5px;
    font-weight: 800;
    color: var(--p-surface-800);
}
.sol-msg-when[data-v-699608f3] {
    font-size: 11.5px;
    color: var(--p-surface-400);
    font-variant-numeric: tabular-nums;
}
.sol-msg-txt[data-v-699608f3] {
    margin: 7px 0 0;
    font-size: 13.5px;
    color: var(--p-surface-700);
    background: var(--p-surface-0);
    border: 1px solid var(--p-surface-200);
    border-radius: 9px;
    padding: 10px 12px;
    white-space: pre-line;
}
.sol-msg-coord[data-v-699608f3] { border-left: 3px solid #0ea5e9;
}
.sol-msg-rev[data-v-699608f3] {
    border-left: 3px solid var(--p-surface-300);
    background: var(--p-surface-50);
}
.sol-msg-none[data-v-699608f3] {
    margin: 7px 0 0;
    font-size: 12.5px;
    color: var(--p-surface-400);
    font-style: italic;
    background: var(--p-surface-50);
    border: 1px dashed var(--p-surface-300);
    border-radius: 9px;
    padding: 10px 12px;
}
.sol-quote[data-v-699608f3] {
    margin: 0;
    font-size: 13.5px;
    color: var(--p-surface-700);
    background: var(--p-surface-0);
    border: 1px solid var(--p-surface-200);
    border-left: 3px solid #0ea5e9;
    border-radius: 9px;
    padding: 10px 12px;
    white-space: pre-line;
}

/* Selector de acción (grupos: 2 acciones) */
.sol-actions[data-v-699608f3] {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 8px;
}
@media (max-width: 640px) {
.sol-actions[data-v-699608f3] { grid-template-columns: 1fr;
}
}
.sol-opt[data-v-699608f3] {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    text-align: left;
    font-family: inherit;
    border: 1px solid var(--p-surface-200);
    border-radius: 11px;
    padding: 11px 12px;
    background: var(--p-surface-0);
    cursor: pointer;
    transition: border-color 0.15s, box-shadow 0.15s, background 0.15s;
}
.sol-opt[data-v-699608f3]:hover {
    border-color: var(--p-surface-300);
    background: var(--p-surface-50);
}
.sol-opt[data-v-699608f3]:focus-visible {
    outline: 2px solid #0ea5e9;
    outline-offset: 2px;
}
.sol-opt[aria-pressed="true"][data-v-699608f3] {
    border-color: #1a3a5c;
    box-shadow: inset 0 0 0 1px #1a3a5c;
    background: var(--p-surface-50);
}
.sol-opt-dan[aria-pressed="true"][data-v-699608f3] {
    border-color: #dc2626;
    box-shadow: inset 0 0 0 1px #dc2626;
}
.sol-opt-ic[data-v-699608f3] {
    font-size: 14px;
    margin-bottom: 5px;
    color: var(--p-surface-600);
}
.sol-opt[aria-pressed="true"] .sol-opt-ic[data-v-699608f3] { color: #1a3a5c;
}
.sol-opt-dan[aria-pressed="true"] .sol-opt-ic[data-v-699608f3] { color: #dc2626;
}
.sol-opt-n[data-v-699608f3] {
    font-size: 12.5px;
    font-weight: 800;
    color: var(--p-surface-800);
}
.sol-opt-d[data-v-699608f3] {
    font-size: 11px;
    color: var(--p-surface-500);
    margin-top: 2px;
    line-height: 1.35;
}

/* Ayuda y contador del texto */
.sol-helprow[data-v-699608f3] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 10px;
    font-size: 11.5px;
}
.sol-help[data-v-699608f3] { color: var(--p-surface-500);
}
.sol-help-err[data-v-699608f3] { color: #dc2626; font-weight: 700;
}
.sol-count[data-v-699608f3] {
    color: var(--p-surface-400);
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}
.sol-foot-hint[data-v-699608f3] {
    margin-right: auto;
    font-size: 11.5px;
    color: var(--p-surface-500);
}

/* ── Carga ── */
.loading-state[data-v-699608f3] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 16px;
    min-height: 320px;
    padding: 40px 20px;
}
.loading-spinner-wrap[data-v-699608f3] {
    width: 68px;
    height: 68px;
    border-radius: 50%;
    display: grid;
    place-items: center;
    background: #eef4fb;
}
.loading-label[data-v-699608f3] {
    font-size: 13px;
    font-weight: 600;
    color: var(--p-surface-500);
    letter-spacing: 0.2px;
    margin: 0;
}
/* Recolorea el spinner a navy conservando el trazo animado. */
[data-v-699608f3] .p-progressspinner-circle {
    stroke: #1a3a5c !important;
    animation: p-progressspinner-dash 1.5s ease-in-out infinite !important;
}

/* ── Select (Curso, Centros, Estudios) e InputText (Profesor) ── */
#filtros-horas-docencia [data-pc-name="select"],
#filtros-horas-docencia [data-pc-name="inputtext"] {
    background: #fff !important;
    border: 1px solid #d1d9e6 !important;
    border-radius: 7px !important;
    min-height: 40px !important;
    height: 40px !important;
    font-size: 13px !important;
    color: #334155 !important;
    box-shadow: none !important;
}
#filtros-horas-docencia [data-pc-name="select"] {
    display: flex !important;
    align-items: center !important;
    padding: 0 !important;
}
#filtros-horas-docencia [data-pc-name="select"] [data-pc-section="label"] {
    padding: 0 8px 0 13px !important;
    font-size: 13px !important;
    color: #334155 !important;
    display: flex !important;
    align-items: center !important;
}
#filtros-horas-docencia [data-pc-name="select"] [data-pc-section="dropdown"] {
    color: #94a3b8 !important;
    width: 2rem !important;
}
/* Input Profesor (dentro de IconField) */
#filtros-horas-docencia [data-pc-name="iconfield"] { display: block; width: 100%;
}
#filtros-horas-docencia [data-pc-name="inputtext"] {
    width: 100% !important;
    padding: 9px 13px !important;
}
#filtros-horas-docencia [data-pc-name="iconfield"] [data-pc-name="inputtext"] {
    padding-left: 36px !important;
}
#filtros-horas-docencia [data-pc-name="inputicon"] { color: #94a3b8 !important;
}

/* ── Segmentado (Tipo de búsqueda) idéntico al mockup ── */
#filtros-horas-docencia [data-pc-name="selectbutton"] {
    display: inline-flex !important;
    height: 40px !important;
    border: 1px solid #d1d9e6 !important;
    border-radius: 7px !important;
    overflow: hidden !important;
    background: #fff !important;
}
#filtros-horas-docencia [data-pc-name="selectbutton"] button {
    border: 0 !important;
    border-radius: 0 !important;
    background: #fff !important;
    color: #64748b !important;
    font-size: 12.5px !important;
    font-weight: 600 !important;
    padding: 0 16px !important;
    height: 100% !important;
}
#filtros-horas-docencia [data-pc-name="selectbutton"] button::before { display: none !important;
}
#filtros-horas-docencia [data-pc-name="selectbutton"] button + button {
    border-left: 1px solid #d1d9e6 !important;
}
#filtros-horas-docencia [data-pc-name="selectbutton"] button[data-p-checked="true"] {
    background: #1a3a5c !important;
    color: #fff !important;
}

/* ── Botones de exportar en verde del mockup (#16a34a) ── */
#horas-docencia-exportar button {
    background-color: #16a34a !important;
    border-color: #16a34a !important;
    color: #fff !important;
}
#horas-docencia-exportar button:hover {
    background-color: #15803d !important;
    border-color: #15803d !important;
}

/* ── Botón "Ver docencia": navy relleno con texto blanco ── */
.btn-ver-docencia {
    background-color: #1a3a5c !important;
    border-color: #1a3a5c !important;
    color: #fff !important;
}
.btn-ver-docencia:hover {
    background-color: #143050 !important;
    border-color: #143050 !important;
}
.btn-ver-docencia .p-button-icon,
.btn-ver-docencia .p-button-label {
    color: #fff !important;
}

/* Filas con algo más de aire, coherente con el resto de listados (GestionReduccionesARC). */
[data-v-44d44582] td,[data-v-44d44582] th {
    padding-top: 0.87rem;
    padding-bottom: 0.87rem;
}

/* Columnas de horas (4ª a 8ª: Horas título, Otros títulos, Reducción, Horas totales,
   Desfase) centradas, tanto la cabecera como las celdas. Se fuerza por posición para
   sortear el estilado unstyled de PrimeVue. */
[data-v-44d44582] thead th:nth-child(n+4):nth-child(-n+8),[data-v-44d44582] tbody td:nth-child(n+4):nth-child(-n+8) {
    text-align: center !important;
}
[data-v-44d44582] thead th:nth-child(n+4):nth-child(-n+8) > * {
    justify-content: center !important;
}

.reducciones-sidebar[data-v-96c3bf87] {
    background: #1a3a5c;
    color: #fff;
}
.nav-link[data-v-96c3bf87] {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px 24px;
    color: rgba(255, 255, 255, 0.7);
    font-size: 13.5px;
    font-weight: 400;
    border-left: 3px solid transparent;
    transition: background 0.15s ease, color 0.15s ease, border-left-color 0.15s ease;
}
.nav-link i[data-v-96c3bf87] {
    font-size: 16px;
    opacity: 0.8;
}
.nav-link[data-v-96c3bf87]:hover {
    background: rgba(255, 255, 255, 0.06);
    color: #fff;
}
.nav-link:hover i[data-v-96c3bf87] {
    opacity: 1;
}
.nav-link.is-active[data-v-96c3bf87] {
    background: rgba(255, 255, 255, 0.1);
    border-left-color: #4fc3f7;
    color: #fff;
    font-weight: 600;
}
.nav-link.is-active i[data-v-96c3bf87] {
    opacity: 1;
}

.field[data-v-c7f94221] { display: flex; flex-direction: column; gap: 7px;
}
.field-lbl[data-v-c7f94221] {
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.4px;
    text-transform: uppercase;
    color: var(--p-surface-500);
}
.req[data-v-c7f94221] { color: #dc2626;
}
.hint[data-v-c7f94221] { font-size: 11px; color: var(--p-surface-400);
}

/* Tarjeta de elemento seleccionado (profesor / ámbito) — fondo neutro */
.sel-card[data-v-c7f94221] {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 8px 10px;
    border: 1px solid var(--p-surface-200);
    border-radius: 10px;
    background: var(--p-surface-50);
}
.sel-ico[data-v-c7f94221] {
    width: 30px;
    height: 30px;
    border-radius: 8px;
    flex: none;
    display: inline-grid;
    place-items: center;
    background: var(--p-surface-200);
    color: var(--p-surface-600);
}

/* Bloque de ámbito — contenedor blanco/neutro, nada de fondo azul */
.ambito[data-v-c7f94221] {
    border: 1px solid var(--p-surface-200);
    border-radius: 10px;
    padding: 14px;
    background: #fff;
}
.callout[data-v-c7f94221] {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    font-size: 12.5px;
    color: var(--p-surface-600);
    background: var(--p-surface-50);
    border: 1px solid var(--p-surface-200);
    border-radius: 8px;
    padding: 9px 11px;
}
.callout .pi[data-v-c7f94221] { color: var(--p-surface-500); margin-top: 1px;
}
.results[data-v-c7f94221] {
    display: flex;
    flex-direction: column;
    gap: 6px;
    max-height: 20rem;
    overflow-y: auto;
    border: 1px solid var(--p-surface-200);
    border-radius: 10px;
    padding: 8px;
    margin-top: 10px;
}
.results-lbl[data-v-c7f94221] {
    font-size: 11px;
    font-weight: 600;
    color: var(--p-surface-400);
    margin: 2px 2px 4px;
}
.result-row[data-v-c7f94221] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 8px;
    padding: 8px 10px;
    border-radius: 8px;
    cursor: pointer;
    transition: background 0.12s;
}
.result-row[data-v-c7f94221]:hover { background: var(--p-surface-100);
}

/* Filas con algo más de aire; la tabla scrollea según su altura (GD-540) */
[data-v-a67bc16c] td,[data-v-a67bc16c] th {
    padding-top: 0.87rem;
    padding-bottom: 0.87rem;
}

/* --- KPIs (compactos, encima de la tabla; mismo lenguaje que Sustituciones) --- */
.kpi[data-v-a67bc16c] {
    position: relative;
    background: #fff;
    border: 1px solid var(--p-surface-200);
    border-radius: 9px;
    padding: 7px 10px 7px 13px;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    justify-content: center;
}
.kpi[data-v-a67bc16c]::before {
    content: '';
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 4px;
}
.kpi-total[data-v-a67bc16c]::before { background: #1a3a5c;
}
.kpi-prof[data-v-a67bc16c]::before { background: #0ea5e9;
}
.kpi-horas[data-v-a67bc16c]::before { background: #16a34a;
}
.kpi-cat[data-v-a67bc16c]::before { background: #7c3aed;
}
.kpi-lbl[data-v-a67bc16c] {
    font-size: 9.5px;
    font-weight: 700;
    letter-spacing: 0.4px;
    text-transform: uppercase;
    color: var(--p-surface-500);
    margin: 0;
    white-space: nowrap;
}
.kpi-val[data-v-a67bc16c] {
    font-size: 19px;
    font-weight: 800;
    letter-spacing: -0.02em;
    margin: 1px 0 0;
    color: var(--p-surface-800);
    line-height: 1.15;
}
.kpi-val small[data-v-a67bc16c] { font-size: 12px; color: var(--p-surface-400); font-weight: 700;
}

/* --- Token de categoría (color institucional, con icono) --- */
.cat-pill[data-v-a67bc16c] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 11.5px;
    font-weight: 700;
    padding: 3px 10px;
    border-radius: 20px;
    background: #eef4fb;
    color: #234a72;
    border: 1px solid #cfe0f1;
    white-space: nowrap;
}
.cat-pill .pi[data-v-a67bc16c] { font-size: 10px;
}

/* --- Horas: alineadas a la derecha, con unidad atenuada --- */
.hours-cell[data-v-a67bc16c] {
    font-weight: 800;
    font-size: 14px;
    color: var(--p-surface-800);
}
.hours-u[data-v-a67bc16c] {
    font-size: 10.5px;
    color: var(--p-surface-400);
    font-weight: 700;
    margin-left: 1px;
}
.tabular-nums[data-v-a67bc16c] { font-variant-numeric: tabular-nums;
}

/* Botones de acciones/observaciones un poco más grandes (área e icono) */
[data-v-a67bc16c] .btn-accion {
    width: 2.75rem;
    height: 2.75rem;
}
[data-v-a67bc16c] .btn-accion .pi {
    font-size: 1.2rem;
}

/* Filas con algo más de aire; la tabla scrollea según su altura (GD-540) */
[data-v-6f0cb90c] td,[data-v-6f0cb90c] th {
    padding-top: 0.87rem;
    padding-bottom: 0.87rem;
}

/* Filas con algo más de aire; la tabla scrollea según su altura */
[data-v-be79a7ca] td,[data-v-be79a7ca] th {
    padding-top: 0.87rem;
    padding-bottom: 0.87rem;
}

/* Líneas bajo el nombre: plan y asignatura/grupo */
.sub-linea[data-v-be79a7ca] {
    display: block;
    font-size: 11.5px;
    color: var(--p-surface-500);
    margin-top: 2px;
    font-variant-numeric: tabular-nums;
}

/* Botón "Ver sustitutos" */
.btn-sus[data-v-be79a7ca] {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    border: 1px solid var(--p-surface-300);
    background: #fff;
    color: #1a3a5c;
    font-weight: 700;
    font-size: 12px;
    padding: 5px 11px;
    border-radius: 8px;
    cursor: pointer;
}
.btn-sus[data-v-be79a7ca]:hover { background: #eef3f8;
}
.btn-sus .n[data-v-be79a7ca] {
    font-size: 10.5px;
    font-weight: 800;
    background: #1a3a5c;
    color: #fff;
    border-radius: 20px;
    padding: 1px 7px;
}
.btn-sus.vacio[data-v-be79a7ca] { color: var(--p-surface-400); border-style: dashed; cursor: default; background: transparent;
}

/* Popover de sustitutos */
.pop-sus[data-v-be79a7ca] { width: 340px;
}
.pop-head[data-v-be79a7ca] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 4px 4px 10px;
    border-bottom: 1px solid var(--p-surface-200);
}
.pop-head .t[data-v-be79a7ca] { font-size: 10.5px; font-weight: 800; letter-spacing: 0.5px; text-transform: uppercase; color: var(--p-surface-400);
}
.pop-head .total[data-v-be79a7ca] { font-size: 11px; font-weight: 700; color: var(--p-surface-500);
}
.pop-body[data-v-be79a7ca] { display: flex; flex-direction: column;
}
.sus-row[data-v-be79a7ca] {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 9px 2px;
    border-bottom: 1px solid var(--p-surface-100);
}
.sus-row[data-v-be79a7ca]:last-child { border-bottom: 0;
}
.sus-ico[data-v-be79a7ca] {
    width: 30px; height: 30px; border-radius: 8px; flex: none;
    display: inline-grid; place-items: center;
    background: var(--p-surface-100); color: var(--p-surface-500);
}
.sus-name[data-v-be79a7ca] { flex: 1; min-width: 0; font-size: 13px; font-weight: 600; color: var(--p-surface-800);
}
.resp[data-v-be79a7ca] {
    display: inline-flex; align-items: center; gap: 4px;
    font-size: 10.5px; font-weight: 800; color: #b45309;
    background: #fffbeb; border: 1px solid #fde68a; border-radius: 20px; padding: 1px 8px; white-space: nowrap;
}
.hbox[data-v-be79a7ca] {
    font-size: 12.5px; font-weight: 800; color: var(--p-surface-800);
    background: var(--p-surface-100); border: 1px solid var(--p-surface-200); border-radius: 7px; padding: 3px 9px; white-space: nowrap;
}
.horas-linea[data-v-be79a7ca] { display: flex; margin-top: 8px; border-top: 1px solid var(--p-surface-200);
}
.horas-linea .celda[data-v-be79a7ca] { flex: 1; text-align: center; padding: 8px 6px; border-right: 1px solid var(--p-surface-200);
}
.horas-linea .celda[data-v-be79a7ca]:last-child { border-right: 0;
}
.horas-linea .l[data-v-be79a7ca] { display: block; font-size: 9px; text-transform: uppercase; letter-spacing: 0.4px; font-weight: 700; color: var(--p-surface-400);
}
.horas-linea .v[data-v-be79a7ca] { display: block; font-size: 15px; font-weight: 800; margin-top: 2px; color: var(--p-surface-800);
}
.horas-linea .v.ok[data-v-be79a7ca] { color: #16a34a;
}
.horas-linea .v.warn[data-v-be79a7ca] { color: #d97706;
}
.tabular-nums[data-v-be79a7ca] { font-variant-numeric: tabular-nums;
}

/* Franja lateral de severidad por estado */
[data-v-be79a7ca] .fila-pend > td:first-child { box-shadow: inset 4px 0 0 0 #f59e0b;
}
[data-v-be79a7ca] .fila-val > td:first-child  { box-shadow: inset 4px 0 0 0 #16a34a;
}
[data-v-be79a7ca] .fila-rech > td:first-child { box-shadow: inset 4px 0 0 0 #dc2626;
}

/* --- KPIs (compactos, encima de la tabla) --- */
.kpi[data-v-be79a7ca] {
    position: relative;
    background: #fff;
    border: 1px solid var(--p-surface-200);
    border-radius: 9px;
    padding: 7px 10px 7px 13px;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    justify-content: center;
}
.kpi[data-v-be79a7ca]::before {
    content: '';
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 4px;
}
.kpi-all[data-v-be79a7ca]::before { background: #1a3a5c;
}
.kpi-pend[data-v-be79a7ca]::before { background: #f59e0b;
}
.kpi-val[data-v-be79a7ca]::before { background: #16a34a;
}
.kpi-rech[data-v-be79a7ca]::before { background: #dc2626;
}
.kpi-lbl[data-v-be79a7ca] {
    font-size: 9.5px;
    font-weight: 700;
    letter-spacing: 0.4px;
    text-transform: uppercase;
    color: var(--p-surface-500);
    margin: 0;
    white-space: nowrap;
}
.kpi-val[data-v-be79a7ca] {
    font-size: 19px;
    font-weight: 800;
    letter-spacing: -0.02em;
    margin: 1px 0 0;
    font-variant-numeric: tabular-nums;
    color: var(--p-surface-800);
    line-height: 1.15;
}
.kpi-val small[data-v-be79a7ca] { font-size: 12px;
}

/* --- Filtro segmentado --- */
.seg[data-v-be79a7ca] {
    display: inline-flex;
    border: 1px solid var(--p-surface-300);
    border-radius: 8px;
    overflow: hidden;
}
.seg-btn[data-v-be79a7ca] {
    border: 0;
    background: #fff;
    padding: 7px 14px;
    font-size: 12.5px;
    font-weight: 600;
    color: var(--p-surface-600);
    cursor: pointer;
    border-right: 1px solid var(--p-surface-200);
    display: inline-flex;
    align-items: center;
    gap: 7px;
    transition: background 0.15s, color 0.15s;
}
.seg-btn[data-v-be79a7ca]:last-child { border-right: 0;
}
.seg-btn[data-v-be79a7ca]:hover { background: var(--p-surface-50);
}
.seg-active[data-v-be79a7ca],
.seg-active[data-v-be79a7ca]:hover { background: #1a3a5c; color: #fff;
}
.seg-cnt[data-v-be79a7ca] {
    font-size: 10.5px;
    font-weight: 800;
    background: rgba(0, 0, 0, 0.08);
    border-radius: 20px;
    padding: 1px 7px;
    font-variant-numeric: tabular-nums;
}
.seg-active .seg-cnt[data-v-be79a7ca] { background: rgba(255, 255, 255, 0.22);
}

/* --- Pill de tipo --- */
.pill[data-v-be79a7ca] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 11px;
    font-weight: 700;
    padding: 3px 10px;
    border-radius: 20px;
    white-space: nowrap;
    border: 1px solid transparent;
}
.pill .pi[data-v-be79a7ca] { font-size: 11px;
}
.p-temp[data-v-be79a7ca] { background: #eff6ff; color: #0284c7; border-color: #bfdbfe;
}
.p-def[data-v-be79a7ca]  { background: #fef2f2; color: #dc2626; border-color: #fecaca;
}

/* --- Chip de estado --- */
.chip[data-v-be79a7ca] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 11.5px;
    font-weight: 700;
    padding: 3px 10px;
    border-radius: 6px;
    white-space: nowrap;
}
.chip .d[data-v-be79a7ca] { width: 7px; height: 7px; border-radius: 50%; background: currentColor;
}
.c-pend[data-v-be79a7ca] { background: #fffbeb; color: #b45309;
}
.c-val[data-v-be79a7ca]  { background: #ecfdf5; color: #15803d;
}
.c-rech[data-v-be79a7ca] { background: #fef2f2; color: #dc2626;
}

/* --- Fechas del periodo --- */
.dates[data-v-be79a7ca] {
    font-size: 12.5px;
    color: var(--p-surface-700);
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}
.dates .arw[data-v-be79a7ca] { color: var(--p-surface-400); margin: 0 5px;
}
.dates.none[data-v-be79a7ca] { color: var(--p-surface-400); font-style: italic;
}

/* Filas con algo más de aire; la tabla scrollea según su altura */
[data-v-a21d91a3] td,[data-v-a21d91a3] th {
    padding-top: 0.87rem;
    padding-bottom: 0.87rem;
}

/* Franja lateral de severidad: verde completa / ámbar pendiente */
[data-v-a21d91a3] .fila-pendiente > td:first-child {
    box-shadow: inset 4px 0 0 0 #f59e0b;
}
[data-v-a21d91a3] .fila-completa > td:first-child {
    box-shadow: inset 4px 0 0 0 #16a34a;
}
[data-v-a21d91a3] .fila-pendiente > td {
    background: #fffdf7;
}

/* --- KPIs (compactos, encima de la tabla) --- */
.kpi[data-v-a21d91a3] {
    position: relative;
    background: #fff;
    border: 1px solid var(--p-surface-200);
    border-radius: 9px;
    padding: 7px 10px 7px 13px;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    justify-content: center;
}
.kpi[data-v-a21d91a3]::before {
    content: '';
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 4px;
}
.kpi-total[data-v-a21d91a3]::before { background: #1a3a5c;
}
.kpi-ok[data-v-a21d91a3]::before { background: #16a34a;
}
.kpi-warn[data-v-a21d91a3]::before { background: #f59e0b;
}
.kpi-lbl[data-v-a21d91a3] {
    font-size: 9.5px;
    font-weight: 700;
    letter-spacing: 0.4px;
    text-transform: uppercase;
    color: var(--p-surface-500);
    margin: 0;
    white-space: nowrap;
}
.kpi-val[data-v-a21d91a3] {
    font-size: 19px;
    font-weight: 800;
    letter-spacing: -0.02em;
    margin: 1px 0 0;
    font-variant-numeric: tabular-nums;
    color: var(--p-surface-800);
    line-height: 1.15;
}
.kpi-val small[data-v-a21d91a3] { font-size: 12px;
}

/* --- Filtro segmentado --- */
.seg[data-v-a21d91a3] {
    display: inline-flex;
    border: 1px solid var(--p-surface-300);
    border-radius: 8px;
    overflow: hidden;
}
.seg-btn[data-v-a21d91a3] {
    border: 0;
    background: #fff;
    padding: 7px 14px;
    font-size: 12.5px;
    font-weight: 600;
    color: var(--p-surface-600);
    cursor: pointer;
    border-right: 1px solid var(--p-surface-200);
    display: inline-flex;
    align-items: center;
    gap: 7px;
    transition: background 0.15s, color 0.15s;
}
.seg-btn[data-v-a21d91a3]:last-child { border-right: 0;
}
.seg-btn[data-v-a21d91a3]:hover { background: var(--p-surface-50);
}
.seg-active[data-v-a21d91a3],
.seg-active[data-v-a21d91a3]:hover { background: #1a3a5c; color: #fff;
}
.seg-cnt[data-v-a21d91a3] {
    font-size: 10.5px;
    font-weight: 800;
    background: rgba(0, 0, 0, 0.08);
    border-radius: 20px;
    padding: 1px 7px;
    font-variant-numeric: tabular-nums;
}
.seg-active .seg-cnt[data-v-a21d91a3] { background: rgba(255, 255, 255, 0.22);
}

/* --- Tipo de baja + periodo --- */
.btype[data-v-a21d91a3] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 11px;
    font-weight: 700;
    padding: 3px 9px;
    border-radius: 20px;
    text-transform: uppercase;
    letter-spacing: 0.3px;
}
.btype-temporal[data-v-a21d91a3] { background: #eff6ff; color: #0284c7; border: 1px solid #bfdbfe;
}
.btype-def[data-v-a21d91a3] { background: #fef2f2; color: #dc2626; border: 1px solid #fecaca;
}
.btype-indef[data-v-a21d91a3] { background: #f1f5f9; color: #475569; border: 1px solid #cbd5e1;
}
.periodo[data-v-a21d91a3] {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 12.5px;
    color: var(--p-surface-600);
    margin-top: 7px;
    font-variant-numeric: tabular-nums;
}
.periodo .pi[data-v-a21d91a3] { color: var(--p-surface-400); font-size: 12px;
}

/* --- Estado --- */
.estado[data-v-a21d91a3] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 11px;
    font-weight: 700;
    padding: 3px 9px;
    border-radius: 6px;
}
.estado-activa[data-v-a21d91a3] { background: #ecfdf5; color: #15803d;
}
.estado-proxima[data-v-a21d91a3] { background: #fffbeb; color: #b45309;
}
.estado-fin[data-v-a21d91a3] { background: #f1f5f9; color: #64748b;
}
.estado-indef[data-v-a21d91a3] { background: #f1f5f9; color: #64748b;
}
.pulse[data-v-a21d91a3] {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: currentColor;
    display: inline-block;
    position: relative;
}
/* Anillo "latido" para las bajas activas: refuerza el estado con movimiento sutil. */
.pulse[data-v-a21d91a3]::after {
    content: "";
    position: absolute;
    inset: -3px;
    border-radius: 50%;
    border: 1.5px solid currentColor;
    opacity: 0.5;
    animation: pulso-activa-a21d91a3 1.8s ease-out infinite;
}
@keyframes pulso-activa-a21d91a3 {
0% { transform: scale(0.7); opacity: 0.6;
}
100% { transform: scale(1.9); opacity: 0;
}
}
@media (prefers-reduced-motion: reduce) {
.pulse[data-v-a21d91a3]::after { animation: none;
}
}

/* --- Barra de progreso --- */
.barra[data-v-a21d91a3] {
    height: 7px;
    border-radius: 20px;
    background: var(--p-surface-200);
    overflow: hidden;
}
.barra > i[data-v-a21d91a3] {
    display: block;
    height: 100%;
    border-radius: 20px;
}
.barra > i.ok[data-v-a21d91a3] { background: #16a34a;
}
.barra > i.warn[data-v-a21d91a3] { background: #f59e0b;
}

/* Barra segmentada por estado de la solicitud (validadas / pendientes / sin solicitar). */
.barra-seg[data-v-a21d91a3] { display: flex;
}
.barra-seg > i[data-v-a21d91a3] { display: block; height: 100%; border-radius: 0;
}
.barra-seg > i[data-v-a21d91a3]:first-child { border-top-left-radius: 20px; border-bottom-left-radius: 20px;
}
.barra-seg > i[data-v-a21d91a3]:last-child { border-top-right-radius: 20px; border-bottom-right-radius: 20px;
}
.barra-seg > i.seg-ok[data-v-a21d91a3] { background: #16a34a;
}
.barra-seg > i.seg-warn[data-v-a21d91a3] { background: #f59e0b;
}
.barra-seg > i.seg-none[data-v-a21d91a3] { background: #cbd0d6;
}

/* Puntos de la leyenda bajo la barra. */
.pt-dot[data-v-a21d91a3] { width: 8px; height: 8px; border-radius: 2px; display: inline-block;
}
.pt-ok[data-v-a21d91a3] { background: #16a34a;
}
.pt-warn[data-v-a21d91a3] { background: #f59e0b;
}
.pt-none[data-v-a21d91a3] { background: #cbd0d6;
}
.tabular-nums[data-v-a21d91a3] { font-variant-numeric: tabular-nums;
}
.driver-active .driver-overlay,.driver-active *{pointer-events:none}.driver-active .driver-active-element,.driver-active .driver-active-element *,.driver-popover,.driver-popover *{pointer-events:auto}@keyframes animate-fade-in{0%{opacity:0}to{opacity:1}}.driver-fade .driver-overlay{animation:animate-fade-in .2s ease-in-out}.driver-fade .driver-popover{animation:animate-fade-in .2s}.driver-popover{all:unset;box-sizing:border-box;color:#2d2d2d;margin:0;padding:15px;border-radius:5px;min-width:250px;max-width:300px;box-shadow:0 1px 10px #0006;z-index:1000000000;position:fixed;top:0;right:0;background-color:#fff}.driver-popover *{font-family:Helvetica Neue,Inter,ui-sans-serif,"Apple Color Emoji",Helvetica,Arial,sans-serif}.driver-popover-title{font:19px/normal sans-serif;font-weight:700;display:block;position:relative;line-height:1.5;zoom:1;margin:0}.driver-popover-close-btn{all:unset;position:absolute;top:0;right:0;width:32px;height:28px;cursor:pointer;font-size:18px;font-weight:500;color:#d2d2d2;z-index:1;text-align:center;transition:color;transition-duration:.2s}.driver-popover-close-btn:hover,.driver-popover-close-btn:focus{color:#2d2d2d}.driver-popover-title[style*=block]+.driver-popover-description{margin-top:5px}.driver-popover-description{margin-bottom:0;font:14px/normal sans-serif;line-height:1.5;font-weight:400;zoom:1}.driver-popover-footer{margin-top:15px;text-align:right;zoom:1;display:flex;align-items:center;justify-content:space-between}.driver-popover-progress-text{font-size:13px;font-weight:400;color:#727272;zoom:1}.driver-popover-footer button{all:unset;display:inline-block;box-sizing:border-box;padding:3px 7px;text-decoration:none;text-shadow:1px 1px 0 #fff;background-color:#fff;color:#2d2d2d;font:12px/normal sans-serif;cursor:pointer;outline:0;zoom:1;line-height:1.3;border:1px solid #ccc;border-radius:3px}.driver-popover-footer .driver-popover-btn-disabled{opacity:.5;pointer-events:none}:not(body):has(>.driver-active-element){overflow:hidden!important}.driver-no-interaction,.driver-no-interaction *{pointer-events:none!important}.driver-popover-footer button:hover,.driver-popover-footer button:focus{background-color:#f7f7f7}.driver-popover-navigation-btns{display:flex;flex-grow:1;justify-content:flex-end}.driver-popover-navigation-btns button+button{margin-left:4px}.driver-popover-arrow{content:"";position:absolute;border:5px solid #fff}.driver-popover-arrow-side-over{display:none}.driver-popover-arrow-side-left{left:100%;border-right-color:transparent;border-bottom-color:transparent;border-top-color:transparent}.driver-popover-arrow-side-right{right:100%;border-left-color:transparent;border-bottom-color:transparent;border-top-color:transparent}.driver-popover-arrow-side-top{top:100%;border-right-color:transparent;border-bottom-color:transparent;border-left-color:transparent}.driver-popover-arrow-side-bottom{bottom:100%;border-left-color:transparent;border-top-color:transparent;border-right-color:transparent}.driver-popover-arrow-side-center{display:none}.driver-popover-arrow-side-left.driver-popover-arrow-align-start,.driver-popover-arrow-side-right.driver-popover-arrow-align-start{top:15px}.driver-popover-arrow-side-top.driver-popover-arrow-align-start,.driver-popover-arrow-side-bottom.driver-popover-arrow-align-start{left:15px}.driver-popover-arrow-align-end.driver-popover-arrow-side-left,.driver-popover-arrow-align-end.driver-popover-arrow-side-right{bottom:15px}.driver-popover-arrow-side-top.driver-popover-arrow-align-end,.driver-popover-arrow-side-bottom.driver-popover-arrow-align-end{right:15px}.driver-popover-arrow-side-left.driver-popover-arrow-align-center,.driver-popover-arrow-side-right.driver-popover-arrow-align-center{top:50%;margin-top:-5px}.driver-popover-arrow-side-top.driver-popover-arrow-align-center,.driver-popover-arrow-side-bottom.driver-popover-arrow-align-center{left:50%;margin-left:-5px}.driver-popover-arrow-none{display:none}
