/*
 * Portal theme overrides — v2.0
 *
 * Comprehensive visual upgrade making dashboards feel crafted,
 * not functional. Adds depth, motion, hierarchy, and editorial
 * personality to every portal component.
 *
 * @package Unregarded
 */

/* ═══════════════════════════════════════════════════════════════
   1. HIDE THEME CHROME ON PORTAL PAGES
   ═══════════════════════════════════════════════════════════════ */

.unreg-portal-user .wp-site-blocks > header,
.unreg-portal-user .wp-site-blocks > .wp-block-template-part:first-child,
.unreg-is-portal .wp-site-blocks > header,
.unreg-is-portal .wp-site-blocks > .wp-block-template-part:first-child {
	display: none !important;
}

.unreg-is-portal .wp-block-post-title {
	display: none !important;
}

.unreg-portal-user .wp-site-blocks > footer:last-child {
	display: none !important;
}

.unreg-is-portal .wp-site-blocks > main {
	padding-top: 0 !important;
}


/* ═══════════════════════════════════════════════════════════════
   2. GRAIN TEXTURE
   ═══════════════════════════════════════════════════════════════ */

.unreg-is-portal::after {
	content: '';
	position: fixed;
	inset: 0;
	pointer-events: none;
	z-index: 1;
	opacity: 0.06;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23g)'/%3E%3C/svg%3E");
}

.unreg-is-portal .wp-site-blocks {
	position: relative;
	z-index: 2;
}


/* ═══════════════════════════════════════════════════════════════
   3. DASHBOARD CONTAINER — breathing room
   ═══════════════════════════════════════════════════════════════ */

.unreg-is-portal .unreg-portal-dashboard {
	padding: 32px 28px 60px;
}


/* ═══════════════════════════════════════════════════════════════
   4. DASHBOARD HEADERS — editorial, elevated
   ═══════════════════════════════════════════════════════════════ */

.unreg-is-portal .unreg-portal-dashboard__header {
	padding-bottom: 28px;
	margin-bottom: 36px;
	border-bottom: 2px solid var(--wp--preset--color--ink, #1A1510);
}

.unreg-is-portal .unreg-portal-dashboard__header h1 {
	font-family: var(--wp--preset--font-family--fraunces, 'Fraunces', Georgia, serif);
	font-feature-settings: 'ss01', 'cv11';
	letter-spacing: -0.03em;
}

.unreg-is-portal .unreg-portal-section {
	margin-bottom: 48px;
}

.unreg-is-portal .unreg-portal-section h2 {
	font-family: var(--wp--preset--font-family--fraunces, 'Fraunces', Georgia, serif);
	font-feature-settings: 'ss01', 'cv11';
	margin-bottom: 20px;
	padding-bottom: 12px;
	border-bottom: 1px solid var(--wp--preset--color--line, #C9C1AD);
}


/* ═══════════════════════════════════════════════════════════════
   5. STAT CARDS — elevated with depth and hierarchy
   ═══════════════════════════════════════════════════════════════ */

.unreg-is-portal .unreg-rep-stats > div,
.unreg-is-portal .unreg-rep-stats > a > div,
.unreg-is-portal .unreg-mgr-stats > div {
	background: var(--wp--preset--color--paper-light, #F1ECDD);
	border: 1px solid var(--wp--preset--color--line, #C9C1AD);
	box-shadow: 0 1px 3px rgba(26, 21, 16, 0.04);
	transition: transform 0.35s cubic-bezier(0.22, 0.61, 0.36, 1), box-shadow 0.35s ease;
	position: relative;
	overflow: hidden;
}

.unreg-is-portal .unreg-rep-stats > div::before,
.unreg-is-portal .unreg-rep-stats > a > div::before {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 3px;
	background: var(--wp--preset--color--line, #C9C1AD);
	transition: background 0.3s ease;
}

.unreg-is-portal .unreg-rep-stats > div:hover,
.unreg-is-portal .unreg-rep-stats > a > div:hover {
	transform: translateY(-3px);
	box-shadow: 0 8px 20px rgba(26, 21, 16, 0.08);
}

.unreg-is-portal .unreg-rep-stats > div:hover::before,
.unreg-is-portal .unreg-rep-stats > a > div:hover::before {
	background: var(--wp--preset--color--rust, #A94218);
}

.unreg-rep-stats > div,
.unreg-rep-stats > a > div,
.unreg-mgr-stats > div,
.unreg-is-portal .unreg-rep-stats > div,
.unreg-is-portal .unreg-rep-stats > a > div,
.unreg-is-portal .unreg-mgr-stats > div {
	display: flex !important;
	flex-direction: column !important;
	gap: 8px !important;
	padding: 24px !important;
}

.unreg-rep-stats .num,
.unreg-mgr-stats .num,
.unreg-is-portal .unreg-rep-stats .num,
.unreg-is-portal .unreg-mgr-stats .num {
	display: block !important;
	font-family: var(--wp--preset--font-family--fraunces, 'Fraunces', Georgia, serif) !important;
	font-feature-settings: 'ss01';
	font-size: 2.2rem !important;
	line-height: 1 !important;
	color: var(--wp--preset--color--ink, #1A1510) !important;
}

.unreg-rep-stats .label,
.unreg-mgr-stats .label,
.unreg-is-portal .unreg-rep-stats .label,
.unreg-is-portal .unreg-mgr-stats .label {
	display: block !important;
	font-family: var(--wp--preset--font-family--jetbrains-mono, 'JetBrains Mono', monospace) !important;
	font-size: 0.65rem !important;
	letter-spacing: 0.14em !important;
	text-transform: uppercase !important;
	color: var(--wp--preset--color--stone, #847B6F) !important;
	font-weight: 600 !important;
}


/* ═══════════════════════════════════════════════════════════════
   6. WIDGETS & CARDS — layered, breathing
   ═══════════════════════════════════════════════════════════════ */

.unreg-is-portal .unreg-fe-widget {
	background: var(--wp--preset--color--paper-light, #F1ECDD);
	border: 1px solid var(--wp--preset--color--line, #C9C1AD);
	box-shadow: 0 1px 3px rgba(26, 21, 16, 0.03);
	transition: box-shadow 0.3s ease, border-color 0.3s ease;
	padding: 20px 24px;
}

.unreg-is-portal .unreg-fe-widget:hover {
	box-shadow: 0 4px 12px rgba(26, 21, 16, 0.06);
	border-color: var(--wp--preset--color--stone, #847B6F);
}

.unreg-is-portal .unreg-portal-campaign-card {
	background: var(--wp--preset--color--paper-light, #F1ECDD);
	border: 1px solid var(--wp--preset--color--line, #C9C1AD);
	box-shadow: 0 1px 3px rgba(26, 21, 16, 0.03);
	transition: border-color 0.3s ease, box-shadow 0.3s ease;
}

.unreg-is-portal .unreg-portal-campaign-card:hover {
	border-color: var(--wp--preset--color--stone, #847B6F);
	box-shadow: 0 4px 16px rgba(26, 21, 16, 0.06);
}


/* ═══════════════════════════════════════════════════════════════
   7. LIST ITEMS — status indicators, hover depth
   ═══════════════════════════════════════════════════════════════ */

.unreg-is-portal .unreg-portal-pitch-list > li,
.unreg-is-portal .unreg-schedule-item,
.unreg-is-portal .unreg-rep-deal-list li,
.unreg-is-portal .unreg-mgr-deal-list li,
.unreg-is-portal .unreg-mgr-creator-list li {
	border-left: 3px solid transparent;
	transition: all 0.25s cubic-bezier(0.22, 0.61, 0.36, 1);
}

.unreg-is-portal .unreg-portal-pitch-list > li:hover,
.unreg-is-portal .unreg-rep-deal-list li:hover,
.unreg-is-portal .unreg-mgr-deal-list li:hover,
.unreg-is-portal .unreg-mgr-creator-list li:hover {
	background: var(--wp--preset--color--paper-deep, #E4DCC8);
	border-left-color: var(--wp--preset--color--rust, #A94218);
	transform: translateX(2px);
	box-shadow: 0 2px 8px rgba(26, 21, 16, 0.05);
}

.unreg-is-portal .unreg-portal-pitch-list > li strong,
.unreg-is-portal .unreg-rep-deal-list li strong,
.unreg-is-portal .unreg-mgr-deal-list li strong {
	transition: color 0.2s ease;
}

.unreg-is-portal .unreg-portal-pitch-list > li:hover strong {
	color: var(--wp--preset--color--rust, #A94218);
}


/* ═══════════════════════════════════════════════════════════════
   8. FORMS — branded focus, validation, polish
   ═══════════════════════════════════════════════════════════════ */

.unreg-is-portal input[type="text"],
.unreg-is-portal input[type="email"],
.unreg-is-portal input[type="url"],
.unreg-is-portal input[type="password"],
.unreg-is-portal input[type="number"],
.unreg-is-portal input[type="date"],
.unreg-is-portal input[type="datetime-local"],
.unreg-is-portal input[type="tel"],
.unreg-is-portal input[type="search"],
.unreg-is-portal select,
.unreg-is-portal textarea {
	font-family: var(--wp--preset--font-family--figtree, 'Figtree', system-ui, sans-serif);
	color: var(--wp--preset--color--ink, #1A1510);
	background: var(--wp--preset--color--paper, #EDE6D6);
	border: 1px solid var(--wp--preset--color--line, #C9C1AD);
	transition: border-color 0.2s ease, box-shadow 0.2s ease, background 0.2s ease;
}

.unreg-is-portal input:focus,
.unreg-is-portal select:focus,
.unreg-is-portal textarea:focus {
	border-color: var(--wp--preset--color--rust, #A94218);
	box-shadow: 0 0 0 3px rgba(169, 66, 24, 0.12);
	background: #fff;
	outline: none;
}

.unreg-is-portal .unreg-fe-form fieldset {
	border-color: var(--wp--preset--color--line, #C9C1AD);
	transition: border-color 0.2s ease;
}

.unreg-is-portal .unreg-fe-form fieldset:focus-within {
	border-color: var(--wp--preset--color--stone, #847B6F);
}

.unreg-is-portal .unreg-fe-form legend {
	font-family: var(--wp--preset--font-family--jetbrains-mono, 'JetBrains Mono', monospace);
	color: var(--wp--preset--color--ink-2, #3A342C);
}


/* ═══════════════════════════════════════════════════════════════
   9. BUTTONS — depth, craft, accessibility
   ═══════════════════════════════════════════════════════════════ */

.unreg-is-portal .unreg-portal-btn,
.unreg-is-portal button[type="submit"] {
	font-family: var(--wp--preset--font-family--figtree, 'Figtree', system-ui, sans-serif);
	transition: all 0.3s cubic-bezier(0.22, 0.61, 0.36, 1);
	position: relative;
}

.unreg-is-portal .unreg-portal-btn--primary:hover,
.unreg-is-portal button[type="submit"]:hover {
	transform: translateY(-2px);
	box-shadow: 0 4px 12px rgba(26, 21, 16, 0.15);
}

.unreg-is-portal .unreg-portal-btn--ghost:hover {
	transform: translateY(-1px);
	box-shadow: 0 2px 8px rgba(26, 21, 16, 0.08);
}

.unreg-is-portal .unreg-portal-btn:active,
.unreg-is-portal button[type="submit"]:active {
	transform: translateY(0);
	box-shadow: none;
}

/* Focus ring for keyboard navigation */
.unreg-is-portal .unreg-portal-btn:focus-visible,
.unreg-is-portal button:focus-visible,
.unreg-is-portal a:focus-visible {
	outline: 2px solid var(--wp--preset--color--rust, #A94218);
	outline-offset: 2px;
}


/* ═══════════════════════════════════════════════════════════════
   10. CALENDAR — refined events, depth
   ═══════════════════════════════════════════════════════════════ */

.unreg-is-portal .unreg-cal {
	background: var(--wp--preset--color--paper-light, #F1ECDD);
	border: 1px solid var(--wp--preset--color--line, #C9C1AD);
	box-shadow: 0 2px 8px rgba(26, 21, 16, 0.04);
}

.unreg-is-portal .unreg-cal__day {
	background: var(--wp--preset--color--paper, #EDE6D6);
	transition: background 0.2s ease;
}

.unreg-is-portal .unreg-cal__day:hover {
	background: var(--wp--preset--color--paper-deep, #E4DCC8);
}

.unreg-is-portal .unreg-cal__day--today {
	background: #fff;
	box-shadow: inset 0 0 0 2px var(--wp--preset--color--rust, #A94218);
}

.unreg-is-portal .unreg-cal__event {
	background: rgba(26, 21, 16, 0.05);
	transition: all 0.15s ease;
	border-radius: 2px;
}

.unreg-is-portal .unreg-cal__event:hover {
	background: rgba(26, 21, 16, 0.1);
	transform: scale(1.02);
}

.unreg-is-portal .unreg-cal__arrow {
	transition: all 0.2s ease;
}

.unreg-is-portal .unreg-cal__arrow:hover {
	background: var(--wp--preset--color--paper-deep, #E4DCC8);
	transform: scale(1.1);
}


/* ═══════════════════════════════════════════════════════════════
   11. KANBAN — card depth, column polish
   ═══════════════════════════════════════════════════════════════ */

.unreg-is-portal .unreg-kanban__header {
	border-radius: 0;
	position: relative;
}

.unreg-is-portal .unreg-kanban__card {
	transition: all 0.25s cubic-bezier(0.22, 0.61, 0.36, 1);
	box-shadow: 0 1px 3px rgba(26, 21, 16, 0.04);
}

.unreg-is-portal .unreg-kanban__card:hover {
	transform: translateY(-3px);
	box-shadow: 0 8px 20px rgba(26, 21, 16, 0.1);
	border-color: var(--wp--preset--color--ink, #1A1510);
}


/* ═══════════════════════════════════════════════════════════════
   12. TRANSITION BAR — integrated feel
   ═══════════════════════════════════════════════════════════════ */

.unreg-is-portal .unreg-fe-transition-bar {
	background: var(--wp--preset--color--paper-deep, #E4DCC8);
	border: 1px solid var(--wp--preset--color--line, #C9C1AD);
	box-shadow: inset 0 1px 2px rgba(26, 21, 16, 0.04);
}


/* ═══════════════════════════════════════════════════════════════
   13. MESSAGES — elevated bubbles
   ═══════════════════════════════════════════════════════════════ */

.unreg-is-portal .unreg-fe-msg {
	box-shadow: 0 1px 4px rgba(26, 21, 16, 0.05);
	transition: box-shadow 0.2s ease;
}

.unreg-is-portal .unreg-fe-msg:hover {
	box-shadow: 0 2px 8px rgba(26, 21, 16, 0.08);
}

.unreg-is-portal .unreg-fe-msg--mine {
	border-left: 3px solid var(--wp--preset--color--rust, #A94218);
}

.unreg-is-portal .unreg-fe-msg--theirs {
	border-left: 3px solid var(--wp--preset--color--stone, #847B6F);
}


/* ═══════════════════════════════════════════════════════════════
   14. EMPTY STATES — editorial, guiding
   ═══════════════════════════════════════════════════════════════ */

.unreg-is-portal .unreg-portal-empty {
	font-family: var(--wp--preset--font-family--fraunces, 'Fraunces', Georgia, serif);
	font-style: italic;
	font-size: 1.05rem;
	line-height: 1.65;
	color: var(--wp--preset--color--ink-2, #3A342C);
	background: var(--wp--preset--color--paper-light, #F1ECDD);
	border-left: 3px solid var(--wp--preset--color--rust, #A94218);
	padding: 28px 32px;
	box-shadow: 0 1px 4px rgba(26, 21, 16, 0.03);
}


/* ═══════════════════════════════════════════════════════════════
   15. SUCCESS/ERROR — brand colors only
   ═══════════════════════════════════════════════════════════════ */

.unreg-is-portal .unreg-fe-success {
	font-family: var(--wp--preset--font-family--figtree, 'Figtree', system-ui, sans-serif);
	background: var(--wp--preset--color--paper-light, #F1ECDD);
	border-left: 4px solid #198754;
	color: var(--wp--preset--color--ink, #1A1510);
	box-shadow: 0 1px 4px rgba(26, 21, 16, 0.03);
}

.unreg-is-portal .unreg-fe-error-msg {
	font-family: var(--wp--preset--font-family--figtree, 'Figtree', system-ui, sans-serif);
	background: var(--wp--preset--color--paper-light, #F1ECDD);
	border-left: 4px solid var(--wp--preset--color--rust, #A94218);
	color: var(--wp--preset--color--ink, #1A1510);
	box-shadow: 0 1px 4px rgba(26, 21, 16, 0.03);
}


/* ═══════════════════════════════════════════════════════════════
   16. LOGIN — centered, elevated, welcoming
   ═══════════════════════════════════════════════════════════════ */

.unreg-is-portal .unreg-portal-login {
	min-height: 80vh;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 40px 28px;
}

.unreg-is-portal .unreg-portal-login__inner {
	box-shadow: 0 12px 40px rgba(26, 21, 16, 0.1);
	transition: box-shadow 0.3s ease;
}

.unreg-is-portal .unreg-portal-login__inner:hover {
	box-shadow: 0 16px 48px rgba(26, 21, 16, 0.12);
}


/* ═══════════════════════════════════════════════════════════════
   17. AVATAR — polished circle
   ═══════════════════════════════════════════════════════════════ */

.unreg-is-portal .unreg-dash-avatar {
	box-shadow: 0 2px 8px rgba(26, 21, 16, 0.08);
	transition: box-shadow 0.2s ease, transform 0.2s ease;
}

.unreg-is-portal .unreg-dash-avatar:hover {
	transform: scale(1.05);
	box-shadow: 0 4px 12px rgba(26, 21, 16, 0.12);
}


/* ═══════════════════════════════════════════════════════════════
   18. DETAIL VIEWS — sidebar refinement
   ═══════════════════════════════════════════════════════════════ */

.unreg-is-portal .unreg-fe-detail-sidebar .unreg-fe-widget + .unreg-fe-widget {
	margin-top: 16px;
}

.unreg-is-portal .unreg-fe-kv {
	transition: background 0.15s ease;
}

.unreg-is-portal .unreg-fe-kv:hover {
	background: rgba(26, 21, 16, 0.02);
}


/* ═══════════════════════════════════════════════════════════════
   19. ONBOARDING — progress feels rewarding
   ═══════════════════════════════════════════════════════════════ */

.unreg-is-portal .unreg-onboarding {
	background: var(--wp--preset--color--paper-light, #F1ECDD);
	border: 1px solid var(--wp--preset--color--line, #C9C1AD);
	padding: 24px 28px;
	box-shadow: 0 2px 8px rgba(26, 21, 16, 0.04);
}


/* ═══════════════════════════════════════════════════════════════
   20. COLLAPSIBLE SECTIONS — smooth transitions
   ═══════════════════════════════════════════════════════════════ */

.unreg-is-portal .unreg-dash-section-header h2 {
	border-bottom: none;
	margin-bottom: 0;
	padding-bottom: 0;
}


/* ═══════════════════════════════════════════════════════════════
   21. PERFORMANCE CARDS — visual hierarchy
   ═══════════════════════════════════════════════════════════════ */

.unreg-is-portal .unreg-fe-perf-card {
	box-shadow: 0 1px 3px rgba(26, 21, 16, 0.04);
	transition: all 0.25s cubic-bezier(0.22, 0.61, 0.36, 1);
}

.unreg-is-portal .unreg-fe-perf-card:hover {
	transform: translateY(-2px);
	box-shadow: 0 6px 16px rgba(26, 21, 16, 0.08);
	border-color: var(--wp--preset--color--stone, #847B6F);
}


/* ═══════════════════════════════════════════════════════════════
   22. DELIVERABLE STATUS PILLS — more visual weight
   ═══════════════════════════════════════════════════════════════ */

.unreg-is-portal .unreg-portal-deliverable__status span[style*="background"] {
	border-radius: 2px;
	box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);
}


/* ═══════════════════════════════════════════════════════════════
   23. PORTAL FOOTER
   ═══════════════════════════════════════════════════════════════ */

.unreg-portal-footer {
	max-width: 1280px;
	margin: 0 auto;
}

.unreg-portal-footer a:hover {
	color: var(--wp--preset--color--rust, #A94218) !important;
}


/* ═══════════════════════════════════════════════════════════════
   24. GLOBAL MICRO-INTERACTIONS
   ═══════════════════════════════════════════════════════════════ */

/* Smooth appearance for dynamically loaded content */
.unreg-is-portal .unreg-portal-section {
	animation: unreg-fade-in 0.4s ease;
}

@keyframes unreg-fade-in {
	from { opacity: 0; transform: translateY(8px); }
	to { opacity: 1; transform: translateY(0); }
}

/* Links within portal get rust hover */
.unreg-is-portal .unreg-portal-dashboard a:not(.unreg-portal-btn):hover {
	color: var(--wp--preset--color--rust, #A94218);
}

/* Selection color */
.unreg-is-portal ::selection {
	background: rgba(169, 66, 24, 0.15);
	color: var(--wp--preset--color--ink, #1A1510);
}

/* Smooth scrolling */
.unreg-is-portal {
	scroll-behavior: smooth;
}
