/* HAOS client portal — support.odoolibya.ly
   A separate stylesheet in a separate document root. It deliberately shares no
   file with the staff deck: the isolation is the filesystem, not a rule. */
:root{color-scheme:light;--bg:#F4F4F2;--surface:#FFFFFF;--text:#1A1A1A;
--text-2:#5E5E66;--line:rgba(0,0,0,.10);--accent:#4F46E5;--on-accent:#fff;
--ok:#127A3E;--ok-bg:rgba(18,122,62,.10);--warn:#8A5A00;--warn-bg:rgba(180,120,0,.12);
--info:#1E5FA8;--info-bg:rgba(30,95,168,.10);--muted-bg:rgba(94,94,102,.10);
--err:#B71C1C}
@media (prefers-color-scheme: dark){
  :root{color-scheme:dark;--bg:#0E0F12;--surface:#17181C;--text:#E8E8EA;
  --text-2:#A6A6AE;--line:rgba(255,255,255,.12);--accent:#8B90FF;--on-accent:#16171a;
  --ok:#5FD08A;--ok-bg:rgba(95,208,138,.12);--warn:#F0B65C;--warn-bg:rgba(240,182,92,.14);
  --info:#6FB4F0;--info-bg:rgba(111,180,240,.12);--muted-bg:rgba(166,166,174,.13);
  --err:#F87171}
}
*{box-sizing:border-box}
body{margin:0;font:15px/1.6 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;
background:var(--bg);color:var(--text)}
.wrap{max-width:820px;margin:0 auto;padding:24px 20px}
header{border-bottom:1px solid var(--line);background:var(--surface)}
header .wrap{display:flex;align-items:center;gap:12px;padding:14px 20px}
.brand{font-weight:700;letter-spacing:-.01em}
.who{margin-inline-start:auto;color:var(--text-2);font-size:13.5px;text-align:end}
h1{font-size:23px;font-weight:680;margin:0 0 4px}
.sub{color:var(--text-2);margin:0 0 20px;font-size:14px}
.card{background:var(--surface);border:1px solid var(--line);border-radius:14px;
padding:18px;margin:0 0 14px}
label{display:block;font-weight:620;font-size:13px;margin:0 0 6px}
input,textarea,select{width:100%;padding:12px;font:inherit;border:1px solid var(--line);
border-radius:10px;background:var(--bg);color:var(--text);min-height:46px}
textarea{min-height:110px;resize:vertical}
.fld{margin:0 0 14px}
.btn{padding:12px 18px;border-radius:10px;border:1px solid var(--line);
background:var(--surface);color:inherit;font:inherit;font-weight:640;cursor:pointer;
min-height:46px}
.btn.pri{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}
.btn:disabled{opacity:.5;cursor:default}
.actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px}
.err{border-inline-start:3px solid var(--err);padding:10px 13px;background:var(--muted-bg);
color:var(--err);border-radius:0 8px 8px 0;margin:0 0 14px;font-size:14px;font-weight:600}
.tk{border-top:1px solid var(--line);padding:14px 0;cursor:pointer;display:flex;
gap:12px;align-items:flex-start}
.tk:first-of-type{border-top:0}
.chip{display:inline-block;padding:3px 10px;border-radius:999px;font-size:12px;
font-weight:650;border:1px solid var(--line);color:var(--text-2);white-space:nowrap}
.chip.open{color:var(--info);background:var(--info-bg);border-color:transparent}
.chip.waiting{color:var(--warn);background:var(--warn-bg);border-color:transparent}
.chip.done{color:var(--ok);background:var(--ok-bg);border-color:transparent}
.ref{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;
color:var(--text-2)}
.ttl{font-weight:650;margin:0 0 3px}
.muted{color:var(--text-2);font-size:13px}
.msg{border:1px solid var(--line);border-radius:12px;padding:13px 15px;margin:0 0 10px}
.msg.mine{border-color:var(--accent);background:var(--muted-bg)}
.msg .who2{font-weight:650;font-size:13px;margin:0 0 5px;color:var(--text-2)}
.msg .bd{white-space:pre-wrap;word-break:break-word}
.empty{padding:40px 20px;text-align:center;color:var(--text-2)}
.login{max-width:400px;margin:8vh auto}
@media (max-width:520px){.wrap{padding:18px 14px}.actions .btn{flex:1 1 auto}}
