/* M54 / QR — bijela + plava, Geist Mono */
:root{
	--bs-font-sans-serif:"Geist Mono",monospace;
	--bs-font-monospace:"Geist Mono",monospace;
	--bs-body-font-size:.9375rem;
	--bs-body-bg:#fafcff;
	--bs-body-color:#23334c;
	--bs-primary:#2563eb;
	--bs-primary-rgb:37,99,235;
	--bs-link-color:#2563eb;
	--bs-link-color-rgb:37,99,235;
	--bs-link-hover-color:#1d4ed8;
	--bs-link-hover-color-rgb:29,78,216;
	--bs-border-color:#e2eaf6;
	--bs-secondary-color:#63728b;
	--bs-emphasis-color:#23334c;
	--bs-tertiary-bg:#f4f8ff;
	--qr-soft:#eef4ff;
}
body{font-family:var(--bs-font-sans-serif)}
.app-shell{max-width:1120px}
.brand-mark,.icon-tile{display:inline-flex;align-items:center;justify-content:center;color:var(--bs-primary);background:var(--qr-soft);border-radius:.875rem}
.brand-mark{width:42px;height:42px;font-size:1.2rem;flex-shrink:0}
.icon-tile{width:76px;height:76px;font-size:2.25rem}
.tool-link{color:var(--bs-primary)}
.tool-card{
	background-color:#fff;
	border:1px solid var(--bs-border-color)!important;
	border-radius:1rem;
	box-shadow:0 5px 18px rgba(37,99,235,.035)!important;
	transition:box-shadow .18s ease,transform .18s ease,border-color .18s ease;
}
.tool-card:hover{transform:translateY(-3px);border-color:#b7cef9!important;box-shadow:0 12px 30px rgba(37,99,235,.08)!important}
.tool-link:focus-visible{outline:3px solid #8ab3ff;outline-offset:8px;border-radius:.5rem}
h2{font-weight:700}
.text-secondary{color:#63728b!important}
.text-body-emphasis{color:#23334c!important}
code,kbd,pre,samp{font-family:var(--bs-font-monospace)}

/* Gumbi i obrasci */
.btn{padding:.65rem 1rem}
.btn-sm{padding:.4rem .75rem}
.btn,.form-control,.input-group-text{border-radius:.5rem}
.btn-primary{
	--bs-btn-bg:#2563eb;
	--bs-btn-border-color:#2563eb;
	--bs-btn-hover-bg:#1d4ed8;
	--bs-btn-hover-border-color:#1d4ed8;
	--bs-btn-active-bg:#1e40af;
	--bs-btn-active-border-color:#1e40af;
	--bs-btn-disabled-bg:#2563eb;
	--bs-btn-disabled-border-color:#2563eb;
	--bs-btn-focus-shadow-rgb:37,99,235;
}
.btn-outline-primary{
	--bs-btn-color:#2563eb;
	--bs-btn-border-color:#2563eb;
	--bs-btn-hover-bg:#2563eb;
	--bs-btn-hover-border-color:#2563eb;
	--bs-btn-active-bg:#1d4ed8;
	--bs-btn-active-border-color:#1d4ed8;
	--bs-btn-disabled-color:#2563eb;
	--bs-btn-disabled-border-color:#2563eb;
	--bs-btn-focus-shadow-rgb:37,99,235;
}
.form-control{padding:.7rem .85rem;background-color:#fff;border-color:var(--bs-border-color)}
.form-control:focus{background-color:#fff;border-color:#8ab3ff;box-shadow:0 0 0 .25rem rgba(37,99,235,.12)}
.input-group-text{background:var(--qr-soft);color:var(--bs-body-color);border-color:var(--bs-border-color)}

/* QR skener */
#qr-canvas{display:none}
#v{width:320px;max-width:100%;height:240px}
#outdiv{border:1px solid var(--bs-border-color)}
#qr-reader{
	overflow:hidden;
	background:#fff;
	border:1px solid var(--bs-border-color)!important;
	border-radius:1rem;
	box-shadow:0 5px 18px rgba(37,99,235,.035);
	padding:1rem!important;
}
#qr-reader button,#qr-reader select,#qr-reader input{font:inherit;max-width:100%}
#qr-reader button{padding:.6rem .85rem;background:var(--qr-soft);color:var(--bs-primary);border:1px solid #d7e5ff;border-radius:.5rem}
#qr-reader button:hover{background:#e0ebff}
#qr-reader a{color:var(--bs-primary)}
#qr-reader video{max-width:100%}
#result{min-height:84px;overflow-wrap:anywhere;caret-color:transparent!important;background:#f4f8ff;opacity:1;resize:vertical}
.breakw,.alert a{overflow-wrap:anywhere;min-width:0}

/* Navigacija i poruke */
.breadcrumb{
	font-size:.875rem;
	--bs-breadcrumb-divider:'›';
	margin-bottom:2rem;
	border:1px solid var(--bs-border-color);
	box-shadow:0 3px 12px rgba(37,99,235,.025)!important;
}
.breadcrumb a{color:#63728b!important}
.alert-primary{
	--bs-alert-bg:#eef4ff;
	--bs-alert-border-color:#d7e5ff;
	--bs-alert-color:#23334c;
	--bs-alert-link-color:#1d4ed8;
}
.alert{border-radius:1rem}

@media(prefers-reduced-motion:reduce){
	.tool-card{transition:none}
	.tool-card:hover{transform:none}
}