@import url('./icp-interface.css');
:root { --icp-accent:#196456; --icp-accent-soft:#e4f2ec; --icp-ink:#203932; --icp-muted:#63776e; --icp-border:#cbd9d2; --icp-surface:#fff; --icp-radius:8px; }
.icp-button,.icp-input,.icp-calendar button { font:inherit; }
.icp-button { display:inline-flex; align-items:center; justify-content:center; gap:.45rem; border:1px solid var(--icp-border); border-radius:var(--icp-radius); padding:.55rem .85rem; color:var(--icp-ink); background:var(--icp-surface); cursor:pointer; }
.icp-button:hover:enabled { background:var(--icp-accent-soft); }
.icp-theme-primary { background:var(--icp-accent); color:white; border-color:var(--icp-accent); }
.icp-theme-primary:hover:enabled { background:#124b40; }
.icp-theme-error { color:#ad3030; border-color:#e4acac; }
.icp-button[aria-pressed=true] { box-shadow:inset 0 0 0 2px var(--icp-accent); }
.icp-size-sm { font-size:.85rem; padding:.35rem .6rem; }.icp-size-lg { font-size:1.1rem; padding:.7rem 1rem; }
.icp-input { box-sizing:border-box; min-width:0; width:100%; border:1px solid var(--icp-border); border-radius:var(--icp-radius); padding:.55rem .7rem; background:var(--icp-surface); color:var(--icp-ink); }
.icp-input.invalid { border-color:#b32c3b; }
.icp-input-shell,.icp-select-shell { display:inline-flex; width:100%; align-items:center; position:relative; }
.icp-input-shell:has(.icp-clear) .icp-input { padding-right:2.4rem; }
.icp-select-shell { flex-direction:column; gap:.25rem; }
.icp-clear { position:absolute; right:4px; top:5px; border:0; background:transparent; font-size:1.3rem; color:var(--icp-muted); cursor:pointer; padding:.2rem .4rem; }
textarea.icp-input { min-height:6rem; resize:vertical; }
.icp-check { display:inline-flex; align-items:center; gap:.5rem; cursor:pointer; }.icp-check input { width:1.15rem; height:1.15rem; accent-color:var(--icp-accent); }
.icp-switch input { appearance:none; border-radius:20px; width:2.4rem; height:1.35rem; padding:0; background:#9facaa; border:0; position:relative; cursor:pointer; }
.icp-switch input:before { content:''; position:absolute; top:3px; left:3px; width:.98rem; height:.98rem; border-radius:50%; background:white; transition:transform .15s; }
.icp-switch input:checked { background:var(--icp-accent); }.icp-switch input:checked:before { transform:translateX(1.05rem); }
.icp-icon { width:1.2em; height:1.2em; flex-shrink:0; vertical-align:middle; }
.icp-combo { position:relative; }.icp-combo-popup { position:absolute; z-index:30; top:calc(100% + 4px); left:0; right:0; max-height:20rem; overflow:auto; padding:.35rem; border:1px solid var(--icp-border); border-radius:var(--icp-radius); background:white; box-shadow:0 10px 30px #163e2720; }
.icp-combo-popup ul { list-style:none; padding:0; margin:0; }.icp-combo-popup li { padding:.5rem; border-radius:4px; cursor:pointer; }.icp-combo-popup li:hover,.icp-combo-popup .icp-active { background:var(--icp-accent-soft); }.icp-combo-popup p { padding:.4rem; margin:0; color:var(--icp-muted); }
.icp-calendar { width:20rem; max-width:100%; border:1px solid var(--icp-border); border-radius:var(--icp-radius); padding:.65rem; background:white; }
.icp-calendar header { display:flex; justify-content:space-between; align-items:center; margin-bottom:.7rem; }.icp-calendar button { border:0; background:transparent; color:var(--icp-ink); padding:.5rem; cursor:pointer; border-radius:5px; }.icp-calendar button:hover:enabled { background:var(--icp-accent-soft); }
.icp-calendar-grid { display:grid; grid-template-columns:repeat(7,1fr); gap:2px; text-align:center; }.icp-calendar-heading { font-size:.75rem; padding:.5rem 0; color:var(--icp-muted); }.icp-calendar .icp-other-month { color:#8c9b95; }.icp-calendar .icp-selected { background:var(--icp-accent); color:white; }.icp-calendar [aria-current=date] { box-shadow:inset 0 0 0 1px var(--icp-accent); }
.icp-validation,.validation-message { color:var(--icp-danger,#a52336); font-size:.9rem; }
.icp-button:disabled,.icp-input:disabled,.icp-calendar button:disabled { opacity:.55; cursor:not-allowed; }
[class*=icp-]:focus-visible { outline:3px solid #b27817; outline-offset:2px; }
@media(prefers-reduced-motion:reduce) { .icp-switch input:before { transition:none; } }
