.btn-blue{background:var(--blue);color:#fff}
.btn-green{background:var(--green);color:#000}
.btn-ghost{background:var(--sur2);color:var(--ink);border:1.5px solid var(--bdr2)}
.btn-ghost-red{background:var(--red-lt);color:var(--red);border:1.5px solid rgba(255,69,58,.3)}
.btn-ghost-amber{background:var(--amber-lt);color:var(--amber);border:1.5px solid rgba(255,159,10,.3)}
.btn-full{width:100%;min-height:60px;font-size:18px;border-radius:18px}
.btn-sm{min-height:44px;padding:0 16px;font-size:14px;border-radius:12px}
.btn-xs{min-height:38px;padding:0 12px;font-size:13px;border-radius:10px;font-weight:800}
.chip{display:inline-flex;align-items:center;padding:4px 10px;border-radius:8px;font-size:13px;font-weight:700;font-family:var(--mono)}
.chip-ok{background:var(--green-lt);color:var(--green)}.chip-fail{background:var(--red-lt);color:var(--red)}
.chip-warn{background:var(--amber-lt);color:var(--amber)}.chip-gray{background:var(--gray-lt);color:var(--ink3)}
.chip-high{background:var(--red-lt);color:var(--red)}.chip-medium{background:var(--amber-lt);color:var(--amber)}.chip-low{background:var(--blue-lt);color:var(--blue)}
.pills-row{display:flex;gap:8px;flex-wrap:nowrap;overflow-x:auto;padding-bottom:4px;margin-bottom:14px;-webkit-overflow-scrolling:touch}
.pill{display:flex;align-items:center;gap:5px;padding:10px 18px;border-radius:24px;border:1.5px solid var(--bdr2);background:var(--sur);color:var(--ink3);font-size:15px;font-weight:700;cursor:pointer;white-space:nowrap;font-family:var(--font);flex-shrink:0;transition:all .1s}
.pill:active{transform:scale(.92)}
.pill.active{background:var(--blue);border-color:var(--blue);color:#fff}
.search-wrap{position:relative;margin-bottom:14px}
.search-inp{width:100%;height:52px;background:var(--sur);border:1.5px solid var(--bdr2);border-radius:14px;padding:0 48px 0 46px;font-size:16px;color:var(--ink);font-family:var(--font);outline:none}
.search-inp:focus{border-color:var(--blue)}
.search-inp::placeholder{color:var(--ink4)}
.s-ico{position:absolute;left:14px;top:50%;transform:translateY(-50%);font-size:19px;pointer-events:none;opacity:.4}
.s-clr{position:absolute;right:12px;top:50%;transform:translateY(-50%);width:26px;height:26px;border-radius:50%;background:var(--sur3);border:none;color:var(--ink3);font-size:15px;cursor:pointer;display:none;align-items:center;justify-content:center;font-weight:800}
.s-clr.show{display:flex}
.floor-sec{margin-bottom:22px}
.floor-hdr{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.7px;color:var(--ink4);margin-bottom:10px}
.floor-cnt{background:var(--sur2);border:1px solid var(--bdr);border-radius:6px;padding:1px 8px;font-size:11px;color:var(--ink3)}
.room-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:10px}
.room-card{background:var(--sur);border:1px solid var(--bdr);border-radius:var(--rlg);overflow:hidden;cursor:pointer;position:relative;transition:transform .1s,opacity .1s}
.room-card:active{transform:scale(.91);opacity:.75}
.rc-stripe{height:5px}
.rc-body{padding:11px 11px 13px}
.rc-num{font-size:26px;font-weight:900;line-height:1;font-family:var(--mono);letter-spacing:-.5px}
.rc-floor{font-size:11px;color:var(--ink4);margin-bottom:8px}
.rc-chips{display:flex;flex-direction:column;gap:3px}
.rc-mot{margin-top:8px;font-size:11px;font-weight:700;font-family:var(--mono);padding:3px 7px;border-radius:6px;display:inline-block}
.rc-mot.urgent{background:var(--red-lt);color:var(--red)}.rc-mot.warning{background:var(--amber-lt);color:var(--amber)}
.rc-mot.ok{background:var(--green-lt);color:var(--green)}.rc-mot.none{background:var(--gray-lt);color:var(--ink4)}
.rc-ib{position:absolute;top:8px;right:8px;width:22px;height:22px;background:var(--red);border-radius:50%;font-size:11px;font-weight:900;color:#fff;display:flex;align-items:center;justify-content:center}
.issue-card{background:var(--sur);border:1px solid var(--bdr);border-radius:var(--rlg);overflow:hidden;margin-bottom:11px;border-left:5px solid var(--bdr2);cursor:pointer;transition:background .1s}
.issue-card:active{background:var(--sur2)}
.issue-card.High{border-left-color:var(--red)}.issue-card.Medium{border-left-color:var(--amber)}.issue-card.Low{border-left-color:var(--blue)}
.ic-body{padding:15px}
.ic-top{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:4px}
.ic-room{font-size:17px;font-weight:800;font-family:var(--mono)}
.ic-cat{font-size:13px;color:var(--ink4);margin-bottom:6px}
.ic-desc{font-size:15px;color:var(--ink2);line-height:1.45;margin-bottom:10px}
.ic-foot{display:flex;align-items:center;justify-content:space-between;gap:8px}
.ic-time{font-size:12px;color:var(--ink4);font-family:var(--mono)}
.tech-row{display:flex;gap:8px;margin-top:8px;align-items:center}
.tech-sel{flex:1;padding:8px 10px;border-radius:10px;border:1px solid var(--bdr2);background:var(--sur2);font-size:13px;font-family:var(--font);color:var(--ink2);outline:none}
.issues-panel{background:var(--sur);border:1.5px solid var(--bdr);border-radius:16px;margin-bottom:16px;overflow:hidden}
.issues-panel-hdr{width:100%;display:flex;align-items:center;gap:8px;padding:13px 16px;background:none;border:none;cursor:pointer;font-family:var(--font);text-align:left}
.issues-panel-hdr:active{background:var(--sur2)}
.ip-lbl{font-size:12px;font-weight:700;color:var(--ink4);text-transform:uppercase;letter-spacing:.7px}
.ip-badge{background:var(--red);color:#fff;border-radius:10px;padding:2px 8px;font-size:12px;font-weight:800;margin-left:2px}
.ip-chevron{margin-left:auto;font-size:11px;color:var(--ink4);transition:transform .2s}
.ip-chevron.open{transform:rotate(180deg)}
.issues-panel-body{display:grid;grid-template-rows:1fr;transition:grid-template-rows .22s ease}
.issues-panel-body.closed{grid-template-rows:0fr}
.issues-panel-inner{overflow:hidden;min-height:0;padding:0 14px}
.issues-panel-inner>#issues-wrap{padding-bottom:14px}
.sbox{background:var(--sur);border:1px solid var(--bdr);border-radius:var(--rlg);padding:48px 24px;text-align:center;margin-bottom:14px}
.sbox .si{font-size:48px;margin-bottom:12px}
.sbox .st{font-size:19px;font-weight:700;margin-bottom:5px}
.sbox .sm{font-size:15px;color:var(--ink3)}
@keyframes spin{to{transform:rotate(360deg)}}
.spinner{display:inline-block;width:36px;height:36px;border:3px solid var(--bdr2);border-top-color:var(--blue);border-radius:50%;animation:spin .7s linear infinite;margin-bottom:14px}
.backdrop{display:none;position:fixed;inset:0;z-index:300;background:rgba(42,31,26,.55);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);align-items:flex-start;justify-content:center}
.backdrop.open{display:flex}
.sheet{background:var(--sur);border-radius:0 0 26px 26px;width:100%;max-width:680px;max-height:92vh;overflow-y:auto;animation:sheetDown .25s cubic-bezier(.18,1.1,.46,1)}
@keyframes sheetDown{from{transform:translateY(-100%)}to{transform:translateY(0)}}
.sh-hdr{display:flex;align-items:center;justify-content:space-between;padding:16px 18px;border-bottom:1px solid var(--bdr);position:sticky;top:0;background:var(--sur);z-index:1;gap:10px}
.sh-ttl{font-size:20px;font-weight:900;letter-spacing:-.3px;flex:1}
.sh-sub{font-size:14px;color:var(--ink3);margin-top:2px}
.sh-body{padding:18px}
.d-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:14px}
.d-cell{background:var(--sur2);border:1px solid var(--bdr);border-radius:14px;padding:12px 14px}
.d-lbl{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--ink4);margin-bottom:4px}
.d-val{font-size:17px;font-weight:700}
.form-card{background:var(--sur);border:1px solid var(--bdr);border-radius:var(--rlg);overflow:hidden;margin-bottom:12px}
.fi,.fta,.fsel{width:100%;padding:16px;background:transparent;border:none;font-size:16px;color:var(--ink);font-family:var(--font);border-bottom:1px solid var(--bdr);outline:none;-webkit-appearance:none}
.fi:last-child,.fta:last-child,.fsel:last-child{border-bottom:none}
.fi::placeholder,.fta::placeholder{color:var(--ink4)}
.fta{resize:none;min-height:100px}
.fsel{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='9'%3E%3Cpath d='M1 1l6 6 6-6' stroke='%2355555c' stroke-width='2' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 16px center;padding-right:44px;cursor:pointer}
.cat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;padding:6px 10px 10px}
.cat-btn{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:10px 4px;border:2px solid var(--bdr2);border-radius:12px;background:var(--sur2);cursor:pointer;font-family:var(--font);transition:all .1s}
.cat-btn:active{transform:scale(.88)}
.cat-ico{font-size:22px;line-height:1}
.cat-lbl{font-size:11px;font-weight:700;color:var(--ink3);text-align:center;line-height:1.2}
.cat-btn.sel{border-color:var(--blue);background:var(--blue-lt)}
.cat-btn.sel .cat-lbl{color:var(--blue)}
.g-success{text-align:center;padding:48px 20px;display:none}
@keyframes popIn{from{transform:scale(.05);opacity:0}to{transform:scale(1);opacity:1}}
.suc-ring{width:100px;height:100px;border-radius:50%;background:var(--green-lt);display:flex;align-items:center;justify-content:center;font-size:56px;margin:0 auto 20px;animation:popIn .4s cubic-bezier(.34,1.56,.64,1)}
.suc-ttl{font-size:26px;font-weight:900;margin-bottom:8px}
.suc-sub{font-size:16px;color:var(--ink3);line-height:1.5;margin-bottom:24px}
.err-msg{font-size:14px;color:var(--red);padding:10px 0;display:none;font-weight:700}
.toast{position:fixed;bottom:90px;left:50%;transform:translateX(-50%);background:var(--green);color:#000;padding:12px 22px;border-radius:14px;font-size:15px;font-weight:800;z-index:1000;white-space:nowrap;pointer-events:none;animation:fadeUp .3s ease}
/* MOT */
.chk-item{display:flex;flex-direction:column;background:var(--sur);border:1px solid var(--bdr);border-radius:13px;overflow:hidden;margin-bottom:7px}
.chk-row{display:flex;align-items:stretch;min-height:68px}
.chk-tap{display:flex;align-items:center;width:50%;cursor:pointer;transition:background .1s}
.chk-tap:active{background:rgba(48,209,88,.08)}
.chk-ind{width:44px;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:22px;font-weight:700;border-right:1px solid var(--bdr);align-self:stretch;transition:background .15s}
.chk-ind.p{color:var(--ink4)}.chk-ind.ok{background:rgba(48,209,88,.13);color:var(--green)}
.chk-ind.fail{background:rgba(255,69,58,.13);color:var(--red)}.chk-ind.na{background:rgba(85,85,92,.16);color:var(--gray)}
.chk-txt{flex:1;padding:10px 10px 10px 13px;display:flex;flex-direction:column;justify-content:center}
.chk-lbl{font-size:14px;font-weight:700;color:var(--ink);line-height:1.3}
.chk-side{display:flex;width:50%;border-left:1px solid var(--bdr)}
.csb{flex:1;border:none;background:var(--sur2);font-size:13px;font-weight:800;cursor:pointer;font-family:var(--font);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;color:var(--ink3);border-right:1px solid var(--bdr);min-height:68px;touch-action:manipulation}
.csb:last-child{border-right:none}
.csb:active{opacity:.5}
.csb.sf{background:rgba(255,69,58,.18);color:var(--red)}.csb.sna{background:rgba(100,100,110,.15);color:var(--ink2)}
.mot-prog{background:var(--sur);border:1px solid var(--bdr);border-radius:var(--rlg);padding:18px;margin-bottom:12px}
.mp-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}
.mp-room{font-size:18px;font-weight:800}
.mp-pct{font-size:30px;font-weight:900;font-family:var(--mono);color:var(--blue)}
.track{height:12px;background:var(--sur3);border-radius:6px;overflow:hidden}
.track-fill{height:100%;border-radius:6px;background:var(--blue);transition:width .4s ease}
.track-fill.done{background:var(--green)}.track-fill.fail{background:var(--red)}
.stat-row{display:flex;gap:10px;margin-top:12px}
.stat-cell{flex:1;background:var(--sur2);border:1px solid var(--bdr);border-radius:13px;padding:12px 8px;text-align:center}
.stat-val{font-size:26px;font-weight:900;font-family:var(--mono);line-height:1}
.stat-lbl{font-size:11px;color:var(--ink4);font-weight:700;text-transform:uppercase;letter-spacing:.3px;margin-top:3px}
.stat-cell.ok .stat-val{color:var(--green)}.stat-cell.fail .stat-val{color:var(--red)}.stat-cell.pend .stat-val{color:var(--amber)}
.fail-summary{display:none;margin-bottom:12px}
.fail-summary-title{font-size:13px;font-weight:700;color:var(--red);text-transform:uppercase;letter-spacing:.5px;margin-bottom:8px}
.fail-item{background:var(--red-lt);border:1px solid rgba(255,69,58,.22);border-radius:11px;padding:11px 14px;margin-bottom:7px;display:flex;align-items:flex-start;gap:10px}
/* HK */
.hk-status-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px;margin-bottom:16px}
.hk-room-tile{background:var(--sur);border:1.5px solid var(--bdr);border-radius:12px;padding:10px 12px;cursor:pointer;transition:border-color .1s}
.hk-room-tile:hover{border-color:var(--blue)}
/* Prev */
