*{box-sizing:border-box}@font-face{font-family:"DressNoto";src:url("fonts/NotoSans-Regular.ttf") format("truetype");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"DressNoto";src:url("fonts/NotoSans-SemiBold.ttf") format("truetype");font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:"DressNoto";src:url("fonts/NotoSans-Bold.ttf") format("truetype");font-weight:700;font-style:normal;font-display:swap}
body{margin:0;background:#f6f6f4;color:#252522;font-family:"DressNoto","Noto Sans",Arial,sans-serif;font-size:14px;line-height:1.5}a{text-decoration:none;color:inherit}aside{position:fixed;inset:0 auto 0 0;width:240px;background:#171715;color:#fff;padding:26px 16px;display:flex;flex-direction:column}.brand{font-weight:800;letter-spacing:2px;font-size:19px;padding:0 12px 32px}.brand span{font-weight:400;font-size:10px;display:block;letter-spacing:3px;color:#c8b28a;margin-top:3px}nav{display:grid;gap:5px}nav a,.side-bottom a{display:flex;align-items:center;gap:12px;padding:13px 12px;border-radius:10px;color:#aaa}nav a.active,nav a:hover,.side-bottom a:hover{background:#2b2b28;color:#fff}.side-bottom{margin-top:auto;display:grid;gap:5px}main{margin-left:240px;padding:32px;max-width:1600px}.page-title,.card-head{display:flex;justify-content:space-between;align-items:center;gap:15px}.page-title{margin-bottom:25px}.page-title h1{margin:0;font-size:28px}.page-title p{color:#888;margin:6px 0}.btn{display:inline-flex;border:0;background:#242421;color:#fff;padding:11px 17px;border-radius:9px;font-weight:700;cursor:pointer}.btn.secondary{background:#e9e9e5;color:#333}.btn.danger{background:#a83c35}.full{width:100%;justify-content:center}.stats{display:grid;grid-template-columns:repeat(5,1fr);gap:14px;margin-bottom:20px}.stat,.card{background:#fff;border:1px solid #e8e8e3;border-radius:14px;padding:20px;box-shadow:0 3px 15px #00000005}.stat span,.stat small{display:block;color:#888}.stat b{font-size:24px;display:block;margin:10px 0}.stat.danger b{color:#bd443b}.grid2{display:grid;grid-template-columns:1.5fr 1fr;gap:20px}.card h2{font-size:17px;margin:0 0 16px}.card-head a{color:#8a7048;font-weight:600}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:13px 8px;border-bottom:1px solid #eee}th{font-size:12px;color:#888;font-weight:600}small{color:#888}.badge{display:inline-block;padding:5px 8px;border-radius:20px;font-size:11px;font-weight:700}.green{background:#e8f5e9;color:#347a43}.orange{background:#fff1dc;color:#a46700}.red{background:#fde9e7;color:#a83731}.quick{display:grid;grid-template-columns:1fr 1fr;gap:10px}.quick a{padding:18px;border:1px solid #eee;border-radius:10px}.quick a:hover{border-color:#c8b28a;background:#fcfbf8}.quick b,.quick small{display:block;margin-top:7px}.formgrid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.field{display:grid;gap:7px}.field.fullrow{grid-column:1/-1}.field label{font-weight:600}.field input,.field select,.field textarea,input,select,textarea{width:100%;padding:11px;border:1px solid #ddd;border-radius:8px;background:#fff;font:inherit}textarea{min-height:100px}.actions{display:flex;gap:8px;margin-top:20px}.dress-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.dress-card{background:#fff;border:1px solid #e7e7e2;border-radius:12px;overflow:hidden}.dress-card img{width:100%;aspect-ratio:3/4;object-fit:cover;background:#eee}.dress-info{padding:13px}.dress-info h3{margin:0 0 5px}.toolbar{display:flex;gap:10px;margin-bottom:15px}.toolbar input{max-width:350px}.alert{background:#fde9e7;color:#9d302a;padding:10px;border-radius:8px;margin-bottom:14px}.login{min-height:100vh;display:grid;place-items:center;background:#f2f0eb}.loginbox{background:#fff;width:min(400px,92vw);padding:35px;border-radius:16px;box-shadow:0 15px 50px #0001}.loginbox input{margin-bottom:12px}.loginbox h1{font-size:23px}.loginbox small{display:block;text-align:center;margin-top:15px}.logo{font-weight:800;letter-spacing:2px;font-size:22px}.logo span{font-weight:400;font-size:10px;color:#a08355;display:block}.fee-box{background:#faf8f3;border:1px solid #e8dfcf;padding:16px;border-radius:10px}.fee-total{font-size:20px;font-weight:800}.calendar{overflow:auto}.calendar table{min-width:800px}.photo{width:55px;height:70px;object-fit:cover;border-radius:7px}@media(max-width:1000px){aside{width:72px}.brand{font-size:0}.brand:after{content:'D';font-size:24px}.brand span,nav a span,.side-bottom span{display:none}nav a,.side-bottom a{justify-content:center}main{margin-left:72px;padding:20px}.stats{grid-template-columns:repeat(2,1fr)}.grid2{grid-template-columns:1fr}.dress-grid{grid-template-columns:repeat(3,1fr)}}@media(max-width:600px){main{padding:14px}.stats,.formgrid{grid-template-columns:1fr}.dress-grid{grid-template-columns:repeat(2,1fr)}.page-title{align-items:flex-start}.page-title h1{font-size:23px}.toolbar{flex-wrap:wrap}.toolbar input{max-width:none}.stat.wide{grid-column:auto}}
.empty{padding:35px;text-align:center;color:#888}.search-box{background:#fff}.dress-card .btn{font-size:12px;padding:8px 10px}

.detail-grid{display:grid;grid-template-columns:360px 1fr;gap:20px}.dress-detail-photo img{width:100%;aspect-ratio:3/4;object-fit:cover;border-radius:10px}.no-photo{aspect-ratio:3/4;background:#eee;display:grid;place-items:center;font-size:70px;border-radius:10px}.info-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.info-grid small,.info-grid b{display:block}.info-grid b{margin-top:5px}.table-wrap{overflow:auto}.rental-thumb{width:54px;height:70px;border-radius:7px;object-fit:cover;background:#eee}.deposit-box{background:#f7f3ea;border:1px solid #e6dcc9;border-radius:10px;padding:16px}.deposit-box strong{font-size:18px}.refunded{background:#e9f7ed;color:#26733d}.@media(max-width:800px){.detail-grid{grid-template-columns:1fr}.info-grid{grid-template-columns:repeat(2,1fr)}}

.dress-cell{display:flex;align-items:center;gap:10px}.rental-thumb.large{width:75px;height:95px}.detail-inline{display:flex;gap:14px;align-items:center;background:#faf9f6;border:1px solid #eee;padding:12px;border-radius:10px;margin-bottom:16px}.detail-inline .rental-thumb{flex:none}

/* Compact dress thumbnails */
table .photo, table img.photo, .thumb-mini{
  width:48px !important;
  height:60px !important;
  min-width:48px;
  max-width:48px;
  object-fit:cover;
  border-radius:6px;
  display:block;
}
.thumb-mini-square{
  width:52px !important;
  height:52px !important;
  min-width:52px;
  object-fit:cover;
  border-radius:6px;
}
td.thumb-cell{
  width:64px;
  padding-right:4px;
  vertical-align:middle;
}
td.thumb-cell + td{padding-left:4px}
table td{vertical-align:middle}

html,body,input,select,textarea,button,table{font-family:"DressNoto","Noto Sans",Arial,sans-serif;}
