:root{
  --bg:#f5f1eb;--panel:#fff;--ink:#2d2925;--muted:#7e766d;--line:#e7ddd2;
  --accent:#a77953;--accent-dark:#765039;--soft:#f0e6dc;--green:#2e7d51;--green-soft:#dbf0e3;
  --amber:#a66a13;--amber-soft:#ffe9bf;--red:#a54545;--red-soft:#f6d9d9;--blue:#315c96;--blue-soft:#dfe9fb;
  --shadow:0 8px 28px rgba(55,43,32,.07);--radius:18px;
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;min-height:100%;font-family:-apple-system,BlinkMacSystemFont,"SF Pro Text","Segoe UI",Arial,sans-serif;background:var(--bg);color:var(--ink)}
button,input,select,textarea{font:inherit}button{cursor:pointer} .hidden{display:none!important}
.login-screen{min-height:100dvh;padding:max(28px,env(safe-area-inset-top)) 20px max(28px,env(safe-area-inset-bottom));display:flex;align-items:center;justify-content:center;background:linear-gradient(180deg,#fbf9f6,#f2ece5)}
.login-shell{width:min(520px,100%);background:var(--panel);border:1px solid var(--line);border-radius:28px;padding:25px;box-shadow:var(--shadow)}
.brand-mark{width:60px;height:60px;border-radius:18px;background:var(--ink);color:#fff;display:grid;place-items:center;font-weight:850;letter-spacing:1px;margin:0 auto 18px}.eyebrow{font-size:11px;letter-spacing:1.25px;font-weight:800;color:var(--accent-dark)}
.login-shell h1{font-size:30px;margin:5px 0}.center{text-align:center}.muted{color:var(--muted)}.small{font-size:12px}.demo-note{font-size:11px;color:var(--muted);line-height:1.45;text-align:center;margin:18px 0 0}.login-shell>.eyebrow{text-align:center}
.role-grid{display:grid;gap:9px;margin:22px 0}.role-card{border:1px solid var(--line);background:#fff;border-radius:15px;padding:12px 13px;display:flex;text-align:left;align-items:center;gap:12px;color:var(--ink)}.role-card.selected{border-color:var(--accent);background:#fbf5ef;box-shadow:0 0 0 1px var(--accent) inset}.role-icon{width:36px;height:36px;border-radius:11px;background:var(--soft);display:grid;place-items:center;color:var(--accent-dark);font-weight:900}.role-card span:last-child{display:flex;flex-direction:column;gap:2px}.role-card small{color:var(--muted)}
.field-label{display:block;margin:11px 0 5px;font-size:12px;color:var(--muted);font-weight:750}.login-input,input,select,textarea{width:100%;border:1px solid var(--line);border-radius:12px;padding:12px;background:#fff;color:var(--ink);outline:none}.login-input:focus,input:focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(167,121,83,.12)}textarea{min-height:88px;resize:vertical}
.primary,.secondary,.danger,.success,.text-btn,.mini-btn{border:0;border-radius:12px;font-weight:750;padding:12px 14px}.primary{background:var(--accent-dark);color:#fff}.secondary{background:var(--soft);color:var(--ink)}.danger{background:var(--red);color:#fff}.success{background:var(--green);color:#fff}.full{width:100%;margin-top:14px}.text-btn{background:transparent;color:var(--accent-dark);width:100%;margin-top:9px}.mini-btn{padding:8px 10px;font-size:12px;background:var(--soft);color:var(--ink)}
.setup-notice{margin-top:14px;padding:12px;border-radius:12px;background:var(--amber-soft);color:#6f490d;font-size:12px;line-height:1.45}
.app-shell{min-height:100dvh}.topbar{position:sticky;top:0;z-index:20;padding:max(13px,env(safe-area-inset-top)) 16px 11px;background:rgba(255,255,255,.94);backdrop-filter:blur(16px);border-bottom:1px solid var(--line);display:flex;align-items:flex-end;justify-content:space-between;gap:12px}.topbar h2{margin:3px 0 0;font-size:24px}.topbar-actions{display:flex;gap:7px;align-items:center}.icon-btn,.avatar-btn{border:1px solid var(--line);background:#fff;width:40px;height:40px;border-radius:13px;font-weight:800;color:var(--ink)}.avatar-btn{border-radius:50%;background:var(--ink);color:#fff;border:0;font-size:11px}.sync-badge{font-size:9px;letter-spacing:.8px;font-weight:850;border-radius:999px;padding:6px 7px;background:var(--green-soft);color:var(--green)}.sync-badge.offline{background:var(--amber-soft);color:var(--amber)}
.app-main{padding:15px 14px calc(92px + env(safe-area-inset-bottom));max-width:1080px;margin:auto}.bottom-nav{position:fixed;z-index:30;bottom:0;left:0;right:0;background:rgba(255,255,255,.97);backdrop-filter:blur(16px);border-top:1px solid var(--line);padding:7px 6px calc(7px + env(safe-area-inset-bottom));display:grid;grid-auto-flow:column;grid-auto-columns:1fr}.nav-btn{border:0;background:transparent;color:var(--muted);padding:5px 2px;display:flex;flex-direction:column;align-items:center;gap:3px;font-size:10px;font-weight:700}.nav-btn .nav-icon{font-size:20px;line-height:1}.nav-btn.active{color:var(--accent-dark)}
.grid{display:grid;grid-template-columns:repeat(12,1fr);gap:11px}.card{grid-column:span 12;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:14px;box-shadow:var(--shadow)}.kpi{grid-column:span 6}.kpi .label{font-size:11px;color:var(--muted);font-weight:750}.kpi .value{font-size:29px;font-weight:850;margin-top:5px}.kpi .sub{font-size:10px;color:var(--muted);margin-top:2px}.section-title{font-size:16px;margin:17px 0 9px}.card h3{margin:0 0 10px;font-size:16px}.card h4{margin:0 0 6px}.row{display:flex;gap:8px;align-items:center}.row.wrap{flex-wrap:wrap}.row.between{justify-content:space-between}.grow{flex:1}.stack{display:grid;gap:9px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px}.form-grid.one{grid-template-columns:1fr}.toolbar{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:10px}.toolbar>*{flex:1;min-width:100px}.toolbar .tight{flex:0 0 auto}
.status{display:inline-block;border-radius:999px;padding:4px 8px;font-size:10px;font-weight:800;white-space:nowrap}.s-dirty{background:var(--red-soft);color:#813636}.s-cleaning{background:var(--amber-soft);color:#80500b}.s-inspect{background:var(--blue-soft);color:#294d80}.s-ready{background:var(--green-soft);color:#24623d}.s-ooo{background:#e8e6e3;color:#56514c}.priority{font-size:10px;font-weight:800;color:var(--red)}
.room-list{display:grid;gap:9px}.room-card{background:#fff;border:1px solid var(--line);border-radius:15px;padding:12px}.room-head{display:flex;justify-content:space-between;gap:8px;align-items:flex-start}.room-title{font-size:18px;font-weight:850}.room-name{font-size:11px;color:var(--muted);margin-top:2px}.room-meta{display:flex;gap:6px;flex-wrap:wrap;margin-top:9px;color:var(--muted);font-size:11px}.pill{background:#f7f3ef;border:1px solid var(--line);border-radius:999px;padding:4px 7px}.room-actions{display:flex;gap:7px;margin-top:10px}.room-actions button{flex:1;border:0;border-radius:10px;padding:9px;font-weight:750;font-size:11px}.action-start{background:var(--amber-soft);color:#72500f}.action-inspect{background:var(--blue-soft);color:#284b7c}.action-edit{background:var(--soft);color:var(--ink)}
.list{display:grid;gap:8px}.list-item{background:#fff;border:1px solid var(--line);border-radius:14px;padding:11px}.list-item .title{font-weight:800}.list-item .meta{font-size:11px;color:var(--muted);margin-top:4px}.list-item.urgent{border-left:4px solid var(--red)}
.progress{height:10px;background:#eee8e1;border-radius:999px;overflow:hidden}.progress>div{height:100%;background:var(--accent);border-radius:999px}.alert{padding:11px 12px;border-radius:13px;background:var(--amber-soft);font-size:12px;color:#6e4b12}.ok-alert{background:var(--green-soft);color:#245c39}.info-alert{background:var(--blue-soft);color:#294e80}.empty{padding:24px 12px;text-align:center;color:var(--muted);font-size:13px}
.table-scroll{overflow:auto;border:1px solid var(--line);border-radius:13px;background:#fff}table{border-collapse:collapse;width:100%;min-width:650px}th,td{padding:9px;border-bottom:1px solid var(--line);font-size:11px;text-align:left}th{background:#f5efe9;color:#665e55;position:sticky;top:0}.schedule-grid{display:grid;grid-template-columns:repeat(7,minmax(80px,1fr));gap:6px;overflow:auto}.day-card{border:1px solid var(--line);border-radius:12px;padding:9px;background:#fff;min-width:80px}.day-card b{display:block;font-size:11px}.day-card span{font-size:10px;color:var(--muted)}
.more-menu{display:grid;grid-template-columns:1fr 1fr;gap:9px}.more-button{border:1px solid var(--line);background:#fff;border-radius:15px;padding:15px;text-align:left;color:var(--ink)}.more-button b{display:block}.more-button small{display:block;margin-top:4px;color:var(--muted);line-height:1.3}
.check-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px}.check-item{border:1px solid var(--line);border-radius:11px;padding:9px;font-size:11px;background:#faf8f5}.check-item input{width:auto;margin-right:6px}.badge{display:inline-block;background:var(--soft);border-radius:999px;padding:4px 7px;font-size:10px;font-weight:750}.hr{height:1px;background:var(--line);margin:13px 0}
.modal{border:0;padding:0;background:transparent;width:min(620px,calc(100% - 22px));max-height:88dvh}.modal::backdrop{background:rgba(35,29,24,.45);backdrop-filter:blur(4px)}.modal-card{background:#fff;border-radius:22px;padding:17px;max-height:88dvh;overflow:auto;box-shadow:0 20px 60px rgba(0,0,0,.2)}.modal-head{display:flex;justify-content:space-between;align-items:flex-start;gap:8px;margin-bottom:10px}.modal-head h3{margin:4px 0;font-size:20px}.close-btn{font-size:20px}.modal-actions{display:flex;gap:8px;margin-top:14px}.modal-actions>*{flex:1}.toast{position:fixed;z-index:100;left:50%;bottom:calc(88px + env(safe-area-inset-bottom));transform:translate(-50%,20px);opacity:0;pointer-events:none;background:#2f2a26;color:#fff;padding:10px 13px;border-radius:999px;font-size:12px;font-weight:700;transition:.2s;white-space:nowrap;max-width:92vw;overflow:hidden;text-overflow:ellipsis}.toast.show{opacity:1;transform:translate(-50%,0)}
@media(min-width:720px){.kpi{grid-column:span 3}.card.half{grid-column:span 6}.card.third{grid-column:span 4}.room-list{grid-template-columns:repeat(2,1fr)}.more-menu{grid-template-columns:repeat(3,1fr)}.app-main{padding-left:20px;padding-right:20px}}
@media(max-width:380px){.form-grid,.check-grid{grid-template-columns:1fr}.topbar h2{font-size:21px}.room-title{font-size:16px}}
