:root {
	--primary: #174a60;
	--primary-light: #247ba0;
	--dark: #221a15;
	--dark-border: #48362c;
	--bg: #f6f4f1;
	--panel: #e6eeee;
	--text: #222;
	--muted: #666;
	--lent: #b35c00;
	--danger: #b3261e;
	--radius: 7px;
}

*			{ box-sizing:border-box; }
html		{ font-family:"Liberation Sans", Helvetica, Arial, sans-serif; font-size:16px; color:var(--text); }
body		{ margin:0; background:var(--bg); line-height:1.4; }
img			{ max-width:100%; display:block; }
a			{ color:var(--primary); }
h1			{ font-size:1.6rem; margin:0 0 1rem; }
h2			{ font-size:1.25rem; margin:1.5rem 0 0.75rem; }
h3			{ font-size:1.05rem; margin:0 0 0.75rem; }
small		{ color:var(--muted); }
.form-row small	{ display:block; margin-top:0.2rem; }
[hidden]	{ display:none !important; }

/* === header === */
header				{ background:var(--dark); border-bottom:5px solid var(--dark-border); padding:0.5rem max(1rem, calc((100% - 1300px) / 2 + 1rem)); display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:0.5rem; }
header .logo		{ color:#fff; font-size:1.8rem; font-weight:700; text-decoration:none; letter-spacing:0.05em; }
header nav			{ display:flex; flex-wrap:wrap; align-items:center; gap:0.25rem; }
header nav a,
header nav button.link	{ color:#fff; padding:0.4rem 0.6rem; text-decoration:none; border-radius:var(--radius); }
header nav a:hover,
header nav button.link:hover	{ text-decoration:underline; }
header nav a.active	{ background:var(--dark-border); }

main		{ padding:1.25rem 1rem 3rem; max-width:1300px; margin:0 auto; }

/* === messages === */
.message		{ padding:0.6rem 1rem; margin-bottom:1px; }
.message.info	{ background:#ece288; }
.message.error	{ background:#fa9999; }
.message.check	{ background:#97ec8d; }

/* === buttons === */
button,
a.button		{ display:inline-block; background:var(--primary); color:#fff; padding:0.55rem 1rem; border:0; border-radius:var(--radius); font:inherit; cursor:pointer; text-decoration:none; line-height:1.2; }
button:hover,
a.button:hover	{ background:var(--primary-light); }
button.secondary,
a.button.secondary	{ background:#fff; color:var(--primary); box-shadow:inset 0 0 0 2px var(--primary); }
button.danger	{ background:var(--danger); }
button.small,
a.button.small	{ padding:0.3rem 0.6rem; font-size:0.9rem; }
button.link		{ background:none; padding:0; font:inherit; }
form.inline		{ display:inline; }
.button-row		{ display:flex; flex-wrap:wrap; align-items:center; gap:0.75rem; margin:1rem 0; }
.backlink		{ margin:0 0 1rem; }
form[data-confirm]	{ margin-top:2rem; }

/* === forms === */
.form			{ background:var(--panel); border-radius:var(--radius); padding:1rem; }
.form.narrow	{ max-width:480px; }
.form-row		{ margin-bottom:0.9rem; }
.form-row > label,
fieldset legend	{ display:block; margin-bottom:0.25rem; font-weight:600; }
input[type=text], input[type=email], input[type=password], input[type=search], input[type=number],
select, textarea	{ width:100%; font:inherit; padding:0.45rem 0.6rem; border:1px solid #aaa; border-radius:4px; background:#fff; }
input.short		{ max-width:6rem; }
fieldset		{ border:1px solid #bcd; border-radius:var(--radius); padding:0.75rem; margin:0 0 0.9rem; }
.error			{ display:block; color:var(--danger); font-size:0.9rem; margin-top:0.2rem; }
label.check,
span.check		{ display:flex; gap:0.4rem; align-items:center; font-weight:normal; margin:0.15rem 0; }
.range			{ display:flex; gap:0.4rem; align-items:center; }
.inline-form	{ display:flex; flex-wrap:wrap; gap:0.75rem; align-items:flex-end; margin-top:1rem; }
.inline-form .form-row	{ margin:0; flex:1 1 200px; }
.option-row		{ display:flex; gap:0.5rem; align-items:center; }
.hint			{ color:var(--muted); }

.item-form		{ display:grid; grid-template-columns:1fr 1fr; gap:0 2rem; }
.item-form .button-row	{ grid-column:1 / -1; }
.photo-edit		{ display:grid; grid-template-columns:repeat(auto-fill, minmax(110px, 1fr)); gap:0.5rem; }
.photo-edit img	{ border-radius:4px; }

/* === catalog === */
.category-tabs			{ display:flex; flex-wrap:wrap; gap:0.4rem; margin-bottom:1rem; }
.category-tabs a		{ padding:0.4rem 0.9rem; border-radius:999px; background:#fff; box-shadow:inset 0 0 0 1px #ccc; text-decoration:none; color:var(--text); }
.category-tabs a.active	{ background:var(--primary); color:#fff; box-shadow:none; }

.catalog				{ display:grid; grid-template-columns:260px 1fr; gap:1.5rem; align-items:start; }
.filters summary		{ cursor:pointer; font-weight:600; padding:0.5rem 0; }
.filters .form			{ padding:0.9rem; }
.results .count			{ display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center; gap:0.5rem; margin:0 0 0.75rem; color:var(--muted); }
.empty					{ background:#fff; padding:1rem; border-radius:var(--radius); }

.tiles					{ display:grid; grid-template-columns:repeat(auto-fill, minmax(190px, 1fr)); gap:0.9rem; }
.tile					{ background:#fff; border-radius:var(--radius); overflow:hidden; box-shadow:0 0 3px #aaa; text-decoration:none; color:var(--text); display:flex; flex-direction:column; transition:box-shadow 0.1s; }
.tile:hover				{ box-shadow:0 0 8px #777; }
.tile .img				{ position:relative; aspect-ratio:1; background:#eee; display:block; }
.tile .img img			{ width:100%; height:100%; object-fit:cover; }
.tile .info				{ padding:0.6rem 0.7rem 0.7rem; display:flex; flex-direction:column; gap:0.2rem; }
.tile .category			{ font-size:0.85rem; color:var(--muted); }
.tile .values			{ font-size:0.9rem; }
.tile .location			{ font-size:0.85rem; color:var(--muted); }
.location.lent			{ color:var(--lent); }
.no-photo				{ display:flex; align-items:center; justify-content:center; width:100%; height:100%; min-height:150px; color:#999; background:#eee; border-radius:var(--radius); }

.badge					{ display:inline-block; padding:0.15rem 0.5rem; border-radius:999px; font-size:0.8rem; background:#ddd; }
.tile .badge			{ position:absolute; top:0.4rem; left:0.4rem; }
.badge.status-lend		{ background:#cfe8f3; }
.badge.status-give		{ background:#f5d073; }
.badge.status-archived	{ background:#bbb; }

/* === item detail === */
.item-detail			{ display:grid; grid-template-columns:minmax(0, 1fr) minmax(0, 1fr); gap:2rem; }
.gallery				{ display:grid; grid-template-columns:repeat(4, 1fr); gap:0.5rem; align-content:start; }
.gallery a				{ display:block; }
.gallery a img			{ border-radius:4px; aspect-ratio:1; object-fit:cover; width:100%; }
.gallery a.main			{ grid-column:1 / -1; }
.gallery a.main img		{ aspect-ratio:auto; max-height:70vh; object-fit:contain; background:#fff; }
.item-detail h1			{ margin-bottom:0.4rem; }
dl.params				{ display:grid; grid-template-columns:auto 1fr; gap:0.3rem 1rem; margin:1rem 0; }
dl.params dt			{ color:var(--muted); }
dl.params dd			{ margin:0; }
.description			{ white-space:pre-line; }
.meta					{ font-size:0.85rem; color:var(--muted); }
.move-form				{ margin-top:1.5rem; }
.move-form h2			{ margin-top:0; }
.history				{ list-style:none; padding:0; margin:0; }
.history li				{ padding:0.5rem 0; border-bottom:1px solid #ddd; }
.history .date			{ display:inline-block; min-width:8.5rem; color:var(--muted); font-size:0.9rem; }

/* === admin === */
.admin-nav				{ display:flex; flex-wrap:wrap; gap:0.4rem; margin-bottom:1.25rem; border-bottom:2px solid #ccc; }
.admin-nav a			{ padding:0.5rem 0.9rem; text-decoration:none; color:var(--text); }
.admin-nav a.active		{ border-bottom:3px solid var(--primary); margin-bottom:-2px; font-weight:600; }
.table					{ width:100%; border-collapse:collapse; background:#fff; border-radius:var(--radius); overflow:hidden; }
.table th, .table td	{ text-align:left; padding:0.5rem 0.75rem; border-bottom:1px solid #e3e3e3; vertical-align:middle; }
.table th				{ background:#eee; font-weight:600; }
.table form[data-confirm]	{ margin:0; }
.row-form				{ display:flex; flex-wrap:wrap; gap:0.4rem; }
.row-form input			{ flex:1 1 160px; }
.parameter-form			{ max-width:480px; margin-top:1rem; }

/* === mobile === */
@media (max-width: 700px) {
	.catalog, .item-detail, .item-form	{ grid-template-columns:1fr; }
	.tiles					{ grid-template-columns:repeat(2, 1fr); gap:0.6rem; }
	.table					{ display:block; overflow-x:auto; }
	header .logo			{ font-size:1.4rem; }
}
