
:root{--bg:#f3f7f2;--card:#ffffff;--line:#dbe5d7;--text:#12301d;--muted:#64806d;--blue:#15803d;--green:#16a34a;--red:#dc2626;--amber:#d97706;--purple:#166534;--brand:#0f6a26;--brand2:#2ebd45;--brandsoft:#eaf8ea}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:Arial,sans-serif}button,input,select,textarea{font:inherit}button{cursor:pointer}
.hidden{display:none!important}.top{background:linear-gradient(135deg,var(--brand),#0b3f1a 65%);color:#fff;position:sticky;top:0;z-index:30;box-shadow:0 12px 28px #0000001a}.topin{max-width:1280px;margin:auto;padding:14px 18px;display:flex;justify-content:space-between;gap:14px;align-items:center}.brand{font-size:22px;font-weight:800;letter-spacing:.2px}.sub{font-size:11px;opacity:.86}.who{font-size:12px;text-align:right}.brandwrap{display:flex;align-items:center;gap:12px}.brandlogo{width:56px;height:56px;object-fit:contain;border-radius:14px;background:#fff;padding:4px;box-shadow:0 8px 24px #00000020}.brandtext{display:flex;flex-direction:column}.top .linkwhite{color:#fff;text-decoration:none;border-bottom:1px dashed #ffffff55}.nav{background:#fcfefb;border-bottom:1px solid var(--line);position:sticky;top:84px;z-index:29;overflow:auto;backdrop-filter:blur(8px)}.navin{max-width:1280px;margin:auto;display:flex;gap:6px;padding:9px 10px}.nav button{border:1px solid transparent;background:transparent;padding:10px 12px;border-radius:12px;white-space:nowrap;color:#385444;transition:.18s}.nav button:hover{background:#f1f8f0;border-color:#dbead8}.nav button.active{background:linear-gradient(180deg,#effcf0,#dff6e1);color:#11672b;font-weight:800;border-color:#cde8d1;box-shadow:0 6px 16px #1f7a1f14}
main{max-width:1280px;margin:auto;padding:18px}.page{display:none}.page.active{display:block}h1{font-size:26px;margin:2px 0 13px}h2{font-size:18px;margin:4px 0 10px}h3{font-size:15px}.card{background:linear-gradient(180deg,#ffffff,#fcfffb);border:1px solid var(--line);border-radius:18px;padding:16px;margin-bottom:14px;box-shadow:0 10px 28px #0a200d0d}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:12px}.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:14px}.stat{background:linear-gradient(180deg,#ffffff,#f7fcf7);border:1px solid var(--line);border-radius:18px;padding:14px;box-shadow:0 8px 24px #0a200d08}
.stat.clickable{cursor:pointer;transition:.18s}.stat.clickable:hover{transform:translateY(-2px);box-shadow:0 14px 30px #0a200d14}.stat.clickable:active{transform:translateY(0)}.stat span{font-size:11px;color:var(--muted);display:block}.stat b{font-size:22px;display:block;margin-top:5px}.green{color:var(--green)}.red{color:var(--red)}.amber{color:var(--amber)}.blue{color:var(--blue)}
label{display:block;font-size:12px;color:#4b5563}.req:after{content:" *";color:var(--red)}input,select,textarea{width:100%;padding:11px 12px;border:1px solid #cfddcb;border-radius:12px;margin-top:4px;background:#fff;outline:none;transition:.15s}input:focus,select:focus,textarea:focus{border-color:#7dc78a;box-shadow:0 0 0 4px #dff5e3}textarea{min-height:76px}.btn{border:1px solid var(--line);background:#fff;color:#1f2937;border-radius:12px;padding:10px 12px;font-weight:700;transition:.18s;box-shadow:0 2px 8px #00000006}.btn:hover{transform:translateY(-1px);box-shadow:0 10px 18px #0000000e}.primary{background:linear-gradient(180deg,var(--brand2),var(--brand));color:#fff;border-color:var(--brand)}.soft{background:#edf9ee;color:#176333;border-color:#d6ebd8}.dangerbtn{background:#fff1f1;color:#991b1b;border-color:#fecaca}.greenbtn{background:#dcfce7;color:#166534;border-color:#bbf7d0}.toolbar{display:flex;flex-wrap:wrap;gap:8px;align-items:end;margin-bottom:12px}.toolbar>*{flex:0 0 auto}.toolbar input,.toolbar select{width:auto;min-width:160px}.titlebar{display:flex;justify-content:space-between;gap:8px;align-items:center;flex-wrap:wrap}
.tablewrap{overflow:auto;background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:0 10px 22px #0a200d08}table{width:100%;border-collapse:collapse;min-width:820px}th,td{padding:10px 9px;border-bottom:1px solid var(--line);font-size:12px;text-align:left}th{background:#f6fbf6;position:sticky;top:0}tr.click{cursor:pointer}tr.click:hover{background:#f7fcf7}.roomcards{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.room{background:linear-gradient(180deg,#ffffff,#fbfffb);border:1px solid var(--line);border-radius:18px;padding:14px;cursor:pointer;transition:.18s;box-shadow:0 8px 22px #0a200d08}.room:hover{transform:translateY(-2px);box-shadow:0 16px 32px #0a200d14}.room p{font-size:12px;color:var(--muted);line-height:1.6}.tag{display:inline-block;padding:4px 8px;border-radius:999px;font-size:11px;font-weight:700}.male{background:#dbeafe;color:#1e40af}.female{background:#fce7f3;color:#9d174d}.mixed{background:#ecfdf3;color:#166534}.bar{height:8px;background:#eef5ef;border-radius:99px;overflow:hidden}.bar i{display:block;height:100%;background:linear-gradient(90deg,var(--brand2),var(--brand))}
.bunks{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.bunk{background:#fff;border:1px solid var(--line);border-radius:16px;padding:10px;box-shadow:0 6px 18px #0a200d08}.bunk h3{font-size:12px;color:var(--muted);margin:0 0 5px}.bed{border:1px solid transparent;border-radius:12px;padding:10px;margin-top:7px;cursor:pointer;transition:.16s}.bed:hover{transform:translateY(-1px)}.free{background:#e8fceb;border-color:#9ee6aa}.occupied{background:#fff0f0;border-color:#f8b4b4}.reserved{background:#fff7dc;border-color:#f5c34b}.bedtop{display:flex;justify-content:space-between;gap:8px;font-size:12px;font-weight:700}.mini{font-size:11px;color:#4b5563;margin-top:4px;line-height:1.45}.photo{width:82px;height:82px;object-fit:cover;border-radius:50%;background:#e5e7eb;display:grid;place-items:center;font-weight:800;color:#1e3a8a}.profile{display:flex;gap:13px;align-items:center}.line{display:flex;justify-content:space-between;gap:10px;padding:8px 0;border-bottom:1px solid var(--line);font-size:12px}.line span:last-child{text-align:right;font-weight:600}.note{font-size:12px;color:var(--muted);line-height:1.55}.service{padding:10px 0;border-bottom:1px solid var(--line)}.money{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:8px}.money div{background:#f7fcf7;border-radius:12px;padding:8px;text-align:center;font-size:11px}.money b{display:block;margin-top:2px}.perm{display:flex;justify-content:space-between;gap:10px;align-items:center;padding:10px 0;border-bottom:1px solid var(--line)}.toggle{border:0;border-radius:999px;padding:7px 10px;font-size:11px;font-weight:800}.on{background:#dcfce7;color:#166534}.off{background:#fee2e2;color:#991b1b}.audit{padding:9px 0;border-bottom:1px solid var(--line);font-size:12px}.audit b{display:block;margin-bottom:3px}.modal{position:fixed;inset:0;background:#0008;display:none;align-items:flex-end;z-index:60;backdrop-filter:blur(3px)}.modal.show{display:flex}.sheet{background:#fff;width:100%;max-width:820px;margin:auto;border-radius:24px 24px 0 0;padding:18px;max-height:92vh;overflow:auto;box-shadow:0 18px 50px #00000024}.close{float:right;border:0;background:#edf2ee;border-radius:10px;padding:8px 11px}.login{position:fixed;inset:0;background:radial-gradient(circle at top,#eef9f0,#e8f0ea 60%,#e3ebe5);display:grid;place-items:center;z-index:100;padding:20px}.loginbox{width:min(460px,100%);background:linear-gradient(180deg,#ffffff,#fbfffb);border:1px solid var(--line);border-radius:24px;padding:28px;box-shadow:0 18px 46px #0b28100f}.loginbox h1{margin:10px 0 4px}.loginbox button{width:100%;margin-top:12px}.loginlogo{width:110px;height:110px;object-fit:contain;display:block;margin:0 auto;border-radius:22px;background:#fff;padding:8px;box-shadow:0 14px 30px #0a200d12}.loginsub{text-align:center}.toast{position:fixed;right:14px;bottom:14px;background:#0d3d18;color:#fff;border-radius:12px;padding:11px 13px;z-index:90;display:none;max-width:330px;font-size:12px;box-shadow:0 18px 36px #0a200d2b}.check{display:flex;gap:8px;align-items:center;padding:7px 0}.check input{width:auto;margin:0}
@media(max-width:820px){.stats{grid-template-columns:1fr 1fr}.grid2,.grid3{grid-template-columns:1fr}.roomcards{grid-template-columns:1fr 1fr}.bunks{grid-template-columns:1fr 1fr}.nav{top:84px}}@media(max-width:560px){.roomcards,.bunks{grid-template-columns:1fr}.topin{align-items:flex-start}.who{max-width:160px}.toolbar input,.toolbar select{width:100%;min-width:0}.toolbar>*{flex:1 1 100%}.brandlogo{width:48px;height:48px}.brand{font-size:19px}.nav{top:92px}}

.room .room-status-mini{font-size:12px;font-weight:700;margin-top:4px}
.room .room-status-mini .occ{color:#dc2626}
.room .room-status-mini .res{color:#d97706}
.room .room-status-mini .freec{color:#16a34a}

.building-section{grid-column:1/-1;margin:4px 0 16px}
.building-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:6px 0 10px;padding:9px 12px;border:1px solid #e5e7eb;border-radius:12px;background:#f8fafc}
.building-head h2{margin:0;font-size:17px}
.building-code{font-weight:800}
.settings-building{border:1px solid #dbe3ee;border-radius:14px;padding:12px;margin:10px 0;background:#fbfdff}
.settings-building.inactive{opacity:.65}
.room.inactive{opacity:.6}

.v34-s-ab79ea2b85{margin:0}
.v34-s-df928149c5{margin-top:10px}
.v34-s-ae23a81db6{box-shadow:none;border:1px dashed #cbd5e1}
.v34-s-43a97fe494{margin-top:8px}
.v34-s-830e222abf{border:1px solid #bbf7d0;background:#f0fdf4}
.v34-s-fe3c94c16f{margin-top:9px}