*{box-sizing:border-box}body{margin:0;background:#f5f4f0;color:#20362f;font:15px/1.65 system-ui,-apple-system,"Segoe UI",sans-serif}a{color:#24694c;text-decoration:none}a:hover{text-decoration:underline}aside{position:fixed;inset:0 auto 0 0;width:230px;padding:38px 24px;background:#163e32;color:#fff}.brand{font-size:38px;line-height:1.1;letter-spacing:4px;font-weight:750;color:#fff}.brand span{display:block;font-size:18px;letter-spacing:7px;font-weight:400}.sub{font-size:9px;letter-spacing:2px;margin-top:18px;color:#bbd0c5}nav{margin-top:52px}nav a{display:block;padding:12px 14px;color:#dbe8e1;margin-bottom:9px;border-radius:6px}nav a:hover{background:#2b5447;text-decoration:none}.sidebar-foot{position:absolute;bottom:28px;font-size:11px;color:#b8cbbf}main{margin-left:230px;padding:0 42px 28px;max-width:1600px}header{height:86px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #dce1d9;margin-bottom:38px;color:#687a70;font-size:12px}header>span{letter-spacing:2px}.page-head{display:flex;justify-content:space-between;align-items:center;gap:18px;margin-bottom:26px}.eyebrow{font-size:10px;letter-spacing:2px;color:#788b7a;font-weight:700}h1{font-size:32px;line-height:1.3;letter-spacing:-.6px;margin:8px 0 12px}h2{font-size:18px;margin:0 0 12px}.muted{color:#6f7c73}.small{font-size:12px}button,.button{display:inline-block;background:#24654a;color:#fff;border:0;padding:11px 18px;border-radius:6px;font:inherit;font-size:13px;cursor:pointer;text-align:center}.button:hover,button:hover{background:#194f38;text-decoration:none}.secondary{background:#fff;border:1px solid #d3dbd2;color:#2e503d}.secondary:hover{background:#ecf1e8}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin:26px 0}.stats article{border:1px solid #e0e4db;background:#fff;padding:22px;border-radius:10px}.stats span{color:#6a796f;font-size:13px}.stats strong{display:block;font-size:42px;font-weight:600;line-height:1.5}.stats small{color:#839082;font-size:11px}.panel{background:#fff;border:1px solid #e0e4db;border-radius:10px;margin-bottom:22px;overflow:hidden}.padded,.type{padding:25px}.section-head{padding:22px 24px;display:flex;justify-content:space-between;align-items:center}.section-head h2{margin:0}.section-head a{font-size:12px}.table-scroll{overflow-x:auto}table{width:100%;border-collapse:collapse;text-align:left;font-size:13px;white-space:nowrap}th{background:#f5f7f2;color:#73816f;font-size:11px;font-weight:600}td,th{padding:16px 22px;border-bottom:1px solid #eef0e9}tbody tr:nth-child(even){background:#fcfcfa}td small{display:block;color:#7e887d;font-size:12px}.empty{padding:50px;text-align:center;color:#839082}.tag{display:inline-block;padding:4px 11px;border-radius:20px;font-size:11px;background:#edf0ed;color:#637268}.confirmed,.ready{background:#e6f2e8;color:#286441}.pending,.cleaning{background:#fff1d4;color:#936a16}.checked_in{background:#e6edf8;color:#385a91}.cancelled,.maintenance{background:#fae9e3;color:#a05239}.notice{padding:16px 20px;border:1px solid #dddcc7;background:#f8f5e8;border-radius:8px;margin:20px 0;font-size:13px}.filters{display:flex;gap:12px;margin:22px 0}.filters input{flex:1}.filters select{width:auto;margin:0}input,select,textarea{font:inherit;color:#20362f;border:1px solid #d6ded3;border-radius:6px;padding:10px 12px;background:#fff;max-width:100%;width:100%}textarea{min-height:90px}label{display:block;font-size:13px;margin:12px 0 6px}input:focus,textarea:focus,select:focus{outline:2px solid #b6c9ac;outline-offset:1px}.form-panel{max-width:760px;padding:28px}.helptext{display:block;font-size:12px;color:#75816e}.errorlist{color:#a43e31;font-size:13px;padding-left:20px}.actions{display:flex;gap:12px;margin-top:24px}.inline{display:inline}.text-button{background:none;color:#42614b;font-size:12px;padding:4px 8px}.text-button:hover{background:#e2e9de}.login{max-width:450px;margin:70px auto;background:white;border:1px solid #dce1d9;border-radius:12px;padding:36px}.login button{width:100%;margin-top:12px}.type-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.type strong{font-size:22px}.type strong small{font-size:12px;color:#78836e}.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px}dl{display:grid;grid-template-columns:1fr 1fr;gap:14px}dt{color:#78816e}dd{margin:0}.history{border-bottom:1px solid #eef0e9;padding-bottom:14px}.history>*{display:block}.history span{font-size:12px;color:#6a786a;overflow-wrap:anywhere}footer{margin-top:38px;font-size:11px;color:#8a9586}@media(max-width:1000px){aside{width:180px;padding:28px 16px}main{margin-left:180px;padding:0 22px}.stats{grid-template-columns:repeat(2,1fr)}.type-grid{grid-template-columns:repeat(2,1fr)}.page-head{align-items:flex-start;flex-direction:column}}@media(max-width:650px){aside{position:static;width:auto;padding:16px}.brand{font-size:25px}.brand span{display:inline;font-size:15px;letter-spacing:3px;margin-left:10px}.sub,.sidebar-foot{display:none}nav{margin:14px 0 0;display:flex;gap:8px;overflow-x:auto}nav a{white-space:nowrap;padding:5px;font-size:12px;margin:0}main{margin:0;padding:0 16px}header{height:60px;margin-bottom:25px}header>span{font-size:9px}.stats{gap:10px}.stats article{padding:16px}.stats strong{font-size:34px}.detail-grid,.type-grid{grid-template-columns:1fr}.filters{flex-wrap:wrap}.login{margin:30px auto;padding:24px}h1{font-size:26px}}

/* Art Hostel brand theme — supplied original artwork; no external font dependency. */
:root{--brand:#f2cd00;--ink:#101820;--paper:#f6f6f2;--muted:#647079;--line:#e2e5e6}
body{background:var(--paper);color:var(--ink);font-family:"Noto Sans Thai","Leelawadee UI",Tahoma,system-ui,sans-serif}
a{color:#35434c}a:hover{color:#101820}aside{background:var(--ink);width:244px;padding:34px 24px;border-right:1px solid #263039}main{margin-left:244px}.brand-art{display:block;position:relative;aspect-ratio:2048/600;overflow:hidden;width:100%;line-height:0}.brand-art img{position:absolute;top:-55%;left:0;width:100%;height:auto;max-width:none}.sub{color:#c9d0d4;font-size:9px;letter-spacing:2px;margin-top:15px;padding-bottom:26px;border-bottom:1px solid #354047}nav{margin-top:26px}nav a{color:#c4cbd0;padding:12px 15px;border-left:3px solid transparent;border-radius:5px}nav a:hover{background:#222d35;color:white}nav a[aria-current="page"]{background:var(--brand);border-left-color:var(--brand);color:var(--ink);font-weight:700}.sidebar-foot{color:#aeb8bd;border-top:1px solid #354047;padding-top:16px;width:calc(100% - 48px)}header{color:#66717a;border-color:var(--line)}h1{font-weight:700;letter-spacing:-.7px}.eyebrow{color:#65717a;letter-spacing:1.8px}.muted{color:var(--muted)}button,.button{background:var(--brand);color:var(--ink);font-weight:700;border:1px solid transparent;padding:11px 19px}button:hover,.button:hover{background:#e3bf00;color:var(--ink)}button:focus-visible,a:focus-visible{outline:3px solid #68778b;outline-offset:3px}.secondary{background:#fff;border-color:#cbd2d6;color:var(--ink)}.secondary:hover{background:#f3f4f4}.text-button{background:transparent;color:#40515e;padding:4px 9px;border-color:#d8dfe3;font-weight:400}.text-button:hover{background:#e9edef}.stats article{border-color:var(--line);border-top:3px solid var(--brand);box-shadow:0 3px 12px #10182003}.stats strong{color:var(--ink)}.stats span,.stats small{color:#65717a}.panel{border-color:var(--line);box-shadow:0 3px 14px #10182003}.section-head{border-bottom:1px solid #edf0f1}.section-head a{font-weight:600}th{background:#f2f4f5;color:#566570}td,th{border-bottom-color:#edf0f1}tbody tr:nth-child(even){background:#fafbfc}tbody tr:hover{background:#fffcef}td a{font-weight:650;color:#253b4b}.empty{color:#697783}.tag{font-weight:600;background:#edf0f3;color:#4c5b66}.tag.confirmed,.tag.ready{background:#e5f3e9;color:#23603b}.tag.pending,.tag.cleaning{background:#fff2c2;color:#775400}.tag.checked_in{background:#e4eefc;color:#285489}.tag.cancelled,.tag.maintenance{background:#fce6e6;color:#a03030}.tag.checked_out,.tag.expired{background:#edf0f3;color:#56616b}.notice{background:#fffbe5;border-color:#eadc98;color:#5d501c}.helptext{color:#66727b}input,select,textarea{color:var(--ink);border-color:#cbd3d8}input:focus,select:focus,textarea:focus{outline:2px solid var(--brand);border-color:#837300}.type strong{color:var(--ink)}.type strong small,dt{color:#65717a}.history span{color:#56636c}.history{border-color:#e7ebee}footer{color:#65717a}.login-page aside{display:none}.login-page main{margin-left:0;max-width:none;padding:0 32px}.login-page header{max-width:1100px;margin:0 auto 28px}.login-page footer{max-width:1100px;margin:28px auto}.login-layout{max-width:1060px;margin:36px auto;display:grid;grid-template-columns:1fr 1fr;background:white;border:1px solid #dfe3e5;border-radius:16px;overflow:hidden;box-shadow:0 14px 45px #1018200a}.login-brand{background:var(--brand);padding:42px;display:flex;flex-direction:column;gap:36px;justify-content:space-between;min-height:560px}.login-brand .eyebrow{color:#3e3a17}.login-logo{width:100%;max-width:360px}.login-brand h2{font-size:29px;line-height:1.5;letter-spacing:-.5px}.login-brand p{font-size:14px;color:#413d1e}.login-brand small{font-size:9px;letter-spacing:1.1px}.login{border:0;border-radius:0;max-width:none;margin:0;padding:54px 42px;align-self:center;background:white}.login h1{font-size:28px}.login form{margin-top:30px}.login button{margin-top:18px}.login .small{margin-top:24px}.login-page .login .errorlist{color:#a03030}dl strong{font-size:20px}@media(max-width:1000px){aside{width:195px;padding:28px 18px}main{margin-left:195px}.sidebar-foot{width:calc(100% - 36px)}.login-brand{padding:30px}.login{padding:38px 28px}.login-brand h2{font-size:24px}}@media(max-width:650px){aside{width:auto;padding:18px 16px}.brand-art{width:180px}.sub{display:none}nav{margin-top:16px;gap:7px}nav a{font-size:12px;border:0;padding:8px 10px}main{margin-left:0}.login-page main{padding:0 16px}.login-layout{grid-template-columns:1fr;margin-top:20px}.login-brand{min-height:0;padding:25px;gap:18px}.login-brand .eyebrow,.login-brand>small{display:none}.login-brand h2{font-size:21px;margin-bottom:0}.login-brand p{display:none}.login-logo{width:235px}.login{padding:28px 24px}.login-page header{height:54px;margin-bottom:12px}.login h1{font-size:25px}}
