:root{--bg:#1a1a1a;--bg-elev:#212121;--bg-elev-2:#282828;--line:#363636;--line-soft:#2a2a2a;--fg:#f0efed;--fg-muted:#9b9894;--fg-faint:#6a6763;--accent-bg:#fff;--accent-fg:#141414;--danger:#c4584b;--danger-fg:#e58c80;--danger-bg:#c4584b24;--warn:#b9964f;--warn-bg:#b9964f21;--c1:#8a6f4e;--c2:#6d8068;--c3:#c9b892;--c4:#8a8783;--c5:#5f7b7c;--c6:#a5714f;--c7:#7c7a4d;--c8:#7a6e7d;--c9:#d7cdb6;--c10:#4e6352;--font-display:"Playfair Display", "Hiragino Mincho ProN", serif;--font-body:"Inter", "Noto Sans JP", -apple-system, "Hiragino Sans", sans-serif;--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:24px;--sp-6:32px;--sp-7:48px;--sp-8:72px;--r-sm:2px;--r-md:4px;--r-pill:999px;--ease:cubic-bezier(.22, .61, .36, 1);--dur:.42s}@media (prefers-reduced-motion:reduce){:root{--dur:1ms}}*,:before,:after{box-sizing:border-box}body{background:var(--bg);color:var(--fg);font-family:var(--font-body);-webkit-font-smoothing:antialiased;margin:0;font-size:14px;line-height:1.7}.ems-wrap{max-width:1180px;margin:0 auto;padding-inline:20px}.ems-section{padding-block:var(--sp-8);border-top:1px solid var(--line-soft)}.ems-section:first-of-type{border-top:0}.display{font-family:var(--font-display);letter-spacing:-.02em;margin:0;font-size:clamp(2.2rem,6vw,4rem);font-weight:500;line-height:1.08}.heading{font-family:var(--font-display);letter-spacing:-.01em;margin:0;font-size:clamp(1.5rem,3.2vw,2.1rem);font-weight:500;line-height:1.2}.heading-ja{font-family:var(--font-body);letter-spacing:.02em;margin:0;font-size:1rem;font-weight:600}.sec-num{font-family:var(--font-body);letter-spacing:.22em;color:var(--fg-faint);margin-bottom:var(--sp-4);font-size:11px;display:block}.label{font-family:var(--font-body);letter-spacing:.2em;text-transform:uppercase;color:var(--fg-muted);font-size:10px}.toc{margin:0;padding:0;list-style:none}.toc li{border-bottom:1px solid var(--line-soft)}.toc a{align-items:baseline;gap:var(--sp-5);padding-block:var(--sp-4);color:var(--fg);transition:color var(--dur) var(--ease), padding-left var(--dur) var(--ease);text-decoration:none;display:flex}.toc a:hover{color:var(--fg-muted);padding-left:var(--sp-2)}.toc .n{font-family:var(--font-body);letter-spacing:.18em;color:var(--fg-faint);min-width:28px;font-size:11px}.toc .t{font-family:var(--font-display);letter-spacing:-.01em;font-size:1.35rem}.btn{justify-content:center;align-items:center;gap:var(--sp-2);border-radius:var(--r-pill);min-height:46px;font-family:var(--font-display);letter-spacing:.02em;cursor:pointer;white-space:nowrap;transition:background var(--dur) var(--ease), color var(--dur) var(--ease), border-color var(--dur) var(--ease);border:1px solid #0000;padding:0 28px;font-size:15px;text-decoration:none;display:inline-flex}.btn-primary{background:var(--accent-bg);color:var(--accent-fg)}.btn-primary:hover{background:#d8d5d0}.btn-ghost{color:var(--fg);border-color:var(--line);background:0 0}.btn-ghost:hover{border-color:var(--fg-muted);background:var(--bg-elev)}.btn-sm{min-height:36px;padding:0 18px;font-size:13px}.btn-danger{color:var(--danger-fg);background:0 0;border-color:#c4584b73}.btn-danger:hover{background:var(--danger-bg)}.link{color:var(--fg);letter-spacing:.04em;border-bottom:1px solid var(--fg-faint);transition:border-color var(--dur) var(--ease), color var(--dur) var(--ease);padding-bottom:2px;font-size:13px;text-decoration:none}.link:hover{color:var(--fg-muted);border-color:var(--fg-muted)}.card{background:var(--bg-elev);border:1px solid var(--line-soft);border-radius:var(--r-sm);padding:var(--sp-6)}.stat-value{font-family:var(--font-display);letter-spacing:-.02em;font-size:clamp(2.4rem,5vw,3.4rem);font-weight:500;line-height:1}.stat-unit{font-family:var(--font-body);color:var(--fg-muted);margin-left:6px;font-size:13px}.table-scroll{overflow-x:auto}.table{border-collapse:collapse;width:100%;min-width:880px}.table th{text-align:left;letter-spacing:.18em;text-transform:uppercase;color:var(--fg-muted);padding:var(--sp-3) var(--sp-4);border-bottom:1px solid var(--line);white-space:nowrap;font-size:10px;font-weight:500}.table td{padding:var(--sp-4);border-bottom:1px solid var(--line-soft);vertical-align:middle}.table tbody tr{transition:background var(--dur) var(--ease)}.table tbody tr:hover{background:var(--bg-elev)}.mono{font-variant-numeric:tabular-nums;letter-spacing:.04em;white-space:nowrap}.nowrap{white-space:nowrap}.td-sub{color:var(--fg-muted);font-size:12px}.badge{border-radius:var(--r-pill);letter-spacing:.08em;white-space:nowrap;border:1px solid var(--line);color:var(--fg-muted);align-items:center;gap:6px;padding:3px 12px;font-size:11px;display:inline-flex}.badge:before{content:"";background:currentColor;border-radius:50%;width:5px;height:5px}.badge-ok{color:var(--fg)}.badge-alert{color:var(--danger-fg);background:var(--danger-bg);border-color:#c4584b66}.badge-retired{color:var(--fg-faint)}.missing{border-radius:var(--r-pill);letter-spacing:.08em;color:var(--warn);background:var(--warn-bg);border:1px solid #b9964f4d;align-items:center;padding:2px 10px;font-size:11px;display:inline-flex}.input,.select{background:var(--bg-elev-2);width:100%;min-height:40px;color:var(--fg);border:1px solid var(--line);border-radius:var(--r-md);font-family:var(--font-body);transition:border-color var(--dur) var(--ease);padding:0 12px;font-size:14px}.input::placeholder{color:var(--fg-faint)}.input:focus,.select:focus{border-color:var(--fg-muted);outline:none}.input-inline{border-color:#0000;border-bottom:1px dashed var(--line);background:0 0;border-radius:0;min-height:32px;padding:0 4px}.input-inline:hover{border-bottom-color:var(--fg-muted)}.input-inline:focus{background:var(--bg-elev-2);border-color:var(--fg-muted);border-radius:var(--r-md)}.field-label{letter-spacing:.14em;text-transform:uppercase;color:var(--fg-muted);margin-bottom:var(--sp-2);font-size:11px;display:block}.filters{gap:var(--sp-2);flex-wrap:wrap;display:flex}.chip{border:1px solid var(--line);border-radius:var(--r-pill);min-height:38px;color:var(--fg-muted);letter-spacing:.04em;cursor:pointer;transition:all var(--dur) var(--ease);background:0 0;align-items:center;padding:0 18px;font-size:13px;display:inline-flex}.chip:hover{color:var(--fg);border-color:var(--fg-faint)}.chip[aria-selected=true]{background:var(--accent-bg);color:var(--accent-fg);border-color:var(--accent-bg)}.legend{gap:var(--sp-3);margin:0;padding:0;list-style:none;display:grid}.legend li{align-items:center;gap:var(--sp-3);font-size:13px;display:flex}.legend .sw{border-radius:2px;flex:none;width:10px;height:10px}.legend .nm{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.legend .qt{color:var(--fg-muted);font-variant-numeric:tabular-nums}.ems-header{justify-content:space-between;align-items:center;gap:var(--sp-5);padding-block:var(--sp-5);border-bottom:1px solid var(--line-soft);display:flex}.ems-logo{font-family:var(--font-display);letter-spacing:.16em;font-size:15px}.ems-nav{gap:var(--sp-5);flex-wrap:wrap;display:flex}.ems-nav a{color:var(--fg-muted);letter-spacing:.1em;transition:color var(--dur) var(--ease);font-size:12px;text-decoration:none}.ems-nav a:hover,.ems-nav a[aria-current=page]{color:var(--fg)}.fade-in{animation:fade var(--dur) var(--ease) both}@keyframes fade{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.draw circle{animation:draw .9s var(--ease) both}@keyframes draw{0%{stroke-dasharray:0 440}}.grid{gap:var(--sp-5);display:grid}.grid-3{grid-template-columns:repeat(3,1fr)}.grid-2{grid-template-columns:repeat(2,1fr)}@media (width<=860px){.grid-3,.grid-2{grid-template-columns:1fr}}@media (width<=720px){.ems-header{align-items:flex-start;gap:var(--sp-4);flex-direction:column}.ems-nav{gap:var(--sp-4);width:100%}.ems-section{padding-block:var(--sp-7)}.card{padding:var(--sp-5)}}.ems-nav a.is-active{color:var(--fg)}.toast{background:var(--bg-elev-2);color:var(--fg);border:1px solid var(--line);border-radius:var(--r-pill);letter-spacing:.04em;z-index:50;animation:fade var(--dur) var(--ease) both;max-width:calc(100vw - 40px);padding:10px 24px;font-size:13px;position:fixed;bottom:28px;left:50%;transform:translate(-50%)}.toast-error{color:var(--danger-fg);border-color:#c4584b80}.row-edit{align-items:center;gap:var(--sp-3);flex-wrap:wrap;display:flex}.row-actions{gap:var(--sp-2);margin-left:auto;display:flex}.muted{color:var(--fg-muted)}.faint{color:var(--fg-faint)}.stack{gap:var(--sp-5);display:grid}.inline-form{gap:var(--sp-3);flex-wrap:wrap;align-items:flex-end;display:flex}.inline-form .input,.inline-form .select{flex:180px;width:auto;min-width:180px}.is-inactive{opacity:.45}.empty{color:var(--fg-faint);padding:var(--sp-5) 0}.modal-back{padding:var(--sp-5);z-index:40;animation:fade .2s var(--ease) both;background:#000000a8;justify-content:center;align-items:flex-start;display:flex;position:fixed;inset:0;overflow-y:auto}.modal{background:var(--bg-elev);border:1px solid var(--line);border-radius:var(--r-sm);width:100%;max-width:620px;margin-block:var(--sp-6);padding:var(--sp-6)}.modal-head{justify-content:space-between;align-items:flex-start;gap:var(--sp-4);margin-bottom:var(--sp-5);display:flex}.modal-close{color:var(--fg-muted);cursor:pointer;background:0 0;border:0;padding:4px 8px;font-size:22px;line-height:1}.modal-close:hover{color:var(--fg)}.form-grid{gap:var(--sp-4);grid-template-columns:1fr 1fr;display:grid}.form-grid .full{grid-column:1/-1}@media (width<=620px){.form-grid{grid-template-columns:1fr}}.photos{gap:var(--sp-3);flex-wrap:wrap;display:flex}.photo{border-radius:var(--r-md);border:1px solid var(--line);background:var(--bg-elev-2);width:92px;height:92px;position:relative;overflow:hidden}.photo img{object-fit:cover;width:100%;height:100%;display:block}.photo button{cursor:pointer;color:#fff;background:#000000b8;border:0;border-radius:50%;width:24px;height:24px;font-size:14px;line-height:1;position:absolute;top:4px;right:4px}.photo-add{border-radius:var(--r-md);border:1px dashed var(--line);width:92px;height:92px;color:var(--fg-muted);cursor:pointer;background:0 0;justify-content:center;align-items:center;font-size:12px;display:flex}.photo-add:hover{border-color:var(--fg-muted);color:var(--fg)}.notice{gap:var(--sp-4);background:var(--warn-bg);border-radius:var(--r-sm);padding:var(--sp-4) var(--sp-5);border:1px solid #b9964f4d;flex-wrap:wrap;align-items:center;font-size:13px;display:flex}.notice strong{color:var(--warn)}.actions-bar{gap:var(--sp-3);flex-wrap:wrap;align-items:center;display:flex}@supports (padding:env(safe-area-inset-top)){body{padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom)}.ems-wrap{padding-left:max(20px, env(safe-area-inset-left));padding-right:max(20px, env(safe-area-inset-right))}.toast{bottom:calc(28px + env(safe-area-inset-bottom))}}
