/* ZST - Zam Software Solutions Tracker — Redesigned stylesheet */

:root {
	--sidebar-width: 220px;
	--sidebar-collapsed-width: 60px;
	--topbar-strip-height: 46px;
}

* { box-sizing: border-box; }
html { height: 100%; }

BODY {
	margin: 0;
	line-height: 1.5;
	font-family: "Arial", "Helvetica", "sans-serif";
	font-size: 13px;
	color: #222;
	background-color: #eef1f4;
	height: 100%;
}

/* ---- Left sidebar ---- */
.hp-sidebar {
	position: fixed;
	top: 0; left: 0;
	width: var(--sidebar-width);
	height: 100vh;
	background: #3B59A0;
	display: flex;
	flex-direction: column;
	z-index: 1000;
	overflow: hidden;
	transition: width 0.22s ease;
	box-shadow: 2px 0 8px rgba(0,0,0,0.12);
}
html.hp-collapsed .hp-sidebar { width: var(--sidebar-collapsed-width); }
html.hp-collapsed .hp-sidebar:hover { width: var(--sidebar-width); }
html.hp-collapsed .hp-sidebar:hover .hp-nav-label { opacity: 1; pointer-events: auto; width: auto; }
html.hp-collapsed .hp-sidebar:hover .hp-logo-expanded { display: block; }
html.hp-collapsed .hp-sidebar:hover .hp-logo-collapsed { display: none; }

.hp-sidebar-header {
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 0 10px;
	height: 56px;
	min-height: 56px;
	border-bottom: 1px solid rgba(255,255,255,0.12);
	overflow: hidden;
}
.hp-sidebar-logo-link {
	display: flex; align-items: center; gap: 10px;
	text-decoration: none; overflow: hidden; flex: 1; min-width: 0;
}
.hp-sidebar-logo-img { flex-shrink: 0; display: block; filter: brightness(10); opacity: 0.9; }
.hp-sidebar-brand {
	color: #fff; font-size: 14px; font-weight: bold;
	white-space: nowrap; overflow: hidden;
	opacity: 1; transition: opacity 0.18s;
}
html.hp-collapsed .hp-sidebar-brand { opacity: 0; pointer-events: none; }

/* Logo swap: expanded shows full logo, collapsed shows icon */
.hp-logo-collapsed { display: none; }
.hp-logo-expanded  { display: block; }
html.hp-collapsed .hp-logo-expanded  { display: none; }
html.hp-collapsed .hp-logo-collapsed { display: block; }

.hp-sidebar-nav {
	display: flex; flex-direction: column;
	padding: 8px 0; flex: 1;
	overflow-y: auto; overflow-x: hidden;
	scrollbar-width: thin;
	scrollbar-color: rgba(255,255,255,0.15) transparent;
}
.hp-sidebar-nav::-webkit-scrollbar { width: 4px; }
.hp-sidebar-nav::-webkit-scrollbar-thumb { background: rgba(255,255,255,0.18); border-radius: 2px; }
.hp-nav-link {
	display: flex; align-items: center; gap: 11px;
	padding: 10px 16px;
	color: rgba(255,255,255,0.82);
	text-decoration: none; font-size: 13px; font-weight: 500;
	white-space: nowrap;
	transition: background 0.15s, color 0.15s;
	border-left: 3px solid transparent;
}
.hp-nav-link:hover {
	background: rgba(255,255,255,0.12); color: #fff;
	text-decoration: none; border-left-color: #a5c0e2;
}
.hp-nav-link img { flex-shrink: 0; filter: brightness(10); opacity: 0.8; }
.hp-nav-link:hover img { opacity: 1; }
.hp-nav-project {
	padding: 7px 16px 7px 24px;
	font-size: 12px; font-weight: 400;
}
.hp-nav-project svg { opacity: 0.65; }
.hp-nav-project:hover svg { opacity: 1; }
.hp-nav-active {
	background: rgba(165,192,226,0.22) !important;
	border-left-color: #a5c0e2 !important;
	color: #fff !important;
}
.hp-nav-active svg { opacity: 1 !important; }
.hp-nav-label {
	white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
	opacity: 1; transition: opacity 0.18s;
}
html.hp-collapsed .hp-nav-label { opacity: 0; pointer-events: none; width: 0; }
.hp-sidebar-bottom {
	margin-top: auto;
	border-top: 1px solid rgba(255,255,255,0.08);
	padding-top: 4px; flex-shrink: 0;
}
.hp-nav-logout:hover { background: rgba(59,89,160,0.5); border-left-color: #fff; }

/* ---- Page wrapper ---- */
.hp-page-wrapper {
	margin-left: var(--sidebar-width);
	min-height: 100vh;
	display: flex; flex-direction: column;
	transition: margin-left 0.22s ease;
}
html.hp-collapsed .hp-page-wrapper { margin-left: var(--sidebar-collapsed-width); }

.hp-topbar-strip {
	background: #fff;
	border-bottom: 1px solid #d6dbe0;
	height: var(--topbar-strip-height);
	display: flex; align-items: center;
	padding: 0 16px; gap: 12px;
	position: sticky; top: 0; z-index: 100;
}
.hp-topbar-toggle {
	background: none; border: none; color: #777; cursor: pointer;
	padding: 6px; border-radius: 4px;
	display: flex; align-items: center; flex-shrink: 0;
	transition: background 0.15s, color 0.15s;
}
.hp-topbar-toggle:hover { background: #eef1f4; color: #333; }
.hp-topbar-search { flex: 1; }

/* ---- Page layout containers ---- */
#current_location {
	padding: 10px 20px 4px;
	font-size: 13px;
	color: #555;
}

#main_container {
	padding: 18px 20px 50px;
	border: 1px solid #d6dbe0;
	border-radius: 6px;
	margin: 12px 16px 20px;
	background: #fff;
	text-align: left;
}

#current_location.project_list,
#main_container.project_list {
	margin-left: 8px;
	margin-right: 8px;
}

#sub_container {
	position: static;
	text-align: left;
	margin: 14px 0 0;
}

/* ---- Footer ---- */
.hp-footer {
	margin-top: auto;
	padding: 14px 20px;
	border-top: 1px solid #d6dbe0;
	text-align: center;
	font-size: 11px;
	color: #aaa;
}

/* ---- Alex Wang box ---- */
.aw-box-tl { background: transparent url(images/box/corners.gif) no-repeat 0 0; zoom:1; }
.aw-box-tc { height: 8px; background: transparent url(images/box/tb.gif) repeat-x 0 0; overflow: hidden; }
.aw-box-tr { background: transparent url(images/box/corners.gif) no-repeat right -8px; }
.aw-box-ml { background: transparent url(images/box/l.gif) repeat-y 0; padding-left: 4px; overflow: hidden; zoom:1; }
.aw-box-mc {
	overflow: auto;
	background: #f7f9fb;
	padding: 8px 14px;
	font-family: "Arial","Tahoma","Helvetica",sans-serif;
	color: #393939;
	font-size: 13px;
}
.aw-box-mc h3 { font-size: 14px; font-weight: bold; margin: 0 0 6px; }
.aw-box-mc p { margin: 0; }
.aw-box-mr { background: transparent url(images/box/r.gif) repeat-y right; padding-right: 4px; overflow: hidden; }
.aw-box-bl { background: transparent url(images/box/corners.gif) no-repeat 0 -16px; zoom:1; }
.aw-box-bc { background: transparent url(images/box/tb.gif) repeat-x 0 -8px; height: 8px; overflow: hidden; }
.aw-box-br { background: transparent url(images/box/corners.gif) no-repeat right -24px; }
.aw-box-tl, .aw-box-bl { padding-left: 8px; overflow: hidden; }
.aw-box-tr, .aw-box-br { padding-right: 8px; overflow: hidden; }

/* ---- Tables ---- */
table, td {
	font-family: "Arial", "Helvetica", "sans-serif";
	font-size: 13px;
	line-height: 1.5;
	border-color: #d6dbe0;
}

table.table-main-list {
	border: 0;
	border-collapse: collapse;
	width: 100%;
}

table.table-input-form {
	border: 0;
	border-collapse: collapse;
	width: 100%;
}

/* ---- Form cell styles ---- */
td.title {
	background-color: #e8eef7;
	color: #2b3a6b;
	border: 1px solid #c3cdd8;
	padding: 9px 12px;
	font-weight: bold;
	font-size: 12px;
}

td.prompt {
	color: #4a5568;
	background-color: #f5f7fa;
	padding: 9px 12px;
	border: 1px solid #e4e9ee;
	font-size: 13px;
	vertical-align: top;
}

td.prompt_align_top {
	vertical-align: top;
}

td.content {
	background-color: #ffffff;
	padding: 9px 12px;
	border: 1px solid #e4e9ee;
}

td.line1 {
	padding: 8px 12px;
	background-color: #f5f7fa;
	border: 1px solid #e4e9ee;
}

td.line0 {
	border: 1px solid #e4e9ee;
	padding: 8px 12px;
	background-color: #ffffff;
}

td.line_highlight {
	background-color: #fff8e1;
}

.outline {
	font-family: "Arial", "Helvetica", "sans-serif";
	color: #3B59A0;
	font-size: 17pt;
	font-weight: bold;
}

/* ---- Links ---- */
a {
	text-decoration: none;
	color: #1a3a8c;
	cursor: pointer;
}
a.name {
	color: #007a00;
}
a:hover {
	text-decoration: underline;
	color: #3B59A0;
}
a.toolbar {
	font-size: 13px;
}

/* ---- Lists ---- */
BODY ul { list-style-type: square; color: #5276B5; }
BODY ol { color: #5276B5; }

/* ---- Notices ---- */
.notice { color: #c62828; }

.item_prompt_small { color: #3B59A0; }
.item_prompt_large {
	font-weight: bold;
	font-size: 16px;
	color: #43a047;
	margin-top: 16px;
}

/* ---- Form controls ---- */
select {
	font-family: arial, helvetica, sans-serif;
	font-size: 13px;
	color: #333;
	cursor: pointer;
	background-color: #fff;
	border: 1px solid #c3ccd4;
	border-radius: 4px;
	padding: 5px 8px;
	height: 32px;
}

.input-form-text-field {
	font-family: "Arial","Tahoma","Helvetica",sans-serif;
	font-size: 13px;
	padding: 6px 10px;
	background: #fff;
	border: 1px solid #c3ccd4;
	border-radius: 4px;
	height: 34px;
	line-height: 20px;
	vertical-align: middle;
	transition: border-color 0.15s;
}
.input-form-text-field:focus {
	border-color: #3B59A0;
	outline: none;
	box-shadow: 0 0 0 2px rgba(59,89,160,0.12);
}

.input-form-text-textarea {
	font-family: "Arial","Tahoma","Helvetica",sans-serif;
	font-size: 13px;
	padding: 8px 10px;
	background: #fff;
	border: 1px solid #c3ccd4;
	border-radius: 4px;
	line-height: 1.6;
	vertical-align: middle;
}

input.checkbox { cursor: pointer; }

input.button, button.button {
	background: #3B59A0;
	color: #fff;
	border: 1px solid #2d4580;
	border-radius: 4px;
	padding: 8px 22px;
	font-size: 13px;
	font-weight: bold;
	cursor: pointer;
	letter-spacing: 0.3px;
	transition: background 0.15s;
}
input.button:hover, button.button:hover {
	background: #2d4580;
}

button[type=button] {
	padding: 7px 14px;
	border: 1px solid #c3ccd4;
	border-radius: 4px;
	background: #f5f7fa;
	font-size: 13px;
	cursor: pointer;
	color: #333;
}
button[type=button]:hover {
	background: #e8eef7;
	border-color: #3B59A0;
	color: #3B59A0;
}

font.title_header {
	font-family: "Arial", "Helvetica", "sans-serif";
	color: #ffffff;
	font-size: 20pt;
}

.current_page { font-weight: bold; }

.div_loading { color: #3B59A0; }

form { margin: 0; }

fieldset {
	border: 1px solid #c3ccd4;
	padding: 12px 14px 8px;
	margin-bottom: 12px;
	border-radius: 4px;
}
fieldset legend {
	margin-bottom: 8px;
	font: bold 12px arial, helvetica, sans-serif;
	color: #3B59A0;
	padding: 0 4px;
}

/* ---- Report message box ---- */
#report_mesg_main {
	text-align: center;
	margin-bottom: 45px;
}
.report_mesg_sub {
	width: 460px;
	height: auto;
	min-height: 200px;
	border: 1px solid #d6dbe0;
	border-radius: 8px;
	background: #f5f7fa;
	text-align: left;
	margin: 20px auto 0;
	overflow: hidden;
	box-shadow: 0 2px 8px rgba(0,0,0,0.06);
}
.report_mesg_sub .mesg_left {
	float: left;
	position: relative;
	width: 160px;
	margin: 20px 0 0 16px;
	color: #666;
	overflow: hidden;
}
.report_mesg_sub .mesg_right {
	float: right;
	position: relative;
	width: 250px;
}
.report_mesg_sub .mesg_right1 {
	margin: 16px 12px 0 6px;
	text-align: left;
	font-family: "Arial";
	color: #FF9900;
	font-size: 22pt;
	font-weight: bold;
}
.report_mesg_sub .mesg_right2 {
	height: 120px;
	margin: 0 12px 0 6px;
	background: #e8eef7;
	border: 1px solid #c3cdd8;
	border-bottom: 0 none;
	color: #000099;
	text-align: center;
	overflow: hidden;
}
.report_mesg_sub .mesg_right2 td { color: #000099; text-align: center; }
.report_mesg_sub .mesg_right3 {
	height: 36px;
	margin: 0 12px 12px 6px;
	background: #e8eef7;
	border: 1px solid #c3cdd8;
	border-top: 0 none;
	text-align: center;
}

/* ---- Login box ---- */
#login_box_main {
	text-align: center;
	margin: 48px auto 45px;
}

.login_box_title {
	display: none;
}

.login_box_sub {
	width: 420px;
	height: auto;
	border: 1px solid #d6dbe0;
	border-radius: 10px;
	text-align: left;
	margin: 0 auto;
	background: #fff;
	overflow: hidden;
	box-shadow: 0 4px 18px rgba(0,0,0,0.10);
}

.login_box_sub .login_left {
	background: linear-gradient(135deg, #3B59A0, #4a6fc0);
	float: none;
	position: static;
	width: 100%;
	margin: 0;
	padding: 28px 28px 20px;
	color: #fff;
	overflow: hidden;
}

.login_box_sub .login_left .login_title {
	font-family: "Arial", "Helvetica", sans-serif;
	color: #fff;
	font-size: 22pt;
	font-weight: bold;
	display: block;
	margin-bottom: 6px;
}

.login_box_sub .login_left p {
	color: rgba(255,255,255,0.85);
	font-size: 13px;
	margin: 4px 0 0;
	line-height: 1.5;
}

.login_box_sub #login_error_message {
	color: #ffd8d8;
	font-size: 12px;
	margin-top: 8px;
}

.login_box_sub .login_right {
	float: none;
	position: static;
	width: 100%;
	height: auto;
	margin: 0;
	padding: 24px 28px 28px;
	background: #fff;
	border: none;
	overflow: visible;
}

.login_box_sub .login_right table { width: 100%; }
.login_box_sub .login_right td { padding: 0; border: none; }
.login_box_sub .login_right p { margin: 0 0 14px; }

.login_box_sub .login_right .input-form-text-field {
	width: 100%;
	height: 38px;
	margin-top: 4px;
}

.login_box_sub .login_right input.button {
	width: 100%;
	padding: 10px;
	font-size: 14px;
	margin-top: 6px;
	border-radius: 5px;
}

/* ---- Schedule page ---- */
.schedule_container {
	width: 100%;
	border: 0 none;
	border-collapse: collapse;
	margin-bottom: 5px;
	position: relative;
	height: 20px;
}
.schedule_title {
	border: 1px solid #c3ccd4;
	height: 20px;
	overflow: hidden;
	background: #e8eef7;
	color: #2d4580;
	text-align: center;
	font: bold 11px arial, helvetica;
}
.schedule_item {
	border: 1px solid #d6dbe0;
	height: 125px;
	background-color: white;
}
.schedule_date { text-align: right; height: 20px; padding-right: 3px; }
.schedule_days_in_month { background-color: #DDE6F2; color: #444444; }
.schedule_days_not_in_month { color: #aaa; background-color: #e8eef7; }
.schedule_content {
	position: relative;
	width: 121px;
	height: 105px;
	white-space: nowrap;
	padding: 1px;
	overflow: hidden;
}
.schedule_content_today { background-color: #ffffcc; }
.schedule_show_all {
	position: absolute;
	width: 260px;
	border: 1px solid #c3ccd4;
	border-radius: 4px;
	z-index: 100000;
	white-space: nowrap;
	display: none;
	background: white;
	overflow: hidden;
	box-shadow: 0 2px 8px rgba(0,0,0,0.12);
}
.schedule_show_all_mc { padding: 8px; }
.schedule_show_all_hd { width: 100%; height: 22px; background-color: #e8eef7; }
.schedule_show_all .aw-dlg-close { right: 1px; top: 1px; }
input.schedule_botton { font-size: 11px; }

/* ---- Report labels ---- */
.report_label {
	float: left;
	font-size: 9px;
	font-family: verdana, arial, sans-serif;
	padding: 0 5px;
	height: 1.7em;
	margin: 1px;
	cursor: pointer;
}
