/**
 * Night worker Schedule - front styles
 */

/**
 *	Today's staff
 */
/*	== Modified by ao ==
	Card grid: 2 columns on mobile / 3 columns on PC.
	Photos fill the card edge-to-edge (no inner whitespace).
	NOTE: layout-critical properties use !important so that
	old theme "additional CSS" written for v0.7.x (flex layout,
	fixed li width, img max-width) can not break this grid. */
ul.staff_block.attmgr_card_grid {
	display: grid !important;
	grid-template-columns: repeat(2, 1fr) !important;
	gap: 12px !important;
	width: 100%;
	margin: 0 !important;
	padding: 0 !important;
	list-style: none;
	box-sizing: border-box;
}
@media screen and (min-width: 768px) {
	ul.staff_block.attmgr_card_grid {
		grid-template-columns: repeat(3, 1fr) !important;
		gap: 16px !important;
	}
}
ul.staff_block.attmgr_card_grid::before,
ul.staff_block.attmgr_card_grid::after {
	content: none !important;
}
ul.staff_block.attmgr_card_grid li.attmgr_card {
	float: none !important;
	width: 100% !important;
	min-width: 0 !important;
	max-width: none !important;
	list-style: none;
	margin: 0 !important;
	padding: 0 !important;
	text-align: center;
	border: 1px solid #eee;
	border-radius: 6px;
	overflow: hidden;
	background: #fff;
	box-shadow: 0 1px 3px rgba(0, 0, 0, 0.06);
	box-sizing: border-box;
}
ul.staff_block.attmgr_card_grid li.attmgr_card .thumb {
	margin: 0 !important;
	padding: 0 !important;
	line-height: 0;
}
ul.staff_block.attmgr_card_grid li.attmgr_card .thumb a {
	display: block;
	line-height: 0;
}
ul.staff_block.attmgr_card_grid li.attmgr_card .thumb img {
	display: block !important;
	width: 100% !important;
	max-width: none !important;
	height: auto !important;
	margin: 0 !important;
	aspect-ratio: 3 / 4 !important;
	object-fit: cover !important;
	object-position: center top;
	border-radius: 0 !important;
	box-shadow: none;
}
ul.staff_block.attmgr_card_grid li.attmgr_card .post-info {
	padding: 8px 6px 10px;
	font-size: 1em;
	line-height: 1.5;
}
ul.staff_block.attmgr_card_grid li.attmgr_card .post-info .name {
	font-weight: bold;
	font-size: 1.05em;
	white-space: normal;
}
ul.staff_block.attmgr_card_grid li.attmgr_card .post-info .name .age {
	margin-left: 4px;
	font-weight: normal;
	font-size: 0.85em;
	color: #666;
	white-space: nowrap;
}
/*	== Modified by ao == (v1.6.1) catch copy: between name and style,
	one step smaller than the name */
ul.staff_block.attmgr_card_grid li.attmgr_card .post-info .catch {
	margin-top: 2px;
	font-size: 0.88em;
	font-weight: normal;
	line-height: 1.45;
	color: #555;
	white-space: normal;
	overflow-wrap: anywhere;
}
ul.staff_block.attmgr_card_grid li.attmgr_card .post-info .style {
	margin-top: 2px;
	font-size: 0.78em;
	color: #777;
	letter-spacing: 0.02em;
	white-space: normal;
}
ul.staff_block.attmgr_card_grid li.attmgr_card .post-info .attendance {
	margin-top: 4px;
	font-size: 0.9em;
	white-space: nowrap;
}

/*	Fallback for legacy markup without .attmgr_card_grid */
ul.staff_block {
	margin: 0;
	padding: 0;
}
ul.staff_block li {
	list-style: none;
}
ul.staff_block li img {
	box-shadow: none;
}

/**
 *	Weekly schedule (attmgr_weekly_all)
 *	== Modified by ao (v1.1.0) ==
 *	- Integrated from theme "Additional CSS" into the plugin.
 *	- No line breaks inside cells; table grows to content width.
 *	- Overflow is handled by horizontal scroll (.attmgr_scroll).
 *	- Cast column is sticky on the left while scrolling.
 *	- Selectors are written both bare and with .post_content prefix
 *	  so they win against SWELL's .post_content table rules
 *	  regardless of stylesheet load order.
 */
table.attmgr_weekly_all,
.post_content table.attmgr_weekly_all {
	width: auto;
	min-width: 100%;
	margin: 0;
	table-layout: auto;			/* fixed layout causes overflow with equal columns */
	border-collapse: separate !important;	/* keep borders visible on sticky column */
	border-spacing: 0;
	border: none;
}

/* ---- cells ---- */
table.attmgr_weekly_all th,
table.attmgr_weekly_all td,
.post_content table.attmgr_weekly_all th,
.post_content table.attmgr_weekly_all td {
	width: auto;
	padding: 10px 12px;
	border: none !important;
	border-right: 1px solid #ddd !important;
	border-bottom: 1px solid #ddd !important;
	text-align: center;
	vertical-align: middle !important;
	white-space: nowrap;		/* never wrap inside a cell */
	word-break: keep-all;
	font-size: 0.92em;
	background-clip: padding-box;
}

/* avoid double lines on the outer edge (.attmgr_scroll owns the frame) */
table.attmgr_weekly_all tr:last-child td,
.post_content table.attmgr_weekly_all tr:last-child td {
	border-bottom: none !important;
}
table.attmgr_weekly_all th:last-child,
table.attmgr_weekly_all td:last-child,
.post_content table.attmgr_weekly_all th:last-child,
.post_content table.attmgr_weekly_all td:last-child {
	border-right: none !important;
}

/* ---- header row ---- */
table.attmgr_weekly_all th,
.post_content table.attmgr_weekly_all th {
	background: #f4f5f9;
	font-weight: 600;
}
table.attmgr_weekly_all th.saturday,
.post_content table.attmgr_weekly_all th.saturday {
	background: #eef6ff;
	color: #06c;
}
table.attmgr_weekly_all th.sunday,
.post_content table.attmgr_weekly_all th.sunday {
	background: #ffeef6;
	color: #c06;
}
table.attmgr_weekly_all th .date,
table.attmgr_weekly_all th .dow,
.post_content table.attmgr_weekly_all th .date,
.post_content table.attmgr_weekly_all th .dow {
	display: inline-block;
	line-height: 1.4;
}
table.attmgr_weekly_all .date {
	font-size: 0.9em;
}
table.attmgr_weekly_all .dow {
	margin-left: 5px;
	font-size: 0.8em;
}

/* ---- date cells: keep "13:00~翌08:00" on one line ---- */
table.attmgr_weekly_all td:not(.portrait),
.post_content table.attmgr_weekly_all td:not(.portrait) {
	min-width: 8em;
}

/* ---- cast column (sticky left) ---- */
table.attmgr_weekly_all th:first-child,
table.attmgr_weekly_all td.portrait,
.post_content table.attmgr_weekly_all th:first-child,
.post_content table.attmgr_weekly_all td.portrait {
	position: sticky;
	left: 0;
	z-index: 2;
	min-width: 100px;
	max-width: 130px;
	padding: 12px 10px;
	background: #fff;
	text-align: center;
	border-right: 2px solid #ccc !important;	/* emphasize the fixed-column edge */
}
table.attmgr_weekly_all th:first-child,
.post_content table.attmgr_weekly_all th:first-child {
	background: #f4f5f9;
	z-index: 3;
}

/* cast photo and name */
.attmgr_weekly_all .portrait a {
	display: block;
	margin: 0 auto;
	text-decoration: none;
	line-height: 1.4;
}
.attmgr_weekly_all .portrait img {
	display: block;
	width: 72px;
	height: auto;
	margin: 0 auto 6px !important;
	border-radius: 6px;
	aspect-ratio: 9 / 16;
	object-fit: cover;
	object-position: center top;
}

/* ---- working / day-off cells ---- */
table.attmgr_weekly_all td.working,
.post_content table.attmgr_weekly_all td.working {
	background: #fff;
}
table.attmgr_weekly_all td.not_working,
.post_content table.attmgr_weekly_all td.not_working {
	background: #f6f6f6;
	color: #999;
}

/* ---- mobile ---- */
@media screen and (max-width: 599px) {
	table.attmgr_weekly_all th,
	table.attmgr_weekly_all td,
	.post_content table.attmgr_weekly_all th,
	.post_content table.attmgr_weekly_all td {
		padding: 8px 10px;
		font-size: 12px;
	}
	table.attmgr_weekly_all th:first-child,
	table.attmgr_weekly_all td.portrait,
	.post_content table.attmgr_weekly_all th:first-child,
	.post_content table.attmgr_weekly_all td.portrait {
		min-width: 88px;
		max-width: 100px;
	}
	.attmgr_weekly_all .portrait img {
		width: 60px;
	}
	table.attmgr_weekly_all td:not(.portrait),
	.post_content table.attmgr_weekly_all td:not(.portrait) {
		min-width: 7.5em;
	}
}

/**
 *	Weekly personal schedule
 */
table.attmgr_weekly {
	width: 100%;
	border-collapse: collapse !important;
	border: 1px solid #ddd;
}
table.attmgr_weekly th,
table.attmgr_weekly td {
	width: 14.2%;
	padding: 5px auto;
	vertical-align: middle !important;
	text-align: center;
	border: 1px solid #ddd !important;
}
table.attmgr_weekly .date {
	font-size: 0.9em;
}
table.attmgr_weekly .dow {
	margin-left: 5px;
	font-size: 0.8em;
}
table.attmgr_weekly td.working {

}
table.attmgr_weekly td.not_working {
	background-color: #f6f6f6;
}

/**
 *	Scheduler for admin
 */
form#attmgr_admin_scheduler {
	clear: both;
}
form#attmgr_admin_scheduler table.attmgr_admin_scheduler {
	width: 100%;
	border-collapse: collapse !important;
	border: 1px solid #ddd;
}
form#attmgr_admin_scheduler table.attmgr_admin_scheduler th,
form#attmgr_admin_scheduler table.attmgr_admin_scheduler td {
	width: 12.5%;
	padding: 5px auto;
	vertical-align: middle !important;
	text-align: center;
	border: 1px solid #ddd !important;
	line-height: 1.5em;
}
form#attmgr_admin_scheduler table.attmgr_admin_scheduler td.portrait img {
	width: 50px;
	margin: 8px;
}
form#attmgr_admin_scheduler table.attmgr_admin_scheduler td select {
	margin-bottom: 3px;
}

/**
 *	Scheduler for staff
 */
form#attmgr_staff_scheduler {
	clear: both;
}
form#attmgr_staff_scheduler .portrait {
	float: left;
	width: 80px;
	margin-right: 10px;
}
form#attmgr_staff_scheduler .portrait img {
	width: 60px;
	margin: 10px;
}
form#attmgr_staff_scheduler .profile {
	float: left;
}
table.attmgr_staff_scheduler {
	clear: both;
}

/*
 *	Calendar
 */
table.attmgr_calendar {
	width: 100%;
	border-collapse: collapse !important;
}
table.attmgr_calendar th,
table.attmgr_calendar td {
	padding: 0 !important;
	text-align: center;
	border: 1px solid #ddd !important;
}
table.attmgr_calendar th.sunday {
	background-color: #ffeef6;
	color: #c06;
}
table.attmgr_calendar th.saturday {
	background-color: #eef6ff;
	color: #06c;
}
table.attmgr_calendar td.today {
	background-color: #ffeecc;
}
table.attmgr_calendar_weekly td .wmonth {
	font-size: x-small;
	color: #999;
}

/**
 *	Monthly schedule
 */
table.attmgr_monthly_schedule {
	background-color: #fff;
}
table.attmgr_monthly_schedule th,
table.attmgr_monthly_schedule td {
	width: 14%;
}
table.attmgr_monthly_schedule th {

}
table.attmgr_monthly_schedule td {
	vertical-align: top;
}
table.attmgr_monthly_schedule td:first-child:before {
	display: block;
	float: left;
	height: 42px;
	content: "";
}

/* .day */
table.attmgr_monthly_schedule td .day {
	text-align: center;
}
table.attmgr_monthly_schedule td .day a {
	display: block;
}
table.attmgr_monthly_schedule td:hover {

}

/* .info */
table.attmgr_monthly_schedule td .info {
	border-top: 1px dotted #ddd;
}
table.attmgr_monthly_schedule td .info div {
	text-align: left;
	line-height: 1.3em;
}
table.attmgr_monthly_schedule td .info a {
	display: block;
	padding: 3px 10px;
}

/* .saturday */ 
table.attmgr_monthly_schedule th.saturday {
	background-color: #eef6ff;
	color: #06c;
}

/* .sunday */ 
table.attmgr_monthly_schedule th.sunday {
	background-color: #ffeef6;
	color: #c06;
}

/**
 *	Weekly guide
 */
table.attmgr_guide_weekly {
	width: 100%;
	margin-bottom: 15px;
	border-collapse: collapse !important;
	border: 1px solid #ddd;
}
table.attmgr_guide_weekly td {
	width: 12.5%;
	padding: 5px auto;
	vertical-align: middle !important;
	text-align: center;
	border: 1px solid #ddd !important;
}
table.attmgr_guide_weekly td.current {
	background-color: #f0f6ff;
}
table.attmgr_guide_weekly td a {
	display: block;
	padding: 8px auto !important;
	text-decoration: none;
}
table.attmgr_guide_weekly .date {
	font-size: 0.9em;
}
table.attmgr_guide_weekly .dow {
	margin-left: 5px;
	font-size: 0.8em;
}

/*
 *	Page navi
 */
.list_pagenavi {
	display: block;
	height: 1em;
}
.list_pagenavi:after {
	content: "";
	clear: both;
	height: 0;
	display: block;
	visibility: hidden;
}
.list_pagenavi .prev_page {
	float: left;
	width: 20%;
}
.list_pagenavi .next_page {
	float: right;
	width: 20%;
	text-align: right;
}
.list_pagenavi .list_datenavi {
	float: left;
	width: 60%;
	text-align: center;
}
.list_pagenavi .list_datenavi a {
	margin: auto 10px;
}
.list_pagenavi .back_today {
	font-size: x-small;
}

/*
 *	info box
 */
.alert {
	clear: both;
	padding: 8px 35px 8px 14px;
	margin-top: 10px;
	margin-bottom: 20px;
	text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5);
	background-color: transparent;
	border: 1px solid #ddd;
	-webkit-border-radius: 4px;
	-moz-border-radius: 4px;
	border-radius: 4px;
}

.alert h4 {
	margin: 0;
}

.alert .close {
	position: relative;
	top: -2px;
	right: -21px;
	line-height: 20px;
}

.alert-caution {
	color: #c09853;
	background-color: #fcf8e3;
	border: 1px solid #fbeed5;
}
.alert-caution h4 {
	color: #c09853;
}

.alert-success {
	color: #468847;
	background-color: #dff0d8;
	border-color: #d6e9c6;
}

.alert-success h4 {
	color: #468847;
}

.alert-danger,
.alert-error {
	color: #b94a48;
	background-color: #f2dede;
	border-color: #eed3d7;
}

.alert-danger h4,
.alert-error h4 {
	color: #b94a48;
}

.alert-info {
	color: #3a87ad;
	background-color: #d9edf7;
	border-color: #bce8f1;
}

.alert-info h4 {
	color: #3a87ad;
}

.alert-block {
	padding-top: 14px;
	padding-bottom: 14px;
}

.alert-block > p,
.alert-block > ul {
	margin-bottom: 0;
}

.alert-block p + p {
	margin-top: 5px;
}

/*
 *	Mobile
 */
@media screen and (max-width: 480px) {
	table.attmgr_guide_weekly th,
	table.attmgr_guide_weekly td,
	table.attmgr_monthly_schedule th,
	table.attmgr_monthly_schedule td,
	table.attmgr_admin_scheduler th,
	table.attmgr_admin_scheduler td,
	table.attmgr_weekly th,
	table.attmgr_weekly td {
		padding: 3px 0;
		font-size: x-small;
		font-weight: normal;
	}
	/* NOTE: attmgr_weekly_all is handled by its own 599px block above (v1.1.0) */
	table.attmgr_guide_weekly .date,
	table.attmgr_guide_weekly .dow,
	table.attmgr_monthly_schedule .date,
	table.attmgr_monthly_schedule .dow,
	table.attmgr_admin_scheduler .date,
	table.attmgr_admin_scheduler .dow,
	table.attmgr_weekly .date,
	table.attmgr_weekly .dow,
	table.attmgr_weekly_all .date,
	table.attmgr_weekly_all .dow {
		display:block;
		line-height: 1.3em;
	}
	table .portrait img {
		/*
		width: auto !important;
		height: auto !important;
		*/
	}
	.list_pagenavi,
	.list_datenavi {
		font-size: x-small;
	}
}



/**
 *	== Modified by ao ==
 *	Portrait: 9:16 / original image
 */
form#attmgr_admin_scheduler table.attmgr_admin_scheduler td.portrait img,
form#attmgr_staff_scheduler .portrait img {
	aspect-ratio: 9 / 16;
	object-fit: cover;
	object-position: center top;
	height: auto;
}

/**
 *	== Modified by ao ==
 *	Horizontal scroll for schedule tables
 */
.attmgr_scroll {
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
	margin-bottom: 15px;
	border: 1px solid #ddd;
	border-radius: 8px;
	background: #fff;
}
.attmgr_scroll table {
	margin-bottom: 0;
}
/* weekly_all sizes itself via width:auto + min-width:100% (see above) */
.attmgr_scroll table.attmgr_weekly {
	min-width: 560px;
}
.attmgr_scroll table.attmgr_calendar,
.attmgr_scroll table.attmgr_monthly_schedule {
	min-width: 640px;
}
table.attmgr_weekly th,
table.attmgr_weekly td {
	white-space: nowrap;
}
table.attmgr_monthly_schedule td .info div {
	white-space: nowrap;
}

/**
 *	== Modified by ao ==
 *	Schedule status labels
 */
.attmgr_status {
	display: inline-block;
	padding: 1px 8px;
	border-radius: 3px;
	font-size: 0.85em;
	line-height: 1.6;
	white-space: nowrap;
}
.attmgr_status_full {
	background-color: #fde8e8;
	color: #c0392b;
	border: 1px solid #f5c6cb;
}
.attmgr_status_inquiry {
	background-color: #fff6e0;
	color: #b07d00;
	border: 1px solid #ffe8a1;
}
.attmgr_status_dayoff {
	background-color: #f0f0f0;
	color: #888;
	border: 1px solid #ddd;
}
.attmgr_status_with_time {
	display: inline-block;
	margin-left: 4px;
}
select.attmgr_status_select {
	margin-top: 3px;
}

/**
 *	== Modified by ao (v1.1.0) ==
 *	Date navi (attmgr_guide_weekly) fine tuning
 *	Integrated from theme "Additional CSS".
 */
table.attmgr_guide_weekly td,
.post_content table.attmgr_guide_weekly td {
	padding: 8px 2px;
}
table.attmgr_guide_weekly td a,
.post_content table.attmgr_guide_weekly td a {
	display: block;
	padding: 4px 0;
}
table.attmgr_guide_weekly td.saturday a,
.post_content table.attmgr_guide_weekly td.saturday a {
	color: #06c;
}
table.attmgr_guide_weekly td.sunday a,
.post_content table.attmgr_guide_weekly td.sunday a {
	color: #c06;
}


/**
 *	== Modified by ao == (v1.3.0)
 *	Place (working location) badge & group headings
 */
.attmgr_place {
	display: inline-block;
	margin-right: 4px;
	margin-bottom: 2px;
	padding: 1px 7px;
	font-size: 0.78em;
	line-height: 1.6;
	color: #fff;
	background: #7a8ba8;
	border-radius: 3px;
	white-space: nowrap;
	vertical-align: middle;
}
/* inside the daily card, badge goes on its own line above the time */
ul.staff_block.attmgr_card_grid li.attmgr_card .attendance .attmgr_place {
	display: block;
	margin: 0 auto 3px;
	max-width: max-content;
}
.attmgr_place_group_title {
	margin: 1.4em 0 0.6em;
	padding: 4px 10px;
	font-weight: bold;
	font-size: 1.05em;
	border-left: 4px solid #7a8ba8;
	background: #f4f6f9;
	border-radius: 0 4px 4px 0;
}
.attmgr_place_group_title:first-of-type {
	margin-top: 0.4em;
}
select.attmgr_place_select {
	max-width: 100%;
}
/* weekly/monthly table cells: keep badge compact */
table[class*="attmgr"] td .attmgr_place {
	display: block;
	margin: 0 auto 2px;
	max-width: max-content;
	font-size: 0.72em;
}

/**
 *	== Modified by ao == (v1.5.0)
 *	Weekly templates (出勤テンプレート)
 */
.attmgr_tpl_bar {
	clear: both;
	margin: 10px 0;
	padding: 8px 10px;
	background: #f7f7f9;
	border: 1px solid #e2e2e8;
	border-radius: 6px;
	font-size: 0.9em;
	line-height: 1.8;
}
.attmgr_tpl_bar_label {
	font-weight: bold;
	margin-right: 4px;
}
.attmgr_tpl_bar button,
.attmgr_tpl_row button {
	padding: 2px 10px;
	margin: 2px 2px 2px 0;
	border: 1px solid #b9b9c6;
	border-radius: 4px;
	background: #fff;
	color: #333;
	font-size: 0.95em;
	line-height: 1.6;
	cursor: pointer;
}
.attmgr_tpl_bar button:hover,
.attmgr_tpl_row button:not([disabled]):hover {
	background: #eef0ff;
}
.attmgr_tpl_row button[disabled] {
	opacity: 0.35;
	cursor: default;
}
.attmgr_tpl_msg {
	display: block;
	color: #2a6f3b;
}
.attmgr_tpl_row {
	margin-top: 4px;
	font-size: 0.85em;
	white-space: nowrap;
}
.attmgr_tpl_row button {
	padding: 0 7px;
}
.attmgr_tpl_edit {
	display: block;
	margin-top: 2px;
}
form#attmgr_admin_scheduler td.attmgr_tpl_filled,
table.attmgr_staff_scheduler td.attmgr_tpl_filled {
	background-color: #fff8dc;
}
.attmgr_tpl_details {
	clear: both;
	margin: 24px 0 10px;
	padding: 10px 12px;
	border: 1px solid #ddd;
	border-radius: 6px;
}
.attmgr_tpl_details > summary {
	font-weight: bold;
	cursor: pointer;
}
.attmgr_tpl_help {
	font-size: 0.9em;
	margin: 8px 0;
}
.attmgr_tpl_slot {
	margin: 10px 0;
	padding: 6px 10px;
	border: 1px solid #e2e2e8;
	border-radius: 6px;
	background: #fcfcfd;
}
.attmgr_tpl_slot > summary {
	cursor: pointer;
	font-weight: bold;
}
.attmgr_tpl_name input[type="text"] {
	max-width: 14em;
}
table.attmgr_tpl_table {
	width: 100%;
	border-collapse: collapse !important;
	margin: 6px 0;
}
table.attmgr_tpl_table th,
table.attmgr_tpl_table td {
	padding: 4px 6px;
	border: 1px solid #ddd !important;
	vertical-align: middle;
}
table.attmgr_tpl_table th {
	width: 3em;
	text-align: center;
	white-space: nowrap;
}
table.attmgr_tpl_table th.saturday { color: #1e5bc6; }
table.attmgr_tpl_table th.sunday { color: #c62828; }
table.attmgr_tpl_table select {
	margin: 2px 0;
}
.attmgr_tpl_clear {
	font-size: 0.85em;
	color: #888;
}
.attmgr_tpl_notice {
	padding: 8px 10px;
	margin: 10px 0;
	background: #e9f7ee;
	border: 1px solid #b5dfc2;
	border-radius: 6px;
	color: #2a6f3b;
}
.attmgr_tpl_title {
	margin: 10px 0;
}

/**
 *	== Modified by ao == (v1.5.1)
 *	Save result / error notice above the schedulers
 */
.attmgr_notice {
	clear: both;
	margin: 10px 0;
	padding: 8px 12px;
	border-radius: 6px;
	line-height: 1.7;
}
.attmgr_notice.alert-success {
	background: #e9f7ee;
	border: 1px solid #b5dfc2;
	color: #2a6f3b;
}
.attmgr_notice.attmgr_notice_conflict {
	background: #fff8e1;
	border-color: #f0d58a;
	color: #6b4f00;
}
.attmgr_notice.alert-error {
	background: #fdecea;
	border: 1px solid #f3b7b1;
	color: #8a1f17;
}

/**
 *	== Modified by ao == (v1.6.0)
 *	[attmgr_roster] "本日出勤" mark
 *
 *	Colors can be changed without editing this file:
 *	  shortcode : [attmgr_roster today_bg="#2f6f8f" today_color="#fff"]
 *	  CSS       : .attmgr_roster { --attmgr-today-bg: #2f6f8f; --attmgr-today-color: #fff; }
 */
ul.staff_block.attmgr_card_grid.attmgr_roster {
	--attmgr-today-band-h: 26px;
}
/* band on the bottom of the photo (today_pos="photo", default) */
ul.staff_block.attmgr_card_grid li.attmgr_card .thumb .attmgr_today_band {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 1;	/* below the rank / No. badges (z-index 2-3) */
	display: flex;
	align-items: center;
	justify-content: center;
	height: var(--attmgr-today-band-h, 26px);
	margin: 0;
	padding: 0 6px;
	background: var(--attmgr-today-bg, rgba(201, 64, 104, 0.92));
	color: var(--attmgr-today-color, #fff);
	font-size: 12px;
	font-weight: bold;
	line-height: 1;
	letter-spacing: 0.12em;
	white-space: nowrap;
	overflow: hidden;
	pointer-events: none;	/* keep the photo link clickable */
	box-sizing: border-box;
}
/* rank / No. badges placed at the bottom corners move up above the band */
ul.staff_block.attmgr_card_grid li.attmgr_card.has-today-band .thumb .attmgr_badge_stack.attmgr_badge_pos--bl,
ul.staff_block.attmgr_card_grid li.attmgr_card.has-today-band .thumb .attmgr_badge_stack.attmgr_badge_pos--br {
	bottom: calc(var(--attmgr-today-band-h, 26px) + 6px);
}
ul.staff_block.attmgr_card_grid li.attmgr_card.has-today-band .thumb .attmgr_badge_ribbon_wrap.attmgr_badge_pos--bl,
ul.staff_block.attmgr_card_grid li.attmgr_card.has-today-band .thumb .attmgr_badge_ribbon_wrap.attmgr_badge_pos--br {
	bottom: var(--attmgr-today-band-h, 26px);
}
/* label above the name (today_pos="info") */
ul.staff_block.attmgr_card_grid li.attmgr_card .post-info .attmgr_today_label {
	margin: 0 0 4px;
	line-height: 1;
}
ul.staff_block.attmgr_card_grid li.attmgr_card .post-info .attmgr_today_label span {
	display: inline-block;
	padding: 4px 10px;
	border-radius: 999px;
	background: var(--attmgr-today-bg, rgba(201, 64, 104, 0.92));
	color: var(--attmgr-today-color, #fff);
	font-size: 0.75em;
	font-weight: bold;
	letter-spacing: 0.08em;
	white-space: nowrap;
}
/* working time under the profile */
ul.staff_block.attmgr_card_grid li.attmgr_card .post-info .attmgr_today_time {
	margin-top: 6px;
	white-space: normal;
}

/**
 *	== Modified by ao == (v1.9.0)
 *	[attmgr_roster] 所属拠点
 *	  headings : .attmgr_base_group_title--N (N = line number in
 *	             在籍拠点リスト, 0 = その他) for per-base CSS. Look: see
 *	             base_style below (v1.10.1, default "section")
 *	  label    : base_label="1" puts the base name above the cast name
 */
.attmgr_roster_groups {
	width: 100%;
	box-sizing: border-box;
}
.attmgr_roster_groups > .attmgr_base_group_title:first-child {
	margin-top: 0.4em;
}

/*	== Modified by ao == (v1.10.1 / v1.11.0)
	Section headings (default of 出勤管理 > 一般 > 見出しのデザイン):
	[attmgr_roster] bases  -> .attmgr_roster_groups .attmgr_section_title
	[attmgr_daily]  places -> .attmgr_place_groups  .attmgr_section_title
	A centered title on the page, like a SWELL section heading. It is a
	real <h3> (base_tag / place_tag), so the theme's heading decoration
	(SWELL: background, borders, ::before / ::after) is reset with
	!important. Color and font follow the page.
	Tune in 追加CSS without !important through these variables:
	  .attmgr_roster_groups, .attmgr_place_groups {
	    --attmgr-section-size: 1.4em;     文字の大きさ
	    --attmgr-section-gap: 3em;        見出しの上の余白
	    --attmgr-section-gap-bottom: 1em; 見出しとカードの間
	    --attmgr-section-color: #e8d3a8;  文字色（既定はページの文字色）
	  } */
.attmgr_place_groups {
	width: 100%;
	box-sizing: border-box;
}
.attmgr_roster_groups .attmgr_section_title,
.attmgr_place_groups .attmgr_section_title,
.post_content .attmgr_roster_groups .attmgr_section_title,
.post_content .attmgr_place_groups .attmgr_section_title {
	position: static !important;
	display: block !important;
	width: auto !important;
	margin: var(--attmgr-section-gap, 2.6em) 0 var(--attmgr-section-gap-bottom, 1.1em) !important;
	padding: 0 !important;
	background: none !important;
	border: none !important;
	border-radius: 0 !important;
	box-shadow: none !important;
	color: var(--attmgr-section-color, inherit) !important;
	font-size: var(--attmgr-section-size, 1.3em) !important;
	font-weight: bold;
	line-height: 1.5 !important;
	letter-spacing: 0.06em;
	text-align: center !important;
	text-shadow: none;
}
.attmgr_roster_groups .attmgr_section_title::before,
.attmgr_roster_groups .attmgr_section_title::after,
.attmgr_place_groups .attmgr_section_title::before,
.attmgr_place_groups .attmgr_section_title::after,
.post_content .attmgr_roster_groups .attmgr_section_title::before,
.post_content .attmgr_roster_groups .attmgr_section_title::after,
.post_content .attmgr_place_groups .attmgr_section_title::before,
.post_content .attmgr_place_groups .attmgr_section_title::after {
	content: none !important;
	display: none !important;
}
.attmgr_roster_groups > .attmgr_section_title:first-child,
.post_content .attmgr_roster_groups > .attmgr_section_title:first-child {
	margin-top: var(--attmgr-section-gap-first, 0.4em) !important;
}
/* [attmgr_daily]: the first heading usually comes right under the date
   guide table (guide="week"), so it gets a little more room */
.attmgr_place_groups > .attmgr_section_title:first-child,
.post_content .attmgr_place_groups > .attmgr_section_title:first-child {
	margin-top: var(--attmgr-section-gap-first, 1em) !important;
}
ul.staff_block.attmgr_card_grid li.attmgr_card .post-info .attmgr_base_label {
	margin: 0 0 4px;
	line-height: 1;
}
ul.staff_block.attmgr_card_grid li.attmgr_card .post-info .attmgr_base_label .attmgr_place {
	margin: 0;
	max-width: 100%;
	overflow: hidden;
	text-overflow: ellipsis;
}

/**
 *	== Modified by ao == (v1.10.0)
 *	Color scheme : [attmgr_daily scheme="dark"] / scheme="light", or
 *	出勤管理 > 一般 > 表示の配色. The output is wrapped in
 *	<div class="attmgr_scheme attmgr_scheme--dark"> (nothing in "auto").
 *
 *	Rule of this block: only what paints its own background (cards, tables,
 *	headings, the date guide) is recolored, and always together with its
 *	text color. Text that sits directly on the page (week navi, notices)
 *	is left alone, so it keeps following the page / block colors.
 *
 *	Any value can be tuned in 追加CSS, e.g.
 *	  .attmgr_scheme--dark { --attmgr-surface: #1d1626; --attmgr-accent: #c79bd6; }
 */
.attmgr_scheme--light {
	--attmgr-surface: #ffffff;		/* cards, table cells */
	--attmgr-surface-alt: #f4f5f9;	/* table header, group heading */
	--attmgr-surface-off: #f6f6f6;	/* days off in the tables */
	--attmgr-text: #333333;		/* names, working time */
	--attmgr-muted: #666666;		/* age, catch copy */
	--attmgr-subtle: #777777;		/* three sizes */
	--attmgr-faint: #999999;		/* "-" of a day off */
	--attmgr-card-border: #eeeeee;
	--attmgr-border: #dddddd;
	--attmgr-border-strong: #cccccc;
	--attmgr-accent: #7a8ba8;		/* bar of the group heading */
	--attmgr-link: #333333;
	--attmgr-sat: #0066cc;
	--attmgr-sat-bg: #eef6ff;
	--attmgr-sun: #cc0066;
	--attmgr-sun-bg: #ffeef6;
	--attmgr-cal-today: #ffeecc;
	--attmgr-current: #f0f6ff;
}
.attmgr_scheme--dark {
	--attmgr-surface: #1b1b1f;
	--attmgr-surface-alt: #26262c;
	--attmgr-surface-off: #141417;
	--attmgr-text: #f3f3f5;
	--attmgr-muted: #c9c9cf;
	--attmgr-subtle: #a6a6ae;
	--attmgr-faint: #7d7d86;
	--attmgr-card-border: #2e2e35;
	--attmgr-border: #34343b;
	--attmgr-border-strong: #4a4a52;
	--attmgr-accent: #8fa3c4;
	--attmgr-link: #f3f3f5;
	--attmgr-sat: #7fb8ff;
	--attmgr-sat-bg: #17263a;
	--attmgr-sun: #ff8fbf;
	--attmgr-sun-bg: #3a1a28;
	--attmgr-cal-today: #4a3b16;
	--attmgr-current: #1f2f46;
}

/* ---- cards : [attmgr_daily] / [attmgr_roster] ---- */
.attmgr_scheme ul.staff_block.attmgr_card_grid li.attmgr_card {
	background: var(--attmgr-surface);
	border-color: var(--attmgr-card-border);
	color: var(--attmgr-text);
}
.attmgr_scheme ul.staff_block.attmgr_card_grid li.attmgr_card .post-info,
.attmgr_scheme ul.staff_block.attmgr_card_grid li.attmgr_card .post-info .name,
.attmgr_scheme ul.staff_block.attmgr_card_grid li.attmgr_card .post-info .name a,
.attmgr_scheme ul.staff_block.attmgr_card_grid li.attmgr_card .post-info .attendance {
	color: var(--attmgr-text);
}
.attmgr_scheme ul.staff_block.attmgr_card_grid li.attmgr_card .post-info .name .age,
.attmgr_scheme ul.staff_block.attmgr_card_grid li.attmgr_card .post-info .catch {
	color: var(--attmgr-muted);
}
.attmgr_scheme ul.staff_block.attmgr_card_grid li.attmgr_card .post-info .style {
	color: var(--attmgr-subtle);
}

/* ---- group headings (出勤場所 / 所属拠点) ---- */
.attmgr_scheme .attmgr_place_group_title {
	background: var(--attmgr-surface-alt);
	border-left-color: var(--attmgr-accent);
	color: var(--attmgr-text);
}

/* ---- date guide of [attmgr_daily guide="week"] ---- */
.attmgr_scheme table.attmgr_guide_weekly {
	background: var(--attmgr-surface);
	border-color: var(--attmgr-border);
}
.attmgr_scheme table.attmgr_guide_weekly td {
	color: var(--attmgr-text);
	border-color: var(--attmgr-border) !important;
}
.attmgr_scheme table.attmgr_guide_weekly td a {
	color: var(--attmgr-link);
}
.attmgr_scheme table.attmgr_guide_weekly td.saturday a {
	color: var(--attmgr-sat);
}
.attmgr_scheme table.attmgr_guide_weekly td.sunday a {
	color: var(--attmgr-sun);
}
.attmgr_scheme table.attmgr_guide_weekly td.current {
	background-color: var(--attmgr-current);
}

/* ---- week / month navi above the tables ----
 * .list_pagenavi is a 1em-high box of floats, and the floats stick out
 * below it. A direct child of the page content got the theme's block gap,
 * which happened to push the table below them; inside this wrapper there
 * is no such gap, and the table's scroll box (overflow-x:auto) shrank to
 * the width left beside the floats. Let the navi contain its floats. */
.attmgr_scheme .list_pagenavi {
	height: auto;
	margin-bottom: 10px;
}
/* ---- scroll frame of the tables ---- */
.attmgr_scheme .attmgr_scroll {
	clear: both;
	background: var(--attmgr-surface);
	border-color: var(--attmgr-border);
}

/* ---- [attmgr_weekly_all] ---- */
.attmgr_scheme table.attmgr_weekly_all th,
.attmgr_scheme table.attmgr_weekly_all td {
	color: var(--attmgr-text);
	border-right-color: var(--attmgr-border) !important;
	border-bottom-color: var(--attmgr-border) !important;
}
.attmgr_scheme table.attmgr_weekly_all th {
	background: var(--attmgr-surface-alt);
}
.attmgr_scheme table.attmgr_weekly_all th.saturday {
	background: var(--attmgr-sat-bg);
	color: var(--attmgr-sat);
}
.attmgr_scheme table.attmgr_weekly_all th.sunday {
	background: var(--attmgr-sun-bg);
	color: var(--attmgr-sun);
}
.attmgr_scheme table.attmgr_weekly_all td.portrait {
	background: var(--attmgr-surface);
	border-right-color: var(--attmgr-border-strong) !important;
}
.attmgr_scheme table.attmgr_weekly_all th:first-child {
	background: var(--attmgr-surface-alt);
	border-right-color: var(--attmgr-border-strong) !important;
}
.attmgr_scheme table.attmgr_weekly_all .portrait a {
	color: var(--attmgr-text);
}
.attmgr_scheme table.attmgr_weekly_all td.working {
	background: var(--attmgr-surface);
}
.attmgr_scheme table.attmgr_weekly_all td.not_working {
	background: var(--attmgr-surface-off);
	color: var(--attmgr-faint);
}

/* ---- [attmgr_weekly id=N] ---- */
.attmgr_scheme table.attmgr_weekly {
	background: var(--attmgr-surface);
	color: var(--attmgr-text);
	border-color: var(--attmgr-border);
}
.attmgr_scheme table.attmgr_weekly th,
.attmgr_scheme table.attmgr_weekly td {
	color: var(--attmgr-text);
	border-color: var(--attmgr-border) !important;
}
.attmgr_scheme table.attmgr_weekly th {
	background: var(--attmgr-surface-alt);
}
.attmgr_scheme table.attmgr_weekly th.saturday {
	background: var(--attmgr-sat-bg);
	color: var(--attmgr-sat);
}
.attmgr_scheme table.attmgr_weekly th.sunday {
	background: var(--attmgr-sun-bg);
	color: var(--attmgr-sun);
}
.attmgr_scheme table.attmgr_weekly td.not_working {
	background-color: var(--attmgr-surface-off);
	color: var(--attmgr-faint);
}

/* ---- [attmgr_calendar] / [attmgr_monthly_all] ---- */
.attmgr_scheme table.attmgr_calendar {
	background: var(--attmgr-surface);
	color: var(--attmgr-text);
}
.attmgr_scheme table.attmgr_calendar th,
.attmgr_scheme table.attmgr_calendar td {
	color: var(--attmgr-text);
	border-color: var(--attmgr-border) !important;
}
.attmgr_scheme table.attmgr_calendar th {
	background-color: var(--attmgr-surface-alt);
}
.attmgr_scheme table.attmgr_calendar a {
	color: var(--attmgr-link);
}
.attmgr_scheme table.attmgr_calendar th.saturday {
	background-color: var(--attmgr-sat-bg);
	color: var(--attmgr-sat);
}
.attmgr_scheme table.attmgr_calendar th.sunday {
	background-color: var(--attmgr-sun-bg);
	color: var(--attmgr-sun);
}
.attmgr_scheme table.attmgr_calendar td.today {
	background-color: var(--attmgr-cal-today);
}
.attmgr_scheme table.attmgr_calendar_weekly td .wmonth {
	color: var(--attmgr-faint);
}
.attmgr_scheme table.attmgr_monthly_schedule td .info {
	border-top-color: var(--attmgr-border);
}
