﻿:root{
    --ds-primary:#3f51e8;
    --ds-primary-dark:#2637c8;
    --ds-accent:#ff6b35;
    --ds-text:#172033;
    --ds-muted:#697386;
    --ds-line:#e5e8ef;
    --ds-bg:#f6f7fb;
    --ds-card:#ffffff;
    --ds-success:#16855b;
    --ds-danger:#d94242;
    --ds-radius:20px;
    --ds-shadow:0 14px 40px rgba(28,39,79,.09);
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
    margin:0;
    color:var(--ds-text);
    background:#fff;
    font-family:Pretendard,"Noto Sans KR","Apple SD Gothic Neo","Malgun Gothic",sans-serif;
    line-height:1.55;
    word-break:keep-all;
}
body.menu-open{overflow:hidden}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit}
img{max-width:100%;display:block}
[hidden]{display:none!important}

.skip-link{
    position:fixed;
    left:16px;
    top:-100px;
    z-index:9999;
    padding:10px 14px;
    color:#fff;
    background:#111827;
    border-radius:8px;
}
.skip-link:focus{top:16px}

.site-header{
    position:sticky;
    top:0;
    z-index:1000;
    background:rgba(255,255,255,.96);
    border-bottom:1px solid rgba(229,232,239,.9);
    backdrop-filter:blur(14px);
}
.site-header__inner{
    width:min(1280px,calc(100% - 40px));
    min-height:72px;
    margin:0 auto;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:24px;
}
.site-logo{display:flex;align-items:center;gap:10px;font-weight:900;font-size:21px}
.site-logo__mark{
    display:grid;
    place-items:center;
    width:36px;
    height:36px;
    color:#fff;
    background:linear-gradient(145deg,var(--ds-primary),#7481ff);
    border-radius:12px;
}
.desktop-nav{display:flex;align-items:center;gap:34px;font-weight:700}
.desktop-nav a,.header-link{transition:.2s ease}
.desktop-nav a:hover,.header-link:hover{color:var(--ds-primary)}
.header-actions{display:flex;align-items:center;gap:12px}
.header-button{
    padding:10px 16px;
    color:#fff;
    background:var(--ds-text);
    border-radius:12px;
    font-weight:800;
}
.mobile-menu-button{
    display:none;
    width:42px;
    height:42px;
    padding:9px;
    border:0;
    background:transparent;
}
.mobile-menu-button span{
    display:block;
    width:100%;
    height:2px;
    margin:5px 0;
    background:var(--ds-text);
}
.mobile-menu{
    position:fixed;
    inset:72px 0 0;
    padding:22px;
    background:#fff;
}
.mobile-menu a{
    display:block;
    padding:16px 4px;
    border-bottom:1px solid var(--ds-line);
    font-weight:800;
}

.container{width:min(1280px,calc(100% - 40px));margin:0 auto}
.hero{
    position:relative;
    overflow:hidden;
    padding:72px 0 84px;
    background:
        radial-gradient(circle at 85% 18%,rgba(255,255,255,.28),transparent 23%),
        linear-gradient(135deg,#2938c7 0%,#5866f2 55%,#7b86ff 100%);
    color:#fff;
}
.hero::after{
    content:"";
    position:absolute;
    width:420px;
    height:420px;
    right:-120px;
    bottom:-240px;
    border:70px solid rgba(255,255,255,.12);
    border-radius:50%;
}
.hero__inner{position:relative;z-index:1}
.hero__eyebrow{margin:0 0 12px;font-weight:800;opacity:.9}
.hero h1{max-width:760px;margin:0;font-size:clamp(38px,5.5vw,68px);line-height:1.12;letter-spacing:-.05em}
.hero__description{max-width:660px;margin:20px 0 0;font-size:18px;opacity:.92}
.search-panel{
    display:grid;
    grid-template-columns:1.5fr 1fr 1fr auto;
    gap:10px;
    margin-top:38px;
    padding:12px;
    color:var(--ds-text);
    background:#fff;
    border-radius:22px;
    box-shadow:0 22px 50px rgba(10,20,74,.28);
}
.search-field{
    position:relative;
    min-width:0;
    padding:8px 14px;
    border-right:1px solid var(--ds-line);
}
.search-field:last-of-type{border-right:0}
.search-field label{display:block;margin-bottom:3px;color:var(--ds-muted);font-size:12px;font-weight:800}
.search-field input{
    width:100%;
    height:28px;
    padding:0;
    color:var(--ds-text);
    border:0;
    outline:0;
    background:transparent;
    font-weight:800;
}
.search-button{
    min-width:126px;
    border:0;
    color:#fff;
    background:var(--ds-accent);
    border-radius:16px;
    font-weight:900;
    cursor:pointer;
}
.quick-regions{display:flex;flex-wrap:wrap;gap:8px;margin-top:20px}
.quick-regions a{
    padding:9px 13px;
    border:1px solid rgba(255,255,255,.35);
    background:rgba(255,255,255,.12);
    border-radius:999px;
    font-size:14px;
    font-weight:800;
}

.section{padding:72px 0}
.section--soft{background:var(--ds-bg)}
.section-heading{
    display:flex;
    align-items:flex-end;
    justify-content:space-between;
    gap:20px;
    margin-bottom:26px;
}
.section-heading__eyebrow{margin:0 0 6px;color:var(--ds-primary);font-weight:900;font-size:14px}
.section-heading h2{margin:0;font-size:clamp(28px,4vw,40px);letter-spacing:-.04em}
.section-heading p{margin:10px 0 0;color:var(--ds-muted)}
.section-more{color:var(--ds-primary);font-weight:900;white-space:nowrap}

.property-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:22px;
}
.property-card{
    overflow:hidden;
    background:var(--ds-card);
    border:1px solid var(--ds-line);
    border-radius:var(--ds-radius);
    transition:.22s ease;
}
.property-card:hover{
    transform:translateY(-5px);
    border-color:#cbd1ff;
    box-shadow:var(--ds-shadow);
}
.property-card__image{
    position:relative;
    aspect-ratio:16/10;
    overflow:hidden;
    background:#eceef7;
}
.property-card__image img{width:100%;height:100%;object-fit:cover;transition:.3s ease}
.property-card:hover .property-card__image img{transform:scale(1.035)}
.property-card__badge{
    position:absolute;
    left:14px;
    top:14px;
    padding:7px 10px;
    color:#fff;
    background:rgba(23,32,51,.88);
    border-radius:999px;
    font-size:12px;
    font-weight:900;
}
.property-card__body{padding:18px}
.property-card__location{margin:0;color:var(--ds-muted);font-size:13px;font-weight:800}
.property-card h3{height:52px;margin:7px 0 12px;font-size:19px;line-height:1.35}
.property-card__meta{display:flex;flex-wrap:wrap;gap:7px;margin:0 0 14px}
.property-card__meta span{
    padding:5px 8px;
    color:#4e596c;
    background:#f2f4f8;
    border-radius:7px;
    font-size:12px;
    font-weight:800;
}
.property-card__price{display:flex;align-items:baseline;justify-content:space-between;gap:10px}
.property-card__price strong{font-size:22px}
.property-card__price span{color:var(--ds-muted);font-size:13px}

.guide-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.guide-card{
    padding:26px;
    background:#fff;
    border:1px solid var(--ds-line);
    border-radius:18px;
}
.guide-card__number{
    display:grid;
    place-items:center;
    width:44px;
    height:44px;
    margin-bottom:18px;
    color:#fff;
    background:var(--ds-primary);
    border-radius:14px;
    font-weight:900;
}
.guide-card h3{margin:0 0 8px}
.guide-card p{margin:0;color:var(--ds-muted)}

.host-banner{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:30px;
    padding:42px;
    color:#fff;
    background:linear-gradient(125deg,#172033,#34405d);
    border-radius:28px;
}
.host-banner h2{margin:0 0 8px;font-size:32px}
.host-banner p{margin:0;color:#d9deeb}
.host-banner a{
    flex:0 0 auto;
    padding:14px 20px;
    color:var(--ds-text);
    background:#fff;
    border-radius:14px;
    font-weight:900;
}

.site-footer{padding:46px 0 110px;background:#101726;color:#cbd3e2}
.site-footer__inner{width:min(1280px,calc(100% - 40px));margin:0 auto}
.footer-brand{display:block;margin-bottom:12px;color:#fff;font-size:20px}
.footer-copy{display:flex;flex-wrap:wrap;gap:8px 18px;margin:0;color:#9faabd;font-size:14px}
.footer-links{display:flex;flex-wrap:wrap;gap:18px;margin:25px 0;color:#e8ecf3;font-size:14px;font-weight:700}
.footer-copyright{margin:0;color:#778399;font-size:13px}
.mobile-bottom-nav{display:none}

/* 관리자 */
.admin-body{min-height:100vh;background:var(--ds-bg)}
.admin-shell{display:grid;grid-template-columns:260px 1fr;min-height:100vh}
.admin-sidebar{padding:28px 20px;color:#fff;background:#111827}
.admin-logo{display:block;margin-bottom:28px;font-size:22px;font-weight:900}
.admin-menu a{
    display:block;
    margin-bottom:6px;
    padding:12px 14px;
    color:#d7deea;
    border-radius:10px;
    font-weight:700;
}
.admin-menu a:hover,.admin-menu a.is-active{color:#fff;background:#29354d}
.admin-main{min-width:0}
.admin-topbar{
    display:flex;
    align-items:center;
    justify-content:space-between;
    min-height:70px;
    padding:0 30px;
    background:#fff;
    border-bottom:1px solid var(--ds-line);
}
.admin-content{padding:30px}
.admin-page-title{margin:0 0 24px;font-size:30px}
.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.stat-card{padding:22px;background:#fff;border:1px solid var(--ds-line);border-radius:16px}
.stat-card span{display:block;margin-bottom:8px;color:var(--ds-muted);font-weight:700}
.stat-card strong{font-size:30px}
.admin-panel{margin-top:22px;padding:24px;background:#fff;border:1px solid var(--ds-line);border-radius:16px}
.admin-panel h2{margin:0 0 16px;font-size:20px}
.admin-table{width:100%;border-collapse:collapse}
.admin-table th,.admin-table td{padding:13px 10px;border-bottom:1px solid var(--ds-line);text-align:left;font-size:14px}
.admin-table th{color:var(--ds-muted);background:#fafbfc}

.login-page{
    min-height:100vh;
    display:grid;
    place-items:center;
    padding:20px;
    background:linear-gradient(145deg,#edf0ff,#f8f9fc 55%,#eef6ff);
}
.login-card{
    width:min(440px,100%);
    padding:34px;
    background:#fff;
    border:1px solid var(--ds-line);
    border-radius:24px;
    box-shadow:var(--ds-shadow);
}
.login-card h1{margin:0 0 8px}
.login-card__description{margin:0 0 26px;color:var(--ds-muted)}
.form-field{margin-bottom:16px}
.form-field label{display:block;margin-bottom:7px;font-weight:800}
.form-field input{
    width:100%;
    height:50px;
    padding:0 14px;
    border:1px solid #d8dde8;
    border-radius:12px;
    outline:0;
}
.form-field input:focus{border-color:var(--ds-primary);box-shadow:0 0 0 3px rgba(63,81,232,.12)}
.primary-button{
    width:100%;
    height:52px;
    border:0;
    color:#fff;
    background:var(--ds-primary);
    border-radius:12px;
    font-weight:900;
    cursor:pointer;
}
.login-help{margin:16px 0 0;color:var(--ds-muted);font-size:13px;text-align:center}

@media (max-width:1024px){
    .desktop-nav{display:none}
    .mobile-menu-button{display:block}
    .header-link,.header-button{display:none}
    .property-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
    .stat-grid{grid-template-columns:repeat(2,1fr)}
    .admin-shell{grid-template-columns:1fr}
    .admin-sidebar{display:none}
}

@media (max-width:760px){
    body{padding-bottom:68px}
    .site-header__inner,.container,.site-footer__inner{width:min(100% - 28px,1280px)}
    .site-header__inner{min-height:64px}
    .mobile-menu{inset:64px 0 68px}
    .hero{padding:46px 0 56px}
    .hero h1{font-size:39px}
    .hero__description{font-size:16px}
    .search-panel{grid-template-columns:1fr;padding:10px}
    .search-field{padding:10px 12px;border-right:0;border-bottom:1px solid var(--ds-line)}
    .search-button{height:52px}
    .section{padding:52px 0}
    .section-heading{align-items:flex-start}
    .section-heading h2{font-size:30px}
    .property-grid{grid-template-columns:1fr;gap:16px}
    .property-card h3{height:auto}
    .guide-grid{grid-template-columns:1fr}
    .host-banner{align-items:flex-start;flex-direction:column;padding:28px}
    .host-banner h2{font-size:27px}
    .mobile-bottom-nav{
        position:fixed;
        z-index:1100;
        left:0;
        right:0;
        bottom:0;
        display:grid;
        grid-template-columns:repeat(5,1fr);
        min-height:68px;
        padding-bottom:env(safe-area-inset-bottom);
        background:#fff;
        border-top:1px solid var(--ds-line);
        box-shadow:0 -8px 28px rgba(23,32,51,.08);
    }
    .mobile-bottom-nav a{
        display:grid;
        place-items:center;
        color:var(--ds-muted);
        font-size:12px;
        font-weight:800;
    }
    .mobile-bottom-nav a.is-active{color:var(--ds-primary)}
    .site-footer{padding-bottom:40px}
    .admin-topbar{padding:0 18px}
    .admin-content{padding:20px 14px}
    .stat-grid{grid-template-columns:1fr 1fr;gap:10px}
    .stat-card{padding:16px}
    .stat-card strong{font-size:24px}
    .admin-table{min-width:720px}
    .admin-panel{overflow-x:auto;padding:18px}
}

@media (max-width:420px){
    .hero h1{font-size:34px}
    .section-heading{display:block}
    .section-more{display:inline-block;margin-top:12px}
    .stat-grid{grid-template-columns:1fr}
}

/* 매물 검색 */
.room-search-page{background:var(--ds-bg)}
.room-search-hero{
    padding:48px 0 42px;
    color:#fff;
    background:linear-gradient(130deg,#172033,#3343c5 70%,#5967ef);
}
.room-search-hero__eyebrow{margin:0 0 6px;color:#cfd5ff;font-size:13px;font-weight:900;letter-spacing:.1em}
.room-search-hero h1{margin:0;font-size:clamp(31px,5vw,48px);letter-spacing:-.045em}
.room-search-hero p:last-child{margin:12px 0 0;color:#e6e9ff}
.room-filter-section{
    position:relative;
    z-index:2;
    padding:0 0 22px;
    background:#fff;
    border-bottom:1px solid var(--ds-line);
}
.room-filter-form{
    margin-top:-18px;
    padding:20px;
    background:#fff;
    border:1px solid var(--ds-line);
    border-radius:20px;
    box-shadow:0 14px 34px rgba(24,36,78,.09);
}
.room-filter-grid{
    display:grid;
    grid-template-columns:1.6fr repeat(6,minmax(120px,1fr));
    gap:12px;
    align-items:end;
}
.filter-field{min-width:0}
.filter-field label{display:block;margin-bottom:6px;color:#5b6679;font-size:12px;font-weight:900}
.filter-field input,.filter-field select{
    width:100%;
    height:46px;
    padding:0 12px;
    border:1px solid #dbe0e9;
    border-radius:11px;
    outline:0;
    background:#fff;
}
.filter-field input:focus,.filter-field select:focus{border-color:var(--ds-primary);box-shadow:0 0 0 3px rgba(63,81,232,.1)}
.filter-checks{
    grid-column:1/5;
    display:flex;
    flex-wrap:wrap;
    gap:10px 22px;
    min-height:42px;
    align-items:center;
}
.filter-checks label{display:flex;align-items:center;gap:7px;font-size:14px;font-weight:800}
.filter-checks input{width:18px;height:18px;accent-color:var(--ds-primary)}
.filter-actions{
    grid-column:5/-1;
    display:flex;
    justify-content:flex-end;
    align-items:center;
    gap:10px;
}
.filter-actions a{
    height:46px;
    display:grid;
    place-items:center;
    padding:0 17px;
    color:var(--ds-muted);
    border:1px solid var(--ds-line);
    border-radius:11px;
    font-weight:800;
}
.filter-actions button{
    min-width:140px;
    height:46px;
    border:0;
    color:#fff;
    background:var(--ds-primary);
    border-radius:11px;
    font-weight:900;
    cursor:pointer;
}
.mobile-filter-toggle{display:none}
.room-filter-message{
    margin:14px 0 0;
    padding:12px 15px;
    color:#42506a;
    background:#f4f6ff;
    border-radius:10px;
    font-size:14px;
}
.room-filter-message--error{color:#a52b2b;background:#fff0f0}
.room-results-section{padding:28px 0 72px}
.room-results-toolbar{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:20px;
    margin-bottom:18px;
}
.room-results-toolbar>div:first-child{display:flex;align-items:baseline;gap:8px}
.room-results-toolbar strong{font-size:22px}
.room-results-toolbar span{color:var(--ds-muted)}
.room-results-actions{display:flex;align-items:center;gap:10px}
.room-results-actions select{
    height:40px;
    padding:0 34px 0 12px;
    border:1px solid var(--ds-line);
    border-radius:10px;
    background:#fff;
}
.view-switch{
    display:none;
    overflow:hidden;
    border:1px solid var(--ds-line);
    border-radius:10px;
}
.view-switch button{
    height:38px;
    padding:0 15px;
    border:0;
    background:#fff;
    color:var(--ds-muted);
    font-weight:800;
}
.view-switch button.is-active{color:#fff;background:var(--ds-primary)}
.room-search-layout{
    display:grid;
    grid-template-columns:minmax(0,1.35fr) minmax(350px,.65fr);
    gap:20px;
    align-items:start;
}
.room-list-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.room-list-card{
    overflow:hidden;
    background:#fff;
    border:1px solid var(--ds-line);
    border-radius:18px;
    transition:.2s ease;
}
.room-list-card:hover{transform:translateY(-4px);border-color:#cbd1ff;box-shadow:var(--ds-shadow)}
.room-list-card__image{position:relative;aspect-ratio:16/10;overflow:hidden;background:#e9ecf8}
.room-list-card__image img{width:100%;height:100%;object-fit:cover;transition:.25s ease}
.room-list-card:hover .room-list-card__image img{transform:scale(1.03)}
.room-list-card__image>span{
    position:absolute;
    left:12px;
    top:12px;
    padding:6px 9px;
    color:#fff;
    background:rgba(23,32,51,.86);
    border-radius:999px;
    font-size:12px;
    font-weight:900;
}
.room-list-card__body{padding:16px}
.room-list-card__location{margin:0;color:var(--ds-primary);font-size:13px;font-weight:900}
.room-list-card h2{height:50px;margin:6px 0 4px;font-size:18px;line-height:1.4}
.room-list-card__address{
    overflow:hidden;
    margin:0 0 12px;
    color:var(--ds-muted);
    font-size:13px;
    text-overflow:ellipsis;
    white-space:nowrap;
}
.room-list-card__tags{display:flex;flex-wrap:wrap;gap:6px}
.room-list-card__tags span{
    padding:5px 7px;
    color:#566176;
    background:#f3f5f8;
    border-radius:7px;
    font-size:11px;
    font-weight:800;
}
.room-list-card__bottom{
    display:flex;
    align-items:baseline;
    justify-content:flex-end;
    gap:5px;
    margin-top:16px;
    padding-top:13px;
    border-top:1px solid var(--ds-line);
}
.room-list-card__bottom strong{font-size:21px}
.room-list-card__bottom span{font-size:12px}
.room-map-panel{position:sticky;top:92px}
.room-map-placeholder{
    min-height:680px;
    padding:28px;
    border:1px solid #d9deef;
    border-radius:20px;
    background:
        linear-gradient(rgba(255,255,255,.75),rgba(255,255,255,.75)),
        repeating-linear-gradient(45deg,#e6eaff 0,#e6eaff 18px,#f2f4ff 18px,#f2f4ff 36px);
    text-align:center;
}
.room-map-placeholder__mark{
    display:grid;
    place-items:center;
    width:76px;
    height:76px;
    margin:50px auto 18px;
    color:#fff;
    background:var(--ds-primary);
    border-radius:26px;
    box-shadow:0 16px 30px rgba(63,81,232,.22);
    font-weight:900;
}
.room-map-placeholder>strong{font-size:21px}
.room-map-placeholder>p{max-width:340px;margin:8px auto 24px;color:var(--ds-muted)}
.room-map-location-list{margin:0;padding:0;list-style:none;text-align:left}
.room-map-location-list li+li{border-top:1px solid rgba(104,115,151,.17)}
.room-map-location-list a{display:block;padding:12px 5px}
.room-map-location-list span{display:block;color:var(--ds-muted);font-size:12px}
.room-map-location-list strong{display:block;margin-top:3px;font-size:14px}
.room-empty{
    padding:80px 20px;
    background:#fff;
    border:1px solid var(--ds-line);
    border-radius:20px;
    text-align:center;
}
.room-empty strong{display:block;font-size:22px}
.room-empty p{color:var(--ds-muted)}
.room-empty a{
    display:inline-grid;
    place-items:center;
    height:44px;
    padding:0 18px;
    color:#fff;
    background:var(--ds-primary);
    border-radius:11px;
    font-weight:900;
}
.pagination{display:flex;justify-content:center;gap:6px;margin-top:28px}
.pagination a{
    display:grid;
    place-items:center;
    min-width:40px;
    height:40px;
    padding:0 10px;
    background:#fff;
    border:1px solid var(--ds-line);
    border-radius:9px;
    font-size:14px;
    font-weight:800;
}
.pagination a.is-active{color:#fff;background:var(--ds-primary);border-color:var(--ds-primary)}

/* 매물 상세 */
.room-detail-page{padding-bottom:80px;background:#fff}
.room-breadcrumb{
    display:flex;
    align-items:center;
    gap:8px;
    padding:22px 0;
    color:var(--ds-muted);
    font-size:13px;
}
.room-breadcrumb strong{
    max-width:420px;
    overflow:hidden;
    color:var(--ds-text);
    text-overflow:ellipsis;
    white-space:nowrap;
}
.room-gallery{
    display:grid;
    grid-template-columns:minmax(0,1fr) 110px;
    gap:12px;
    height:min(560px,58vw);
    min-height:420px;
}
.room-gallery__main{
    overflow:hidden;
    background:#edf0f8;
    border-radius:22px;
}
.room-gallery__main img{width:100%;height:100%;object-fit:cover}
.room-gallery__thumbs{
    display:flex;
    flex-direction:column;
    gap:9px;
    overflow:auto;
}
.room-gallery__thumbs button{
    flex:0 0 78px;
    padding:0;
    overflow:hidden;
    border:2px solid transparent;
    border-radius:12px;
    background:#edf0f8;
    cursor:pointer;
}
.room-gallery__thumbs button.is-active{border-color:var(--ds-primary)}
.room-gallery__thumbs img{width:100%;height:100%;object-fit:cover}
.room-detail-layout{
    display:grid;
    grid-template-columns:minmax(0,1fr) 390px;
    gap:54px;
    align-items:start;
    margin-top:34px;
}
.room-detail-header{
    display:flex;
    justify-content:space-between;
    gap:20px;
    padding-bottom:28px;
    border-bottom:1px solid var(--ds-line);
}
.room-detail-location{margin:0;color:var(--ds-primary);font-weight:900}
.room-detail-header h1{margin:5px 0 8px;font-size:clamp(30px,4vw,44px);letter-spacing:-.04em}
.room-detail-header p:last-child{margin:0;color:var(--ds-muted)}
.room-favorite-button{
    flex:0 0 auto;
    width:48px;
    height:48px;
    border:1px solid var(--ds-line);
    border-radius:50%;
    background:#fff;
    color:#657087;
    font-size:25px;
    cursor:pointer;
}
.room-summary-grid{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    margin-top:24px;
    border:1px solid var(--ds-line);
    border-radius:18px;
}
.room-summary-grid article{padding:19px;border-right:1px solid var(--ds-line);border-bottom:1px solid var(--ds-line)}
.room-summary-grid article:nth-child(3n){border-right:0}
.room-summary-grid article:nth-last-child(-n+3){border-bottom:0}
.room-summary-grid span{display:block;margin-bottom:5px;color:var(--ds-muted);font-size:12px;font-weight:800}
.room-summary-grid strong{font-size:15px}
.room-detail-section{padding:34px 0;border-bottom:1px solid var(--ds-line)}
.room-detail-section h2{margin:0 0 18px;font-size:23px}
.room-description{color:#3d485b;line-height:1.9}
.room-info-list{margin:0}
.room-info-list>div{
    display:grid;
    grid-template-columns:150px 1fr;
    gap:18px;
    padding:13px 0;
    border-bottom:1px solid #eef0f4;
}
.room-info-list>div:last-child{border-bottom:0}
.room-info-list dt{color:var(--ds-muted);font-weight:800}
.room-info-list dd{margin:0;font-weight:700}
.room-option-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.room-option-grid span{
    min-height:46px;
    display:grid;
    place-items:center;
    padding:8px;
    background:#f5f7fb;
    border:1px solid #e9ecf2;
    border-radius:11px;
    font-size:14px;
    font-weight:800;
}
.room-discount-list{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.room-discount-list>div{
    padding:17px;
    color:#293657;
    background:#f2f4ff;
    border-radius:13px;
}
.room-discount-list strong{display:block;margin-bottom:3px}
.room-discount-list span{color:#5864a0;font-size:13px}
.room-location-box{
    display:flex;
    align-items:center;
    gap:18px;
    padding:18px;
    background:#f6f7fb;
    border-radius:16px;
}
.room-location-box__map{
    flex:0 0 110px;
    height:90px;
    display:grid;
    place-items:center;
    color:#fff;
    background:linear-gradient(145deg,#5260dd,#7d88ff);
    border-radius:13px;
    font-weight:900;
}
.room-location-box strong{display:block}
.room-location-box p{margin:5px 0 0;color:var(--ds-muted);font-size:13px}
.room-notice-list{margin:0;padding-left:22px;color:#495468}
.room-notice-list li+li{margin-top:9px}
.room-section-empty{margin:0;color:var(--ds-muted)}
.room-booking-card{
    position:sticky;
    top:94px;
    padding:25px;
    background:#fff;
    border:1px solid var(--ds-line);
    border-radius:20px;
    box-shadow:var(--ds-shadow);
}
.room-booking-price{display:flex;align-items:baseline;gap:5px;margin-bottom:18px}
.room-booking-price strong{font-size:29px}
.room-booking-price span{color:var(--ds-muted)}
.room-booking-dates{
    display:grid;
    grid-template-columns:1fr 1fr;
    overflow:hidden;
    border:1px solid #d9dee8;
    border-radius:12px;
}
.room-booking-dates label{padding:10px 12px}
.room-booking-dates label+label{border-left:1px solid #d9dee8}
.room-booking-dates span{display:block;color:var(--ds-muted);font-size:11px;font-weight:900}
.room-booking-dates input{width:100%;height:30px;padding:0;border:0;outline:0;font-size:13px;font-weight:800}
.availability-status{
    margin:12px 0 16px;
    padding:11px 12px;
    color:#5e697d;
    background:#f5f6f9;
    border-radius:9px;
    font-size:13px;
}
.availability-status.is-loading{color:#4153aa;background:#f0f2ff}
.availability-status.is-success{color:#116d4b;background:#eaf8f2}
.availability-status.is-error{color:#a53131;background:#fff0f0}
.booking-price-list{margin:0}
.booking-price-list>div{
    display:flex;
    justify-content:space-between;
    gap:16px;
    padding:8px 0;
    color:#566176;
}
.booking-price-list dt,.booking-price-list dd{margin:0}
.booking-price-list dd{font-weight:800}
.booking-price-total{
    margin-top:9px;
    padding-top:16px!important;
    color:var(--ds-text)!important;
    border-top:1px solid var(--ds-line);
}
.booking-price-total dt,.booking-price-total dd{font-size:18px;font-weight:900}
.booking-submit-button{
    width:100%;
    height:54px;
    margin-top:17px;
    border:0;
    color:#fff;
    background:var(--ds-primary);
    border-radius:12px;
    font-weight:900;
    cursor:pointer;
}
.booking-submit-button:disabled{cursor:not-allowed;background:#aeb5c6}
.booking-card-note{margin:11px 0 0;color:var(--ds-muted);font-size:11px;line-height:1.5;text-align:center}

@media (max-width:1180px){
    .room-filter-grid{grid-template-columns:repeat(4,1fr)}
    .filter-field--wide{grid-column:span 2}
    .filter-checks{grid-column:1/3}
    .filter-actions{grid-column:3/-1}
    .room-search-layout{grid-template-columns:minmax(0,1fr) 360px}
    .room-list-grid{grid-template-columns:1fr}
    .room-detail-layout{grid-template-columns:minmax(0,1fr) 350px;gap:32px}
}

@media (max-width:900px){
    .room-search-layout{display:block}
    .view-switch{display:flex}
    .room-list-panel,.room-map-panel{display:none}
    .room-list-panel.is-mobile-active{display:block}
    .room-map-panel.is-mobile-active{display:block}
    .room-map-panel{position:static}
    .room-map-placeholder{min-height:520px}
    .room-list-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
    .room-detail-layout{display:block}
    .room-booking-card{position:static;margin-top:30px}
}

@media (max-width:760px){
    .room-search-hero{padding:34px 0 30px}
    .room-search-hero h1{font-size:31px}
    .room-filter-section{padding:14px 0}
    .mobile-filter-toggle{
        display:block;
        width:100%;
        height:46px;
        border:1px solid var(--ds-line);
        background:#fff;
        border-radius:11px;
        font-weight:900;
    }
    .room-filter-form{
        display:none;
        margin-top:10px;
        padding:15px;
        box-shadow:none;
    }
    .room-filter-form.is-mobile-open{display:block}
    .room-filter-grid{grid-template-columns:1fr 1fr}
    .filter-field--wide{grid-column:1/-1}
    .filter-checks{grid-column:1/-1}
    .filter-actions{grid-column:1/-1}
    .filter-actions a,.filter-actions button{flex:1}
    .room-results-section{padding:20px 0 50px}
    .room-results-toolbar{align-items:flex-start}
    .room-results-actions{align-items:flex-end;flex-direction:column}
    .room-list-grid{grid-template-columns:1fr}
    .room-list-card h2{height:auto}
    .room-gallery{
        display:block;
        height:auto;
        min-height:0;
    }
    .room-gallery__main{aspect-ratio:4/3;border-radius:16px}
    .room-gallery__thumbs{
        flex-direction:row;
        margin-top:8px;
        padding-bottom:4px;
    }
    .room-gallery__thumbs button{flex-basis:76px;height:60px}
    .room-detail-layout{margin-top:24px}
    .room-detail-header h1{font-size:30px}
    .room-summary-grid{grid-template-columns:repeat(2,1fr)}
    .room-summary-grid article:nth-child(3n){border-right:1px solid var(--ds-line)}
    .room-summary-grid article:nth-child(2n){border-right:0}
    .room-summary-grid article:nth-last-child(-n+3){border-bottom:1px solid var(--ds-line)}
    .room-summary-grid article:nth-last-child(-n+2){border-bottom:0}
    .room-option-grid{grid-template-columns:repeat(2,1fr)}
    .room-discount-list{grid-template-columns:1fr}
    .room-info-list>div{grid-template-columns:110px 1fr}
}

@media (max-width:430px){
    .room-filter-grid{grid-template-columns:1fr}
    .filter-field--wide,.filter-checks,.filter-actions{grid-column:auto}
    .room-results-toolbar{display:block}
    .room-results-actions{margin-top:12px;align-items:stretch;flex-direction:row;justify-content:space-between}
    .room-summary-grid{grid-template-columns:1fr 1fr}
    .room-location-box{align-items:flex-start;flex-direction:column}
    .room-location-box__map{width:100%;height:100px}
}

/* 회원·마이페이지·계약 */
.member-page{min-height:calc(100vh - 72px);padding:58px 0 80px;background:var(--ds-bg)}
.member-container{width:min(760px,calc(100% - 28px));margin:0 auto}
.member-container--narrow{width:min(500px,calc(100% - 28px))}
.member-card{padding:36px;background:#fff;border:1px solid var(--ds-line);border-radius:24px;box-shadow:var(--ds-shadow)}
.member-heading{margin-bottom:28px;text-align:center}
.member-heading>p{margin:0 0 6px;color:var(--ds-primary);font-size:12px;font-weight:900;letter-spacing:.12em}
.member-heading h1{margin:0;font-size:34px;letter-spacing:-.04em}
.member-heading span{display:block;margin-top:9px;color:var(--ds-muted)}
.member-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.member-form-field{margin-bottom:17px}
.member-form-field label{display:block;margin-bottom:7px;font-weight:900}
.member-form-field input,.member-form-field select,.contract-form-section textarea{
    width:100%;min-height:50px;padding:0 13px;border:1px solid #d9dee8;border-radius:11px;background:#fff;outline:0
}
.contract-form-section textarea{padding:13px;resize:vertical}
.member-form-field input:focus,.member-form-field select:focus,.contract-form-section textarea:focus{
    border-color:var(--ds-primary);box-shadow:0 0 0 3px rgba(63,81,232,.1)
}
.member-form-field small{display:block;margin-top:5px;color:var(--ds-muted);font-size:12px}
.member-inline-field{display:grid;grid-template-columns:1fr 110px;gap:8px}
.member-inline-field button{border:0;color:#fff;background:var(--ds-text);border-radius:11px;font-weight:900;cursor:pointer}
.field-message{min-height:20px;margin:5px 0 0;font-size:12px}
.field-message.is-success{color:var(--ds-success)}
.field-message.is-error{color:var(--ds-danger)}
.member-agreements{margin:8px 0 22px;padding:16px;background:#f6f7fb;border-radius:12px}
.member-agreements label{display:flex;align-items:flex-start;gap:8px}
.member-agreements label+label{margin-top:10px}
.member-agreements input{margin-top:3px;accent-color:var(--ds-primary)}
.member-agreements a{color:var(--ds-primary);text-decoration:underline}
.member-primary-button{width:100%;height:54px;border:0;color:#fff;background:var(--ds-primary);border-radius:12px;font-weight:900;cursor:pointer}
.member-bottom-link,.member-test-account{margin:18px 0 0;color:var(--ds-muted);font-size:13px;text-align:center}
.member-bottom-link a{color:var(--ds-primary);font-weight:900}
.member-test-account{margin-top:8px}
.host-approved-box,.host-reject-box{padding:20px;border-radius:14px}
.host-approved-box{background:#eaf8f2;color:#116d4b}
.host-approved-box strong{display:block;margin-bottom:12px}
.host-approved-box a{display:inline-block;padding:10px 14px;color:#fff;background:var(--ds-success);border-radius:9px;font-weight:900}
.host-reject-box{margin-bottom:20px;background:#fff0f0;color:#9f3030}
.host-reject-box p{margin:6px 0 0}

.mypage-page,.host-dashboard-page,.contract-list-page,.contract-detail-page,.contract-request-page{padding:48px 0 80px;background:var(--ds-bg)}
.mypage-hero,.host-dashboard-hero{
    display:flex;align-items:flex-end;justify-content:space-between;gap:20px;padding:34px;color:#fff;
    background:linear-gradient(135deg,#172033,#4455db);border-radius:24px
}
.mypage-hero p,.host-dashboard-hero p,.contract-list-heading p,.contract-heading p{
    margin:0 0 5px;color:#cbd2ff;font-size:12px;font-weight:900;letter-spacing:.12em
}
.mypage-hero h1,.host-dashboard-hero h1{margin:0;font-size:34px}
.mypage-hero span,.host-dashboard-hero span{display:block;margin-top:7px;color:#e4e7f8}
.mypage-hero>a{padding:11px 15px;background:#fff;color:var(--ds-text);border-radius:10px;font-weight:900}
.mypage-stat-grid,.host-dashboard-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:20px}
.mypage-stat-grid a,.host-dashboard-grid a{padding:22px;background:#fff;border:1px solid var(--ds-line);border-radius:16px}
.mypage-stat-grid span,.host-dashboard-grid span{display:block;color:var(--ds-muted);font-size:13px;font-weight:800}
.mypage-stat-grid strong,.host-dashboard-grid strong{display:block;margin-top:7px;font-size:30px}
.host-dashboard-grid{grid-template-columns:1fr 1fr}
.host-dashboard-grid em{display:block;margin-top:10px;color:var(--ds-primary);font-style:normal;font-weight:900}
.mypage-layout{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:20px}
.mypage-panel,.host-dashboard-notice{padding:24px;background:#fff;border:1px solid var(--ds-line);border-radius:16px}
.mypage-panel h2,.host-dashboard-notice h2{margin:0 0 16px;font-size:21px}
.mypage-panel dl{margin:0}
.mypage-panel dl>div{display:flex;justify-content:space-between;gap:15px;padding:11px 0;border-bottom:1px solid var(--ds-line)}
.mypage-panel dl>div:last-child{border-bottom:0}
.mypage-panel dt{color:var(--ds-muted)}
.mypage-panel dd{margin:0;font-weight:800}
.mypage-panel p,.host-dashboard-notice p{color:var(--ds-muted)}
.mypage-action-button{display:inline-grid;place-items:center;height:43px;padding:0 15px;color:#fff;background:var(--ds-primary);border-radius:10px;font-weight:900}
.status-chip{display:inline-block;padding:7px 10px;border-radius:999px;font-size:12px;font-weight:900}
.status-chip--pending{color:#825900;background:#fff3cf}

.contract-request-container,.contract-detail-container{display:grid;grid-template-columns:minmax(0,1fr) 370px;gap:32px;align-items:start}
.contract-request-main,.contract-detail-main{padding:30px;background:#fff;border:1px solid var(--ds-line);border-radius:20px}
.contract-heading,.contract-list-heading{margin-bottom:25px}
.contract-heading h1,.contract-list-heading h1{margin:0;font-size:34px;letter-spacing:-.04em}
.contract-heading span,.contract-list-heading span{display:block;margin-top:8px;color:var(--ds-muted)}
.contract-property-card{display:flex;align-items:center;gap:16px;padding:15px;background:#f6f7fb;border-radius:15px}
.contract-property-card img{width:120px;height:84px;object-fit:cover;border-radius:11px}
.contract-property-card strong{display:block;font-size:18px}
.contract-property-card span{display:block;margin-top:6px;color:var(--ds-muted);font-size:13px}
.contract-form-section,.contract-detail-section{padding:26px 0;border-bottom:1px solid var(--ds-line)}
.contract-form-section h2,.contract-detail-section h2{margin:0 0 15px;font-size:21px}
.contract-info-list{margin:0}
.contract-info-list>div{display:flex;justify-content:space-between;gap:20px;padding:10px 0}
.contract-info-list dt{color:var(--ds-muted)}
.contract-info-list dd{margin:0;font-weight:800}
.contract-confirm-check{display:flex;gap:9px;margin:22px 0;font-weight:800}
.contract-confirm-check input{width:18px;height:18px;accent-color:var(--ds-primary)}
.contract-request-button{width:100%;height:54px;border:0;color:#fff;background:var(--ds-primary);border-radius:12px;font-weight:900;cursor:pointer}
.contract-summary-card{position:sticky;top:94px;padding:24px;background:#fff;border:1px solid var(--ds-line);border-radius:18px;box-shadow:var(--ds-shadow)}
.contract-summary-card h2{margin:0 0 15px}
.contract-summary-card dl{margin:0}
.contract-summary-card dl>div{display:flex;justify-content:space-between;gap:16px;padding:9px 0}
.contract-summary-card dt,.contract-summary-card dd{margin:0}
.contract-summary-card dd{font-weight:900}
.contract-summary-card .is-discount{color:var(--ds-success)}
.contract-summary-card .contract-summary-total{margin-top:9px;padding-top:16px;border-top:1px solid var(--ds-line);font-size:19px;font-weight:900}
.contract-summary-card>p{margin:14px 0 0;color:var(--ds-muted);font-size:12px;line-height:1.6}

.contract-status-tabs{display:flex;gap:8px;margin-bottom:18px}
.contract-status-tabs a{padding:10px 14px;background:#fff;border:1px solid var(--ds-line);border-radius:999px;font-size:13px;font-weight:900}
.contract-status-tabs a.is-active{color:#fff;background:var(--ds-primary);border-color:var(--ds-primary)}
.contract-list{display:grid;gap:14px}
.contract-list-card{display:grid;grid-template-columns:190px 1fr;overflow:hidden;background:#fff;border:1px solid var(--ds-line);border-radius:16px}
.contract-list-card>img{width:100%;height:100%;min-height:155px;object-fit:cover}
.contract-list-card__body{padding:20px}
.contract-list-card__top{display:flex;justify-content:space-between;align-items:center;gap:10px}
.contract-list-card__top small{color:var(--ds-muted)}
.contract-list-card h2{margin:10px 0 5px;font-size:21px}
.contract-list-card p{margin:0;color:var(--ds-muted)}
.contract-list-card__body>div:last-child{display:flex;justify-content:space-between;align-items:center;margin-top:20px}
.contract-list-card__body>div:last-child strong{font-size:21px}
.contract-list-card__body>div:last-child a{color:var(--ds-primary);font-weight:900}

.contract-list-card__footer{
    gap:16px;
}

.contract-list-card__actions{
    display:flex;
    align-items:center;
    justify-content:flex-end;
    gap:10px;
    margin-left:auto;
}

.contract-list-card__actions a{
    display:inline-flex;
    min-height:38px;
    align-items:center;
    justify-content:center;
    box-sizing:border-box;
    padding:0 14px;
    border:1px solid var(--ds-line);
    border-radius:9px;
    background:#fff;
    line-height:1;
    white-space:nowrap;
}

.contract-list-card__actions .contract-review-link{
    color:#fff;
    border-color:var(--ds-primary);
    background:var(--ds-primary);
}

.contract-status{display:inline-block;padding:7px 10px;border-radius:999px;background:#eef0f5;color:#566176;font-size:11px;font-weight:900}
.contract-status--requested{color:#7f5c00;background:#fff2c7}
.contract-status--host_approved,.contract-status--waiting_payment{color:#3042b8;background:#edf0ff}
.contract-status--paid,.contract-status--confirmed,.contract-status--in_use{color:#08714d;background:#e7f8f1}
.contract-status--cancelled,.contract-status--refunded{color:#a33434;background:#fff0f0}
.contract-empty{padding:70px 20px;background:#fff;border:1px solid var(--ds-line);border-radius:18px;text-align:center}
.contract-empty strong{display:block;font-size:22px}
.contract-empty p{color:var(--ds-muted)}
.contract-empty a{display:inline-grid;place-items:center;height:43px;padding:0 15px;color:#fff;background:var(--ds-primary);border-radius:10px;font-weight:900}
.contract-detail-heading{padding-bottom:24px;border-bottom:1px solid var(--ds-line)}
.contract-detail-heading h1{margin:10px 0 5px;font-size:32px}
.contract-detail-heading p{margin:0;color:var(--ds-muted)}
.contract-progress{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.contract-progress>div{padding:14px;background:#f2f3f7;border-radius:12px;color:#8a93a3;text-align:center}
.contract-progress>div.is-active{color:#fff;background:var(--ds-primary)}
.contract-progress span{display:grid;place-items:center;width:28px;height:28px;margin:0 auto 8px;border:1px solid currentColor;border-radius:50%;font-size:12px;font-weight:900}
.contract-progress strong{font-size:12px}
.contract-detail-memo{margin:0;line-height:1.8}
.contract-detail-empty{color:var(--ds-muted)}
.contract-list-back{display:inline-block;margin-top:22px;color:var(--ds-primary);font-weight:900}

@media (max-width:900px){
    .contract-request-container,.contract-detail-container{display:block}
    .contract-summary-card{position:static;margin-top:20px}
}
@media (max-width:760px){
    .member-page{padding:28px 0 50px}
    .member-card{padding:24px 18px}
    .member-form-grid{grid-template-columns:1fr;gap:0}
    .mypage-hero{align-items:flex-start;flex-direction:column}
    .mypage-stat-grid,.mypage-layout,.host-dashboard-grid{grid-template-columns:1fr}
    .contract-request-main,.contract-detail-main{padding:20px 16px}
    .contract-list-card{grid-template-columns:1fr}
    .contract-list-card>img{height:190px}

    .contract-list-card__footer{
        align-items:flex-start!important;
        flex-wrap:wrap;
    }

    .contract-list-card__actions{
        width:100%;
        justify-content:flex-start;
        margin-left:0;
    }

    .contract-list-card__actions a{
        flex:1 1 0;
        min-width:110px;
    }

    .contract-property-card{align-items:flex-start}
    .contract-property-card img{width:100px;height:76px}
    .contract-progress{grid-template-columns:1fr 1fr}
}

/* 4차: 임대인 매물 운영 */
.host-management-page,
.host-room-write-page{
    padding:46px 0 80px;
    background:var(--ds-bg);
}
.host-management-heading{
    display:flex;
    align-items:flex-end;
    justify-content:space-between;
    gap:20px;
    margin-bottom:22px;
}
.host-management-heading p{
    margin:0 0 5px;
    color:var(--ds-primary);
    font-size:12px;
    font-weight:900;
    letter-spacing:.12em;
}
.host-management-heading h1{
    margin:0;
    font-size:34px;
    letter-spacing:-.04em;
}
.host-management-heading span{
    display:block;
    margin-top:7px;
    color:var(--ds-muted);
}
.host-management-heading>a{
    display:inline-grid;
    place-items:center;
    height:45px;
    padding:0 17px;
    color:#fff;
    background:var(--ds-primary);
    border-radius:11px;
    font-weight:900;
}
.host-room-list{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:18px;
}
.host-room-card{
    display:grid;
    grid-template-columns:210px 1fr;
    overflow:hidden;
    background:#fff;
    border:1px solid var(--ds-line);
    border-radius:18px;
}
.host-room-card>img{
    width:100%;
    height:100%;
    min-height:260px;
    object-fit:cover;
    background:#edf0f8;
}
.host-room-card__body{padding:20px}
.host-room-card__status{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
}
.host-room-card__status small{color:var(--ds-muted)}
.host-room-card h2{margin:12px 0 6px;font-size:21px}
.host-room-card__body>p{margin:0;color:var(--ds-muted)}
.host-room-card__price{
    display:flex;
    align-items:baseline;
    gap:5px;
    margin-top:15px;
}
.host-room-card__price strong{font-size:22px}
.host-room-card__price span{color:var(--ds-muted);font-size:12px}
.host-room-reject{
    margin-top:14px;
    padding:12px;
    color:#9f3030;
    background:#fff0f0;
    border-radius:10px;
}
.host-room-reject p{margin:4px 0 0;font-size:13px}
.host-room-card__actions{
    display:flex;
    align-items:center;
    gap:8px;
    margin-top:18px;
}
.host-room-card__actions a,
.host-room-card__actions button{
    display:inline-grid;
    place-items:center;
    min-height:38px;
    padding:0 12px;
    border:1px solid var(--ds-line);
    border-radius:9px;
    background:#fff;
    color:var(--ds-text);
    font-size:13px;
    font-weight:900;
    cursor:pointer;
}
.host-room-card__actions form{margin-left:auto}
.host-room-card__actions form button{color:var(--ds-danger)}
.host-room-empty{
    grid-column:1/-1;
    padding:80px 20px;
    background:#fff;
    border:1px solid var(--ds-line);
    border-radius:18px;
    text-align:center;
}
.host-room-empty strong{display:block;font-size:22px}
.host-room-empty p{color:var(--ds-muted)}
.host-room-empty a{
    display:inline-grid;
    place-items:center;
    height:43px;
    padding:0 15px;
    color:#fff;
    background:var(--ds-primary);
    border-radius:10px;
    font-weight:900;
}

.host-room-form{display:grid;gap:18px}
.host-room-form-section{
    padding:26px;
    background:#fff;
    border:1px solid var(--ds-line);
    border-radius:18px;
}
.host-room-form-section h2{margin:0 0 20px;font-size:22px}
.host-form-grid{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:15px;
}
.host-form-field{display:block;margin-bottom:15px}
.host-form-field--wide{grid-column:span 2}
.host-form-field>span{
    display:block;
    margin-bottom:7px;
    font-size:13px;
    font-weight:900;
}
.host-form-field input,
.host-form-field select,
.host-form-field textarea{
    width:100%;
    min-height:48px;
    padding:0 12px;
    border:1px solid #d8dee9;
    border-radius:10px;
    background:#fff;
    outline:0;
}
.host-form-field textarea{
    padding:13px;
    resize:vertical;
    line-height:1.7;
}
.host-form-field input:focus,
.host-form-field select:focus,
.host-form-field textarea:focus{
    border-color:var(--ds-primary);
    box-shadow:0 0 0 3px rgba(63,81,232,.1);
}
.host-form-checks{
    display:flex;
    align-items:center;
    gap:20px;
    min-height:48px;
}
.host-form-checks label{
    display:flex;
    align-items:center;
    gap:7px;
    font-weight:800;
}
.host-form-checks input{
    width:18px;
    height:18px;
    accent-color:var(--ds-primary);
}
.host-option-editor{
    display:grid;
    grid-template-columns:repeat(5,1fr);
    gap:9px;
    margin-top:12px;
}
.host-option-editor label{
    display:flex;
    align-items:center;
    gap:7px;
    padding:11px;
    background:#f6f7fb;
    border-radius:10px;
    font-size:13px;
    font-weight:800;
}
.host-option-editor input{accent-color:var(--ds-primary)}
.host-form-help{
    margin:-8px 0 18px;
    color:var(--ds-muted);
    font-size:13px;
}
.host-upload-grid{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:10px;
}
.host-upload-grid label{
    padding:13px;
    background:#f6f7fb;
    border:1px dashed #ccd2df;
    border-radius:11px;
}
.host-upload-grid span{
    display:block;
    margin-bottom:8px;
    font-size:12px;
    font-weight:900;
}
.host-upload-grid input{width:100%;font-size:12px}
.host-existing-images{
    display:grid;
    grid-template-columns:repeat(5,1fr);
    gap:10px;
    margin-bottom:18px;
}
.host-existing-images article{
    overflow:hidden;
    border:1px solid var(--ds-line);
    border-radius:11px;
    background:#fff;
}
.host-existing-images img{
    width:100%;
    aspect-ratio:4/3;
    object-fit:cover;
}
.host-existing-images article>div{
    display:flex;
    align-items:center;
    justify-content:space-between;
    padding:8px;
}
.host-existing-images span{
    padding:4px 7px;
    color:#fff;
    background:var(--ds-primary);
    border-radius:999px;
    font-size:10px;
    font-weight:900;
}
.host-existing-images button{
    border:0;
    background:transparent;
    color:var(--ds-danger);
    font-size:12px;
    font-weight:900;
    cursor:pointer;
}
.host-room-submit{
    display:flex;
    justify-content:flex-end;
    gap:10px;
    padding:20px;
    background:#fff;
    border:1px solid var(--ds-line);
    border-radius:16px;
}
.host-room-submit a,
.host-room-submit button{
    display:grid;
    place-items:center;
    min-width:120px;
    height:48px;
    padding:0 18px;
    border-radius:11px;
    font-weight:900;
}
.host-room-submit a{border:1px solid var(--ds-line);background:#fff}
.host-room-submit button{
    border:0;
    color:#fff;
    background:var(--ds-primary);
    cursor:pointer;
}
.host-dashboard-links{display:flex;flex-wrap:wrap;gap:10px}
.host-dashboard-links a{
    display:inline-grid;
    place-items:center;
    height:42px;
    padding:0 14px;
    color:#fff;
    background:var(--ds-primary);
    border-radius:10px;
    font-weight:900;
}
.host-contract-action{
    margin-top:24px;
    padding:20px;
    background:#f6f7fb;
    border-radius:14px;
}
.host-contract-action label>span{
    display:block;
    margin-bottom:7px;
    font-weight:900;
}
.host-contract-action textarea{
    width:100%;
    padding:12px;
    border:1px solid #d8dee9;
    border-radius:10px;
    resize:vertical;
}
.host-contract-action>div{
    display:flex;
    justify-content:flex-end;
    gap:9px;
    margin-top:12px;
}
.host-contract-action button,
.admin-review-form button{
    height:44px;
    padding:0 17px;
    border:0;
    border-radius:10px;
    color:#fff;
    font-weight:900;
    cursor:pointer;
}
.host-contract-action .is-approve,
.admin-review-form .is-approve{background:var(--ds-success)}
.host-contract-action .is-reject,
.admin-review-form .is-reject{background:var(--ds-danger)}
.admin-review-form .is-neutral{background:#657087}

/* 관리자 심사 */
.admin-search-form{
    display:flex;
    gap:9px;
    margin-bottom:18px;
    padding:16px;
    background:#fff;
    border:1px solid var(--ds-line);
    border-radius:14px;
}
.admin-search-form select,
.admin-search-form input{
    height:44px;
    padding:0 12px;
    border:1px solid #d7dde8;
    border-radius:9px;
    background:#fff;
}
.admin-search-form input{flex:1}
.admin-search-form button{
    min-width:90px;
    border:0;
    color:#fff;
    background:var(--ds-primary);
    border-radius:9px;
    font-weight:900;
}
.admin-action-link{
    display:inline-grid;
    place-items:center;
    height:34px;
    padding:0 11px;
    color:#fff;
    background:var(--ds-primary);
    border-radius:8px;
    font-size:12px;
    font-weight:900;
}
.admin-detail-grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:18px;
}
.admin-detail-list{margin:0}
.admin-detail-list>div{
    display:grid;
    grid-template-columns:140px 1fr;
    gap:15px;
    padding:12px 0;
    border-bottom:1px solid var(--ds-line);
}
.admin-detail-list>div:last-child{border-bottom:0}
.admin-detail-list dt{color:var(--ds-muted);font-weight:800}
.admin-detail-list dd{margin:0;font-weight:700}
.admin-review-form label>span{
    display:block;
    margin-bottom:7px;
    font-weight:900;
}
.admin-review-form textarea{
    width:100%;
    padding:12px;
    border:1px solid #d8dee9;
    border-radius:10px;
    resize:vertical;
}
.admin-review-form>div{
    display:flex;
    justify-content:flex-end;
    gap:9px;
    margin-top:12px;
}
.admin-review-form>div>a{
    display:grid;
    place-items:center;
    height:44px;
    padding:0 17px;
    border:1px solid var(--ds-line);
    border-radius:10px;
    font-weight:900;
}
.admin-property-preview{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:20px;
    margin-bottom:20px;
    padding:22px;
    background:#fff;
    border:1px solid var(--ds-line);
    border-radius:16px;
}
.admin-property-gallery{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:7px;
}
.admin-property-gallery img{
    width:100%;
    aspect-ratio:4/3;
    object-fit:cover;
    border-radius:9px;
}
.admin-property-summary{align-self:center}
.admin-property-summary>div{
    display:flex;
    justify-content:space-between;
    gap:10px;
}
.admin-property-summary h2{margin:14px 0 7px;font-size:28px}
.admin-property-summary p{color:var(--ds-muted)}
.admin-property-summary>a{
    display:inline-grid;
    place-items:center;
    height:40px;
    padding:0 13px;
    color:#fff;
    background:var(--ds-text);
    border-radius:9px;
    font-weight:900;
}

.status-chip--approved{color:#08714d;background:#e7f8f1}
.status-chip--rejected{color:#a33434;background:#fff0f0}
.status-chip--hidden{color:#566176;background:#eef0f5}
.status-chip--draft{color:#566176;background:#eef0f5}

@media(max-width:1180px){
    .host-room-list{grid-template-columns:1fr}
    .host-form-grid{grid-template-columns:repeat(2,1fr)}
    .host-option-editor{grid-template-columns:repeat(4,1fr)}
    .host-upload-grid{grid-template-columns:repeat(2,1fr)}
    .host-existing-images{grid-template-columns:repeat(4,1fr)}
}
@media(max-width:760px){
    .host-management-heading{
        align-items:flex-start;
        flex-direction:column;
    }
    .host-room-card{grid-template-columns:1fr}
    .host-room-card>img{height:220px;min-height:0}
    .host-form-grid{grid-template-columns:1fr}
    .host-form-field--wide{grid-column:auto}
    .host-option-editor{grid-template-columns:repeat(2,1fr)}
    .host-existing-images{grid-template-columns:repeat(2,1fr)}
    .admin-search-form{flex-direction:column}
    .admin-detail-grid,
    .admin-property-preview{grid-template-columns:1fr}
    .admin-detail-list>div{grid-template-columns:105px 1fr}
    .admin-review-form>div{flex-wrap:wrap}
}
@media(max-width:430px){
    .host-upload-grid{grid-template-columns:1fr}
    .host-room-card__actions{flex-wrap:wrap}
    .host-room-card__actions form{margin-left:0}
}
.admin-mobile-nav{display:none}
@media(max-width:1024px){
    .admin-mobile-nav{
        display:flex;
        gap:7px;
        overflow-x:auto;
        padding:10px 14px;
        background:#fff;
        border-bottom:1px solid var(--ds-line);
    }
    .admin-mobile-nav a{
        flex:0 0 auto;
        padding:9px 12px;
        background:#f3f5f8;
        border-radius:9px;
        font-size:12px;
        font-weight:900;
    }
}

.contract-status--host_rejected{color:#a33434;background:#fff0f0}

/* 5차: 예약 달력 */
.host-calendar-page{
    padding:46px 0 80px;
    background:var(--ds-bg);
}
.host-calendar-layout{
    display:grid;
    grid-template-columns:minmax(0,1fr) 340px;
    gap:20px;
    align-items:start;
}
.host-calendar-panel,
.host-calendar-form{
    padding:22px;
    background:#fff;
    border:1px solid var(--ds-line);
    border-radius:18px;
}
.calendar-toolbar{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:15px;
    margin-bottom:14px;
}
.calendar-toolbar h2{margin:0;font-size:24px}
.calendar-toolbar a{
    display:grid;
    place-items:center;
    min-width:70px;
    height:38px;
    border:1px solid var(--ds-line);
    border-radius:9px;
    font-size:13px;
    font-weight:900;
}
.calendar-legend{
    display:flex;
    flex-wrap:wrap;
    gap:8px;
    margin-bottom:14px;
}
.calendar-legend span{
    padding:6px 9px;
    border-radius:999px;
    font-size:11px;
    font-weight:900;
}
.calendar-legend .is-open{color:#42604f;background:#eef7f1}
.calendar-legend .is-blocked{color:#9b5f00;background:#fff3d1}
.calendar-legend .is-contract{color:#394ab0;background:#eef0ff}
.host-calendar-grid{
    display:grid;
    grid-template-columns:repeat(7,minmax(0,1fr));
    gap:6px;
}
.calendar-weekday{
    padding:9px 4px;
    color:var(--ds-muted);
    text-align:center;
    font-size:12px;
    font-weight:900;
}
.calendar-weekday.is-sunday{color:#bd4242}
.calendar-weekday.is-saturday{color:#3d56bc}
.calendar-day{
    position:relative;
    min-height:116px;
    padding:10px;
    border:1px solid #e6e9f0;
    border-radius:11px;
    background:#fff;
}
.calendar-day.is-other-month{opacity:.42}
.calendar-day.is-blocked{
    border-color:#f0c66c;
    background:#fff8e8;
}
.calendar-day.is-contract{
    border-color:#aeb8ff;
    background:#f1f3ff;
}
.calendar-day>strong{display:block;font-size:14px}
.calendar-day-status{
    display:block;
    margin-top:12px;
    font-size:11px;
    font-weight:900;
}
.calendar-day small{
    display:block;
    overflow:hidden;
    margin-top:4px;
    color:var(--ds-muted);
    font-size:10px;
    text-overflow:ellipsis;
    white-space:nowrap;
}
.calendar-day form{margin-top:7px}
.calendar-day button{
    padding:4px 7px;
    border:0;
    color:#9b3b3b;
    background:#fff;
    border-radius:6px;
    font-size:10px;
    font-weight:900;
    cursor:pointer;
}
.host-calendar-form{
    position:sticky;
    top:94px;
}
.host-calendar-form h2{margin:0;font-size:22px}
.host-calendar-form>p{
    margin:7px 0 18px;
    color:var(--ds-muted);
    font-size:13px;
    line-height:1.6;
}
.host-calendar-form label{display:block;margin-bottom:14px}
.host-calendar-form label>span{
    display:block;
    margin-bottom:6px;
    font-size:13px;
    font-weight:900;
}
.host-calendar-form input{
    width:100%;
    height:46px;
    padding:0 11px;
    border:1px solid #d8dee9;
    border-radius:10px;
}
.host-calendar-form form>button{
    width:100%;
    height:48px;
    border:0;
    color:#fff;
    background:var(--ds-primary);
    border-radius:10px;
    font-weight:900;
    cursor:pointer;
}
.host-calendar-help{
    margin-top:17px;
    padding:14px;
    background:#f6f7fb;
    border-radius:11px;
}
.host-calendar-help strong{display:block}
.host-calendar-help p{
    margin:5px 0 0;
    color:var(--ds-muted);
    font-size:12px;
    line-height:1.6;
}

/* 5차: 결제 */
.payment-page{
    min-height:calc(100vh - 72px);
    padding:48px 0 80px;
    background:var(--ds-bg);
}
.payment-container{
    display:grid;
    grid-template-columns:minmax(0,1fr) 330px;
    gap:24px;
    align-items:start;
}
.payment-main-card,
.payment-complete-card{
    padding:30px;
    background:#fff;
    border:1px solid var(--ds-line);
    border-radius:20px;
}
.payment-heading{margin-bottom:22px}
.payment-heading>p{
    margin:0 0 5px;
    color:var(--ds-primary);
    font-size:12px;
    font-weight:900;
    letter-spacing:.12em;
}
.payment-heading h1{margin:0;font-size:34px;letter-spacing:-.04em}
.payment-heading span{
    display:block;
    margin-top:8px;
    color:var(--ds-muted);
}
.payment-deadline{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:15px;
    margin:16px 0;
    padding:14px 16px;
    color:#805800;
    background:#fff5d7;
    border-radius:11px;
}
.payment-method-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:15px;
    margin-top:20px;
}
.payment-method-card{
    padding:22px;
    border:1px solid var(--ds-line);
    border-radius:16px;
}
.payment-method-badge{
    display:inline-block;
    padding:6px 9px;
    color:#fff;
    background:var(--ds-text);
    border-radius:999px;
    font-size:10px;
    font-weight:900;
    letter-spacing:.08em;
}
.payment-method-card h2{margin:13px 0 7px;font-size:22px}
.payment-method-card>p{
    min-height:66px;
    margin:0 0 15px;
    color:var(--ds-muted);
    font-size:13px;
    line-height:1.7;
}
.payment-method-card dl{margin:0 0 16px}
.payment-method-card dl>div{
    display:flex;
    justify-content:space-between;
    gap:15px;
    padding:7px 0;
}
.payment-method-card dt,
.payment-method-card dd{margin:0}
.payment-method-card dt{color:var(--ds-muted)}
.payment-method-card dd{font-weight:800}
.payment-method-card ul{
    min-height:91px;
    margin:0 0 16px;
    padding-left:20px;
    color:var(--ds-muted);
    font-size:13px;
}
.payment-method-card li+li{margin-top:5px}
.payment-method-card form label{display:block;margin-bottom:10px}
.payment-method-card form label>span{
    display:block;
    margin-bottom:6px;
    font-size:12px;
    font-weight:900;
}
.payment-method-card input{
    width:100%;
    height:44px;
    padding:0 11px;
    border:1px solid #d8dee9;
    border-radius:9px;
}
.payment-method-card button{
    width:100%;
    height:48px;
    border:0;
    color:#fff;
    background:var(--ds-primary);
    border-radius:10px;
    font-weight:900;
    cursor:pointer;
}
.payment-method-empty{
    grid-column:1/-1;
    padding:55px 20px;
    background:#f7f8fb;
    border-radius:14px;
    text-align:center;
}
.payment-method-empty strong{display:block;font-size:20px}
.payment-method-empty p{color:var(--ds-muted)}
.payment-summary-card{
    position:sticky;
    top:94px;
    padding:24px;
    background:#fff;
    border:1px solid var(--ds-line);
    border-radius:18px;
    box-shadow:var(--ds-shadow);
}
.payment-summary-card h2{margin:0 0 11px;font-size:19px}
.payment-summary-card>strong{display:block;font-size:29px}
.payment-summary-card>p{color:var(--ds-muted);font-size:12px}
.payment-summary-card>a{
    display:grid;
    place-items:center;
    height:43px;
    margin-top:18px;
    border:1px solid var(--ds-line);
    border-radius:10px;
    font-weight:900;
}
.payment-complete-container{width:min(620px,calc(100% - 28px))}
.payment-complete-card{text-align:center}
.payment-status-mark{
    display:grid;
    place-items:center;
    width:72px;
    height:72px;
    margin:0 auto 18px;
    color:#fff;
    background:linear-gradient(145deg,#3948c9,#6976f2);
    border-radius:24px;
    font-weight:900;
}
.payment-complete-card h1{margin:0;font-size:30px}
.payment-complete-card>p{color:var(--ds-muted)}
.payment-bank-info{
    margin:23px 0;
    padding:18px;
    background:#f6f7fb;
    border-radius:14px;
    text-align:left;
}
.payment-bank-info>div{
    display:flex;
    justify-content:space-between;
    gap:16px;
    padding:9px 0;
    border-bottom:1px solid #e5e8ef;
}
.payment-bank-info>div:last-child{border-bottom:0}
.payment-bank-info dt,
.payment-bank-info dd{margin:0}
.payment-bank-info dt{color:var(--ds-muted)}
.payment-bank-info dd{
    max-width:65%;
    font-weight:900;
    text-align:right;
    word-break:break-all;
}
.payment-notice-box{
    padding:16px;
    color:#455168;
    background:#f1f3ff;
    border-radius:12px;
    text-align:left;
}
.payment-notice-box strong{display:block}
.payment-notice-box p{margin:6px 0 0;font-size:13px;line-height:1.7}
.payment-complete-actions{
    display:flex;
    justify-content:center;
    gap:9px;
    margin-top:20px;
}
.payment-complete-actions a,
.payment-cancel-link{
    display:inline-grid;
    place-items:center;
    min-height:43px;
    padding:0 15px;
    border:1px solid var(--ds-line);
    border-radius:10px;
    font-weight:900;
}
.payment-complete-card>small{
    display:block;
    margin-top:18px;
    color:var(--ds-muted);
}
.payment-launch-button{
    width:100%;
    height:54px;
    margin:20px 0 14px;
    border:0;
    color:#fff;
    background:var(--ds-primary);
    border-radius:11px;
    font-weight:900;
    cursor:pointer;
}
.payment-cancel-link{margin-top:15px}
.contract-payment-callout{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:18px;
    margin-top:22px;
    padding:18px;
    color:#273786;
    background:#eef0ff;
    border-radius:14px;
}
.contract-payment-callout strong{display:block;font-size:17px}
.contract-payment-callout p{
    margin:5px 0 0;
    color:#58639a;
    font-size:13px;
}
.contract-payment-callout>a{
    flex:0 0 auto;
    display:grid;
    place-items:center;
    height:44px;
    padding:0 17px;
    color:#fff;
    background:var(--ds-primary);
    border-radius:10px;
    font-weight:900;
}
.contract-payment-callout.is-paid{
    color:#116d4b;
    background:#eaf8f2;
}
.contract-payment-callout.is-rejected{
    color:#9f3030;
    background:#fff0f0;
}
.contract-payment-detail-link{
    display:inline-block;
    margin-top:14px;
    color:var(--ds-primary);
    font-weight:900;
}
.payment-status-chip{
    display:inline-block;
    padding:7px 10px;
    border-radius:999px;
    color:#566176;
    background:#eef0f5;
    font-size:11px;
    font-weight:900;
}
.payment-status-chip--waiting_deposit{
    color:#805800;
    background:#fff3cf;
}
.payment-status-chip--processing{
    color:#3347b3;
    background:#edf0ff;
}
.payment-status-chip--paid{
    color:#08714d;
    background:#e7f8f1;
}
.payment-status-chip--failed,
.payment-status-chip--cancelled{
    color:#a33434;
    background:#fff0f0;
}

/* 5차: 관리자 결제 설정 */
.admin-page-heading{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:16px;
}
.admin-heading-button{
    display:grid;
    place-items:center;
    height:40px;
    padding:0 13px;
    color:#fff;
    background:var(--ds-primary);
    border-radius:9px;
    font-size:13px;
    font-weight:900;
}
.admin-config-form{display:grid;gap:18px}
.admin-config-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:15px;
}
.admin-config-grid label>span{
    display:block;
    margin-bottom:7px;
    font-size:13px;
    font-weight:900;
}
.admin-config-grid input,
.admin-config-grid select{
    width:100%;
    height:46px;
    padding:0 11px;
    border:1px solid #d8dee9;
    border-radius:9px;
    background:#fff;
}
.admin-config-grid small{
    display:block;
    margin-top:5px;
    color:var(--ds-muted);
}
.admin-config-wide{grid-column:1/-1}
.admin-config-note{
    margin-top:18px;
    padding:16px;
    background:#f6f7fb;
    border-radius:12px;
}
.admin-config-note strong{display:block}
.admin-config-note code{
    display:block;
    margin-top:8px;
    padding:10px;
    overflow:auto;
    background:#fff;
    border:1px solid var(--ds-line);
    border-radius:8px;
}
.admin-config-note p{margin:8px 0;color:var(--ds-muted)}
.admin-config-actions{
    display:flex;
    justify-content:flex-end;
    gap:9px;
    padding:18px;
    background:#fff;
    border:1px solid var(--ds-line);
    border-radius:14px;
}
.admin-config-actions a,
.admin-config-actions button{
    display:grid;
    place-items:center;
    min-width:120px;
    height:44px;
    padding:0 15px;
    border-radius:9px;
    font-weight:900;
}
.admin-config-actions a{border:1px solid var(--ds-line)}
.admin-config-actions button{
    border:0;
    color:#fff;
    background:var(--ds-primary);
    cursor:pointer;
}

@media(max-width:960px){
    .host-calendar-layout,
    .payment-container{grid-template-columns:1fr}
    .host-calendar-form,
    .payment-summary-card{position:static}
}
@media(max-width:760px){
    .payment-method-grid{grid-template-columns:1fr}
    .payment-method-card>p,
    .payment-method-card ul{min-height:0}
    .contract-payment-callout{
        align-items:flex-start;
        flex-direction:column;
    }
    .host-calendar-panel{padding:14px}
    .host-calendar-grid{gap:3px}
    .calendar-day{min-height:88px;padding:7px}
    .calendar-day small{display:none}
    .calendar-day button{padding:3px 5px}
    .admin-config-grid{grid-template-columns:1fr}
    .admin-config-wide{grid-column:auto}
}
@media(max-width:480px){
    .calendar-toolbar h2{font-size:20px}
    .calendar-day{min-height:74px}
    .calendar-day-status{font-size:9px}
    .payment-main-card,
    .payment-complete-card{padding:22px 16px}
    .payment-heading h1,
    .payment-complete-card h1{font-size:27px}
    .payment-complete-actions{flex-direction:column}
}

.payment-active-card{
    margin-top:20px;
    padding:22px;
    border:1px solid #cbd2ff;
    border-radius:16px;
    background:#f3f4ff;
}
.payment-active-card h2{margin:13px 0 7px;font-size:22px}
.payment-active-card>p{
    margin:0;
    color:#59649b;
    line-height:1.7;
}
.payment-active-actions{
    display:flex;
    align-items:center;
    flex-wrap:wrap;
    gap:9px;
    margin-top:17px;
}
.payment-active-actions>a,
.payment-active-actions button{
    display:grid;
    place-items:center;
    min-height:43px;
    padding:0 14px;
    border:0;
    border-radius:9px;
    font-weight:900;
}
.payment-active-actions>a{
    color:#fff;
    background:var(--ds-primary);
}
.payment-active-actions button{
    color:#9b3030;
    background:#fff;
    border:1px solid #efcaca;
    cursor:pointer;
}
.payment-active-actions small{
    display:block;
    width:100%;
    color:var(--ds-muted);
}
.contract-status--payment_expired{color:#8a4c00;background:#fff0d8}
.contract-payment-callout.is-expired{color:#8a4c00;background:#fff0d8}

/* 6차: 계약 확정·채팅·환불·정산 */
.admin-heading-actions{
    display:flex;
    align-items:center;
    flex-wrap:wrap;
    gap:8px;
}
.admin-heading-button.is-secondary{
    color:var(--ds-text);
    background:#fff;
    border:1px solid var(--ds-line);
}
.host-dashboard-grid--four{
    grid-template-columns:repeat(4,minmax(0,1fr));
}
.admin-contract-hero{
    display:grid;
    grid-template-columns:180px minmax(0,1fr);
    gap:20px;
    align-items:center;
    margin-bottom:18px;
    padding:20px;
    background:#fff;
    border:1px solid var(--ds-line);
    border-radius:16px;
}
.admin-contract-hero img{
    width:100%;
    height:130px;
    object-fit:cover;
    border-radius:12px;
    background:#eef0f5;
}
.admin-contract-hero h2{
    margin:12px 0 6px;
    font-size:27px;
}
.admin-contract-hero p{margin:0;color:var(--ds-muted)}
.admin-cancel-summary{border-color:#f0c8a6}
.contract-status--confirmed{color:#2552a5;background:#eaf1ff}
.contract-status--in_use{color:#08714d;background:#e7f8f1}
.contract-status--completed{color:#566176;background:#eef0f5}
.contract-status--cancel_requested{color:#8a4c00;background:#fff0d8}
.contract-status--refunded{color:#7b3aa4;background:#f5eaff}
.contract-payment-callout.is-confirmed{
    color:#2552a5;
    background:#eaf1ff;
}
.contract-detail-actions{
    display:flex;
    align-items:center;
    flex-wrap:wrap;
    gap:9px;
    margin-top:22px;
}
.contract-detail-actions>a{
    display:inline-grid;
    place-items:center;
    min-height:43px;
    padding:0 14px;
    border-radius:10px;
    font-weight:900;
}
.contract-chat-link{
    color:#fff;
    background:var(--ds-primary);
}
.contract-cancel-link{
    color:#9f3030;
    background:#fff0f0;
    border:1px solid #efc7c7;
}
.contract-settlement-link{
    color:#08714d;
    background:#e7f8f1;
}
.contract-cancel-status{
    border-color:#f0c8a6;
    background:#fffaf4;
}
.host-settlement-summary{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    margin-top:16px;
    padding:13px;
    background:#f6f7fb;
    border-radius:10px;
}
.host-settlement-summary span{color:var(--ds-muted);font-size:12px}
.host-settlement-summary strong{font-size:18px}

/* 채팅 */
.chat-list-page,
.chat-page{
    min-height:calc(100vh - 72px);
    padding:46px 0 80px;
    background:var(--ds-bg);
}
.chat-room-list{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:14px;
}
.chat-room-card{
    position:relative;
    display:grid;
    grid-template-columns:110px minmax(0,1fr);
    gap:16px;
    align-items:center;
    padding:14px;
    background:#fff;
    border:1px solid var(--ds-line);
    border-radius:16px;
}
.chat-room-card img{
    width:110px;
    height:92px;
    object-fit:cover;
    border-radius:11px;
    background:#eef0f5;
}
.chat-room-card span{
    color:var(--ds-primary);
    font-size:12px;
    font-weight:900;
}
.chat-room-card h2{
    margin:5px 0;
    font-size:19px;
}
.chat-room-card p{
    overflow:hidden;
    margin:0 0 5px;
    color:var(--ds-muted);
    font-size:13px;
    text-overflow:ellipsis;
    white-space:nowrap;
}
.chat-room-card small{color:var(--ds-muted)}
.chat-room-card em{
    position:absolute;
    top:12px;
    right:12px;
    display:grid;
    place-items:center;
    min-width:24px;
    height:24px;
    padding:0 7px;
    color:#fff;
    background:var(--ds-danger);
    border-radius:999px;
    font-size:11px;
    font-style:normal;
    font-weight:900;
}
.chat-container{width:min(900px,calc(100% - 28px))}
.chat-contract-card{
    display:grid;
    grid-template-columns:120px minmax(0,1fr) auto;
    gap:16px;
    align-items:center;
    margin-bottom:14px;
    padding:16px;
    background:#fff;
    border:1px solid var(--ds-line);
    border-radius:16px;
}
.chat-contract-card img{
    width:120px;
    height:92px;
    object-fit:cover;
    border-radius:11px;
}
.chat-contract-card span{color:var(--ds-muted);font-size:12px}
.chat-contract-card h1{margin:5px 0;font-size:23px}
.chat-contract-card p{margin:0;color:var(--ds-muted)}
.chat-contract-card>a{
    display:grid;
    place-items:center;
    height:42px;
    padding:0 13px;
    border:1px solid var(--ds-line);
    border-radius:9px;
    font-weight:900;
}
.chat-box{
    overflow:hidden;
    background:#fff;
    border:1px solid var(--ds-line);
    border-radius:18px;
    box-shadow:var(--ds-shadow);
}
.chat-messages{
    height:560px;
    overflow-y:auto;
    padding:22px;
    background:#f7f8fb;
}
.chat-message{
    width:min(72%,560px);
    margin-bottom:14px;
}
.chat-message>span{
    display:block;
    margin-bottom:5px;
    color:var(--ds-muted);
    font-size:11px;
    font-weight:900;
}
.chat-message>p{
    display:inline-block;
    margin:0;
    padding:12px 14px;
    background:#fff;
    border:1px solid var(--ds-line);
    border-radius:4px 14px 14px 14px;
    line-height:1.65;
    word-break:break-word;
}
.chat-message>small{
    display:block;
    margin-top:4px;
    color:#939aaa;
    font-size:10px;
}
.chat-message.is-mine{
    margin-left:auto;
    text-align:right;
}
.chat-message.is-mine>p{
    color:#fff;
    background:var(--ds-primary);
    border-color:var(--ds-primary);
    border-radius:14px 4px 14px 14px;
    text-align:left;
}
.chat-message--system,
.chat-message--admin{
    width:100%;
    text-align:center;
}
.chat-message--system>span,
.chat-message--admin>span{display:none}
.chat-message--system>p,
.chat-message--admin>p{
    color:#556078;
    background:#e9ecf4;
    border:0;
    border-radius:999px;
    font-size:12px;
}
.chat-empty-message{
    display:grid;
    place-items:center;
    height:100%;
    color:var(--ds-muted);
    text-align:center;
}
.chat-compose{
    display:grid;
    grid-template-columns:minmax(0,1fr) 100px;
    gap:10px;
    padding:14px;
    border-top:1px solid var(--ds-line);
}
.chat-compose textarea{
    width:100%;
    min-height:58px;
    padding:11px;
    border:1px solid #d8dee9;
    border-radius:10px;
    resize:none;
}
.chat-compose button{
    border:0;
    color:#fff;
    background:var(--ds-primary);
    border-radius:10px;
    font-weight:900;
    cursor:pointer;
}
.chat-compose button:disabled{opacity:.55}
.chat-closed{
    padding:18px;
    color:var(--ds-muted);
    background:#f6f7fb;
    text-align:center;
}
.admin-chat-panel{padding-bottom:20px}
.admin-chat-messages{
    height:auto;
    max-height:650px;
    margin-bottom:18px;
    border-radius:12px;
}

/* 취소·환불 */
.cancel-request-page{
    min-height:calc(100vh - 72px);
    padding:48px 0 80px;
    background:var(--ds-bg);
}
.cancel-request-container{width:min(760px,calc(100% - 28px))}
.cancel-request-card{
    padding:30px;
    background:#fff;
    border:1px solid var(--ds-line);
    border-radius:20px;
}
.cancel-request-form>label{
    display:block;
    margin-bottom:16px;
}
.cancel-request-form>label>span,
.cancel-bank-grid label>span{
    display:block;
    margin-bottom:7px;
    font-size:13px;
    font-weight:900;
}
.cancel-request-form input,
.cancel-request-form textarea{
    width:100%;
    padding:0 12px;
    border:1px solid #d8dee9;
    border-radius:10px;
}
.cancel-request-form input{height:48px}
.cancel-request-form textarea{
    min-height:150px;
    padding:13px;
    resize:vertical;
}
.cancel-request-form small{
    display:block;
    margin-top:6px;
    color:var(--ds-muted);
    line-height:1.5;
}
.cancel-bank-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:12px;
    margin-bottom:18px;
}
.cancel-request-actions{
    display:flex;
    justify-content:flex-end;
    gap:9px;
    margin-top:20px;
}
.cancel-request-actions a,
.cancel-request-actions button{
    display:grid;
    place-items:center;
    min-width:130px;
    height:47px;
    padding:0 15px;
    border-radius:10px;
    font-weight:900;
}
.cancel-request-actions a{border:1px solid var(--ds-line)}
.cancel-request-actions button{
    border:0;
    color:#fff;
    background:var(--ds-danger);
    cursor:pointer;
}
.refund-status-chip{
    display:inline-block;
    padding:7px 10px;
    border-radius:999px;
    color:#566176;
    background:#eef0f5;
    font-size:11px;
    font-weight:900;
}
.refund-status-chip--requested{color:#8a4c00;background:#fff0d8}
.refund-status-chip--approved{color:#2552a5;background:#eaf1ff}
.refund-status-chip--rejected{color:#a33434;background:#fff0f0}
.refund-status-chip--completed{color:#08714d;background:#e7f8f1}

/* 정산 */
.settlement-list-page,
.settlement-detail-page{
    min-height:calc(100vh - 72px);
    padding:46px 0 80px;
    background:var(--ds-bg);
}
.settlement-card-list{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:15px;
}
.settlement-card{
    padding:20px;
    background:#fff;
    border:1px solid var(--ds-line);
    border-radius:16px;
}
.settlement-card__top{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
}
.settlement-card__top small{color:var(--ds-muted)}
.settlement-card h2{margin:14px 0 5px;font-size:20px}
.settlement-card>p{margin:0;color:var(--ds-muted);font-size:12px}
.settlement-card dl{
    margin:18px 0;
    padding:14px;
    background:#f7f8fb;
    border-radius:11px;
}
.settlement-card dl>div{
    display:flex;
    justify-content:space-between;
    gap:12px;
    padding:6px 0;
}
.settlement-card dt,
.settlement-card dd{margin:0}
.settlement-card dt{color:var(--ds-muted)}
.settlement-card dd{font-weight:800}
.settlement-card__net{
    margin-top:6px;
    padding-top:12px!important;
    border-top:1px solid var(--ds-line);
}
.settlement-card__net dd{font-size:19px}
.settlement-card__footer{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
}
.settlement-card__footer span{color:var(--ds-muted);font-size:12px}
.settlement-card__footer a{
    color:var(--ds-primary);
    font-weight:900;
}
.settlement-status{
    display:inline-block;
    padding:7px 10px;
    border-radius:999px;
    color:#566176;
    background:#eef0f5;
    font-size:11px;
    font-weight:900;
}
.settlement-status--hold{color:#8a4c00;background:#fff0d8}
.settlement-status--ready{color:#2552a5;background:#eaf1ff}
.settlement-status--paid{color:#08714d;background:#e7f8f1}
.settlement-status--cancelled{color:#a33434;background:#fff0f0}
.settlement-detail-container{width:min(780px,calc(100% - 28px))}
.settlement-detail-card{
    padding:30px;
    background:#fff;
    border:1px solid var(--ds-line);
    border-radius:20px;
}
.settlement-detail-heading h1{margin:13px 0 5px;font-size:31px}
.settlement-detail-heading p{margin:0;color:var(--ds-muted)}
.settlement-detail-list{margin:22px 0}
.settlement-detail-list>div{
    display:flex;
    justify-content:space-between;
    gap:18px;
    padding:13px 0;
    border-bottom:1px solid var(--ds-line);
}
.settlement-detail-list dt,
.settlement-detail-list dd{margin:0}
.settlement-detail-list dt{color:var(--ds-muted)}
.settlement-detail-list dd{font-weight:900}
.settlement-detail-net dd{
    color:var(--ds-primary);
    font-size:24px;
}

@media(max-width:1180px){
    .host-dashboard-grid--four{grid-template-columns:repeat(2,minmax(0,1fr))}
    .settlement-card-list{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:760px){
    .chat-room-list,
    .settlement-card-list{grid-template-columns:1fr}
    .chat-contract-card{grid-template-columns:80px minmax(0,1fr)}
    .chat-contract-card img{width:80px;height:72px}
    .chat-contract-card>a{grid-column:1/-1}
    .chat-messages{height:500px;padding:14px}
    .chat-message{width:88%}
    .chat-compose{grid-template-columns:1fr}
    .chat-compose button{height:44px}
    .cancel-bank-grid{grid-template-columns:1fr}
    .cancel-request-card,
    .settlement-detail-card{padding:22px 16px}
    .admin-contract-hero{grid-template-columns:1fr}
    .admin-contract-hero img{height:210px}
}
@media(max-width:480px){
    .host-dashboard-grid--four{grid-template-columns:1fr}
    .chat-room-card{grid-template-columns:82px minmax(0,1fr)}
    .chat-room-card img{width:82px;height:76px}
    .contract-detail-actions,
    .cancel-request-actions{align-items:stretch;flex-direction:column}
    .contract-detail-actions>a,
    .cancel-request-actions a,
    .cancel-request-actions button{width:100%}
}
.payment-status-chip--refund_requested{
    color:#8a4c00;
    background:#fff0d8;
}
.payment-status-chip--partially_refunded{
    color:#7b3aa4;
    background:#f5eaff;
}
.payment-status-chip--refunded{
    color:#08714d;
    background:#e7f8f1;
}
.admin-stat-grid--seven{
    grid-template-columns:repeat(7,minmax(0,1fr));
}
.admin-stat-grid--seven .stat-card{
    text-decoration:none;
}
@media(max-width:1400px){
    .admin-stat-grid--seven{grid-template-columns:repeat(4,minmax(0,1fr))}
}
@media(max-width:900px){
    .admin-stat-grid--seven{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:520px){
    .admin-stat-grid--seven{grid-template-columns:1fr}
}



/* 7차: 전자계약·PDF·외부 연동 */
.esign-status{
    display:inline-block;
    padding:7px 10px;
    border-radius:999px;
    color:#566176;
    background:#eef0f5;
    font-size:11px;
    font-weight:900;
}
.esign-status--not_created,
.esign-status--draft{color:#6d7482;background:#eef0f5}
.esign-status--scheduled{color:#7a5b00;background:#fff3cf}
.esign-status--on_going,
.esign-status--on_processing,
.esign-status--approval_pending{color:#2552a5;background:#eaf1ff}
.esign-status--completed{color:#08714d;background:#e7f8f1}
.esign-status--aborted,
.esign-status--processing_failed{color:#a33434;background:#fff0f0}
.esign-action-grid{
    display:flex;
    align-items:center;
    flex-wrap:wrap;
    gap:9px;
}
.esign-action-grid form{margin:0}
.esign-action-grid button,
.esign-action-grid>a{
    display:grid;
    place-items:center;
    min-height:44px;
    padding:0 15px;
    border:0;
    border-radius:9px;
    color:#fff;
    background:var(--ds-primary);
    font-weight:900;
    cursor:pointer;
}
.esign-action-grid>a{
    color:var(--ds-text);
    background:#fff;
    border:1px solid var(--ds-line);
}
.contract-esign-link{
    color:#2552a5;
    background:#eaf1ff;
    border:1px solid #c8d8fa;
}
.admin-config-grid textarea{
    width:100%;
    padding:11px;
    border:1px solid #d8dee9;
    border-radius:9px;
    background:#fff;
    resize:vertical;
}
.integration-secret-note{
    color:var(--ds-muted);
    font-size:12px;
}
@media(max-width:760px){
    .esign-action-grid{
        align-items:stretch;
        flex-direction:column;
    }
    .esign-action-grid form,
    .esign-action-grid button,
    .esign-action-grid>a{
        width:100%;
    }
}



/* 8차: 입퇴실 점검·보증금·회계·운영통계 */
.contract-inspection-link{
    color:#1f5e88;
    background:#eaf6ff;
    border:1px solid #c8e1f3;
}
.contract-deposit-link{
    color:#79520a;
    background:#fff6df;
    border:1px solid #efd9a5;
}

/* 입주·퇴실 점검 */
.inspection-list-page,
.inspection-detail-page{
    min-height:calc(100vh - 72px);
    padding:46px 0 82px;
    background:var(--ds-bg);
}
.inspection-container{width:min(1040px,calc(100% - 28px))}
.inspection-heading{
    margin-bottom:20px;
}
.inspection-heading--detail{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:18px;
}
.inspection-heading p{
    margin:0 0 7px;
    color:var(--ds-primary);
    font-size:12px;
    font-weight:900;
    letter-spacing:.12em;
}
.inspection-heading h1{
    margin:0 0 7px;
    font-size:34px;
}
.inspection-heading>span,
.inspection-heading div>span{color:var(--ds-muted)}
.inspection-contract-summary{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:12px;
    margin-bottom:18px;
}
.inspection-contract-summary>div{
    padding:16px;
    background:#fff;
    border:1px solid var(--ds-line);
    border-radius:13px;
}
.inspection-contract-summary span{
    display:block;
    margin-bottom:6px;
    color:var(--ds-muted);
    font-size:12px;
}
.inspection-contract-summary strong{font-size:17px}
.inspection-type-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:16px;
}
.inspection-type-card{
    display:flex;
    min-height:315px;
    padding:24px;
    flex-direction:column;
    justify-content:space-between;
    background:#fff;
    border:1px solid var(--ds-line);
    border-radius:18px;
    box-shadow:var(--ds-shadow);
}
.inspection-type-card>div>span{
    color:var(--ds-primary);
    font-size:11px;
    font-weight:900;
    letter-spacing:.12em;
}
.inspection-type-card h2{margin:8px 0;font-size:25px}
.inspection-type-card p{color:var(--ds-muted);line-height:1.7}
.inspection-type-card dl{
    margin:18px 0;
    padding:13px;
    background:#f7f8fb;
    border-radius:10px;
}
.inspection-type-card dl>div{
    display:flex;
    justify-content:space-between;
    padding:5px 0;
}
.inspection-type-card dt,
.inspection-type-card dd{margin:0}
.inspection-type-card a,
.inspection-type-card button{
    display:grid;
    place-items:center;
    width:100%;
    height:47px;
    border:0;
    color:#fff;
    background:var(--ds-primary);
    border-radius:10px;
    font-weight:900;
    cursor:pointer;
}
.inspection-disabled{padding:13px;background:#f2f3f6;border-radius:9px}
.inspection-page-actions{
    display:flex;
    justify-content:flex-end;
    margin-top:20px;
}
.inspection-page-actions a{
    padding:11px 14px;
    background:#fff;
    border:1px solid var(--ds-line);
    border-radius:9px;
    font-weight:900;
}
.inspection-status{
    display:inline-block;
    padding:7px 10px;
    color:#596375;
    background:#eef0f5;
    border-radius:999px;
    font-size:11px;
    font-weight:900;
    white-space:nowrap;
}
.inspection-status--draft{color:#596375;background:#eef0f5}
.inspection-status--submitted{color:#2552a5;background:#eaf1ff}
.inspection-status--confirmed{color:#08714d;background:#e7f8f1}
.inspection-status--disputed{color:#a33434;background:#fff0f0}
.inspection-status--admin_resolved{color:#755099;background:#f3eafa}
.inspection-panel{
    margin-bottom:16px;
    padding:22px;
    background:#fff;
    border:1px solid var(--ds-line);
    border-radius:16px;
}
.inspection-panel h2{margin:0 0 16px;font-size:21px}
.inspection-panel-heading{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:15px;
    margin-bottom:16px;
}
.inspection-panel-heading h2{margin:0}
.inspection-panel-heading span{color:var(--ds-muted);font-size:12px}
.inspection-base-grid{
    display:grid;
    grid-template-columns:repeat(5,minmax(0,1fr));
    gap:11px;
}
.inspection-base-grid label>span,
.inspection-wide-field>span,
.inspection-item label>span,
.inspection-upload-card label>span,
.inspection-response-box label>span{
    display:block;
    margin-bottom:6px;
    font-size:12px;
    font-weight:900;
}
.inspection-form input,
.inspection-form select,
.inspection-form textarea,
.inspection-response-box textarea,
.admin-inspection-items input,
.admin-inspection-items select,
.admin-inspection-items textarea{
    width:100%;
    border:1px solid #d8dee9;
    border-radius:9px;
    background:#fff;
}
.inspection-form input,
.inspection-form select,
.admin-inspection-items input,
.admin-inspection-items select{height:44px;padding:0 10px}
.inspection-form textarea,
.inspection-response-box textarea,
.admin-inspection-items textarea{padding:10px;resize:vertical}
.inspection-wide-field{display:block;margin-top:14px}
.inspection-item-list{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:12px;
}
.inspection-item{
    display:grid;
    grid-template-columns:
        minmax(130px,.8fr)
        minmax(180px,1.45fr)
        minmax(120px,.75fr);
    gap:10px;
    align-items:end;
    padding:14px;
    border:1px solid var(--ds-line);
    border-radius:12px;
}
.inspection-item__title{
    grid-column:1/-1;
    align-self:start;
    padding-bottom:2px;
}
.inspection-item__title strong{display:block}
.inspection-item__title small{color:var(--ds-muted)}
.inspection-item>label{
    min-width:0;
}
.inspection-item>label textarea{
    min-width:0;
    min-height:70px;
    box-sizing:border-box;
    line-height:1.55;
}
.inspection-item>label input,
.inspection-item>label select{
    min-width:0;
    box-sizing:border-box;
}
.inspection-item-list.is-readonly .inspection-item{
    display:block;
}
.inspection-item-list.is-readonly .inspection-item__title{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
}
.inspection-item-list.is-readonly p{color:var(--ds-muted)}
.condition-chip{
    display:inline-block;
    padding:5px 8px;
    color:#596375;
    background:#eef0f5;
    border-radius:999px;
    font-size:10px;
    font-weight:900;
}
.condition-chip--good{color:#08714d;background:#e7f8f1}
.condition-chip--normal{color:#755900;background:#fff3d0}
.condition-chip--damaged,
.condition-chip--missing{color:#a33434;background:#fff0f0}
.condition-chip--na{color:#6b7280;background:#eef0f5}
.inspection-upload-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:11px;
}
.inspection-upload-card{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:9px;
    padding:13px;
    background:#f7f8fb;
    border-radius:11px;
}
.inspection-upload-card label:last-child{grid-column:1/-1}
.inspection-photo-grid{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:11px;
}
.inspection-photo-grid figure{
    overflow:hidden;
    margin:0;
    background:#f7f8fb;
    border:1px solid var(--ds-line);
    border-radius:12px;
}
.inspection-photo-grid img{
    width:100%;
    height:180px;
    object-fit:cover;
    display:block;
}
.inspection-photo-grid figcaption{
    display:flex;
    padding:10px;
    flex-direction:column;
    gap:4px;
}
.inspection-photo-grid figcaption span{
    color:var(--ds-muted);
    font-size:10px;
}
.inspection-form-actions,
.inspection-submit-box,
.inspection-response-box{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:14px;
    margin-bottom:16px;
    padding:18px;
    background:#fff;
    border:1px solid var(--ds-line);
    border-radius:14px;
}
.inspection-form-actions a,
.inspection-form-actions button,
.inspection-submit-box button,
.inspection-response-box button{
    display:grid;
    place-items:center;
    min-height:44px;
    padding:0 15px;
    border:0;
    border-radius:9px;
    font-weight:900;
    cursor:pointer;
}
.inspection-form-actions a{border:1px solid var(--ds-line)}
.inspection-form-actions button,
.inspection-submit-box button{color:#fff;background:var(--ds-primary)}
.inspection-response-box{display:block}
.inspection-response-box form>div{
    display:flex;
    justify-content:flex-end;
    gap:9px;
    margin-top:12px;
}
.inspection-response-box .is-dispute{color:#a33434;background:#fff0f0}
.inspection-response-box .is-confirm{color:#fff;background:#08714d}
.inspection-alert{
    margin-bottom:15px;
    padding:16px;
    color:#2552a5;
    background:#eaf1ff;
    border-radius:12px;
}
.inspection-alert.is-disputed{color:#9f3030;background:#fff0f0}
.inspection-alert.is-resolved{color:#755099;background:#f3eafa}
.inspection-read-list>div{
    display:flex;
    justify-content:space-between;
    gap:20px;
    padding:10px 0;
    border-bottom:1px solid var(--ds-line);
}
.inspection-read-list dt,
.inspection-read-list dd{margin:0}
.inspection-read-list dt{color:var(--ds-muted)}
.host-filter-form{
    display:flex;
    gap:9px;
    margin-bottom:16px;
}
.host-filter-form select,
.host-filter-form button{
    height:43px;
    padding:0 11px;
    border:1px solid var(--ds-line);
    border-radius:9px;
    background:#fff;
}
.host-filter-form button{color:#fff;background:var(--ds-primary);font-weight:900}
.host-inspection-list{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:14px;
}
.host-inspection-card{
    padding:19px;
    background:#fff;
    border:1px solid var(--ds-line);
    border-radius:15px;
}
.host-inspection-card>div:first-child{
    display:flex;
    justify-content:space-between;
    align-items:center;
}
.host-inspection-card h2{margin:14px 0 5px;font-size:19px}
.host-inspection-card>p{margin:0;color:var(--ds-muted)}
.host-inspection-card dl{
    margin:15px 0;
    padding:11px;
    background:#f7f8fb;
    border-radius:9px;
}
.host-inspection-card dl>div{display:flex;justify-content:space-between;padding:4px 0}
.host-inspection-card dt,.host-inspection-card dd{margin:0}
.host-inspection-actions{display:flex;gap:8px}
.host-inspection-actions a{
    flex:1;
    padding:10px;
    text-align:center;
    border:1px solid var(--ds-line);
    border-radius:8px;
    font-weight:900;
}
.admin-inspection-items{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:12px;
}
.admin-inspection-items article{
    padding:14px;
    background:#f7f8fb;
    border-radius:10px;
}

/* 보증금 반환 */
.deposit-page,
.deposit-list-page{
    min-height:calc(100vh - 72px);
    padding:46px 0 82px;
    background:var(--ds-bg);
}
.deposit-container{width:min(960px,calc(100% - 28px))}
.deposit-heading{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:18px;
    margin-bottom:18px;
}
.deposit-heading p{
    margin:0 0 7px;
    color:#a06b09;
    font-size:12px;
    font-weight:900;
    letter-spacing:.12em;
}
.deposit-heading h1{margin:0 0 7px;font-size:34px}
.deposit-heading div>span{color:var(--ds-muted)}
.deposit-status{
    display:inline-block;
    padding:7px 10px;
    color:#596375;
    background:#eef0f5;
    border-radius:999px;
    font-size:11px;
    font-weight:900;
    white-space:nowrap;
}
.deposit-status--waiting{color:#596375;background:#eef0f5}
.deposit-status--host_proposed{color:#2552a5;background:#eaf1ff}
.deposit-status--guest_accepted{color:#08714d;background:#e7f8f1}
.deposit-status--disputed{color:#a33434;background:#fff0f0}
.deposit-status--approved{color:#755900;background:#fff3d0}
.deposit-status--paid{color:#08714d;background:#dff5eb}
.deposit-summary-grid{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:11px;
    margin-bottom:16px;
}
.deposit-summary-grid>div{
    padding:17px;
    background:#fff;
    border:1px solid var(--ds-line);
    border-radius:13px;
}
.deposit-summary-grid span{display:block;color:var(--ds-muted);font-size:12px}
.deposit-summary-grid strong{display:block;margin-top:7px;font-size:20px}
.deposit-summary-grid .is-return{background:#fff8e8;border-color:#ead39c}
.deposit-panel,
.deposit-response-panel,
.deposit-checkout-link{
    margin-bottom:15px;
    padding:20px;
    background:#fff;
    border:1px solid var(--ds-line);
    border-radius:15px;
}
.deposit-panel h2,
.deposit-response-panel h2{margin:0 0 15px;font-size:21px}
.deposit-account-form{
    display:grid;
    grid-template-columns:1fr 1.4fr 1fr auto;
    gap:10px;
    align-items:end;
}
.deposit-account-form label>span,
.deposit-proposal-form label>span,
.deposit-response-panel label>span{
    display:block;
    margin-bottom:6px;
    font-size:12px;
    font-weight:900;
}
.deposit-account-form input,
.deposit-proposal-form input,
.deposit-proposal-form select,
.deposit-proposal-form textarea,
.deposit-response-panel input,
.deposit-response-panel textarea{
    width:100%;
    border:1px solid #d8dee9;
    border-radius:9px;
    background:#fff;
}
.deposit-account-form input,
.deposit-proposal-form input,
.deposit-proposal-form select,
.deposit-response-panel input{height:44px;padding:0 10px}
.deposit-proposal-form textarea,
.deposit-response-panel textarea{padding:10px;resize:vertical}
.deposit-account-form button,
.deposit-proposal-form>button,
.deposit-response-panel button{
    min-height:44px;
    padding:0 14px;
    border:0;
    color:#fff;
    background:#a06b09;
    border-radius:9px;
    font-weight:900;
    cursor:pointer;
}
.deposit-info-list>div{
    display:flex;
    justify-content:space-between;
    gap:20px;
    padding:10px 0;
    border-bottom:1px solid var(--ds-line);
}
.deposit-info-list dt,.deposit-info-list dd{margin:0}
.deposit-info-list dt{color:var(--ds-muted)}
.deposit-checkout-link{
    display:flex;
    align-items:center;
    justify-content:space-between;
}
.deposit-checkout-link div{display:flex;flex-direction:column}
.deposit-checkout-link span{color:var(--ds-muted);font-size:12px}
.deposit-checkout-link a{color:var(--ds-primary);font-weight:900}
.deposit-deduction-list{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:10px;
}
.deposit-deduction-list article{
    position:relative;
    padding:15px;
    background:#f7f8fb;
    border-radius:10px;
}
.deposit-deduction-list article>div{display:flex;flex-direction:column}
.deposit-deduction-list article>div span{color:var(--ds-muted);font-size:11px}
.deposit-deduction-list p{padding-right:100px;color:var(--ds-muted)}
.deposit-deduction-list em{
    position:absolute;
    top:16px;
    right:14px;
    font-size:17px;
    font-style:normal;
    font-weight:900;
}
.deposit-deduction-list small{color:var(--ds-primary)}
.deposit-response-panel form>div{
    display:flex;
    justify-content:flex-end;
    gap:9px;
    margin-top:12px;
}
.deposit-response-panel .is-dispute{color:#a33434;background:#fff0f0}
.deposit-response-panel .is-accept{color:#fff;background:#08714d}
.deposit-alert{
    margin-bottom:15px;
    padding:16px;
    color:#2552a5;
    background:#eaf1ff;
    border-radius:12px;
}
.deposit-alert.is-disputed{color:#a33434;background:#fff0f0}
.deposit-alert.is-approved{color:#755900;background:#fff3d0}
.deposit-alert.is-paid{color:#08714d;background:#e7f8f1}
.deposit-page-actions{display:flex;justify-content:flex-end}
.deposit-page-actions a{
    padding:11px 14px;
    background:#fff;
    border:1px solid var(--ds-line);
    border-radius:9px;
    font-weight:900;
}
.deposit-card-list{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:14px;
}
.deposit-card{
    padding:19px;
    background:#fff;
    border:1px solid var(--ds-line);
    border-radius:15px;
}
.deposit-card__top{display:flex;justify-content:space-between;align-items:center}
.deposit-card h2{margin:14px 0 5px;font-size:19px}
.deposit-card>p{margin:0;color:var(--ds-muted)}
.deposit-card dl{
    margin:15px 0;
    padding:11px;
    background:#f7f8fb;
    border-radius:9px;
}
.deposit-card dl>div{display:flex;justify-content:space-between;padding:4px 0}
.deposit-card dt,.deposit-card dd{margin:0}
.deposit-card .is-total{
    margin-top:6px;
    padding-top:10px;
    border-top:1px solid var(--ds-line);
}
.deposit-card__footer{display:flex;justify-content:space-between;align-items:center}
.deposit-card__footer span{color:var(--ds-muted);font-size:11px}
.deposit-card__footer a{color:#a06b09;font-weight:900}
.deposit-proposal-rows{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:11px;
}
.deposit-proposal-rows article{
    display:grid;
    grid-template-columns:1fr 1.3fr;
    gap:8px;
    padding:13px;
    background:#f7f8fb;
    border-radius:10px;
}
.deposit-proposal-rows article>span{grid-column:1/-1;font-weight:900}
.deposit-proposal-rows textarea{grid-column:1/-1}
.deposit-wide-field{display:block;margin:14px 0}
.admin-deposit-deductions{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:12px;
}
.admin-deposit-deductions article{
    padding:14px;
    background:#f7f8fb;
    border-radius:10px;
}

/* 정산명세서·세금계산서 */
.host-tax-form{
    margin:22px 0;
    padding:18px;
    background:#f7f8fb;
    border-radius:13px;
}
.host-tax-form h2{margin:0 0 5px;font-size:18px}
.host-tax-form>p{margin:0 0 16px;color:var(--ds-muted)}
.tax-status{
    display:inline-block;
    padding:7px 10px;
    color:#596375;
    background:#eef0f5;
    border-radius:999px;
    font-size:11px;
    font-weight:900;
    white-space:nowrap;
}
.tax-status--ready{color:#755900;background:#fff3d0}
.tax-status--issued{color:#08714d;background:#e7f8f1}
.tax-status--cancelled{color:#a33434;background:#fff0f0}
.tax-status--failed{color:#a33434;background:#fff0f0}
.tax-status--not_required{color:#596375;background:#eef0f5}
.settlement-document-panel{
    margin-top:18px;
    padding-top:18px;
    border-top:1px solid var(--ds-line);
}
.settlement-document-panel h2{font-size:18px}
.settlement-document-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:10px;
}
.settlement-document-grid article{
    display:flex;
    padding:14px;
    flex-direction:column;
    gap:5px;
    background:#f7f8fb;
    border-radius:10px;
}
.settlement-document-grid article>span{color:var(--ds-muted);font-size:11px}
.settlement-document-grid a{color:var(--ds-primary);font-weight:900}
.accounting-host-page{
    min-height:calc(100vh - 72px);
    padding:46px 0 82px;
    background:var(--ds-bg);
}
.host-tax-card-list{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:14px;
}
.host-tax-card{
    padding:19px;
    background:#fff;
    border:1px solid var(--ds-line);
    border-radius:15px;
}
.host-tax-card__top{display:flex;justify-content:space-between;align-items:center}
.host-tax-card h2{margin:14px 0 5px;font-size:19px}
.host-tax-card>p{margin:0;color:var(--ds-muted)}
.host-tax-card dl{
    margin:15px 0;
    padding:11px;
    background:#f7f8fb;
    border-radius:9px;
}
.host-tax-card dl>div{display:flex;justify-content:space-between;padding:4px 0}
.host-tax-card dt,.host-tax-card dd{margin:0}
.host-tax-card .is-total{
    margin-top:5px;
    padding-top:10px;
    border-top:1px solid var(--ds-line);
}
.host-tax-card__actions{display:flex;gap:8px}
.host-tax-card__actions a{
    flex:1;
    padding:9px;
    text-align:center;
    border:1px solid var(--ds-line);
    border-radius:8px;
    font-weight:900;
}

/* 운영 매출 통계 */
.report-filter-form{
    display:flex;
    align-items:end;
    gap:10px;
    margin-bottom:14px;
    padding:15px;
    background:#fff;
    border:1px solid var(--ds-line);
    border-radius:12px;
}
.report-filter-form label>span{display:block;margin-bottom:6px;font-size:12px;font-weight:900}
.report-filter-form input,
.report-filter-form button{
    height:43px;
    padding:0 11px;
    border:1px solid var(--ds-line);
    border-radius:9px;
    background:#fff;
}
.report-filter-form button{color:#fff;background:var(--ds-primary);font-weight:900}
.report-definition{
    margin-bottom:14px;
    padding:14px;
    color:#45516a;
    background:#edf4ff;
    border-radius:11px;
}
.report-definition p{margin:5px 0 0}
.report-kpi-grid{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:11px;
    margin-bottom:14px;
}
.report-kpi-grid article{
    padding:17px;
    background:#fff;
    border:1px solid var(--ds-line);
    border-radius:13px;
}
.report-kpi-grid article.is-primary{
    color:#fff;
    background:var(--ds-primary);
    border-color:var(--ds-primary);
}
.report-kpi-grid span,
.report-kpi-grid small{display:block}
.report-kpi-grid span{font-size:12px}
.report-kpi-grid strong{display:block;margin:7px 0;font-size:21px}
.report-kpi-grid small{color:var(--ds-muted)}
.report-kpi-grid .is-primary small{color:#dce8ff}
.report-contract-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:11px;
    margin-bottom:14px;
}
.report-contract-grid>div{
    display:flex;
    align-items:center;
    justify-content:space-between;
    padding:16px;
    background:#fff;
    border:1px solid var(--ds-line);
    border-radius:12px;
}
.report-contract-grid span{color:var(--ds-muted)}
.report-contract-grid strong{font-size:22px}
.report-daily-list{display:grid;gap:10px}
.report-daily-list article{
    display:grid;
    grid-template-columns:160px minmax(140px,1fr) 2.2fr;
    gap:14px;
    align-items:center;
    padding:13px;
    background:#f7f8fb;
    border-radius:10px;
}
.report-daily-date{display:flex;flex-direction:column}
.report-daily-date span{color:var(--ds-muted);font-size:11px}
.report-daily-bar{
    overflow:hidden;
    height:12px;
    background:#e3e7ef;
    border-radius:999px;
}
.report-daily-bar i{
    display:block;
    height:100%;
    background:var(--ds-primary);
    border-radius:999px;
}
.report-daily-list dl{
    display:grid;
    grid-template-columns:repeat(5,minmax(0,1fr));
    gap:8px;
    margin:0;
}
.report-daily-list dl>div{display:flex;flex-direction:column}
.report-daily-list dt,
.report-daily-list dd{margin:0}
.report-daily-list dt{color:var(--ds-muted);font-size:10px}
.report-daily-list dd{font-size:11px;font-weight:800}

/* 업로드 빈 상태 */
.inspection-empty-note,
.deposit-empty{color:var(--ds-muted)}

@media(max-width:1200px){
    .inspection-base-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
    .host-inspection-list,
    .deposit-card-list,
    .host-tax-card-list{grid-template-columns:repeat(2,minmax(0,1fr))}
    .report-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
    .report-daily-list article{grid-template-columns:130px 1fr}
    .report-daily-list dl{grid-column:1/-1}
}
@media(max-width:820px){
    .inspection-contract-summary,
    .deposit-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
    .inspection-item-list,
    .admin-inspection-items,
    .deposit-deduction-list,
    .deposit-proposal-rows,
    .admin-deposit-deductions{grid-template-columns:1fr}
    .inspection-item{
        grid-template-columns:
            minmax(0,1fr)
            minmax(0,1.35fr);
    }
    .inspection-item__title{
        grid-column:1/-1;
    }
    .inspection-item>label:last-child{
        grid-column:1/-1;
    }
    .inspection-photo-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
    .inspection-base-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
    .deposit-account-form{grid-template-columns:1fr 1fr}
    .deposit-account-form button{grid-column:1/-1}
    .report-daily-list dl{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(max-width:640px){
    .inspection-heading--detail,
    .deposit-heading{align-items:flex-start;flex-direction:column}
    .inspection-type-grid,
    .host-inspection-list,
    .deposit-card-list,
    .host-tax-card-list,
    .settlement-document-grid{grid-template-columns:1fr}
    .inspection-contract-summary,
    .deposit-summary-grid,
    .inspection-base-grid,
    .inspection-upload-grid,
    .deposit-account-form,
    .report-kpi-grid,
    .report-contract-grid{grid-template-columns:1fr}
    .inspection-item{
        grid-template-columns:1fr;
    }
    .inspection-item__title{
        grid-column:auto;
    }
    .inspection-item>label:last-child{
        grid-column:auto;
    }
    .inspection-item>label textarea{
        min-height:86px;
    }
    .inspection-photo-grid{grid-template-columns:1fr 1fr}
    .inspection-form-actions,
    .inspection-submit-box,
    .inspection-response-box form>div,
    .deposit-response-panel form>div{align-items:stretch;flex-direction:column}
    .inspection-form-actions a,
    .inspection-form-actions button,
    .inspection-submit-box button,
    .inspection-response-box button,
    .deposit-response-panel button{width:100%}
    .report-filter-form{align-items:stretch;flex-direction:column}
    .report-daily-list article{grid-template-columns:1fr}
    .report-daily-list dl{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:420px){
    .inspection-photo-grid{grid-template-columns:1fr}
    .report-daily-list dl{grid-template-columns:1fr}
}



/* 9차: 유지보수·업체작업·월간보고서·공실분석·권한결재 */
.contract-maintenance-link{
    color:#8a4a11;
    background:#fff1e6;
    border:1px solid #efc7a5;
}

/* 유지보수 사용자·임대인 */
.maintenance-list-page,
.maintenance-write-page,
.maintenance-detail-page,
.occupancy-host-page,
.host-monthly-page{
    min-height:calc(100vh - 72px);
    padding:46px 0 86px;
    background:var(--ds-bg);
}
.maintenance-container{
    width:min(1040px,calc(100% - 28px));
}
.maintenance-form-container{
    width:min(900px,calc(100% - 28px));
}
.maintenance-heading{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:18px;
    margin-bottom:20px;
}
.maintenance-heading p{
    margin:0 0 7px;
    color:#c2601b;
    font-size:12px;
    font-weight:900;
    letter-spacing:.12em;
}
.maintenance-heading h1{
    margin:0 0 7px;
    font-size:34px;
}
.maintenance-heading div>span{
    color:var(--ds-muted);
}
.maintenance-heading>a,
.maintenance-heading>div+div a,
.maintenance-heading>div+div button{
    display:inline-grid;
    min-height:43px;
    padding:0 14px;
    place-items:center;
    border:1px solid var(--ds-line);
    border-radius:9px;
    background:#fff;
    font-weight:900;
}
.maintenance-heading--detail>span{
    margin-top:4px;
}
.maintenance-card-list{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:14px;
}
.maintenance-card{
    display:flex;
    min-height:330px;
    padding:19px;
    flex-direction:column;
    background:#fff;
    border:1px solid var(--ds-line);
    border-radius:15px;
    box-shadow:0 6px 20px rgba(17,31,55,.04);
}
.maintenance-card__top{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:8px;
}
.maintenance-card>small{
    margin-top:13px;
    color:var(--ds-muted);
}
.maintenance-card h2{
    margin:7px 0 5px;
    font-size:20px;
    line-height:1.45;
}
.maintenance-card>p{
    margin:0;
    color:var(--ds-muted);
}
.maintenance-card dl{
    margin:15px 0;
    padding:11px;
    background:#f7f8fb;
    border-radius:9px;
}
.maintenance-card dl>div{
    display:flex;
    justify-content:space-between;
    gap:12px;
    padding:4px 0;
}
.maintenance-card dt,
.maintenance-card dd{
    margin:0;
}
.maintenance-card dt{
    color:var(--ds-muted);
}
.maintenance-card>a{
    display:grid;
    min-height:43px;
    margin-top:auto;
    place-items:center;
    color:#fff;
    background:#c2601b;
    border-radius:9px;
    font-weight:900;
}
.maintenance-priority,
.maintenance-status{
    display:inline-block;
    padding:6px 9px;
    border-radius:999px;
    font-size:10px;
    font-weight:900;
    white-space:nowrap;
}
.maintenance-priority--normal{
    color:#546174;
    background:#eef0f5;
}
.maintenance-priority--urgent{
    color:#946000;
    background:#fff1c7;
}
.maintenance-priority--emergency{
    color:#a52d2d;
    background:#ffe6e6;
}
.maintenance-status{
    color:#596375;
    background:#eef0f5;
}
.maintenance-status--requested,
.maintenance-status--host_review{
    color:#2552a5;
    background:#eaf1ff;
}
.maintenance-status--waiting_approval{
    color:#765400;
    background:#fff3d0;
}
.maintenance-status--assigned,
.maintenance-status--in_progress{
    color:#74519a;
    background:#f3eafa;
}
.maintenance-status--work_completed,
.maintenance-status--guest_confirmed{
    color:#08714d;
    background:#e7f8f1;
}
.maintenance-status--closed{
    color:#08714d;
    background:#dff5eb;
}
.maintenance-status--disputed,
.maintenance-status--rejected,
.maintenance-status--cancelled{
    color:#a33434;
    background:#fff0f0;
}
.maintenance-panel,
.maintenance-response-panel{
    margin-bottom:15px;
    padding:21px;
    background:#fff;
    border:1px solid var(--ds-line);
    border-radius:15px;
}
.maintenance-panel h2,
.maintenance-response-panel h2{
    margin:0 0 15px;
    font-size:21px;
}
.maintenance-form{
    display:grid;
    gap:15px;
}
.maintenance-form label>span,
.work-order-form label>span,
.maintenance-photo-form label>span,
.maintenance-status-form label>span,
.maintenance-response-panel label>span{
    display:block;
    margin-bottom:6px;
    font-size:12px;
    font-weight:900;
}
.maintenance-form input,
.maintenance-form select,
.maintenance-form textarea,
.work-order-form input,
.work-order-form select,
.work-order-form textarea,
.maintenance-photo-form input,
.maintenance-photo-form select,
.maintenance-status-form input,
.maintenance-status-form textarea,
.maintenance-response-panel textarea{
    width:100%;
    border:1px solid #d8dee9;
    border-radius:9px;
    background:#fff;
}
.maintenance-form input,
.maintenance-form select,
.work-order-form input,
.work-order-form select,
.maintenance-photo-form select,
.maintenance-status-form input{
    height:44px;
    padding:0 10px;
}
.maintenance-form textarea,
.work-order-form textarea,
.maintenance-status-form textarea,
.maintenance-response-panel textarea{
    padding:11px;
    resize:vertical;
}
.maintenance-form-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:11px;
}
.maintenance-check{
    display:flex;
    align-items:flex-start;
    gap:9px;
    padding:12px;
    background:#fff8e8;
    border-radius:9px;
}
.maintenance-check input{
    width:18px;
    height:18px;
    flex:0 0 auto;
}
.maintenance-check span{
    margin:0!important;
    font-weight:700!important;
    line-height:1.6;
}
.maintenance-upload-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:11px;
}
.maintenance-upload-grid label{
    display:grid;
    gap:7px;
    padding:13px;
    background:#f7f8fb;
    border-radius:10px;
}
.maintenance-safety-note{
    padding:17px;
    color:#933434;
    background:#fff0f0;
    border-radius:12px;
}
.maintenance-safety-note p{
    margin:6px 0 0;
    line-height:1.7;
}
.maintenance-form-actions,
.maintenance-page-actions{
    display:flex;
    justify-content:flex-end;
    gap:9px;
}
.maintenance-form-actions a,
.maintenance-form-actions button,
.maintenance-page-actions a,
.work-order-form>button,
.maintenance-photo-form>button,
.maintenance-status-form button,
.maintenance-response-panel button{
    display:grid;
    min-height:44px;
    padding:0 15px;
    place-items:center;
    border:0;
    border-radius:9px;
    font-weight:900;
    cursor:pointer;
}
.maintenance-form-actions a,
.maintenance-page-actions a{
    background:#fff;
    border:1px solid var(--ds-line);
}
.maintenance-form-actions button,
.work-order-form>button,
.maintenance-photo-form>button,
.maintenance-status-form .is-approve,
.maintenance-response-panel .is-confirm{
    color:#fff;
    background:#c2601b;
}
.maintenance-status-form .is-reject,
.maintenance-response-panel .is-dispute{
    color:#a33434;
    background:#fff0f0;
}
.maintenance-summary-grid{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:11px;
    margin-bottom:15px;
}
.maintenance-summary-grid>div{
    padding:16px;
    background:#fff;
    border:1px solid var(--ds-line);
    border-radius:12px;
}
.maintenance-summary-grid span{
    display:block;
    color:var(--ds-muted);
    font-size:11px;
}
.maintenance-summary-grid strong{
    display:block;
    margin-top:7px;
    font-size:17px;
}
.maintenance-read-list>div{
    display:flex;
    justify-content:space-between;
    gap:22px;
    padding:10px 0;
    border-bottom:1px solid var(--ds-line);
}
.maintenance-read-list dt,
.maintenance-read-list dd{
    margin:0;
}
.maintenance-read-list dt{
    min-width:120px;
    color:var(--ds-muted);
}
.maintenance-read-list dd{
    text-align:right;
}
.maintenance-photo-grid{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:11px;
}
.maintenance-photo-grid figure{
    overflow:hidden;
    margin:0;
    border:1px solid var(--ds-line);
    border-radius:11px;
    background:#f7f8fb;
}
.maintenance-photo-grid img{
    display:block;
    width:100%;
    height:180px;
    object-fit:cover;
}
.maintenance-photo-grid figcaption{
    display:flex;
    padding:10px;
    flex-direction:column;
    gap:4px;
}
.maintenance-photo-grid figcaption span{
    color:var(--ds-muted);
    font-size:10px;
}
.maintenance-response-panel form>div,
.maintenance-status-form>div{
    display:flex;
    justify-content:flex-end;
    gap:9px;
    margin-top:12px;
}
.maintenance-cancel-form{
    display:flex;
    justify-content:flex-end;
    margin-bottom:15px;
}
.maintenance-cancel-form button{
    padding:10px 14px;
    color:#a33434;
    background:#fff0f0;
    border:0;
    border-radius:9px;
    font-weight:900;
}
.maintenance-timeline{
    display:grid;
    gap:10px;
}
.maintenance-timeline article{
    position:relative;
    padding:13px 13px 13px 115px;
    background:#f7f8fb;
    border-radius:10px;
}
.maintenance-timeline article>span{
    position:absolute;
    top:14px;
    left:13px;
    color:var(--ds-muted);
    font-size:10px;
}
.maintenance-timeline p{
    margin:5px 0 0;
    color:var(--ds-muted);
}
.work-order-form,
.maintenance-photo-form,
.maintenance-status-form{
    display:grid;
    gap:13px;
}
.maintenance-empty{
    color:var(--ds-muted);
}

/* 관리자 역할·결재 */
.admin-role-option-list{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:11px;
    margin-bottom:18px;
}
.admin-role-option-list label{
    display:grid;
    grid-template-columns:auto 1fr;
    gap:5px 9px;
    padding:15px;
    border:1px solid var(--ds-line);
    border-radius:11px;
    background:#fff;
    cursor:pointer;
}
.admin-role-option-list input{
    grid-row:1/4;
    width:18px;
    height:18px;
}
.admin-role-option-list span,
.admin-role-option-list small{
    color:var(--ds-muted);
}
.admin-role-option-list small{
    font-size:10px;
}
.approval-status{
    display:inline-block;
    padding:6px 9px;
    border-radius:999px;
    font-size:10px;
    font-weight:900;
}
.approval-status--pending{
    color:#765400;
    background:#fff3d0;
}
.approval-status--approved{
    color:#08714d;
    background:#e7f8f1;
}
.approval-status--rejected,
.approval-status--cancelled{
    color:#a33434;
    background:#fff0f0;
}
.admin-approval-actions{
    display:flex;
    justify-content:flex-end;
    gap:9px;
}
.admin-approval-actions button,
.admin-table-button{
    min-height:39px;
    padding:0 13px;
    border:0;
    border-radius:8px;
    background:#edf1f7;
    font-weight:900;
    cursor:pointer;
}
.admin-approval-actions .is-approve{
    color:#fff;
    background:#08714d;
}
.admin-approval-actions .is-reject{
    color:#a33434;
    background:#fff0f0;
}
.admin-table-button{
    min-height:34px;
    background:var(--ds-primary);
    color:#fff;
}

/* 월간 운영보고서 */
.monthly-report-toolbar{
    display:flex;
    align-items:flex-end;
    justify-content:space-between;
    gap:12px;
    margin-bottom:14px;
    padding:15px;
    background:#fff;
    border:1px solid var(--ds-line);
    border-radius:12px;
}
.monthly-report-toolbar form{
    display:flex;
    align-items:flex-end;
    gap:9px;
}
.monthly-report-toolbar label>span{
    display:block;
    margin-bottom:6px;
    font-size:12px;
    font-weight:900;
}
.monthly-report-toolbar input,
.monthly-report-toolbar button{
    height:42px;
    padding:0 12px;
    border:1px solid var(--ds-line);
    border-radius:8px;
    background:#fff;
}
.monthly-report-toolbar button{
    color:#fff;
    background:var(--ds-primary);
    border-color:var(--ds-primary);
    font-weight:900;
}
.monthly-status{
    display:inline-block;
    padding:6px 9px;
    border-radius:999px;
    font-size:10px;
    font-weight:900;
}
.monthly-status--generated,
.monthly-status--draft{
    color:#2552a5;
    background:#eaf1ff;
}
.monthly-status--finalized{
    color:#08714d;
    background:#e7f8f1;
}
.monthly-status--missing,
.monthly-status--cancelled{
    color:#a33434;
    background:#fff0f0;
}
.host-monthly-container{
    width:min(1100px,calc(100% - 28px));
}
.host-monthly-heading{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:18px;
    margin-bottom:18px;
}
.host-monthly-heading p{
    margin:0 0 7px;
    color:var(--ds-primary);
    font-size:12px;
    font-weight:900;
    letter-spacing:.12em;
}
.host-monthly-heading h1{
    margin:0 0 7px;
    font-size:34px;
}
.host-monthly-heading div>span{
    color:var(--ds-muted);
}
.host-monthly-heading>div:last-child{
    display:flex;
    gap:8px;
}
.host-monthly-heading button,
.host-monthly-heading a{
    display:grid;
    min-height:42px;
    padding:0 13px;
    place-items:center;
    border:1px solid var(--ds-line);
    border-radius:8px;
    background:#fff;
    font-weight:900;
}
.host-monthly-profile{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:11px;
    margin-bottom:14px;
}
.host-monthly-profile>div{
    padding:15px;
    background:#fff;
    border:1px solid var(--ds-line);
    border-radius:11px;
}
.host-monthly-profile span{
    display:block;
    color:var(--ds-muted);
    font-size:11px;
}
.host-monthly-profile strong{
    display:block;
    margin-top:6px;
}
.host-monthly-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:14px;
}

/* 가동률·공실 예상 */
.occupancy-filter-form{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr)) auto;
    align-items:end;
    gap:9px;
    margin-bottom:14px;
    padding:15px;
    background:#fff;
    border:1px solid var(--ds-line);
    border-radius:12px;
}
.occupancy-filter-form label>span{
    display:block;
    margin-bottom:6px;
    font-size:12px;
    font-weight:900;
}
.occupancy-filter-form input,
.occupancy-filter-form select,
.occupancy-filter-form button{
    width:100%;
    height:42px;
    padding:0 10px;
    border:1px solid var(--ds-line);
    border-radius:8px;
    background:#fff;
}
.occupancy-filter-form button{
    color:#fff;
    background:var(--ds-primary);
    border-color:var(--ds-primary);
    font-weight:900;
}
.occupancy-card-list{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:13px;
    margin-bottom:14px;
}
.occupancy-card{
    padding:18px;
    background:#fff;
    border:1px solid var(--ds-line);
    border-radius:14px;
}
.occupancy-card__top{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:9px;
}
.occupancy-card__top>strong{
    font-size:22px;
}
.occupancy-card h2{
    margin:14px 0 5px;
    font-size:19px;
}
.occupancy-card>p{
    margin:0;
    color:var(--ds-muted);
}
.occupancy-card dl{
    margin:15px 0 0;
    padding:11px;
    background:#f7f8fb;
    border-radius:9px;
}
.occupancy-card dl>div{
    display:flex;
    justify-content:space-between;
    gap:12px;
    padding:4px 0;
}
.occupancy-card dt,
.occupancy-card dd{
    margin:0;
}
.occupancy-card dt{
    color:var(--ds-muted);
}
.occupancy-risk{
    display:inline-block;
    padding:6px 9px;
    border-radius:999px;
    font-size:10px;
    font-weight:900;
}
.occupancy-risk--low{
    color:#08714d;
    background:#e7f8f1;
}
.occupancy-risk--medium{
    color:#765400;
    background:#fff3d0;
}
.occupancy-risk--high{
    color:#a33434;
    background:#fff0f0;
}
.occupancy-total-grid{
    grid-template-columns:repeat(5,minmax(0,1fr));
}

@media print{
    .user-header,
    .user-footer,
    .mobile-bottom-nav,
    .host-monthly-heading>div:last-child,
    .maintenance-page-actions{
        display:none!important;
    }
    .host-monthly-page{
        padding:0;
        background:#fff;
    }
    .host-monthly-container{
        width:100%;
    }
    .report-kpi-grid article,
    .maintenance-panel,
    .host-monthly-profile>div{
        break-inside:avoid;
        box-shadow:none;
    }
}
@media(max-width:1200px){
    .maintenance-card-list,
    .occupancy-card-list{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
    .occupancy-filter-form{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
    .occupancy-filter-form button{
        grid-column:1/-1;
    }
    .occupancy-total-grid{
        grid-template-columns:repeat(3,minmax(0,1fr));
    }
}
@media(max-width:820px){
    .maintenance-summary-grid,
    .host-monthly-profile{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
    .maintenance-photo-grid{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
    .admin-role-option-list{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
    .host-monthly-grid{
        grid-template-columns:1fr;
    }
    .occupancy-total-grid{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
}
@media(max-width:640px){
    .maintenance-heading,
    .host-monthly-heading,
    .monthly-report-toolbar{
        align-items:stretch;
        flex-direction:column;
    }
    .maintenance-card-list,
    .occupancy-card-list,
    .maintenance-form-grid,
    .maintenance-upload-grid,
    .maintenance-summary-grid,
    .host-monthly-profile,
    .admin-role-option-list,
    .occupancy-filter-form,
    .occupancy-total-grid{
        grid-template-columns:1fr;
    }
    .maintenance-read-list>div{
        flex-direction:column;
        gap:5px;
    }
    .maintenance-read-list dd{
        text-align:left;
    }
    .maintenance-photo-grid{
        grid-template-columns:1fr 1fr;
    }
    .maintenance-response-panel form>div,
    .maintenance-status-form>div,
    .maintenance-form-actions,
    .maintenance-page-actions,
    .admin-approval-actions{
        align-items:stretch;
        flex-direction:column;
    }
    .maintenance-response-panel button,
    .maintenance-status-form button,
    .maintenance-form-actions a,
    .maintenance-form-actions button,
    .maintenance-page-actions a{
        width:100%;
    }
    .monthly-report-toolbar form{
        align-items:stretch;
        flex-direction:column;
    }
    .host-monthly-heading>div:last-child{
        width:100%;
    }
    .host-monthly-heading button,
    .host-monthly-heading a{
        flex:1;
    }
}
@media(max-width:420px){
    .maintenance-photo-grid{
        grid-template-columns:1fr;
    }
}

/* 9차 관리자 역할 권한 매트릭스 */
.admin-role-tabs{
    display:flex;
    gap:8px;
    margin-bottom:14px;
    overflow-x:auto;
}
.admin-role-tabs a{
    flex:0 0 auto;
    padding:10px 13px;
    border:1px solid var(--ds-line);
    border-radius:9px;
    background:#fff;
    font-weight:900;
}
.admin-role-tabs a.is-active{
    color:#fff;
    background:var(--ds-primary);
    border-color:var(--ds-primary);
}
.admin-role-permission-form{
    display:grid;
    gap:16px;
}
.admin-role-permission-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:10px;
}
.admin-role-permission-grid label{
    display:flex;
    align-items:flex-start;
    gap:9px;
    padding:13px;
    border:1px solid var(--ds-line);
    border-radius:10px;
    background:#f9fafc;
}
.admin-role-permission-grid input{
    width:18px;
    height:18px;
    flex:0 0 auto;
}
.admin-role-permission-grid span{
    display:flex;
    min-width:0;
    flex-direction:column;
    gap:3px;
}
.admin-role-permission-grid small{
    color:var(--ds-muted);
    font-size:10px;
    word-break:break-all;
}
@media(max-width:900px){
    .admin-role-permission-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:560px){
    .admin-role-permission-grid{grid-template-columns:1fr}
}

/* 9차 고객센터·약관 */
.support-page{min-height:calc(100vh - 72px);padding:48px 0 86px;background:var(--ds-bg)}
.support-container{width:min(1120px,calc(100% - 28px))}.support-container--narrow{width:min(900px,calc(100% - 28px))}
.support-hero{margin-bottom:24px;padding:42px;border-radius:24px;color:#fff;background:linear-gradient(135deg,#16233d,#315c9f);box-shadow:var(--ds-shadow)}
.support-hero--compact{padding:32px}.support-hero p{margin:0 0 8px;font-size:12px;font-weight:900;letter-spacing:.14em}.support-hero h1{margin:0 0 9px;font-size:36px}.support-hero span{color:#e8effc}
.support-role-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-bottom:20px}.support-role-grid>article{padding:26px;background:#fff;border:1px solid var(--ds-line);border-radius:18px}.support-role-grid>article>span{color:var(--ds-primary);font-size:11px;font-weight:900;letter-spacing:.12em}.support-role-grid h2{margin:8px 0 18px}.support-step-list{display:grid;gap:10px;margin:0;padding:0;list-style:none}.support-step-list li{padding:14px;background:#f7f8fb;border-radius:11px}.support-step-list strong{display:block}.support-step-list p{margin:5px 0 0;color:var(--ds-muted);font-size:13px;line-height:1.65}
.support-safety-panel,.support-action-panel{margin-bottom:20px;padding:25px;background:#fff;border:1px solid var(--ds-line);border-radius:18px}.support-safety-panel h2{margin:0 0 17px}.support-check-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:11px}.support-check-grid>div{padding:15px;background:#f7f8fb;border-radius:11px}.support-check-grid p{margin:5px 0 0;color:var(--ds-muted);font-size:13px;line-height:1.6}.support-action-panel{display:flex;align-items:center;justify-content:space-between;gap:20px}.support-action-panel h2,.support-action-panel p{margin:0}.support-action-panel p{margin-top:5px;color:var(--ds-muted)}.support-action-panel>div:last-child{display:flex;gap:8px}.support-action-panel a{padding:11px 15px;border:1px solid var(--ds-line);border-radius:9px;font-weight:900}.support-action-panel a:first-child{color:#fff;background:var(--ds-primary);border-color:var(--ds-primary)}
.support-search-form{display:flex;gap:9px;margin-bottom:15px}.support-search-form input{flex:1;height:46px;padding:0 13px;border:1px solid var(--ds-line);border-radius:10px;background:#fff}.support-search-form button{padding:0 18px;border:0;border-radius:10px;color:#fff;background:var(--ds-primary);font-weight:900}.support-notice-list{overflow:hidden;background:#fff;border:1px solid var(--ds-line);border-radius:16px}.support-notice-list__head{display:flex;justify-content:space-between;padding:14px 18px;color:var(--ds-muted);background:#f7f8fb}.support-notice-row{display:grid;grid-template-columns:minmax(0,1fr) 110px 80px;gap:14px;align-items:center;padding:17px 18px;border-top:1px solid var(--ds-line)}.support-notice-row>div{display:flex;align-items:center;gap:8px}.support-notice-row em,.support-notice-view header em{padding:5px 8px;color:#a33434;background:#fff0f0;border-radius:999px;font-size:10px;font-style:normal;font-weight:900}.support-notice-row span,.support-notice-row small{color:var(--ds-muted);font-size:12px;text-align:right}.support-empty{padding:55px 20px;text-align:center}.support-empty p{color:var(--ds-muted)}.support-pagination{display:flex;justify-content:center;gap:6px;margin-top:18px}.support-pagination a{display:grid;min-width:38px;height:38px;padding:0 9px;place-items:center;background:#fff;border:1px solid var(--ds-line);border-radius:8px}.support-pagination a.is-active{color:#fff;background:var(--ds-primary);border-color:var(--ds-primary)}
.support-notice-view{overflow:hidden;background:#fff;border:1px solid var(--ds-line);border-radius:18px}.support-notice-view header{padding:27px;border-bottom:1px solid var(--ds-line)}.support-notice-view h1{margin:10px 0 14px;font-size:30px}.support-notice-view header>div{display:flex;gap:15px;color:var(--ds-muted);font-size:12px}.support-notice-content{min-height:280px;padding:30px;line-height:1.85;word-break:break-word}.support-notice-view footer{padding:18px 27px;border-top:1px solid var(--ds-line);text-align:right}.support-notice-view footer a{display:inline-block;padding:10px 14px;border:1px solid var(--ds-line);border-radius:9px;font-weight:900}
.support-policy-tabs{display:flex;gap:8px;margin-bottom:14px}.support-policy-tabs a{padding:11px 15px;background:#fff;border:1px solid var(--ds-line);border-radius:9px;font-weight:900}.support-policy-tabs a.is-active{color:#fff;background:var(--ds-primary);border-color:var(--ds-primary)}.support-policy-content{min-height:360px;padding:28px;background:#fff;border:1px solid var(--ds-line);border-radius:16px;line-height:1.9;word-break:break-word}.support-policy-note{margin-top:14px;padding:16px;color:#755900;background:#fff3d0;border-radius:11px}.support-policy-note p{margin:5px 0 0;line-height:1.65}
@media(max-width:820px){.support-role-grid{grid-template-columns:1fr}.support-check-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.support-notice-row{grid-template-columns:minmax(0,1fr) 90px}.support-notice-row>small{display:none}}
@media(max-width:640px){.support-page{padding-top:24px}.support-hero{padding:28px 22px}.support-hero h1{font-size:29px}.support-check-grid{grid-template-columns:1fr}.support-action-panel{align-items:stretch;flex-direction:column}.support-action-panel>div:last-child{width:100%}.support-action-panel a{flex:1;text-align:center}.support-notice-row{grid-template-columns:1fr;padding:15px}.support-notice-row span{text-align:left}.support-notice-view h1{font-size:25px}.support-notice-content{padding:22px}.support-policy-tabs a{flex:1;text-align:center}}
.admin-policy-editor{width:100%;min-height:420px;padding:14px;border:1px solid #d8dee9;border-radius:10px;background:#fff;line-height:1.7;resize:vertical}

/* =========================================================
   2026 COMPACT UI REFRESH
   - 과도한 제목 크기와 굵기 축소
   - 검색 중심의 단정한 단기임대 인터페이스
   - 사용자/임대인/관리자 화면의 공통 밀도 정리
   ========================================================= */

:root{
    --ds-primary:#5b5bd6;
    --ds-primary-dark:#4747b9;
    --ds-accent:#ff6a3d;
    --ds-text:#20242d;
    --ds-muted:#737b8c;
    --ds-line:#e7e9ee;
    --ds-bg:#f7f8fa;
    --ds-card:#ffffff;
    --ds-success:#16845c;
    --ds-danger:#d64545;
    --ds-radius:14px;
    --ds-shadow:0 8px 24px rgba(31,39,65,.07);
}

html{font-size:15px}
body{
    color:var(--ds-text);
    background:#fff;
    font-size:15px;
    line-height:1.6;
    letter-spacing:-.012em;
}
button,input,select,textarea{font-size:14px}
button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}
button:focus-visible,
a:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible{
    outline:3px solid rgba(91,91,214,.18);
    outline-offset:2px;
}
.container,
.site-header__inner,
.site-footer__inner{
    width:min(1180px,calc(100% - 40px));
}

/* 공통 헤더 */
.site-header{
    background:rgba(255,255,255,.94);
    border-bottom:1px solid rgba(231,233,238,.95);
    box-shadow:none;
}
.site-header__inner{
    min-height:62px;
    gap:22px;
}
.site-logo{
    gap:9px;
    font-size:18px;
    font-weight:750;
    letter-spacing:-.035em;
}
.site-logo__mark{
    width:31px;
    height:31px;
    border-radius:9px;
    background:#5b5bd6;
    box-shadow:0 4px 10px rgba(91,91,214,.18);
}
.site-logo__mark svg{width:17px;height:17px}
.desktop-nav{
    gap:25px;
    font-size:14px;
    font-weight:650;
}
.desktop-nav a{padding:20px 0;color:#3c4350}
.header-actions{gap:10px;font-size:14px}
.header-link{font-weight:650}
.header-button{
    padding:8px 13px;
    color:#fff;
    background:var(--ds-primary);
    border-radius:9px;
    font-weight:700;
}
.mobile-menu-button{
    width:38px;
    height:38px;
    padding:8px;
}
.mobile-menu{
    inset:62px 0 0;
    padding:14px 20px;
}
.mobile-menu a{
    padding:14px 3px;
    font-size:15px;
    font-weight:650;
}

/* 메인 히어로 */
.hero{
    padding:52px 0 48px;
    color:var(--ds-text);
    background:
        radial-gradient(circle at 86% 18%,rgba(91,91,214,.10),transparent 28%),
        linear-gradient(180deg,#fafaff 0%,#f7f7fc 100%);
    border-bottom:1px solid #eeeef5;
}
.hero::after{
    width:300px;
    height:300px;
    right:-110px;
    bottom:-220px;
    border:48px solid rgba(91,91,214,.05);
}
.hero__eyebrow{
    margin-bottom:9px;
    color:var(--ds-primary);
    font-size:13px;
    font-weight:700;
}
.hero h1{
    max-width:680px;
    font-size:clamp(33px,4.2vw,48px);
    line-height:1.18;
    letter-spacing:-.055em;
    font-weight:760;
}
.hero__description{
    max-width:610px;
    margin-top:15px;
    color:#626a79;
    font-size:15px;
}
.search-panel{
    max-width:1000px;
    grid-template-columns:1.45fr .85fr .85fr auto;
    gap:0;
    margin-top:27px;
    padding:7px;
    border:1px solid #e2e4ea;
    border-radius:15px;
    box-shadow:0 9px 26px rgba(34,39,57,.08);
}
.search-field{
    padding:7px 14px;
    border-right:1px solid var(--ds-line);
}
.search-field label{
    margin-bottom:1px;
    font-size:11px;
    font-weight:650;
}
.search-field input{
    height:27px;
    font-size:14px;
    font-weight:600;
}
.search-button{
    min-width:112px;
    min-height:45px;
    padding:0 18px;
    background:var(--ds-primary);
    border-radius:11px;
    font-size:14px;
    font-weight:700;
}
.search-button:hover{background:var(--ds-primary-dark)}
.quick-regions{gap:7px;margin-top:15px}
.quick-regions a{
    padding:7px 11px;
    color:#596171;
    border:1px solid #dedfe8;
    background:#fff;
    border-radius:999px;
    font-size:12px;
    font-weight:650;
}

/* 공통 섹션 */
.section{padding:54px 0}
.section--soft{background:#f8f9fb}
.section-heading{
    align-items:center;
    margin-bottom:21px;
}
.section-heading__eyebrow{
    margin-bottom:4px;
    font-size:11px;
    font-weight:750;
    letter-spacing:.08em;
}
.section-heading h2{
    font-size:clamp(24px,3vw,30px);
    font-weight:730;
    letter-spacing:-.045em;
}
.section-heading p{
    margin-top:7px;
    font-size:14px;
}
.section-more{
    font-size:13px;
    font-weight:700;
}

/* 매물 카드 */
.property-grid{gap:17px}
.property-card{
    border-color:#e7e8ed;
    border-radius:14px;
    box-shadow:none;
}
.property-card:hover{
    transform:translateY(-2px);
    border-color:#d8d9e5;
    box-shadow:0 9px 22px rgba(32,36,45,.07);
}
.property-card__image{aspect-ratio:16/10}
.property-card__badge{
    left:11px;
    top:11px;
    padding:5px 8px;
    background:rgba(30,34,43,.78);
    font-size:10px;
    font-weight:700;
}
.property-card__body{padding:15px}
.property-card__location{
    font-size:12px;
    font-weight:650;
}
.property-card h3{
    height:45px;
    margin:5px 0 10px;
    font-size:16px;
    line-height:1.42;
    font-weight:700;
}
.property-card__meta{gap:5px;margin-bottom:12px}
.property-card__meta span{
    padding:4px 7px;
    color:#626a79;
    background:#f4f5f7;
    border-radius:6px;
    font-size:10px;
    font-weight:600;
}
.property-card__price strong{
    font-size:19px;
    font-weight:750;
}
.property-card__price span{font-size:11px}

/* 이용절차/임대인 배너 */
.guide-grid{gap:14px}
.guide-card{
    padding:20px;
    border-radius:13px;
}
.guide-card__number{
    width:34px;
    height:34px;
    margin-bottom:14px;
    color:var(--ds-primary);
    background:#eeeeff;
    border-radius:50%;
    font-size:13px;
    font-weight:750;
}
.guide-card h3{
    margin-bottom:5px;
    font-size:17px;
    font-weight:700;
}
.guide-card p{font-size:13px}
.host-banner{
    padding:30px 32px;
    color:var(--ds-text);
    background:#f3f3ff;
    border:1px solid #e2e2fa;
    border-radius:16px;
}
.host-banner h2{
    margin-bottom:5px;
    font-size:24px;
    font-weight:730;
}
.host-banner p{color:#687083;font-size:14px}
.host-banner a{
    padding:11px 16px;
    color:#fff;
    background:var(--ds-primary);
    border-radius:10px;
    font-size:13px;
    font-weight:700;
}

/* 푸터 */
.site-footer{
    padding:36px 0 92px;
    color:#737b8c;
    background:#f7f8fa;
    border-top:1px solid var(--ds-line);
}
.footer-brand{
    margin-bottom:8px;
    color:#292e38;
    font-size:17px;
    font-weight:750;
}
.footer-copy{color:#7e8695;font-size:12px}
.footer-links{
    gap:16px;
    margin:18px 0;
    color:#4c5361;
    font-size:12px;
    font-weight:650;
}
.footer-copyright{color:#979daa;font-size:11px}

/* 검색 페이지 */
.room-search-page{background:#fff}
.room-search-hero{
    padding:29px 0 25px;
    color:var(--ds-text);
    background:#fff;
    border-bottom:1px solid var(--ds-line);
}
.room-search-hero__eyebrow{
    margin-bottom:3px;
    color:var(--ds-primary);
    font-size:10px;
    font-weight:750;
    letter-spacing:.1em;
}
.room-search-hero h1{
    font-size:28px;
    font-weight:740;
    letter-spacing:-.045em;
}
.room-search-hero p:last-child{
    margin-top:6px;
    color:var(--ds-muted);
    font-size:13px;
}
.room-filter-section{
    padding:14px 0 15px;
    border-bottom:1px solid var(--ds-line);
}
.room-filter-form{
    margin-top:0;
    padding:14px;
    border-radius:13px;
    box-shadow:none;
}
.room-filter-grid{
    grid-template-columns:repeat(12,minmax(0,1fr));
    gap:9px;
}
.room-filter-grid>.filter-field:nth-child(1){grid-column:span 4}
.room-filter-grid>.filter-field:nth-child(2),
.room-filter-grid>.filter-field:nth-child(3),
.room-filter-grid>.filter-field:nth-child(4),
.room-filter-grid>.filter-field:nth-child(5){grid-column:span 2}
.room-filter-grid>.filter-field:nth-child(6),
.room-filter-grid>.filter-field:nth-child(7){grid-column:span 2}
.filter-field label{
    margin-bottom:4px;
    font-size:11px;
    font-weight:650;
}
.filter-field input,
.filter-field select{
    height:41px;
    padding:0 10px;
    border-color:#dfe2e8;
    border-radius:9px;
    font-size:13px;
}
.filter-field input:focus,
.filter-field select:focus{
    box-shadow:0 0 0 3px rgba(91,91,214,.09);
}
.filter-checks{
    grid-column:span 4;
    min-height:41px;
    gap:9px 18px;
}
.filter-checks label{font-size:12px;font-weight:650}
.filter-checks input{width:16px;height:16px}
.filter-actions{
    grid-column:span 4;
    gap:8px;
}
.filter-actions a,
.filter-actions button{
    height:41px;
    border-radius:9px;
    font-size:13px;
    font-weight:700;
}
.filter-actions button{min-width:118px}
.room-filter-message{
    margin-top:10px;
    padding:9px 12px;
    border-radius:8px;
    font-size:12px;
}
.room-results-section{padding:21px 0 58px}
.room-results-toolbar{margin-bottom:13px}
.room-results-toolbar strong{
    font-size:18px;
    font-weight:750;
}
.room-results-toolbar span{font-size:12px}
.room-results-actions select{
    height:36px;
    border-radius:8px;
    font-size:12px;
}
.room-search-layout{
    grid-template-columns:minmax(440px,600px) minmax(0,1fr);
    gap:14px;
}
.room-list-grid{grid-template-columns:1fr;gap:11px}
.room-list-card{
    border-radius:13px;
    box-shadow:none;
}
.room-list-card>a{
    display:grid;
    grid-template-columns:205px minmax(0,1fr);
    min-height:145px;
}
.room-list-card:hover{
    transform:none;
    border-color:#d4d6e2;
    box-shadow:0 7px 20px rgba(32,36,45,.06);
}
.room-list-card__image{aspect-ratio:auto;min-height:145px}
.room-list-card__image>span{
    left:9px;
    top:9px;
    padding:4px 7px;
    font-size:10px;
    font-weight:700;
}
.room-list-card__body{
    display:flex;
    min-width:0;
    flex-direction:column;
    padding:14px 15px;
}
.room-list-card__location{
    font-size:11px;
    font-weight:650;
}
.room-list-card h2{
    height:auto;
    margin:4px 0 3px;
    font-size:16px;
    line-height:1.4;
    font-weight:700;
}
.room-list-card__address{
    margin-bottom:9px;
    font-size:11px;
}
.room-list-card__tags{gap:5px}
.room-list-card__tags span{
    padding:4px 6px;
    font-size:10px;
    font-weight:600;
}
.room-list-card__bottom{
    margin-top:auto;
    padding-top:9px;
}
.room-list-card__bottom strong{
    font-size:18px;
    font-weight:750;
}
.room-list-card__bottom span{font-size:10px}
.room-map-panel{top:76px}
.room-map-placeholder{
    min-height:620px;
    padding:20px;
    border-color:#e1e3ea;
    border-radius:13px;
    background:
        linear-gradient(rgba(250,250,252,.84),rgba(250,250,252,.84)),
        repeating-linear-gradient(45deg,#eceef4 0,#eceef4 18px,#f5f6f8 18px,#f5f6f8 36px);
}
.room-map-placeholder__mark{
    width:48px;
    height:48px;
    margin:30px auto 11px;
    border-radius:14px;
    box-shadow:0 8px 18px rgba(91,91,214,.14);
    font-size:11px;
}
.room-map-placeholder>strong{font-size:16px}
.room-map-placeholder>p{
    margin:5px auto 16px;
    font-size:12px;
}
.room-map-location-list a{padding:9px 3px}
.room-map-location-list strong{font-size:12px}
.room-map-location-list span{font-size:10px}
.pagination{margin-top:21px}
.pagination a{
    min-width:35px;
    height:35px;
    border-radius:8px;
    font-size:12px;
}

/* 매물 상세 */
.room-detail-page{padding-bottom:60px}
.room-breadcrumb{padding:16px 0;font-size:11px}
.room-gallery{
    grid-template-columns:minmax(0,1fr) 92px;
    gap:9px;
    height:min(470px,50vw);
    min-height:350px;
}
.room-gallery__main{border-radius:15px}
.room-gallery__thumbs{gap:7px}
.room-gallery__thumbs button{
    flex-basis:68px;
    border-radius:9px;
}
.room-detail-layout{
    grid-template-columns:minmax(0,1fr) 350px;
    gap:36px;
    margin-top:25px;
}
.room-detail-header{
    padding-bottom:21px;
}
.room-detail-location{font-size:12px;font-weight:650}
.room-detail-header h1{
    margin:4px 0 5px;
    font-size:30px;
    font-weight:750;
}
.room-detail-header p:last-child{font-size:13px}
.room-favorite-button{
    width:41px;
    height:41px;
    font-size:21px;
}
.room-summary-grid{
    margin-top:18px;
    border-radius:12px;
}
.room-summary-grid article{padding:15px}
.room-summary-grid span{
    margin-bottom:3px;
    font-size:10px;
    font-weight:650;
}
.room-summary-grid strong{font-size:13px;font-weight:700}
.room-detail-section{padding:26px 0}
.room-detail-section h2{
    margin-bottom:14px;
    font-size:19px;
    font-weight:730;
}
.room-description{font-size:14px}
.room-info-list>div{padding:11px 0}
.room-info-list dt,
.room-info-list dd{font-size:13px}
.room-option-grid{gap:8px}
.room-option-grid span{
    padding:10px;
    border-radius:8px;
    font-size:12px;
    font-weight:650;
}
.room-discount-list>div{padding:13px;border-radius:9px}
.room-location-box{
    padding:15px;
    border-radius:11px;
}
.room-location-box__map{
    width:92px;
    height:82px;
    border-radius:9px;
    font-size:11px;
}
.room-location-box strong{font-size:13px}
.room-location-box p{font-size:11px}
.room-notice-list{font-size:13px}
.room-booking-card{
    top:77px;
    padding:20px;
    border-radius:15px;
    box-shadow:0 9px 25px rgba(32,36,45,.08);
}
.room-booking-price{margin-bottom:14px}
.room-booking-price strong{
    font-size:23px;
    font-weight:760;
}
.room-booking-price span{font-size:12px}
.room-booking-dates input{height:42px;border-radius:8px}
.availability-status{font-size:12px}
.booking-price-list{font-size:12px}
.booking-price-total dt,
.booking-price-total dd{font-size:16px}
.booking-submit-button{
    height:47px;
    border-radius:9px;
    font-size:13px;
    font-weight:700;
}

/* 회원·마이페이지·계약·호스트 공통 밀도 */
.member-page{padding:42px 0 62px}
.member-card{
    padding:28px;
    border-radius:16px;
    box-shadow:0 8px 22px rgba(31,39,65,.06);
}
.member-heading{margin-bottom:22px}
.member-heading>p{font-size:10px;font-weight:700}
.member-heading h1{font-size:27px;font-weight:750}
.member-heading span{font-size:13px}
.member-form-field label{font-size:12px;font-weight:650}
.member-form-field input,
.member-form-field select,
.contract-form-section textarea{
    min-height:44px;
    border-radius:9px;
    font-size:13px;
}
.member-inline-field button,
.primary-button,
.member-submit-button{
    min-height:45px;
    border-radius:9px;
    font-size:13px;
    font-weight:700;
}
.member-agreements{border-radius:10px;font-size:12px}
.mypage-hero h1,
.host-dashboard-hero h1,
.contract-heading h1,
.contract-list-heading h1,
.contract-detail-heading h1,
.payment-heading h1,
.deposit-heading h1{
    font-size:27px;
    font-weight:750;
}
.mypage-stat-grid,
.host-dashboard-grid{gap:11px}
.mypage-stat-grid a,
.host-dashboard-grid a{
    padding:17px;
    border-radius:12px;
}
.mypage-stat-grid span,
.host-dashboard-grid span{font-size:11px;font-weight:650}
.mypage-stat-grid strong,
.host-dashboard-grid strong{
    margin-top:4px;
    font-size:23px;
    font-weight:750;
}
.host-room-submit,
.host-calendar-panel,
.host-calendar-form,
.contract-card,
.payment-card,
.deposit-card{
    border-radius:13px;
}
.host-dashboard-links a,
.host-room-submit a,
.host-room-submit button,
.host-contract-action button,
.admin-review-form button{
    font-size:12px;
    font-weight:700;
}

/* 관리자 */
.admin-body{font-size:14px}
.admin-shell{grid-template-columns:220px 1fr}
.admin-sidebar{
    padding:20px 12px;
    background:#1d2027;
}
.admin-logo{
    margin-bottom:18px;
    padding:0 8px;
    font-size:16px;
    font-weight:750;
}
.admin-menu a{
    margin-bottom:2px;
    padding:8px 10px;
    color:#bfc5d0;
    border-radius:7px;
    font-size:12px;
    font-weight:600;
}
.admin-menu a:hover,
.admin-menu a.is-active{
    background:#30343e;
}
.admin-topbar{
    min-height:58px;
    padding:0 23px;
    font-size:12px;
}
.admin-topbar>strong{font-size:15px;font-weight:720}
.admin-content{padding:23px}
.admin-page-title{
    margin-bottom:17px;
    font-size:24px;
    font-weight:750;
}
.admin-page-heading{margin-bottom:16px}
.stat-grid{gap:11px}
.stat-card{
    padding:17px;
    border-radius:12px;
}
.stat-card span{
    margin-bottom:4px;
    font-size:11px;
    font-weight:650;
}
.stat-card strong{
    font-size:23px;
    font-weight:750;
}
.admin-panel{
    margin-top:15px;
    padding:18px;
    border-radius:12px;
}
.admin-panel h2{
    margin-bottom:12px;
    font-size:17px;
    font-weight:720;
}
.admin-table th,
.admin-table td{
    padding:10px 8px;
    font-size:12px;
}
.admin-table th{font-weight:650}
.admin-search-form{
    margin-bottom:13px;
    padding:12px;
    border-radius:10px;
}
.admin-search-form select,
.admin-search-form input{
    height:39px;
    border-radius:8px;
    font-size:12px;
}
.admin-search-form button,
.admin-action-link,
.admin-heading-button,
.admin-table-button{
    font-size:11px;
    font-weight:700;
}
.admin-config-grid input,
.admin-config-grid select{
    height:41px;
    border-radius:8px;
}
.admin-config-grid label>span,
.admin-review-form label>span{
    font-size:12px;
    font-weight:650;
}
.admin-detail-list dt,
.admin-detail-list dd{font-size:12px}
.admin-property-summary h2{font-size:22px}
.login-card{
    padding:27px;
    border-radius:16px;
}
.login-card h1{font-size:25px}
.form-field label{font-size:12px;font-weight:650}
.form-field input{height:44px;border-radius:9px}
.primary-button{height:46px}

/* 전체에서 지나치게 무거운 강조를 완화 */
.search-button,
.section-more,
.property-card__badge,
.property-card__location,
.filter-actions a,
.filter-actions button,
.mobile-filter-toggle,
.view-switch button,
.room-list-card__location,
.room-list-card__image>span,
.booking-submit-button,
.header-button{
    font-weight:700;
}

/* 태블릿 */
@media (max-width:1180px){
    .room-filter-grid{grid-template-columns:repeat(8,minmax(0,1fr))}
    .room-filter-grid>.filter-field:nth-child(1){grid-column:span 4}
    .room-filter-grid>.filter-field:nth-child(2),
    .room-filter-grid>.filter-field:nth-child(3){grid-column:span 2}
    .room-filter-grid>.filter-field:nth-child(4),
    .room-filter-grid>.filter-field:nth-child(5),
    .room-filter-grid>.filter-field:nth-child(6),
    .room-filter-grid>.filter-field:nth-child(7){grid-column:span 2}
    .filter-checks{grid-column:span 4}
    .filter-actions{grid-column:span 4}
    .room-search-layout{grid-template-columns:minmax(410px,560px) minmax(0,1fr)}
    .room-detail-layout{grid-template-columns:minmax(0,1fr) 330px;gap:27px}
}

/* 모바일 */
@media (max-width:760px){
    html{font-size:14px}
    body{
        padding-bottom:63px;
        font-size:14px;
    }
    .site-header__inner,
    .container,
    .site-footer__inner{
        width:min(100% - 24px,1180px);
    }
    .site-header__inner{min-height:56px}
    .site-logo{font-size:17px}
    .site-logo__mark{width:29px;height:29px}
    .mobile-menu{inset:56px 0 63px}
    .hero{
        padding:33px 0 29px;
        background:#f8f8fd;
    }
    .hero h1{
        font-size:29px;
        line-height:1.22;
    }
    .hero h1 br{display:none}
    .hero__description{
        margin-top:10px;
        font-size:13px;
    }
    .search-panel{
        margin-top:20px;
        padding:7px;
        border-radius:13px;
    }
    .search-field{
        padding:8px 10px;
    }
    .search-button{height:45px}
    .quick-regions{margin-top:12px}
    .section{padding:40px 0}
    .section-heading{
        align-items:flex-start;
        margin-bottom:17px;
    }
    .section-heading h2{font-size:23px}
    .section-heading p{font-size:12px}
    .property-grid{gap:13px}
    .property-card__body{padding:13px}
    .property-card h3{font-size:15px}
    .host-banner{
        padding:22px;
        border-radius:13px;
    }
    .host-banner h2{font-size:20px}
    .site-footer{padding:30px 0 30px}
    .mobile-bottom-nav{
        min-height:63px;
        box-shadow:0 -4px 16px rgba(30,34,43,.06);
    }
    .mobile-bottom-nav a{
        gap:2px;
        align-content:center;
        color:#858c99;
        font-size:10px;
        font-weight:600;
    }
    .mobile-bottom-nav svg{
        width:20px;
        height:20px;
        stroke-width:1.8;
    }
    .mobile-bottom-nav a.is-active{font-weight:700}

    .room-search-hero{padding:22px 0 19px}
    .room-search-hero h1{font-size:24px}
    .room-search-hero p:last-child{font-size:12px}
    .room-filter-section{padding:10px 0}
    .mobile-filter-toggle{
        height:41px;
        border-radius:9px;
        font-size:13px;
    }
    .room-filter-form{
        padding:11px;
        border-radius:10px;
    }
    .room-filter-grid{grid-template-columns:1fr 1fr}
    .room-filter-grid>.filter-field:nth-child(n){grid-column:span 1}
    .room-filter-grid>.filter-field:nth-child(1){grid-column:1/-1}
    .filter-checks,
    .filter-actions{grid-column:1/-1}
    .room-results-section{padding:16px 0 42px}
    .room-results-toolbar strong{font-size:16px}
    .room-results-actions{gap:7px}
    .view-switch button{
        height:35px;
        padding:0 12px;
        font-size:11px;
    }
    .room-list-card>a{
        display:block;
        min-height:0;
    }
    .room-list-card__image{
        min-height:0;
        aspect-ratio:16/9;
    }
    .room-list-card__body{padding:12px 13px}
    .room-map-placeholder{min-height:440px}
    .room-gallery__main{border-radius:12px}
    .room-detail-layout{margin-top:19px}
    .room-detail-header{padding-bottom:17px}
    .room-detail-header h1{font-size:25px}
    .room-summary-grid{margin-top:14px}
    .room-summary-grid article{padding:12px}
    .room-detail-section{padding:21px 0}
    .room-detail-section h2{font-size:17px}
    .room-booking-card{
        margin-top:20px;
        padding:17px;
        border-radius:12px;
    }

    .member-page{padding:27px 0 44px}
    .member-card{padding:21px}
    .member-heading h1{font-size:24px}
    .mypage-hero h1,
    .host-dashboard-hero h1,
    .contract-heading h1,
    .contract-list-heading h1,
    .contract-detail-heading h1,
    .payment-heading h1,
    .deposit-heading h1{font-size:24px}

    .admin-topbar{min-height:54px;padding:0 14px}
    .admin-content{padding:16px 12px}
    .admin-page-title{font-size:21px}
    .stat-grid{gap:8px}
    .stat-card{padding:13px}
    .stat-card strong{font-size:20px}
    .admin-panel{padding:14px}
    .admin-mobile-nav{
        padding:8px 11px;
    }
    .admin-mobile-nav a{
        padding:7px 10px;
        border-radius:7px;
        font-size:10px;
        font-weight:650;
    }
}

@media (max-width:430px){
    .section-heading{display:block}
    .section-more{margin-top:9px}
    .room-filter-grid{grid-template-columns:1fr}
    .room-filter-grid>.filter-field:nth-child(n),
    .filter-checks,
    .filter-actions{grid-column:auto}
    .room-results-actions{
        align-items:stretch;
        flex-direction:row;
    }
    .room-summary-grid{grid-template-columns:1fr 1fr}
    .admin-detail-list>div{grid-template-columns:90px 1fr}
}

