/* NOLIM Private Office. Same design language as nolimconcierge.com: obsidian, champagne gold, open ring. */
:root{
  color-scheme:dark light;
  --bg:#050506;--bg2:#0b0b0e;--card:#101014;--card2:#17171c;
  --fg:#f5f3ee;--muted:rgba(245,243,238,.66);--dim:rgba(245,243,238,.4);
  --line:rgba(255,255,255,.09);--line2:rgba(255,255,255,.17);
  --accent:#e4cb93;--goldrgb:217,184,119;--bluergb:98,124,255;
  --grad-gold:linear-gradient(120deg,#fbf0d4 0%,#e6cb92 30%,#b88f4a 62%,#f4e2b4 100%);
  --on-gold:#17120a;--glass:rgba(12,12,15,.66);--field:rgba(255,255,255,.045);
  --ok:#7ad3a0;--warn:#f0b46a;--bad:#ff8a7a;
  --sans:-apple-system,BlinkMacSystemFont,"SF Pro Display","SF Pro Text","Inter","Helvetica Neue",Arial,sans-serif;
  --serif:"Instrument Serif","Iowan Old Style","Times New Roman",serif;
  --ease:cubic-bezier(.22,1,.36,1);--pad:max(20px,env(safe-area-inset-left,0px));
}
@media(prefers-color-scheme:light){:root{
  --bg:#f6f3ec;--bg2:#fbfaf6;--card:#ffffff;--card2:#efe9dd;--fg:#15120e;--muted:rgba(21,18,14,.66);--dim:rgba(21,18,14,.42);
  --line:rgba(21,18,14,.1);--line2:rgba(21,18,14,.18);--accent:#86642a;--goldrgb:154,115,48;
  --grad-gold:linear-gradient(120deg,#b08638 0%,#7d5d22 52%,#bf984e 100%);--on-gold:#fffaf0;--glass:rgba(246,243,236,.74);--field:rgba(21,18,14,.04);
  --ok:#1f7a49;--warn:#9a5b10;--bad:#b3321f}}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--fg);font-family:var(--sans);font-size:17px;line-height:1.5;letter-spacing:-.011em;-webkit-font-smoothing:antialiased;overflow-x:hidden;min-height:100vh}
a{color:inherit;text-decoration:none}button{font:inherit;color:inherit}
h1,h2,h3,p,ul,ol{margin:0}ul,ol{padding:0;list-style:none}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:8px}
[hidden]{display:none!important}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.eyebrow{color:var(--accent);font-size:.78rem;font-weight:600;letter-spacing:.2em;text-transform:uppercase;margin-bottom:14px}
.serif,em{font-family:var(--serif);font-style:italic;font-weight:400}
.gold{background:var(--grad-gold);-webkit-background-clip:text;background-clip:text;color:transparent;padding-right:.05em}

/* logo: open ring O, point that never stops */
.logo-svg{display:block;overflow:visible;width:auto;height:22px;color:var(--fg)}
.logo-svg .lt{fill:none;stroke:currentColor;stroke-width:9;stroke-linecap:butt;stroke-linejoin:miter}
.logo-svg .lo{stroke:url(#gl2)}
.logo-svg .ld{fill:url(#gl2);filter:drop-shadow(0 0 4px rgba(var(--goldrgb),.9))}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5em;height:50px;padding:0 28px;border-radius:999px;border:0;cursor:pointer;font-size:1rem;font-weight:500;white-space:nowrap;transition:transform .5s var(--ease),box-shadow .5s var(--ease),background .3s,opacity .3s}
.btn-gold{background:var(--grad-gold);background-size:150% 100%;color:var(--on-gold);box-shadow:inset 0 0 0 1px rgba(255,255,255,.28),0 16px 44px -14px rgba(var(--goldrgb),.6)}
.btn-gold:hover:not(:disabled){transform:translateY(-2px);background-position:100% 0}
.btn-line{background:transparent;box-shadow:inset 0 0 0 1px var(--line2)}
.btn-line:hover{box-shadow:inset 0 0 0 1px var(--accent);color:var(--accent)}
.btn:disabled{opacity:.45;cursor:not-allowed}
.btn.sm{height:38px;padding:0 18px;font-size:.9rem}
.link{display:inline-flex;align-items:center;gap:.35em;color:var(--accent);font-weight:500;background:none;border:0;padding:0;cursor:pointer}
.link::after{content:"";width:.45em;height:.45em;border-right:1.6px solid currentColor;border-top:1.6px solid currentColor;transform:rotate(45deg);margin-left:.1em;transition:transform .4s var(--ease)}
.link:hover::after{transform:translateX(4px) rotate(45deg)}

/* auth */
.auth{position:relative;min-height:100svh;display:grid;place-items:center;padding:72px var(--pad) 56px;overflow:hidden;isolation:isolate}
.auth::before{content:"";position:absolute;inset:-10%;z-index:-2;background:radial-gradient(50% 45% at 50% 105%,rgba(var(--goldrgb),.2),transparent 70%),radial-gradient(40% 40% at 92% 0%,rgba(var(--bluergb),.18),transparent 70%)}
.halo{position:absolute;left:50%;top:50%;width:min(1100px,150vw);aspect-ratio:1;transform:translate(-50%,-48%);z-index:-1;pointer-events:none}
.halo i{position:absolute;inset:0;border-radius:50%;border:1px solid rgba(var(--goldrgb),.16)}
.halo i+i{inset:12%;border-color:var(--line)}
.halo::after{content:"";position:absolute;inset:0;border-radius:50%;background:conic-gradient(from 0deg,transparent 0 62%,rgba(var(--goldrgb),.55) 80%,transparent 82%);-webkit-mask:radial-gradient(circle,transparent 69.5%,#000 70%,#000 70.4%,transparent 70.6%);mask:radial-gradient(circle,transparent 69.5%,#000 70%,#000 70.4%,transparent 70.6%);animation:spin 30s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.auth-card{width:min(470px,100%);padding:clamp(30px,5vw,50px) clamp(22px,4.5vw,44px);border-radius:34px;background:var(--glass);backdrop-filter:blur(30px) saturate(160%);-webkit-backdrop-filter:blur(30px) saturate(160%);box-shadow:inset 0 0 0 1px var(--line2),0 40px 100px -30px rgba(0,0,0,.7);animation:rise .9s var(--ease)}
.auth-card .logo-svg{height:24px;margin:0 auto 26px}
.auth-card h1{font-size:clamp(2.1rem,6vw,2.9rem);font-weight:600;letter-spacing:-.05em;line-height:1.03;text-align:center;margin-bottom:12px}
.auth-card .sub{color:var(--muted);text-align:center;margin-bottom:26px}
.auth-card .eyebrow{text-align:center}
@keyframes rise{from{opacity:0;transform:translateY(28px) scale(.97)}}
.fine{font-size:.85rem;color:var(--dim)}
.auth-card .fine{text-align:center;margin-top:20px}

/* forms */
form{display:grid;gap:18px}
label{display:grid;gap:8px;font-size:.8125rem;font-weight:500;color:var(--muted);min-width:0}
input,select,textarea{width:100%;min-width:0;font:400 1.0625rem var(--sans);letter-spacing:-.01em;color:var(--fg);background:var(--field);border:0;border-radius:16px;padding:0 18px;height:54px;box-shadow:inset 0 0 0 1px var(--line);transition:box-shadow .3s var(--ease);-webkit-appearance:none;appearance:none}
textarea{height:auto;min-height:130px;padding:15px 18px;resize:vertical}
select{background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8' fill='none' stroke='%23999' stroke-width='1.6' stroke-linecap='round'><path d='M1 1.5l5 5 5-5'/></svg>");background-repeat:no-repeat;background-position:right 18px center;padding-right:44px}
select option{background:var(--card);color:var(--fg)}
input:hover,select:hover,textarea:hover{box-shadow:inset 0 0 0 1px var(--line2)}
input:focus,select:focus,textarea:focus{outline:0;box-shadow:inset 0 0 0 1.5px var(--accent),0 0 0 5px rgba(var(--goldrgb),.16)}
input[type=file]{height:auto;padding:14px 18px;font-size:.95rem}
.f2{display:grid;gap:18px}@media(min-width:640px){.f2{grid-template-columns:1fr 1fr}}
.check{display:grid;grid-template-columns:22px 1fr;gap:14px;align-items:start;font-size:.9rem;line-height:1.45;cursor:pointer}
.check input{width:22px;height:22px;padding:0;border-radius:7px}
.check input:checked{background:var(--grad-gold);box-shadow:none}
.check input:checked::after{content:"";display:block;margin:3px 0 0 7px;width:6px;height:11px;border:solid var(--on-gold);border-width:0 2px 2px 0;transform:rotate(45deg)}
.err{color:var(--bad);font-size:.92rem}
.chips{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
@media(max-width:560px){.chips{grid-template-columns:repeat(2,minmax(0,1fr))}}
.chips button,.pills button{border:0;cursor:pointer;background:var(--field);box-shadow:inset 0 0 0 1px var(--line);color:var(--muted);font-size:.92rem;transition:all .35s var(--ease)}
.chips button{display:flex;flex-direction:column;align-items:flex-start;gap:12px;text-align:left;padding:14px;border-radius:18px;line-height:1.25}
.chips svg{width:22px;height:22px;fill:none;stroke:var(--accent);stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}
.pills{display:flex;flex-wrap:wrap;gap:8px}.pills button{height:42px;padding:0 20px;border-radius:999px}
.chips button:hover,.pills button:hover{box-shadow:inset 0 0 0 1px var(--line2);color:var(--fg)}
.chips button[aria-pressed=true],.pills button[aria-pressed=true]{background:rgba(var(--goldrgb),.11);box-shadow:inset 0 0 0 1.5px var(--accent);color:var(--fg)}
.step{border:0;padding:0;margin:0;display:grid;gap:16px;min-width:0}
.step legend{display:flex;gap:14px;align-items:center;padding:0;margin:0 0 14px;width:100%;font-size:1.25rem;font-weight:600;letter-spacing:-.035em}
.step legend b{font-family:var(--serif);font-style:italic;font-weight:400;color:var(--accent);font-size:1.1rem;width:1.9em}
.honeypot{position:absolute!important;left:-9999px;opacity:0;pointer-events:none}

/* capsule nav */
.nav{position:fixed;inset:14px 0 auto 0;z-index:60;display:flex;justify-content:center;pointer-events:none;padding-inline:12px}
.nav-in{pointer-events:auto;display:flex;align-items:center;gap:clamp(12px,2vw,26px);max-width:100%;height:58px;padding:0 9px 0 26px;border-radius:999px;background:var(--glass);backdrop-filter:saturate(180%) blur(26px);-webkit-backdrop-filter:saturate(180%) blur(26px);box-shadow:inset 0 0 0 1px var(--line2),0 24px 70px -24px rgba(0,0,0,.65)}
.links{display:none;gap:2px}
.links a{padding:9px 15px;border-radius:999px;font-size:.875rem;color:var(--muted);transition:background .4s var(--ease),color .3s;position:relative}
.links a:hover{color:var(--fg);background:var(--field)}
.links a[aria-current=page]{background:var(--fg);color:var(--bg)}
.links .dot{position:absolute;top:4px;right:6px;width:8px;height:8px;border-radius:50%;background:var(--warn)}
.me{display:flex;align-items:center;gap:8px}
.av{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;background:var(--grad-gold);color:var(--on-gold);font-weight:700;font-size:.85rem;border:0;cursor:pointer}
.burger{width:42px;height:42px;border:0;background:none;cursor:pointer;position:relative;margin-left:auto}
.burger i{position:absolute;left:9px;right:9px;height:1.5px;background:currentColor;transition:transform .5s var(--ease),top .5s var(--ease)}
.burger i:nth-child(1){top:16px}.burger i:nth-child(2){top:25px}
.burger[aria-expanded=true] i:nth-child(1){top:20px;transform:rotate(45deg)}.burger[aria-expanded=true] i:nth-child(2){top:20px;transform:rotate(-45deg)}
@media(min-width:980px){.links{display:flex}.burger{display:none}}
@media(max-width:979px){.nav-in{width:100%;justify-content:space-between}.me{display:none}}
.menu{position:fixed;inset:0;z-index:55;background:color-mix(in srgb,var(--bg) 94%,transparent);backdrop-filter:blur(30px);-webkit-backdrop-filter:blur(30px);display:flex;flex-direction:column;justify-content:center;gap:4px;padding:90px var(--pad) 40px;opacity:0;visibility:hidden;transition:opacity .5s var(--ease),visibility .5s}
.menu.open{opacity:1;visibility:visible}
.menu a,.menu button{font-size:clamp(2rem,8.5vw,3rem);font-weight:600;letter-spacing:-.04em;padding:6px 0;background:none;border:0;text-align:left;cursor:pointer}
.menu .out{font-size:1.1rem;font-weight:500;color:var(--accent);margin-top:14px}

/* page */
.page{max-width:1180px;margin:0 auto;padding:clamp(110px,14vw,150px) var(--pad) 120px;animation:view .8s var(--ease)}
@keyframes view{from{opacity:0;transform:translateY(16px);filter:blur(6px)}}
.vh{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;flex-wrap:wrap;margin-bottom:clamp(26px,4vw,44px)}
.vh h1{font-size:clamp(2.2rem,5.4vw,3.9rem);font-weight:600;letter-spacing:-.05em;line-height:1.02}
.vh h1 em{font-size:1.06em;background:var(--grad-gold);-webkit-background-clip:text;background-clip:text;color:transparent;padding-right:.06em}
.vh p{color:var(--muted);margin-top:10px;font-size:1.1rem}
.grid{display:grid;gap:14px;grid-template-columns:repeat(12,1fr)}
.s4{grid-column:span 4}.s5{grid-column:span 5}.s6{grid-column:span 6}.s7{grid-column:span 7}.s8{grid-column:span 8}.s12{grid-column:span 12}
@media(max-width:980px){.s4,.s5,.s6,.s7,.s8{grid-column:span 12}}
.panel{position:relative;background:var(--card);border-radius:30px;padding:clamp(22px,2.6vw,34px);box-shadow:inset 0 0 0 1px var(--line);overflow:hidden}
.panel h2{font-size:.78rem;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--accent);margin-bottom:18px}
.panel.gold{background:radial-gradient(110% 80% at 0% 0%,rgba(var(--goldrgb),.18),transparent 62%),var(--card);box-shadow:inset 0 0 0 1px rgba(var(--goldrgb),.45)}
.empty{color:var(--dim);padding:6px 0}
.chip{display:inline-flex;align-items:center;gap:7px;height:26px;padding:0 12px;border-radius:999px;font-size:.76rem;font-weight:600;white-space:nowrap;background:var(--field);box-shadow:inset 0 0 0 1px var(--line2);color:var(--muted)}
.chip i{width:6px;height:6px;border-radius:50%;background:currentColor}
.chip.gold{color:var(--accent);box-shadow:inset 0 0 0 1px rgba(var(--goldrgb),.5);background:rgba(var(--goldrgb),.08)}
.chip.ok{color:var(--ok);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--ok) 45%,transparent);background:color-mix(in srgb,var(--ok) 8%,transparent)}
.chip.warn{color:var(--warn);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--warn) 45%,transparent);background:color-mix(in srgb,var(--warn) 8%,transparent)}
.ico{display:grid;place-items:center;width:46px;height:46px;border-radius:14px;flex:none;background:var(--field);box-shadow:inset 0 0 0 1px var(--line2);color:var(--accent)}
.ico svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}

/* rows */
.row{display:flex;align-items:center;gap:16px;padding:16px 0;border-top:1px solid var(--line);transition:padding .5s var(--ease)}
.row:first-of-type{border-top:0;padding-top:4px}
a.row:hover{padding-left:8px}
.row .tx{min-width:0;flex:1}
.row .tx b{display:block;font-size:1.05rem;font-weight:600;letter-spacing:-.02em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.row .tx small{color:var(--dim);font-size:.84rem}
.tabs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:22px}
.tabs a,.tabs button{height:38px;padding:0 18px;border-radius:999px;border:0;cursor:pointer;background:var(--field);box-shadow:inset 0 0 0 1px var(--line);font-size:.9rem;font-weight:500;color:var(--muted);display:inline-flex;align-items:center;transition:all .35s var(--ease)}
.tabs .on{background:var(--fg);color:var(--bg);box-shadow:none}

/* request detail */
.progress{display:flex;gap:6px;margin:18px 0 6px}
.progress i{flex:1;height:3px;border-radius:3px;background:var(--line2)}.progress i.f{background:var(--grad-gold)}
.kv{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px;margin-top:24px}
.kv div{padding:16px 18px;border-radius:20px;background:var(--field);box-shadow:inset 0 0 0 1px var(--line)}
.kv small{display:block;font-size:.7rem;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--dim);margin-bottom:6px}
.tl{border-left:1px solid var(--line2);margin:22px 0 0 5px;padding-left:22px;display:grid;gap:18px}
.tl div{position:relative}.tl div::before{content:"";position:absolute;left:-27.5px;top:7px;width:9px;height:9px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 4px rgba(var(--goldrgb),.15)}
.tl b{font-weight:600}.tl small{display:block;color:var(--dim);font-size:.8rem;margin:1px 0 3px}.tl span{color:var(--muted);font-size:.95rem}
.prop{padding:22px;border-radius:24px;background:var(--field);box-shadow:inset 0 0 0 1px var(--line);margin-bottom:12px}
.prop .top{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;flex-wrap:wrap}
.prop .amt{font-size:2rem;font-weight:600;letter-spacing:-.05em;margin:12px 0 4px;background:var(--grad-gold);-webkit-background-clip:text;background-clip:text;color:transparent}
.prop .acts{display:flex;gap:10px;margin-top:16px;flex-wrap:wrap}

/* chat */
.thread{display:flex;flex-direction:column;gap:12px;padding:6px 0 24px;min-height:260px}
.msg{max-width:min(580px,88%);padding:14px 18px;border-radius:22px;line-height:1.45;font-size:1.02rem;white-space:pre-wrap;overflow-wrap:anywhere}
.msg small{display:block;font-size:.72rem;letter-spacing:.05em;margin-bottom:5px;opacity:.65;white-space:normal}
.msg.o{align-self:flex-start;background:var(--card2);border-bottom-left-radius:6px}
.msg.s{align-self:flex-end;background:var(--grad-gold);color:var(--on-gold);border-bottom-right-radius:6px}
.composer{display:flex;gap:10px;align-items:flex-end;padding:10px;border-radius:26px;background:var(--glass);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);box-shadow:inset 0 0 0 1px var(--line2)}
.composer textarea{min-height:48px;height:48px;max-height:160px;padding:13px 16px;border-radius:18px;background:transparent;box-shadow:none;resize:none}
.composer textarea:focus{box-shadow:none}.composer .btn{height:48px;padding:0 24px}

/* tiers */
.tiers{display:grid;gap:14px;grid-template-columns:repeat(3,1fr)}@media(max-width:900px){.tiers{grid-template-columns:1fr}}
.tier{padding:26px;border-radius:28px;background:var(--card);box-shadow:inset 0 0 0 1px var(--line);display:flex;flex-direction:column;gap:8px}
.tier.cur{box-shadow:inset 0 0 0 1px rgba(var(--goldrgb),.6);background:radial-gradient(110% 70% at 50% 0%,rgba(var(--goldrgb),.16),transparent 65%),var(--card)}
.tier .nm{font-size:.78rem;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:var(--accent)}
.tier .big{font-size:2.6rem;font-weight:600;letter-spacing:-.05em;line-height:1}
.tier p{color:var(--muted);font-size:.97rem}

/* toast + modal */
.toast{position:fixed;left:50%;bottom:28px;transform:translate(-50%,30px);opacity:0;z-index:150;padding:14px 22px;border-radius:999px;background:var(--fg);color:var(--bg);font-size:.95rem;font-weight:500;transition:all .6s var(--ease);pointer-events:none;max-width:calc(100vw - 32px)}
.toast.show{opacity:1;transform:translate(-50%,0)}
.modal{position:fixed;inset:0;z-index:140;display:grid;place-items:center;padding:20px;background:rgba(0,0,0,.55);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}
.modal .box{width:min(460px,100%);padding:30px;border-radius:28px;background:var(--card);box-shadow:inset 0 0 0 1px var(--line2);animation:rise .5s var(--ease)}
.modal h3{font-size:1.5rem;font-weight:600;letter-spacing:-.035em;margin-bottom:8px}.modal p{color:var(--muted);margin-bottom:22px}
.modal .acts{display:flex;gap:10px;justify-content:flex-end;flex-wrap:wrap}
.load{display:grid;place-items:center;min-height:50vh;color:var(--dim)}
.load i{width:34px;height:34px;border-radius:50%;border:2px solid var(--line2);border-top-color:var(--accent);animation:spin .9s linear infinite}
.wiz{display:flex;gap:6px;margin-bottom:26px}.wiz i{flex:1;height:3px;border-radius:3px;background:var(--line2)}.wiz i.f{background:var(--grad-gold)}
.acts-row{display:flex;gap:12px;flex-wrap:wrap;align-items:center}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.001ms!important;transition-duration:.001ms!important}}

/* ---------- steady: nothing moves under the pointer or on click ---------- */

.btn,.btn:hover,.btn:active,.btn-gold:hover:not(:disabled),.btn-line:hover{transform:none!important;translate:none!important}
a.row:hover{padding-left:0!important}.link:hover::after{transform:rotate(45deg)}
