/* =========================
   BASE / RESET
========================= */

html {
    background: #ffffff;
}



body {
    font-family: 'Poppins', sans-serif;
    font-weight: 400;
    color: #161b4e;
    margin: 0;
}

input,
select,
textarea,
button {
    font-family: inherit;
}



/* =========================
   LAYOUT
========================= */

.page-container {
    margin: 40px auto;
}

.site-width {
    max-width: 1000px;
    margin: 0 auto;
    padding: 0 20px;
    box-sizing: border-box;
}

.header-container {
	min-height: 120px;
	width: 98%;
	margin-left: auto;
	margin-right: auto;
	padding-top: 20px;
	text-align: center;
}

header {
	max-width: 1024px;
	min-height: 100px;
	margin: 0 auto;
	display: block;
	font-weight: 400;
    position: relative;
}

footer {
	background-color: white;
	width: 100%;
	min-height: 60px;
	margin-bottom: 20px;
	text-align: center;
	color: #161B4E;
}

.page-intro {
    margin-bottom: 30px;
    color: #555;
}

.account-actions {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
}

/* =========================
   TYPOGRAPHY
========================= */

h1 {
    font-size: 2.4rem;
    font-weight: 600;
    margin-bottom: 20px;
}

h2 {
    font-size: 1.6rem;
    margin-bottom: 16px;
    font-weight: 600;
}

h3 {
    font-size: 1.1rem;
    font-weight: 600;
    margin-bottom: 10px;
}

h4 {
    font-size: 1.1rem;
    margin-bottom: 16px;
}

h5 {
    font-size: 1.6rem;
    margin-bottom: 16px;
}

p {
    line-height: 1.6;
    margin-bottom: 10px;
}

footer p{
padding-top: 10px;
font-weight: 200;
font-size: .8rem;
}

/* =========================
   UMA LAYOUT
========================= */

.uma-layout {
    display: grid;
    grid-template-columns: 220px 1fr; /* slightly slimmer */
    gap: 20px;
    margin-top: 20px;
    align-items: stretch;
}

/* LEFT + RIGHT columns */
.uma-left,
.uma-right {
    display: flex;
    flex-direction: column;
    height: 600px;
}

.uma-right form {
    display: flex;
    flex-direction: column;
    height: 100%;
}

/* =========================
   UMA LIST (LEFT)
========================= */

.uma-list {
    display: flex;
    flex-direction: column;
    gap: 4px;
    overflow-y: auto;
    flex: 1;
}

/* item */
.uma-item {
    display: block;
    padding: 8px 10px;
    font-size: 13px;
    line-height: 1.3;
    transition: 0.2s;
}

/* alternating rows */
.uma-item:nth-child(odd) {
    background: #ffffff;
}

.uma-item:nth-child(even) {
    background: rgba(0,0,0,0.03);
}

/* theme tint */
.theme-know-myself .uma-item:nth-child(even) { background: #edf6fb; }
.theme-express-myself .uma-item:nth-child(even) { background: #f9edf4; }
.theme-be-well .uma-item:nth-child(even) { background: #f3eef7; }
.theme-have-adventures .uma-item:nth-child(even) { background: #f1f6ec; }
.theme-take-action .uma-item:nth-child(even) { background: #f8f2eb; }
.theme-skills-future .uma-item:nth-child(even) { background: #fbf1f6; }

/* hover */
.uma-item:hover {
    background: #e9edff !important;
}

/* active */
.uma-item.active {
    background: #1c2674 !important;
    color: #fff;
    font-weight: 600;
}

/* text inside */
.uma-name {
    display: block;
}

.uma-meta {
    font-size: 11px;
    opacity: 0.7;
}

/* =========================
   GIRLS LIST (RIGHT)
========================= */

.girls-list {
    flex: 1;              /*  fills remaining space */
    overflow-y: auto;     /*  scroll happens here */
    display: flex;
    flex-direction: column;
    gap: 6px;
    padding-right: 6px;
}

.uma-right button {
    margin-top: 10px;
}

/* rows */
.girls-list .person {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 6px 8px;
    border-radius: 8px;
    transition: 0.15s;
}

.girls-list .person:hover {
    background: #f5f7ff;
}

/* =========================
   MOBILE
========================= */

@media (max-width: 900px) {
    .uma-layout {
        grid-template-columns: 1fr;
    }

    .uma-right {
        max-height: none;
    }
}

/* =========================
   LINKS
========================= */

a {
color: #161b4e;
text-decoration: none;
}

/* =========================
   NAV (PORTAL)
========================= */



.mini-nav-wrap {
	max-width: 1000PX;
    margin: 0 auto 25px auto;
    padding: 0 20px;
}

.mini-nav {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    justify-content: center;
    margin-top: 10px;
}

/* main nav buttons (not portal) */
.navbutton {
	padding: 2px 5px;
	position: relative;
	margin-right: 5px;
	font-size: 0.9rem;
}

.navbutton:hover {
  background-color: #161B4E;
  color: white;
}
.navbutton:active {
	background-color: #007bc4;
	color: white;
}


/* buttons */
.nav-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 8px 12px;
    font-size: 0.85rem !important;
    border-radius: 10px;
    white-space: nowrap;
}

.nav-btn.active {
    background: #1c2674;
    color: #ffffff;
}

.nav-btn.inactive {
    background: #f3f4f6;
    color: #1c2674;
}

.nav-btn.logout-btn {
    background: #fbe9e7;
    color: #b23b2a;
}

/* dropdown */
.nav-dropdown {
    position: relative;
}

.nav-dropdown-content {
    display: none;
    position: absolute;
    top: 100%;
    left: 0;
    background: #ffffff;
    border-radius: 10px;
    min-width: 180px;
    overflow: hidden;
    z-index: 1000;
    font-size: 0.85rem !important;
}

.nav-dropdown-content a {
    display: block;
    padding: 10px;
}

.nav-dropdown:hover .nav-dropdown-content {
    display: block;
}

.mob-wrapper {
    display: none;
}

.burgermenu {
    width: 24px;
}

.mob-nav {
    display: none;
    padding: 10px 0 0;
    text-align: right;
}

/* ===== PORTAL COMPONENTS ===== */

/* Cards (used everywhere) */
.card {
    background: #ffffff;
    border-radius: 14px;
    padding: 20px;
	
}

.card-notice {
    background: #FEFBF2;
    border-radius: 14px;
    padding: 10px;
    margin-bottom: 15px;
    border-left:6px solid #f2b400;
}

/* Smaller centred card (login etc) */
.card-sm {
    max-width: 420px;
    margin: 40px auto;
}

/* dashboard grid */
.dashboard-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
}

.dashboard-card {
    display: block;
    border: 1px solid #e5e7eb;
    border-radius: 14px;
    padding: 20px;
    text-decoration: none;
    color: inherit;
    transition: 0.2s ease;
}

.dashboard-card:hover {
    border-color: #1c2674;
}

.card-yourchildren {
    background:#F8F9FF;
    padding:20px 24px;
    border-radius:16px;
    margin-bottom:30px;
}

.dashboard-card.active {
    border: 2px solid #1c2674;
    background: #f5f7ff;
}

.dashboard-grid-2 {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
}

/* mobile */
@media (max-width: 768px) {
    .dashboard-grid-2 {
        grid-template-columns: 1fr;
    }
}

.summary-value {
    font-size: 1.8rem;
    font-weight: 700;
}

.progress-bar {
    height: 6px;
    background: #e5e7eb;
    border-radius: 6px;
    margin: 8px 0;
}

.progress-fill {
    height: 6px;
    background: #1c2674;
    border-radius: 6px;
}

/* =========================
   DROPDOWN POLISH
========================= */

.spaced-select {
    margin-bottom: 12px;        /* spacing between fields */
}

.styled-select {
    width: 100%;
    padding: 10px 12px;
    border-radius: 12px;        /*  nice rounded corners */
    border: 1px solid #d7dbe7;
    background: #ffffff;
    font-size: 14px;

    transition: all 0.2s ease;
}

/* hover */
.styled-select:hover {
    border-color: #1c2674;
}

/* focus (click) */
.styled-select:focus {
    outline: none;
    border-color: #1c2674;
    box-shadow: 0 0 0 2px rgba(28, 38, 116, 0.1);
}

/* =========================
   COLUMN FLOW (A E I style)
========================= */
.column-flow {
    display: grid;
    grid-auto-flow: column;
    grid-template-rows: repeat(auto-fill, minmax(0, 1fr));
    gap: 10px;
}

.register-grid {
	width: 100%;
    display: grid;
    gap: 16px;
	align-items: stretch;
	font-size: 0.85rem;
}

/* 3 columns (Rainbows + Guides) */
.register-grid.cols-3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

/* 4 columns (Brownies) */
.register-grid.cols-4 {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.helper-role {
    font-size: 11px;
    color: #777;
}

.notes-box {
    resize: none;
    min-height: 90px;
    max-height: 90px;
    overflow-y: auto;
	width: 100%;
}

.group-card {
    background: #ffffff;
    border: 1px solid #e7eaf3;
    border-radius: 12px;
    padding: 14px;
}

.group-card h3 {
    margin-bottom: 10px;
    font-size: 1rem;
    color: #1c2674;
}

.group-card:last-child {
    margin-bottom: 0;
}


/* Form system */
.form-group {
    margin-bottom: 14px;
}

.form-group label {
    display: block;
    font-weight: 600;
    color: #1c2674;
    margin-bottom: 6px;
}

.form-group input {
    width: 100%;
    padding: 10px;
    border-radius: 8px;
    border: 1px solid #ccc;
    box-sizing: border-box;
}

.form-group label.checkbox-inline {
    display: flex !important;      /* override block */
    align-items: center;
    justify-content: flex-start;
    gap: 8px;
    font-weight: 400;
}

.form-group label.checkbox-inline input {
    margin: 0;
    width: auto;                  /* stops full width weirdness */
}

/* Messages */
.message-error {
    background: #ffe5e5;
    color: #b00020;
    padding: 12px;
    border-radius: 10px;
    margin-bottom: 15px;
}

/* NEXT STEP */
.next-step-card {
    margin-top: 20px;
    border-left: 6px solid #1c2674;
    background: #f9faff;
}

/* promise */
.promise-date {
    font-weight: 600;
    color: #1c2674;
}

.muted-text {
    color: #888;
}

/* HISTORY PAGE */

.history-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
}

.nav-between {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.notice-header {
    display: flex;
    align-items: center;
    gap: 10px;
}

.nav-date {
    font-weight: 600;
    color: #1c2674;
}

.notes-display {
    margin-bottom: 20px;
    line-height: 1.6;
}

.status-icon {
    width: 18px;
    display: inline-block;
    font-weight: 700;
}

/* FIRE REGISTER */

.fire-summary {
    margin-bottom: 15px;
    font-weight: 500;
}



/* spacing tweak */
.section-title {
    margin-top: 25px;
}

.person input:checked + span {
    color: #2e7d32;
    font-weight: 600;
}

.checkbox-inline {
    display: flex;
    align-items: center;
    justify-content: flex-start; /* 👈 forces left */
    gap: 8px;
    font-weight: 400;
    cursor: pointer;
}

.checkbox-inline input {
    margin: 0;
}

/*Girl Switcher */

.girl-switcher {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin: 15px 0 25px;
    padding: 12px 16px;
    background: #fff;
    border-radius: 14px;
    border: 1px solid #e5e7ef;
}

.girl-switcher-name {
    font-size: 1.1rem;
    font-weight: 600;
    color: #1c2674;
}

.girl-switcher-unit {
    font-size: 0.85rem;
    color: #777;
}

.section-subtitle {
    margin: 20px 0 10px;
    font-weight: 600;
    color: #1c2674;
}

.pill-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
    gap: 10px;
}

.pill {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 10px 12px;
    border-radius: 10px;
    border: 1px solid #e3e6f0;
    background: #fff;
    cursor: pointer;
    transition: 0.2s;
}

.pill:hover {
    background: #f5f7ff;
    border-color: #1c2674;
}

.pill input {
    accent-color: #1c2674;
}

/* =========================
   GIRL OVERVIEW
========================= */

.programme-section {
            margin-bottom: 30px;
            scroll-margin-top: 100px;
        }

        .programme-grid {
            display: grid;
            grid-template-columns: repeat(3, minmax(0, 1fr));
            gap: 20px;
        }

        .theme-card,
        .programme-list-card,
        .special-award-card {
            border-radius: 20px;
            border: 1px solid #d8dbe8;
            padding: 18px;
            min-height: 100%;
            box-sizing: border-box;
			font-size: 0.85rem;
			font-weight: 400;
			line-height: .95rem;
        }

        .theme-card h3,
        .programme-list-card h3,
        .special-award-card h3 {
            margin: 0;
            font-size: 1.15rem;
            line-height: 1.2;
			padding-bottom: 5px;
        }

.theme-card.theme-know-myself h3,
        .programme-list-card.theme-know-myself h3 { color: #1397df; }

        .theme-card.theme-express-myself h3,
        .programme-list-card.theme-express-myself h3 { color: #ec178f; }

        .theme-card.theme-be-well h3,
        .programme-list-card.theme-be-well h3 { color: #8e58a7; }

        .theme-card.theme-have-adventures h3,
        .programme-list-card.theme-have-adventures h3 { color: #67b539; }

        .theme-card.theme-take-action h3,
        .programme-list-card.theme-take-action h3 { color: #f08a00; }

        .theme-card.theme-skills-future h3,
        .programme-list-card.theme-skills-future h3 { color: #f2a6cb; }

        .programme-list-card {
			border-radius: 20px;
			border: 1px solid #d8dbe8;
			padding: 18px;
			min-height: 100%;
			box-sizing: border-box;
			background: #ffffff;
			display: flex;
			flex-direction: column;
		}
		
		.programme-list-card.theme-know-myself {
    background: #edf6fb;
    border-top: 5px solid #1397df;
}

.programme-list-card.theme-express-myself {
    background: #f9edf4;
    border-top: 5px solid #ec178f;
}

.programme-list-card.theme-be-well {
    background: #f3eef7;
    border-top: 5px solid #8e58a7;
}

.programme-list-card.theme-have-adventures {
    background: #f1f6ec;
    border-top: 5px solid #67b539;
}

.programme-list-card.theme-take-action {
    background: #f8f2eb;
    border-top: 5px solid #f08a00;
}

.programme-list-card.theme-skills-future {
    background: #fbf1f6;
    border-top: 5px solid #f2a6cb;
}

.theme-card-header,
        .special-award-header {
            display: flex;
            justify-content: space-between;
            align-items: flex-start;
            gap: 10px;
            margin-bottom: 16px;
        }

.theme-card-header h3 {
    max-width: 140px;
    line-height: 1.2;
    word-wrap: break-word;
}

.badge-parts {
    margin-top: 10px;
    display: flex;
    flex-direction: column;
    gap: 4px;
    font-size: 0.85rem;
}

.badge-parts input {
    accent-color: #1c2674; /* matches your theme */
}

.upload-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 18px;
}

.upload-card {
    animation: fadeIn 0.3s ease;
}

@keyframes fadeIn {
    from { opacity:0; transform: translateY(10px); }
    to { opacity:1; transform: translateY(0); }
}

.badge-header {
    margin-bottom: 10px;
    padding: 12px 18px;
    border-radius: 12px;
    font-size: 28px;
    font-weight: 700;
    display: inline-block;
}

/* Theme colours (match your cards) */

.badge-header.theme-know-myself {
    background: #edf6fb;
    color: #1397df;
}

.badge-header.theme-express-myself {
    background: #f9edf4;
    color: #ec178f;
}

.badge-header.theme-be-well {
    background: #f3eef7;
    color: #8e58a7;
}

.badge-header.theme-have-adventures {
    background: #f1f6ec;
    color: #67b539;
}

.badge-header.theme-take-action {
    background: #f8f2eb;
    color: #f08a00;
}

.badge-header.theme-skills-future {
    background: #fbf1f6;
    color: #f2a6cb;
}

.badge-tick {
    margin-left: 6px;
    font-weight: 700;
    font-size: 16px;
    display: inline-block;
}

/* Theme colours only (no background) */
.badge-tick.theme-know-myself { color: #1397df; }
.badge-tick.theme-express-myself { color: #ec178f; }
.badge-tick.theme-be-well { color: #8e58a7; }
.badge-tick.theme-have-adventures { color: #67b539; }
.badge-tick.theme-take-action { color: #f08a00; }
.badge-tick.theme-skills-future { color: #f2a6cb; }


.theme-card.theme-know-myself {
            background: #edf6fb;
            border-top: 5px solid #1397df;
        }

        .theme-card.theme-express-myself {
            background: #f9edf4;
            border-top: 5px solid #ec178f;
        }

        .theme-card.theme-be-well {
            background: #f3eef7;
            border-top: 5px solid #8e58a7;
        }

        .theme-card.theme-have-adventures {
            background: #f1f6ec;
            border-top: 5px solid #67b539;
        }

        .theme-card.theme-take-action {
            background: #f8f2eb;
            border-top: 5px solid #f08a00;
        }

        .theme-card.theme-skills-future {
            background: #fbf1f6;
            border-top: 5px solid #f2a6cb;
        }

.theme-card-header,
            .special-award-header {
                flex-direction: column;
                align-items: flex-start;
            }
.theme-total {
            font-size: 2rem;
            font-weight: 800;
            line-height: 1;
            margin-bottom: 6px;
            color: #1d2f7c;
        }

.theme-subtext {
            color: #7b7b7b;
            margin-bottom: 14px;
        }

        .theme-stats {
            border-top: 1px solid rgba(0,0,0,0.08);
            border-bottom: 1px solid rgba(0,0,0,0.08);
            padding: 12px 0;
            margin-bottom: 14px;
        }

        .theme-stat-row,
        .award-stat-row {
            display: flex;
            justify-content: space-between;
            gap: 12px;
            margin-bottom: 8px;
        }

        .theme-stat-row:last-child,
        .award-stat-row:last-child {
            margin-bottom: 0;
        }

        .theme-stat-label,
        .award-stat-label {
            font-weight: 700;
            color: #25314f;
        }

        .theme-stat-value,
        .award-stat-value {
            text-align: right;
            color: #5a5a5a;
        }

        .theme-footer {
            color: #7a6f76;
            min-height: 40px;
            margin-bottom: 14px;
			font-size: .85rem;
        }

        .muted-empty {
            color: #7a7a7a;
            margin: 10px 0 0;
        }

.pill {
            display: inline-block;
            padding: 6px 12px;
            border-radius: 999px;
            font-size: 0.92rem;
            font-weight: 700;
            line-height: 1;
            white-space: nowrap;
        }

        .pill.completed,
        .pill.awarded {
            background: #cde7ee;
            color: #04546a;
        }

        .pill.started {
            background: #eedeb4;
            color: #8a6220;
        }

        .pill.not_started {
            background: #ececec;
            color: #555;
        }

.award-given {
    margin: 0;
    color: #1e7e34;
    font-weight: 500;
}

.styled-select {
    width:100%;
    padding:12px 14px;
    border-radius:10px;
    border:1px solid #ddd;
    font-size:14px;
    background:#fff;
    cursor:pointer;
}

/* =========================
   BUILDER GRID
========================= */
.builder-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
}

.builder-card {
    background: #ffffff;
    border: 1px solid #e7eaf3;
    border-radius: 12px;
    padding: 14px;
}

.card-builder {
    background: #ffffff;
    border-radius: 14px;
    padding-bottom: 20px;
	
}

.builder-card h4 {
    margin-bottom: 10px;
    color: #1c2674;
    font-size: 1rem;
}




@media (max-width: 900px) {
    .builder-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 768px) {
    .builder-grid {
        grid-template-columns: 1fr;
    }
}

.two-col-layout {
    display: grid;
    grid-template-columns: 300px 1fr;
    gap: 30px;
}

@media (max-width: 768px) {
    .two-col-layout {
        grid-template-columns: 1fr;
    }
}

.column-flow {
    column-count: 3;
    column-gap: 20px;
}

.column-flow .person {
    break-inside: avoid;
    display: block;
    margin-bottom: 6px;
}

/* =========================
   SKILLS BUILDER (NEW CLEAN)
========================= */

.skills-theme-section {
    margin-bottom: 30px;
}

.skills-theme-title {
    font-size: 1.4rem;
    font-weight: 600;
    margin-bottom: 15px;
    color: #1c2674;
}

/* GRID */
.skills-builder-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 20px;
}

@media (max-width: 900px) {
    .skills-builder-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 600px) {
    .skills-builder-grid {
        grid-template-columns: 1fr;
    }
}

/* CARD */
.skills-builder-card {
    border-radius: 20px;
    padding: 18px;
    border: 1px solid #d8dbe8;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}

/* THEME COLOURS (reuse your system) */
.skills-builder-card.theme-know-myself {
    background: #edf6fb;
    border-top: 5px solid #1397df;
}

.skills-builder-card.theme-express-myself {
    background: #f9edf4;
    border-top: 5px solid #ec178f;
}

.skills-builder-card.theme-be-well {
    background: #f3eef7;
    border-top: 5px solid #8e58a7;
}

.skills-builder-card.theme-have-adventures {
    background: #f1f6ec;
    border-top: 5px solid #67b539;
}

.skills-builder-card.theme-take-action {
    background: #f8f2eb;
    border-top: 5px solid #f08a00;
}

.skills-builder-card.theme-skills-future {
    background: #fbf1f6;
    border-top: 5px solid #f2a6cb;
}

/* HEADER */
.skills-card-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 10px;
}

.skills-card-header h4 {
    margin: 0;
    font-size: 1rem;
}

/* PART LIST */
.skills-parts {
    margin: 10px 0;
}

.skills-part {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 6px 0;
    font-size: 0.9rem;
}

/* FOOTER */
.skills-footer {
    margin-top: 10px;
    font-size: 0.8rem;
    color: #666;
}

/* BUTTON */
.skills-builder-card button {
    margin-top: 10px;
    width: 100%;
}

/* =========================
   BULK BUILDER CARDS
========================= */

.builder-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
    gap: 20px;
}

.builder-card {
    background: #ffffff;
    border: 1px solid #e7eaf3;
    border-radius: 16px;
    padding: 16px;
    display: flex;
    flex-direction: column;
}

.builder-card h4 {
    font-size: 1rem;
    font-weight: 600;
    margin-bottom: 10px;
    color: #1c2674;
}

/* SCROLL AREA */
.builder-scroll {
    max-height: 220px;
    overflow-y: auto;
    padding-right: 5px;
}

/* nicer scroll (optional but looks good) */
.builder-scroll::-webkit-scrollbar {
    width: 6px;
}

.builder-scroll::-webkit-scrollbar-thumb {
    background: #d3d8ea;
    border-radius: 10px;
}

/* PERSON ROW */
.builder-scroll .person {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 6px 4px;
    border-radius: 8px;
}

.builder-scroll .person:hover {
    background: #f5f7ff;
}

/* STATUS PILL (match overview) */
.pill {
    display: inline-block;
    padding: 6px 12px;
    border-radius: 999px;
    font-size: 13px;
    font-weight: 600;
}

.pill.completed {
    background: #e6f7ed;
    color: #1e7e34;
}

.pill.started {
    background: #fff4e5;
    color: #b26a00;
}

/* PART LIST */
.skills-parts-column {
    margin-top: 12px;
    margin-bottom: 12px;
}

.skills-part-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 6px 0;
    font-size: 14px;
}

/* checkbox spacing */
.skills-part-row input {
    margin-left: 10px;
}

/* COMPLETION TEXT */
.skills-stage-meta {
    font-size: 13px;
    color: #666;
    margin-top: 10px;
}

/* SAVE BUTTON (match site) */
.skills-stage-card .primary-button {
    margin-top: 15px;
    width: 100%;
    border-radius: 10px;
}

.skills-theme-wrap {
    margin-bottom: 25px;
}

.skills-stage-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
    gap: 20px;
}



/* =========================
   INTEREST BADGES
========================= */

.interest-badge-card {
    background:#fff;
    border:1px solid #e5e7eb;
    border-radius:14px;
    padding:15px;
}

.interest-badges-grid {
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
    gap:16px;
}

/* badge grid control */
.programme-grid.cols-4 {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.programme-grid.cols-3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

/* make cards clickable nicely */
.programme-list-card {
    text-decoration: none;
    transition: 0.2s ease;
}

.programme-list-card:hover {
    transform: translateY(-2px);
}

/* active state */
.programme-list-card.active {
    border: 2px solid #1c2674;
}

.upload-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 25px;
    margin-top: 25px;
}

.upload-card {
    background: #fff;
    padding: 20px;
    border-radius: 16px;
}


/* STATUS */
.status-badge {
    padding: 6px 10px;
    border-radius: 8px;
    font-weight: 600;
    margin-bottom: 10px;
    display: inline-block;
}

.status-grey { background:#eee; color:#555; }
.status-green { background:#e3f7e8; color:#1f7a3d; }
.status-yellow { background:#fff3cd; color:#8a6d3b; }

/* STATUS */
.status-badge {
    padding: 8px 12px;
    border-radius: 999px;
    display: inline-block;
    font-weight: 600;
    margin-bottom: 12px;
}

.status-grey { background:#eee; }
.status-green { background:#e3f7e8; color:#1f7a3d; }
.status-yellow { background:#fff3cd; color:#8a6d3b; }


.status { padding:6px 10px; border-radius:8px; margin-bottom:10px; }
.status.completed { background:#e3f7e8; }
.status.pending { background:#fff3cd; }
.status.not_started { background:#eee; }

.interest-badges-grid.cols-4 { display:grid; grid-template-columns:repeat(4,1fr); gap:16px; }
.interest-badges-grid.cols-3 { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }

.builder-scroll { max-height:220px; overflow-y:auto; }

/* FORM */
.upload-form input,
.upload-form textarea {
    width: 100%;
    margin-bottom: 10px;
}

/* EVIDENCE */
.evidence-list {
    margin-top: 15px;
}

.evidence-item {
    background:#fafafa;
    padding:12px;
    border-radius:10px;
    margin-bottom:10px;
}

.evidence-preview img {
    width:100px;
    height:100px;
    object-fit:cover;
    border-radius:8px;
    margin-top:8px;
}

.no-evidence {
    color:#777;
}

/* RESPONSIVE */
@media (max-width: 900px) {
    .upload-grid {
        grid-template-columns: repeat(2,1fr);
    }
}

@media (max-width: 600px) {
    .upload-grid {
        grid-template-columns: 1fr;
    }
}

/* =========================
   PEOPLE
========================= */

.person {
    padding: 6px 8px;
    border-radius: 8px;
    transition: background 0.15s ease;
    cursor: pointer;
}

.person:hover {
    background: #f7f8fc;
}

.person div {
    display: flex;
    align-items: center;
    gap: 8px;
}

.person input[type="checkbox"] {
    transform: scale(1.2);
}

.top-awards-form {
            display: grid;
            grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
            gap: 16px;
            margin-bottom: 20px;
        }

.special-award-card {
            background: #fff;
        }

        .special-award-card.bronze {
            background: #f7efe7;
            border-top: 5px solid #b87947;
        }

        .special-award-card.silver {
            background: #f3f4f7;
            border-top: 5px solid #9aa4b0;
        }

        .special-award-card.gold {
            background: #fbf6e7;
            border-top: 5px solid #d2ae31;
        }

        .special-award-controls {
            margin-top: 14px;
            padding-top: 12px;
            border-top: 1px solid rgba(0,0,0,0.08);
        }

        .special-award-controls label,
        .top-awards-form label {
            font-weight: 600;
        }
		.back-to-top-row {
				margin-top: 30px;
				display: flex;
				justify-content: flex-end;
			}

.girl-nav-arrows {
    display: flex;
    justify-content: space-between;
    margin-bottom: 10px;
}

/* =========================
   GIRL SELECTOR BAR
========================= */

.girl-selector {
    display: grid;
    grid-template-columns: 1fr 2fr;
    gap: 12px;
    align-items: center;
    margin: 15px 0;
}

/* arrows stacked nicely */
.girl-nav-arrows {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

/* arrow buttons */
.girl-nav-arrows a {
    display: block;
    padding: 8px 12px;
    border-radius: 10px;
    background: #eef1f7;
    font-size: 13px;
    transition: 0.2s ease;
}

.girl-nav-arrows a:hover {
    background: #e3e8f3;
}

/* dropdown styling */
.girl-dropdown select {
    width: 100%;
    padding: 12px 14px;
    border-radius: 12px;
    border: 1px solid #d7dbe7;
    font-size: 14px;
    background: #fff;
    transition: 0.2s ease;
}

.girl-dropdown select:hover {
    border-color: #1c2674;
}

/* =========================
   MOBILE
========================= */

@media (max-width: 768px) {
    .girl-selector {
        grid-template-columns: 1fr;
    }

    .girl-nav-arrows {
        flex-direction: row;
        justify-content: space-between;
    }
}

/* ===== FILTER CARD LAYOUT ===== */
#overview-filter {
    display: flex;
    flex-direction: column;
    gap: 15px;
}

/* ===== FORM ROW ===== */
.overview-filter-form {
    display: grid;
            grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
            gap: 16px;
            margin-bottom: 18px;
}

/* each field block */
.overview-filter-form > div {
    display: flex;
    flex-direction: column;
    min-width: 180px;
}

/* labels */
.overview-filter-form label {
    font-size: 1.2rem;
    font-weight: 600;
    color: #555;
    margin-bottom: 4px;
}

/* selects */
.overview-filter-form select {
    padding: 8px 10px;
    border-radius: 8px;
    border: 1px solid #d7dbe7;
    font-size: 0.85rem;
    background: #fff;
    cursor: pointer;
}

/* hover */
.overview-filter-form select:hover {
    border-color: #1c2674;
}

/* ===== NAV BUTTONS ===== */
.overview-nav-buttons {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 25px;
    
}

/* optional: make buttons slightly smaller here */
.overview-nav-buttons .secondary-btn {
    padding: 6px 10px;
    font-size: 12px;
    margin-bottom: 25px;
}

/* =========================
   UNIT OVERVIEW
========================= */

/* HEADER */
.page-header {
    margin-bottom: 20px;
}
.page-header h1 {
    font-size: 32px;
    color: #1c2674;
}
.page-header p {
    color: #666;
}

.programme-card {
    max-width: 1000px;
    margin: 15px auto;
    overflow-x: auto;
    padding: 10px;
    border-radius: 14px;
    background: #fff;
}

.programme-table {
    width: 100%;
    border-collapse: collapse;
    background: #fff;
    border-radius: 12px;
    overflow: hidden;
    font-weight: 400;
    font-size: 0.9rem;
}

.programme-table th {
    background: #f8fafc;
    font-weight: 500;
    font-size: 1rem;
}

.programme-table th,
.programme-table td {
    padding: 6px;
    text-align: center;
    border: 1px solid #eee;
}

.programme-table tbody tr:hover {
    background: #f9fafb;
}

.name-col {
    text-align: left;
    font-weight: 500;
}

.name-link {
    text-decoration: none;
    color: #1c2674;
}

.cell-complete {
    color: #fff;
}



.cell-complete.promise-col {
    background: #fff; /* your main blue */
    color: #1c2674;
}

.cell-complete.bronze {
    background: #b56a2d;
}

.cell-complete.silver {
    background: #7a7f87;
}

.cell-complete.gold {
    background: #c79a00;
}

.cell-complete.anniversary {
    background: #8cb5e2;
    color: #fff;
}

.section-divider-left {
    border-left: 2px solid lightgrey !important;
}


/* THEME HEADER COLOURS (LIGHT) */

/* THEME COLOURS */
.theme-know-myself { background:#D0EAF9;}
.theme-express-myself { background:#FBD1E9; }
.theme-be-well { background:#E8DEED; }
.theme-have-adventures { background:#E1F0D7; }
.theme-take-action { background:#FCE8CC; }
.theme-skills-future { background:#fbf1f6; }



/* COMPLETED CELLS (SOLID) */

.cell-complete.theme-know-myself {
    background: #1397df;
    color: #fff;
}

.cell-complete.theme-express-myself {
    background: #ec178f;
    color: #fff;
}

.cell-complete.theme-be-well {
    background: #8e58a7;
    color: #fff;
}

.cell-complete.theme-have-adventures {
    background: #67b539;
    color: #fff;
}

.cell-complete.theme-take-action {
    background: #f08a00;
    color: #fff;
}

.cell-complete.theme-skills-future {
    background: #f2a6cb;
    color: #fff;
}

.programme-table th.theme-know-myself { color: #1397df; background: #f8fafc; }
.programme-table th.theme-express-myself { color: #ec178f; background: #f8fafc; }
.programme-table th.theme-be-well { color: #8e58a7; background: #f8fafc; }
.programme-table th.theme-have-adventures { color: #67b539; background: #f8fafc; }
.programme-table th.theme-take-action { color: #f08a00; background: #f8fafc; }
.programme-table th.theme-skills-future { color: #f2a6cb; background: #f8fafc; }

/* =========================
   BUTTONS
========================= */

.btn-primary {
    background: #1c2674;
    color: #ffffff;
	border: none;
    padding: 8px 14px;
    border-radius: 6px;
    font-size: 13px;
    font-weight: 500;
    cursor: pointer;
    margin: 0 5px;
}

.btn-secondary {
    background: #eef1f7;
	border: none;
    padding: 8px 14px;
    border-radius: 6px;
    font-size: 13px;
    font-weight: 500;
    cursor: pointer;
    margin: 0 5px;
}

.btn-delete {
    background: #ffe5e5;
    color: #b00020;
	border: none;
    padding: 8px 14px;
    border-radius: 6px;
    font-size: 13px;
    font-weight: 500;
    cursor: pointer;
    margin: 0 5px;
}



.btn-secondary:hover {
    background: #e3e8f3;
	border: none;
    padding: 8px 14px;
    border-radius: 6px;
    font-size: 13px;
    font-weight: 500;
    cursor: pointer;
}

.btn-delete:hover {
    background: #ebcaca;
    color: #b00020;
	border: none;
    padding: 8px 14px;
    border-radius: 6px;
    font-size: 13px;
    font-weight: 500;
    cursor: pointer;
    margin: 0 5px;
}

.action-buttons {
    display: flex;
    gap: 8px;
    align-items: center;
}

.inline-form {
    display: inline;
}



/* ACTIVE STATE (used for selected builder + stage) */
.btn-secondary.active {
    background: #1c2674;
    color: #ffffff;
}

.btn-primary:hover {
    background: #2a3590;
}



.btn-danger {
    background: #e54848;
    color: #ffffff;
    padding: 8px 14px;
    border-radius: 8px;
}

.full-width {
    width:100%;
}

.file-input {
    width:100%;
    padding:10px;
    border:1px dashed #ccc;
    border-radius:10px;
    background:#fafafa;
    cursor:pointer;
    margin-bottom:10px;
}
.evidence-item {
    background:#fff;
    border-radius:10px;
    padding:10px;
    margin-top:10px;
    border:1px solid #eee;
}

.evidence-preview img {
    width:100%;
    max-height:120px;
    object-fit:cover;
    border-radius:8px;
}

.upload-card {
    display:flex;
    flex-direction:column;
    gap:10px;
}

.evidence-item {
    margin-top: 15px;
    padding: 12px;
    border: 1px solid #eee;
    border-radius: 10px;
}

.evidence-image {
    width: 120px;
    height: 120px;
    object-fit: cover;
    border-radius: 8px;
    margin-top: 10px;
    display: block;
}

.evidence-video {
    width: 100%;
    max-width: 220px;
    border-radius: 8px;
    margin-top: 10px;
    display: block;
}

.evidence-preview {
    margin-top: 8px;
}

/* ===== LOGIN CARD ===== */

.login-card {
    text-align: left;
    border-radius: 18px;
}

/* Title */
.login-card h1 {
    text-align: center;
    margin-bottom: 20px;
    color: #1c2674;
}

/* Inputs */
.login-card input {
    width: 100%;
    width: 100%;
    border-radius: 10px;
    border: 1px solid #d9d9d9;
    transition: all 0.2s ease;
}

.login-card input:focus {
    border-color: #1c2674;
    outline: none;
}

/* Button */
.login-btn {
    width: 100%;
    margin-top: 10px;
    padding: 12px;
    border-radius: 10px;
    font-weight: 600;
}

.parent-girl-buttons {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-bottom: 20px;
}

.parent-girl-button {
    padding: 10px 16px;
    border-radius: 999px;
    background: #eeeeee;
    text-decoration: none;
    color: #333;
    font-weight: 600;
    border: 1px solid #ddd;
}

.parent-girl-button.active {
    background: #1c2674;
    color: #fff;
}

.unit-btn {
    padding:8px 14px;
    border-radius:20px;
    background:#eef1f7;
    color: #1c2674;
    text-decoration:none;
    font-size:14px;
}

.unit-btn.active {
    background: #1c2674;
    color: #ffffff;
}

.unit-buttons {
    display:flex;
    flex-wrap:wrap;
    gap:8px;
    margin-bottom:15px;
}




/* =========================
   SESSION HISTORY
========================= */

.session-header {
    margin-bottom: 10px;
    color: #1c2674;
}

/* container */
.session-list {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

/* buttons */
.session-btn {
    padding: 6px 10px;
    border-radius: 8px;

    background: #eef1f7;
    color: #1c2674;

    font-size: 12px;
    text-decoration: none;

    transition: all 0.15s ease;
}

.session-btn:hover {
    background: #e3e8f3;
}

/* active session */
.session-btn.active {
    background: #1c2674;
    color: #ffffff;
    font-weight: 600;
}

.status-icon {
    width: 18px;
    display: inline-block;
    font-weight: 700;
}

/* green tick */
.status-icon.present {
    color: limegreen;   /* nice green */
}

/* red cross */
.status-icon.absent {
    color: red;   /* nice red */
}

/* =========================
   TABLET
========================= */

@media (max-width: 900px) {

	.dashboard-grid {
        grid-template-columns: repeat(2, 1fr);
    }
	
.register-grid.cols-3,
.register-grid.cols-4 {
        grid-template-columns: repeat(2, 1fr);
    }
.programme-grid {
                grid-template-columns: repeat(2, minmax(0, 1fr));
            }
}


/* =========================
   MOBILE
========================= */

@media (max-width: 768px) {
    h1 {
        font-size: 1.8rem;
    }

	.programme-grid {
                grid-template-columns: 1fr;
            }
	
.page-container {
margin: 20px auto;
padding: 15px;
}
	
.header-container {
position: relative;
min-height: auto;
padding-top: 10px;
}
	
.dashboard-grid {
grid-template-columns: 1fr;

}
	
	
.register-grid.cols-3,
.register-grid.cols-4 {
grid-template-columns: 1fr;

}
	
	
nav {
    display: none;
}
	
.mob-wrapper {
display: block;
position: absolute;
top: 15px;
right: 15px;
padding: 0;
text-align: right;
z-index: 100;
}

.mob-nav {
display: none;
position: absolute;
top: 42px;
right: 0;
background: #ffffff;
padding: 10px;
border-radius: 10px;
min-width: 180px;
z-index: 101;
}
	
.mybutton {
display: block;
background-color: #fff;
padding: 8px 10px;
text-align: center;
color: #007BC4;
top: auto;
right: 40px;
}
	
.mybutton:hover {
background-color: #161B4E;
color: white;
}
.mybutton:active {
background-color: #007bc4;
color: white;
}
	
    .history-grid {
        grid-template-columns: 1fr;
    }
	
}

/* ================= ATTENDANCE ================= */

.attendance-stats {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 15px;
    margin: 20px 0;
}

.stat-box {
    padding: 16px;
    border-radius: 14px;
    text-align: center;
    background: #f6f7fb;
}

.stat-number {
    font-size: 1.6rem;
    font-weight: 800;
    color: #1c2674;
}

/* progress bar */
.attendance-bar {
    height: 10px;
    border-radius: 999px;
    background: #eee;
    overflow: hidden;
    margin-bottom: 25px;
}

.attendance-fill {
    height: 100%;
    background: #1c2674;
}

/* history list */
.history-list {
    margin-top: 10px;
}

.history-item {
    display: flex;
    justify-content: space-between;
    padding: 10px 0;
    border-bottom: 1px solid #eee;
}



/* mobile */
@media (max-width: 700px) {
    .attendance-stats {
        grid-template-columns: 1fr;
    }
}

/* ================= ATTENDANCE COLOURS ================= */

.stat-box.red {
    background: #ffe5e5;
    color: #b00020;
}

.stat-box.orange {
    background: #fff3cd;
    color: #8a6d3b;
}

.stat-box.green {
    background: #e3f7e8;
    color: #1f7a3d;
}

/* ================= SCROLLABLE HISTORY ================= */

.history-list {
    margin-top: 10px;
    max-height: 300px;
    overflow-y: auto;
    border-top: 1px solid #eee;
}

.history-item {
    display: flex;
    justify-content: space-between;
    padding: 10px 0;
    border-bottom: 1px solid #eee;
}

/* optional: nicer scrollbar */
.history-list::-webkit-scrollbar {
    width: 6px;
}

.history-list::-webkit-scrollbar-thumb {
    background: #ccc;
    border-radius: 10px;
}

.form-grid {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.form-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
}

.form-row-3 {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 16px;
}

@media (max-width: 700px) {
    .form-row,
    .form-row-3 {
        grid-template-columns: 1fr;
    }
}

.table-wrap {
    overflow-x: auto;
}

.manage-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.95rem;
}

.manage-table th {
    text-align: left;
    padding: 10px 12px;
    border-bottom: 2px solid #eee;
    font-weight: 700;
    color: #1c2674;
    white-space: nowrap;
}

.manage-table td {
    padding: 10px 12px;
    border-bottom: 1px solid #f0f0f0;
}

.manage-table tr:hover {
    background: #f9faff;
}

.status-pill {
    padding: 4px 10px;
    border-radius: 999px;
    font-size: 0.8rem;
    font-weight: 600;
}

.status-green {
    background: #e6f7ec;
    color: #1f7a3d;
}

.status-grey {
    background: #ececec;
    color: #555;
}

.message-cell {
    max-width: 320px;
    white-space: normal;
    text-align: left;
    line-height: 1.4;
    word-break: break-word;
}

.schedule-table-wrap {
    overflow-x: hidden; /*  kills horizontal scroll */
}

.schedule-table-wrap table {
    width: 100%;
    table-layout: fixed; /*  forces columns to behave */
}

.schedule-table-wrap th,
.schedule-table-wrap td {
    font-size: 0.85rem;
    padding: 6px;
}

/* inputs shrink nicely */
.schedule-table-wrap input {
    width: 100%;
    padding: 6px;
    font-size: 0.8rem;
    box-sizing: border-box;
}

/* label column wraps instead of stretching */
.schedule-table-wrap td:nth-child(2) input {
    word-break: break-word;
}

.schedule-table-wrap td:nth-child(2) input {
    max-width: 100%;
}

.schedule-table-wrap th:first-child,
.schedule-table-wrap td:first-child {
    width: 30px;
    min-width: 30px;
    max-width: 30px;
    text-align: center;
}

.order-table tr.removing {
    opacity: 0;
    transition: opacity 0.25s ease;
}
.table-wrap {
    overflow-x: auto;
}

.order-table {
    width: 100%;
    min-width: 800px; /* stops squishing */
    border-collapse: collapse;
    font-size: 14px;
}

.order-table th,
.order-table td {
    padding: 12px 14px;
    border-bottom: 1px solid #eee;
    text-align: left;
}

.order-table th {
    background: #f7f8fc;
}

/* column sizing */
.order-table td:nth-child(1) { width: 25%; } /* Girl */
.order-table td:nth-child(2) { width: 30%; } /* Badge */
.order-table td:nth-child(3) { width: 20%; } /* Type */
.order-table td:nth-child(4) { width: 15%; } /* Date */
.order-table td:nth-child(5) { width: 10%; } /* Button */

.type-pill {
    padding: 4px 10px;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 600;
}

.type-interest { background:#eef2ff; color:#1c2674; }
.type-skills { background:#e6f6ea; color:#1f7a3d; }
.type-theme { background:#fff3cd; color:#8a6d3b; }
.type-special { background:#ffe5e5; color:#b00020; }


/* =========================
   THEME CHECKBOX COLOURS
========================= */

/* target the checkbox directly */
.tick {
    color: #999;
    font-weight: 500;
}

.tick.done {
    font-weight: 600;
}

/* Theme colours */
.programme-list-card.theme-know-myself .tick.done { color: #1397df; }
.programme-list-card.theme-express-myself .tick.done { color: #ec178f; }
.programme-list-card.theme-be-well .tick.done { color: #8e58a7; }
.programme-list-card.theme-have-adventures .tick.done { color: #67b539; }
.programme-list-card.theme-take-action .tick.done { color: #f08a00; }
.programme-list-card.theme-skills-future .tick.done { color: #f2a6cb; }


.evidence-list {
    margin-top: 10px;
}

.evidence-item {
    margin-bottom: 10px;
}

.evidence-image {
    max-width: 100%;
    border-radius: 8px;
    margin-top: 5px;
    cursor: pointer;
    transition: transform 0.2s ease;
}

.evidence-image:hover {
    transform: scale(1.03);
}

.status-pill {
    display: inline-block;
    padding: 4px 10px;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 600;
    margin-bottom: 6px;
}

.status-green {
    background: #e3f7e8;
    color: #1f7a3d;
}

.status-yellow {
    background: #fff3cd;
    color: #8a6d3b;
}

.status-grey {
    background: #eeeeee;
    color: #666;
}

.actions-cell {
    width: 160px; /* keeps column consistent */
    white-space: nowrap;
}

.actions-wrap {
    display: flex;
    gap: 6px;
    align-items: center;
}

.inline-form {
    display: inline;
    margin: 0;
}

.btn-delete {
    background: #ffe5e5;
    color: #b00020;
    border: none;
    padding: 6px 10px;
    border-radius: 6px;
    cursor: pointer;
}