/* Dashboard-specific list styling */
.dashboard-page ul,
.dashboard-page ol {
	list-style: none;
	margin: 0;
	padding: 0 0 0 0;
}

/* Small spacing for nested lists */
.dashboard-page ul ul,
.dashboard-page ol ol {
	margin-top: 6px;
	padding-left: 1.2rem;
}

/* General page layout */
html{height:100%;}
body{font-family:Inter, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;background:#fff;color:#111;margin:0;padding:0;min-height:100vh;display:flex;flex-direction:column}
h1,h2{color:#111;margin:0 0 12px}

/* Smaller, tighter headlines */
h1{font-size:22px;line-height:1.2;font-weight:600}
h2{font-size:16px;line-height:1.25;font-weight:600}

/* Page content wrapper (centered) */
.page-container{width:100%;flex:1 0 auto;}
.page-inner{max-width:1000px;margin:24px auto;padding:0 16px;}

/* Increase spacing between major sections */
.page-inner > * { margin-bottom:32px; }
.page-inner h1, .page-inner h2 { margin-top:0; }

/* Project box task list spacing */
.project-box ul{ margin:6px 0 0 1.2rem; }

/* Styles for project boxes (moved from project-boxes.css) */
.project-box{
	display:block;
	background:#fff;
	border-radius:8px;
	padding:12px;
	margin:8px 0;
	color:inherit;
	text-decoration:none;
	transition:box-shadow .12s, transform .06s;
	border:1px solid #e9e9e9;
}
.projects-grid{ list-style:none; margin:0 0 100px 0; padding:0; display:flex; flex-wrap:wrap; gap:24px 40px; }
.projects-grid li{ flex:1 1 100%; }
.projects-grid .project-box{ height:100%; }
.projects-grid .project-title{ font-size:1rem; }

.dashboard-page ul.projects-grid{margin:0 0 100px 0;}

@media (min-width:900px){
	.projects-grid li{ flex:0 0 calc(33.333% - 16px); }
	.projects-grid{ gap: 40px 16px; }
}
.project-box:hover{ box-shadow:0 10px 30px rgba(0,0,0,0.06); transform:translateY(-2px); }
.project-box .project-title{ font-weight:600; margin-bottom:6px; }
.project-box input[disabled]{ margin-right:6px; }

/* Project week label shown above recurring tasks */
.project-week{ font-size:0.85rem; color:#666; margin:6px 0 8px; }

/* Job metadata */
.job-meta{ font-size:0.9em; color:#333; }

/* Modal styles */
.modal-backdrop{ display:none; position:fixed; left:0; top:0; right:0; bottom:0; background:rgba(0,0,0,0.45); }
.modal-backdrop.active{ display:flex; align-items:center; justify-content:center; }
.modal-box{ background:#fff; padding:16px; max-width:400px; margin:0 auto; border-radius:4px; box-shadow:0 6px 20px rgba(0,0,0,0.12); }
.modal-actions{ text-align:right; }
.modal-actions button + button{ margin-left:8px; }

/* Save message badge */
.save-message{
	margin-top:0;
	padding:6px 10px;
	border-radius:999px;
	border:1px solid transparent;
	font-size:0.82rem;
	font-weight:600;
	line-height:1;
	display:inline-flex;
	align-items:center;
	min-height:28px;
}
.save-message:empty{ display:none; }
.save-message.is-success{ color:#0f5132; background:#e9f7ef; border-color:#b7e4c7; }
.save-message.is-error{ color:#842029; background:#fbecee; border-color:#f3c2c7; }

/* Error text */
.error{ color:red; }

/* Load week button wrapper */
.load-week-wrap{ margin-top:12px; }

/* Weekly tasks panel on project page */
.project-page .weekly-task-list{ list-style:none; margin:0; padding:0; display:block; }
.project-page .week-block{ margin:0 0 14px; padding:10px 12px; border:1px solid #e9e9e9; border-radius:10px; background:#fff; box-shadow:0 2px 8px rgba(0,0,0,0.02); }
.project-page .weekly-task-list li{ background:transparent; border:0; border-top:1px solid #f0f0f0; border-radius:0; padding:10px 0; margin-bottom:0; display:flex; align-items:center; gap:10px; box-shadow:none; }
.project-page .weekly-task-list li:first-child{ border-top:0; }
.project-page .weekly-task-list .weekly-checkbox{ width:18px; height:18px; }
.project-page .checklists-heading{ margin:18px 0 10px; }
.project-page .week-section-title{ margin:0 0 8px; padding:0; font-size:0.92rem; font-weight:600; color:#222; background:transparent; border:0; border-radius:0; box-shadow:none; }

/* Global header & footer */
.site-header, .site-footer{
	background:#000;
	color:#fff;
	width:100%;
}
.site-header{ padding:10px 0; position:relative; }
.site-header-inner, .site-footer-inner{ max-width:1000px; margin:0 auto; padding:6px 16px; display:flex; align-items:center; justify-content:space-between; }
.site-title{ color:#fff; text-decoration:none; font-weight:700; font-size:1.1rem; }
.site-footer{ padding:8px 0; text-align:center; font-size:0.9rem; }
.site-user{ text-align:right; }
.site-user-text{ font-size:10px; color:#fff; margin-right:8px; }
.site-logout{ color:#fff; font-size:10px; text-decoration:underline; }

/* Icon links */
.icon { width:16px; height:16px; vertical-align:middle; display:inline-block; fill:currentColor; }
.edit-job, .delete-job { color: #111; text-decoration:none; margin-left:8px; }
.delete-job { color: #b00; }
.edit-job .icon, .delete-job .icon { display:inline-block; }

/* Open jobs list styling */
.open-jobs{ list-style:none; margin:0; padding:0; display:block; }
.open-jobs .job-item{ background:#fff; border:1px solid #e9e9e9; padding:12px; border-radius:8px; display:flex; align-items:center; justify-content:space-between; box-shadow:0 4px 12px rgba(0,0,0,0.03); }
.open-jobs .job-main{ display:flex; align-items:center; gap:12px; }
.open-jobs .job-title{ font-weight:600; color:#111; }
.dashboard-page .open-jobs .job-main{ align-items:flex-start; }
.dashboard-page .open-jobs .job-heading{ display:flex; align-items:baseline; gap:8px; }
.dashboard-page .open-jobs .job-description-preview{ display:none; }
@media (min-width:900px){
	.dashboard-page .open-jobs .job-description-preview{ display:block; font-size:0.82rem; line-height:1.4; color:#777; }
}
.job-title a{ color:inherit; text-decoration:none; }
.job-title a:hover{ text-decoration:underline; }
.open-jobs .job-actions{ display:flex; align-items:center; gap:10px; }
.open-jobs .job-status{ font-size:0.85rem; color:#444; padding:4px 8px; border-radius:6px; background:#f5f7fa; border:1px solid #eef1f5; }
.finish-checkbox{ width:18px; height:18px; }
.open-jobs .edit-job .icon, .open-jobs .delete-job .icon{ width:18px; height:18px; }

/* Jobs page uses stacked title/meta in each card */
.jobs-page .open-jobs .job-main{ flex-direction:column; align-items:flex-start; gap:4px; }
.project-page .open-jobs .job-main{ flex-direction:column; align-items:flex-start; gap:4px; }

/* Jobs filter panel */
.jobs-page .filters{
	background:#fff;
	border:1px solid #e6e6e6;
	border-radius:10px;
	padding:14px;
	display:grid;
	grid-template-columns:repeat(auto-fit, minmax(180px, 1fr));
	gap:12px 14px;
	box-shadow:0 3px 10px rgba(0,0,0,0.02);
}
.jobs-page .filters .filter-field{
	display:block;
	font-size:0.86rem;
	font-weight:600;
	color:#222;
}
.jobs-page .filters .filter-field input,
.jobs-page .filters .filter-field select{
	display:block;
	width:100%;
	margin-top:6px;
	padding:8px 10px;
	border:1px solid #dcdcdc;
	border-radius:8px;
	background:#fff;
	color:#111;
}
.jobs-page .filters .filter-checkbox{
	display:flex;
	align-items:center;
	gap:8px;
	font-size:0.9rem;
	color:#222;
	align-self:end;
	min-height:40px;
}
.jobs-page .filters .filter-checkbox input{
	width:16px;
	height:16px;
	margin:0;
}
.jobs-page .filters .filter-submit{
	align-self:end;
	justify-content:center;
	min-height:40px;
}

/* Create/Edit job form panel */
.editjob-page .job-editor-form{
	background:#fff;
	border:1px solid #e6e6e6;
	border-radius:10px;
	padding:14px;
	box-shadow:0 3px 10px rgba(0,0,0,0.02);
	display:grid;
	grid-template-columns:repeat(auto-fit, minmax(220px, 1fr));
	gap:12px 14px;
}
.editjob-page .job-editor-form .form-field{
	display:block;
	font-size:0.86rem;
	font-weight:600;
	color:#222;
}
.editjob-page .job-editor-form .form-field input,
.editjob-page .job-editor-form .form-field select,
.editjob-page .job-editor-form .form-field textarea{
	display:block;
	width:100%;
	margin-top:6px;
	padding:8px 10px;
	border:1px solid #dcdcdc;
	border-radius:8px;
	background:#fff;
	color:#111;
	font:inherit;
	box-sizing:border-box;
}
.editjob-page .job-editor-form .form-field-wide{
	grid-column:1 / -1;
}
.editjob-page .job-editor-form .form-actions{
	grid-column:1 / -1;
	display:flex;
	align-items:center;
	gap:12px;
}

/* Login page */
.login-page .login-panel{
	max-width:440px;
	margin:24px auto 0;
	padding:18px;
	background:#fff;
	border:1px solid #e6e6e6;
	border-radius:10px;
	box-shadow:0 3px 10px rgba(0,0,0,0.02);
}
.login-page form{
	display:grid;
	gap:14px;
}
.login-page .login-field{
	display:block;
}
.login-page .login-field label{
	display:block;
	font-size:0.86rem;
	font-weight:600;
	color:#222;
	margin-bottom:6px;
}
.login-page .login-field input{
	display:block;
	width:100%;
	padding:8px 10px;
	border:1px solid #dcdcdc;
	border-radius:8px;
	background:#fff;
	color:#111;
	font:inherit;
	box-sizing:border-box;
}
.login-page .login-actions{
	display:flex;
	align-items:center;
}
.login-page .login-actions .btn{
	appearance:none;
	-webkit-appearance:none;
	cursor:pointer;
}

/* Button styles for dashboard actions */
.btn{ display:inline-flex; align-items:center; gap:8px; text-decoration:none; padding:8px 12px; border-radius:8px; border:1px solid transparent; font-weight:600; }
.btn .icon{ width:16px; height:16px; }
.btn-primary{ background:#111; color:#fff; border-color:transparent; }
.btn-primary:hover{ background:#222; }
.btn-outline{ background:#fff; color:#111; border-color:#e6e6e6; }
.dashboard-actions{ display:flex; gap:12px; align-items:center; }
.pagination-actions{ display:flex; gap:10px; align-items:center; }
.btn-disabled{ opacity:0.45; pointer-events:none; }

/* Screen-reader only helper */
.sr-only{ position:absolute !important; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }


