/* AL RAYYAN - design system v2.
   Voice: building signage. Deep maroon rail, plaster page, brass door-plates for unit numbers, DIN-style numerals.
   Tokens first; every component below uses them. */
:root{
  --rail:#4F0F26;--rail-2:#661A36;--rail-3:#7A2442;--rail-ink:#EAD6DC;--rail-mute:#C79CAA;
  --maroon:#8A1538;--maroon-dark:#6F102D;--maroon-tint:#F7E9ED;
  --brass:#A87E2D;--brass-tint:#F6EEDB;
  --page:#EDEFED;--surface:#FFFFFF;--bg:#F5F6F5;--line:#D5DAD7;--line-soft:#E7EAE8;
  --ink:#1F2A2E;--ink-2:#34434A;--text:#1F2A2E;--muted:#5E6C70;
  --teal:#0E6A6C;--teal-dark:#0A5254;--focus:#0E6A6C;
  --ok:#17744A;--ok-bg:#E1F2E8;--warn:#8A5A06;--warn-bg:#FAEFD6;
  --bad:#B3261E;--bad-bg:#FBE4E1;--info:#1F5AA6;--info-bg:#E2ECF8;
  --neutral:#55656B;--neutral-bg:#E8ECEA;
  --r-panel:6px;--r-ctl:6px;--sidebar:244px;
  --display:"Bahnschrift","DIN Alternate","Segoe UI Variable Display","Segoe UI",Inter,system-ui,sans-serif;
  --font:"Segoe UI Variable Text","Segoe UI",Inter,system-ui,-apple-system,Roboto,"Noto Sans","Noto Sans Arabic",sans-serif;
  --lattice:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='44' height='44' viewBox='0 0 44 44'%3E%3Cpath d='M22 0l9 13 13 9-13 9-9 13-9-13L0 22l13-9z' fill='none' stroke='%23ffffff' stroke-opacity='.075'/%3E%3C/svg%3E");
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--page);color:var(--text);font:14.5px/1.55 var(--font);-webkit-font-smoothing:antialiased}
h1,h2,h3{font-family:var(--display);color:var(--ink)}
h1{font-size:1.75rem;line-height:1.15;font-weight:600;letter-spacing:-.01em;margin:0 0 .25em}
h2{font-size:1.12rem;line-height:1.3;font-weight:600;margin:0 0 .55em}
h3{font-size:1rem;font-weight:600;margin:0 0 .3em}
p{margin:.5em 0}
a{color:var(--teal);text-underline-offset:2px}
a:hover{color:var(--maroon)}
:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
.muted,small{color:var(--muted)}
.right{text-align:right}.nowrap{white-space:nowrap}
.neg{color:var(--bad);font-weight:650}.pos{color:var(--ok);font-weight:600}

/* ---------- shell: maroon rail + plaster page ---------- */
.app{display:grid;grid-template-columns:var(--sidebar) minmax(0,1fr);min-height:100vh}
.sidebar{background:var(--rail);color:var(--rail-ink);position:sticky;top:0;height:100vh;display:flex;flex-direction:column;overflow:hidden;isolation:isolate}
.sidebar:before{content:"";position:absolute;inset:0 0 auto 0;height:210px;background:var(--lattice);-webkit-mask-image:linear-gradient(#000,transparent);mask-image:linear-gradient(#000,transparent);z-index:-1}
.brand{display:flex;align-items:center;gap:12px;padding:20px 18px 16px;color:#fff;text-decoration:none}
.brand:hover{color:#fff}
.brand-mark{width:40px;height:40px;border-radius:5px;border:2px solid var(--brass);display:grid;place-items:center;flex-shrink:0;background:rgba(255,255,255,.04)}
.brand-mark svg{width:21px;height:21px;stroke:#F0DDB0;fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.brand b{display:block;color:#fff;font:600 1.15rem/1.1 var(--display);letter-spacing:.01em}
.brand span span{display:block;font-size:.78rem;color:var(--rail-mute);margin-top:2px}
.nav{padding:2px 10px 12px;flex:1;min-height:0;overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--rail-3) transparent}
.nav-group{margin:16px 0 4px;padding:0 10px;font-size:.78rem;color:var(--rail-mute);font-weight:600;display:flex;align-items:center;gap:8px}
.nav-group:after{content:"";height:1px;background:rgba(255,255,255,.13);flex:1}
.nav a{display:flex;align-items:center;gap:11px;padding:8px 10px;border-radius:5px;color:var(--rail-ink);text-decoration:none;font-size:.92rem;margin:1px 0;position:relative}
.nav a svg,.btn svg,button svg{width:17px;height:17px;flex-shrink:0;stroke:currentColor;fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.nav a svg{opacity:.8}
.nav a:hover{background:var(--rail-2);color:#fff}
.nav a.active{background:var(--rail-2);color:#fff;font-weight:600}
.nav a.active:before{content:"";position:absolute;left:-10px;top:6px;bottom:6px;width:4px;border-radius:0 3px 3px 0;background:var(--brass)}
.nav a.active svg{opacity:1;stroke:#F0DDB0}
.nav .count{margin-left:auto;background:var(--brass);color:#2A1A00;border-radius:999px;padding:0 8px;font-size:.76rem;font-weight:700}
.side-user{border-top:1px solid rgba(255,255,255,.13);padding:12px 14px;display:flex;align-items:center;gap:11px}
.avatar{width:34px;height:34px;border-radius:5px;background:var(--brass-tint);color:var(--rail);display:grid;place-items:center;font:700 1rem var(--display);flex-shrink:0}
.side-user div{min-width:0;flex:1}
.side-user b{display:block;color:#fff;font-size:.88rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.side-user small{display:block;color:var(--rail-mute);font-size:.76rem}
.side-user a{color:var(--rail-ink);display:grid;place-items:center;width:32px;height:32px;border-radius:5px}
.side-user a:hover{background:var(--rail-2);color:#fff}
.side-user a svg{width:17px;height:17px;stroke:currentColor;fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.content{padding:0 clamp(16px,2.6vw,36px) 70px;max-width:1480px;width:100%}
.topbar,.scrim{display:none}
#navtoggle{display:none}
.utility{display:flex;align-items:center;gap:12px;justify-content:flex-end;padding:14px 0 6px}
.utility form{margin:0;position:relative;flex:0 1 380px}
.utility input{margin:0;padding-left:36px;min-height:38px;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%235E6C70' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='M20 20l-3.5-3.5'/%3E%3C/svg%3E") 11px 50%/17px no-repeat}
.utility .bell{position:relative;display:grid;place-items:center;width:38px;height:38px;border-radius:var(--r-ctl);border:1px solid var(--line);background:#fff;color:var(--ink)}
.utility .bell:hover{border-color:var(--ink-2)}
.utility .bell svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.utility .bell i{position:absolute;top:-6px;right:-6px;background:var(--maroon);color:#fff;border-radius:999px;font-style:normal;font-size:.7rem;padding:0 6px;font-weight:700;line-height:1.5}

/* ---------- page heads and panels ---------- */
.page-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:10px 18px;margin:6px 0 18px;padding-bottom:14px;border-bottom:1px solid var(--line)}
.page-head h1{margin:0}
.page-head>div>p{margin:4px 0 0}
.actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-panel);padding:18px 20px;margin:14px 0}
.card>h2:first-child{margin-top:0;padding-bottom:10px;border-bottom:1px solid var(--line-soft);margin-bottom:12px}
.card-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 16px;margin-bottom:10px}
.card-head h2{margin:0}
.cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(340px,1fr));gap:0 16px;align-items:start}
.empty{padding:28px;text-align:center;color:var(--muted)}
.flash{padding:11px 16px;border-radius:var(--r-ctl);margin:8px 0 12px;border:1px solid #BCD0EA;background:var(--info-bg);color:#143E75}
.flash.ok{border-color:#B5DCC7;background:var(--ok-bg);color:#0F5233}.flash.err{border-color:#EBB9B4;background:var(--bad-bg);color:#85150F}
.flash.warn{border-color:#E8CF98;background:var(--warn-bg);color:#6B4504}

/* metric strip: one connected band, numbers in signage type */
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));margin:14px 0;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-panel);overflow:hidden}
.stat{display:block;padding:15px 20px 14px;text-decoration:none;color:var(--text);border-right:1px solid var(--line-soft);border-bottom:1px solid var(--line-soft);margin:0 -1px -1px 0;background:var(--surface)}
.stat b{display:block;font:600 2.1rem/1.05 var(--display);font-variant-numeric:tabular-nums;letter-spacing:-.01em;margin-bottom:5px;color:var(--ink)}
.stat span{font-size:.86rem;font-weight:500;color:var(--muted);display:flex;align-items:center;gap:7px}
.stat span:before{content:"";width:7px;height:7px;border-radius:2px;background:var(--neutral);flex-shrink:0}
.stat.ok span:before{background:var(--ok)}.stat.warn span:before{background:#D9961B}.stat.bad span:before{background:var(--bad)}.stat.info span:before{background:var(--teal)}
.stat.bad b{color:var(--bad)}.stat.warn b{color:var(--warn)}
a.stat:hover{background:#F8F9F8;color:var(--text)}
a.stat:hover span{color:var(--ink)}

/* ---------- controls ---------- */
button{font:inherit;font-weight:600;background:var(--maroon);color:#fff;border:1px solid var(--maroon);padding:8px 16px;border-radius:var(--r-ctl);cursor:pointer;min-height:38px;display:inline-flex;align-items:center;gap:8px;transition:background .12s,border-color .12s}
button:hover{background:var(--maroon-dark);border-color:var(--maroon-dark)}
button:active,.btn:active{transform:translateY(1px)}
.btn{font:inherit;font-weight:600;display:inline-flex;align-items:center;gap:8px;background:var(--surface);color:var(--ink);border:1px solid #BFC7C4;padding:8px 14px;border-radius:var(--r-ctl);text-decoration:none;min-height:38px;cursor:pointer;transition:background .12s,border-color .12s}
.btn:hover,button.btn:hover{background:var(--bg);color:var(--ink);border-color:var(--ink-2)}
button.btn{background:var(--surface);color:var(--ink);border-color:#BFC7C4}
button.danger,.btn.danger{color:var(--bad);border-color:#E3B5B0;background:#fff}
button.danger:hover{background:var(--bad-bg);color:var(--bad);border-color:var(--bad)}
button.small,.btn.small{min-height:30px;padding:3px 11px;font-size:.86rem}
label{font-weight:600;font-size:.86rem;display:block;margin-top:2px;color:var(--ink-2)}
input,select,textarea{font:inherit;color:var(--text);width:100%;padding:8px 11px;min-height:38px;border:1px solid #BFC7C4;border-radius:var(--r-ctl);background:#fff;margin:5px 0 14px}
textarea{min-height:90px}
input:hover,select:hover,textarea:hover{border-color:#8E9A97}
input:focus,select:focus,textarea:focus{outline:2px solid var(--focus);outline-offset:-1px;border-color:var(--focus)}
input[type=checkbox],input[type=radio]{width:auto;min-height:0;margin:0 8px 0 0;accent-color:var(--maroon)}
input[type=file]{background:var(--bg);border-style:dashed;padding:6px 10px}
.check{display:flex;align-items:center;font-weight:500;margin:4px 0 14px}
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 18px}
.form-grid .full{grid-column:1/-1}
.form-grid.four{grid-template-columns:repeat(auto-fit,minmax(190px,1fr))}
.hint{font-size:.84rem;color:var(--muted);margin:-8px 0 14px}
.inline-form{display:flex;flex-wrap:wrap;gap:8px;align-items:flex-end}
.inline-form>*{margin:0}
.inline-form input,.inline-form select{width:auto;min-width:140px;margin:0}
.vacant-only{display:flex;gap:6px;align-items:center;font-size:.85rem;color:var(--muted);margin:0}.vacant-only input{width:auto;margin:0}

/* ---------- tables: ledger sheets ---------- */
.scroll{overflow:auto;max-width:100%;padding:0}
.card.scroll{padding:6px 0 0}
table{width:100%;border-collapse:collapse;font-size:.9rem}
th{font-weight:600;color:var(--muted);font-size:.8rem;text-align:left;padding:9px 14px;border-bottom:1.5px solid var(--ink-2);white-space:nowrap;background:transparent}
td{padding:10px 14px;border-bottom:1px solid var(--line-soft);text-align:left;vertical-align:top}
tr:last-child td{border-bottom:0}
tbody tr:hover td,table tr:hover td{background:#F8F9F8}
td a{font-weight:600}
td.neg{color:var(--bad);font-weight:600}
td.right,th.right{font-variant-numeric:tabular-nums}
.badge{display:inline-flex;align-items:center;gap:6px;padding:1px 9px 1px 8px;border-radius:4px;font-size:.8rem;font-weight:600;line-height:1.6;white-space:nowrap}
.badge:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;opacity:.85}
.badge.ok{background:var(--ok-bg);color:var(--ok)}.badge.warn{background:var(--warn-bg);color:var(--warn)}
.badge.bad{background:var(--bad-bg);color:var(--bad)}.badge.info{background:var(--info-bg);color:var(--info)}
.badge.neutral{background:var(--neutral-bg);color:var(--neutral)}

.tabs{display:inline-flex;flex-wrap:wrap;margin:10px 0;border:1px solid #BFC7C4;border-radius:var(--r-ctl);background:#fff;overflow:hidden}
.tabs a{padding:7px 16px;text-decoration:none;color:var(--ink);font-weight:550;font-size:.9rem;border-right:1px solid var(--line)}
.tabs a:last-child{border-right:0}
.tabs a:hover{background:var(--bg)}
.tabs a.active{background:var(--rail);color:#fff}
.tabs a small{color:inherit;opacity:.75;margin-left:4px}

.kv{display:grid;grid-template-columns:minmax(120px,.4fr) 1fr;gap:7px 16px;margin:0}
.kv dt{color:var(--muted);font-size:.88rem}.kv dd{margin:0;font-weight:550}

/* the door plate: how a flat is named everywhere */
.plate{display:inline-flex;flex-direction:column;align-items:center;justify-content:center;min-width:64px;padding:3px 14px 5px;border:2px solid var(--brass);border-radius:5px;background:linear-gradient(#fff,var(--brass-tint));box-shadow:inset 0 0 0 2px #fff;text-decoration:none;color:var(--ink);line-height:1;vertical-align:middle}
.plate small{font-size:.6rem;color:var(--brass);font-weight:700;letter-spacing:.04em;margin-bottom:2px}
.plate b{font:600 1.7rem/1 var(--display);font-variant-numeric:tabular-nums}
.plate.sm{min-width:0;padding:1px 9px 2px;border-width:1.5px;box-shadow:none;flex-direction:row;gap:0}
.plate.sm b{font-size:1rem}
.head-plate{display:flex;align-items:center;gap:16px}
.head-plate h1{font-size:1.5rem}

.stepper{display:flex;gap:0;margin:14px 0 4px;overflow-x:auto;padding-bottom:4px}
.step{flex:1;min-width:112px;position:relative;padding-top:24px;text-align:center;font-size:.82rem;color:var(--muted)}
.step:before{content:"";position:absolute;top:8px;left:0;right:0;height:3px;background:var(--line)}
.step:after{content:"";position:absolute;top:2px;left:50%;margin-left:-7px;width:14px;height:14px;border-radius:50%;background:#fff;border:3px solid var(--line)}
.step.done{color:var(--ink)}.step.done:before{background:var(--ok)}.step.done:after{background:var(--ok);border-color:var(--ok)}
.step.now{color:var(--maroon);font-weight:650}.step.now:after{border-color:var(--maroon);background:#fff}
.step:first-child:before{left:50%}.step:last-child:before{right:50%}

.timeline{list-style:none;margin:0;padding:0}
.timeline li{padding:8px 0 8px 18px;border-left:2px solid var(--line);position:relative;font-size:.9rem}
.timeline li:before{content:"";position:absolute;left:-6px;top:14px;width:10px;height:10px;border-radius:50%;background:var(--brass)}
.timeline small{display:block}

.photos{display:flex;flex-wrap:wrap;gap:8px;margin:6px 0}
.photos .ph{position:relative}
.photos img{height:92px;width:92px;object-fit:cover;border-radius:5px;border:1px solid var(--line);display:block}
.photos form{position:absolute;top:3px;right:3px}
.photos form button{min-height:24px;padding:0 7px;font-size:.8rem;background:rgba(31,42,46,.82);border-color:transparent}

.check-item{border:1px solid var(--line);border-radius:var(--r-panel);padding:14px 16px;margin:10px 0;background:#fff}
.check-item.is-bad{background:#FFF8F7;border-color:#E9B9B4}.check-item.is-warn{background:#FFFBF2;border-color:#E8CF98}.check-item.is-ok{border-color:#B5DCC7}
.check-item header{display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap;margin-bottom:8px}
.check-item .row{display:grid;grid-template-columns:90px 200px 1fr 130px;gap:0 12px;align-items:start}
.check-item .row label{font-size:.82rem;color:var(--muted)}
.check-item .charge{display:none}.check-item.charging .charge{display:block}
.savebar{position:sticky;bottom:0;background:rgba(237,239,237,.96);padding:12px 0;display:flex;gap:10px;flex-wrap:wrap;border-top:1px solid var(--line);margin-top:14px}

.lookup,.propsel{position:relative}
.results{position:absolute;z-index:20;left:0;right:0;top:100%;margin-top:-10px;background:#fff;border:1px solid var(--ink-2);border-radius:var(--r-ctl);box-shadow:0 12px 28px rgba(31,42,46,.18);max-height:320px;overflow:auto;display:none}
.results.open{display:block}
.results button{display:block;width:100%;text-align:left;background:#fff;color:var(--text);border:0;border-bottom:1px solid var(--line-soft);border-radius:0;padding:10px 14px;font-weight:500}
.results button:hover{background:var(--maroon-tint);color:var(--text)}
.results small{display:block}

.error-page{max-width:520px;margin:12vh auto;text-align:center}
.error-page b{font:600 4.5rem/1 var(--display);display:block;color:var(--maroon)}

.auth{min-height:100vh;display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr)}
.auth-brand{background:var(--rail) var(--lattice);color:#fff;padding:clamp(28px,5vw,64px);display:flex;flex-direction:column;justify-content:space-between;gap:32px}
.auth-brand .brand{padding:0}
.auth-brand h1{font-size:clamp(1.9rem,3.4vw,2.9rem);max-width:16ch;text-wrap:balance;margin:0 0 .5em;letter-spacing:-.015em;color:#fff}
.auth-brand p{color:var(--rail-ink);max-width:42ch;font-size:1.02rem}
.auth-form{display:grid;place-items:center;padding:28px}
.auth-form .card{width:100%;max-width:400px;margin:0;padding:28px}
.auth-form button{width:100%;justify-content:center;margin-top:4px}

.doc{max-width:920px;margin:0 auto;background:#fff;padding:28px 34px}
.doc h1{font-size:1.4rem}
.sign{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:46px}
.sign div{border-top:1px solid #333;padding-top:6px;font-size:.88rem}

/* ---------- dashboards ---------- */
.section-title{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin:28px 0 6px}
.section-title h2{margin:0;font-size:1.15rem}
.section-title h2 svg{width:19px;height:19px;vertical-align:-3px;margin-right:7px;stroke:var(--brass);fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.gcards{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:12px;margin:12px 0}
.gcard{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-panel);padding:14px 16px}
.gcard-head{display:flex;justify-content:space-between;align-items:baseline;gap:8px}
.gcard-head b{font:600 1rem var(--display);letter-spacing:.01em}
.gcard-head .pct{font:600 1.45rem var(--display);color:var(--ok);font-variant-numeric:tabular-nums}
.gcard.warn .pct{color:var(--warn)}.gcard.bad .pct{color:var(--bad)}.gcard.none .pct{color:var(--neutral)}
.gnums{display:grid;grid-template-columns:repeat(3,1fr);text-align:center;margin:10px 0 8px;border-top:1px solid var(--line-soft);border-bottom:1px solid var(--line-soft)}
.gnums div{padding:8px 0}.gnums div+div{border-left:1px solid var(--line-soft)}
.gnums b{display:block;font:600 1.3rem var(--display);font-variant-numeric:tabular-nums}.gnums small{font-size:.74rem}
.gnums .v b{color:var(--warn)}.gnums .o b{color:var(--ok)}
.meter{height:6px;border-radius:99px;background:var(--neutral-bg);overflow:hidden}
.meter i{display:block;height:100%;background:var(--ok)}
.gcard.warn .meter i{background:#D9961B}.gcard.bad .meter i{background:var(--bad)}
.gchips{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.gchips a,.gchips span{font-size:.8rem;padding:1px 9px;border-radius:4px;background:var(--neutral-bg);color:var(--text);text-decoration:none;font-weight:550}
.gchips a:hover{background:var(--line)}
.gchips .w{background:var(--warn-bg);color:var(--warn)}.gchips .b{background:var(--bad-bg);color:var(--bad)}.gchips .i{background:var(--info-bg);color:var(--info)}
.team-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-panel);padding:18px 20px;margin:14px 0}
.team-card>header{display:flex;flex-wrap:wrap;justify-content:space-between;gap:6px 16px;align-items:baseline}
.team-card h3{margin:0;font-size:1.08rem}
.mini{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:8px;margin:12px 0}
.mini div{background:var(--bg);border-radius:5px;padding:8px 12px}
.mini b{display:block;font:600 1.3rem var(--display);font-variant-numeric:tabular-nums}.mini small{font-size:.76rem}
.pipeline{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0}
.pipeline a{flex:1 1 140px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-panel);padding:10px 14px;text-decoration:none;color:var(--text)}
.pipeline a:hover{border-color:var(--ink-2)}
.pipeline b{display:block;font:600 1.5rem var(--display);font-variant-numeric:tabular-nums}.pipeline small{font-size:.78rem}
.board{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:12px;align-items:start;margin-top:12px}
.board-col{background:var(--bg);border:1px solid var(--line);border-radius:var(--r-panel);padding:10px}
.board-col>h3{margin:2px 4px 8px;font-size:.95rem;display:flex;justify-content:space-between}
.ccard{display:block;background:var(--surface);border:1px solid var(--line);border-radius:5px;padding:10px 12px;margin-bottom:8px;text-decoration:none;color:var(--text)}
.ccard:hover{border-color:var(--ink-2)}
.ccard.late,.ccard.Urgent{border-color:#E3B5B0;background:#FFFAF9}.ccard.High{border-color:#E8CF98;background:#FFFCF5}
.ccard small{display:block}
.chips{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0 2px}
.chips button{font-size:.84rem;padding:3px 11px;border-radius:4px;background:var(--bg);color:var(--text);border:1px solid var(--line);cursor:pointer;font-weight:550;min-height:0}
.chips button:hover{border-color:var(--maroon);color:var(--maroon);background:#fff}

/* asset status cards */
.acards{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;margin:10px 0 18px}
.acard{position:relative;display:block;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-panel);padding:15px 18px;text-decoration:none;color:var(--text)}
.acard:hover{border-color:var(--ink-2)}.acard.on{outline:2px solid var(--maroon);outline-offset:-1px}
.acard span.l{font-weight:600;font-size:.9rem}.acard b{display:block;font:600 2rem/1.1 var(--display);margin:5px 0 2px;font-variant-numeric:tabular-nums}.acard small{font-size:.8rem}
.acard i{position:absolute;right:14px;top:14px;width:36px;height:36px;border-radius:5px;display:grid;place-items:center}
.acard i svg{width:19px;height:19px;stroke:currentColor;fill:none;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.acard i.warn{background:var(--warn-bg);color:var(--warn)}.acard i.ok{background:var(--ok-bg);color:var(--ok)}
.acard i.info{background:var(--info-bg);color:var(--info)}.acard i.bad{background:var(--bad-bg);color:var(--bad)}
.item-row{display:grid;grid-template-columns:minmax(180px,2fr) 90px minmax(140px,2fr) 36px;gap:8px;margin-bottom:8px;align-items:center}
.item-row button.x{padding:6px 0;background:var(--bg);color:var(--bad);border:1px solid var(--line)}
.sched-day{margin:20px 0 8px;display:flex;align-items:center;gap:8px}.sched-day h2{margin:0}
.stockbar{height:6px;border-radius:4px;background:#eee;overflow:hidden;min-width:70px}.stockbar i{display:block;height:100%;background:var(--teal)}
.hjob{padding:10px 0;border-bottom:1px solid var(--line-soft)}.hjob:last-child{border:0}.hjob-h{margin-bottom:4px}.hline{padding:2px 0 2px 12px;border-left:3px solid var(--line);margin:3px 0}

/* ---------- responsive ---------- */
@media(max-width:900px){
  .app{display:block}
  .utility{display:none}
  .topbar{display:flex;align-items:center;gap:12px;background:var(--rail);color:#fff;padding:10px 14px;position:sticky;top:0;z-index:300}
  .topbar label{margin:0;cursor:pointer;display:grid;place-items:center;width:40px;height:40px;border-radius:6px;color:#fff}
  .topbar svg{width:22px;height:22px;stroke:#fff;fill:none;stroke-width:1.8;stroke-linecap:round}
  .topbar b{font:600 1.1rem var(--display)}
  .topbar .bell{margin-left:auto;color:#fff;position:relative;display:grid;place-items:center;width:40px;height:40px}
  .topbar .bell svg{width:22px;height:22px}
  .topbar .bell i{position:absolute;top:2px;right:0;background:var(--brass);color:#2A1A00;border-radius:999px;font-style:normal;font-size:.72rem;padding:0 6px;font-weight:700}
  .sidebar{position:fixed;z-index:400;left:0;top:0;width:min(290px,86vw);transform:translateX(-102%);transition:transform .2s ease}
  #navtoggle:checked~.sidebar{transform:none}
  #navtoggle:checked~.scrim{display:block;position:fixed;inset:0;background:rgba(20,6,12,.55);z-index:350}
  .content{padding:14px 14px 80px}
  .auth{grid-template-columns:1fr}.auth-brand{padding:24px}.auth-brand p{display:none}
}
@media(max-width:700px){
  .form-grid{grid-template-columns:1fr}
  .grid{grid-template-columns:1fr 1fr}.stat{padding:12px 14px}.stat b{font-size:1.7rem}
  .check-item .row{grid-template-columns:1fr 1fr}
  .check-item .row .wide{grid-column:1/-1}
  .kv{grid-template-columns:1fr 1.4fr}
  td,th{padding:9px 8px;font-size:.88rem}
  .card{padding:14px}
  .head-plate{flex-wrap:wrap}
}
@media(max-width:640px){.item-row{grid-template-columns:1fr 80px}.item-row input:nth-child(3){grid-column:1/-1}}
@media(prefers-reduced-motion:reduce){.sidebar{transition:none}button,.btn{transition:none}}

@media print{
  .sidebar,.topbar,.scrim,.no-print,.savebar,.flash,.utility{display:none!important}
  .app{display:block}.content{padding:0;max-width:none}
  body{background:#fff;font-size:12px}
  .card,.doc{border:0;padding:0;margin:8px 0;break-inside:avoid}
  .grid{border:0}.stat{border:0}
  .badge{border:1px solid #999;background:#fff!important;color:#000!important}
  .photos img{height:70px;width:70px}
  a{color:#000;text-decoration:none}
}
td.right,th.right{white-space:nowrap}

/* ---------- sign-in: waving flag ---------- */
.flag{display:block;width:100%;max-width:620px;height:auto;aspect-ratio:16/9;margin:0 0 28px;border-radius:18px;box-shadow:0 24px 50px rgba(0,0,0,.45);image-rendering:auto}
.auth-brand{position:relative;overflow:hidden}
.auth-form .card{border-top:4px solid var(--maroon)}
@media(max-width:900px){.auth-brand{padding:22px 22px 8px;gap:8px}.auth-brand h1{font-size:1.45rem;margin-bottom:.3em}.flag{width:100%;max-width:none;aspect-ratio:16/8;margin-bottom:14px;border-radius:14px}.auth-form{padding:18px 16px 40px;align-items:start}}

/* ---------- home: welcome band and quick tiles ---------- */
.hero{position:relative;margin:14px 0 8px;border-radius:var(--r-panel);background:var(--rail) var(--lattice);color:#fff;padding:22px 24px 20px 46px;overflow:hidden;isolation:isolate}
.hero:before{content:"";position:absolute;left:0;top:0;bottom:0;width:22px;background:#fff;

  clip-path:polygon(0 0,60% 0,100% 5.5%,60% 11.1%,100% 16.6%,60% 22.2%,100% 27.7%,60% 33.3%,100% 38.8%,60% 44.4%,100% 50%,60% 55.5%,100% 61.1%,60% 66.6%,100% 72.2%,60% 77.7%,100% 83.3%,60% 88.8%,100% 94.4%,60% 100%,0 100%);z-index:-1}
.hero-day{margin:0;color:var(--rail-mute);font-size:.88rem}
.hero h1{color:#fff;font-size:1.85rem;margin:2px 0 4px}
.hero p{margin:0;color:var(--rail-ink)}.hero a{color:#F0DDB0}
.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:10px;margin-top:18px}
.tile{display:flex;align-items:center;gap:11px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.18);border-radius:6px;padding:12px 14px;color:#fff;text-decoration:none;font-weight:600;font-size:.92rem;min-height:52px}
.tile:hover{background:rgba(255,255,255,.18);color:#fff}
.tile svg{width:22px;height:22px;flex-shrink:0;stroke:#F0DDB0;fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}

/* ---------- phones and tablets: bottom bar, thumb-sized controls ---------- */
.tabbar{display:none}
@media(max-width:900px){
  body{padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}
  .topbar{padding-top:calc(10px + env(safe-area-inset-top))}
  .content{padding-bottom:calc(96px + env(safe-area-inset-bottom))}
  .tabbar{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;position:fixed;left:0;right:0;bottom:0;z-index:300;background:#fff;border-top:1px solid var(--line);padding:6px 4px calc(6px + env(safe-area-inset-bottom));box-shadow:0 -6px 18px rgba(31,42,46,.08)}
  .tabbar a,.tabbar label{position:relative;display:flex;flex-direction:column;align-items:center;gap:2px;padding:6px 2px;color:var(--muted);text-decoration:none;font-size:.72rem;font-weight:600;margin:0;border-radius:8px;cursor:pointer;min-height:48px;justify-content:center}
  .tabbar svg{width:23px;height:23px;stroke:currentColor;fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
  .tabbar .on{color:var(--maroon)}.tabbar .on svg{stroke-width:2.1}
  .tabbar i{position:absolute;top:2px;left:calc(50% + 6px);background:var(--maroon);color:#fff;border-radius:999px;font-style:normal;font-size:.66rem;padding:0 6px;font-weight:700;line-height:1.5}
  input,select,textarea{font-size:16px;min-height:46px}      /* 16px stops iPhone from zooming into fields */
  button,.btn{min-height:46px}button.small,.btn.small{min-height:38px}
  input[type=checkbox],input[type=radio]{width:22px;height:22px}
  .nav a{padding:12px 12px;font-size:1rem}
  .page-head{margin-top:2px}.page-head h1{font-size:1.5rem}
  .actions{width:100%}.actions .btn,.actions button{flex:1 1 auto;justify-content:center}
  .savebar{bottom:calc(60px + env(safe-area-inset-bottom));padding:10px 0}
  .savebar button,.savebar .btn{flex:1 1 auto;justify-content:center}
  .hero{padding:18px 16px 16px 38px}.hero h1{font-size:1.45rem}.tiles{grid-template-columns:1fr 1fr}
  .results{max-height:46vh}
  table{font-size:.9rem}
  .card.scroll,.scroll{-webkit-overflow-scrolling:touch}
}
@media(display-mode:standalone){.topbar{padding-top:calc(10px + env(safe-area-inset-top))}}

.hero ~ .page-head:not(:has(.actions)){display:none}

/* ---------- powered by + digital sign-in glow ---------- */
.powered{margin:0;text-align:center;font-size:.8rem;color:var(--muted);letter-spacing:.14em;text-transform:none}
.powered b{font-family:var(--display);letter-spacing:.2em;color:var(--maroon)}
.powered.side{padding:6px 0 10px;color:var(--rail-mute);font-size:.72rem}.powered.side b{color:#F0DDB0}
.auth-form{position:relative;grid-template-rows:1fr auto}.auth-form .powered{align-self:end;padding-bottom:6px}
.glowlines{position:absolute;inset:0;pointer-events:none;z-index:0;opacity:.55;
  background:repeating-linear-gradient(115deg,transparent 0 120px,rgba(240,221,176,.07) 120px 121px),linear-gradient(100deg,transparent 30%,rgba(240,221,176,.08) 50%,transparent 70%);
  background-size:auto,220% 100%;animation:sweep 9s linear infinite}
.auth-brand>*{position:relative;z-index:1}.auth-brand .glowlines{z-index:0}
@keyframes sweep{from{background-position:0 0,120% 0}to{background-position:0 0,-120% 0}}
@media(prefers-reduced-motion:reduce){.glowlines{animation:none}}

.thumb{width:52px;height:52px;object-fit:cover;border-radius:6px;border:1px solid var(--line);display:block}
.thumb.sm{width:30px;height:30px;display:inline-block;vertical-align:middle;border-radius:4px}
.thumb.none{display:grid;place-items:center;background:var(--bg);color:var(--muted)}.thumb.none svg{width:20px;height:20px;stroke:currentColor;fill:none;stroke-width:1.6}
.filebtn{cursor:pointer}

/* ---------- chat and call dock ---------- */
.dock{position:fixed;right:16px;bottom:16px;z-index:350;display:flex;flex-direction:column;align-items:flex-end;gap:10px}
.dock-btns{display:flex;flex-direction:column;gap:10px}
.dockbtn{width:52px;height:52px;border-radius:50%;padding:0;display:grid;place-items:center;background:#fff;color:var(--maroon);border:1px solid var(--line);box-shadow:0 6px 18px rgba(31,42,46,.22);position:relative;cursor:pointer}
.dockbtn.main{background:var(--maroon);color:#fff;border-color:var(--maroon)}
.dockbtn svg{width:24px;height:24px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.dockbtn i{position:absolute;top:-4px;right:-4px;background:#c8102e;color:#fff;border-radius:999px;font-style:normal;font-size:.7rem;font-weight:700;padding:1px 6px;min-width:20px;text-align:center;border:2px solid #fff}
.chatpanel{width:min(360px,calc(100vw - 32px));height:min(520px,calc(100vh - 160px));background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:0 14px 40px rgba(31,42,46,.28);display:flex;flex-direction:column;overflow:hidden}
.chatpanel[hidden],.incoming[hidden],#cp-list[hidden],#cp-thread[hidden]{display:none}
.chatpanel header{display:flex;align-items:center;gap:8px;padding:10px 12px;background:var(--maroon);color:#fff}
.chatpanel header b{flex:1}
.chatpanel header button{background:transparent;border:0;color:#fff;font-size:1.5rem;line-height:1;min-height:0;padding:0 6px;cursor:pointer}
#cp-back{order:-1}
.cp-list{flex:1;overflow:auto;padding:8px}
.cp-list input{width:100%;margin-bottom:6px}
.cp-tools{display:flex;justify-content:flex-end;margin-bottom:6px}
.cp-row{display:flex;align-items:center;gap:8px;width:100%;text-align:left;background:#fff;border:0;border-bottom:1px solid var(--line);border-radius:0;padding:10px 6px;cursor:pointer;color:var(--ink)}
.cp-main{flex:1;min-width:0;display:flex;flex-direction:column}.cp-main small{color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cp-n{background:var(--maroon);color:#fff;border-radius:999px;font-style:normal;font-size:.72rem;padding:1px 7px;font-weight:700}
.cp-thread{flex:1;display:flex;flex-direction:column;min-height:0}
.cp-msgs{flex:1;overflow:auto;padding:10px;display:flex;flex-direction:column;gap:6px;background:var(--bg)}
.cp-msg{max-width:82%;align-self:flex-start;background:#fff;border:1px solid var(--line);border-radius:12px;padding:6px 10px;display:flex;flex-direction:column;gap:3px;word-break:break-word}
.cp-msg.mine{align-self:flex-end;background:#f6e9ec;border-color:#e6c9d0}
.cp-msg small{color:var(--muted);font-size:.7rem}
.cp-actions{display:flex;gap:8px;padding:6px 10px;border-top:1px solid var(--line)}
#cp-form{display:flex;gap:6px;padding:8px 10px;border-top:1px solid var(--line)}#cp-form input{flex:1;min-width:0}
.incoming{background:#0e6b4f;color:#fff;border-radius:12px;padding:10px 12px;display:flex;align-items:center;gap:8px;flex-wrap:wrap;box-shadow:0 8px 24px rgba(0,0,0,.25);max-width:320px}
@media (max-width:860px){.dock{bottom:calc(78px + env(safe-area-inset-bottom));right:12px}.dockbtn{width:48px;height:48px}.chatpanel{height:min(480px,calc(100vh - 220px))}}
@media print{.dock{display:none!important}}

/* ---------- company letterhead and logo ---------- */
.brand-logo{height:42px;max-width:96px;object-fit:contain;flex-shrink:0;border-radius:4px}
.lh{display:flex;align-items:center;gap:16px;border-bottom:3px solid var(--maroon);padding-bottom:10px;margin-bottom:14px}
.lh-logo{height:64px;max-width:170px;object-fit:contain}
.lh-text{flex:1;display:flex;flex-direction:column}.lh-text b{font-size:1.35rem;letter-spacing:.04em;color:var(--maroon)}.lh-ar{font-size:1.2rem;font-weight:700}.lh-text small{color:var(--muted)}
.lh-meta{font-size:.75rem;color:var(--muted);text-align:right;white-space:nowrap}
.rep-table{width:100%;border-collapse:collapse;font-size:.85rem}.rep-table th{background:#f3eef0;text-align:left}.rep-table th,.rep-table td{border:1px solid var(--line);padding:5px 8px}.rep-table td.num,.rep-table th.num{text-align:right;font-variant-numeric:tabular-nums}
.rep-table tfoot td{font-weight:700;background:#faf7f8}
.rep-filters{display:flex;gap:10px;flex-wrap:wrap;align-items:end}.rep-filters label{display:block;font-size:.75rem;margin-bottom:2px}
.rep-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px}.rep-card{display:block;background:#fff;border:1px solid var(--line);border-radius:10px;padding:12px 14px;text-decoration:none;color:var(--ink)}.rep-card:hover{border-color:var(--maroon)}.rep-card b{display:block;color:var(--maroon)}.rep-card small{color:var(--muted)}
@media print{@page{size:A4;margin:12mm}.lh{break-inside:avoid}.rep-table{font-size:.72rem}.rep-table tr{break-inside:avoid}.rep-table thead{display:table-header-group}}

.brand-badge{width:46px;height:46px;border-radius:10px;background:#fff;display:grid;place-items:center;flex-shrink:0;box-shadow:0 0 0 2px rgba(240,221,176,.55)}
.brand-badge img{width:36px;height:36px;object-fit:contain}
.brand-badge.sm{display:inline-grid;width:2.4rem;height:2.4rem;vertical-align:middle;margin-right:.6rem}.brand-badge.sm img{width:1.9rem;height:1.9rem}
.lh-banner{height:54px;max-width:420px;object-fit:contain;object-position:left center}
.lh-sub{color:var(--muted);font-size:.78rem}

.lh-brand{gap:16px;border-bottom:3px solid var(--maroon);margin-bottom:6px}
.lh-brand .lh-mark{height:66px;width:auto;flex-shrink:0}
.lh-brand .lh-text{flex:0 1 auto;display:block}
.lh-brand .lh-name{display:block;font:400 2.1rem/1 'Times New Roman','Liberation Serif',Georgia,serif;letter-spacing:.02em;color:#2a2377;white-space:nowrap}
.lh-brand .lh-tag{display:block;margin-top:6px;padding-top:4px;border-top:2px solid #e3b650;font:400 .82rem/1.2 'Times New Roman','Liberation Serif',Georgia,serif;letter-spacing:.06em;color:#2a2377;text-transform:uppercase}
.lh-brand .lh-meta{margin-left:auto}
.lh-sub{margin:0 0 14px}
@media (max-width:640px){.lh-brand{flex-wrap:wrap}.lh-brand .lh-name{font-size:1.5rem;white-space:normal}.lh-brand .lh-mark{height:48px}.lh-brand .lh-meta{margin-left:0;text-align:left;white-space:normal}}

/* Sign-in page: gold arch on deep maroon */
.lx{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:22px;padding:28px 16px 70px;position:relative;color:#f6ead2;
 background:radial-gradient(circle at 50% 38%,#5b0d27,#25050f 75%)}
.lx-arch{width:100%;max-width:430px;border:2px solid #c9a24b;border-radius:215px 215px 10px 10px;padding:64px 46px 44px;text-align:center;position:relative;background:rgba(0,0,0,.18);margin:0}
.lx-arch:before{content:"";position:absolute;inset:9px;border:1px solid rgba(201,162,75,.4);border-radius:206px 206px 5px 5px;pointer-events:none}
.lx-mark{width:96px;height:96px;display:grid;place-items:center;margin:0 auto 10px;position:relative}
.lx-mark img{width:88px;height:auto;filter:drop-shadow(0 0 14px rgba(246,234,210,.35))}
.lx-arch h1{font-family:Georgia,'Times New Roman',serif;font-weight:400;font-size:1.85rem;line-height:1.15;color:#fff;margin:0;letter-spacing:0;position:relative}
.lx-sub{font-size:.82rem;color:#e0bd6a;letter-spacing:.1em;margin:10px 0 24px;position:relative}
.lx-form{text-align:left;position:relative}
.lx-form label{display:block;font-size:.78rem;letter-spacing:.04em;color:#f6ead2}
.lx-form input:not([type=hidden]){display:block;width:100%;height:44px;margin:6px 0 16px;padding:0 14px;border-radius:4px;border:1px solid rgba(201,162,75,.5);background:rgba(0,0,0,.3);color:#fff;font-size:16px}
.lx-form input:focus{outline:2px solid #e0bd6a;outline-offset:1px}
.lx-form button{width:100%;height:46px;border:0;border-radius:4px;font-weight:700;letter-spacing:.06em;background:linear-gradient(180deg,#e0bd6a,#b88a2e);color:#2c0613;justify-content:center;cursor:pointer}
.lx .flash{position:relative;text-align:left;margin:0 0 14px}
.lx-foot{position:absolute;bottom:22px;left:0;right:0;text-align:center;font-size:.76rem;letter-spacing:.14em;color:#c9a24b;text-transform:uppercase}
.lx-foot b{color:#f0ddb0;letter-spacing:.2em}
@media(max-width:480px){.lx-arch{padding:56px 24px 32px;border-radius:160px 160px 10px 10px}.lx-arch:before{border-radius:152px 152px 5px 5px}.lx-arch h1{font-size:1.6rem}}

/* Sign-in page animation: drifting light, rising gold dust, arch shimmer */
.lx{overflow:hidden}
.lx-bg{position:absolute;inset:0;pointer-events:none;z-index:0;overflow:hidden}
.lx-bg .g1,.lx-bg .g2,.lx-bg .g3{position:absolute;border-radius:50%;filter:blur(70px);opacity:.5;will-change:transform}
.lx-bg .g1{width:520px;height:520px;left:-120px;top:-100px;background:radial-gradient(circle,rgba(201,162,75,.45),transparent 70%);animation:lxd1 22s ease-in-out infinite alternate}
.lx-bg .g2{width:600px;height:600px;right:-160px;bottom:-180px;background:radial-gradient(circle,rgba(138,21,56,.9),transparent 70%);animation:lxd2 26s ease-in-out infinite alternate}
.lx-bg .g3{width:380px;height:380px;left:55%;top:8%;background:radial-gradient(circle,rgba(224,189,106,.25),transparent 70%);animation:lxd3 30s ease-in-out infinite alternate}
@keyframes lxd1{to{transform:translate(220px,160px) scale(1.2)}}
@keyframes lxd2{to{transform:translate(-200px,-120px) scale(1.15)}}
@keyframes lxd3{to{transform:translate(-260px,200px) scale(.85)}}
.dust i{position:absolute;bottom:-12px;width:4px;height:4px;border-radius:50%;background:#e0bd6a;opacity:0;box-shadow:0 0 8px 2px rgba(224,189,106,.55);animation:lxup linear infinite}
.dust i:nth-child(1){left:6%;animation-duration:17s;animation-delay:0s}.dust i:nth-child(2){left:13%;animation-duration:23s;animation-delay:4s;width:3px;height:3px}
.dust i:nth-child(3){left:21%;animation-duration:19s;animation-delay:9s}.dust i:nth-child(4){left:29%;animation-duration:26s;animation-delay:2s;width:5px;height:5px}
.dust i:nth-child(5){left:37%;animation-duration:21s;animation-delay:11s;width:3px;height:3px}.dust i:nth-child(6){left:44%;animation-duration:18s;animation-delay:6s}
.dust i:nth-child(7){left:52%;animation-duration:25s;animation-delay:13s;width:5px;height:5px}.dust i:nth-child(8){left:58%;animation-duration:20s;animation-delay:1s}
.dust i:nth-child(9){left:65%;animation-duration:24s;animation-delay:8s;width:3px;height:3px}.dust i:nth-child(10){left:72%;animation-duration:16s;animation-delay:5s}
.dust i:nth-child(11){left:79%;animation-duration:27s;animation-delay:12s;width:5px;height:5px}.dust i:nth-child(12){left:85%;animation-duration:22s;animation-delay:3s}
.dust i:nth-child(13){left:91%;animation-duration:18s;animation-delay:10s;width:3px;height:3px}.dust i:nth-child(14){left:96%;animation-duration:24s;animation-delay:7s}
.dust i:nth-child(15){left:33%;animation-duration:28s;animation-delay:15s}.dust i:nth-child(16){left:68%;animation-duration:29s;animation-delay:16s;width:3px;height:3px}
@keyframes lxup{0%{transform:translate(0,0);opacity:0}10%{opacity:.9}85%{opacity:.7}100%{transform:translate(30px,-105vh);opacity:0}}
.lx-arch,.lx-foot{z-index:1}
.lx-arch{animation:lxin 1.1s cubic-bezier(.2,.7,.2,1) both}
@keyframes lxin{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
.lx-arch:after{content:"";position:absolute;inset:-2px;border-radius:215px 215px 10px 10px;padding:2px;pointer-events:none;
 background:conic-gradient(from var(--lxa,0deg),transparent 0 70%,rgba(255,236,170,.95) 80%,transparent 90%);
 -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;animation:lxspin 7s linear infinite}
@property --lxa{syntax:"<angle>";inherits:false;initial-value:0deg}
@keyframes lxspin{to{--lxa:360deg}}
@media(max-width:480px){.lx-arch:after{border-radius:160px 160px 10px 10px}}
@media(prefers-reduced-motion:reduce){.lx-bg b,.dust i,.lx-arch,.lx-arch:after{animation:none}.dust{display:none}}
