/* ===================== round 2: additions to royal.css ===================== */
.mk .r-nav-i em.busy{width:14px;height:14px;display:grid;place-items:center}
.mk .r-nav-i em.busy i,.mk .tb-i em.busy i{width:7px;height:7px;border-radius:50%;background:var(--m-blue);display:block;animation:pingB 1.6s ease-out infinite}
@keyframes pingB{0%{box-shadow:0 0 0 0 rgba(147,170,240,.6)}80%,100%{box-shadow:0 0 0 7px rgba(147,170,240,0)}}
.mk.phone .strip > .opt{display:none}
.mk .tb-i em.busy{top:2px;left:calc(50% + 10px)}
.mk .tb-i em.busy{background:none;padding:0}
.mk .r-live.off{color:var(--m-red)}
.mk .off-dot{width:7px;height:7px;border-radius:50%;background:var(--m-red);display:inline-block}
.mk .p-brand{display:flex;align-items:center;gap:9px}
.mk .p-brand svg{width:22px;height:24px;display:block}
.mk .p-brand b{font-family:var(--m-caps);font-size:11px;letter-spacing:.16em;font-weight:700}
.mk .p-bar .calib{font-size:8.5px;padding:3px 7px}
.mk .loading-note{display:flex;align-items:center;gap:8px;color:var(--m-muted);font-size:12px}
.mk .lnk-plain{background:none;border:0;padding:0;text-align:left;color:var(--m-fg);font:inherit;font-weight:600;cursor:pointer;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block}
.mk .lnk-plain:hover{color:var(--m-gold)}
.mk .bar-note{color:var(--m-muted);font-size:12px;max-width:62ch}
.mk .m-foot{color:var(--m-faint);font-size:11.5px;text-align:center}
.mk .tbl-empty{padding:12px}
.mk .tbl-empty .empty{border:0}
.mk [data-rows].swap > *{animation:stIn .4s var(--ease) both}
.mk .qrow.h{font-family:var(--m-caps);font-size:9.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--m-faint);border-top:0;padding-top:12px;padding-bottom:10px;border-bottom:1px solid var(--m-gl)}
.mk .qrow.h + .qrow{border-top:0}
.mk .qrow > .btn{justify-self:end}
.mk .tr .vf{white-space:normal;align-items:flex-start;line-height:1.3}
.mk .tr .vf::before{margin-top:4px}
.mk .flag-n.zero{box-shadow:none;color:var(--m-faint)}
.mk.phone .qcard{gap:10px}
.mk.phone .qcard .mc-n{white-space:normal;font-size:15px}
.mk .act-col{display:grid;gap:8px;justify-items:stretch;min-width:140px}
.mk.phone .act-col{display:grid;gap:8px;margin-top:4px}
.mk .replay-l{grid-column:1/-1;margin-top:-6px}
.mk .lc{cursor:pointer}
.mk .lc.sheen::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(105deg,transparent 30%,rgba(255,236,190,.16) 50%,transparent 70%);background-size:250% 100%;animation:sheenOnce 1.4s ease-out both}
@keyframes sheenOnce{from{background-position:120% 0}to{background-position:-60% 0}}
.mk .lc.sheen{border-color:var(--m-gl)}
.mk .empty .em-crest svg{width:56px;height:62px;display:block;opacity:.9}
.mk .laurel{width:110px;height:110px}
.mk .laurel ellipse{animation:leaf .5s var(--ease) both;animation-delay:var(--d)}
@keyframes leaf{from{opacity:0}}
.mk .glare{position:absolute;inset:0;pointer-events:none;background:radial-gradient(420px circle at var(--mx,78%) var(--my,10%),rgba(255,236,190,.075),transparent 62%);z-index:0}
.mk .r-cert > *:not(.glare):not(.orn){position:relative;z-index:1}
.mk .ph-row.st-checking .ph-num{color:var(--m-muted)}
.mk .vb .spin{width:9px;height:9px;border-radius:50%;border:1.6px solid currentColor;border-right-color:transparent;animation:spin .9s linear infinite;display:inline-block}
.mk .ph-row.arrive{animation:arrive .6s var(--ease) both;animation-delay:calc(var(--i,0) * 120ms)}
.mk .ribbon{display:flex;gap:12px;align-items:flex-start;border:1px solid var(--m-gl);background:linear-gradient(90deg,rgba(207,174,110,.1),rgba(207,174,110,.02));padding:14px 18px;font-size:13px}
.mk .ribbon .ic{color:var(--m-gold);width:18px;height:18px;margin-top:1px}
.mk .ribbon b{color:var(--m-gold);font-weight:600}
.mk .facts{grid-template-columns:repeat(4,minmax(0,1fr))}
.mk .fact.est{grid-column:1/-1}
.mk .fact .num{display:block}
.mk .shake{animation:shake .4s}
@keyframes shake{20%,60%{transform:translateX(-4px)}40%,80%{transform:translateX(4px)}}
.mk .fb-top .btn{flex:none}
.mk .step span{font-size:10.5px;color:var(--m-faint)}
.mk .r-grid.even{grid-template-columns:1fr 1fr}
.mk .ic-wrap{color:var(--m-muted);display:inline-flex}
.mk .approved{display:flex;gap:14px;align-items:center;padding:6px 0}
.mk .approved b{font-weight:600}
.mk .check-burst{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;flex:none;background:radial-gradient(circle,rgba(85,197,146,.25),rgba(85,197,146,.05));box-shadow:inset 0 0 0 1px var(--m-good);color:var(--m-good);animation:popIn .6s var(--spring) both}
.mk .check-burst .ic{width:22px;height:22px;stroke-width:2.6}
@keyframes popIn{from{transform:scale(.3);opacity:0}}
.mk .hc .st.bad{background:var(--m-red);box-shadow:0 0 10px rgba(227,104,122,.7);animation:pulse 1.4s ease-in-out infinite}
.mk .menu-h{font-family:var(--m-caps);font-size:10px;letter-spacing:.18em;color:var(--m-muted);text-transform:uppercase;padding:6px 2px 0}
.mk .menu-i small{display:block;font-size:11.5px;color:var(--m-muted);margin-top:1px}
.mk .menu-i.static{cursor:default}
.mk .menu-i em.pill{background:var(--m-amber);color:#1d1300;font-weight:700;padding:1px 8px;border-radius:999px;font-size:11px}
.mk .menu-i > .ic:last-child{width:16px;height:16px;color:var(--m-faint)}
.mk .ov-card.wide{max-width:560px}
.mk .ov-card .decide{border:0;padding:0;background:none;animation:none}
.mk .ov-card .reason{margin-top:-4px}
.mk .steps-i{display:grid;gap:10px;margin:0;padding:0;list-style:none;font-size:14px}
.mk .steps-i li{display:flex;align-items:center;gap:10px}
.mk .steps-i b{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;border:1px solid var(--m-gl);color:var(--m-gold);font-size:12px;flex:none}
.mk .steps-i .ic{color:var(--m-blue)}
.mk .inst-ic{display:grid;justify-items:center;gap:6px;font-size:12px;color:var(--m-muted);padding:6px 0}

/* document viewer */
.mk .ov-card.doc-v{max-width:520px}
.mk.phone .ov-card.doc-v{max-height:88%;overflow:auto}
.mk .paper{background:#f7f3ea;color:#22201b;border-radius:2px;padding:20px 22px;display:grid;gap:12px;font-size:12px;box-shadow:0 10px 30px rgba(0,0,0,.35);font-family:system-ui,sans-serif;animation:paper .5s var(--ease) both}
@keyframes paper{from{opacity:0;transform:translateY(10px) rotate(-.6deg)}}
.mk .pp-h{display:grid;gap:2px;border-bottom:1px solid #d9d2c3;padding-bottom:10px}
.mk .pp-h b{font-size:15px}
.mk .pp-h span{color:#6b665c;font-size:11px}
.mk .pp-sum{display:grid;gap:2px}
.mk .pp-f{display:flex;justify-content:space-between;gap:12px;padding:5px 8px;position:relative;border-radius:2px}
.mk .pp-f span{color:#55504a}
.mk .pp-f.hit{background:rgba(226,194,125,.28);box-shadow:inset 0 0 0 1.5px #c49a45;animation:hit 1.2s .4s ease-out both}
@keyframes hit{0%{box-shadow:inset 0 0 0 0 #c49a45;background:transparent}60%{box-shadow:inset 0 0 0 2.5px #c49a45}}
.mk .pp-f.hit em{position:absolute;right:-6px;top:-18px;font-style:normal;font-size:9.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;background:#c49a45;color:#fff;padding:2px 7px;border-radius:2px}
.mk .pp-lines{display:grid;gap:7px;padding-top:6px;border-top:1px dashed #d9d2c3}
.mk .pp-lines i{height:6px;background:#e4ddcf;border-radius:3px;display:block}
.mk .pp-lines i:nth-child(odd){width:86%}
.mk .pp-lines i:nth-child(3n){width:64%}
.mk .pp-quote{display:grid;gap:4px;border-inline-start:3px solid #c49a45;background:rgba(226,194,125,.12);padding:8px 10px}
.mk .pp-quote span{font-size:9.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#8a6a2c}
.mk .pp-quote q{font-family:"Courier New",ui-monospace,monospace;font-size:12px;color:#22201b;quotes:"“" "”";white-space:pre-wrap;overflow-wrap:anywhere}
.mk .pp-empty{display:grid;justify-items:center;gap:8px;text-align:center;padding:22px 12px;border:1px dashed #d9d2c3;color:#55504a;font-size:12.5px;line-height:1.45}
.mk .pp-empty .ic{width:26px;height:26px;color:#a59c8a}
.mk .pp-check{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:12px;color:var(--m-muted)}

/* comets, rings, ripples, toast: drawn above the prototype, outside its re-rendered content */
.comet{position:absolute;left:0;top:0;width:12px;height:12px;margin:-6px 0 0 -6px;border-radius:50%;background:radial-gradient(circle,#fffaf0 0 28%,#f0d593 55%,rgba(226,194,125,0) 72%);box-shadow:0 0 16px 5px rgba(226,194,125,.55);pointer-events:none;z-index:60}
.comet.t{width:6px;height:6px;margin:-3px 0 0 -3px;box-shadow:0 0 8px 2px rgba(226,194,125,.35);opacity:.55}
.ring{position:absolute;width:10px;height:10px;margin:-5px 0 0 -5px;border-radius:50%;border:1.5px solid #e2c27d;pointer-events:none;z-index:59;animation:ring .65s ease-out forwards}
@keyframes ring{to{transform:scale(6);opacity:0}}
.mk .btn,.mk .pickbtn,.mk .chip,.mk .fseg button,.mk .menu-i,.mk .mc,.mk .qcard{position:relative;overflow:hidden}
.mk .rip{position:absolute;border-radius:50%;pointer-events:none;background:radial-gradient(circle,rgba(255,238,200,.35),rgba(255,238,200,0) 60%);transform:scale(0);animation:rip .6s ease-out forwards}
@keyframes rip{to{transform:scale(1);opacity:0}}
.toast{position:absolute;left:50%;bottom:26px;z-index:70;display:flex;align-items:center;gap:10px;transform:translate(-50%,16px) scale(.96);opacity:0;background:linear-gradient(180deg,#ecd08f,#c7a35d);color:#1a1306;padding:11px 18px;border-radius:2px;font:600 12.5px/1.4 "Jost",system-ui,sans-serif;letter-spacing:.01em;transition:opacity .25s,transform .5s cubic-bezier(.2,1.25,.35,1);pointer-events:none;width:max-content;max-width:calc(100% - 32px);box-shadow:0 14px 34px rgba(0,0,0,.45)}
.toast.on{opacity:1;transform:translate(-50%,0) scale(1)}
.toast .t-dia{width:6px;height:6px;transform:rotate(45deg);background:#1a1306;flex:none}
.r-splash .sp-crest svg{width:120px;height:132px;display:block;animation:spIn 1.1s .25s ease both}

/* Error state: centred, with a calm breathing alert. */
.mk.desk .errbox{margin:56px auto 0;padding:28px 30px}
.mk .errbox h2 .ic{border-radius:50%;animation:errBreath 2.6s ease-in-out infinite}
@keyframes errBreath{50%{box-shadow:0 0 0 6px rgba(227,104,122,.12)}}
.mk .loading-note{display:flex;align-items:center;gap:8px;color:var(--m-muted);font-size:13px;margin:4px 0 12px}
.mk .loading-note .ic{width:16px;height:16px;animation:hintPulse 1.6s ease-in-out infinite}
@keyframes hintPulse{50%{opacity:.3}}

/* All clear: the laurel is the hero of the empty review queue. */
.mk .empty svg.laurel{width:132px;height:132px;filter:drop-shadow(0 0 18px rgba(226,194,125,.22));animation:laurelGlow 3.2s ease-in-out 1.2s infinite}
@keyframes laurelGlow{50%{filter:drop-shadow(0 0 28px rgba(226,194,125,.4))}}
.mk.phone .empty svg.laurel{width:112px;height:112px}
.mk .laurel .lf{transform-box:fill-box;transform-origin:50% 100%;animation:leafGrow .55s var(--spring) both;animation-delay:var(--d)}
.mk .laurel .lf.i{opacity:.82}
@keyframes leafGrow{from{transform:scale(0);opacity:0}}
.mk .laurel .stems path{stroke-dasharray:90;stroke-dashoffset:90;animation:stemDraw .7s var(--ease) .1s forwards}
@keyframes stemDraw{to{stroke-dashoffset:0}}
.mk .laurel .lau-crown{transform-box:fill-box;transform-origin:50% 100%;animation:crownDrop .6s var(--spring) 1.15s both}
@keyframes crownDrop{from{transform:translateY(-10px) scale(.6);opacity:0}}
.mk.phone .srch{max-width:none;width:100%;flex-basis:100%}
.mk.phone .bar .fseg{width:100%;display:grid;grid-template-columns:repeat(4,auto)} .mk.phone .bar .fseg button{white-space:nowrap;justify-content:center}
