.ksw-app,.ksw-public-card{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Hiragino Kaku Gothic ProN",Meiryo,sans-serif;color:#1f2937;box-sizing:border-box}.ksw-app *,.ksw-public-card *{box-sizing:border-box}.ksw-app{max-width:1400px;margin:24px auto;padding:0 16px}.ksw-app-head{background:linear-gradient(135deg,#17365d,#1f4e78);color:#fff;padding:24px;border-radius:14px}.ksw-app-head h1{margin:0 0 6px;font-size:26px}.ksw-app-head p{margin:0;opacity:.85}.ksw-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:16px 0}.ksw-tabs a{padding:10px 14px;border-radius:8px;background:#eef2f7;color:#17365d;text-decoration:none;font-weight:700}.ksw-tabs a.active{background:#17365d;color:#fff}.ksw-main{display:block}.ksw-card,.ksw-public-card{background:#fff;border:1px solid #dbe3ec;border-radius:14px;padding:20px;margin-bottom:18px;box-shadow:0 3px 14px rgba(0,0,0,.05)}.ksw-public-card{max-width:640px;margin:40px auto}.ksw-grid2{display:grid;grid-template-columns:1fr 1fr;gap:18px}.ksw-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:18px}.ksw-kpis>div{background:#fff;border:1px solid #dbe3ec;border-radius:12px;padding:18px}.ksw-kpis span{display:block;color:#64748b;font-size:13px}.ksw-kpis strong{font-size:28px;color:#17365d}.ksw-row{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}.ksw-mini{display:flex;gap:8px;flex-wrap:wrap}.ksw-mini span{background:#eef4fa;border-radius:999px;padding:6px 10px;font-size:13px}.ksw-table-wrap{overflow:auto}.ksw-app table{border-collapse:collapse;width:100%;min-width:760px}.ksw-app th,.ksw-app td{padding:9px 10px;border-bottom:1px solid #e5e7eb;text-align:left;vertical-align:middle}.ksw-app th{background:#f3f6f9;color:#334155;position:sticky;top:0}.ksw-app label{display:block;font-weight:700;margin:12px 0}.ksw-app input,.ksw-app select{width:100%;padding:9px;border:1px solid #cbd5e1;border-radius:7px;margin-top:5px}.ksw-app .ksw-num{min-width:90px}.ksw-inline{display:inline-block!important;margin-right:14px!important}.ksw-inline input{width:auto}.ksw-primary,.ksw-secondary{display:inline-block;border:0;border-radius:8px;padding:10px 15px;text-decoration:none;cursor:pointer;font-weight:800}.ksw-primary{background:#1f4e78;color:#fff}.ksw-secondary{background:#e6edf5;color:#17365d}.ksw-actions{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0}.ksw-inlineform{display:inline-block;margin:0}.ksw-alert{padding:12px 14px;border-radius:8px;margin:14px 0}.ksw-alert.success{background:#e8f5e9;color:#1b5e20}.ksw-alert.error{background:#ffebee;color:#b71c1c}.ksw-alert.warning{background:#fff8e1;color:#8d6e00}.ksw-muted{color:#64748b;font-size:13px}.ksw-list{padding-left:20px}.ksw-choice{display:block;border:2px solid #dbe3ec;border-radius:10px;padding:14px;margin:12px 0;font-weight:700}.ksw-choice input{margin-right:8px}.ksw-public-card dl{display:grid;grid-template-columns:90px 1fr;gap:6px 12px}.ksw-public-card dt{font-weight:700}.ksw-public-card dd{margin:0}.ksw-notice{background:#eef4fa;padding:10px;border-radius:8px}@media(max-width:800px){.ksw-grid2,.ksw-kpis{grid-template-columns:1fr}.ksw-row{display:block}.ksw-app-head h1{font-size:20px}}

.ksw-test-tools{margin:18px 0;padding:16px;border:1px dashed #7aa2c8;background:#f6faff;border-radius:10px}.ksw-test-tools h3{margin:0 0 8px}.ksw-test-tools form{margin-top:10px}

/* v0.1.5: 消防点検アクションのバナー寸法を統一 */
.ksw-fire-actions{align-items:stretch}
.ksw-fire-actions .ksw-inlineform{display:flex}
.ksw-fire-actions .ksw-primary,.ksw-fire-actions .ksw-secondary{
  width:220px;
  min-height:44px;
  padding:0 14px!important;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  font-size:14px!important;
  line-height:1.25!important;
  border-radius:8px;
  white-space:normal;
}
@media(max-width:800px){
  .ksw-fire-actions .ksw-inlineform,.ksw-fire-actions .ksw-primary,.ksw-fire-actions .ksw-secondary{width:100%}
}

/* v0.2.0 給湯・水道検針 */
.ksw-meter-actions{align-items:stretch}
.ksw-meter-actions .ksw-secondary{min-height:44px;display:inline-flex;align-items:center;justify-content:center;text-align:center}
.ksw-meter-upload{margin:18px 0;padding:18px;border:1px solid #bfd0e1;border-radius:12px;background:#f8fbff}
.ksw-meter-upload h3{margin-top:0;color:#17365d}
.ksw-meter-upload input[type=file]{background:#fff}
.ksw-meter-guide{margin:18px 0;padding:14px 16px;border-left:5px solid #1f4e78;background:#eef4fa;border-radius:8px;line-height:1.7}
.ksw-meter-guide span{font-size:13px;color:#52657a}
.ksw-meter-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.ksw-meter-card{border:1px solid #dbe3ec;border-radius:12px;padding:14px;background:#fff;box-shadow:0 2px 10px rgba(23,54,93,.06)}
.ksw-meter-card>header{display:flex;justify-content:space-between;align-items:flex-start;gap:8px;margin-bottom:10px}
.ksw-meter-card h3{margin:0;color:#17365d;font-size:18px}.ksw-meter-card header p{margin:4px 0 0;font-size:13px;color:#64748b}
.ksw-badge{display:inline-block;padding:2px 7px;border-radius:999px;background:#eef2f7;color:#52657a;font-size:11px}
.ksw-review-badge{display:inline-block;padding:5px 8px;border-radius:999px;font-size:11px;font-weight:800}.ksw-review-badge.ok{background:#e7f6ec;color:#176434}.ksw-review-badge.warn{background:#fff4db;color:#8a5a00}
.ksw-meter-photo{height:235px;border:1px solid #e2e8f0;border-radius:9px;overflow:hidden;background:#f7f8fa;display:flex;align-items:center;justify-content:center}
.ksw-meter-photo img{width:100%;height:100%;object-fit:contain}.ksw-photo-empty{color:#94a3b8;font-size:13px}
.ksw-ocr-row{display:flex;align-items:center;gap:8px;margin:10px 0}.ksw-ocr-row .ksw-secondary{font-size:12px;padding:8px 10px}.ksw-ocr-result{font-size:11px;color:#52657a;line-height:1.4}
.ksw-meter-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;align-items:start}.ksw-meter-fields label{margin:0!important;font-size:11px;color:#52657a;display:grid!important;grid-template-rows:52px 44px;align-content:start;min-width:0}.ksw-meter-fields .ksw-field-title{height:52px;min-height:52px;display:flex!important;flex-direction:column;justify-content:flex-end;align-items:flex-start;line-height:1.1;padding:0 0 6px;overflow:hidden}.ksw-meter-fields .ksw-field-title>span{font-weight:800;white-space:nowrap}.ksw-meter-fields .ksw-field-title small{display:block;font-size:10px;line-height:1.1;margin-top:4px;color:#64748b;font-weight:600;white-space:nowrap}.ksw-meter-fields input{margin:0!important;padding:9px!important;text-align:right;width:100%!important;height:44px!important;min-height:44px!important;max-height:44px!important;min-width:0;box-sizing:border-box;line-height:24px!important}
.ksw-charge-box{display:grid;grid-template-columns:1fr 1fr;gap:5px;margin:10px 0;background:#f4f7fa;border-radius:8px;padding:8px;font-size:11px}.ksw-charge-box span{display:flex;justify-content:space-between;gap:5px}.ksw-charge-box strong{color:#17365d}
.ksw-review-check{margin:8px 0!important;padding:9px;border:1px solid #cbd5e1;border-radius:8px;background:#fff;font-size:12px!important}.ksw-review-check input{width:auto!important;margin:0 6px 0 0!important}
.ksw-meter-mail{margin:6px 0 0;font-size:11px;color:#64748b}
.ksw-sticky-save{position:sticky;bottom:12px;z-index:2;margin:18px 0;padding:10px 12px;background:rgba(255,255,255,.96);border:1px solid #cbd5e1;border-radius:10px;box-shadow:0 5px 22px rgba(0,0,0,.12);display:flex;align-items:center;gap:12px}.ksw-sticky-save span{font-size:12px;color:#64748b}
.ksw-meter-bottom{margin-top:18px}.ksw-meter-bottom>section{border-top:1px solid #e2e8f0;padding-top:8px}
@media(max-width:1100px){.ksw-meter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.ksw-meter-grid{grid-template-columns:1fr}.ksw-meter-photo{height:auto;min-height:220px}.ksw-meter-photo img{height:auto;max-height:420px}.ksw-meter-fields{grid-template-columns:1fr}.ksw-sticky-save{display:block}.ksw-sticky-save span{display:block;margin-top:7px}}

/* v0.2.1: 検針写真ドラッグ＆ドロップ一括登録 */
.ksw-meter-dropzone{
  position:relative;
  min-height:190px;
  margin:14px 0 10px;
  padding:26px 20px;
  border:2px dashed #7da4c8;
  border-radius:14px;
  background:#fff;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:7px;
  text-align:center;
  cursor:pointer;
  transition:border-color .18s ease,background .18s ease,transform .18s ease,box-shadow .18s ease;
}
.ksw-meter-dropzone:hover,.ksw-meter-dropzone:focus{
  border-color:#1f4e78;
  background:#f4f8fc;
  outline:none;
  box-shadow:0 0 0 3px rgba(31,78,120,.08);
}
.ksw-meter-dropzone.is-dragover{
  border-color:#0b6b45;
  background:#edf9f3;
  transform:scale(1.008);
  box-shadow:0 0 0 4px rgba(11,107,69,.09);
}
.ksw-meter-files{
  position:absolute!important;
  width:1px!important;
  height:1px!important;
  opacity:0!important;
  overflow:hidden!important;
  pointer-events:none!important;
}
.ksw-drop-icon{
  width:46px;
  height:46px;
  border-radius:50%;
  background:#1f4e78;
  color:#fff;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:28px;
  line-height:1;
  font-weight:400;
}
.ksw-meter-dropzone strong{font-size:17px;color:#17365d}
.ksw-meter-dropzone span{font-size:13px;color:#52657a}
.ksw-meter-dropzone small{font-size:11px;color:#7b8da1}
.ksw-drop-summary{font-weight:800;color:#17365d;margin:8px 0}
.ksw-drop-file-list{display:flex;gap:6px;flex-wrap:wrap;margin:8px 0 13px}
.ksw-drop-file-chip{display:inline-block;max-width:220px;padding:5px 8px;border-radius:999px;background:#eef4fa;color:#334e68;font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ksw-drop-file-chip.more{background:#17365d;color:#fff}
.ksw-drop-upload:disabled{opacity:.55;cursor:not-allowed}
.ksw-drop-progress{margin:12px 0;padding:10px 12px;border-radius:9px;background:#eef4fa}
.ksw-drop-progress[hidden]{display:none!important}
.ksw-drop-progress p{margin:6px 0 0;font-size:12px;color:#52657a}
.ksw-drop-progress-bar{height:9px;background:#d9e4ef;border-radius:999px;overflow:hidden}
.ksw-drop-progress-bar span{display:block;width:0;height:100%;background:#1f4e78;transition:width .2s ease}
@media(max-width:700px){
  .ksw-meter-dropzone{min-height:165px;padding:22px 14px}
  .ksw-meter-dropzone strong{font-size:15px}
  .ksw-drop-file-chip{max-width:150px}
}

/* v0.2.2: 写真内容から号室を自動判別 */
.ksw-room-detect{margin:14px 0;padding:14px;border:1px solid #c8d7e6;border-radius:12px;background:#fff}
.ksw-room-detect[hidden]{display:none!important}
.ksw-room-detect-head{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:4px;color:#17365d}
.ksw-room-detect-progress{font-size:12px;font-weight:800;color:#52657a}
.ksw-room-detect-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:10px}
.ksw-room-detect-item{display:grid;grid-template-columns:112px 1fr;gap:10px;align-items:center;border:1px solid #dbe3ec;border-radius:10px;padding:8px;background:#f9fbfd}
.ksw-room-detect-item img{width:112px;height:88px;object-fit:cover;border-radius:7px;background:#eef2f7;border:1px solid #e2e8f0}
.ksw-room-detect-info{min-width:0;display:flex;flex-direction:column;gap:5px}
.ksw-room-detect-info strong{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:12px;color:#334155}
.ksw-room-detect-info select{margin:0!important;padding:7px!important;font-size:12px}
.ksw-room-detect-status{display:block;font-size:11px;line-height:1.35;padding:4px 7px;border-radius:6px;background:#eef2f7;color:#52657a}
.ksw-room-detect-status.ok{background:#e8f5e9;color:#176434}
.ksw-room-detect-status.warn{background:#fff4db;color:#8a5a00}
.ksw-room-detect-status.working{background:#e8f1fb;color:#1f4e78}
@media(max-width:850px){.ksw-room-detect-list{grid-template-columns:1fr}}
@media(max-width:520px){.ksw-room-detect-item{grid-template-columns:82px 1fr}.ksw-room-detect-item img{width:82px;height:72px}.ksw-room-detect-head{display:block}.ksw-room-detect-progress{display:block;margin-top:4px}}


/* v0.2.3: 給湯・水道検針は国際ソフトウェアビル固定 */
.ksw-fixed-building{
  box-sizing:border-box;
  display:grid;
  gap:4px;
  margin:0 0 14px;
  padding:13px 15px;
  border:1px solid #cbd9e8;
  border-radius:10px;
  background:#f4f8fc;
}
.ksw-fixed-building span{font-size:12px;color:#64748b;font-weight:700;}
.ksw-fixed-building strong{font-size:17px;color:#17365d;line-height:1.4;}
.ksw-fixed-building small{font-size:12px;color:#64748b;line-height:1.5;}


/* v0.2.4: 号室手動確認用の検針写真拡大表示 */
.ksw-room-photo-preview{
  position:relative;
  width:112px;
  height:88px;
  border-radius:7px;
  overflow:hidden;
  background:#eef2f7;
  border:1px solid #e2e8f0;
}
.ksw-room-photo-preview img{
  width:100%!important;
  height:100%!important;
  border:0!important;
  border-radius:0!important;
  object-fit:cover;
  cursor:zoom-in;
  transition:transform .16s ease,filter .16s ease;
}
.ksw-room-photo-preview:hover img,.ksw-room-photo-preview img:focus{
  transform:scale(1.035);
  filter:brightness(.92);
  outline:none;
}
.ksw-room-photo-zoom-hint{
  position:absolute;
  left:6px;
  right:6px;
  bottom:5px;
  padding:3px 5px;
  border-radius:5px;
  background:rgba(15,23,42,.76);
  color:#fff;
  font-size:10px;
  font-weight:800;
  text-align:center;
  pointer-events:none;
}
body.ksw-photo-modal-open{overflow:hidden!important}
.ksw-photo-lightbox{
  position:fixed;
  inset:0;
  z-index:999999;
  padding:22px;
  background:rgba(5,12,22,.88);
  display:flex;
  align-items:center;
  justify-content:center;
}
.ksw-photo-lightbox[hidden]{display:none!important}
.ksw-photo-lightbox-panel{
  width:min(1180px,96vw);
  height:min(900px,94vh);
  display:flex;
  flex-direction:column;
  overflow:hidden;
  border-radius:14px;
  background:#111827;
  box-shadow:0 24px 70px rgba(0,0,0,.48);
}
.ksw-photo-lightbox-bar{
  flex:0 0 auto;
  min-height:58px;
  padding:10px 14px;
  background:#17365d;
  color:#fff;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
}
.ksw-photo-lightbox-title{
  min-width:0;
  overflow:hidden;
  white-space:nowrap;
  text-overflow:ellipsis;
  font-size:14px;
}
.ksw-photo-lightbox-controls{display:flex;align-items:center;gap:7px;flex-wrap:wrap;justify-content:flex-end}
.ksw-photo-lightbox-controls button{
  min-height:36px;
  padding:6px 11px;
  border:1px solid rgba(255,255,255,.35);
  border-radius:7px;
  background:#fff;
  color:#17365d;
  font-size:12px;
  font-weight:800;
  cursor:pointer;
}
.ksw-photo-lightbox-controls button:hover,.ksw-photo-lightbox-controls button:focus{background:#eaf2f9;outline:2px solid rgba(255,255,255,.55);outline-offset:1px}
.ksw-photo-zoom-label{min-width:52px;text-align:center;font-size:12px;font-weight:800;color:#fff}
.ksw-photo-lightbox-stage{
  flex:1 1 auto;
  min-height:0;
  overflow:auto;
  padding:12px;
  background:#0b1220;
  display:block;
  text-align:center;
}
.ksw-photo-lightbox-stage img{
  display:block;
  max-width:none!important;
  max-height:none!important;
  height:auto!important;
  margin:0 auto;
  background:#fff;
  box-shadow:0 3px 18px rgba(0,0,0,.35);
}
.ksw-photo-crop-host{position:relative;display:block;width:max-content;max-width:none;margin:0 auto;line-height:0;touch-action:none;user-select:none}
.ksw-photo-crop-host img{width:100%;height:auto!important;margin:0!important;pointer-events:none}
.ksw-photo-crop-selection{position:absolute;z-index:3;border:3px solid #fbbf24;border-radius:3px;box-shadow:0 0 0 9999px rgba(3,7,18,.48),0 0 0 1px rgba(255,255,255,.7) inset;pointer-events:none}
.ksw-photo-crop-help{position:sticky;left:0;bottom:4px;margin:10px auto 0;width:max-content;max-width:90%;padding:7px 11px;border-radius:999px;background:rgba(251,191,36,.95);color:#111827;font-size:12px;font-weight:900;line-height:1.3}
.ksw-photo-crop-label{min-width:78px;text-align:center;font-size:12px;font-weight:800;color:#fff}
.ksw-photo-lightbox-controls .ksw-photo-crop-start.is-active{background:#fbbf24!important;border-color:#fbbf24!important;color:#111827!important}
@media(max-width:700px){
  .ksw-room-photo-preview{width:82px;height:72px}
  .ksw-room-photo-zoom-hint{font-size:9px;left:3px;right:3px;bottom:3px}
  .ksw-photo-lightbox{padding:0}
  .ksw-photo-lightbox-panel{width:100vw;height:100vh;border-radius:0}
  .ksw-photo-lightbox-bar{align-items:flex-start;display:block}
  .ksw-photo-lightbox-title{display:block;margin-bottom:8px}
  .ksw-photo-lightbox-controls{justify-content:flex-start}
  .ksw-photo-lightbox-controls button{padding:5px 8px;min-height:34px}
}


/* v0.2.5: 重複号室の強調表示・写真回転登録 */
.ksw-room-detect-item.is-duplicate{
  border:2px solid #dc2626!important;
  background:#fff1f2!important;
  box-shadow:0 0 0 3px rgba(220,38,38,.10);
}
.ksw-room-detect-item.is-duplicate .ksw-room-photo-preview{border-color:#dc2626!important}
.ksw-room-detect-status.duplicate{
  background:#fee2e2!important;
  color:#991b1b!important;
  border:1px solid #fecaca;
  font-weight:800;
}
.ksw-room-select.is-duplicate{border:2px solid #dc2626!important;background:#fff!important}
.ksw-room-duplicate-badge{
  position:absolute;z-index:4;top:4px;left:4px;max-width:calc(100% - 8px);
  padding:3px 6px;border-radius:5px;background:#b91c1c;color:#fff;
  font-size:10px;line-height:1.25;font-weight:900;box-shadow:0 1px 4px rgba(0,0,0,.2);
  pointer-events:none;
}
.ksw-room-rotation-badge{
  position:absolute;z-index:4;top:4px;right:4px;padding:3px 6px;border-radius:5px;
  background:#17365d;color:#fff;font-size:10px;line-height:1.25;font-weight:900;pointer-events:none;
}
.ksw-room-crop-badge{position:absolute;z-index:4;right:4px;bottom:26px;padding:3px 6px;border-radius:5px;background:#b45309;color:#fff;font-size:10px;line-height:1.25;font-weight:900;pointer-events:none}
.ksw-room-orientation-note{display:block;font-size:10px;line-height:1.35;color:#64748b}
.ksw-room-orientation-note.is-rotated{color:#17365d;font-weight:800}
.ksw-room-photo-preview img{transform:rotate(var(--ksw-photo-rotation,0deg))}
.ksw-room-photo-preview:hover img,.ksw-room-photo-preview img:focus{
  transform:rotate(var(--ksw-photo-rotation,0deg)) scale(1.035);
}
.ksw-photo-control-separator{width:1px;height:28px;margin:0 3px;background:rgba(255,255,255,.35)}
.ksw-photo-rotation-label{min-width:64px;text-align:center;font-size:12px;font-weight:800;color:#fff}
.ksw-photo-lightbox-controls .ksw-photo-rotate.is-active{
  background:#fbbf24!important;border-color:#fbbf24!important;color:#111827!important;
}
@media(max-width:700px){
  .ksw-photo-control-separator{display:none}
  .ksw-photo-rotation-label{min-width:auto}
}

/* v0.2.6: 検針値OCRの確認状態 */
.ksw-ocr-result{display:inline-block;padding:4px 7px;border-radius:6px;background:#f1f5f9}
.ksw-ocr-result.working{background:#eaf2f9;color:#17365d;font-weight:700}
.ksw-ocr-result.ok{background:#e8f7ec;color:#166534;font-weight:800}
.ksw-ocr-result.warn{background:#fff7db;color:#8a5b00;font-weight:800}
.ksw-ocr-result.error{background:#feecec;color:#991b1b;font-weight:800}
.ksw-meter-card.ksw-ocr-high{border-color:#86c79b;box-shadow:0 0 0 2px rgba(22,101,52,.06)}
.ksw-meter-card.ksw-ocr-medium{border-color:#e5bf57;box-shadow:0 0 0 2px rgba(138,91,0,.05)}
.ksw-meter-card.ksw-ocr-low{border-color:#e59a9a;box-shadow:0 0 0 2px rgba(153,27,27,.05)}

/* v0.3.0: 検針値はm³整数のみ。3入力欄を必ず横一直線に揃える */
.ksw-meter-fields{
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  gap:10px!important;
  align-items:end!important;
}
.ksw-meter-fields>label{
  display:grid!important;
  grid-template-rows:44px 44px!important;
  gap:0!important;
  align-items:end!important;
  margin:0!important;
  padding:0!important;
  min-width:0!important;
  height:88px!important;
  box-sizing:border-box!important;
}
.ksw-meter-fields .ksw-field-title{
  display:flex!important;
  flex-direction:column!important;
  justify-content:flex-end!important;
  align-items:flex-start!important;
  width:100%!important;
  height:44px!important;
  min-height:44px!important;
  max-height:44px!important;
  margin:0!important;
  padding:0 0 6px 0!important;
  box-sizing:border-box!important;
  line-height:1.1!important;
  overflow:visible!important;
}
.ksw-meter-fields .ksw-field-title>span,
.ksw-meter-fields .ksw-field-title>small{
  display:block!important;
  white-space:nowrap!important;
  margin:0!important;
  padding:0!important;
}
.ksw-meter-fields .ksw-field-title>span{font-weight:800!important;font-size:12px!important;line-height:16px!important}
.ksw-meter-fields .ksw-field-title>small{font-size:10px!important;line-height:14px!important;color:#64748b!important;font-weight:600!important}
.ksw-meter-fields input.ksw-num{
  display:block!important;
  width:100%!important;
  height:44px!important;
  min-height:44px!important;
  max-height:44px!important;
  margin:0!important;
  padding:8px 10px!important;
  line-height:26px!important;
  box-sizing:border-box!important;
  align-self:end!important;
}
@media(max-width:700px){
  .ksw-meter-fields{grid-template-columns:1fr!important}
  .ksw-meter-fields>label{height:auto!important;grid-template-rows:36px 44px!important}
  .ksw-meter-fields .ksw-field-title{height:36px!important;min-height:36px!important;max-height:36px!important}
}


/* v0.3.2: 人間入力を主役にした高速検針入力 */
.ksw-fast-entry{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:16px 0;padding:14px 16px;border:2px solid #1f4e78;border-radius:12px;background:#f4f8fc}
.ksw-fast-entry>div:first-child{display:flex;flex-direction:column;gap:3px;min-width:0}.ksw-fast-entry strong{color:#17365d;font-size:16px}.ksw-fast-entry span{font-size:12px;color:#52657a}
.ksw-fast-entry-status{display:flex!important;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap}.ksw-fast-progress,.ksw-fast-anomalies{display:inline-flex!important;align-items:center;min-height:34px;padding:6px 10px;border-radius:999px;background:#fff;border:1px solid #cbd5e1;font-weight:800!important;color:#334155!important}.ksw-fast-anomalies.has-alert{background:#fff3cd;border-color:#e8b84e;color:#8a5b00!important}
.ksw-meter-fields input.ksw-current{font-size:20px!important;font-weight:900!important;color:#17365d!important;border:2px solid #7ea1c5!important;background:#fff!important}
.ksw-meter-fields input.ksw-current:focus{outline:3px solid rgba(31,78,120,.18)!important;border-color:#17365d!important;box-shadow:none!important}
.ksw-meter-fields input.ksw-readonly{background:#f3f6f9!important;color:#475569!important;border-color:#d7e0e8!important;cursor:default}
.ksw-meter-anomaly-msg{min-height:20px;margin:6px 0 0;padding:0 3px;font-size:11px;font-weight:800;color:#64748b}.ksw-meter-anomaly-msg.warning{color:#8a5b00}.ksw-meter-anomaly-msg.error{color:#b42318}
.ksw-quick-save-state{min-height:17px;margin:1px 3px 5px;font-size:10px;color:#64748b}.ksw-quick-save-state.saving{color:#17365d}.ksw-quick-save-state.saved{color:#16713a;font-weight:800}.ksw-quick-save-state.error{color:#b42318;font-weight:800}
.ksw-meter-card.ksw-anomaly-warning{border:2px solid #e4ad34!important;background:#fffaf0!important;box-shadow:0 0 0 3px rgba(228,173,52,.10)!important}.ksw-meter-card.ksw-anomaly-error{border:2px solid #d04a3a!important;background:#fff5f4!important;box-shadow:0 0 0 3px rgba(208,74,58,.10)!important}
@media(max-width:700px){.ksw-fast-entry{display:block}.ksw-fast-entry-status{justify-content:flex-start!important;margin-top:10px}.ksw-fast-start{width:100%}.ksw-meter-fields input.ksw-current{font-size:22px!important}}


/* v0.3.4: integer-only meter fields */
.ksw-meter-fields input.ksw-integer-only{font-variant-numeric:tabular-nums;letter-spacing:.02em}
.ksw-meter-fields input.ksw-current{ime-mode:disabled}


/* v0.3.5: 管理ページのタイトルを1行固定 */
body.ksw-housing-admin-page .wp-block-post-title,
body.ksw-housing-admin-page .entry-title,
body.ksw-housing-admin-page .page-title{
  display:none!important;
}
.ksw-page-title{
  display:block!important;
  width:100%!important;
  max-width:none!important;
  margin:30px auto 22px!important;
  padding:0 4px!important;
  text-align:center!important;
  color:#111!important;
  font-size:clamp(26px,3vw,40px)!important;
  font-weight:500!important;
  line-height:1.2!important;
  letter-spacing:-.04em!important;
  white-space:nowrap!important;
  word-break:keep-all!important;
  overflow-wrap:normal!important;
}
@media(max-width:700px){
  .ksw-page-title{font-size:clamp(18px,5.1vw,26px)!important;letter-spacing:-.055em!important;}
}

/* v0.4.0: 給湯・水道検針ワークフロー固定 */
.ksw-workflow-stage{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:16px 0;padding:14px 16px;border:1px solid #cbd5e1;border-radius:12px;background:#f8fafc}
.ksw-workflow-stage>div{display:flex;flex-direction:column;gap:4px;min-width:0}.ksw-workflow-stage strong{font-size:16px;color:#17365d}.ksw-workflow-stage span{font-size:12px;color:#52657a;line-height:1.55}
.ksw-workflow-stage.complete{background:#eef8f0;border-color:#9ac7a5}.ksw-workflow-stage.complete strong{color:#166534}
.ksw-workflow-stage.approval{background:#fff9e8;border-color:#e9c56c}.ksw-workflow-stage.approval strong{color:#8a5b00}
.ksw-workflow-stage.approved{background:#eaf6ff;border-color:#82b8df}.ksw-workflow-stage.approved strong{color:#0b568c}
.ksw-workflow-stage.waiting{background:#f3f4f6;border-color:#d1d5db}.ksw-workflow-stage.waiting strong{color:#64748b}
.ksw-stage-complete-manual{margin:10px 0 18px;display:flex;justify-content:flex-end}
.ksw-meter-card input[readonly].ksw-current{background:#eef2f6!important;color:#64748b!important;border-color:#d7e0e8!important;cursor:not-allowed!important}
@media(max-width:700px){.ksw-workflow-stage{display:block}.ksw-workflow-stage form{margin-top:12px}.ksw-workflow-stage button,.ksw-stage-complete-manual button{width:100%}.ksw-stage-complete-manual{display:block}}

/* v0.4.1: 入居者マスターの可読性・編集フロー改善 */
.ksw-residents-layout{
  display:grid;
  grid-template-columns:minmax(0,2.15fr) minmax(320px,.85fr);
  gap:18px;
  align-items:start;
}
.ksw-residents-list,.ksw-resident-editor{min-width:0}
.ksw-residents-table{min-width:900px!important;table-layout:auto}
.ksw-residents-table th,.ksw-residents-table td{white-space:nowrap;word-break:keep-all;writing-mode:horizontal-tb!important}
.ksw-residents-table .ksw-col-building{min-width:190px;width:220px}
.ksw-residents-table .ksw-col-room{min-width:70px;width:78px;text-align:center}
.ksw-residents-table .ksw-col-status{min-width:82px;width:88px;text-align:center}
.ksw-residents-table .ksw-col-resident{min-width:130px;width:160px}
.ksw-residents-table .ksw-col-email{min-width:220px}
.ksw-residents-table .ksw-col-edit{min-width:70px;width:76px;text-align:center}
.ksw-resident-row.is-vacant td{background:#f1f3f5!important;color:#7a828c!important}
.ksw-resident-row.is-vacant:hover td{background:#e9ecef!important}
.ksw-resident-row.is-occupied td{background:#fff}
.ksw-resident-status{display:inline-flex;align-items:center;justify-content:center;min-width:58px;padding:4px 8px;border-radius:999px;font-size:11px;font-weight:800}
.ksw-resident-status.occupied{background:#e7f6ec;color:#176434}
.ksw-resident-status.vacant{background:#dfe3e7;color:#66707a}
.ksw-resident-edit-btn{padding:7px 10px!important;font-size:12px!important;white-space:nowrap}
.ksw-resident-editor-target{display:grid;grid-template-columns:auto 1fr auto;gap:8px 10px;align-items:center;margin:0 0 14px;padding:12px 14px;border:1px solid #bfd0e1;border-radius:10px;background:#f4f8fc}
.ksw-resident-editor-target span{font-size:11px;color:#64748b;font-weight:800}
.ksw-resident-editor-target strong{color:#17365d;white-space:nowrap}
.ksw-resident-editor-target a{font-size:12px;white-space:nowrap}
.ksw-resident-editor-empty{padding:16px;border:1px dashed #b7c8d9;border-radius:10px;background:#f8fafc;color:#52657a;line-height:1.7}
.ksw-resident-fixed-row{display:grid;grid-template-columns:70px 1fr;gap:10px;align-items:center;padding:9px 0;border-bottom:1px solid #edf1f5}
.ksw-resident-fixed-row span{font-size:12px;color:#64748b;font-weight:800}
.ksw-resident-fixed-row strong{white-space:nowrap;color:#17365d}
.ksw-resident-person-fields{transition:opacity .15s ease}
.ksw-resident-person-fields.is-disabled{opacity:.42}
.ksw-vacant-help{margin-top:8px!important}
@media(max-width:1050px){
  .ksw-residents-layout{grid-template-columns:1fr}
  .ksw-resident-editor{order:-1}
}


/* v0.4.9: 検針履歴の編集・削除UI */
.ksw-water-history{display:grid;gap:10px}
.ksw-water-history-item{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 13px;border:1px solid #dbe3ec;border-radius:10px;background:#f9fbfd}
.ksw-water-history-main{display:flex;min-width:0;flex-direction:column;gap:4px}.ksw-water-history-main strong{color:#17365d;font-size:14px}.ksw-water-history-main span{font-size:12px;color:#64748b}
.ksw-water-history-actions{display:flex;align-items:center;gap:7px;flex:0 0 auto}
.ksw-water-history-actions form{margin:0!important;display:flex;align-items:center}
.ksw-water-history-actions .ksw-secondary,.ksw-water-history-actions .ksw-danger{
  box-sizing:border-box!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  width:auto;
  min-width:48px;
  height:36px!important;
  min-height:36px!important;
  margin:0!important;
  padding:0 11px!important;
  font-size:12px!important;
  line-height:1!important;
  vertical-align:middle;
  white-space:nowrap;
}
.ksw-danger{display:inline-block;border:1px solid #fecaca;border-radius:8px;background:#fff1f2;color:#b42318;text-decoration:none;cursor:pointer;font-weight:800}.ksw-danger:hover{background:#fee2e2}
.ksw-period-edit{margin:14px 0 18px;padding:15px;border:1px solid #b9cbe0;border-radius:11px;background:#f6faff}.ksw-period-edit h3{margin:0 0 5px;color:#17365d}
@media(max-width:700px){.ksw-water-history-item{display:block}.ksw-water-history-actions{margin-top:10px;flex-wrap:wrap}.ksw-water-history-actions .ksw-secondary,.ksw-water-history-actions form,.ksw-water-history-actions .ksw-danger{flex:1 1 auto}.ksw-water-history-actions .ksw-danger{width:100%}}

/* v0.5.0: 入居者一斉通知 */
.ksw-notice-layout{align-items:start}
.ksw-notice-editor textarea{width:100%;min-height:250px;padding:10px;border:1px solid #cbd5e1;border-radius:8px;font:inherit;line-height:1.65;resize:vertical}
.ksw-notice-target-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:18px}
.ksw-notice-target-head h3{margin:0}
.ksw-notice-targets{display:grid;gap:14px;margin:10px 0 18px}
.ksw-notice-building{border:1px solid #cbd5e1;border-radius:10px;padding:12px;background:#f8fbff}
.ksw-notice-building legend{padding:0 7px;color:#17365d;font-weight:900}
.ksw-notice-building-all{margin:0 0 10px!important;padding:8px 10px;background:#eef4fa;border-radius:7px}
.ksw-notice-building-all input,.ksw-notice-room input{width:auto!important;margin:0 7px 0 0!important}
.ksw-notice-room-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}
.ksw-notice-room{display:grid!important;grid-template-columns:auto 1fr;grid-template-areas:"check main" ". sub";align-items:center;margin:0!important;padding:9px 10px;border:1px solid #dbe3ec;border-radius:8px;background:#fff;font-weight:600!important;min-width:0}
.ksw-notice-room>input{grid-area:check}.ksw-notice-room>span{grid-area:main;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ksw-notice-room>small{grid-area:sub;color:#64748b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:2px}
.ksw-notice-room.no-email{background:#f3f4f6;color:#9ca3af}.ksw-notice-room.no-email small{color:#b45309}
.ksw-notice-preview{margin:12px 0 16px;padding:14px;border:1px solid #dbe3ec;border-radius:10px;background:#fff;line-height:1.7;white-space:normal}.ksw-notice-preview h4{margin:0 0 9px;color:#17365d}
.ksw-notice-send-tools{margin-top:10px}.ksw-notice-send-tools>section{border:1px solid #dbe3ec;border-radius:10px;padding:14px;background:#f8fafc}.ksw-notice-send-tools h4{margin:0 0 8px;color:#17365d}
.ksw-notice-history-item{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 0;border-bottom:1px solid #e5e7eb}.ksw-notice-history-item:last-child{border-bottom:0}.ksw-notice-history-item>div:first-child{min-width:0}.ksw-notice-history-item strong{display:block;color:#17365d}.ksw-notice-history-item small{display:block;margin-top:4px;color:#64748b;line-height:1.45}
.ksw-notice-history-actions{display:flex;align-items:center;gap:6px;flex:0 0 auto}.ksw-notice-history-actions form{margin:0;display:flex}.ksw-notice-history-actions .ksw-secondary,.ksw-danger-button{min-width:54px;height:36px;padding:0 11px!important;display:inline-flex;align-items:center;justify-content:center;border-radius:8px;font-size:12px;font-weight:800;line-height:1;border:0;cursor:pointer;text-decoration:none;box-sizing:border-box}.ksw-danger-button{background:#fff1f2;color:#b42318;border:1px solid #fecaca}.ksw-danger-button:hover{background:#fee2e2}
@media(max-width:900px){.ksw-notice-room-grid{grid-template-columns:1fr}.ksw-notice-history-item{display:block}.ksw-notice-history-actions{margin-top:9px}.ksw-notice-target-head{display:block}.ksw-notice-target-head .ksw-actions{margin-top:8px}}


/* v0.5.1: メール履歴 詳細表示 */
.ksw-mail-history-table th:last-child,.ksw-mail-history-table td:last-child{width:74px;text-align:center;white-space:nowrap}
.ksw-mail-detail-btn{min-width:52px;min-height:36px;padding:0 12px!important;display:inline-flex!important;align-items:center;justify-content:center}
.ksw-mail-detail-head{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;margin-bottom:14px}
.ksw-mail-detail-head h2{margin:0 0 4px}
.ksw-mail-detail-meta{display:grid;grid-template-columns:110px minmax(0,1fr);gap:0;border:1px solid #dbe3ec;border-radius:10px;overflow:hidden;margin:0 0 18px}
.ksw-mail-detail-meta dt,.ksw-mail-detail-meta dd{margin:0;padding:10px 12px;border-bottom:1px solid #e5e7eb}
.ksw-mail-detail-meta dt{background:#f3f6f9;font-weight:800;color:#334155}
.ksw-mail-detail-meta dd{background:#fff;overflow-wrap:anywhere}
.ksw-mail-detail-meta dt:last-of-type,.ksw-mail-detail-meta dd:last-of-type{border-bottom:0}
.ksw-mail-status{display:inline-flex;align-items:center;min-height:28px;padding:3px 9px;border-radius:999px;font-weight:800;font-size:12px}
.ksw-mail-status.sent{background:#e7f6ec;color:#176434}.ksw-mail-status.error{background:#feecec;color:#991b1b}
.ksw-mail-body-title{margin:0 0 8px;color:#17365d}
.ksw-mail-body-preview{border:1px solid #cbd5e1;border-radius:10px;background:#fff;padding:18px;line-height:1.8;min-height:120px;overflow-wrap:anywhere}
.ksw-mail-body-preview p:first-child{margin-top:0}.ksw-mail-body-preview p:last-child{margin-bottom:0}
@media(max-width:700px){.ksw-mail-detail-head{display:block}.ksw-mail-detail-head>a{margin-top:10px}.ksw-mail-detail-meta{grid-template-columns:88px 1fr}.ksw-mail-body-preview{padding:13px}}

/* v0.5.2: 入居者通知の個人情報保護・個別配信監査 */
.ksw-privacy-summary{margin:12px 0;padding:13px 14px;border:1px solid #cbd5e1;border-radius:10px;background:#f8fafc}.ksw-privacy-summary.ok{border-color:#9fd3ad;background:#f1faf4}.ksw-privacy-summary.error{border-color:#efb0b0;background:#fff5f5}.ksw-privacy-summary>strong{display:block;color:#17365d;margin-bottom:9px}
.ksw-privacy-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.ksw-privacy-grid span{display:flex;flex-direction:column;gap:2px;padding:8px 9px;border-radius:7px;background:#fff;border:1px solid #e2e8f0;font-size:11px;color:#64748b}.ksw-privacy-grid b{font-size:13px;color:#17365d}
.ksw-privacy-errors{margin-top:9px;padding:8px 10px;border-radius:7px;background:#feecec;color:#991b1b;font-size:12px;font-weight:800;line-height:1.55}.ksw-privacy-details{margin:10px 0 14px;border:1px solid #dbe3ec;border-radius:9px;background:#fff}.ksw-privacy-details summary{cursor:pointer;padding:10px 12px;font-weight:800;color:#17365d}.ksw-privacy-details .ksw-table-wrap{padding:0 10px 10px}.ksw-privacy-state{font-size:11px;font-weight:800}.ksw-privacy-state.ok{color:#176434}.ksw-privacy-state.error{color:#991b1b}
.ksw-mail-privacy-audit{margin:0 0 18px;padding:14px;border:1px solid #9fc0df;border-radius:10px;background:#f5f9fd}.ksw-mail-privacy-audit h3{margin:0 0 9px;color:#17365d}.ksw-mail-privacy-audit .ksw-muted{margin:9px 0 0;line-height:1.6}
@media(max-width:800px){.ksw-privacy-grid{grid-template-columns:1fr 1fr}}@media(max-width:520px){.ksw-privacy-grid{grid-template-columns:1fr}}


/* v0.5.3: 給湯・水道検針「退去対応」 */
.ksw-exit-command{margin-top:20px;padding:18px;border:2px solid #b78632;border-radius:12px;background:#fffaf1}
.ksw-exit-command-head{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;margin-bottom:8px}
.ksw-exit-command-head h3{margin:4px 0 0;color:#6f4a0b;font-size:21px}
.ksw-exit-command-head>strong{color:#6f4a0b;font-size:12px;background:#fff3d6;padding:7px 9px;border-radius:999px}
.ksw-exit-label{display:inline-block;font-size:11px;font-weight:900;color:#fff;background:#9a6a16;border-radius:999px;padding:4px 8px}
.ksw-exit-command p{line-height:1.65}
.ksw-exit-start{background:#8b5e12!important}
.ksw-exit-note{font-size:12px;color:#6b5a3b;line-height:1.65;margin:12px 0 0}
.ksw-water-history-item.is-exit{border-left:4px solid #b78632;background:#fffcf6}
.ksw-history-kind{display:inline-block;margin-right:5px;padding:2px 6px;border-radius:999px;font-size:10px;line-height:1.3}
.ksw-history-kind.monthly{background:#eaf2f9;color:#17365d}.ksw-history-kind.exit{background:#fff0cc;color:#7b5107}
.ksw-exit-period{border-color:#d2b06a!important}
.ksw-exit-overview{margin:14px 0 18px;padding:15px;border:1px solid #d5b76e;border-left:5px solid #a06b10;border-radius:10px;background:#fffaf1}
.ksw-exit-overview-title{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:10px}.ksw-exit-overview-title strong{font-size:17px;color:#6f4a0b}.ksw-exit-overview-title span{font-weight:800}
.ksw-exit-overview-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.ksw-exit-overview-grid span{display:flex;flex-direction:column;gap:3px;padding:9px;border-radius:8px;background:#fff;border:1px solid #ead8ad;font-size:11px;color:#6b5a3b}.ksw-exit-overview-grid b{font-size:17px;color:#17365d}
.ksw-exit-overview p{margin:10px 0 0;font-size:12px;color:#6b5a3b}
.ksw-meter-bottom-single{margin-top:18px}.ksw-meter-bottom-single>section{border-top:1px solid #e2e8f0;padding-top:12px}
.ksw-exit-delivery{border:1px solid #d5b76e;border-radius:10px;padding:15px;background:#fffaf1}
@media(max-width:800px){.ksw-exit-command-head{display:block}.ksw-exit-command-head>strong{display:inline-block;margin-top:8px}.ksw-exit-overview-grid{grid-template-columns:1fr 1fr}.ksw-exit-overview-title{display:block}.ksw-exit-overview-title span{display:block;margin-top:5px}}


/* v0.5.5: 月次検針 所有者共有PDFメール送付 */
.ksw-owner-mail-stage{align-items:flex-start}
.ksw-owner-mail-stage>div{flex:1 1 auto}
.ksw-owner-report-form{flex:0 0 360px;display:flex!important;flex-direction:column;gap:8px;margin:0!important}
.ksw-owner-report-form input[type=file]{width:100%;margin:0!important;padding:9px!important;background:#fff;border:1px solid #cbd5e1;border-radius:8px}
.ksw-owner-report-form .ksw-primary{width:100%;text-align:center}
.ksw-owner-mail-preview{margin-top:8px;padding:9px 10px;border:1px solid #e4c76f;border-radius:8px;background:#fffdf6}
.ksw-owner-mail-preview summary{cursor:pointer;font-size:12px;font-weight:800;color:#6b4a00}
.ksw-owner-mail-meta{display:grid;grid-template-columns:52px 1fr;gap:6px 10px;margin:10px 0;font-size:11px;line-height:1.55}
.ksw-owner-mail-meta b{color:#17365d}
.ksw-owner-mail-body{margin:8px 0 0;padding:10px;border:1px solid #e2e8f0;border-radius:7px;background:#fff;color:#334155;font:11px/1.65 -apple-system,BlinkMacSystemFont,"Segoe UI","Hiragino Kaku Gothic ProN",Meiryo,sans-serif;white-space:pre-wrap;overflow:auto}
@media(max-width:900px){.ksw-owner-mail-stage{display:block}.ksw-owner-report-form{width:100%;max-width:none;min-width:0;margin-top:12px!important;flex-basis:auto}.ksw-owner-mail-meta{grid-template-columns:1fr}.ksw-owner-mail-meta b{margin-top:4px}}

/* v0.5.7: M&Lトラスト請求管理システム系デザインへ統一 */
:root{
  --ksw-ml-ink:#203646;
  --ksw-ml-muted:#596f7d;
  --ksw-ml-bg:#f4f7fa;
  --ksw-ml-card:#ffffff;
  --ksw-ml-line:#dce5eb;
  --ksw-ml-header:#123c4c;
  --ksw-ml-accent:#40a4ac;
  --ksw-ml-primary:#087889;
  --ksw-ml-primary-dark:#066572;
  --ksw-ml-secondary:#176273;
  --ksw-ml-soft:#eef5f7;
  --ksw-ml-chip:#e8f4f5;
  --ksw-ml-good:#16818a;
  --ksw-ml-good-bg:#edf8f8;
  --ksw-ml-warn:#b67821;
  --ksw-ml-warn-bg:#fff8e9;
  --ksw-ml-danger:#a33d28;
}
body.ksw-housing-admin-page{
  background:var(--ksw-ml-bg)!important;
  color:var(--ksw-ml-ink)!important;
}
body.ksw-housing-admin-page .wp-site-blocks,
body.ksw-housing-admin-page main,
body.ksw-housing-admin-page .site-main,
body.ksw-housing-admin-page .entry-content{
  background:transparent;
}
.ksw-app{
  max-width:1180px;
  margin:28px auto 48px;
  padding:0 24px;
  color:var(--ksw-ml-ink);
  font-family:-apple-system,BlinkMacSystemFont,"Yu Gothic","Meiryo",sans-serif;
  line-height:1.75;
}
.ksw-page-title{display:none!important}
.ksw-app-head{
  position:relative;
  overflow:hidden;
  background:var(--ksw-ml-header)!important;
  color:#fff!important;
  padding:34px 36px 31px!important;
  border-radius:14px!important;
  border:0!important;
  border-bottom:5px solid var(--ksw-ml-accent)!important;
  box-shadow:0 8px 26px rgba(18,60,76,.12)!important;
}
.ksw-app-head:after{
  content:"";
  position:absolute;
  width:220px;height:220px;
  right:-84px;top:-112px;
  border:1px solid rgba(187,232,233,.16);
  border-radius:50%;
  pointer-events:none;
}
.ksw-app-head-label{
  margin:0 0 7px;
  color:#bbe8e9;
  font-size:11px;
  line-height:1.3;
  font-weight:800;
  letter-spacing:.14em;
}
.ksw-app-head h1{
  margin:0 0 5px!important;
  color:#fff!important;
  font-size:clamp(24px,2.8vw,34px)!important;
  line-height:1.45!important;
  font-weight:800!important;
  letter-spacing:-.02em;
}
.ksw-app-head p{
  margin:0!important;
  color:#e0eeee!important;
  font-size:14px!important;
  opacity:1!important;
}
.ksw-tabs{
  display:flex!important;
  gap:7px!important;
  flex-wrap:wrap!important;
  margin:18px 0 22px!important;
  padding:6px!important;
  border:1px solid var(--ksw-ml-line)!important;
  border-radius:11px!important;
  background:#fff!important;
  box-shadow:0 2px 10px rgba(32,54,70,.04)!important;
}
.ksw-tabs a{
  min-height:40px;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  padding:8px 13px!important;
  border:1px solid transparent!important;
  border-radius:7px!important;
  background:transparent!important;
  color:#415d6c!important;
  font-size:14px!important;
  font-weight:750!important;
  line-height:1.35!important;
  text-decoration:none!important;
  transition:.16s ease;
}
.ksw-tabs a:hover{
  color:var(--ksw-ml-secondary)!important;
  background:#f2f8f9!important;
  border-color:#d6e7ea!important;
}
.ksw-tabs a.active{
  color:#fff!important;
  background:var(--ksw-ml-primary)!important;
  border-color:var(--ksw-ml-primary)!important;
  box-shadow:0 3px 8px rgba(8,120,137,.17)!important;
}
.ksw-main{color:var(--ksw-ml-ink)}
.ksw-card,.ksw-public-card{
  background:var(--ksw-ml-card)!important;
  border:1px solid var(--ksw-ml-line)!important;
  border-radius:12px!important;
  padding:24px 26px!important;
  margin-bottom:18px!important;
  box-shadow:0 4px 18px rgba(32,54,70,.045)!important;
}
.ksw-card h2,.ksw-card h3,.ksw-public-card h2,.ksw-public-card h3{
  color:var(--ksw-ml-ink)!important;
  letter-spacing:-.01em;
}
.ksw-card h2{font-size:21px!important;margin:0 0 15px!important}
.ksw-card h3{font-size:17px!important}
.ksw-muted{color:var(--ksw-ml-muted)!important}
.ksw-kpis{
  grid-template-columns:repeat(4,minmax(0,1fr))!important;
  gap:14px!important;
  margin-bottom:20px!important;
}
.ksw-kpis>div{
  position:relative;
  overflow:hidden;
  background:#fff!important;
  border:1px solid var(--ksw-ml-line)!important;
  border-radius:12px!important;
  padding:18px 19px 17px!important;
  box-shadow:0 3px 14px rgba(32,54,70,.04)!important;
}
.ksw-kpis>div:before{
  content:"";
  position:absolute;
  left:0;top:0;bottom:0;
  width:4px;
  background:var(--ksw-ml-accent);
}
.ksw-kpis span{
  display:block!important;
  margin-bottom:3px;
  color:var(--ksw-ml-muted)!important;
  font-size:12px!important;
  font-weight:650;
  letter-spacing:.02em;
}
.ksw-kpis strong{
  color:var(--ksw-ml-header)!important;
  font-size:28px!important;
  line-height:1.25;
  font-weight:800!important;
}
.ksw-grid2{gap:18px!important}
.ksw-grid2>.ksw-card{margin-bottom:0!important}
.ksw-mini{gap:7px!important}
.ksw-mini span,.ksw-badge{
  background:var(--ksw-ml-chip)!important;
  color:#165664!important;
  border:1px solid #d6e7ea!important;
  border-radius:5px!important;
  padding:4px 8px!important;
  font-size:12px!important;
}
.ksw-primary,.ksw-secondary{
  min-height:40px;
  border-radius:8px!important;
  padding:9px 15px!important;
  font-weight:750!important;
  line-height:1.45!important;
  box-shadow:none!important;
  transition:.16s ease;
}
.ksw-primary{
  background:var(--ksw-ml-primary)!important;
  border:1px solid var(--ksw-ml-primary)!important;
  color:#fff!important;
}
.ksw-primary:hover,.ksw-primary:focus{
  background:var(--ksw-ml-primary-dark)!important;
  border-color:var(--ksw-ml-primary-dark)!important;
  color:#fff!important;
}
.ksw-secondary{
  background:#fff!important;
  border:1px solid #b6d1d8!important;
  color:var(--ksw-ml-secondary)!important;
}
.ksw-secondary:hover,.ksw-secondary:focus{
  background:#f2f8f9!important;
  border-color:#8fb9c2!important;
  color:#0e5667!important;
}
.ksw-danger-button{
  background:#fff7f5!important;
  color:var(--ksw-ml-danger)!important;
  border:1px solid #e9c6be!important;
}
.ksw-actions{gap:9px!important}
.ksw-alert{
  border-radius:7px!important;
  border-left:4px solid var(--ksw-ml-accent)!important;
  padding:14px 17px!important;
  box-shadow:none!important;
}
.ksw-alert.success{
  background:var(--ksw-ml-good-bg)!important;
  color:#165d63!important;
  border-left-color:var(--ksw-ml-good)!important;
}
.ksw-alert.warning{
  background:var(--ksw-ml-warn-bg)!important;
  color:#78541c!important;
  border-left-color:var(--ksw-ml-warn)!important;
}
.ksw-alert.error{
  background:#fff3ef!important;
  color:#8f3927!important;
  border-left-color:#b4543e!important;
}
.ksw-table-wrap{
  border:1px solid var(--ksw-ml-line);
  border-radius:10px;
  background:#fff;
}
.ksw-app table{
  min-width:760px;
  border-collapse:separate!important;
  border-spacing:0!important;
  margin:0!important;
  font-size:14px;
}
.ksw-app th,.ksw-app td{
  padding:11px 13px!important;
  border-bottom:1px solid var(--ksw-ml-line)!important;
  color:var(--ksw-ml-ink);
}
.ksw-app tr:last-child td{border-bottom:0!important}
.ksw-app th{
  background:var(--ksw-ml-soft)!important;
  color:#315463!important;
  font-size:12px!important;
  font-weight:800!important;
  letter-spacing:.02em;
  position:sticky;
  top:0;
  z-index:1;
}
.ksw-app tbody tr:hover td{background:#fbfdfd}
.ksw-app label{
  color:#294653;
  font-size:14px;
  font-weight:750!important;
}
.ksw-app input,.ksw-app select,.ksw-app textarea{
  border:1px solid #b9cad3!important;
  border-radius:7px!important;
  background:#fff!important;
  color:var(--ksw-ml-ink)!important;
  font:inherit;
  box-shadow:none!important;
}
.ksw-app input:focus,.ksw-app select:focus,.ksw-app textarea:focus{
  outline:3px solid rgba(64,164,172,.16)!important;
  outline-offset:0!important;
  border-color:#5caeb5!important;
}
.ksw-fixed-building,.ksw-meter-guide,.ksw-fast-entry,
.ksw-privacy-summary,.ksw-mail-privacy-audit{
  border-color:#cfe0e5!important;
  background:#f5f9fa!important;
}
.ksw-fixed-building strong,.ksw-meter-guide strong,
.ksw-fast-entry strong,.ksw-privacy-summary>strong,
.ksw-mail-privacy-audit h3{
  color:var(--ksw-ml-header)!important;
}
.ksw-meter-dropzone{
  border-color:#8ebcc3!important;
  background:#fbfdfd!important;
}
.ksw-meter-dropzone:hover,.ksw-meter-dropzone:focus{
  border-color:var(--ksw-ml-primary)!important;
  background:#f3fafb!important;
  box-shadow:0 0 0 3px rgba(8,120,137,.08)!important;
}
.ksw-drop-icon{background:var(--ksw-ml-primary)!important}
.ksw-meter-card{
  border:1px solid var(--ksw-ml-line)!important;
  border-radius:11px!important;
  box-shadow:0 3px 12px rgba(32,54,70,.04)!important;
}
.ksw-meter-card h3{color:var(--ksw-ml-header)!important}
.ksw-review-badge.ok{background:#e8f4f5!important;color:#165664!important}
.ksw-review-badge.warn{background:var(--ksw-ml-warn-bg)!important;color:#8a5b00!important}
.ksw-resident-status.occupied{background:#e8f4f5!important;color:#165664!important}
.ksw-resident-status.vacant{background:#eef1f3!important;color:#697985!important}
.ksw-resident-row.is-vacant td{background:#f6f8f9!important;color:#778994!important}
.ksw-notice-preview,.ksw-notice-send-tools>section,.ksw-mail-body-preview{
  border-color:var(--ksw-ml-line)!important;
  border-radius:10px!important;
}
.ksw-notice-history-item strong,.ksw-mail-body-title,.ksw-notice-preview h4,
.ksw-notice-send-tools h4{color:var(--ksw-ml-header)!important}
.ksw-mail-detail-meta{border-color:var(--ksw-ml-line)!important}
.ksw-mail-detail-meta dt{background:var(--ksw-ml-soft)!important;color:#315463!important}
.ksw-mail-status.sent{background:#e8f4f5!important;color:#165664!important}
.ksw-water-history-actions .ksw-secondary,.ksw-water-history-actions .ksw-danger-button{
  border-radius:7px!important;
}
.ksw-exit-command,.ksw-exit-overview,.ksw-exit-delivery{
  background:#fffaf1!important;
  border-color:#dcbf7b!important;
}
.ksw-owner-mail-preview{background:#fffaf0!important}
.ksw-owner-report-form input[type=file]{border-color:#b9cad3!important}
@media(max-width:900px){
  .ksw-app{padding:0 15px;margin-top:18px}
  .ksw-app-head{padding:28px 22px 25px!important}
  .ksw-tabs{gap:5px!important;padding:5px!important}
  .ksw-tabs a{font-size:13px!important;padding:8px 10px!important}
  .ksw-card,.ksw-public-card{padding:21px 18px!important}
}
@media(max-width:800px){
  .ksw-kpis{grid-template-columns:1fr 1fr!important}
}
@media(max-width:520px){
  .ksw-kpis{grid-template-columns:1fr!important}
  .ksw-tabs a{flex:1 1 calc(50% - 5px)!important}
}
