/* ============================================================
   CARTOON / COMIC STYLE — Base layout (header + sidebar + nav)
   ============================================================ */

:root {
    --ink: #1a1a2e;
    --pop-pink: #ff6fb7;
    --pop-yellow: #ffe066;
    --pop-blue: #5b8dee;
    --pop-green: #3ecf8e;
    --pop-purple: #a855f7;
    --pop-orange: #ff7f3f;
    --pop-red: #ff4d6d;
    --pop-teal: #06d6a0;
    --shadow-hard: 5px 5px 0px var(--ink);
    --shadow-hard-lg: 7px 7px 0px var(--ink);
    --border-thick: 1.5px solid var(--ink);
    --border-xthick: 1.5px solid var(--ink);
    --radius-cartoon: 20px;
    --radius-pill: 999px;
    --sidebar-width: 240px;
    --header-height: 64px;
}

/* ── Global ── */
*, *::before, *::after { box-sizing: border-box; }

a, button, select, input[type="submit"] { cursor: pointer; }

:not(.material-icons):not(.material-symbols-outlined) {
    font-family: 'Fredoka', sans-serif !important;
}

.material-icons {
    font-family: 'Material Icons' !important;
    color: currentColor;
}
.material-symbols-outlined {
    font-family: 'Material Symbols Outlined' !important;
}

body {
    background-color: #fdf6ec;
    background-image:
        radial-gradient(circle, rgba(255,224,102,.22) 1px, transparent 1px),
        radial-gradient(circle, rgba(91,141,238,.12) 1px, transparent 1px);
    background-size: 40px 40px, 80px 80px;
    background-position: 0 0, 20px 20px;
    margin: 0;
    color: var(--ink);
}

h1 { color: var(--ink); font-weight: 700; }
p  { font-size: 1.05rem; color: #555; }

select, input, button, .mdl-button {
    font-family: 'Fredoka', sans-serif !important;
}

/* ── MDL layout shell ── */
.mdl-layout.mdl-layout--fixed-drawer.mdl-layout--fixed-header {
    /* MDL sets its own positioning — we override colours/shadows below */
}

/* ── HEADER ── */
.mdl-layout__header {
    background-color: #fff9f0 !important;
    color: var(--ink) !important;
    border-bottom: var(--border-xthick) !important;
    box-shadow: 0 2px 0 var(--ink) !important;
    z-index: 200 !important;
    height: var(--header-height) !important;
    min-height: var(--header-height) !important;
}

.mdl-layout__header-row {
    padding: 0 16px 0 16px !important;
    height: var(--header-height) !important;
}

/* Logo */
.mdl-layout-title > a {
    color: var(--ink);
    text-decoration: none;
    display: flex;
    align-items: center;
    gap: 0;
    font-size: 1.35rem;
    font-weight: 700;
}

.mdl-layout-title > a span {
    color: var(--ink);
    font-weight: 600;
}

.mdl-layout-title img {
    height: 2rem;
    border: none;
    border-radius: 0;
    background: transparent;
    padding: 0;
    transition: transform 0.5s cubic-bezier(0.4, 0, 0.2, 1);
}
.mdl-layout-title > a:hover img {
    transform: rotate(360deg);
}

/* Hide MDL's auto-injected burger button (it overlaps the title) */
.mdl-layout__drawer-button {
    display: none !important;
}

/* Hamburger button */
.custom-drawer-button {
    color: var(--ink) !important;
    border: var(--border-thick) !important;
    border-radius: 10px !important;
    width: 38px !important;
    height: 38px !important;
    min-width: 38px !important;
    box-shadow: 2px 2px 0 var(--ink) !important;
    transition: transform 0.12s, box-shadow 0.12s !important;
    display: none !important;
    align-items: center !important;
    justify-content: center !important;
    background: #fff !important;
    margin-left: 0 !important;
    margin-right: 8px !important;
    cursor: pointer !important;
    flex-shrink: 0 !important;
}
@media (max-width: 1024px) {
    .custom-drawer-button {
        display: flex !important;
    }
    /* Drawer slides in below the header, above content */
    .mdl-layout__drawer {
        top: var(--header-height) !important;
        z-index: 199 !important;
    }
}
.custom-drawer-button:hover {
    transform: translate(-1px,-1px) !important;
    box-shadow: 3px 3px 0 var(--ink) !important;
    background: var(--pop-yellow) !important;
}

/* ── SIDEBAR / DRAWER ── */
.mdl-layout__drawer {
    background-color: #fff9f0 !important;
    color: var(--ink) !important;
    border-right: var(--border-xthick) !important;
    box-shadow: 2px 0 0 var(--ink) !important;
    overflow-x: hidden;
    width: var(--sidebar-width) !important;
}

/* Website selector label */
.mdl-card__supporting-text {
    padding: 16px 16px 8px !important;
}
.mdl-card__supporting-text label {
    font-size: 0.8rem !important;
    font-weight: 700 !important;
    color: #888 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.05em !important;
    display: block !important;
    margin-bottom: 6px !important;
}

/* Site URL select */
#link-select {
    width: 100% !important;
    background: #fff !important;
    border: var(--border-thick) !important;
    border-radius: 14px !important;
    padding: 10px 38px 10px 36px !important;
    font-size: 0.9rem !important;
    font-weight: 600 !important;
    color: var(--ink) !important;
    box-shadow: 3px 3px 0 var(--ink) !important;
    outline: none !important;
    appearance: none !important;
    background-image: url("data:image/svg+xml;charset=UTF-8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%231a1a2e'><path d='M7 10l5 5 5-5z'/></svg>") !important;
    background-repeat: no-repeat !important;
    background-position: right 10px center !important;
    background-size: 20px !important;
    transition: transform 0.12s, box-shadow 0.12s !important;
    min-width: 0 !important;
}
#link-select:hover {
    transform: translate(-1px,-1px) !important;
    box-shadow: 5px 5px 0 var(--ink) !important;
    border-color: var(--ink) !important;
}
#link-select:focus {
    transform: translate(-1px,-1px) !important;
    box-shadow: 5px 5px 0 var(--ink) !important;
}
#link-select:disabled {
    background: #f5f5f5 !important;
    color: #999 !important;
    cursor: not-allowed !important;
    box-shadow: 1px 1px 0 #ccc !important;
}

/* favicon inside select wrapper */
#website-favicon {
    position: absolute;
    left: 10px;
    width: 16px;
    height: 16px;
    z-index: 2;
    border-radius: 3px;
}

/* ── NAV LINKS ── */
.mdl-navigation {
    padding-top: 8px !important;
}

.mdl-navigation__link {
    color: var(--ink) !important;
    font-size: 1rem !important;
    font-weight: 600 !important;
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;
    padding: 10px 16px !important;
    margin: 3px 10px !important;
    border-radius: 14px !important;
    border: 2px solid transparent !important;
    transition: background 0.12s, border-color 0.12s, transform 0.12s, box-shadow 0.12s !important;
    text-decoration: none !important;
    position: relative !important;
}
.mdl-navigation__link .material-icons {
    font-size: 1.25rem !important;
    color: var(--ink) !important;
    flex-shrink: 0;
}

.mdl-navigation__link:hover {
    background: var(--pop-yellow) !important;
    border-color: var(--ink) !important;
    box-shadow: 3px 3px 0 var(--ink) !important;
    transform: translate(-1px,-1px) !important;
}

.mdl-navigation__link.active {
    background: var(--pop-blue) !important;
    color: #fff !important;
    border-color: var(--ink) !important;
    box-shadow: 3px 3px 0 var(--ink) !important;
    transform: translate(-1px,-1px) !important;
}
.mdl-navigation__link.active .material-icons {
    color: #fff !important;
}

/* Premium link special */
.mdl-navigation__link#premium {
    background: var(--pop-yellow) !important;
    border-color: var(--ink) !important;
    box-shadow: 3px 3px 0 var(--ink) !important;
    color: var(--ink) !important;
    font-weight: 700 !important;
}
.mdl-navigation__link#premium:hover {
    transform: translate(-2px,-2px) !important;
    box-shadow: 5px 5px 0 var(--ink) !important;
    background: #ffd000 !important;
}
.mdl-navigation__link#premium .material-icons {
    color: var(--pop-orange) !important;
}
.mdl-navigation__link#premium.active {
    background: var(--pop-yellow) !important;
    color: var(--ink) !important;
}

/* Logout link at bottom */
div[style*="position: absolute; bottom"] .mdl-navigation__link,
.mdl-layout__drawer > div:last-child .mdl-navigation__link {
    background: #fff !important;
    border: var(--border-thick) !important;
    box-shadow: 3px 3px 0 var(--ink) !important;
    border-radius: 14px !important;
    color: var(--ink) !important;
    font-weight: 700 !important;
    margin: 0 !important;
    padding: 8px 14px !important;
}
div[style*="position: absolute; bottom"] .mdl-navigation__link .material-icons {
    color: var(--ink) !important;
}
div[style*="position: absolute; bottom"] .mdl-navigation__link:hover {
    background: var(--ink) !important;
    color: #fff !important;
}
div[style*="position: absolute; bottom"] .mdl-navigation__link:hover .material-icons {
    color: #fff !important;
}

/* Disabled nav link */
.disabled-link { cursor: not-allowed !important; opacity: 0.45; }
.disabled-link i { color: rgba(0,0,0,.4) !important; }

/* ── MAIN CONTENT AREA ── */
.mdl-layout__content {
    background: transparent !important;
}
.page-content {
    padding: 1.5rem;
    min-height: calc(100vh - var(--header-height));
}

/* ── Language selector ── */
.language-selector {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-right: 8px;
}
.language-selector select {
    border: var(--border-thick) !important;
    border-radius: 12px !important;
    padding: 6px 32px 6px 10px !important;
    background: #fff !important;
    box-shadow: 2px 2px 0 var(--ink) !important;
    font-size: 0.9rem !important;
    font-weight: 600 !important;
    color: var(--ink) !important;
    outline: none !important;
    transition: transform 0.12s, box-shadow 0.12s !important;
    min-width: 0 !important;
    appearance: none !important;
}
.language-selector select:hover {
    transform: translate(-1px,-1px) !important;
    box-shadow: 3px 3px 0 var(--ink) !important;
}
#selected-flag {
    border: 2px solid var(--ink);
    border-radius: 4px;
    width: 22px;
    height: 22px;
    object-fit: cover;
    box-shadow: 1px 1px 0 var(--ink);
}

/* ── Responsive ── */
@media (max-width: 768px) {
    .mdl-layout-title > a { font-size: 1.1rem; }
    .mdl-layout-title img { height: 1.6rem; }
    .page-content { padding: 1rem; padding-bottom: 3rem; }
}
@media (max-width: 480px) {
    .mdl-layout-title > a { font-size: 0.95rem; }
    .mdl-layout-title img { height: 1.3rem; }
    .page-content { padding: 0.5rem; padding-bottom: 2.5rem; }
}
