:root{--bg:#f6f7f9;--fg:#1b1f24;--muted:#5b6672;--card:#fff;--line:#dfe3e8;--accent:#0f5c4d;--danger:#a4262c}
@media (prefers-color-scheme:dark){:root{--bg:#14171a;--fg:#e8ebee;--muted:#9aa5b1;--card:#1d2226;--line:#2c343b;--accent:#3fb89e;--danger:#ff7b72}}
*{box-sizing:border-box}body{margin:0;font:16px/1.5 system-ui,sans-serif;background:var(--bg);color:var(--fg)}
header{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center;justify-content:space-between;padding:.75rem 1rem;background:var(--card);border-bottom:1px solid var(--line)}
main{max-width:56rem;margin:0 auto;padding:1rem}
.card{background:var(--card);border:1px solid var(--line);border-radius:.5rem;padding:1rem;margin-bottom:1rem}
label{display:block;margin:.75rem 0 .25rem;font-weight:600}input,select,button{font:inherit;padding:.5rem .75rem;border:1px solid var(--line);border-radius:.375rem;background:var(--card);color:var(--fg);max-width:100%}
input[type=text],input[type=email],input[type=password]{width:100%}
button{cursor:pointer;background:var(--accent);color:#fff;border-color:var(--accent)}button.link{background:none;color:var(--accent);border:none;padding:0}
.error{color:var(--danger);margin:.25rem 0}.muted{color:var(--muted)}code{word-break:break-all}
.sr-only{position:absolute;left:-9999px}
[hidden]{display:none!important}
/* Customer (lessee) portal: mobile first */
.lessee-header{display:flex;flex-wrap:wrap;gap:.5rem 1rem;align-items:center;justify-content:space-between;padding:.75rem 1rem;background:var(--card);border-bottom:1px solid var(--line)}
.lessee-main{max-width:40rem;margin:0 auto;padding:1rem}
.lessee-main input[type=text],.lessee-main input[type=email],.lessee-main input[type=password],.lessee-main input[type=tel],.lessee-main input[type=date],.lessee-main input[type=number],.lessee-main select,.lessee-main textarea{width:100%;font:inherit;padding:.65rem .75rem;border:1px solid var(--line);border-radius:.375rem;background:var(--card);color:var(--fg)}
.lessee-main button,.btn{min-height:2.75rem;padding:.6rem 1rem}
a.btn{display:inline-block;background:var(--accent);color:#fff;border-radius:.375rem;text-decoration:none}
.steps{display:flex;flex-wrap:wrap;gap:.25rem;padding:0;margin:0 0 1rem;list-style:none}
.steps button{background:var(--card);color:var(--fg);border-color:var(--line);min-height:2.25rem;padding:.25rem .6rem;font-size:.9rem}
.steps button[aria-current=step]{background:var(--accent);color:#fff;border-color:var(--accent)}
.badge{display:inline-block;padding:.1rem .6rem;border-radius:1rem;border:1px solid var(--line);font-size:.85rem}
.timeline{list-style:none;padding:0;margin:0}.timeline li{padding:.4rem 0 .4rem 1rem;border-left:3px solid var(--line)}
.notice{border-left:4px solid var(--accent);padding:.5rem .75rem;background:var(--card);margin:.75rem 0}
.sandbox{border:1px dashed var(--danger);padding:.5rem .75rem;margin:.75rem 0;color:var(--danger)}
.pkg{display:grid;gap:.25rem}.price{font-size:1.25rem;font-weight:700}
.table-scroll{overflow-x:auto}
