/* lucy_base.css — Shared styles for all LUCY admin interfaces (CMS, Admin, Monitor). */

body {
	font-family:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
	background:url(/images/layout/cms_background.png) repeat-x left top;
	margin:0;
}

*, *::before, *::after { box-sizing:border-box; }

/* Wrapper */
.lucy-wrapper {
	max-width:950px;
	margin:0 auto;
	padding:0;
}

/* Typography */
h1, h2, h3, h4 { font-weight:500; line-height:1.2; }
h1 { margin-top:0; font-size:26px; }
h2 { font-size:20px; color:#c0392b; }
h3 { font-size:17px; }
h4 { font-size:18px; }

/* ---- Lucy Header ---- */
.lucy-header {
	background-image:linear-gradient(#2c3e50, #34495e);
	border-left:1px solid #404145;
	border-right:1px solid #404145;
	min-height:46px;
}

.lucy-header-inner {
	display:flex;
	align-items:center;
	justify-content:space-between;
	padding:0 20px;
}

.lucy-brand {
	color:#fff;
	font-size:20px;
	font-weight:700;
	letter-spacing:-0.5px;
	padding:10px 0;
	white-space:nowrap;
}

.lucy-version {
	font-size:11px;
	font-weight:400;
	color:#a0aec0;
}

.lucy-nav {
	display:flex;
	align-items:center;
}

.lucy-nav a {
	color:#fff;
	text-decoration:none;
	padding:12px 16px;
	font-size:14px;
	line-height:1.4;
}

.lucy-nav a:hover {
	background-color:#c0392b;
}

.lucy-nav a.active {
	background:rgba(255, 255, 255, 0.12);
	font-weight:700;
}

@media (max-width:479px) {
	.lucy-brand { font-size:16px; }
	.lucy-nav a { padding:12px 10px; font-size:13px; }
}

/* ---- Lucy Accent ---- */
.lucy-accent {
	height:3px;
	background:linear-gradient(to right, #991b1b, #dc2626, #991b1b);
}

/* ---- Lucy Content ---- */
.lucy-content {
	padding:30px;
	min-height:300px;
	background-color:#fff;
	border-left:1px solid #404145;
	border-right:1px solid #404145;
	position:relative;
	overflow:hidden;
}

@media (max-width:767px) {
	.lucy-content { padding:30px 20px; }
}

.lucy-content a {
	color:#2c3e50;
	text-decoration:underline;
}
.lucy-content a:hover {
	color:#c0392b;
}
.lucy-content a.btn {
	text-decoration:none;
}
.lucy-content a.btn-default { color:#333; }
.lucy-content a.btn-default:hover { color:#333; }
.lucy-content a.btn-primary { color:#fff; }
.lucy-content a.btn-primary:hover { color:#fff; }
.lucy-content a.btn-secondary { color:#fff; }
.lucy-content a.btn-secondary:hover { color:#fff; }
.lucy-content a.btn-danger { color:#fff; }
.lucy-content a.btn-danger:hover { color:#fff; }

/* ---- Lucy Footer ---- */
.lucy-footer {
	position:relative;
	padding:10px 20px;
	background-image:linear-gradient(#34495e, #2c3e50);
	color:#a0aec0;
	font-size:12px;
	border-bottom-left-radius:10px;
	border-bottom-right-radius:10px;
	margin-bottom:30px;
	min-height:40px;
}

.lucy-footer-inner {
	display:flex;
	align-items:center;
}

.lucy-footer-text {
	flex:1;
}

.lucy-footer a {
	color:#a0aec0;
	text-decoration:none;
}
.lucy-footer a:hover {
	color:#fff;
}

.lucy-sep {
	color:#64748b;
	margin:0 6px;
}

.lucy-footer-logo {
	margin-left:16px;
}

.lucy-footer-logo img {
	height:32px;
	width:auto;
	opacity:0.8;
}

@media (max-width:767px) {
	.lucy-footer-inner {
		flex-direction:column;
		text-align:center;
	}
	.lucy-footer-logo {
		margin-left:0;
		margin-top:8px;
	}
}

/* ---- Forms ---- */
.form-group {
	margin-bottom:12px;
}

.form-group label {
	display:block;
	font-weight:600;
	margin-bottom:4px;
	font-size:14px;
}

.form-control {
	display:block;
	width:100%;
	padding:6px 10px;
	font-size:14px;
	border:1px solid #ccc;
	border-radius:4px;
	background:#fff;
	box-sizing:border-box;
}

.form-control:focus {
	outline:none;
	border-color:#2c3e50;
	box-shadow:0 0 0 2px rgba(44, 62, 80, 0.15);
}

.input-sm {
	padding:4px 8px;
	font-size:12px;
}

/* ---- Buttons ---- */
.btn {
	display:inline-block;
	padding:6px 12px;
	font-size:14px;
	font-weight:600;
	text-align:center;
	border-radius:4px;
	border:1px solid transparent;
	cursor:pointer;
	text-decoration:none;
	line-height:1.5;
}

.btn-default {
	color:#333;
	background-color:#fff;
	border-color:#ccc;
}
.btn-default:hover {
	background-color:#e6e6e6;
	border-color:#adadad;
}

.btn-primary {
	background-color:#2c3e50;
	border-color:#2c3e50;
	color:#fff;
}
.btn-primary:hover {
	background-color:#34495e;
	border-color:#34495e;
	color:#fff;
}

.btn-secondary {
	background-color:#2c3e50;
	border-color:#2c3e50;
	color:#fff;
}
.btn-secondary:hover {
	background-color:#34495e;
	border-color:#34495e;
	color:#fff;
}

.btn-danger {
	background-color:#c0392b;
	border-color:#a93226;
	color:#fff;
}
.btn-danger:hover {
	background-color:#e74c3c;
	border-color:#c0392b;
	color:#fff;
}

.btn-sm {
	padding:3px 8px;
	font-size:12px;
}

.btn-xs {
	padding:1px 5px;
	font-size:12px;
	line-height:1.5;
	border-radius:3px;
}

.btn-group {
	display:flex;
	gap:6px;
	margin-top:12px;
	flex-wrap:wrap;
}

.btn-file {
	position:relative;
	overflow:hidden;
}

/* ---- Login form ---- */
form#login, form#totp {
	max-width:400px;
	margin:20px auto 40px;
	padding:32px;
	border:1px solid #d5cec0;
	border-radius:4px;
	background:#fff;
}
form#login label, form#totp label {
	display:block; font-weight:600; font-size:14px;
	color:#444; margin-bottom:6px; margin-top:16px;
}
form#login label:first-of-type, form#totp label:first-of-type { margin-top:0; }
form#login .form-control, form#totp .form-control {
	padding:10px 12px; font-size:15px; line-height:1.5;
	border:1px solid #ccc; border-radius:4px;
}
form#login .form-control:focus, form#totp .form-control:focus {
	border-color:#2c3e50;
	box-shadow:0 0 0 2px rgba(44, 62, 80, 0.15);
}
.login-logo { text-align:center; margin-bottom:12px; }
/* Harden against tenant content CSS: a tenant's global `img { float; border; … }`
   (e.g. imara) must not float or box the login logo. Higher specificity than a
   bare `img` rule, so the login chrome stays centered regardless of theme. */
.login-logo img { display:inline-block; float:none; border:0; padding:0; margin:0; }
.login-subtitle { text-align:center; font-size:15px; color:#888; margin:0 0 24px; letter-spacing:normal; }
.login-actions { margin-top:24px; }
.btn-login {
	display:block; width:100%; padding:12px 20px; font-size:15px; font-weight:600;
	background:#2c3e50; color:#fff; border:1px solid #1a252f;
	border-radius:4px; cursor:pointer; transition:background 0.15s ease;
}
.btn-login:hover { background:#1a252f; }
.login-cancel {
	display:block; text-align:center; margin-top:12px;
	font-size:13px; color:#888; text-decoration:none;
}
.login-cancel:hover { color:#444; text-decoration:underline; }

/* ---- Tables ---- */
.table {
	width:100%;
	border-collapse:collapse;
	margin-bottom:16px;
}

.table th,
.table td {
	padding:8px 12px;
	text-align:left;
	border-bottom:1px solid #dee2e6;
}

.table th {
	font-weight:600;
	background:#f8f9fa;
	border-bottom:2px solid #dee2e6;
}

.table-striped tbody tr:nth-child(even) {
	background:#f8f9fa;
}

.table-condensed th,
.table-condensed td {
	padding:5px 8px;
	font-size:14px;
}

.table-sm th,
.table-sm td {
	padding:5px 8px;
	font-size:13px;
}

.add-row td {
	background:#fff;
}

/* ---- Panels (BS3 compat) ---- */
.panel {
	border:1px solid #ddd;
	border-radius:4px;
	margin-bottom:12px;
	background:#fff;
}
.panel-heading {
	padding:10px 15px;
	font-weight:600;
	font-size:15px;
	background:#f5f5f5;
	border-bottom:1px solid #ddd;
	border-radius:4px 4px 0 0;
}
.panel-body {
	padding:15px;
	margin:0;
	list-style:none;
}
.panel-body li {
	display:inline-block;
	margin-right:16px;
	margin-top:8px;
	margin-bottom:8px;
}
.panel-body li a {
	text-decoration:none;
	text-align:center;
}

/* ---- Cards ---- */
.card {
	border:1px solid #dee2e6;
	border-radius:4px;
	margin-bottom:20px;
	background:#fff;
}

.card-header {
	padding:10px 16px;
	font-weight:600;
	font-size:15px;
	background:#f5f5f5;
	border-bottom:1px solid #dee2e6;
	border-radius:4px 4px 0 0;
}

.card-title {
	margin:0;
	font-size:16px;
}

.card-body {
	padding:16px;
}

/* ---- Alerts ---- */
.alert {
	padding:12px 16px;
	border-radius:4px;
	margin-bottom:16px;
}
.alert-danger {
	background:#fdf2f2;
	border:1px solid #f5c6cb;
	color:#721c24;
}
.alert-info {
	background:#e8f4fd;
	border:1px solid #bee5eb;
	color:#0c5460;
}
.alert-warning {
	background:#fff3cd;
	border:1px solid #ffc107;
	color:#856404;
}
.alert p, .alert div {
	margin:4px 0;
}

/* ---- Pagination ---- */
ul.pagination {
	margin-top:15px;
	margin-bottom:0;
	list-style:none;
	padding:0;
	display:flex;
	gap:2px;
}
ul.pagination li a,
ul.pagination li span {
	display:inline-block;
	padding:4px 10px;
	border:1px solid #ddd;
	border-radius:3px;
	font-size:13px;
	text-decoration:none;
	color:#2c3e50;
}
ul.pagination li.active span {
	background:#2c3e50;
	color:#fff;
	border-color:#2c3e50;
}

/* ---- Well (BS3 compat) ---- */
.well {
	padding:12px 16px;
	background:#f5f5f5;
	border:1px solid #e3e3e3;
	border-radius:4px;
	margin-bottom:12px;
}

/* ---- Grid (BS3 col-xs-12, col-sm-3/4/6/8) ---- */
.row { display:flex; flex-wrap:wrap; margin-left:-10px; margin-right:-10px; }
.col-xs-12 { width:100%; padding:0 10px; margin-bottom:8px; }
.col-sm-3 { width:100%; padding:0 10px; }
.col-sm-4 { width:100%; padding:0 10px; }
.col-sm-6 { width:100%; padding:0 10px; }
.col-sm-8 { width:100%; padding:0 10px; }
@media (min-width:768px) {
	.col-sm-3 { width:25%; }
	.col-sm-4 { width:33.333%; }
	.col-sm-6 { width:50%; }
	.col-sm-8 { width:66.667%; }
}

/* ---- Utilities ---- */
.text-success { color:#27ae60; }
.text-right { text-align:right; }
.bg-light { background:#f8f9fa; }

.help-block {
	font-size:12px;
	color:#888;
	margin-top:4px;
}

.info {
	background:#e8f4fd;
}
