/* Universal styling hooks for the Room Visualiser UI. */
:root{
	--nrv-primary:#3a6b3a;
	--nrv-primary-hover:#2f572f;
	--nrv-accent:#b9b4ab;
	--nrv-panel-bg:#ffffff;
	--nrv-text:#1a1a18;
	--nrv-muted:#555555;
	--nrv-error:#aa3333;
	--nrv-radius:6px;
	--nrv-radius-sm:4px;
	--nrv-backdrop:rgba(20,20,18,.7);
	--nrv-primary-soft:rgba(58,107,58,.12);
	--nrv-shadow:0 20px 60px rgba(0,0,0,.3);
}

.nrv-open-button{display:inline-flex;align-items:center;gap:.5em;margin:.75rem 0 1rem;padding:.7em 1.2em;background:transparent;border:1px solid var(--nrv-primary);border-radius:var(--nrv-radius-sm);color:var(--nrv-primary);font:inherit;font-size:.95rem;cursor:pointer;transition:background-color .2s ease,color .2s ease,border-color .2s ease}
.nrv-open-button:hover{background:var(--nrv-primary);color:#fff}
.nrv-open-button--floating{position:fixed;bottom:1.25rem;right:1.25rem;z-index:9999;margin:0;background:var(--nrv-primary);color:#fff;border-color:var(--nrv-primary);border-radius:999px;padding:.8em 1.4em;box-shadow:0 6px 20px rgba(0,0,0,.25)}
.nrv-open-button--floating:hover{background:var(--nrv-primary-hover);border-color:var(--nrv-primary-hover);color:#fff}
.nrv-modal{position:fixed;inset:0;z-index:99999;display:flex;align-items:center;justify-content:center;padding:1rem}
.nrv-modal[hidden]{display:none}
body.nrv-modal-open{overflow:hidden}
.nrv-modal__backdrop{position:absolute;inset:0;background:var(--nrv-backdrop)}
.nrv-modal__panel{position:relative;width:100%;max-width:560px;max-height:90vh;overflow-y:auto;background:var(--nrv-panel-bg);color:var(--nrv-text);border-radius:var(--nrv-radius);padding:1.5rem;box-shadow:var(--nrv-shadow)}
.nrv-modal__close{position:absolute;top:.5rem;right:.75rem;background:none;border:none;font-size:1.8rem;line-height:1;cursor:pointer;color:var(--nrv-muted);padding:.25rem}
.nrv-modal__title{margin:0 0 1rem;font-size:1.3rem;color:var(--nrv-text)}
.nrv-step__hint{color:var(--nrv-muted);font-size:.92rem;margin:0 0 1.25rem}
.nrv-choices{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}
.nrv-choice{display:flex;flex-direction:column;align-items:center;gap:.5rem;padding:1.5rem 1rem;border:1px dashed var(--nrv-accent);border-radius:var(--nrv-radius);cursor:pointer;text-align:center;font-size:.92rem;color:var(--nrv-text);transition:border-color .2s ease,background-color .2s ease}
.nrv-choice:hover{border-color:var(--nrv-primary);background:var(--nrv-primary-soft)}
.nrv-choice__icon{color:var(--nrv-primary)}
.nrv-preview,.nrv-result{width:100%;border-radius:var(--nrv-radius-sm);display:block}
.nrv-result{position:relative;overflow:hidden}
.nrv-result img{width:100%;display:block;border-radius:var(--nrv-radius-sm)}
.nrv-result__original{position:absolute;inset:0;opacity:0;pointer-events:none;transition:opacity .15s ease}
.nrv-result__original.is-visible{opacity:1}
.nrv-actions{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1rem}
.nrv-actions--paired{gap:.75rem}
.nrv-btn{flex:1 1 auto;display:inline-flex;align-items:center;justify-content:center;padding:.7em 1em;background:var(--nrv-primary);color:#fff;border:1px solid var(--nrv-primary);border-radius:var(--nrv-radius-sm);font:inherit;font-size:.92rem;cursor:pointer;text-decoration:none;text-align:center;transition:background-color .2s ease,border-color .2s ease,color .2s ease}
.nrv-btn:hover{background:var(--nrv-primary-hover);border-color:var(--nrv-primary-hover);color:#fff}
.nrv-btn--ghost{background:transparent;color:var(--nrv-text);border-color:var(--nrv-accent)}
.nrv-btn--ghost:hover{background:var(--nrv-primary-soft);border-color:var(--nrv-primary);color:var(--nrv-primary)}
.nrv-loading{text-align:center;padding:2.5rem 1rem}
.nrv-spinner{width:42px;height:42px;margin:0 auto 1rem;border:3px solid var(--nrv-primary-soft);border-top-color:var(--nrv-primary);border-radius:50%;animation:nrv-spin .9s linear infinite}
@keyframes nrv-spin{to{transform:rotate(360deg)}}
.nrv-disclaimer{margin-top:1rem;font-size:.8rem;color:var(--nrv-muted);line-height:1.5}
.nrv-error{color:var(--nrv-error);font-size:.95rem}
.nrv-design-picker{margin-top:.85rem;padding:.85rem;border:1px solid var(--nrv-accent);border-radius:var(--nrv-radius-sm);background:var(--nrv-panel-bg)}
.nrv-design-picker[hidden]{display:none}
.nrv-design-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem}
.nrv-design-card{display:flex;align-items:center;gap:.55rem;width:100%;padding:.5rem;background:var(--nrv-panel-bg);border:1px solid var(--nrv-accent);border-radius:var(--nrv-radius-sm);color:var(--nrv-text);font:inherit;font-size:.84rem;text-align:left;cursor:pointer}
.nrv-design-card:hover{border-color:var(--nrv-primary);box-shadow:0 8px 24px rgba(0,0,0,.08)}
.nrv-design-card__image{width:44px;height:44px;flex:0 0 44px;border-radius:var(--nrv-radius-sm);overflow:hidden;background:#eee}
.nrv-design-card__image img{width:100%;height:100%;object-fit:cover;display:block}

@media (max-width:640px){
	.nrv-modal{padding:.75rem}
	.nrv-modal__panel{padding:1.1rem}
	.nrv-choices,.nrv-design-grid{grid-template-columns:1fr}
}
