/* PartyRentals admin site: the sticker-book look (DESIGN.md at the repo root), lighter than the app's because staff read
   these pages all day. Headings, navbar, cards and buttons wear it; data grids stay plain and dense. */

@font-face { font-family: "Archivo"; font-style: normal; font-weight: 100 900; font-display: swap;
    src: url(../fonts/archivo-latin-wght-normal.woff2) format("woff2-variations"), url(../fonts/archivo-latin-wght-normal.woff2) format("woff2");
    unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face { font-family: "Archivo"; font-style: normal; font-weight: 100 900; font-display: swap;
    src: url(../fonts/archivo-latin-ext-wght-normal.woff2) format("woff2-variations"), url(../fonts/archivo-latin-ext-wght-normal.woff2) format("woff2");
    unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; }
@font-face { font-family: "Archivo Black"; font-style: normal; font-weight: 400; font-display: swap;
    src: url(../fonts/archivo-black-latin-400-normal.woff2) format("woff2"); }
@font-face { font-family: "Space Mono"; font-style: normal; font-weight: 700; font-display: swap;
    src: url(../fonts/space-mono-latin-700-normal.woff2) format("woff2"); }

:root {
    --pr-cream: #FFF6E9;
    --pr-ink: #21123F;
    --pr-ink-soft: #4E4570;
    --pr-grape: #6C2BD9;
    --pr-grape-dim: #5520B0;
    --pr-grape-soft: #EFE6FF;
    --pr-sun: #FFC233;
    --pr-sun-soft: #FFF1C9;
    --pr-pink: #FF4F9A;
    --pr-mint: #18B26B;
    --pr-mint-deep: #0E8A50;
    --pr-aqua: #3CC8F5;
    --pr-danger: #D7373A;
    --pr-outline: 2px solid var(--pr-ink);
    --pr-shadow: 0 3px 0 var(--pr-ink);
    --pr-display: "Archivo Black", "Archivo", system-ui, sans-serif;
    --pr-mono: "Space Mono", ui-monospace, monospace;

    --sf-navbar-bg: var(--pr-ink);
    --sf-accent: var(--pr-sun);
    --bs-body-font-family: "Archivo", system-ui, -apple-system, "Segoe UI", sans-serif;
    --bs-primary: var(--pr-grape);
    --bs-primary-rgb: 108, 43, 217;
    --bs-link-color: var(--pr-grape-dim);
    --bs-link-color-rgb: 85, 32, 176;
    --bs-link-hover-color: var(--pr-ink);
    --bs-link-hover-color-rgb: 33, 18, 63;
}

/* The ground: cream with a faint confetti dot grid (light theme only; the dark theme stays as it was). */
[data-bs-theme="light"] body, body.bg-light {
    background-color: var(--pr-cream) !important;
    background-image:
        radial-gradient(rgba(108, 43, 217, .10) 1.4px, transparent 1.6px),
        radial-gradient(rgba(255, 79, 154, .08) 1.4px, transparent 1.6px);
    background-size: 26px 26px, 26px 26px;
    background-position: 0 0, 13px 13px;
    color: var(--pr-ink);
}

h1, h2, h3, .h1, .h2, .h3, .navbar-brand, .pr-display { font-family: var(--pr-display); font-weight: 400; letter-spacing: -.01em; }
.sf-navbar .navbar-brand { color: var(--pr-sun); }
.sf-navbar .navbar-brand .material-icons { color: var(--pr-pink); }
.pr-overline { font-family: var(--pr-mono); font-size: .72rem; letter-spacing: .06em; text-transform: uppercase; color: var(--pr-ink-soft); }
.pr-money { font-family: var(--pr-display); font-variant-numeric: tabular-nums; }

/* Buttons: the main action is grape on an ink shadow and presses down. */
.btn-primary {
    --bs-btn-bg: var(--pr-grape); --bs-btn-border-color: var(--pr-ink); --bs-btn-color: #fff;
    --bs-btn-hover-bg: var(--pr-grape-dim); --bs-btn-hover-border-color: var(--pr-ink); --bs-btn-hover-color: #fff;
    --bs-btn-active-bg: var(--pr-grape-dim); --bs-btn-active-border-color: var(--pr-ink); --bs-btn-active-color: #fff;
    --bs-btn-disabled-bg: var(--pr-grape); --bs-btn-disabled-border-color: var(--pr-ink);
    border-width: 2px; font-weight: 700; box-shadow: 0 2px 0 var(--pr-ink);
}
.btn-primary:active { transform: translateY(2px); box-shadow: none; }
.btn-outline-primary {
    --bs-btn-color: var(--pr-grape-dim); --bs-btn-border-color: var(--pr-grape-dim);
    --bs-btn-hover-bg: var(--pr-grape-soft); --bs-btn-hover-color: var(--pr-ink); --bs-btn-hover-border-color: var(--pr-ink);
    --bs-btn-active-bg: var(--pr-grape-soft); --bs-btn-active-color: var(--pr-ink); --bs-btn-active-border-color: var(--pr-ink);
}
.btn:focus-visible, .form-control:focus, .form-select:focus, .form-check-input:focus {
    box-shadow: 0 0 0 .2rem rgba(108, 43, 217, .3); border-color: var(--pr-grape);
}
.form-check-input:checked { background-color: var(--pr-grape); border-color: var(--pr-grape); }

/* Cards: a thin ink outline in the light theme; grids inside them keep their own plain look. */
[data-bs-theme="light"] .card { border: 1.5px solid var(--pr-ink); border-radius: 14px; box-shadow: var(--pr-shadow); }
[data-bs-theme="light"] .card > .card-header:first-child { border-radius: 12px 12px 0 0; background: #FFFBF3; border-bottom: 1.5px solid var(--pr-ink); font-weight: 700; }

/* Sticker panels for dashboards and empty states */
.pr-hero { background: var(--pr-grape); color: #fff; border: var(--pr-outline); border-radius: 18px; box-shadow: 0 4px 0 var(--pr-ink); padding: 1.25rem 1.5rem; position: relative; overflow: hidden; }
.pr-hero h1, .pr-hero h2 { color: #fff; margin: 0; }
.pr-hero img.pr-sticker { position: absolute; right: 1rem; top: 50%; transform: translateY(-50%); height: 84px; }
.pr-tile { display: block; text-decoration: none; color: var(--pr-ink); background: #fff; border: var(--pr-outline); border-radius: 14px; box-shadow: var(--pr-shadow); padding: .9rem 1rem; height: 100%; }
a.pr-tile:hover { background: #FFFBF3; color: var(--pr-ink); }
a.pr-tile:active { transform: translateY(2px); box-shadow: none; }
.pr-tile .pr-money { font-size: 1.6rem; line-height: 1.1; }
.pr-tile.sun { background: var(--pr-sun); }
.pr-tile.warn { background: var(--pr-sun-soft); }
.pr-tile.bad { background: #FFE4E6; }
.pr-tile.good { background: #DDF7E9; }
.pr-tag { display: inline-block; font-family: var(--pr-mono); font-size: .68rem; letter-spacing: .04em; text-transform: uppercase; padding: .12rem .45rem; border: 1.5px solid var(--pr-ink); border-radius: 999px; background: #fff; color: var(--pr-ink); white-space: nowrap; }
.pr-tag.grape { background: var(--pr-grape-soft); }
.pr-tag.sun { background: var(--pr-sun); }
.pr-tag.mint { background: #BFF0D6; }
.pr-tag.pink { background: #FFD3E6; }
.pr-tag.aqua { background: #CFEFFF; }
.pr-tag.ink { background: var(--pr-ink); color: #fff; }
.pr-empty { text-align: center; padding: 2.5rem 1rem; color: var(--pr-ink-soft); }
.pr-empty img { height: 96px; margin-bottom: .75rem; }

@media (prefers-reduced-motion: reduce) { .btn-primary:active, a.pr-tile:active { transform: none; } }

/* The dark theme keeps its own colours, but the same type and the same grape */
[data-bs-theme="dark"] { --bs-link-color: #B794F6; --bs-link-color-rgb: 183, 148, 246; --bs-link-hover-color: #D6BCFA; --bs-link-hover-color-rgb: 214, 188, 250; --pr-ink: #F5F1EB; --pr-ink-soft: #B3AA9E; --sf-navbar-bg: #17102B; }
[data-bs-theme="dark"] .btn-primary { --bs-btn-border-color: #B794F6; box-shadow: none; }
[data-bs-theme="dark"] .pr-tile { background: #1F1C18; }
[data-bs-theme="dark"] .pr-tag { background: transparent; }
