:root{
  --ref-bg:#020817;
  --ref-panel:#07162a;
  --ref-panel-2:#0a1c32;
  --ref-text:#edf6ff;
  --ref-muted:#91a4bc;
  --ref-line:rgba(118,164,220,.18);
  --ref-cyan:#29dcff;
  --ref-blue:#326cff;
  --ref-violet:#7c4dff;
  --ref-magenta:#d83cff;
  --ref-success:#55e6c1;
  --ref-shadow:0 22px 70px rgba(0,0,0,.34);
  --ref-max:1440px;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth;background:var(--ref-bg)}
body.reference-page{
  margin:0!important;padding:0!important;min-height:100vh;overflow-x:hidden;
  color:var(--ref-text)!important;
  font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans JP","Yu Gothic UI",Meiryo,sans-serif!important;
  line-height:1.7;
  background:
    radial-gradient(circle at 9% 8%,rgba(0,217,255,.13),transparent 27rem),
    radial-gradient(circle at 88% 13%,rgba(124,77,255,.14),transparent 30rem),
    linear-gradient(180deg,#020817 0%,#041021 48%,#020817 100%)!important;
}
body.reference-page::before{
  content:"";position:fixed;z-index:-1;inset:0;pointer-events:none;opacity:.44;
  background-image:
    linear-gradient(155deg,transparent 0 48%,rgba(42,112,190,.12) 49%,transparent 50%),
    linear-gradient(25deg,transparent 0 48%,rgba(124,77,255,.09) 49%,transparent 50%);
  background-size:190px 120px,220px 150px;
  -webkit-mask-image:linear-gradient(to bottom,#000,transparent 78%);mask-image:linear-gradient(to bottom,#000,transparent 78%);
}
.reference-page a{color:inherit}.reference-page img{max-width:100%}

/* Header */
.ref-header{
  position:sticky;z-index:80;top:0;border-bottom:1px solid var(--ref-line);
  background:rgba(2,8,23,.9);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);
}
.ref-header-inner{width:min(calc(100% - 40px),1240px);height:74px;margin:auto;display:flex;align-items:center;gap:32px}
.ref-brand{display:flex;align-items:center;gap:10px;text-decoration:none;white-space:nowrap}
.ref-brand img{width:46px;height:46px;object-fit:contain;filter:drop-shadow(0 0 14px rgba(0,217,255,.18))}
.ref-brand-name{display:flex;align-items:baseline;font-size:18px;font-weight:850;letter-spacing:.02em}
.ref-brand-name span{background:linear-gradient(90deg,#f3f8ff 0 58%,#7c4dff 72%,#e645ff);background-clip:text;-webkit-background-clip:text;color:transparent}
.ref-nav{margin-left:auto;display:flex;align-items:center;gap:7px}
.ref-nav a{position:relative;padding:10px 13px;border-radius:9px;color:#b8c7da;text-decoration:none;font-size:12px;font-weight:700}
.ref-nav a:hover,.ref-nav a.is-current{color:#fff;background:rgba(50,108,255,.09)}
.ref-nav a.is-current::after{content:"";position:absolute;left:14px;right:14px;bottom:3px;height:2px;border-radius:2px;background:linear-gradient(90deg,var(--ref-cyan),var(--ref-magenta))}
.ref-menu-toggle{display:none;margin-left:auto;width:42px;height:42px;border:0;background:transparent;cursor:pointer}
.ref-menu-toggle span{display:block;width:22px;height:2px;margin:5px auto;border-radius:2px;background:#dceaff}

/* Page hero */
.reference-page .container.page-shell,.page-shell{
  width:min(calc(100% - 40px),var(--ref-max))!important;max-width:var(--ref-max)!important;
  min-height:0;margin:0 auto!important;padding:42px 0 0!important;color:var(--ref-text)!important;
  background:transparent!important;border-radius:0!important;box-shadow:none!important;
}
.page-hero{
  position:relative;overflow:hidden;margin-bottom:18px;padding:31px 32px;border:1px solid var(--ref-line);border-radius:18px;
  background:linear-gradient(135deg,rgba(8,31,54,.94),rgba(11,16,48,.9));box-shadow:var(--ref-shadow);
}
.page-hero::before{content:"";position:absolute;inset:0;background:linear-gradient(110deg,rgba(0,217,255,.04),transparent 42%,rgba(124,77,255,.09));pointer-events:none}
.page-hero::after{content:"";position:absolute;width:340px;height:340px;right:-110px;top:-180px;border-radius:50%;background:radial-gradient(circle,rgba(124,77,255,.24),transparent 66%);pointer-events:none}
.page-kicker{position:relative;z-index:1;display:flex;align-items:center;gap:10px;margin-bottom:8px;color:#55dfff;font-size:10px;font-weight:850;letter-spacing:.2em}
.page-kicker::before{content:"";width:24px;height:1px;background:var(--ref-cyan)}
.reference-page .page-hero h1{position:relative;z-index:1;margin:0!important;padding:0!important;background:none!important;box-shadow:none!important;color:#fff!important;text-align:left!important;font-size:clamp(28px,4vw,46px)!important;line-height:1.25;letter-spacing:-.025em;animation:none!important}
.page-hero h1 span{background:linear-gradient(90deg,var(--ref-cyan),#73a6ff 52%,#df4bff);background-clip:text;-webkit-background-clip:text;color:transparent}
.page-hero p{position:relative;z-index:1;max-width:760px;margin:10px 0 0;color:#aebed1;font-size:14px}
.page-actions{position:absolute;z-index:2;right:28px;bottom:28px;display:flex;gap:8px}
.back-link,.page-action{display:inline-flex!important;align-items:center;justify-content:center;gap:7px;margin:0!important;padding:10px 14px!important;border:1px solid rgba(0,217,255,.25)!important;border-radius:10px!important;background:rgba(0,217,255,.055)!important;color:#d9f7ff!important;text-decoration:none!important;font-size:11px!important;font-weight:750!important;box-shadow:none!important;transition:.18s ease!important}
.back-link:hover,.page-action:hover{transform:translateY(-1px)!important;border-color:rgba(0,217,255,.58)!important;color:#fff!important}

/* Panels and table tools */
.content-panel{position:relative;margin:0 0 20px;padding:20px;border:1px solid var(--ref-line);border-radius:18px;background:linear-gradient(145deg,rgba(7,22,42,.96),rgba(4,14,28,.96));box-shadow:var(--ref-shadow)}
.panel-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:15px}
.panel-heading h2{margin:0!important;padding:0!important;background:none!important;color:#fff!important;box-shadow:none!important;text-align:left!important;font-size:18px!important}
.panel-heading p{margin:4px 0 0;color:var(--ref-muted);font-size:11px}
.scroll-hint{display:inline-flex;align-items:center;gap:7px;color:#78dcf2;font-size:10px;white-space:nowrap}
.table-tools{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin-bottom:13px}
.table-search{position:relative;flex:1;min-width:240px}
.table-search::before{content:"⌕";position:absolute;left:14px;top:8px;color:var(--ref-cyan);font-size:20px}
.table-search input{width:100%;height:42px;padding:0 14px 0 38px;border:1px solid var(--ref-line);border-radius:10px;outline:none;background:#07172b;color:#fff;font:inherit;font-size:12px}
.table-search input:focus{border-color:rgba(0,217,255,.58);box-shadow:0 0 0 3px rgba(0,217,255,.08)}
.table-tool-button{height:42px;padding:0 15px;border:1px solid rgba(124,77,255,.32);border-radius:10px;background:rgba(124,77,255,.1);color:#e9e1ff;font-weight:750;font-size:11px;cursor:pointer}
.table-tool-button:hover{border-color:#9d7cff;color:#fff}.filter-status{margin-left:auto;color:var(--ref-muted);font-size:10px}

/* Data tables */
.reference-page .table-wrapper{position:relative;margin:0!important;border:1px solid rgba(90,158,220,.18)!important;border-radius:13px!important;overflow:auto!important;background:#061326!important;box-shadow:inset 0 1px rgba(255,255,255,.02)!important;scrollbar-color:#34577d #071425;scrollbar-width:thin}
.reference-page .table-wrapper::-webkit-scrollbar{width:10px;height:10px}.reference-page .table-wrapper::-webkit-scrollbar-track{background:#071425}.reference-page .table-wrapper::-webkit-scrollbar-thumb{background:#34577d;border:2px solid #071425;border-radius:10px}
.reference-page table{width:100%!important;margin:0!important;border-collapse:separate!important;border-spacing:0!important;color:#dbe7f5!important;background:#061326!important;font-size:12px!important}
.page-unit table{min-width:1260px}.page-seireki table{min-width:1760px}
.reference-page table th,.reference-page table td{height:auto!important;padding:11px 10px!important;border:0!important;border-right:1px solid rgba(111,155,205,.13)!important;border-bottom:1px solid rgba(111,155,205,.13)!important;text-align:center;vertical-align:middle;transform:none!important}
.reference-page table th{position:sticky;z-index:12;top:0;background:#0c2946!important;color:#f2f8ff!important;font-weight:800!important;white-space:nowrap;box-shadow:0 1px 0 rgba(0,217,255,.26)}
.reference-page table th a{color:#f2f8ff!important;text-decoration:none!important;border:0!important}.reference-page table th a:hover{color:var(--ref-cyan)!important}
.reference-page table tr{background:transparent!important;transform:none!important}.reference-page table tbody tr:nth-child(odd) td{background:rgba(255,255,255,.012)!important}.reference-page table tbody tr:nth-child(even) td{background:rgba(74,118,170,.055)!important}.reference-page table tbody tr:hover td{background:rgba(0,217,255,.085)!important;color:#fff!important}
.reference-page table th:first-child,.reference-page table td:first-child{position:sticky;z-index:10;left:0;min-width:82px;background:#0b2038!important;color:#9cecff!important;font-weight:800!important;box-shadow:1px 0 0 rgba(0,217,255,.2)}
.reference-page table th:first-child{z-index:18;background:#103455!important;color:#fff!important}
.reference-page .highlight-cell{background:linear-gradient(135deg,rgba(0,217,255,.28),rgba(124,77,255,.35))!important;color:#fff!important;font-size:14px!important;font-weight:900!important}
.page-seireki table .d{text-align:left!important;min-width:360px;line-height:1.55}.page-seireki table .s{min-width:170px}.page-seireki table rt{color:#95a9c1!important}
.page-seireki table tbody tr.is-current-year td{background:linear-gradient(90deg,rgba(0,217,255,.18),rgba(124,77,255,.18))!important;color:#fff!important;font-weight:800;box-shadow:inset 0 1px rgba(0,217,255,.38),inset 0 -1px rgba(124,77,255,.38)}
.page-seireki table tbody tr.is-current-year td:first-child{background:#0b607e!important;color:#fff!important}#thisyear td,#nextyear td{box-shadow:none}tr[hidden]{display:none!important}

/* Contact page */
.contact-layout{display:grid;grid-template-columns:310px minmax(0,1fr);gap:18px;align-items:start}
.contact-guide,.contact-form-panel{border:1px solid var(--ref-line);border-radius:18px;background:linear-gradient(145deg,rgba(7,25,45,.97),rgba(7,15,34,.97));box-shadow:var(--ref-shadow)}
.contact-guide{position:sticky;top:94px;padding:24px}.contact-guide-icon{width:48px;height:48px;display:grid;place-items:center;margin-bottom:18px;border:1px solid rgba(0,217,255,.35);border-radius:13px;background:rgba(0,217,255,.07);color:var(--ref-cyan);font-size:23px}
.contact-guide h2,.contact-form-panel .form-heading h2{margin:0!important;padding:0!important;background:none!important;color:#fff!important;box-shadow:none!important;text-align:left!important;font-size:18px!important}.contact-guide p,.contact-form-panel .form-heading p{margin:5px 0 0;color:var(--ref-muted);font-size:11px}
.contact-guide ul{display:grid;gap:10px;margin:20px 0 0;padding:0;list-style:none}.contact-guide li{display:flex;gap:9px;color:#c4d1e1;font-size:11px}.contact-guide li::before{content:"✓";color:var(--ref-success);font-weight:900}.contact-form-panel{padding:26px}.contact-form-panel .form-heading{margin-bottom:22px}
.reference-page .form-group{margin:0 0 18px!important}.reference-page .form-group label{display:block;margin:0 0 7px;color:#e4edf8!important;font-size:12px!important;font-weight:750!important}.reference-page .required{display:inline-grid;place-items:center;margin-left:5px;padding:1px 6px;border-radius:999px;background:rgba(255,112,133,.12);color:#ff9aab!important;font-size:9px;font-weight:800}
.reference-page .form-group input[type="text"],.reference-page .form-group input[type="email"],.reference-page .form-group textarea{width:100%;border:1px solid var(--ref-line)!important;border-radius:11px!important;outline:0;padding:12px 14px!important;background:#061427!important;color:#fff!important;font:inherit!important;font-size:13px!important}.reference-page .form-group input:focus,.reference-page .form-group textarea:focus{border-color:rgba(0,217,255,.62)!important;box-shadow:0 0 0 3px rgba(0,217,255,.08)!important}.reference-page .form-group textarea{min-height:190px!important;resize:vertical}.reference-page .form-note{margin-top:6px!important;color:#8499b2!important;font-size:10px!important}
.reference-page .submit-button{width:100%;min-height:50px;border:0!important;border-radius:12px!important;color:#fff!important;font-size:13px!important;font-weight:850!important;cursor:pointer;background:linear-gradient(105deg,#0bbfe8,var(--ref-blue) 45%,var(--ref-violet) 72%,#c337ff)!important;box-shadow:0 10px 28px rgba(50,108,255,.25)!important}.reference-page .submit-button:hover{transform:translateY(-1px)!important;filter:brightness(1.08)}
.reference-page .alert{margin:0 0 16px!important;padding:14px 16px!important;border-radius:11px!important;font-size:12px}.reference-page .alert-error{border:1px solid rgba(255,112,133,.35)!important;background:rgba(255,112,133,.08)!important;color:#ffd6dd!important}.reference-page .alert-success{border:1px solid rgba(85,230,193,.35)!important;background:rgba(85,230,193,.08)!important;color:#c9fff0!important}

/* Footer and mobile navigation */
.ref-footer{width:min(calc(100% - 40px),1240px);margin:54px auto 20px;padding:22px 0 8px;border-top:1px solid var(--ref-line);display:grid;grid-template-columns:1fr auto;gap:9px 24px;align-items:center;color:var(--ref-muted);font-size:11px}
.ref-footer-brand{display:flex;align-items:center;gap:10px}.ref-footer-brand img{width:35px;height:35px;object-fit:contain}.ref-footer-brand strong{display:block;color:#fff;font-size:13px}.ref-footer-brand p{margin:1px 0 0}.ref-footer-links{display:flex;gap:17px}.ref-footer-links a{text-decoration:none;color:#aebdd0}.ref-footer-links a:hover{color:var(--ref-cyan)}.ref-footer small{grid-column:1/-1;color:#677d98}
.reference-page #footer{display:none!important}.reference-page address{margin:14px 0 0!important;color:#7187a1!important;font-size:10px!important;font-style:normal;text-align:left!important}.ref-bottom-nav{display:none}

@media(max-width:900px){
  .ref-header-inner{height:66px}.ref-menu-toggle{display:block}.ref-nav{position:absolute;left:16px;right:16px;top:72px;display:none;padding:10px;border:1px solid var(--ref-line);border-radius:13px;background:rgba(5,17,34,.98);box-shadow:var(--ref-shadow)}.ref-header.is-menu-open .ref-nav{display:grid}.ref-nav a{padding:11px 12px}.ref-nav a.is-current::after{display:none}
  .page-actions{position:static;margin-top:18px}.contact-layout{grid-template-columns:1fr}.contact-guide{position:static}
}
@media(max-width:640px){
  body.reference-page{padding-bottom:72px!important}.ref-header-inner{width:calc(100% - 28px)}.ref-brand img{width:39px;height:39px}.ref-brand-name{font-size:15px}
  .reference-page .container.page-shell,.page-shell{width:calc(100% - 24px)!important;padding-top:22px!important}.page-hero{padding:23px 20px;border-radius:15px}.page-hero p{font-size:12px}.page-kicker{font-size:9px}
  .content-panel{padding:12px;border-radius:15px}.panel-heading{align-items:flex-start;flex-direction:column;gap:5px}.reference-page table{font-size:11px!important}.reference-page table th,.reference-page table td{padding:9px 8px!important}.page-seireki table .d{min-width:290px}
  .table-tools{align-items:stretch}.table-search{min-width:100%}.table-tool-button{flex:1}.filter-status{width:100%;margin:0}.contact-guide,.contact-form-panel{border-radius:15px}.contact-guide{padding:20px}.contact-form-panel{padding:20px 17px}
  .ref-footer{width:calc(100% - 28px);margin-bottom:8px;grid-template-columns:1fr}.ref-footer-links{flex-wrap:wrap}.ref-footer small{grid-column:auto}
  .ref-bottom-nav{position:fixed;z-index:90;left:0;right:0;bottom:0;height:62px;display:grid;grid-template-columns:repeat(4,1fr);padding-bottom:env(safe-area-inset-bottom);border-top:1px solid var(--ref-line);background:rgba(2,8,23,.96);backdrop-filter:blur(16px)}.ref-bottom-nav a{display:grid;place-items:center;align-content:center;gap:2px;color:#7f94ae;text-decoration:none;font-size:16px}.ref-bottom-nav small{font-size:9px}.ref-bottom-nav a.is-current{color:var(--ref-cyan)}
}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important}}
