/* Standalone full-page mode (theme header/footer hidden) */
body.nepp-standalone { background: #F5F5F4; margin: 0; }
.nepp-standalone-main { padding: 32px 16px; min-height: 100vh; }

/* NEP PTO Portal — mobile-first, NEP brand palette. */
.nepp {
	--brand:        #1B4860;
	--brand-mid:    #2D6685;
	--brand-light:  #3D7FA0;
	--action:       #1976D2;
	--success:      #2E7D32;
	--alert:        #E0651F;
	--charcoal:     #1A1D21;
	--gray:         #6B7280;
	--line:         #E7E5E4;
	--panel:        #F5F5F4;
	--tint:         #EAF1F6;
	--white:        #FFFFFF;

	max-width: 760px;
	margin: 0 auto;
	color: var(--charcoal);
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
	line-height: 1.5;
}
.nepp *, .nepp *::before, .nepp *::after { box-sizing: border-box; }

/* Header */
.nepp-head {
	display: flex; align-items: center; justify-content: space-between;
	gap: 12px; flex-wrap: wrap;
	padding: 0 0 16px; margin-bottom: 16px;
	border-bottom: 2px solid var(--brand);
}
.nepp-brand { display: flex; align-items: baseline; gap: 10px; }
.nepp-logo { max-height: 40px; width: auto; }
.nepp-orgname { font-weight: 700; color: var(--brand); }
.nepp-title { color: var(--gray); font-size: 1.05rem; }
.nepp-userbox { font-size: .9rem; color: var(--gray); }
.nepp-hi { margin-right: 8px; }
.nepp-logout { color: var(--action); text-decoration: none; }
.nepp-logout:hover { text-decoration: underline; }

/* Cards */
.nepp-card {
	background: var(--white);
	border: 1px solid var(--line);
	border-radius: 12px;
	padding: 20px;
	margin-bottom: 16px;
}
.nepp-card h2 { margin: 0 0 12px; font-size: 1.15rem; color: var(--brand); }
.nepp-muted { color: var(--gray); font-size: .9rem; }
.nepp-hint { margin-top: 8px; }
.nepp-error { background: #fff4ec; border-color: var(--alert); color: #8a3c0f; }
.nepp-notice { background: var(--tint); border-color: var(--brand-light); }
.nepp-notice h2 { color: var(--brand); }

/* Balance */
.nepp-balance { background: var(--tint); border-color: var(--brand-light); }
.nepp-avail { display: flex; align-items: baseline; gap: 10px; margin-bottom: 12px; }
.nepp-avail-num { font-size: 2.4rem; font-weight: 800; color: var(--success); line-height: 1; }
.nepp-avail-lbl { color: var(--gray); font-weight: 600; }
.nepp-breakdown { list-style: none; margin: 0; padding: 0; display: flex; gap: 8px; flex-wrap: wrap; }
.nepp-breakdown li {
	flex: 1 1 90px; background: var(--white); border: 1px solid var(--line);
	border-radius: 8px; padding: 8px 10px; text-align: center;
}
.nepp-breakdown li span { display: block; font-size: .72rem; text-transform: uppercase; letter-spacing: .04em; color: var(--gray); }
.nepp-breakdown li b { font-size: 1.1rem; }

/* Forms */
.nepp label { display: block; font-weight: 600; font-size: .85rem; margin: 10px 0 4px; }
.nepp input, .nepp select {
	width: 100%; padding: 11px 12px; font-size: 1rem;
	border: 1px solid var(--line); border-radius: 8px; background: var(--white);
	color: var(--charcoal);
}
.nepp input:focus, .nepp select:focus { outline: 2px solid var(--brand-light); border-color: var(--brand-light); }
.nepp-form-row { display: flex; gap: 12px; flex-wrap: wrap; }
.nepp-field { flex: 1 1 160px; }

/* Day-by-day PTO picker */
.nepp-days { margin: 14px 0 4px; }
.nepp-days-hint { margin: 0 0 8px; }
.nepp-day-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 6px; }
.nepp-day {
	display: flex; align-items: center; justify-content: space-between;
	padding: 9px 12px; border: 1px solid var(--line); border-radius: 8px; background: var(--white);
}
.nepp-day label { display: flex; align-items: center; gap: 10px; margin: 0; font-weight: 600; cursor: pointer; width: 100%; }
.nepp-day input[type="checkbox"] { width: 18px; height: 18px; flex: 0 0 auto; accent-color: var(--action); cursor: pointer; }
.nepp-day-lbl { font-weight: 600; }
.nepp-day-na { background: var(--panel); color: var(--gray); }
.nepp-day-na .nepp-day-lbl { font-weight: 500; }
.nepp-day-tag { font-size: .72rem; text-transform: uppercase; letter-spacing: .04em; color: var(--gray); }

/* Buttons */
.nepp-btn {
	display: inline-block; margin-top: 14px; padding: 12px 18px;
	font-size: 1rem; font-weight: 600; border: 0; border-radius: 8px;
	cursor: pointer; -webkit-appearance: none;
}
.nepp-btn-primary { background: var(--action); color: var(--white); width: 100%; }
.nepp-btn-primary:hover { background: var(--brand-mid); }
.nepp-btn-primary:disabled { background: var(--gray); cursor: default; opacity: .7; }
.nepp-btn-link { background: transparent; color: var(--action); padding: 8px 0; width: auto; }
.nepp-btn-cancel { margin: 0; padding: 7px 12px; font-size: .85rem; background: var(--white); color: var(--alert); border: 1px solid var(--alert); }
.nepp-btn-cancel:hover { background: var(--alert); color: var(--white); }

/* Messages */
.nepp-msg { margin-top: 12px; font-size: .9rem; min-height: 1.2em; }
.nepp-msg.is-error { color: var(--alert); }
.nepp-msg.is-ok { color: var(--success); }

/* History table */
.nepp-table { width: 100%; border-collapse: collapse; }
.nepp-table th, .nepp-table td { text-align: left; padding: 10px 8px; border-bottom: 1px solid var(--line); font-size: .92rem; }
.nepp-table th { font-size: .72rem; text-transform: uppercase; letter-spacing: .04em; color: var(--gray); }

/* Status badges */
.nepp-badge { display: inline-block; padding: 3px 10px; border-radius: 999px; font-size: .75rem; font-weight: 700; }
.nepp-badge-submitted { background: #fdf0e3; color: var(--alert); }
.nepp-badge-approved  { background: #e6f3e7; color: var(--success); }
.nepp-badge-denied    { background: #fde7e7; color: #b3261e; }
.nepp-badge-cancelled { background: var(--line); color: var(--gray); }

/* Mobile: stack the table into rows */
@media (max-width: 540px) {
	.nepp-table thead { display: none; }
	.nepp-table, .nepp-table tbody, .nepp-table tr, .nepp-table td { display: block; width: 100%; }
	.nepp-table tr { border: 1px solid var(--line); border-radius: 8px; margin-bottom: 10px; padding: 6px 10px; }
	.nepp-table td { border: 0; padding: 5px 0; display: flex; justify-content: space-between; align-items: center; }
	.nepp-table td::before { content: attr(data-label); font-weight: 700; font-size: .72rem; text-transform: uppercase; color: var(--gray); }
	.nepp-table td:empty { display: none; }
}
