
:root{
  --page-bg:#f3eadf;
  --page-bg-2:#efe0d4;
  --panel:#fffaf2;
  --sakura:#e6aebc;
  --sakura-deep:#c98598;
  --ivory:#fff7e8;
  --wood:#6f4634;
  --wood-deep:#3f2920;
  --wood-soft:#8b5e49;
  --leaf:#6f7d61;
  --line:#cfb5a4;
  --line-soft:#e2cfc1;
  --tree-line:#8a5a44;
  --text:#2c211c;
  --muted:#715b50;
  --hover:#f8ebe8;
  --shadow:0 12px 26px rgba(63,41,32,.18);
  --radius:5px;
  --home-max-width:980px;
}

*{
  box-sizing:border-box;
}

html,
body{
  min-height:100%;
}

body{
  margin:0;
  color:var(--text);
  background:
    linear-gradient(135deg, var(--page-bg) 0%, var(--page-bg-2) 52%, #f8f0e8 100%);
  background-attachment:fixed;
  font-family:
    -apple-system,
    BlinkMacSystemFont,
    "Segoe UI",
    "Hiragino Sans",
    "Yu Gothic",
    "Meiryo",
    sans-serif;
}

body::before{
  content:"";
  position:fixed;
  inset:0;
  pointer-events:none;
  opacity:.22;
  background:
    linear-gradient(120deg, transparent 0 49%, rgba(95,59,45,.18) 49.3% 49.7%, transparent 50% 100%),
    repeating-linear-gradient(90deg, rgba(95,59,45,.08) 0 1px, transparent 1px 36px);
}

.home-shell{
  position:relative;
  width:100%;
  max-width:var(--home-max-width);
  margin:0 auto;
  padding:16px;
}

.home-frame{
  position:relative;
  width:100%;
  background:var(--panel);
  border:1px solid var(--line);
  border-radius:var(--radius);
  box-shadow:var(--shadow);
  overflow:hidden;
}

.topbar{
  position:relative;
  padding:16px 18px 14px;
  color:#fff7e8;
  background:linear-gradient(90deg, var(--wood-deep), var(--wood) 58%, var(--wood-soft));
  border-bottom:1px solid #2f1e17;
}

.topbar::after{
  content:"";
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  height:4px;
  background:linear-gradient(90deg, var(--sakura-deep), var(--ivory), var(--leaf), var(--sakura-deep));
  opacity:.86;
}

.topbar-layout{
  display:grid;
  grid-template-columns:minmax(0,1fr) 260px;
  column-gap:16px;
  row-gap:8px;
  align-items:start;
}

.brand-area{
  min-width:0;
}

.brand-wrap{
  display:flex;
  align-items:center;
  gap:10px;
  min-width:0;
}

.brand-logo{
  width:28px;
  height:28px;
  flex:0 0 auto;
  object-fit:contain;
  border-radius:4px;
  background:rgba(255,247,232,.14);
}

.brand-title-text{
  color:#fff7e8;
  font-size:22px;
  font-weight:800;
  letter-spacing:.075em;
  line-height:1.1;
}

.brand-sub-text{
  margin-top:5px;
  color:#f0d8cc;
  font-size:12px;
  font-weight:600;
  letter-spacing:.11em;
  line-height:1.2;
}

.login-panel,
.user-panel{
  width:100%;
  color:var(--wood-deep);
  background:rgba(255,247,232,.94);
  border:1px solid rgba(207,181,164,.95);
  border-radius:var(--radius);
  overflow:hidden;
}

.user-panel{
  width:190px;
  margin-left:auto;
}

.login-form{
  margin:0;
  padding:6px;
}

.login-table,
.user-table{
  width:100%;
  border-collapse:collapse;
  table-layout:fixed;
  font-size:12px;
  background:#fffaf2;
}

.login-table th,
.login-table td,
.user-table td{
  border:1px solid var(--line-soft);
  padding:4px;
  vertical-align:middle;
}

.user-table td{
  padding:3px 4px;
}

.login-table th{
  width:78px;
  color:#4d3328;
  background:#f0ded1;
  font-weight:700;
  text-align:left;
  white-space:nowrap;
}

.login-input{
  width:100%;
  height:24px;
  padding:2px 6px;
  color:var(--text);
  background:#fffef9;
  border:1px solid #bda18f;
  border-radius:2px;
  font-size:12px;
  outline:none;
}

.login-input:focus{
  border-color:var(--sakura-deep);
  box-shadow:0 0 0 2px rgba(201,133,152,.18);
}

.login-submit,
.logout-panel-button{
  width:100%;
  min-height:24px;
  color:#fff7e8;
  background:linear-gradient(180deg, #75503e, #55372b);
  border:1px solid #3f2920;
  border-radius:2px;
  font-size:11px;
  font-weight:800;
  letter-spacing:.06em;
  cursor:pointer;
}

.logout-panel-button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  text-decoration:none;
}

.login-submit:hover,
.logout-panel-button:hover{
  background:linear-gradient(180deg, #815945, #5f3b2d);
}

.login-submit:disabled{
  opacity:.65;
  cursor:default;
}

.login-msg{
  min-height:1.2em;
  margin-top:4px;
  color:#b42336;
  font-size:11px;
  line-height:1.2;
}

.login-user-text{
  color:#4d3328;
  background:#fffaf2;
  font-size:10px;
  font-weight:500;
  line-height:1.2;
  text-align:right;
  white-space:nowrap;
}

.hidden{
  display:none !important;
}

.home-main{
  position:relative;
  padding:14px;
  background:
    linear-gradient(180deg, rgba(255,247,232,.76), rgba(248,238,229,.96)),
    repeating-linear-gradient(0deg, rgba(207,181,164,.28) 0 1px, transparent 1px 36px);
}

.mobile-app-band{
  display:grid;
  grid-template-columns:34px minmax(0,1fr) auto;
  align-items:center;
  gap:9px;
  min-height:48px;
  margin:0 0 12px;
  padding:7px 10px;
  color:#fff;
  text-decoration:none;
  background:linear-gradient(90deg, #315f49, #4f7b61);
  border:1px solid #284d3c;
  border-radius:var(--radius);
  box-shadow:0 7px 16px rgba(47,111,82,.18);
}

.mobile-app-band:hover{
  background:linear-gradient(90deg, #386d54, #5a896c);
}

.mobile-app-band-icon{
  display:grid;
  place-items:center;
  width:30px;
  height:30px;
  border-radius:50%;
  color:#315f49;
  background:#f2f7ef;
  font-size:14px;
  font-weight:900;
}

.mobile-app-band-copy{
  display:grid;
  gap:2px;
  min-width:0;
}

.mobile-app-band-title{
  font-size:14px;
  font-weight:900;
  line-height:1.2;
}

.mobile-app-band-note{
  color:#edf6f0;
  font-size:10px;
  line-height:1.35;
}

.mobile-app-band-arrow{
  font-size:22px;
  line-height:1;
}

.menu-window-grid{
  display:grid;
  grid-template-columns:minmax(0,1.35fr) minmax(250px,.65fr);
  gap:14px;
  align-items:start;
}
.brand-wrap.system-warp-enabled{cursor:pointer}
.brand-wrap.system-warp-enabled:focus-visible{
  outline:2px solid #eef4ff;
  outline-offset:5px;
  border-radius:4px;
}

.system-menu-stack{
  min-width:0;
}

.direct-contact-band{
  display:grid;
  grid-template-columns:30px minmax(0,1fr) auto;
  align-items:center;
  gap:8px;
  min-height:44px;
  margin-top:8px;
  padding:6px 10px;
  color:#fff8ee;
  text-decoration:none;
  background:linear-gradient(90deg, #704532, #895c44);
  border:1px solid #563224;
  border-radius:var(--radius);
  box-shadow:0 7px 16px rgba(63,41,32,.16);
}

.direct-contact-band:hover{
  background:linear-gradient(90deg, #7d4d37, #96674d);
}

.direct-contact-band-icon{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:27px;
  height:27px;
  color:#5f3b2d;
  background:#f8dfc8;
  border-radius:50%;
  font-size:14px;
}

.direct-contact-band-text{
  min-width:0;
}

.direct-contact-band-title{
  display:block;
  font-size:13px;
  font-weight:800;
  letter-spacing:.03em;
}

.direct-contact-band-note{
  display:block;
  margin-top:0;
  color:#ead8ca;
  font-size:9px;
  line-height:1.35;
}

.direct-contact-band-arrow{
  color:#f6d8bf;
  font-size:18px;
  line-height:1;
}

.menu-panel{
  position:relative;
  min-width:0;
  background:var(--panel);
  border:1px solid var(--line);
  border-radius:var(--radius);
  box-shadow:0 8px 18px rgba(63,41,32,.1);
  overflow:hidden;
}

.menu-panel-title{
  display:flex;
  align-items:center;
  justify-content:space-between;
  min-height:36px;
  padding:8px 10px;
  color:#fff7e8;
  background:linear-gradient(90deg, #5f3b2d, #765240);
  border-bottom:1px solid #3f2920;
  font-size:13px;
  font-weight:800;
  letter-spacing:.05em;
}

.menu-panel-title::before{
  content:"";
  flex:0 0 auto;
  width:8px;
  height:8px;
  margin-right:9px;
  border-radius:50%;
  background:#eab8c3;
  box-shadow:
    7px 0 0 #d89aaa,
    3px 6px 0 #f0c9d1,
    -3px 4px 0 #dca3b1;
}

.menu-panel-title span{
  margin-right:auto;
}

.menu-panel-title small{
  color:#f0d8cc;
  font-size:10px;
  font-weight:500;
  letter-spacing:.04em;
}

.menu-panel-body{
  padding:9px;
  background:linear-gradient(180deg, #fffaf2, #f9ede3);
}

.tree-menu{
  display:flex;
  flex-direction:column;
  gap:6px;
}

.tree-group-block,
.tree-branch-block,
.report-table-block{
  display:flex;
  flex-direction:column;
}

.report-group-row{
  border-bottom-left-radius:0;
  border-bottom-right-radius:0;
}

.report-latest-row{
  position:relative;
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:center;
  min-height:58px;
  margin:-1px 0 4px 0;
  padding:8px 10px;
  color:var(--text);
  text-decoration:none;
  background:#fffdf8;
  border:1px solid var(--line-soft);
  border-top:none;
  border-radius:0 0 3px 3px;
}

.report-latest-row:hover{
  background:var(--hover);
  border-color:var(--sakura-deep);
}

.report-tree-mark{
  display:none;
}

.report-latest-main{
  display:flex;
  flex-direction:column;
  min-width:0;
  gap:4px;
}

.report-latest-title{
  display:-webkit-box;
  min-width:0;
  overflow:hidden;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:3;
  white-space:normal;
  text-overflow:ellipsis;
  font-size:12px;
  font-weight:500;
  line-height:1.45;
}

.report-latest-meta{
  display:block;
  min-width:0;
  overflow:hidden;
  white-space:nowrap;
  text-overflow:ellipsis;
  color:var(--muted);
  font-size:10px;
  line-height:1.2;
}

.report-latest-arrow{
  color:var(--wood-soft);
  font-size:17px;
  line-height:1;
  margin-left:8px;
}

.tree-row{
  position:relative;
  display:grid;
  grid-template-columns:34px minmax(0,1fr) auto;
  align-items:center;
  min-height:34px;
  padding:4px 8px;
  color:var(--text);
  text-decoration:none;
  border:1px solid var(--line-soft);
  border-radius:3px;
  background:#fffaf2;
  font-size:13px;
  line-height:1.3;
}

button.tree-row{
  width:100%;
  font:inherit;
  text-align:left;
  cursor:pointer;
}

.tree-row:hover{
  background:var(--hover);
  border-color:var(--sakura-deep);
}

.tree-row.tree-link::after{
  content:"›";
  grid-column:3;
  color:var(--wood-soft);
  font-size:17px;
  line-height:1;
}

.tree-row.group-row{
  z-index:2;
  margin-top:2px;
  color:var(--wood-deep);
  background:linear-gradient(90deg, #efe0d4, #f7e6e7);
  border-color:var(--line);
  font-weight:800;
}

.tree-row.depth-1{
  margin-left:0;
  grid-template-columns:46px 34px minmax(0,1fr) auto;
  min-height:31px;
  padding:3px 8px;
  background:#fffdf8;
  border-color:#ead9ce;
  border-top:none;
}

.tree-row.depth-1.is-compact{
  min-height:22px;
  padding:2px 8px;
  font-size:11px;
  color:var(--muted);
  background:#fffefb;
}

.tree-row.depth-1.is-compact .tree-code{
  height:18px;
  min-width:24px;
}

.tree-row.is-disabled{
  cursor:not-allowed;
  color:#9a867b;
  background:#f4eee8;
  border-color:#e3d7ce;
}

.tree-row.is-disabled:hover{
  background:#f4eee8;
  border-color:#e3d7ce;
}

.tree-row.is-disabled .tree-label-main{
  text-decoration:line-through;
  text-decoration-thickness:2px;
}

.tree-row.depth-1.is-separate{
  margin-top:8px;
  border-top:1px solid var(--line);
  border-radius:4px;
  background:#fff7e8;
}

.tree-row.depth-1::before{
  content:"├──";
  grid-column:1;
  color:var(--wood-soft);
  font-family:"Consolas","Courier New",monospace;
  font-size:13px;
  font-weight:700;
  line-height:1;
  white-space:pre;
}

.tree-row.depth-1.is-last::before{
  content:"└──";
}

.tree-row.depth-1.has-children{
  border-bottom-left-radius:0;
  border-bottom-right-radius:0;
  font-weight:800;
  background:#fffaf2;
}

.tree-row.depth-2{
  margin-left:46px;
  grid-template-columns:34px 30px minmax(0,1fr) auto;
  min-height:28px;
  padding:2px 8px;
  color:#4d3328;
  background:#fffefb;
  border-color:#f0e2d8;
  border-top:none;
  font-size:12px;
}

.tree-row.depth-2::before{
  content:"▷";
  grid-column:1;
  color:var(--wood-soft);
  font-size:12px;
  font-weight:900;
  line-height:1;
}

.tree-row.depth-2 .tree-code{
  grid-column:2;
  width:22px;
  min-width:22px;
  height:22px;
  font-size:12px;
  font-weight:900;
  color:#6f4634;
}

.tree-row.depth-2 .tree-label{
  grid-column:3;
}

.tree-row.depth-2.tree-link::after{
  grid-column:4;
}

.tree-children{
  position:relative;
  display:flex;
  flex-direction:column;
  gap:0;
  margin:-1px 0 4px 0;
  padding:4px 8px 6px 8px;
  background:#fffdf8;
  border:1px solid var(--line-soft);
  border-top:none;
  border-radius:0 0 3px 3px;
  overflow:hidden;
  max-height:420px;
  opacity:1;
  transform:translateY(0);
  transition:
    max-height .24s ease,
    opacity .18s ease,
    padding-top .24s ease,
    padding-bottom .24s ease,
    margin-bottom .24s ease,
    transform .24s ease;
}

.tree-children::before{
  content:"│";
  position:absolute;
  left:17px;
  top:4px;
  bottom:12px;
  color:var(--wood-soft);
  font-family:"Consolas","Courier New",monospace;
  font-size:14px;
  font-weight:700;
  line-height:31px;
  opacity:.78;
  white-space:pre;
}

.tree-children.is-collapsed{
  max-height:0;
  opacity:0;
  padding-top:0;
  padding-bottom:0;
  margin-bottom:0;
  transform:translateY(-4px);
  pointer-events:none;
}

.tree-label{
  grid-column:2;
  min-width:0;
  overflow:hidden;
  white-space:nowrap;
  text-overflow:ellipsis;
}

.tree-row.depth-1 .tree-label{
  grid-column:3;
}

.tree-label-main,
.tree-label-sub{
  display:block;
  min-width:0;
  overflow:hidden;
  white-space:nowrap;
  text-overflow:ellipsis;
}

.tree-label-sub{
  margin-top:1px;
  color:var(--muted);
  font-size:10px;
  font-weight:500;
}

.tree-code{
  grid-column:1;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:24px;
  min-width:24px;
  height:24px;
  margin-right:8px;
  color:#3f2920;
  background:transparent;
  border:none;
  border-radius:0;
  font-size:16px;
  font-weight:400;
  letter-spacing:0;
}

.tree-row.depth-1 .tree-code{
  grid-column:2;
  width:24px;
  min-width:24px;
  background:transparent;
  font-size:16px;
}

.tree-row.depth-1.tree-link::after{
  grid-column:4;
}

.tree-row.depth-1.tree-split-row{
  grid-template-columns:46px 34px minmax(0,1fr);
}

.tree-split-links{
  grid-column:3;
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:5px;
  min-width:0;
}

.tree-split-link{
  display:flex;
  align-items:center;
  justify-content:space-between;
  min-width:0;
  min-height:25px;
  padding:3px 7px;
  color:var(--text);
  text-decoration:none;
  background:#fffaf2;
  border:1px solid #ead9ce;
  border-radius:3px;
  font-size:12px;
  font-weight:700;
}

.tree-split-link::after{
  content:"›";
  flex:0 0 auto;
  margin-left:4px;
  color:var(--wood-soft);
  font-size:15px;
  line-height:1;
}

.tree-split-link:hover{
  background:var(--hover);
  border-color:var(--sakura-deep);
}

.tree-toggle{
  grid-column:3;
  flex:0 0 auto;
  width:26px;
  height:24px;
  padding:0;
  color:#3f2920;
  background:#fffaf2;
  border:1px solid #c8a994;
  border-radius:2px;
  font-size:15px;
  font-weight:700;
  line-height:1;
  cursor:pointer;
}

.tree-toggle:hover{
  background:#f8ebe8;
}

.menu-list{
  display:flex;
  flex-direction:column;
  gap:4px;
}

.incident-home-panel{
  margin-top:14px;
}

.incident-home-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
}

.incident-home-actions{
  display:flex;
  gap:6px;
}

.incident-small-button{
  min-height:24px;
  padding:3px 8px;
  color:#fff7e8;
  background:#5f3b2d;
  border:1px solid #3f2920;
  border-radius:2px;
  font-size:11px;
  font-weight:800;
  cursor:pointer;
}

.incident-small-button.secondary{
  color:#3f2920;
  background:#fffaf2;
  border-color:#c8a994;
}

.incident-list-table{
  width:100%;
  border-collapse:collapse;
  table-layout:fixed;
  font-size:12px;
  background:#fffdf8;
}

.incident-list-table th,
.incident-list-table td{
  border:1px solid var(--line-soft);
  padding:6px 7px;
  vertical-align:middle;
  overflow:hidden;
  white-space:nowrap;
  text-overflow:ellipsis;
}

.incident-list-table th{
  color:#4d3328;
  background:#f0ded1;
  text-align:left;
  font-weight:800;
}

.incident-list-table tbody tr{
  cursor:pointer;
}

.incident-list-table tbody tr:hover{
  background:var(--hover);
}

.incident-chip{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:50px;
  min-height:20px;
  padding:2px 7px;
  border-radius:2px;
  color:#58301f;
  background:#f6e0b9;
  border:1px solid #d6b676;
  font-size:11px;
  font-weight:800;
}

.incident-chip.accident{
  color:#7b1d1d;
  background:#f7d6d0;
  border-color:#d59a90;
}

.incident-status-chip{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:58px;
  min-height:20px;
  padding:2px 7px;
  border-radius:2px;
  color:#7b1d1d;
  background:#fff1e8;
  border:1px solid #e3c5ad;
  font-size:11px;
  font-weight:800;
}

.incident-status-chip.done{
  color:#24562d;
  background:#e5f3df;
  border-color:#a4c494;
}

.incident-empty{
  padding:10px;
  color:var(--muted);
  border:1px solid var(--line-soft);
  background:#fffdf8;
  font-size:12px;
}

.incident-modal{
  position:fixed;
  inset:0;
  z-index:100;
  display:none;
  background:rgba(44,33,28,.68);
  padding:18px;
}

.incident-modal.show{
  display:flex;
  flex-direction:column;
}

.incident-modal-bar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  width:min(1040px, 100%);
  margin:0 auto 8px;
  color:#fff7e8;
}

.incident-modal-title{
  font-size:13px;
  font-weight:800;
}

.incident-modal-frame{
  flex:1 1 auto;
  width:min(1040px, 100%);
  min-height:0;
  margin:0 auto;
  background:#f6f7f9;
  border:1px solid #2f1e17;
  border-radius:3px;
  box-shadow:0 18px 42px rgba(0,0,0,.28);
}

.incident-inline-panel{
  display:none;
  margin-top:14px;
}

.incident-inline-panel.show{
  display:block;
}

.incident-inline-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
}

.incident-inline-frame{
  width:100%;
  height:min(980px, calc(100vh - 110px));
  min-height:680px;
  border:1px solid var(--line);
  border-radius:3px;
  background:#f6f7f9;
}

.menu-item{
  display:grid;
  grid-template-columns:34px minmax(0,1fr) auto;
  align-items:center;
  min-height:34px;
  padding:4px 8px;
  color:var(--text);
  text-decoration:none;
  background:#fffaf2;
  border:1px solid var(--line-soft);
  border-radius:3px;
  font-size:13px;
}

.menu-item:hover{
  background:var(--hover);
  border-color:var(--sakura-deep);
}

.menu-code{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:24px;
  height:24px;
  color:#3f2920;
  background:transparent;
  border:none;
  border-radius:0;
  font-size:16px;
  font-weight:400;
}

.menu-item-title{
  margin:0;
  min-width:0;
  overflow:hidden;
  white-space:nowrap;
  text-overflow:ellipsis;
}

.menu-item-arrow{
  color:var(--wood-soft);
  font-size:17px;
  line-height:1;
}

.home-footer{
  padding:9px 12px;
  color:#715b50;
  text-align:right;
  font-size:11px;
  letter-spacing:.08em;
  background:#efe0d4;
  border-top:1px solid var(--line);
}

@media (max-width:820px){
  .topbar-layout{
    grid-template-columns:1fr;
  }

  .login-panel,
  .user-panel{
    max-width:360px;
  }
}

@media (max-width:760px){
  .home-shell{
    padding:10px;
  }

  .topbar{
    padding:14px 12px 13px;
  }

  .brand-logo{
    width:26px;
    height:26px;
  }

  .brand-title-text{
    font-size:19px;
  }

  .home-main{
    padding:10px;
  }

  .menu-window-grid{
    grid-template-columns:1fr;
    gap:12px;
  }

  .tree-row{
    grid-template-columns:34px minmax(0,1fr) auto;
  }

  .tree-row.depth-1{
    margin-left:0;
    grid-template-columns:42px 34px minmax(0,1fr) auto;
  }

  .tree-row.depth-1.tree-split-row{
    grid-template-columns:42px 34px minmax(0,1fr);
  }

  .tree-code{
    width:24px;
    min-width:24px;
  }

  .tree-row.depth-1 .tree-code{
    width:24px;
    min-width:24px;
  }
}

[hidden]{display:none!important} .common-facility-links{display:flex;gap:12px;flex-wrap:wrap;margin-top:8px}.common-facility-links button{font-family:inherit;font-size:12px;line-height:1.5;color:inherit;background:none;border:0;border-radius:0;padding:0;cursor:pointer}.common-facility-links button:hover:not(:disabled){text-decoration:underline}.common-facility-links button:disabled{opacity:.6;cursor:default}.common-index-message{padding:16px}

.topbar-layout{grid-template-columns:minmax(0,1fr) 330px}.user-panel{width:330px;max-width:100%}@media(max-width:980px){.topbar-layout{grid-template-columns:1fr}.user-panel{width:100%}}
