﻿@tailwind base;
@tailwind components;
@tailwind utilities;

@layer base {
  .cc-isolation-container,
  .cc-isolation-container::before,
  .cc-isolation-container::after,
  .cc-isolation-container * .cc-isolation-container *::before,
  .cc-isolation-container *::after {
    all: revert;
  }

  /*
  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)
  */

  .cc-isolation-container *,
  .cc-isolation-container ::before,
  .cc-isolation-container ::after {
    box-sizing: border-box; /* 1 */
    border-width: 0; /* 2 */
    border-style: solid; /* 2 */
    border-color: theme("borderColor.DEFAULT", currentColor); /* 2 */
  }

  .cc-isolation-container ::before,
  .cc-isolation-container ::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.
  */

  .cc-isolation-container {
    line-height: 1.5; /* 1 */
    -webkit-text-size-adjust: 100%; /* 2 */
    -moz-tab-size: 4; /* 3 */
    tab-size: 4; /* 3 */
    font-family: theme(
            "fontFamily.sans",
            ui-sans-serif,
            system-ui,
            -apple-system,
            BlinkMacSystemFont,
            "Segoe UI",
            Roboto,
            "Helvetica Neue",
            Arial,
            "Noto Sans",
            sans-serif,
            "Apple Color Emoji",
            "Segoe UI Emoji",
            "Segoe UI Symbol",
            "Noto Color Emoji"
    ); /* 4 */
  }

  /*
  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.
  */

  .cc-isolation-container * {
    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.
  */

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

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

  .cc-isolation-container abbr:where([title]) {
    text-decoration: underline dotted;
  }

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

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

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

  .cc-isolation-container a {
    color: inherit;
    text-decoration: inherit;
  }

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

  .cc-isolation-container b,
  .cc-isolation-container strong {
    font-weight: bolder;
  }

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

  .cc-isolation-container code,
  .cc-isolation-container kbd,
  .cc-isolation-container samp,
  .cc-isolation-container pre {
    font-family: theme(
            "fontFamily.mono",
            ui-monospace,
            SFMono-Regular,
            Menlo,
            Monaco,
            Consolas,
            "Liberation Mono",
            "Courier New",
            monospace
    ); /* 1 */
    font-size: 1em; /* 2 */
  }

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

  .cc-isolation-container small {
    font-size: 80%;
  }

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

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

  .cc-isolation-container sub {
    bottom: -0.25em;
  }

  .cc-isolation-container 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.
  */

  .cc-isolation-container 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.
  */

  .cc-isolation-container button,
  .cc-isolation-container input,
  .cc-isolation-container optgroup,
  .cc-isolation-container select,
  .cc-isolation-container textarea {
    font-family: inherit; /* 1 */
    font-size: 100%; /* 1 */
    line-height: inherit; /* 1 */
    color: inherit; /* 1 */
    margin: 0; /* 2 */
    padding: 0; /* 3 */
  }

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

  .cc-isolation-container button,
  .cc-isolation-container select {
    text-transform: none;
  }

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

  .cc-isolation-container button,
  .cc-isolation-container [type="button"],
  .cc-isolation-container [type="reset"],
  .cc-isolation-container [type="submit"] {
    -webkit-appearance: button; /* 1 */
    background-color: transparent; /* 2 */
    background-image: none; /* 2 */
  }

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

  .cc-isolation-container :-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)
  */

  .cc-isolation-container :-moz-ui-invalid {
    box-shadow: none;
  }

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

  .cc-isolation-container progress {
    vertical-align: baseline;
  }

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

  .cc-isolation-container ::-webkit-inner-spin-button,
  .cc-isolation-container ::-webkit-outer-spin-button {
    height: auto;
  }

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

  .cc-isolation-container [type="search"] {
    -webkit-appearance: textfield; /* 1 */
    outline-offset: -2px; /* 2 */
  }

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

  .cc-isolation-container ::-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.
  */

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

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

  .cc-isolation-container summary {
    display: list-item;
  }

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

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

  .cc-isolation-container fieldset {
    margin: 0;
    padding: 0;
  }

  .cc-isolation-container legend {
    padding: 0;
  }

  .cc-isolation-container ol,
  .cc-isolation-container ul,
  .cc-isolation-container menu {
    list-style: none;
    margin: 0;
    padding: 0;
  }

  /*
  Prevent resizing textareas horizontally by default.
  */

  .cc-isolation-container 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.
  */

  .cc-isolation-container input::placeholder,
  .cc-isolation-container textarea::placeholder {
    opacity: 1; /* 1 */
    color: theme("colors.gray.400", #9ca3af); /* 2 */
  }

  /*
  Set the default cursor for buttons.
  */

  .cc-isolation-container button,
  .cc-isolation-container [role="button"] {
    cursor: pointer;
  }

  /*
  Make sure disabled buttons don't get the pointer cursor.
  */
  .cc-isolation-container :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.
  */

  .cc-isolation-container img,
  .cc-isolation-container svg,
  .cc-isolation-container video,
  .cc-isolation-container canvas,
  .cc-isolation-container audio,
  .cc-isolation-container iframe,
  .cc-isolation-container embed,
  .cc-isolation-container 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)
  */

  .cc-isolation-container img,
  .cc-isolation-container video {
    max-width: 100%;
    height: auto;
  }

  /*
  Ensure the default browser behavior of the `hidden` attribute.
  */

  .cc-isolation-container [hidden] {
    display: none;
  }
}

@layer utilities {
  input:checked.cc-switch ~ .cc-dot {
    transform: translateX(150%) !important;
  }
  
  input:checked.cc-switch ~ .cc-dot-background {
    @apply cc-bg-brand-switch-active !important;
  }
  
  .cc-isolation-container {
    /* Font used */
    --cc-font-family: Inter var, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";

    /* Accent color for primary button */
    --cc-color-accent: theme(colors.slate.800);

    /* Accent color for primary button when hovered */
    --cc-color-accent-dark: theme(colors.slate.900);

    /* Color for secondary button */
    --cc-color-secondary: theme(colors.gray.200);

    /* Color for secondary button when hovered */
    --cc-color-secondary-dark: theme(colors.gray.300);

    /* Color for links ("Display policy" links within preferences dialogue) */
    --cc-color-link: theme(colors.slate.400);
    
    /* Color for links when hovered */
    --cc-color-link-highlight: theme(colors.blue.500);

    /* Default color for text */
    --cc-color-text: theme(colors.slate.700);

    /* Background color for active category switch */
    --cc-color-switch-active: theme(colors.slate.800);

    /* (Transparent) Color for background when any modal is opened */
    --cc-color-modal-background: theme(colors.gray.800 / 75%);
  }

  .cc-isolation-container .cc-font  {
    font-family: var(--cc-font-family) !important;
  }
}
