body {
    margin: 0;
    background-color: #f2f2f2;
}

input {
    color: white;
}

a {
    color: #1EAEDB; 
    text-decoration: underline;
    cursor: pointer;}
  a:hover {
    color: #0FA0CE; }
  
  

  .dark .Select-control {
        background-color: #43454a !important;
        color:rgb(219, 10, 10);
    }  
    
    .dark .Select-value-label {
        background-color: #43454a;
        color: white !important;
    }
    
    .dark .Select-menu-outer {
        background-color: #43454a;
        color: white;
    }    

/* https://codepen.io/chriddyp/pen/bWLwgP.css */

/* Table of contents
––––––––––––––––––––––––––––––––––––––––––––––––––
- Plotly.js
- Grid
- Base Styles
- Typography
- Links
- Buttons
- Forms
- Lists
- Code
- Tables
- Spacing
- Utilities
- Clearing
- Media Queries
*/

/* PLotly.js 
–––––––––––––––––––––––––––––––––––––––––––––––––– */
/* plotly.js's modebar's z-index is 1001 by default
 * https://github.com/plotly/plotly.js/blob/7e4d8ab164258f6bd48be56589dacd9bdd7fded2/src/css/_modebar.scss#L5
 * In case a dropdown is above the graph, the dropdown's options
 * will be rendered below the modebar
 * Increase the select option's z-index
 */

/* This was actually not quite right -
   dropdowns were overlapping each other (edited October 26)

.Select {
    z-index: 1002;
}*/


/* Grid
–––––––––––––––––––––––––––––––––––––––––––––––––– */
.container {
  position: relative;
  width: 100%;
  max-width: 960px;
  margin: 0 auto;
  padding: 0 20px;
  box-sizing: border-box; }
.column,
.columns {
  width: 100%;
  float: left;
  box-sizing: border-box; }

/* For devices larger than 400px */
@media (min-width: 400px) {
  .container {
    width: 85%;
    padding: 0; }
}

/* For devices larger than 550px */
@media (min-width: 550px) {
  .container {
    width: 80%; }
  .column,
  .columns {
    margin-left: 4%; }
  .column:first-child,
  .columns:first-child {
    margin-left: 0; }

  .one.column,
  .one.columns                    { width: 4.66666666667%; }
  .two.columns                    { width: 13.3333333333%; }
  .three.columns                  { width: 22%;            }
  .four.columns                   { width: 30.6666666667%; }
  .five.columns                   { width: 39.3333333333%; }
  .six.columns                    { width: 48%;            }
  .seven.columns                  { width: 56.6666666667%; }
  .eight.columns                  { width: 65.3333333333%; }
  .nine.columns                   { width: 74.0%;          }
  .ten.columns                    { width: 82.6666666667%; }
  .eleven.columns                 { width: 91.3333333333%; }
  .twelve.columns                 { width: 100%; margin-left: 0; }

  .one-third.column               { width: 30.6666666667%; }
  .two-thirds.column              { width: 65.3333333333%; }

  .one-half.column                { width: 48%; }

  /* Offsets */
  .offset-by-one.column,
  .offset-by-one.columns          { margin-left: 8.66666666667%; }
  .offset-by-two.column,
  .offset-by-two.columns          { margin-left: 17.3333333333%; }
  .offset-by-three.column,
  .offset-by-three.columns        { margin-left: 26%;            }
  .offset-by-four.column,
  .offset-by-four.columns         { margin-left: 34.6666666667%; }
  .offset-by-five.column,
  .offset-by-five.columns         { margin-left: 43.3333333333%; }
  .offset-by-six.column,
  .offset-by-six.columns          { margin-left: 52%;            }
  .offset-by-seven.column,
  .offset-by-seven.columns        { margin-left: 60.6666666667%; }
  .offset-by-eight.column,
  .offset-by-eight.columns        { margin-left: 69.3333333333%; }
  .offset-by-nine.column,
  .offset-by-nine.columns         { margin-left: 78.0%;          }
  .offset-by-ten.column,
  .offset-by-ten.columns          { margin-left: 86.6666666667%; }
  .offset-by-eleven.column,
  .offset-by-eleven.columns       { margin-left: 95.3333333333%; }

  .offset-by-one-third.column,
  .offset-by-one-third.columns    { margin-left: 34.6666666667%; }
  .offset-by-two-thirds.column,
  .offset-by-two-thirds.columns   { margin-left: 69.3333333333%; }

  .offset-by-one-half.column,
  .offset-by-one-half.columns     { margin-left: 52%; }

}


/* Base Styles
–––––––––––––––––––––––––––––––––––––––––––––––––– */
/* NOTE
html is set to 62.5% so that all the REM measurements throughout Skeleton
are based on 10px sizing. So basically 1.5rem = 15px :) */
html {
  font-size: 62.5%; }
body {
  font-size: 1.5em; /* currently ems cause chrome bug misinterpreting rems on body element */
  line-height: 1.6;
  font-weight: 400;
  font-family: "Open Sans", "HelveticaNeue", "Helvetica Neue", Helvetica, Arial, sans-serif;
  color: silver; }


/* Typography
–––––––––––––––––––––––––––––––––––––––––––––––––– */
h1, h2, h3, h4, h5, h6 {
  margin-top: 0;
  margin-bottom: 0;
  font-weight: 300; }
h1 { font-size: 4.5rem; line-height: 1.2;  letter-spacing: -.1rem; margin-bottom: 2rem; }
h2 { font-size: 3.6rem; line-height: 1.25; letter-spacing: -.1rem; margin-bottom: 1.8rem; margin-top: 1.8rem;}
h3 { font-size: 3.0rem; line-height: 1.3;  letter-spacing: -.1rem; margin-bottom: 1.5rem; margin-top: 1.5rem;}
h4 { font-size: 2.6rem; line-height: 1.35; letter-spacing: -.08rem; margin-bottom: 1.2rem; margin-top: 1.2rem;}
h5 { font-size: 2.2rem; line-height: 1.5;  letter-spacing: -.05rem; margin-bottom: 0.6rem; margin-top: 0.6rem;}
h6 { font-size: 2.0rem; line-height: 1.6;  letter-spacing: 0; margin-bottom: 0.75rem; margin-top: 0.75rem;}

p {
  margin-top: 0; }


/* Blockquotes
–––––––––––––––––––––––––––––––––––––––––––––––––– */
blockquote {
  border-left: 4px lightgrey solid;
  padding-left: 1rem;
  margin-top: 2rem;
  margin-bottom: 2rem;
  margin-left: 0rem;
}


/* Links
–––––––––––––––––––––––––––––––––––––––––––––––––– */
a {
  color: #1EAEDB; 
  text-decoration: underline;
  cursor: pointer;}
a:hover {
  color: #0FA0CE; }


/* Buttons
–––––––––––––––––––––––––––––––––––––––––––––––––– */
/* .button,
button,
input[type="submit"],
input[type="reset"],
input[type="button"] {
  display: inline-block;
  height: 38px;
  padding: 0 30px;
  color: #555;
  text-align: center;
  font-size: 11px;
  font-weight: 600;
  line-height: 38px;
  letter-spacing: .1rem;
  text-transform: uppercase;
  text-decoration: none;
  white-space: nowrap;
  background-color: transparent;
  border-radius: 4px;
  border: 1px solid #bbb;
  cursor: pointer;
  box-sizing: border-box; }
.button:hover,
button:hover,
input[type="submit"]:hover,
input[type="reset"]:hover,
input[type="button"]:hover,
.button:focus,
button:focus,
input[type="submit"]:focus,
input[type="reset"]:focus,
input[type="button"]:focus {
  color: #333;
  border-color: #888;
  outline: 0; }
.button.button-primary,
button.button-primary,
input[type="submit"].button-primary,
input[type="reset"].button-primary,
input[type="button"].button-primary {
  color: #FFF;
  background-color: #33C3F0;
  border-color: #33C3F0; }
.button.button-primary:hover,
button.button-primary:hover,
input[type="submit"].button-primary:hover,
input[type="reset"].button-primary:hover,
input[type="button"].button-primary:hover,
.button.button-primary:focus,
button.button-primary:focus,
input[type="submit"].button-primary:focus,
input[type="reset"].button-primary:focus,
input[type="button"].button-primary:focus {
  color: #FFF;
  background-color: #1EAEDB;
  border-color: #1EAEDB; } */


/* Forms
–––––––––––––––––––––––––––––––––––––––––––––––––– */
input[type="email"],
input[type="number"],
input[type="search"],
input[type="text"],
input[type="tel"],
input[type="url"],
input[type="password"],
textarea,
select {
  height: 38px;
  padding: 6px 10px; /* The 6px vertically centers text on FF, ignored by Webkit */
  background-color: #fff;
  border: 1px solid #D1D1D1;
  border-radius: 4px;
  box-shadow: none;
  box-sizing: border-box; 
  font-family: inherit;
  font-size: inherit; /*https://stackoverflow.com/questions/6080413/why-doesnt-input-inherit-the-font-from-body*/}
/* Removes awkward default styles on some inputs for iOS */
input[type="email"],
input[type="number"],
input[type="search"],
input[type="text"],
input[type="tel"],
input[type="url"],
input[type="password"],
textarea {
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none; }
textarea {
  min-height: 65px;
  padding-top: 6px;
  padding-bottom: 6px; }
input[type="email"]:focus,
input[type="number"]:focus,
input[type="search"]:focus,
input[type="text"]:focus,
input[type="tel"]:focus,
input[type="url"]:focus,
input[type="password"]:focus,
textarea:focus,
select:focus {
  border: 1px solid #33C3F0;
  outline: 0; }
label,
legend {
  display: block;
  margin-bottom: 0px; }
fieldset {
  padding: 0;
  border-width: 0; }
input[type="checkbox"],
input[type="radio"] {
  display: inline; }
label > .label-body {
  display: inline-block;
  margin-left: .5rem;
  font-weight: normal; }


/* Lists
–––––––––––––––––––––––––––––––––––––––––––––––––– */
ul {
  list-style: circle inside; }
ol {
  list-style: decimal inside; }
ol, ul {
  padding-left: 0;
  margin-top: 0; }
ul ul,
ul ol,
ol ol,
ol ul {
  margin: 1.5rem 0 1.5rem 3rem;
  font-size: 90%; }
li {
  margin-bottom: 1rem; }


/* Tables
–––––––––––––––––––––––––––––––––––––––––––––––––– */
table {
  border-collapse: collapse;
}
th:not(.CalendarDay),
td:not(.CalendarDay) {
  padding: 12px 15px;
  text-align: left;
  border-bottom: 1px solid #E1E1E1; }
th:first-child:not(.CalendarDay),
td:first-child:not(.CalendarDay) {
  padding-left: 0; }
th:last-child:not(.CalendarDay),
td:last-child:not(.CalendarDay) {
  padding-right: 0; }


/* Spacing
–––––––––––––––––––––––––––––––––––––––––––––––––– */
button,
.button {
  margin-bottom: 0rem; }
input,
textarea,
select,
fieldset {
  margin-bottom: 0rem; }
pre,
dl,
figure,
table,
form {
  margin-bottom: 0rem; }
p,
ul,
ol {
  margin-bottom: 0.75rem; }

/* Utilities
–––––––––––––––––––––––––––––––––––––––––––––––––– */
.u-full-width {
  width: 100%;
  box-sizing: border-box; }
.u-max-full-width {
  max-width: 100%;
  box-sizing: border-box; }
.u-pull-right {
  float: right; }
.u-pull-left {
  float: left; }


/* Misc
–––––––––––––––––––––––––––––––––––––––––––––––––– */
hr {
  margin-top: 3rem;
  margin-bottom: 3.5rem;
  border-width: 0;
  border-top: 1px solid #E1E1E1; }


/* Clearing
–––––––––––––––––––––––––––––––––––––––––––––––––– */

/* Self Clearing Goodness */
.container:after,
.row:after,
.u-cf {
  content: "";
  display: table;
  clear: both; }


/* Media Queries
–––––––––––––––––––––––––––––––––––––––––––––––––– */
/*
Note: The best way to structure the use of media queries is to create the queries
near the relevant code. For example, if you wanted to change the styles for buttons
on small devices, paste the mobile query code up in the buttons section and style it
there.
*/


/* Larger than mobile */
@media (min-width: 400px) {}

/* Larger than phablet (also point when grid becomes active) */
@media (min-width: 550px) {}

/* Larger than tablet */
@media (min-width: 750px) {}

/* Larger than desktop */
@media (min-width: 1000px) {}

/* Larger than Desktop HD */
@media (min-width: 1200px) {}


.tab-buttons {
    display: flex;
    gap: 2em;
    margin-bottom: 1em;   
}

.tab-btn {
    padding: 1em 1em;
    border: none;
    background-color: #eee;
    cursor: pointer;
    border-radius: 8px;
    font-weight: bold;
}

.tab-btn.active {
    background-color: #1E90FF;
    color: white;
}

.tab-content {
    margin-top: 1em;
}

.case-cards {
    display: flex;
    flex-wrap: wrap;
    gap: 2em;
}

.case-card {
    background: #fff;
    padding: 1em;
    border-radius: 15px;
    box-shadow: 0 4px 15px rgba(0,0,0,0.1);
    width: calc(33% - 1.33em);
    text-align: center;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.case-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 8px 25px rgba(0,0,0,0.15);
}

.case-card .image.main {
    max-width: 10%;
    border-radius: 10px;
    margin-bottom: 1em;
}

.case-card h3 { margin: 0.5em 0; }
.case-card p { font-size: 0.95em; color: #555; }
.case-card .button {
    margin-top: 1em;
    background-color: #1E90FF;
    color: white;
    padding: 0.6em 1.2em;
    border-radius: 8px;
    text-decoration: none;
    font-weight: bold;
}
.case-card .button:hover { background-color: #0d6efd; }

/* Responsive for mobile */
@media (max-width: 900px) {
    .case-card { width: calc(50% - 1em); }
}
@media (max-width: 600px) {
    .case-card { width: 100%; }
    .tab-buttons { flex-direction: column; gap: 0.5em; }
}

.tab-buttons {
    display: flex;
    gap: 1em;
    margin-bottom: 1em;
}
.tab-btn {
    padding: 0.5em 1em;
    border: none;
    background-color: #eee;
    cursor: pointer;
    border-radius: 8px;
    font-weight: bold;
}
.tab-btn.active { background-color: #1E90FF; color: white; }
.tab-content { margin-top: 1em; }

.case-cards { display: flex; flex-wrap: wrap; gap: 2em; }
.case-card {
    background: #fff; padding: 1em; border-radius: 15px;
    box-shadow: 0 4px 15px rgba(0,0,0,0.1);
    width: calc(33% - 1.33em); text-align: center;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.case-card:hover { transform: translateY(-5px); box-shadow: 0 8px 25px rgba(0,0,0,0.15); }
/* .case-card .image.main { max-width: 100%; border-radius: 10px; margin-bottom: 1em; } */
.case-card h3 { margin: 0.5em 0; }
.case-card p { font-size: 0.95em; color: #555; }
.case-card .button {
    margin-top: 1em; background-color: #1E90FF; color: white;
    padding: 0.6em 1.2em; border-radius: 8px; text-decoration: none; font-weight: bold;
}
.case-card .button:hover { background-color: #0d6efd; }

@media (max-width: 900px) { .case-card { width: calc(50% - 1em); } }
@media (max-width: 600px) { .case-card { width: 100%; } .tab-buttons { flex-direction: column; gap: 0.5em; } }

/* Generated invoice history */
.sidebar-brand-link {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    color: inherit;
    font-weight: 800;
    text-decoration: none;
    transition: color .15s ease;
}
.sidebar-brand-link:hover { color: #2563eb; }

.settings-profile-row {
    display: flex;
    align-items: center;
    gap: 14px;
}
.settings-inline-name-row {
    display: flex;
    align-items: center;
    gap: 6px;
    max-width: 420px;
}
.visually-hidden {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
}
.settings-name-label { min-width: 0; flex: 1; }
.settings-inline-name {
    min-width: 0;
    width: 100%;
    padding: 3px 5px;
    border: 0;
    border-bottom: 1px solid #cbd5e1;
    border-radius: 4px 4px 0 0;
    outline: none;
    background: transparent;
    color: #0f172a;
    font: inherit;
    font-size: 18px;
    font-weight: 750;
}
.settings-inline-name:hover { background: #f8fafc; border-bottom-color: #94a3b8; }
.settings-inline-name:focus { background: #eff6ff; border-bottom: 2px solid #2563eb; }
.settings-name-save {
    flex: 0 0 auto;
    display: grid;
    place-items: center;
    width: 32px;
    height: 32px;
    padding: 0;
    border: 0;
    border-radius: 9px;
    background: #dcfce7;
    color: #15803d;
    cursor: pointer;
    transition: transform .15s ease, background .15s ease;
}
.settings-name-save:hover { background: #bbf7d0; transform: translateY(-1px); }
.settings-name-save:focus-visible { outline: 3px solid rgba(37,99,235,.25); }
.settings-readonly-identity {
    display: flex;
    flex-wrap: wrap;
    gap: 5px 14px;
    margin-top: 5px;
    color: #64748b;
    font-size: 13px;
}

.api-examples-accordion { display: grid; gap: 10px; }
.api-example-item {
    overflow: hidden;
    border: 1px solid #e2e8f0 !important;
    border-radius: 12px !important;
    background: #fff;
}
.api-example-control { padding: 14px 17px !important; font-weight: 750; }
.api-example-description { margin: 0 0 12px; color: #64748b; font-size: 14px; }
.api-example-code-block {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 14px;
    padding: 17px;
    border-radius: 10px;
    background: #0f172a;
}
.api-example-code {
    display: block;
    color: #dbeafe;
    font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
    font-size: 13px;
    line-height: 1.65;
}
.api-example-code-block pre { min-width: 0; margin: 0; overflow-x: auto; white-space: pre; }
.api-example-copy { flex: 0 0 auto; color: #fff; cursor: pointer; }

@media (max-width: 520px) {
    .settings-profile-row { align-items: flex-start; flex-wrap: wrap; }
    .settings-profile-row > :last-child { margin-left: 70px !important; }
}

.invoice-history-page {
    max-width: 1120px;
    margin: 0 auto;
    padding: 42px 22px 72px;
    color: #0f172a;
    font-family: Inter, ui-sans-serif, system-ui, sans-serif;
}

.invoice-history-header {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 24px;
    margin-bottom: 26px;
}

.invoice-history-header h1 {
    margin: 5px 0 7px;
    font-size: clamp(30px, 4vw, 42px);
    line-height: 1.1;
}

.invoice-history-header p { margin: 0; color: #64748b; font-size: 16px; }
.invoice-history-eyebrow { color: #2563eb; font-size: 13px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.invoice-history-stats { display: flex; gap: 10px; }
.invoice-history-stat {
    min-width: 92px;
    padding: 12px 16px;
    border: 1px solid #dbe4f0;
    border-radius: 14px;
    background: rgba(255,255,255,.88);
    box-shadow: 0 8px 24px rgba(15,23,42,.05);
}
.invoice-history-stat strong, .invoice-history-stat span { display: block; }
.invoice-history-stat strong { font-size: 22px; }
.invoice-history-stat span { margin-top: 2px; color: #64748b; font-size: 12px; font-weight: 700; text-transform: uppercase; }
.invoice-template-groups { display: grid; gap: 16px; }
.invoice-template-group {
    overflow: hidden;
    border: 1px solid #dbe4f0;
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 12px 36px rgba(15,23,42,.06);
}
.invoice-template-group > summary { list-style: none; }
.invoice-template-group > summary::-webkit-details-marker { display: none; }
.invoice-template-summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    padding: 19px 21px;
    cursor: pointer;
    background: linear-gradient(120deg, #fff, #f8fafc);
}
.invoice-template-heading, .invoice-template-summary-meta, .invoice-history-row, .invoice-history-actions {
    display: flex;
    align-items: center;
}
.invoice-template-heading { min-width: 0; gap: 13px; }
.invoice-template-icon, .invoice-history-file-icon {
    flex: 0 0 auto;
    display: grid;
    place-items: center;
    border-radius: 11px;
}
.invoice-template-icon { width: 46px; height: 46px; background: #ecfdf5; }
.invoice-template-name { overflow: hidden; font-size: 17px; font-weight: 800; text-overflow: ellipsis; white-space: nowrap; }
.invoice-template-id { display: block; overflow: hidden; max-width: 520px; margin-top: 4px; color: #64748b; text-overflow: ellipsis; white-space: nowrap; }
.invoice-template-summary-meta { flex: 0 0 auto; gap: 12px; }
.invoice-template-count { padding: 6px 10px; border-radius: 999px; background: #e0e7ff; color: #3730a3; font-size: 12px; font-weight: 800; }
.invoice-template-chevron { transition: transform .2s ease; }
.invoice-template-group[open] .invoice-template-chevron { transform: rotate(180deg); }
.invoice-history-list { border-top: 1px solid #e2e8f0; }
.invoice-history-row { gap: 14px; padding: 16px 21px; border-bottom: 1px solid #eef2f7; }
.invoice-history-row:last-child { border-bottom: 0; }
.invoice-history-row:hover { background: #f8fafc; }
.invoice-history-file-icon { width: 43px; height: 43px; background: #fef2f2; color: #dc2626; }
.invoice-history-file-details { min-width: 0; flex: 1 1 auto; }
.invoice-history-filename { overflow: hidden; font-weight: 750; text-overflow: ellipsis; white-space: nowrap; }
.invoice-history-meta { display: flex; flex-wrap: wrap; gap: 7px 16px; margin-top: 5px; color: #64748b; font-size: 12px; }
.invoice-history-actions { flex: 0 0 auto; gap: 8px; }
.invoice-history-action {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    min-height: 38px;
    padding: 0 13px;
    border-radius: 9px;
    font-size: 13px;
    font-weight: 750;
    text-decoration: none;
}
.invoice-history-action-primary { background: #2563eb; color: #fff; box-shadow: 0 6px 15px rgba(37,99,235,.2); }
.invoice-history-action-secondary { border: 1px solid #cbd5e1; background: #fff; color: #334155; }
.invoice-history-action-danger { border: 1px solid #fecaca; background: #fff; color: #b91c1c; cursor: pointer; }
.invoice-history-action-danger:hover { border-color: #ef4444; background: #fef2f2; }
.invoice-history-action:hover { transform: translateY(-1px); }
.invoice-delete-modal-content { padding: 30px; text-align: center; }
.invoice-delete-modal-icon {
    display: grid;
    place-items: center;
    width: 62px;
    height: 62px;
    margin: 0 auto 18px;
    border-radius: 18px;
    background: #fef2f2;
    color: #dc2626;
}
.invoice-delete-modal-title { margin: 0; color: #0f172a; font-size: 24px; font-weight: 800; }
.invoice-delete-modal-copy { margin: 12px auto 0; color: #475569; font-size: 15px; line-height: 1.6; }
.invoice-delete-modal-copy strong { color: #0f172a; overflow-wrap: anywhere; }
.invoice-delete-modal-warning { margin: 7px 0 0; color: #b91c1c; font-size: 13px; font-weight: 700; }
.invoice-delete-modal-actions { display: flex; gap: 12px; margin-top: 27px; }
.invoice-delete-modal-button {
    display: inline-flex;
    flex: 1;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-height: 46px;
    padding: 0 18px;
    border-radius: 11px;
    cursor: pointer;
    font-size: 14px;
    font-weight: 800;
    transition: transform .16s ease, background-color .16s ease, border-color .16s ease;
}
.invoice-delete-modal-button:hover { transform: translateY(-1px); }
.invoice-delete-modal-cancel { border: 1px solid #cbd5e1; background: #fff; color: #334155; }
.invoice-delete-modal-cancel:hover { border-color: #94a3b8; background: #f8fafc; }
.invoice-delete-modal-confirm { border: 1px solid #dc2626; background: #dc2626; color: #fff; box-shadow: 0 8px 18px rgba(220,38,38,.2); }
.invoice-delete-modal-confirm:hover { border-color: #b91c1c; background: #b91c1c; }
.invoice-history-empty {
    display: grid;
    justify-items: center;
    padding: 56px 24px;
    border: 1px dashed #cbd5e1;
    border-radius: 18px;
    background: #fff;
    text-align: center;
}
.invoice-history-empty h2 { margin: 14px 0 7px; }
.invoice-history-empty p { margin: 0 0 20px; color: #64748b; }
.invoice-empty-icon { display: grid; place-items: center; width: 66px; height: 66px; border-radius: 20px; background: #eff6ff; color: #2563eb; }

@media (max-width: 720px) {
    .invoice-history-header { align-items: flex-start; flex-direction: column; }
    .invoice-history-stats { width: 100%; }
    .invoice-history-stat { flex: 1; }
    .invoice-template-summary { align-items: flex-start; }
    .invoice-template-id { max-width: 54vw; }
    .invoice-template-summary-meta { align-items: flex-end; flex-direction: column; gap: 5px; }
    .invoice-history-row { align-items: flex-start; flex-wrap: wrap; }
    .invoice-history-actions { width: 100%; padding-left: 57px; }
    .invoice-history-action { flex: 1; }
}

@media (max-width: 430px) {
    .invoice-history-page { padding: 30px 14px 56px; }
    .invoice-template-summary, .invoice-history-row { padding-left: 14px; padding-right: 14px; }
    .invoice-template-id { max-width: 47vw; }
    .invoice-history-actions { padding-left: 0; }
    .invoice-history-action { padding: 0 10px; }
    .invoice-delete-modal-content { padding: 25px 20px 21px; }
    .invoice-delete-modal-actions { flex-direction: column-reverse; }
}

#content-wrapper {
    max-width: 900px;
    margin: 0 auto;
    padding: 2em;
}

.case-separator {
    border: 0;
    height: 1px;
    background: #ccc;      /* light gray line */
    margin: 2em 0;         /* spacing above and below */
}

/* Persistent account control: the logout affordance appears on hover/focus. */
.user-profile-chip {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 7px 12px;
    color: #0f172a;
    text-decoration: none;
    background: rgba(255, 255, 255, 0.94);
    border: 1px solid #e2e8f0;
    border-radius: 999px;
    box-shadow: 0 8px 24px rgba(15, 23, 42, 0.1);
    backdrop-filter: blur(10px);
    transition: border-color 160ms ease, box-shadow 160ms ease, transform 160ms ease;
}

.user-profile-chip:hover,
.user-profile-chip:focus-visible {
    color: #0f172a;
    text-decoration: none;
    border-color: #93c5fd;
    box-shadow: 0 10px 28px rgba(37, 99, 235, 0.18);
    transform: translateY(-1px);
    outline: none;
}

.profile-logout-icon {
    display: inline-flex;
    color: #dc2626;
    opacity: 0;
    max-width: 0;
    overflow: hidden;
    transform: translateX(-5px);
    transition: opacity 160ms ease, max-width 160ms ease, transform 160ms ease;
}

.user-profile-chip:hover .profile-logout-icon,
.user-profile-chip:focus-visible .profile-logout-icon {
    opacity: 1;
    max-width: 24px;
    transform: translateX(0);
}

/* Keep long workbook names inside their fixed-height virtualized rows. */
.template-selector .Select-control,
.template-selector .Select-menu-outer {
    width: 100%;
}

.template-selector .Select-value,
.template-selector .Select-value-label,
.template-selector .Select-placeholder {
    max-width: calc(100% - 42px);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.template-selector .VirtualizedSelectOption {
    height: 44px;
    padding: 0 12px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    line-height: 44px;
}

.template-selector .Select-menu-outer {
    z-index: 1200;
    overflow: hidden;
}
