  :root{
    --bg:#FCFCFA; --panel:#FFFFFF; --text:#141412; --muted:#8C877E; --muted-2:#B6B1A6;
    --line:#E4E1D8; --line-strong:#141412;
    --ok:#4B6B4E; --warn:#B4863A; --danger:#A9503A; --idle:#A9A39A;
    --sidebar-w:248px; --ease:cubic-bezier(.22,.61,.36,1);
  }
  *{box-sizing:border-box;}
  html,body{margin:0;padding:0;}
  body{
    background:var(--bg);color:var(--text);
    font-family:"Noto Sans JP",-apple-system,"Hiragino Kaku Gothic ProN",sans-serif;
    font-weight:300;line-height:1.7;-webkit-font-smoothing:antialiased;
  }
  .gothic{font-family:"Zen Kaku Gothic New","Noto Sans JP",sans-serif;}
  a{color:inherit;text-decoration:none;}
  button{font-family:inherit;}
  input,select,textarea{font-family:inherit;font-size:13px;}

  /* ---------------- shell ---------------- */
  .shell{display:flex;min-height:100vh;}
  .sidebar{
    width:var(--sidebar-w);flex:none;border-right:1px solid var(--line);
    display:flex;flex-direction:column;justify-content:space-between;
    position:sticky;top:0;height:100vh;
  }
  .sidebar-top{padding:28px 24px 8px;}
  .brand{display:flex;align-items:center;gap:10px;margin-bottom:34px;}
  .brand .logo{
    width:32px;height:32px;border-radius:8px;background:#3E4C36;color:#fff;
    display:flex;align-items:center;justify-content:center;font-family:"Zen Kaku Gothic New";font-weight:700;font-size:14px;flex:none;
  }
  .brand .word{font-size:15px;font-weight:700;letter-spacing:.08em;}
  .brand .sub{font-size:10px;color:var(--muted);letter-spacing:.08em;margin-top:1px;}

  .nav{display:flex;flex-direction:column;gap:2px;}
  .nav a{
    display:flex;align-items:center;gap:10px;padding:11px 12px;border-radius:4px;
    font-size:13.5px;color:var(--muted);cursor:pointer;border-left:2px solid transparent;
  }
  .nav a:hover{color:var(--text);}
  .nav a.active{color:var(--text);background:#F1EFE7;border-left-color:var(--text);font-weight:500;}
  .nav a .n{width:16px;font-size:12px;color:var(--muted-2);}

  .sidebar-bottom{padding:20px 24px 26px;border-top:1px solid var(--line);}
  .sidebar-bottom a{font-size:12px;color:var(--muted);display:flex;align-items:center;gap:6px;}
  .sidebar-bottom a:hover{color:var(--text);}
  .sidebar-bottom .tenant{font-size:11px;color:var(--muted-2);margin-bottom:10px;}

  .main{flex:1;min-width:0;}
  .topbar{
    height:72px;border-bottom:1px solid var(--line);display:flex;align-items:center;
    justify-content:space-between;padding:0 40px;position:sticky;top:0;background:rgba(252,252,250,.9);
    backdrop-filter:blur(6px);z-index:10;
  }
  .topbar h1{font-size:19px;font-weight:700;margin:0;}
  .topbar .meta{font-size:12px;color:var(--muted);}
  .content{padding:36px 40px 80px;max-width:1180px;}

  /* 幅が狭いときはサイドバーを上部の横スクロールナビに畳む（本文の幅を確保する） */
  @media (max-width:900px){
    .shell{flex-direction:column;}
    .sidebar{width:100%;height:auto;position:sticky;top:0;z-index:20;background:var(--bg);border-right:none;border-bottom:1px solid var(--line);}
    .sidebar-top{padding:12px 16px 0;}
    .brand{margin-bottom:10px;}
    /* 横スクロールだと右側のメニューが隠れて選べないため、折り返してすべて見えるようにする */
    .nav{flex-direction:row;flex-wrap:wrap;gap:0 2px;padding-bottom:4px;}
    .nav a{white-space:nowrap;border-left:none;border-bottom:2px solid transparent;border-radius:0;padding:8px 10px;font-size:13px;}
    .nav a.active{border-bottom-color:var(--text);background:transparent;}
    .sidebar-bottom{display:none;}
    .topbar{position:static;height:auto;padding:16px;}
    .content{padding:24px 16px 60px;}
    footer.admin-foot{padding:20px 16px;}
    .field-row{grid-template-columns:1fr;}
  }

  .view{display:none;}
  .view.active{display:block;animation:fadeIn .3s var(--ease) both;}
  @keyframes fadeIn{from{opacity:0;} to{opacity:1;}}

  .back-link{display:inline-flex;align-items:center;gap:7px;font-size:12.5px;color:var(--muted);cursor:pointer;margin-bottom:22px;}
  .back-link:hover{color:var(--text);}

  /* ---------------- kpi ---------------- */
  .kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1px;background:var(--line);border:1px solid var(--line);margin-bottom:44px;}
  .kpi{background:var(--panel);padding:22px 24px;}
  .kpi .l{font-size:11px;letter-spacing:.08em;color:var(--muted);text-transform:uppercase;margin-bottom:10px;}
  .kpi .v{font-family:"Zen Kaku Gothic New";font-size:28px;font-weight:700;}
  .kpi .v small{font-size:13px;font-weight:400;color:var(--muted);margin-left:4px;}
  .kpi.warn .v{color:var(--danger);}

  /* 見出しの注釈は見出しのすぐ右に。ボタン類だけ右端へ */
  .section-head{display:flex;align-items:baseline;justify-content:flex-start;flex-wrap:wrap;margin:0 0 18px;gap:6px 16px;}
  .section-head > button,.section-head > .row-actions,.section-head > a{margin-left:auto;}
  .section-head h2{font-size:16px;font-weight:700;margin:0;}
  .section-head .note{font-size:12px;color:var(--muted);}

  /* ---------------- table ---------------- */
  .filter-tabs{display:flex;gap:24px;border-bottom:1px solid var(--line);margin-bottom:4px;}
  .ftab{padding:10px 0 12px;font-size:13px;color:var(--muted);cursor:pointer;position:relative;}
  .ftab.active{color:var(--text);}
  .ftab.active::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:2px;background:var(--text);}
  .ftab .c{color:var(--muted-2);margin-left:4px;}

  .table-scroll{overflow-x:auto;}
  table.res-table{width:100%;min-width:800px;border-collapse:collapse;font-size:13px;table-layout:fixed;}
  table.res-table th{
    text-align:left;font-size:11px;letter-spacing:.06em;color:var(--muted);font-weight:500;
    padding:14px 10px;border-bottom:1px solid var(--line);text-transform:uppercase;
    white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  }
  table.res-table td{
    padding:14px 10px;border-bottom:1px solid var(--line);vertical-align:middle;
    overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
  }
  table.res-table td .sub{display:block;font-size:11px;color:var(--muted);white-space:nowrap;margin-top:2px;}
  table.res-table td.td-fit{overflow:visible;text-overflow:clip;}
  table.res-table tbody tr{cursor:pointer;transition:background .12s ease;}
  table.res-table tbody tr:hover{background:#F7F5EF;}
  .mono{font-family:"Zen Kaku Gothic New";}

  .badge-dot{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;white-space:nowrap;}
  .badge-dot i{width:6px;height:6px;border-radius:50%;flex:none;}
  .badge-dot.ok i{background:var(--ok);} .badge-dot.warn i{background:var(--warn);}
  .badge-dot.danger i{background:var(--danger);} .badge-dot.idle i{background:var(--idle);color:var(--muted);}
  .badge-dot.idle{color:var(--muted);}

  .pill{font-size:11px;border:1px solid var(--line);border-radius:999px;padding:2px 10px;color:var(--muted);white-space:nowrap;}
  .pill.cancelled{color:var(--muted-2);text-decoration:line-through;}

  /* ---------------- detail ---------------- */
  .detail-grid{display:grid;grid-template-columns:1fr 320px;gap:48px;align-items:start;}
  @media (max-width:860px){ .detail-grid{grid-template-columns:1fr;} }
  .panel{border:1px solid var(--line);padding:26px;margin-bottom:24px;}
  .panel h3{font-size:12px;letter-spacing:.08em;color:var(--muted);text-transform:uppercase;font-weight:500;margin:0 0 18px;}
  .kv{display:flex;justify-content:space-between;padding:10px 0;border-bottom:1px solid var(--line);font-size:13.5px;}
  .kv:last-child{border-bottom:none;}
  .kv span:first-child{color:var(--muted);}

  .timeline{list-style:none;margin:0;padding:0;}
  .timeline li{padding:12px 0 12px 20px;border-left:1px solid var(--line);position:relative;font-size:12.5px;color:var(--muted);}
  .timeline li::before{content:"";position:absolute;left:-4px;top:16px;width:7px;height:7px;border-radius:50%;background:var(--text);}
  .timeline li b{display:block;color:var(--text);font-size:13px;font-weight:500;margin-bottom:2px;}

  .btn{
    display:inline-flex;align-items:center;justify-content:center;gap:8px;
    background:var(--text);color:#fff;border:none;padding:12px 22px;border-radius:2px;
    font-size:13px;cursor:pointer;width:100%;margin-bottom:10px;transition:opacity .15s ease;
  }
  .btn:hover{opacity:.82;}
  .btn.ghost{background:transparent;color:var(--text);border:1px solid var(--text);}
  .btn.danger{background:var(--danger);}
  .btn:disabled{background:var(--line);color:var(--muted-2);cursor:not-allowed;opacity:1;}

  .toast{
    position:fixed;bottom:26px;left:50%;transform:translateX(-50%) translateY(20px);
    background:var(--text);color:#fff;padding:13px 22px;border-radius:2px;font-size:13px;
    opacity:0;pointer-events:none;transition:opacity .25s ease, transform .25s ease;z-index:100;
  }
  .toast.show{opacity:1;transform:translateX(-50%) translateY(0);}

  /* ---------------- spaces ---------------- */
  .room-row{
    display:flex;align-items:center;justify-content:space-between;gap:20px;
    padding:20px 4px;border-bottom:1px solid var(--line);
  }
  .room-row .l h3{font-size:15px;font-weight:500;margin:0 0 6px;}
  .room-row .l .s{font-size:12px;color:var(--muted);}
  .room-row .plans{font-size:12px;color:var(--muted-2);margin-top:6px;}
  .room-row .drag-handle{cursor:grab;color:var(--muted-2);font-size:14px;letter-spacing:-2px;padding:6px 4px;user-select:none;margin-right:-8px;}
  .room-row .drag-handle:hover{color:var(--text);}
  .room-row .l{flex:1;}
  .room-item.dragging{opacity:.4;}

  /* 休業日カレンダー：押した日が休業（濃い）、予約のある日は斜線で選べない、未保存は枠線 */
  .closure-cal{max-width:420px;background:#fff;border:1px solid var(--line);padding:14px 16px;}
  .closure-cal .cal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;font-size:13px;}
  .closure-cal .cal-head b{font-weight:500;}
  .closure-cal .cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;touch-action:none;user-select:none;}
  .equip-list{display:grid;gap:10px;margin-bottom:12px;}
  .equip-card{background:#fff;border:1px solid var(--line);padding:14px 16px 10px;}
  .equip-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:0 12px;}
  .equip-grid .field.wide{grid-column:span 2;}
  .equip-grid .field{margin-bottom:10px;}
  @media (max-width:720px){.equip-grid{grid-template-columns:1fr 1fr;}}
  .panel-foot{margin-top:28px;padding-top:18px;border-top:1px solid var(--line);display:flex;align-items:center;gap:14px;flex-wrap:wrap;}
  .panel-foot .danger-text{margin-left:auto;}
  .closure-cal .cw{font-size:10.5px;color:var(--muted);text-align:center;padding-bottom:2px;}
  .closure-cal .cd{aspect-ratio:1/1;border:1px solid transparent;border-radius:2px;background:#F4F2EC;font-size:12px;color:var(--text);cursor:pointer;padding:0;}
  .closure-cal .cd:hover:not(:disabled){border-color:var(--text);}
  .closure-cal .cd.empty{background:none;}
  .closure-cal .cd.past{background:none;color:#C9C4B8;cursor:default;}
  .closure-cal .cd.closed{background:var(--text);color:#fff;}
  .closure-cal .cd.busy{background:repeating-linear-gradient(45deg,#F4F2EC 0 4px,#E3DED2 4px 8px);cursor:not-allowed;}
  .closure-cal .cd.changed{box-shadow:0 0 0 2px var(--warn);}
  .closure-cal .cal-legend{display:flex;flex-wrap:wrap;gap:12px;margin-top:10px;font-size:11px;color:var(--muted);}
  .closure-cal .cal-legend i{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:4px;vertical-align:-1px;}
  .closure-cal .cal-legend i.closed{background:var(--text);}
  .closure-cal .cal-legend i.busy{background:repeating-linear-gradient(45deg,#F4F2EC 0 2px,#E3DED2 2px 4px);}
  .closure-cal .cal-legend i.changed{box-shadow:inset 0 0 0 2px var(--warn);}
  .edit-link{font-size:12.5px;color:var(--muted);border-bottom:1px solid var(--line);cursor:pointer;white-space:nowrap;}
  .edit-link:hover{color:var(--text);border-color:var(--text);}

  .edit-panel{border:1px solid var(--line);padding:22px 24px;margin:-1px 0 18px;background:#F9F8F4;display:none;}
  .edit-panel.open{display:block;}
  .field{margin-bottom:14px;}
  .field label{display:block;font-size:11.5px;color:var(--muted);margin-bottom:6px;letter-spacing:.03em;}
  .field input,.field select{
    width:100%;border:1px solid var(--line);padding:10px 12px;border-radius:2px;background:#fff;color:var(--text);
  }
  .field-row{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
  .field select[multiple]{height:auto;}
  .field textarea{
    width:100%;border:1px solid var(--line);padding:10px 12px;border-radius:2px;background:#fff;color:var(--text);
    line-height:1.7;resize:vertical;
  }
  .policy-box{border:1px solid var(--line);background:#F9F8F4;padding:12px 14px;font-size:13px;line-height:1.9;}
  .caution{border-left:2px solid var(--warn);background:#FBF6EC;padding:10px 14px;margin:0 0 18px;font-size:12.5px;line-height:1.8;color:#5C5347;}
  .caution b{color:var(--text);font-weight:500;}

  /* 画像：ドラッグで並べ替え。タイルは幅に応じて自動で段組み */
  .photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(92px,1fr));gap:8px;}
  .photo-tile{
    position:relative;aspect-ratio:1/1;border-radius:2px;background-size:cover;background-position:center;background-color:#ddd;
    cursor:grab;touch-action:none;user-select:none;transition:transform .15s ease, box-shadow .15s ease, opacity .15s ease;
  }
  .photo-tile.dragging{opacity:.35;}
  .photo-tile.drop-target{box-shadow:0 0 0 2px var(--text);}
  .photo-tile .no{
    position:absolute;left:6px;top:6px;font-size:10px;line-height:1;color:#fff;background:rgba(20,20,18,.55);
    padding:4px 6px;border-radius:2px;pointer-events:none;
  }
  .photo-tile .del{
    position:absolute;right:5px;top:5px;width:22px;height:22px;border:none;border-radius:50%;padding:0;
    background:rgba(255,255,255,.92);color:var(--text);font-size:12px;line-height:22px;text-align:center;cursor:pointer;
  }
  .photo-tile .del:hover{background:#fff;color:var(--danger);}
  .photo-add{
    aspect-ratio:1/1;border:1px dashed #C9C4B8;border-radius:2px;display:flex;align-items:center;justify-content:center;
    flex-direction:column;gap:2px;font-size:11px;color:var(--muted);cursor:pointer;background:#fff;text-align:center;line-height:1.5;
  }
  .photo-add:hover{border-color:var(--text);color:var(--text);}
  .photo-add input{display:none;}
  .hint-s{font-size:11.5px;color:var(--muted);margin-top:6px;line-height:1.7;}
  .scan-card{border:1px solid var(--line);background:#fff;padding:14px 16px;}
  .scan-card .row{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;}
  .scan-card .name{font-size:13px;}
  .scan-card .name span{display:block;font-size:11.5px;color:var(--muted);}
  .scan-card .file-line{display:grid;grid-template-columns:130px 1fr;gap:8px;align-items:center;font-size:12px;color:var(--muted);margin-bottom:8px;}
  .scan-card .file-line input{font-size:12px;}
  .caution ul{margin:6px 0 0;padding-left:1.2em;}
  .caution li{margin:1px 0;}
  .confirm-line{display:flex;gap:8px;align-items:flex-start;font-size:12.5px;color:var(--text);margin:10px 0 12px;cursor:pointer;line-height:1.6;}
  .confirm-line input{width:auto;margin:3px 0 0;}
  .danger-text{color:var(--danger);}

  /* 鍵番号などの自動アラート（赤いポップアップ） */
  .field.has-alert{position:relative;}
  .key-alert{
    display:none;position:relative;margin-top:8px;padding:10px 14px 10px 36px;border:1px solid var(--danger);
    background:#FBEFEC;color:var(--danger);font-size:12.5px;line-height:1.7;border-radius:2px;
    animation:popIn .2s var(--ease) both;
  }
  .key-alert.show{display:block;}
  .key-alert::before{content:"!";position:absolute;left:12px;top:10px;width:16px;height:16px;border-radius:50%;background:var(--danger);color:#fff;font-size:11px;font-weight:700;line-height:16px;text-align:center;}
  .key-alert::after{content:"";position:absolute;left:22px;top:-6px;width:10px;height:10px;background:#FBEFEC;border-left:1px solid var(--danger);border-top:1px solid var(--danger);transform:rotate(45deg);}
  .key-alert b{font-weight:700;}
  textarea.alerting{border-color:var(--danger) !important;}
  @keyframes popIn{from{opacity:0;transform:translateY(-4px);} to{opacity:1;transform:translateY(0);}}

  /* 小見出し（編集パネル内） */
  .sub-head{font-size:11px;letter-spacing:.06em;color:var(--muted);text-transform:uppercase;margin:22px 0 10px;padding-top:16px;border-top:1px solid var(--line);}
  .mini-list{border-top:1px solid var(--line);margin-bottom:10px;}
  .mini-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 0;border-bottom:1px solid var(--line);font-size:12.5px;}
  .mini-row .l b{font-weight:500;display:block;}
  .mini-row .l span{font-size:11.5px;color:var(--muted);}
  .link-btn{font-size:12px;color:var(--muted);background:none;border:none;border-bottom:1px solid var(--line);padding:0;cursor:pointer;white-space:nowrap;}
  .link-btn:hover{color:var(--danger);border-color:var(--danger);}
  .inline-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px;align-items:end;}
  .inline-form .field{margin:0;}
  .inline-form .small-btn{height:39px;}
  .form-error{display:none;margin-top:8px;font-size:12px;color:var(--danger);line-height:1.7;}
  .form-error.show{display:block;}

  /* 予約カレンダー（日／週／月） */
  .res-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin:0 0 16px;}
  .seg{display:inline-flex;border:1px solid var(--line);border-radius:2px;overflow:hidden;}
  .seg button{border:none;background:#fff;padding:8px 16px;font-size:12.5px;color:var(--muted);cursor:pointer;border-right:1px solid var(--line);}
  .seg button:last-child{border-right:none;}
  .seg button.active{background:var(--text);color:#fff;}
  .cal-nav{display:flex;align-items:center;gap:8px;font-size:13px;}
  .cal-nav button{border:1px solid var(--line);background:#fff;width:32px;height:32px;border-radius:2px;cursor:pointer;color:var(--text);}
  .cal-nav .today-btn{width:auto;padding:0 12px;font-size:12px;}
  .cal-nav .range{min-width:170px;text-align:center;font-weight:500;}
  .cal-legend{display:flex;gap:14px;flex-wrap:wrap;font-size:11.5px;color:var(--muted);margin-bottom:10px;}
  .cal-legend i{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:5px;vertical-align:-1px;}
  .ev{border-radius:2px;padding:3px 6px;font-size:11px;line-height:1.45;color:#fff;cursor:pointer;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;}
  .ev.cancelled{opacity:.45;text-decoration:line-through;}
  .ev.closure{background:repeating-linear-gradient(45deg,#E9E5DB,#E9E5DB 6px,#F3F0E8 6px,#F3F0E8 12px) !important;color:var(--muted);cursor:default;}
  /* 月 */
  .cal-month{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border-top:1px solid var(--line);border-left:1px solid var(--line);}
  .cal-month .dow{font-size:11px;color:var(--muted);text-align:center;padding:6px 0;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:#F9F8F4;}
  .cal-month .day{min-height:96px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);padding:4px;display:flex;flex-direction:column;gap:3px;background:#fff;cursor:pointer;}
  .cal-month .day.other{background:#FAF9F6;}
  .cal-month .day.other .dn{color:var(--muted-2);}
  .cal-month .day .dn{font-size:11.5px;color:var(--muted);}
  .cal-month .day.is-today .dn{color:#fff;background:var(--text);border-radius:999px;width:20px;height:20px;display:inline-flex;align-items:center;justify-content:center;}
  .cal-month .more{font-size:10.5px;color:var(--muted);}
  /* 日・週（時間軸） */
  .cal-time{display:grid;border-top:1px solid var(--line);border-left:1px solid var(--line);min-width:640px;}
  .cal-time .hcell{font-size:11.5px;text-align:center;padding:8px 4px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:#F9F8F4;color:var(--muted);}
  .cal-time .hcell.is-today{color:var(--text);font-weight:500;}
  .cal-time .axis{border-right:1px solid var(--line);position:relative;}
  .cal-time .axis span{position:absolute;right:6px;font-size:10.5px;color:var(--muted-2);transform:translateY(-50%);}
  .cal-time .col{position:relative;border-right:1px solid var(--line);
    background-image:linear-gradient(var(--line) 1px, transparent 1px);background-size:100% var(--hour-h);}
  .cal-time .col .ev{position:absolute;left:3px;right:3px;white-space:normal;}
  .cal-scroll{overflow-x:auto;}

  /* クーポン */
  .quota{font-size:12px;color:var(--muted);}
  .quota b{font-size:15px;color:var(--text);font-weight:700;margin:0 2px;}
  .check-row{display:flex;flex-wrap:wrap;gap:8px 18px;}
  .check-row label{display:flex;align-items:center;gap:10px;font-size:13px;color:var(--text);margin:0;cursor:pointer;}
  .check-row input{width:auto;margin:0;}
  .code-chip{font-family:"Zen Kaku Gothic New";letter-spacing:.08em;font-weight:500;}

  /* 利用者・ラベル */
  .chip{display:inline-flex;align-items:center;gap:4px;font-size:11px;border:1px solid var(--line);border-radius:999px;padding:1px 4px 1px 9px;margin:2px 4px 2px 0;white-space:nowrap;}
  .chip.block{border-color:#E4C5BC;color:var(--danger);}
  .chip button{border:none;background:none;color:var(--muted-2);cursor:pointer;font-size:11px;padding:0 4px;}
  .chip button:hover{color:var(--danger);}
  .label-add{font-size:11.5px;border:1px dashed var(--line);border-radius:999px;padding:1px 8px;background:#fff;color:var(--muted);max-width:120px;}
  .label-card.selected{border-color:var(--text);}
  .label-card{cursor:pointer;}
  .search-input{width:100%;max-width:320px;border:1px solid var(--line);padding:9px 12px;border-radius:2px;background:#fff;}

  /* 2段階認証 */
  .mfa-option{border:1px solid var(--line);padding:18px 20px;margin-bottom:12px;background:#fff;}
  .mfa-option .top{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:6px;}
  .mfa-option h4{margin:0;font-size:14px;font-weight:500;}
  .mfa-option p{margin:0 0 12px;font-size:12.5px;color:var(--muted);line-height:1.8;}
  .store-links{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px;}
  .store-links a{font-size:12px;border:1px solid var(--line);padding:6px 12px;border-radius:2px;color:var(--text);}
  .store-links a:hover{border-color:var(--text);}
  .tag-req{font-size:10.5px;border-radius:2px;padding:2px 7px;margin-left:8px;vertical-align:2px;font-weight:500;}
  .tag-req.opt{background:#F1EFE7;color:var(--muted);}
  .tag-req.must{background:#FBEFEC;color:var(--danger);}

  /* AIエージェント */
  .toggle-row{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:12px 0;border-top:1px solid var(--line);}
  .toggle-row:first-child{border-top:none;}
  .toggle-row .t{font-size:13.5px;}
  .toggle-row .s{font-size:12px;color:var(--muted);margin-top:2px;line-height:1.7;}
  .switch{width:38px;height:22px;border-radius:999px;background:var(--line);position:relative;cursor:pointer;flex:none;transition:background .15s ease;margin-top:2px;}
  .switch::after{content:"";position:absolute;top:2px;left:2px;width:18px;height:18px;border-radius:50%;background:#fff;transition:left .15s ease;box-shadow:0 1px 3px rgba(0,0,0,.25);}
  .switch.on{background:var(--text);}
  .switch.on::after{left:18px;}
  .usage-bar{height:6px;background:#EEEBE3;border-radius:999px;overflow:hidden;margin-top:10px;}
  .usage-bar i{display:block;height:100%;background:var(--text);}
  .handoff{border:1px solid var(--line);padding:16px 18px;margin-bottom:12px;background:#fff;}
  .handoff.urgent{border-color:#E4C5BC;}
  .handoff.emergency{border-color:var(--danger);background:#FBEFEC;}
  .handoff .top{display:flex;justify-content:space-between;gap:10px;align-items:center;margin-bottom:6px;flex-wrap:wrap;}
  .handoff .who{font-size:13px;font-weight:500;}
  .handoff .meta{font-size:11.5px;color:var(--muted);}
  .handoff .sum{font-size:13px;line-height:1.8;margin-bottom:8px;}
  .handoff textarea{width:100%;border:1px solid var(--line);padding:9px 11px;border-radius:2px;font-size:13px;line-height:1.7;resize:vertical;}
  .handoff .acts{display:flex;gap:8px;margin-top:8px;flex-wrap:wrap;align-items:center;}
  .chat{border:1px solid var(--line);background:#F9F8F4;padding:14px;max-height:360px;overflow-y:auto;margin-top:10px;}
  .bubble{max-width:80%;padding:8px 12px;border-radius:12px;font-size:12.5px;line-height:1.7;margin:6px 0;white-space:pre-wrap;}
  .bubble.user{background:#fff;border:1px solid var(--line);}
  .bubble.assistant{background:#E7ECDF;margin-left:auto;}
  .bubble .m{display:block;font-size:10.5px;color:var(--muted);margin-top:2px;}
  .owner-code{font-family:"Zen Kaku Gothic New";font-size:20px;letter-spacing:.12em;border:1px dashed var(--line);padding:8px 14px;display:inline-block;margin:8px 0;}

  /* 地図 */
  .map-box{height:300px;border:1px solid var(--line);margin:8px 0 6px;background:#EEE;display:none;}
  .map-box.show{display:block;}
  .notes-list{font-size:12.5px;color:#5C5347;line-height:1.9;margin:20px 0 0;padding-left:1.2em;}
  .notes-list li{margin-bottom:4px;}

  .plans-in-room{margin-top:20px;border-top:1px solid var(--line);padding-top:16px;}
  .plans-in-room .ph{font-size:11px;letter-spacing:.06em;color:var(--muted);text-transform:uppercase;margin-bottom:10px;}
  .plan-mini-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:10px 0;border-bottom:1px solid var(--line);}
  .plan-mini-row:last-child{border-bottom:none;}
  .plan-mini-row .l b{font-size:13px;font-weight:500;display:block;margin-bottom:2px;}
  .plan-mini-row .l span{font-size:11.5px;color:var(--muted);}
  .plan-edit-panel{border:1px solid var(--line);padding:16px 18px;margin:0 0 14px;background:#fff;display:none;}
  .plan-edit-panel.open{display:block;}

  /* ---------------- labels ---------------- */
  .label-card{border:1px solid var(--line);padding:22px 24px;margin-bottom:16px;}
  .label-card .top{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;}
  .label-card h3{font-size:15px;font-weight:500;margin:0;}
  .label-card .s{font-size:12px;color:var(--muted);margin-bottom:14px;}
  .label-card .row{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;}
  .invite-url{
    flex:1;min-width:220px;font-size:12px;color:var(--muted);border:1px dashed var(--line);
    padding:9px 12px;border-radius:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
  }
  .small-btn{
    font-size:12px;border:1px solid var(--text);color:var(--text);background:transparent;
    padding:8px 16px;border-radius:2px;cursor:pointer;white-space:nowrap;
  }
  .small-btn:hover{background:var(--text);color:#fff;}

  /* ---------------- integrations ---------------- */
  .integ-card{border:1px solid var(--line);padding:24px 26px;margin-bottom:20px;}
  .integ-card .top{display:flex;align-items:center;justify-content:space-between;margin-bottom:4px;}
  .integ-card h3{font-size:15px;font-weight:500;margin:0;}
  .integ-card .s{font-size:12.5px;color:var(--muted);margin-bottom:18px;}
  .status-chip{font-size:11px;padding:4px 10px;border-radius:999px;}
  .status-chip.on{background:#E7ECDF;color:var(--ok);}
  .status-chip.off{background:#F1EFE7;color:var(--muted);}

  footer.admin-foot{padding:26px 40px;border-top:1px solid var(--line);font-size:11px;color:var(--muted-2);}
  .scan-overlay{position:fixed;inset:0;z-index:200;background:#0E0E0C;color:#fff;display:none;flex-direction:column;}
  .scan-overlay.show{display:flex;}
  .scan-bar{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 16px;border-bottom:1px solid rgba(255,255,255,.12);flex-wrap:wrap;}
  .scan-bar .t{font-size:14px;font-weight:500;letter-spacing:.04em;}
  .scan-bar .s{font-size:11px;opacity:.6;margin-top:2px;}
  .scan-bar .btns{display:flex;gap:8px;flex-wrap:wrap;align-items:center;}
  .scan-bar button,.scan-bar label.pick{
    font-family:inherit;font-size:12px;color:#fff;background:transparent;border:1px solid rgba(255,255,255,.4);
    padding:7px 14px;border-radius:2px;cursor:pointer;white-space:nowrap;
  }
  .scan-bar button:hover,.scan-bar label.pick:hover{border-color:#fff;}
  .scan-bar button.on{background:#fff;color:#0E0E0C;border-color:#fff;}
  .scan-bar label.pick input{display:none;}
  .scan-tools{display:flex;gap:8px;flex-wrap:wrap;align-items:center;}
  .scan-stage{position:relative;flex:1;min-height:0;touch-action:none;}
  .scan-stage canvas,.scan-stage model-viewer{position:absolute;inset:0;width:100%;height:100%;display:block;}
  .scan-stage model-viewer{background:#0E0E0C;--poster-color:transparent;}
  .scan-status{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);font-size:13px;opacity:.85;text-align:center;line-height:1.9;max-width:min(520px,86vw);pointer-events:none;}
  .scan-status.hidden{display:none;}
  .scan-help{position:absolute;left:16px;bottom:14px;right:16px;font-size:11px;opacity:.55;pointer-events:none;}
  .room-row.toggle-row{cursor:pointer;}
  .room-row.toggle-row:hover h3{text-decoration:underline;text-underline-offset:3px;}

  /* チェックボックスと文字の間をあける */
  .check-line,.field .check-line{display:flex;align-items:center;gap:10px;margin:0 0 8px;font-size:13px;color:var(--text);cursor:pointer;}
  .check-line input,.field .check-line input{width:auto;margin:0;flex:none;}
  .confirm-line{gap:10px;}
  .inline-link{color:var(--text);border-bottom:1px solid var(--muted-2);}
  .inline-link:hover{border-color:var(--text);}
  .integ-account{font-size:13px;margin:0 0 12px;color:var(--muted);}
  .integ-account b{color:var(--text);font-weight:500;}
  .steps{margin:10px 0 18px;padding-left:1.4em;font-size:12.5px;line-height:1.9;color:#4B463C;}
  .steps li{margin-bottom:4px;}
  /* AIエージェント（施設ごと） */
  .agent-status{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:14px;}
  .agent-usage{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:4px 0 6px;}
  .agent-usage div{border:1px solid var(--line);background:#fff;padding:12px 14px;}
  .agent-usage b{display:block;font-size:17px;font-weight:500;}
  .agent-usage span{font-size:11.5px;color:var(--muted);}
  @media (max-width:640px){.agent-usage{grid-template-columns:1fr;}}
  .guide-link{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:6px 0 14px;}
  .copy-row{display:flex;gap:10px;align-items:stretch;}
  .copy-row .invite-url{flex:1;margin:0;min-width:0;overflow-wrap:anywhere;}
  .secret-masked{display:flex;align-items:center;gap:14px;border:1px solid var(--line);background:#fff;padding:10px 12px;border-radius:2px;user-select:none;}
  .secret-masked .dots{letter-spacing:.15em;color:var(--muted);filter:blur(1px);}
