@charset "EUC-JP";
/* ==========================================================================
   生成AI活用プレゼン作品コンテスト
   共通UI stylesheet - CLEAN BUILD

   読み込み順:
     1. register.css
     2. site-ui.css（このファイル）

   現行ページのみ収録:
     - 共通ヘッダー / ナビ / パネル / フォーム / フッター
     - お問合せ
     - 個人情報保護・情報セキュリティポリシー
     - マイページ
     - チーム編成
     - エントリー v3
     - 審査基準 v2
   ========================================================================== */


/* ==========================================================================
   1. Design tokens / Base
   ========================================================================== */

:root {
  --contest-navy:#082978;
  --contest-blue:#0d56d8;
  --contest-cyan:#00aeea;
  --contest-pink:#f51e57;
  --contest-purple:#7148e8;
  --contest-green:#118c78;
  --contest-orange:#ff8a00;

  --contest-text:#15213a;
  --contest-muted:#65718a;
  --contest-line:#d9e4ff;
  --contest-bg:#f6f9ff;
  --contest-card:#ffffff;

  --contest-shadow:0 12px 32px rgba(0,36,120,.11);
  --contest-radius:18px;
  --contest-max:1180px;
}

* {
  box-sizing:border-box;
}

html {
  scroll-behavior:smooth;
}

body.contest-ui-page {
  margin:0;
  min-height:100vh;
  color:var(--contest-text);
  font-family:
    "Hiragino Kaku Gothic ProN",
    "Yu Gothic",
    "YuGothic",
    "Noto Sans JP",
    system-ui,
    -apple-system,
    BlinkMacSystemFont,
    "Segoe UI",
    sans-serif;
  line-height:1.75;
  background:
    radial-gradient(circle at 8% 8%,rgba(0,174,234,.08),transparent 24rem),
    radial-gradient(circle at 92% 22%,rgba(113,72,232,.07),transparent 23rem),
    linear-gradient(180deg,#fff 0%,#f8fbff 62%,#eef4ff 100%);
}

body.contest-ui-page a {
  transition:
    color .16s ease,
    background .16s ease,
    border-color .16s ease,
    transform .16s ease,
    box-shadow .16s ease;
}


/* ==========================================================================
   2. Accessibility
   ========================================================================== */

.skip-link {
  position:fixed;
  left:12px;
  top:-80px;
  z-index:9999;
  padding:9px 14px;
  border-radius:8px;
  color:var(--contest-navy);
  background:#fff;
  font-weight:800;
  box-shadow:0 4px 18px rgba(0,0,0,.18);
}

.skip-link:focus {
  top:12px;
}


/* ==========================================================================
   3. Common header / navigation
   ========================================================================== */

.contest-mini-header {
  position:sticky;
  top:0;
  z-index:100;
  border-bottom:1px solid #e1e8f8;
  background:rgba(255,255,255,.97);
  box-shadow:0 4px 18px rgba(8,41,120,.06);
  backdrop-filter:blur(10px);
}

.contest-header-inner {
  width:min(var(--contest-max), calc(100% - 32px));
  min-height:76px;
  margin:0 auto;
  display:flex;
  align-items:center;
  gap:13px;
}

.contest-brand {
  min-width:0;
  display:flex;
  align-items:center;
  gap:11px;
  color:var(--contest-navy);
  text-decoration:none;
}

.contest-logo-mark {
  width:46px;
  height:46px;
  flex:0 0 46px;
  display:grid;
  place-items:center;
  border-radius:15px;
  color:#fff;
  background:
    radial-gradient(circle at 30% 25%,rgba(255,255,255,.45),transparent 22%),
    linear-gradient(
      135deg,
      var(--contest-cyan),
      var(--contest-blue) 55%,
      var(--contest-purple)
    );
  box-shadow:0 7px 17px rgba(13,86,216,.23);
  font-size:1.02rem;
  font-weight:950;
  letter-spacing:.04em;
}

.contest-brand-text {
  display:block;
  line-height:1.3;
}

.contest-brand-text small {
  display:block;
  margin-bottom:3px;
  color:#5d6d95;
  font-size:.68rem;
  font-weight:800;
}

.contest-brand-text strong {
  display:block;
  max-width:330px;
  color:var(--contest-navy);
  font-size:.95rem;
  font-weight:950;
}

.contest-free-badge {
  flex:0 0 auto;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:34px;
  padding:5px 11px;
  border-radius:999px;
  color:#fff;
  background:linear-gradient(135deg,#fb174e,#ff4977);
  box-shadow:0 5px 13px rgba(245,30,87,.18);
  font-size:.78rem;
  font-weight:900;
  white-space:nowrap;
}

.contest-desktop-nav {
  margin-left:auto;
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:3px;
}

.contest-nav-link {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:38px;
  padding:6px 9px;
  border-radius:10px;
  color:#19387f;
  text-decoration:none;
  font-size:.82rem;
  font-weight:850;
  white-space:nowrap;
}

.contest-nav-link:hover,
.contest-nav-link.is-current {
  color:var(--contest-blue);
  background:#edf3ff;
}

.contest-nav-link.account {
  color:#fff;
  background:linear-gradient(135deg,var(--contest-blue),#123b9e);
}

.contest-nav-link.account:hover,
.contest-nav-link.account.is-current {
  color:#fff;
  background:linear-gradient(135deg,#0a49bd,#0b318c);
  box-shadow:0 5px 13px rgba(13,86,216,.18);
}

.contest-nav-link.signin {
  border:1px solid #aac0ef;
}

.contest-nav-link.logout-link {
  color:#b42548;
}

.contest-mobile-menu {
  display:none;
  position:relative;
  margin-left:auto;
}

.contest-mobile-menu summary {
  list-style:none;
  min-width:86px;
  min-height:40px;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:7px 13px;
  border:1px solid #c8d7f3;
  border-radius:11px;
  color:var(--contest-navy);
  background:#f6f9ff;
  font-weight:900;
  cursor:pointer;
}

.contest-mobile-menu summary::-webkit-details-marker {
  display:none;
}

.contest-mobile-menu[open] summary {
  color:#fff;
  border-color:var(--contest-blue);
  background:var(--contest-blue);
}

.contest-mobile-nav {
  position:absolute;
  right:0;
  top:48px;
  width:min(310px, calc(100vw - 24px));
  padding:10px;
  border:1px solid #d8e3f7;
  border-radius:15px;
  background:#fff;
  box-shadow:0 14px 36px rgba(7,37,112,.18);
}

.contest-nav-link.mobile-link {
  width:100%;
  min-height:43px;
  justify-content:flex-start;
  margin:2px 0;
  padding:8px 12px;
  font-size:.94rem;
}


/* ==========================================================================
   4. Common page frame / panel
   ========================================================================== */

.contest-ui-main {
  min-height:calc(100vh - 220px);
  padding:32px 0 50px;
}

.contest-ui-page .wrap {
  width:min(820px, calc(100% - 32px));
  margin:0 auto;
}

.page-back-row {
  margin:0 0 10px;
}

.page-back {
  display:inline-flex;
  align-items:center;
  gap:5px;
  min-height:38px;
  padding:6px 11px;
  border:1px solid #d2def4;
  border-radius:10px;
  color:#244681;
  background:rgba(255,255,255,.82);
  text-decoration:none;
  font-size:.91rem;
  font-weight:800;
}

.page-back:hover {
  color:var(--contest-blue);
  border-color:#acc3ee;
  background:#fff;
  transform:translateY(-1px);
}

.contest-ui-page .panel {
  position:relative;
  overflow:hidden;
  padding:30px 34px 34px;
  border:1px solid #dbe5f7;
  border-radius:20px;
  background:rgba(255,255,255,.98);
  box-shadow:var(--contest-shadow);
}

.contest-ui-page .panel::before {
  content:"";
  position:absolute;
  left:0;
  right:0;
  top:0;
  height:5px;
  background:
    linear-gradient(
      90deg,
      var(--contest-cyan),
      var(--contest-blue) 38%,
      var(--contest-purple) 67%,
      var(--contest-pink)
    );
}

.panel-heading {
  margin:-2px 0 24px;
  padding-bottom:17px;
  border-bottom:1px solid #e6ecf8;
}

.panel-kicker {
  display:block;
  margin-bottom:5px;
  color:#6880ad;
  font-size:.67rem;
  font-weight:900;
  letter-spacing:.08em;
}

.contest-ui-page .panel h1 {
  margin:0;
  color:var(--contest-navy);
  font-size:clamp(1.45rem,3.3vw,2rem);
  line-height:1.4;
  font-weight:950;
}

.contest-ui-page .panel h2 {
  color:#173d95;
  line-height:1.45;
}


/* ==========================================================================
   5. Common forms / messages
   ========================================================================== */

.contest-ui-page .panel form {
  width:100%;
}

.contest-ui-page .panel label {
  display:block;
  margin-top:19px;
  color:#183a80;
  font-weight:850;
}

.contest-ui-page .panel input[type="text"],
.contest-ui-page .panel input[type="email"],
.contest-ui-page .panel input[type="password"],
.contest-ui-page .panel input[type="date"],
.contest-ui-page .panel input[type="tel"],
.contest-ui-page .panel input[type="number"],
.contest-ui-page .panel textarea {
  box-sizing:border-box;
  width:100%;
  margin-top:6px;
  padding:12px 13px;
  border:1px solid #bdcce8;
  border-radius:11px;
  color:var(--contest-text);
  background:#fff;
  font:inherit;
  outline:none;
}

.contest-ui-page .panel input:focus,
.contest-ui-page .panel textarea:focus {
  border-color:#5c8bea;
  box-shadow:0 0 0 4px rgba(13,86,216,.10);
}

.contest-ui-page .panel textarea {
  resize:vertical;
}

.contest-ui-page .panel button {
  width:100%;
  min-height:48px;
  margin-top:25px;
  padding:11px 16px;
  border:0;
  border-radius:12px;
  color:#fff;
  background:linear-gradient(135deg,var(--contest-blue),#103b9f);
  box-shadow:0 7px 17px rgba(13,86,216,.20);
  font:inherit;
  font-weight:900;
  cursor:pointer;
}

.contest-ui-page .panel button:hover:not(:disabled) {
  transform:translateY(-1px);
  box-shadow:0 9px 20px rgba(13,86,216,.25);
}

.contest-ui-page .panel button:disabled {
  opacity:.52;
  cursor:not-allowed;
  box-shadow:none;
}

.contest-ui-page .readonly {
  padding:13px 14px;
  border:1px solid #d3e0f7;
  border-radius:11px;
  background:linear-gradient(135deg,#edf4ff,#f8fbff);
}

.contest-ui-page .note {
  color:var(--contest-muted);
  font-size:.91rem;
}

.contest-ui-page .check {
  display:flex;
  gap:9px;
  align-items:flex-start;
  padding:10px 11px;
  border-radius:10px;
  background:#f8faff;
}

.contest-ui-page .check input {
  width:auto;
  margin-top:7px;
  flex:0 0 auto;
}

.contest-ui-page hr {
  margin:30px 0;
  border:0;
  border-top:1px solid #dfe7f5;
}

.contest-ui-page dt {
  margin-top:14px;
  color:#17347d;
  font-weight:900;
}

.contest-ui-page dd {
  margin-left:0;
}

.contest-ui-page .home,
.contest-ui-page .logout {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:41px;
  padding:8px 14px;
  border-radius:10px;
  text-decoration:none;
  font-weight:850;
}

.contest-ui-page .home {
  color:#0b49bd;
  border:1px solid #c7d8f7;
  background:#edf3ff;
}

.contest-ui-page .home:hover {
  border-color:#a8c2f0;
  background:#e2edff;
}

.contest-ui-page .logout {
  color:#fff;
  background:#ef365e;
}

.ui-message-body > p:first-child {
  margin-top:0;
}

.ui-action-links {
  display:flex;
  flex-wrap:wrap;
  gap:9px;
  margin-top:23px;
}

.ui-action-links .home {
  margin:0;
}

.login-links {
  margin-top:26px;
  padding-top:18px;
  border-top:1px solid #dfe7f5;
}

.login-links p {
  margin:8px 0;
}

.login-links a {
  color:#0b49bd;
  font-weight:850;
}


/* Mail address availability */

.email-check-message {
  min-height:1.5em;
  margin:8px 0 0;
  font-weight:bold;
}

.email-check-message.ok {
  color:#147a37;
}

.email-check-message.ng {
  color:#b42318;
}

input.email-ng {
  border-color:#b42318 !important;
  background:#fff6f5 !important;
}

input.email-ok {
  border-color:#147a37 !important;
  background:#f5fff7 !important;
}


/* ==========================================================================
   6. Contact
   ========================================================================== */

.contact-page .contact-wrap {
  width:min(1060px, calc(100% - 40px));
}

.contact-page .contact-panel {
  padding:34px 40px 40px;
}

.contact-page .contact-panel textarea {
  min-height:320px;
  line-height:1.75;
}

.contact-page .contact-panel button {
  max-width:420px;
  margin-left:auto;
  margin-right:auto;
  display:block;
}


/* ==========================================================================
   7. Privacy / security policy
   ========================================================================== */

.policy-page .policy-wrap {
  width:min(1080px, calc(100% - 40px));
}

.policy-page .policy-panel {
  padding:36px 44px 44px;
}

.policy-page .policy-lead {
  margin-bottom:28px;
  font-size:1.03rem;
  line-height:1.9;
}

.policy-page .policy-important {
  margin:28px 0 34px;
  padding:24px 28px;
  border:2px solid #c62828;
  border-radius:14px;
  background:#fff7f7;
}

.policy-page .policy-important h2 {
  margin-top:0;
  color:#a71818;
}

.policy-page .policy-important p,
.policy-page .policy-section p,
.policy-page .policy-section li {
  line-height:1.9;
}

.policy-page .policy-section {
  margin-top:34px;
  padding-top:6px;
}

.policy-page .policy-section h2 {
  padding-bottom:10px;
  border-bottom:2px solid #d9e4f7;
}

.policy-page .policy-section li {
  margin:8px 0;
}

.policy-page .policy-link-card {
  margin:18px 0;
  padding:18px 22px;
  border:1px solid #ccd9ee;
  border-radius:12px;
  background:#f8fbff;
}

.policy-page .policy-link-card h3 {
  margin:0 0 8px;
}

.policy-page .policy-link-card p {
  margin:6px 0;
}

.policy-page .policy-button {
  display:inline-block;
  padding:11px 18px;
  border-radius:9px;
  color:#fff;
  background:#0b57d0;
  font-weight:bold;
  text-decoration:none;
}

.policy-page .policy-final {
  margin-top:38px;
  padding:22px 26px;
  border-radius:14px;
  background:#eef5ff;
}

.policy-page .policy-date {
  margin-top:36px;
  text-align:right;
  font-size:.92rem;
}


/* ==========================================================================
   8. Common footer
   ========================================================================== */

.contest-ui-footer {
  margin-top:0;
  padding:22px 0 25px;
  border-top:4px solid ##004020;
  color:#fff;
  background:
    radial-gradient(circle at 85% 0%,rgba(0,174,234,.22),transparent 20rem),
    linear-gradient(180deg,#004020,#061d5e);
}

.contest-ui-footer-inner {
  width:min(var(--contest-max), calc(100% - 32px));
  margin:0 auto;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
}

.contest-footer-brand {
  display:flex;
  flex-direction:column;
  gap:2px;
}

.contest-footer-brand strong {
  font-size:.92rem;
}

.contest-footer-brand span {
  color:#004020;
  font-size:.78rem;
}

.contest-footer-links {
  display:flex;
  flex-wrap:wrap;
  justify-content:flex-end;
  gap:7px 15px;
}

.contest-footer-links a {
  color:#fff;
  text-decoration:none;
  font-size:.82rem;
  font-weight:750;
}

.contest-footer-links a:hover {
  text-decoration:underline;
}


/* ==========================================================================
   9. Common responsive
   ========================================================================== */

@media (max-width:1080px) {

  .contest-desktop-nav {
    display:none;
  }

  .contest-mobile-menu {
    display:block;
  }
}

@media (max-width:700px) {

  .contest-header-inner {
    width:calc(100% - 20px);
    min-height:66px;
    gap:8px;
  }

  .contest-logo-mark {
    width:40px;
    height:40px;
    flex-basis:40px;
    border-radius:13px;
    font-size:.91rem;
  }

  .contest-brand-text small {
    display:none;
  }

  .contest-brand-text strong {
    max-width:210px;
    font-size:.82rem;
    line-height:1.35;
  }

  .contest-free-badge {
    display:none;
  }

  .contest-mobile-menu summary {
    min-width:78px;
    min-height:38px;
    padding:6px 10px;
    font-size:.88rem;
  }

  .contest-mobile-nav {
    top:45px;
  }

  .contest-ui-main {
    padding:20px 0 34px;
  }

  .contest-ui-page .wrap,
  .contact-page .contact-wrap,
  .policy-page .policy-wrap {
    width:calc(100% - 20px);
  }

  .contest-ui-page .panel,
  .contact-page .contact-panel,
  .policy-page .policy-panel {
    padding:23px 18px 28px;
    border-radius:16px;
  }

  .panel-heading {
    margin-bottom:19px;
    padding-bottom:14px;
  }

  .panel-kicker {
    font-size:.60rem;
  }

  .contact-page .contact-panel textarea {
    min-height:240px;
  }

  .policy-page .policy-important,
  .policy-page .policy-final {
    padding:18px 16px;
  }

  .ui-action-links {
    display:grid;
    grid-template-columns:1fr;
  }

  .ui-action-links .home {
    width:100%;
  }

  .contest-ui-footer-inner {
    width:calc(100% - 24px);
    flex-direction:column;
    align-items:flex-start;
  }

  .contest-footer-links {
    justify-content:flex-start;
  }
}


/* ==========================================================================
   10. My Page / member.php
   ========================================================================== */

/* =========================================================
   マイページ / 進捗ダッシュボード
   ========================================================= */

.member-page .member-wrap{width:min(var(--contest-max),calc(100% - 40px));}
.member-page .member-panel{padding:34px 38px 40px;}
.member-page .member-panel>.panel-heading{margin-bottom:20px;}

.member-dashboard-hero{position:relative;overflow:hidden;display:grid;grid-template-columns:minmax(0,1fr) 250px;gap:20px;margin-bottom:20px;padding:26px;border:1px solid #cbdcff;border-radius:20px;background:radial-gradient(circle at 8% 15%,rgba(0,174,234,.11),transparent 15rem),radial-gradient(circle at 87% 18%,rgba(113,72,232,.10),transparent 14rem),linear-gradient(135deg,#f5f9ff 0%,#fff 58%,#fff8fb 100%);}
.member-dashboard-hero__copy{min-width:0;}
.member-dashboard-hero__label,.member-dashboard-next__label,.member-dashboard-account__label{display:block;margin-bottom:4px;color:#6e82ab;font-size:.68rem;font-weight:950;letter-spacing:.12em;}
.member-dashboard-hero__copy h2{margin:0 0 7px;color:var(--contest-navy)!important;font-size:clamp(1.45rem,3vw,2rem);}
.member-dashboard-hero__copy>p{max-width:660px;margin:0;color:#465875;}
.member-dashboard-hero__status{max-width:610px;margin-top:20px;}
.member-dashboard-progress-copy{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;margin-bottom:7px;}
.member-dashboard-progress-copy span{color:#264b8c;font-size:.88rem;font-weight:900;}
.member-dashboard-progress-copy strong{color:var(--contest-blue);font-size:1.45rem;line-height:1;}
.member-dashboard-progress{overflow:hidden;height:13px;border:1px solid #d6e2f8;border-radius:999px;background:#eaf0fb;}
.member-dashboard-progress>span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--contest-green),var(--contest-cyan) 45%,var(--contest-blue));}
.member-dashboard-hero__status small{display:block;margin-top:7px;color:#6b7990;}

.member-dashboard-id{position:relative;overflow:hidden;display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:176px;padding:18px 16px 34px;border:2px dashed #f4a33d;border-radius:17px;background:rgba(255,250,239,.92);text-align:center;}
.member-dashboard-id>span{color:#8a641d;font-size:.78rem;font-weight:900;}
.member-dashboard-id>strong{margin:4px 0;color:#c35b00;font-size:1.82rem;line-height:1.2;letter-spacing:.06em;}
.member-dashboard-id>small{color:#806d4a;}
.member-dashboard-id__art{position:absolute;left:0;right:0;bottom:0;height:24px;}
.member-dashboard-id__art span{position:absolute;bottom:-13px;width:46px;height:46px;border-radius:50%;opacity:.65;}
.member-dashboard-id__art span:nth-child(1){left:25px;background:#ffd479;}
.member-dashboard-id__art span:nth-child(2){left:calc(50% - 23px);background:#8fddf7;}
.member-dashboard-id__art span:nth-child(3){right:25px;background:#d4c2ff;}

.member-dashboard-alert{display:grid;grid-template-columns:54px minmax(0,1fr);gap:17px;margin:20px 0;padding:19px 21px;border:2px solid #ff9b31;border-radius:18px;background:linear-gradient(135deg,#fff8e9,#fffdf9);box-shadow:0 9px 22px rgba(190,104,9,.10);}
.member-dashboard-alert__mark{width:50px;height:50px;display:grid;place-items:center;border-radius:16px;color:#fff;background:linear-gradient(135deg,var(--contest-orange),#f15a24);box-shadow:0 6px 15px rgba(229,106,14,.22);font-size:1.6rem;font-weight:950;}
.member-dashboard-alert__body h2{margin:0 0 4px;color:#9b4900!important;font-size:1.16rem;}
.member-dashboard-alert__body>p{margin:0 0 8px;color:#73552c;}
.member-dashboard-request{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:11px 0;border-top:1px solid #f3cf98;}
.member-dashboard-request>div{display:flex;flex-direction:column;min-width:0;}
.member-dashboard-request strong{color:#663900;}
.member-dashboard-request span{color:#826438;font-size:.84rem;}

.member-dashboard-next{display:grid;grid-template-columns:58px minmax(0,1fr) auto;gap:17px;align-items:center;margin:20px 0;padding:18px 20px;border:1px solid #bfd4ff;border-radius:17px;background:linear-gradient(135deg,#edf5ff,#f8fbff 56%,#f4f0ff);}
.member-dashboard-next__icon{width:54px;height:54px;display:grid;place-items:center;border-radius:17px;color:#fff;background:linear-gradient(135deg,var(--contest-cyan),var(--contest-blue),var(--contest-purple));box-shadow:0 7px 16px rgba(13,86,216,.20);}
.member-dashboard-next__icon svg{width:36px;height:36px;fill:none;stroke:currentColor;stroke-width:3.2;stroke-linecap:round;stroke-linejoin:round;}
.member-dashboard-next__body{min-width:0;}
.member-dashboard-next__body h2{margin:0 0 2px;color:var(--contest-navy)!important;font-size:1.13rem;}
.member-dashboard-next__body p{margin:0;color:#52617a;}

.member-dashboard-legend{display:flex;flex-wrap:wrap;gap:9px 18px;margin:3px 0 13px;color:#65718a;font-size:.82rem;font-weight:750;}
.member-dashboard-legend span{display:inline-flex;align-items:center;gap:6px;}
.member-dashboard-legend i{width:10px;height:10px;border-radius:50%;}
.member-dashboard-legend i.is-complete{background:var(--contest-green);}
.member-dashboard-legend i.is-current{background:var(--contest-blue);}
.member-dashboard-legend i.is-locked{background:#b7c0cf;}

.member-dashboard-steps{display:grid;gap:14px;}
.member-dashboard-step{position:relative;display:grid;grid-template-columns:82px minmax(0,1fr);gap:18px;padding:21px 23px 21px 17px;border:2px solid #dae4f4;border-radius:19px;background:#fff;transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease;}
.member-dashboard-step--complete{border-color:#9bd5bd;background:linear-gradient(90deg,#f3fff9 0%,#fff 48%);}
.member-dashboard-step--current{border-color:#8db6f5;background:linear-gradient(90deg,#f2f7ff 0%,#fff 48%);box-shadow:0 9px 22px rgba(13,86,216,.08);}
.member-dashboard-step--locked{border-color:#d8dee8;background:#f5f7fa;color:#7a8493;}
.member-dashboard-step--waiting{border-color:#c8b7ee;background:linear-gradient(90deg,#f8f4ff 0%,#fff 48%);}
.member-dashboard-step__rail{display:flex;flex-direction:column;align-items:center;}
.member-dashboard-step__icon{width:60px;height:60px;display:grid;place-items:center;border-radius:19px;color:#64728b;background:#e8edf5;}
.member-dashboard-step__icon svg{width:41px;height:41px;fill:none;stroke:currentColor;stroke-width:2.8;stroke-linecap:round;stroke-linejoin:round;}
.member-dashboard-step--complete .member-dashboard-step__icon{color:#fff;background:linear-gradient(135deg,#18a27b,var(--contest-green));}
.member-dashboard-step--current .member-dashboard-step__icon{color:#fff;background:linear-gradient(135deg,var(--contest-cyan),var(--contest-blue));}
.member-dashboard-step--waiting .member-dashboard-step__icon{color:#fff;background:linear-gradient(135deg,#9a76eb,var(--contest-purple));}
.member-dashboard-step--locked .member-dashboard-step__icon{color:#8690a0;background:#e0e4ea;}
.member-dashboard-step__number{display:grid;place-items:center;width:27px;height:27px;margin-top:7px;border-radius:50%;color:#657188;background:#edf0f5;font-size:.78rem;font-weight:950;}
.member-dashboard-step--complete .member-dashboard-step__number{color:#11725e;background:#dcf5ec;}
.member-dashboard-step--current .member-dashboard-step__number{color:#0d56d8;background:#e1ecff;}
.member-dashboard-step--waiting .member-dashboard-step__number{color:#6844c3;background:#eee7ff;}
.member-dashboard-step__content{min-width:0;}
.member-dashboard-step__heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;}
.member-dashboard-step__kicker{display:block;margin-bottom:2px;color:#7a89a1;font-size:.7rem;font-weight:950;letter-spacing:.11em;}
.member-dashboard-step__heading h2{margin:0;color:#173d95!important;font-size:1.25rem;}
.member-dashboard-step--locked .member-dashboard-step__heading h2{color:#747f8f!important;}
.member-dashboard-step__deadline{display:inline-block;margin-top:4px;color:#be4161;font-size:.8rem;font-weight:900;}
.member-dashboard-step--locked .member-dashboard-step__deadline{color:#9098a5;}
.member-dashboard-step__badge{display:inline-flex;align-items:center;gap:5px;min-height:30px;padding:5px 10px;border-radius:999px;color:#667287;background:#edf0f5;font-size:.75rem;font-weight:900;white-space:nowrap;}
.member-dashboard-step--complete .member-dashboard-step__badge{color:#14745d;background:#dcf5ec;}
.member-dashboard-step--current .member-dashboard-step__badge{color:#174fae;background:#dfeaff;}
.member-dashboard-step--waiting .member-dashboard-step__badge{color:#6545aa;background:#eee6ff;}
.member-dashboard-step__description{margin:10px 0 13px;}
.member-dashboard-step--locked .member-dashboard-step__description{color:#7b8492;}

.member-dashboard-info{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:9px 18px;margin:0 0 13px;padding:11px 13px;border:1px solid #d9e5f7;border-radius:12px;background:#f8fbff;}
.member-dashboard-info>div{min-width:0;}
.member-dashboard-info span,.member-dashboard-ai-count span{display:block;color:#77859c;font-size:.73rem;font-weight:850;}
.member-dashboard-info strong{display:block;color:#29477b;overflow-wrap:anywhere;}
.member-dashboard-ai-count{display:grid;grid-template-columns:130px minmax(0,1fr);gap:12px;align-items:center;margin:0 0 13px;padding:12px 14px;border-radius:13px;background:linear-gradient(135deg,#f1f7ff,#f7f5ff);}
.member-dashboard-ai-count strong{display:block;color:var(--contest-blue);font-size:1.4rem;}
.member-dashboard-ai-count strong small{font-size:.7rem;}
.member-dashboard-ai-count p{margin:0;color:#5d6c84;font-size:.86rem;}

.member-dashboard-step__action{min-height:42px;display:flex;align-items:center;}
.member-dashboard-button{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:42px;padding:9px 17px;border:0;border-radius:11px;color:#fff!important;background:linear-gradient(135deg,var(--contest-blue),#103b9f);box-shadow:0 6px 14px rgba(13,86,216,.16);text-decoration:none;font-size:.9rem;font-weight:900;line-height:1.3;}
.member-dashboard-button:hover{transform:translateY(-1px);box-shadow:0 8px 18px rgba(13,86,216,.21);}
.member-dashboard-button--sub{color:#195984!important;border:1px solid #b9d8e9;background:#eef9ff;box-shadow:none;}
.member-dashboard-button--alert{background:linear-gradient(135deg,#ed7717,#d6540a);box-shadow:0 6px 14px rgba(204,88,9,.17);}
.member-dashboard-button--next{white-space:nowrap;}
.member-dashboard-button--disabled{color:#858e9c!important;background:#dde2e9;box-shadow:none;cursor:not-allowed;}
.member-dashboard-button--disabled:hover{transform:none;box-shadow:none;}
.member-dashboard-waiting{display:inline-flex;align-items:center;min-height:42px;padding:9px 14px;border-radius:11px;color:#65439f;background:#eee7ff;font-weight:850;}

.member-dashboard-account{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:25px;align-items:end;margin-top:25px;padding:21px 23px;border:1px solid #dde6f4;border-radius:16px;background:#f8faff;}
.member-dashboard-account h2{margin:0 0 12px;color:#294781!important;font-size:1rem;}
.member-dashboard-account dl{display:grid;grid-template-columns:115px minmax(0,1fr);gap:6px 14px;margin:0;}
.member-dashboard-account dt{margin:0!important;color:#77859d!important;font-size:.78rem;}
.member-dashboard-account dd{margin:0;overflow-wrap:anywhere;}
.member-dashboard-account__links{display:flex;flex-wrap:wrap;gap:8px 14px;justify-content:flex-end;}
.member-dashboard-account__links a{color:#2458a6;text-decoration:none;font-size:.88rem;font-weight:850;}
.member-dashboard-account__links a.is-logout{color:#b42548;}

@media (hover:hover){.member-dashboard-step--current:hover{transform:translateY(-2px);box-shadow:0 13px 27px rgba(13,86,216,.12);}}

@media (max-width:760px){
  .member-page .member-wrap{width:calc(100% - 20px);}
  .member-page .member-panel{padding:23px 15px 28px;}
  .member-dashboard-hero{grid-template-columns:1fr;gap:13px;padding:20px 17px;}
  .member-dashboard-id{min-height:120px;}
  .member-dashboard-alert{grid-template-columns:42px minmax(0,1fr);gap:11px;padding:16px 14px;}
  .member-dashboard-alert__mark{width:40px;height:40px;border-radius:13px;font-size:1.25rem;}
  .member-dashboard-request{align-items:stretch;flex-direction:column;}
  .member-dashboard-request .member-dashboard-button{width:100%;}
  .member-dashboard-next{grid-template-columns:48px minmax(0,1fr);gap:12px;padding:16px 14px;}
  .member-dashboard-next__icon{width:46px;height:46px;border-radius:14px;}
  .member-dashboard-next__icon svg{width:31px;height:31px;}
  .member-dashboard-next .member-dashboard-button{grid-column:1/-1;width:100%;}
  .member-dashboard-step{grid-template-columns:57px minmax(0,1fr);gap:11px;padding:17px 13px 17px 9px;border-radius:16px;}
  .member-dashboard-step__icon{width:48px;height:48px;border-radius:15px;}
  .member-dashboard-step__icon svg{width:33px;height:33px;}
  .member-dashboard-step__number{width:24px;height:24px;}
  .member-dashboard-step__heading{gap:8px;}
  .member-dashboard-step__heading h2{font-size:1.08rem;}
  .member-dashboard-step__badge{min-height:27px;padding:4px 8px;font-size:.68rem;}
  .member-dashboard-info{grid-template-columns:1fr;}
  .member-dashboard-ai-count{grid-template-columns:1fr;}
  .member-dashboard-step__action .member-dashboard-button{width:100%;}
  .member-dashboard-account{grid-template-columns:1fr;padding:18px 15px;}
  .member-dashboard-account dl{grid-template-columns:92px minmax(0,1fr);}
  .member-dashboard-account__links{justify-content:space-between;}
}

@media (max-width:430px){
  .member-dashboard-step{grid-template-columns:1fr;}
  .member-dashboard-step__rail{flex-direction:row;justify-content:flex-start;gap:8px;}
  .member-dashboard-step__number{margin-top:0;}
  .member-dashboard-step__heading{align-items:flex-start;}
  .member-dashboard-step__badge{max-width:46%;white-space:normal;text-align:center;}
}


/* ==========================================================================
   11. Team / team.php
   ========================================================================== */

/* =========================================================
   チーム編成ページ
   team.php
   ========================================================= */

.team-page .team-wrap {
  width:min(var(--contest-max), calc(100% - 40px));
}

.team-page .team-panel {
  padding:34px 38px 40px;
}

.team-kicker {
  display:block;
  margin-bottom:4px;
  color:#6d82ad;
  font-size:.67rem;
  font-weight:950;
  letter-spacing:.12em;
}

.team-guide {
  display:grid;
  grid-template-columns:112px minmax(0,1fr);
  gap:22px;
  align-items:center;
  padding:22px 25px;
  border:1px solid #c9dbff;
  border-radius:19px;
  background:
    radial-gradient(circle at 10% 20%,rgba(0,174,234,.12),transparent 12rem),
    linear-gradient(135deg,#f3f8ff,#fff 58%,#faf7ff);
}

.team-guide__art {
  width:102px;
  height:92px;
  display:grid;
  place-items:center;
  border-radius:25px;
  color:#fff;
  background:
    linear-gradient(135deg,var(--contest-cyan),var(--contest-blue),var(--contest-purple));
  box-shadow:0 9px 22px rgba(13,86,216,.18);
}

.team-guide__art svg {
  width:78px;
  height:70px;
  fill:none;
  stroke:currentColor;
  stroke-width:4;
  stroke-linecap:round;
  stroke-linejoin:round;
}

.team-guide h2 {
  margin:0 0 5px;
  color:var(--contest-navy) !important;
  font-size:1.35rem;
}

.team-guide p {
  margin:0;
  color:#4d5f7e;
}

.team-flow {
  display:grid;
  grid-template-columns:1fr auto 1fr auto 1fr auto 1fr;
  gap:8px;
  align-items:center;
  margin:18px 0;
}

.team-flow > i {
  color:#87a1cf;
  font-style:normal;
  font-weight:900;
}

.team-flow__item {
  min-width:0;
  padding:13px 10px;
  border:1px solid #d8e3f7;
  border-radius:14px;
  background:#f9fbff;
  text-align:center;
}

.team-flow__item > span {
  width:27px;
  height:27px;
  margin:0 auto 4px;
  display:grid;
  place-items:center;
  border-radius:50%;
  color:#fff;
  background:var(--contest-blue);
  font-size:.78rem;
  font-weight:950;
}

.team-flow__item strong,
.team-flow__item small {
  display:block;
}

.team-flow__item strong {
  color:#244784;
  font-size:.88rem;
}

.team-flow__item small {
  margin-top:2px;
  color:#78869a;
  font-size:.69rem;
}

.team-flow__item.is-finish {
  border-color:#a8dbc9;
  background:#f3fff9;
}

.team-flow__item.is-finish > span {
  background:var(--contest-green);
}

.team-flow__item.is-finish strong {
  color:#16735f;
}

.team-user-id-card {
  display:grid;
  grid-template-columns:220px minmax(0,1fr);
  gap:20px;
  align-items:center;
  margin:18px 0;
  padding:16px 19px;
  border:2px dashed #f2aa4f;
  border-radius:16px;
  background:#fffaf0;
}

.team-user-id-card > div {
  text-align:center;
}

.team-user-id-card span {
  display:block;
  color:#85611e;
  font-size:.76rem;
  font-weight:900;
}

.team-user-id-card strong {
  display:block;
  margin-top:2px;
  color:#bb5a00;
  font-size:1.55rem;
  letter-spacing:.06em;
}

.team-user-id-card p {
  margin:0;
  color:#715f42;
  font-size:.88rem;
}

.team-flash {
  margin:17px 0;
  padding:13px 16px;
  border-radius:13px;
  font-weight:850;
}

.team-flash--success {
  border:1px solid #a3dac7;
  color:#116b58;
  background:#edfff8;
}

.team-flash--error {
  border:1px solid #efb4c2;
  color:#a22245;
  background:#fff3f6;
}

.team-section-heading {
  display:flex;
  align-items:center;
  gap:13px;
  margin-bottom:12px;
}

.team-section-heading h2 {
  margin:0;
}

.team-section-heading__mark {
  width:42px;
  height:42px;
  display:grid;
  place-items:center;
  border-radius:13px;
  color:#fff;
  background:linear-gradient(135deg,var(--contest-orange),#e65d18);
  font-size:1.25rem;
  font-weight:950;
}

.team-section-heading__icon {
  width:50px;
  height:50px;
  display:grid;
  place-items:center;
  border-radius:15px;
  color:#fff;
  background:linear-gradient(135deg,var(--contest-cyan),var(--contest-blue));
}

.team-section-heading__icon svg {
  width:35px;
  height:35px;
  fill:none;
  stroke:currentColor;
  stroke-width:3;
  stroke-linecap:round;
  stroke-linejoin:round;
}

.team-invitations {
  margin:19px 0;
  padding:19px;
  border:2px solid #ffad4e;
  border-radius:18px;
  background:linear-gradient(135deg,#fff8ea,#fffdf9);
}

.team-invitation-card {
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(250px,auto);
  gap:18px;
  align-items:center;
  margin-top:10px;
  padding:14px 15px;
  border:1px solid #f1ca91;
  border-radius:13px;
  background:#fff;
}

.team-invitation-card__info > span,
.team-invitation-card__info > strong,
.team-invitation-card__info > small {
  display:block;
}

.team-invitation-card__info > span {
  color:#9a7139;
  font-size:.73rem;
  font-weight:850;
}

.team-invitation-card__info > strong {
  margin:2px 0;
  color:#694000;
  font-size:1.1rem;
}

.team-invitation-card__info > small {
  color:#806c4e;
}

.team-invitation-card__actions {
  display:flex;
  flex-direction:column;
  gap:7px;
  align-items:stretch;
}

.team-inline-form {
  margin:0;
}

.team-page .team-inline-form button,
.team-page .team-create-form button,
.team-page .team-compact-form button,
.team-page .team-member-card__admin-actions button,
.team-page .team-change-section button {
  width:auto;
  margin-top:0;
}

.team-consent-check {
  display:flex !important;
  gap:8px;
  align-items:flex-start;
  margin:0 0 8px !important;
  padding:9px 10px;
  border-radius:10px;
  color:#664d25 !important;
  background:#fff8e8;
  font-size:.82rem;
}

.team-consent-check input {
  width:auto !important;
  margin:6px 0 0 !important;
  flex:0 0 auto;
}

.team-button {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:40px;
  padding:9px 15px;
  border:0;
  border-radius:10px;
  text-decoration:none;
  font:inherit;
  font-size:.86rem;
  font-weight:900;
  cursor:pointer;
}

.team-button--primary,
.team-button--accept {
  color:#fff !important;
  background:linear-gradient(135deg,var(--contest-blue),#103b9f);
  box-shadow:0 6px 14px rgba(13,86,216,.16);
}

.team-button--accept {
  background:linear-gradient(135deg,#16a47a,var(--contest-green));
}

.team-button--light,
.team-button--light-link {
  color:#24569e !important;
  border:1px solid #bed0ef !important;
  background:#f1f6ff !important;
  box-shadow:none !important;
}

.team-button--danger {
  color:#fff !important;
  background:linear-gradient(135deg,#e13f62,#b82045);
}

.team-button--danger-light {
  color:#a92449 !important;
  border:1px solid #e8b4c2 !important;
  background:#fff3f6 !important;
  box-shadow:none !important;
}

.team-disabled-message {
  display:block;
  padding:9px 11px;
  border-radius:9px;
  color:#7b8492;
  background:#eceff3;
  font-size:.8rem;
  font-weight:800;
}

.team-notice {
  margin:12px 0;
  padding:11px 13px;
  border-left:4px solid var(--contest-blue);
  border-radius:8px;
  color:#3f567d;
  background:#f2f7ff;
  font-size:.88rem;
}

.team-notice--warning {
  border-left-color:var(--contest-orange);
  color:#725526;
  background:#fff8e9;
}

.team-notice--success {
  border-left-color:var(--contest-green);
  color:#176b59;
  background:#effff9;
}

.team-notice--locked {
  border-left-color:var(--contest-purple);
  color:#5f4a8a;
  background:#f6f1ff;
}

.team-choice {
  margin-top:23px;
}

.team-choice-grid {
  display:grid;
  grid-template-columns:1fr 1.25fr;
  gap:16px;
}

.team-choice-card {
  padding:20px;
  border:1px solid #d7e2f4;
  border-radius:17px;
  background:#fff;
}

.team-choice-card--solo {
  background:linear-gradient(135deg,#fbfcff,#f3f7ff);
}

.team-choice-card--team {
  border-color:#b9d2ff;
  background:linear-gradient(135deg,#f3f8ff,#fff);
  box-shadow:0 8px 20px rgba(13,86,216,.07);
}

.team-choice-card__label {
  color:#7890ba;
  font-size:.67rem;
  font-weight:950;
  letter-spacing:.12em;
}

.team-choice-card h3 {
  margin:4px 0 6px;
  color:#214487;
  font-size:1.12rem;
}

.team-choice-card p {
  margin:0 0 12px;
}

.team-choice-card__status {
  display:inline-flex;
  padding:7px 10px;
  border-radius:999px;
  color:#2f568e;
  background:#e7effd;
  font-size:.78rem;
  font-weight:850;
}

.team-create-form label {
  margin-top:13px !important;
}

.team-create-form input[type="text"],
.team-compact-form input[type="text"] {
  margin-top:5px !important;
}

.team-invite-fields {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px;
}

.team-form-help {
  margin-top:5px;
  color:#728098;
  font-size:.78rem;
}

.team-create-form > .team-button {
  margin-top:18px !important;
}

.team-current {
  margin-top:21px;
}

.team-current__header {
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:18px;
  padding:19px 20px;
  border:1px solid #c8dbff;
  border-radius:17px;
  background:linear-gradient(135deg,#f3f8ff,#fff);
}

.team-current__header h2 {
  margin:0;
  color:var(--contest-navy) !important;
  font-size:1.5rem;
}

.team-current__header p {
  margin:3px 0 0;
  color:#5b6b83;
}

.team-status-badge {
  min-width:88px;
  padding:7px 11px;
  border-radius:999px;
  text-align:center;
  font-size:.78rem;
  font-weight:900;
  white-space:nowrap;
}

.team-status-badge--forming {
  color:#a55b00;
  background:#fff0d8;
}

.team-status-badge--confirmed {
  color:#11725e;
  background:#dff7ee;
}

.team-member-progress {
  display:grid;
  grid-template-columns:120px minmax(0,1fr);
  gap:14px;
  align-items:center;
  margin:13px 0;
  padding:11px 14px;
  border-radius:12px;
  background:#f8faff;
}

.team-member-progress span {
  display:block;
  color:#77869d;
  font-size:.7rem;
  font-weight:800;
}

.team-member-progress strong {
  color:#24529a;
}

.team-member-progress__track {
  overflow:hidden;
  height:11px;
  border-radius:999px;
  background:#e4eaf4;
}

.team-member-progress__track > span {
  display:block;
  height:100%;
  border-radius:inherit;
  background:linear-gradient(90deg,var(--contest-green),var(--contest-cyan),var(--contest-blue));
}

.team-members-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px;
  margin:15px 0;
}

.team-member-card {
  min-width:0;
  padding:15px;
  border:1px solid #d8e2f3;
  border-radius:15px;
  background:#fff;
}

.team-member-card.is-representative {
  border-color:#a8c8ff;
  background:linear-gradient(135deg,#f2f7ff,#fff);
}

.team-member-card__avatar {
  width:49px;
  height:49px;
  margin-bottom:9px;
  display:grid;
  place-items:center;
  border-radius:15px;
  color:#fff;
  background:linear-gradient(135deg,var(--contest-cyan),var(--contest-blue));
}

.team-member-card.is-representative .team-member-card__avatar {
  background:linear-gradient(135deg,var(--contest-purple),var(--contest-blue));
}

.team-member-card__avatar svg {
  width:34px;
  height:34px;
  fill:none;
  stroke:currentColor;
  stroke-width:3;
  stroke-linecap:round;
}

.team-member-card__top {
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:7px;
}

.team-member-card__top strong {
  display:block;
  margin-top:2px;
  color:#29477b;
  overflow-wrap:anywhere;
}

.team-member-card__body > small {
  display:block;
  margin-top:3px;
  color:#7a879a;
}

.team-member-role {
  display:inline-flex;
  padding:2px 7px;
  border-radius:999px;
  color:#fff;
  background:var(--contest-purple);
  font-size:.65rem;
  font-weight:900;
}

.team-member-role--member {
  color:#356097;
  background:#e7effc;
}

.team-member-status {
  flex:0 0 auto;
  padding:3px 7px;
  border-radius:999px;
  font-size:.65rem;
  font-weight:900;
}

.team-member-status--approved {
  color:#13705b;
  background:#def6ed;
}

.team-member-status--pending {
  color:#a35c00;
  background:#fff0d9;
}

.team-member-card__admin-actions {
  display:flex;
  flex-wrap:wrap;
  gap:5px;
  margin-top:10px;
  padding-top:9px;
  border-top:1px solid #e4eaf4;
}

.team-member-card__admin-actions form {
  margin:0;
}

.team-mini-button {
  min-height:31px !important;
  padding:5px 8px !important;
  border:1px solid #c2d2eb !important;
  border-radius:8px !important;
  color:#315b99 !important;
  background:#f4f7fc !important;
  box-shadow:none !important;
  font-size:.69rem !important;
}

.team-mini-button--danger {
  color:#a02848 !important;
  border-color:#e4bdc8 !important;
  background:#fff5f7 !important;
}

.team-representative-tools {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px;
  margin:14px 0;
}

.team-representative-tools > section {
  padding:14px;
  border:1px solid #dae4f4;
  border-radius:13px;
  background:#fafcff;
}

.team-representative-tools h3 {
  margin:0 0 8px;
  color:#355384;
  font-size:.9rem;
}

.team-compact-form {
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:8px;
  align-items:end;
}

.team-compact-form input {
  margin:0 !important;
}

.team-share-card {
  display:grid;
  grid-template-columns:62px minmax(0,1fr) auto;
  gap:16px;
  align-items:center;
  margin:17px 0;
  padding:18px;
  border:1px solid #a9dcca;
  border-radius:16px;
  background:linear-gradient(135deg,#effff8,#fff);
}

.team-share-card__icon {
  width:58px;
  height:58px;
  display:grid;
  place-items:center;
  border-radius:17px;
  color:#fff;
  background:linear-gradient(135deg,#20ad82,var(--contest-green));
}

.team-share-card__icon svg {
  width:38px;
  height:38px;
  fill:none;
  stroke:currentColor;
  stroke-width:3;
  stroke-linecap:round;
  stroke-linejoin:round;
}

.team-share-card h2 {
  margin:0 0 5px;
  color:#176c59 !important;
  font-size:1.1rem;
}

.team-share-card ul {
  margin:0;
  padding-left:1.2em;
  color:#4f675f;
  font-size:.83rem;
}

.team-share-card li {
  margin:2px 0;
}

.team-change-section {
  margin-top:22px;
  padding:18px;
  border:1px solid #e3d9ef;
  border-radius:16px;
  background:#fcfaff;
}

.team-change-section h2 {
  margin:0 0 4px;
  font-size:1.05rem;
}

.team-change-section > p {
  margin:0 0 12px;
}

.team-change-options {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
}

.team-change-options > div {
  padding:12px;
  border:1px solid #dce4f1;
  border-radius:11px;
  background:#fff;
}

.team-change-options > div.is-danger {
  border-color:#ebc4ce;
  background:#fff8fa;
}

.team-change-options strong {
  color:#415b85;
}

.team-change-options .is-danger strong {
  color:#a42a4b;
}

.team-change-options p {
  margin:4px 0 9px;
  font-size:.82rem;
}

.team-rule-summary {
  margin-top:23px;
  padding:19px;
  border-top:1px solid #e0e7f2;
  border-radius:15px;
  background:#f8faff;
}

.team-rule-summary h2 {
  margin:0 0 12px;
  font-size:1rem;
}

.team-rule-grid {
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:9px;
}

.team-rule-grid > div {
  padding:11px 9px;
  border-radius:11px;
  background:#fff;
  text-align:center;
}

.team-rule-grid strong,
.team-rule-grid span {
  display:block;
}

.team-rule-grid strong {
  color:#295499;
  font-size:.88rem;
}

.team-rule-grid span {
  margin-top:2px;
  color:#748198;
  font-size:.69rem;
}

.team-rule-summary > p {
  margin:12px 0 0;
  color:#69768a;
  font-size:.82rem;
}

@media (hover:hover) {

  .team-button:hover {
    transform:translateY(-1px);
  }

  .team-choice-card--team:hover {
    border-color:#8db7f7;
    box-shadow:0 11px 26px rgba(13,86,216,.10);
  }
}

@media (max-width:850px) {

  .team-flow {
    grid-template-columns:1fr 1fr;
  }

  .team-flow > i {
    display:none;
  }

  .team-members-grid {
    grid-template-columns:1fr 1fr;
  }

  .team-share-card {
    grid-template-columns:58px minmax(0,1fr);
  }

  .team-share-card > .team-button {
    grid-column:1 / -1;
    width:100%;
  }

  .team-rule-grid {
    grid-template-columns:1fr 1fr;
  }
}

@media (max-width:700px) {

  .team-page .team-wrap {
    width:calc(100% - 20px);
  }

  .team-page .team-panel {
    padding:23px 15px 28px;
  }

  .team-guide {
    grid-template-columns:72px minmax(0,1fr);
    gap:13px;
    padding:17px 14px;
  }

  .team-guide__art {
    width:68px;
    height:68px;
    border-radius:19px;
  }

  .team-guide__art svg {
    width:52px;
    height:48px;
  }

  .team-guide h2 {
    font-size:1.1rem;
  }

  .team-user-id-card {
    grid-template-columns:1fr;
    gap:7px;
  }

  .team-invitation-card {
    grid-template-columns:1fr;
  }

  .team-choice-grid {
    grid-template-columns:1fr;
  }

  .team-invite-fields {
    grid-template-columns:1fr;
  }

  .team-current__header {
    flex-direction:column;
  }

  .team-members-grid {
    grid-template-columns:1fr;
  }

  .team-representative-tools {
    grid-template-columns:1fr;
  }

  .team-change-options {
    grid-template-columns:1fr;
  }
}

@media (max-width:470px) {

  .team-flow {
    grid-template-columns:1fr;
  }

  .team-member-progress {
    grid-template-columns:1fr;
  }

  .team-compact-form {
    grid-template-columns:1fr;
  }

  .team-page .team-compact-form button {
    width:100%;
  }

  .team-share-card {
    grid-template-columns:1fr;
  }

  .team-rule-grid {
    grid-template-columns:1fr;
  }
}


/* ==========================================================================
   12. Entry v3 / entry.php
   ========================================================================== */

/* =========================================================
   エントリー v3
   自動保存・変更履歴対応
   ========================================================= */

.entry-v3-page .entry-v3-wrap {
  width:min(var(--contest-max), calc(100% - 40px));
}

.entry-v3-page .entry-v3-panel {
  padding:34px 38px 40px;
}

.entry-v3-kicker {
  display:block;
  margin-bottom:4px;
  color:#6d82ad;
  font-size:.67rem;
  font-weight:950;
  letter-spacing:.12em;
}

.entry-v3-hero {
  display:grid;
  grid-template-columns:88px minmax(0,1fr) 175px;
  gap:20px;
  align-items:center;
  padding:23px 25px;
  border:1px solid #c8dbff;
  border-radius:19px;
  background:
    radial-gradient(circle at 9% 18%,rgba(0,174,234,.12),transparent 11rem),
    radial-gradient(circle at 88% 10%,rgba(113,72,232,.08),transparent 12rem),
    linear-gradient(135deg,#f3f8ff,#fff 60%,#fbf8ff);
}

.entry-v3-hero__icon {
  width:78px;
  height:78px;
  display:grid;
  place-items:center;
  border-radius:22px;
  color:#fff;
  background:linear-gradient(
    135deg,
    var(--contest-cyan),
    var(--contest-blue),
    var(--contest-purple)
  );
  box-shadow:0 9px 20px rgba(13,86,216,.18);
}

.entry-v3-hero__icon svg {
  width:52px;
  height:52px;
  fill:none;
  stroke:currentColor;
  stroke-width:3;
  stroke-linecap:round;
  stroke-linejoin:round;
}

.entry-v3-hero h2 {
  margin:0 0 4px;
  color:var(--contest-navy) !important;
  font-size:1.4rem;
}

.entry-v3-hero p {
  margin:0;
  color:#52637f;
}

.entry-v3-deadline {
  padding:12px 10px;
  border:2px dashed #f0a64f;
  border-radius:14px;
  background:#fffaf1;
  text-align:center;
}

.entry-v3-deadline span,
.entry-v3-deadline strong,
.entry-v3-deadline small {
  display:block;
}

.entry-v3-deadline span {
  color:#8a682a;
  font-size:.73rem;
  font-weight:850;
}

.entry-v3-deadline strong {
  color:#b75a00;
  font-size:1.16rem;
}

.entry-v3-deadline small {
  color:#806d4a;
}

.entry-v3-simple-rules {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:10px;
  margin:15px 0;
}

.entry-v3-simple-rules > div {
  position:relative;
  min-height:92px;
  padding:13px 12px 12px 48px;
  border:1px solid #d9e3f5;
  border-radius:14px;
  background:#fbfcff;
}

.entry-v3-simple-rules > div > span {
  position:absolute;
  left:12px;
  top:13px;
  width:27px;
  height:27px;
  display:grid;
  place-items:center;
  border-radius:50%;
  color:#fff;
  background:var(--contest-blue);
  font-size:.75rem;
  font-weight:950;
}

.entry-v3-simple-rules strong,
.entry-v3-simple-rules small {
  display:block;
}

.entry-v3-simple-rules strong {
  color:#244987;
  font-size:.88rem;
}

.entry-v3-simple-rules small {
  margin-top:3px;
  color:#758299;
  font-size:.72rem;
  line-height:1.55;
}

.entry-v3-owner {
  display:grid;
  grid-template-columns:54px minmax(0,1fr) auto;
  gap:14px;
  align-items:center;
  margin:14px 0;
  padding:15px 17px;
  border:1px solid #d8e3f4;
  border-radius:15px;
  background:#f9fbff;
}

.entry-v3-owner__icon {
  width:50px;
  height:50px;
  display:grid;
  place-items:center;
  border-radius:15px;
  color:#fff;
  background:linear-gradient(
    135deg,
    var(--contest-cyan),
    var(--contest-blue)
  );
}

.entry-v3-owner__icon svg {
  width:35px;
  height:35px;
  fill:none;
  stroke:currentColor;
  stroke-width:3;
  stroke-linecap:round;
}

.entry-v3-owner h2 {
  margin:0;
  color:#244786 !important;
  font-size:1.05rem;
}

.entry-v3-owner p {
  margin:2px 0 0;
  color:#69768b;
  font-size:.82rem;
}

.entry-v3-owner__badge {
  padding:5px 9px;
  border-radius:999px;
  color:#2457a2;
  background:#e7effe;
  font-size:.72rem;
  font-weight:900;
}

.entry-v3-flash,
.entry-v3-blocker,
.entry-v3-status,
.entry-v3-unconfirmed {
  margin:14px 0;
  padding:13px 15px;
  border-radius:13px;
}

.entry-v3-flash--success {
  border:1px solid #a7dac9;
  color:#116b58;
  background:#effff9;
}

.entry-v3-flash--error {
  border:1px solid #efb9c6;
  color:#a02749;
  background:#fff4f6;
}

.entry-v3-blocker {
  border:1px solid #d8e3f3;
  background:#f8fbff;
}

.entry-v3-blocker--orange {
  border-color:#f0c686;
  background:#fff9ed;
}

.entry-v3-blocker strong {
  display:block;
  color:#9b5a08;
}

.entry-v3-blocker p {
  margin:3px 0 8px;
}

.entry-v3-blocker a {
  color:#1452ae;
  font-weight:900;
}

.entry-v3-status strong,
.entry-v3-unconfirmed strong {
  display:block;
}

.entry-v3-status p,
.entry-v3-unconfirmed p {
  margin:3px 0 0;
}

.entry-v3-status--submitted {
  border:1px solid #99d6c0;
  color:#146c58;
  background:#effff8;
}

.entry-v3-status--locked {
  border:1px solid #c7b4ee;
  color:#654a9d;
  background:#f7f2ff;
}

.entry-v3-status--error {
  border:1px solid #efb8c5;
  color:#9f2848;
  background:#fff4f6;
}

.entry-v3-unconfirmed {
  border:1px solid #f0cc82;
  color:#795a1f;
  background:#fff9e9;
}

.entry-v3-autosave {
  position:sticky;
  top:88px;
  z-index:20;
  display:flex;
  align-items:center;
  gap:9px;
  width:max-content;
  max-width:100%;
  margin:13px 0 14px auto;
  padding:8px 11px;
  border:1px solid #cbd8ed;
  border-radius:999px;
  background:rgba(255,255,255,.96);
  box-shadow:0 6px 18px rgba(8,41,120,.08);
}

.entry-v3-autosave__dot {
  width:10px;
  height:10px;
  flex:0 0 10px;
  border-radius:50%;
  background:var(--contest-green);
}

.entry-v3-autosave strong,
.entry-v3-autosave small {
  display:block;
  line-height:1.35;
}

.entry-v3-autosave strong {
  color:#31507e;
  font-size:.77rem;
}

.entry-v3-autosave small {
  color:#738098;
  font-size:.68rem;
}

.entry-v3-autosave.is-saving .entry-v3-autosave__dot {
  background:var(--contest-orange);
  animation:entryPulse 1s infinite;
}

.entry-v3-autosave.is-saved .entry-v3-autosave__dot {
  background:var(--contest-green);
}

.entry-v3-autosave.is-error .entry-v3-autosave__dot,
.entry-v3-autosave.is-conflict .entry-v3-autosave__dot {
  background:var(--contest-pink);
}

.entry-v3-autosave.is-error,
.entry-v3-autosave.is-conflict {
  border-color:#e9b2c0;
  background:#fff7f9;
}

.entry-v3-autosave.is-disabled .entry-v3-autosave__dot {
  background:#9ba5b4;
}

@keyframes entryPulse {
  0% { opacity:.4; }
  50% { opacity:1; }
  100% { opacity:.4; }
}

.entry-v3-judge-note {
  display:grid;
  grid-template-columns:46px minmax(0,1fr);
  gap:12px;
  margin:17px 0;
  padding:15px 17px;
  border:1px solid #c7d7f5;
  border-radius:15px;
  background:linear-gradient(135deg,#f3f7ff,#fff);
}

.entry-v3-judge-note > div:first-child {
  width:42px;
  height:42px;
  display:grid;
  place-items:center;
  border-radius:13px;
  color:#fff;
  background:linear-gradient(
    135deg,
    var(--contest-purple),
    var(--contest-blue)
  );
  font-weight:950;
}

.entry-v3-judge-note h2 {
  margin:0 0 3px;
  color:#254989 !important;
  font-size:1rem;
}

.entry-v3-judge-note p {
  margin:0;
  color:#586881;
  font-size:.86rem;
}

.entry-v3-judge-note details {
  margin-top:7px;
}

.entry-v3-judge-note summary {
  color:#2857a4;
  font-size:.82rem;
  font-weight:850;
  cursor:pointer;
}

.entry-v3-judge-note ul {
  margin:7px 0 0;
}

.entry-v3-form {
  display:grid;
  gap:14px;
}

.entry-v3-section {
  display:grid;
  grid-template-columns:55px minmax(0,1fr);
  gap:14px;
  padding:19px 20px 20px 13px;
  border:1px solid #dbe5f5;
  border-radius:17px;
  background:#fff;
}

.entry-v3-section--idea {
  border-color:#b8d3ff;
  background:linear-gradient(135deg,#f7faff,#fff);
}

.entry-v3-section__number {
  width:43px;
  height:43px;
  display:grid;
  place-items:center;
  border-radius:14px;
  color:#fff;
  background:linear-gradient(
    135deg,
    var(--contest-cyan),
    var(--contest-blue)
  );
  font-size:1.05rem;
  font-weight:950;
}

.entry-v3-section--idea .entry-v3-section__number {
  background:linear-gradient(
    135deg,
    var(--contest-purple),
    var(--contest-blue)
  );
}

.entry-v3-section__body {
  min-width:0;
}

.entry-v3-section__heading {
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
}

.entry-v3-section__heading h2 {
  margin:0;
  color:#244889 !important;
  font-size:1.15rem;
}

.entry-v3-flex-label,
.entry-v3-important-label {
  display:inline-flex;
  padding:4px 8px;
  border-radius:999px;
  color:#2457a2;
  background:#e6efff;
  font-size:.69rem;
  font-weight:900;
  white-space:nowrap;
}

.entry-v3-important-label {
  color:#a15300;
  background:#fff0d8;
}

.entry-v3-guide {
  margin:8px 0 10px;
  color:#62718a;
  font-size:.86rem;
}

.entry-v3-ai-free-note,
.entry-v3-ai-after-note,
.entry-v3-ai-rule {
  margin:9px 0 11px;
  padding:11px 13px;
  border-radius:11px;
}

.entry-v3-ai-free-note {
  border-left:4px solid var(--contest-orange);
  color:#705424;
  background:#fff8e9;
}

.entry-v3-ai-after-note {
  border-left:4px solid var(--contest-green);
  color:#196c5a;
  background:#effff9;
}

.entry-v3-ai-rule {
  border-left:4px solid var(--contest-blue);
  color:#38557e;
  background:#f2f7ff;
}

.entry-v3-ai-free-note strong,
.entry-v3-ai-after-note strong,
.entry-v3-ai-rule strong {
  display:block;
}

.entry-v3-ai-free-note p,
.entry-v3-ai-after-note p,
.entry-v3-ai-rule p {
  margin:3px 0 0;
  font-size:.84rem;
}

.entry-v3-page .entry-v3-form label {
  margin-top:10px;
}

.entry-v3-page .entry-v3-form textarea {
  min-height:150px;
  line-height:1.75;
}

.entry-v3-example {
  margin-top:9px;
  border:1px solid #dce5f3;
  border-radius:11px;
  background:#fafcff;
}

.entry-v3-example summary {
  padding:9px 11px;
  color:#315a9e;
  font-size:.8rem;
  font-weight:850;
  cursor:pointer;
}

.entry-v3-example > div {
  padding:1px 12px 12px;
  color:#52617a;
  font-size:.84rem;
}

.entry-v3-example p {
  margin:4px 0;
}

.entry-v3-example small {
  color:#768398;
}

.entry-v3-example hr {
  margin:10px 0;
}

.entry-v3-tools {
  display:grid;
  gap:8px;
}

.entry-v3-tool-row {
  display:grid;
  grid-template-columns:1fr 1.45fr;
  gap:10px;
  padding:10px;
  border:1px solid #e0e7f2;
  border-radius:11px;
  background:#fafcff;
}

.entry-v3-tool-row label {
  margin:0 !important;
  color:#496187 !important;
  font-size:.76rem;
}

.entry-v3-tool-row input {
  margin-top:4px !important;
}

.entry-v3-change-note {
  padding:17px 19px;
  border:1px solid #d5c7ef;
  border-radius:16px;
  background:#faf7ff;
}

.entry-v3-change-note h2 {
  margin:0;
  font-size:1rem;
}

.entry-v3-change-note h2 small {
  color:#79859a;
  font-size:.72rem;
}

.entry-v3-change-note p {
  margin:4px 0 8px;
  color:#637088;
  font-size:.83rem;
}

.entry-v3-submit-check {
  padding:17px 19px;
  border:2px solid #f0b86a;
  border-radius:16px;
  background:#fff9ef;
}

.entry-v3-submit-check h2 {
  margin:0 0 9px;
  color:#975706 !important;
  font-size:1.02rem;
}

.entry-v3-submit-check label {
  display:flex !important;
  gap:9px;
  align-items:flex-start;
  margin:8px 0 !important;
  padding:10px 11px;
  border-radius:10px;
  color:#624d2c !important;
  background:#fff;
}

.entry-v3-submit-check label input {
  width:auto !important;
  margin:6px 0 0 !important;
  flex:0 0 auto;
}

.entry-v3-submit-check p {
  margin:10px 0 0;
  color:#725f3e;
  font-size:.8rem;
}

.entry-v3-actions {
  display:flex;
  flex-wrap:wrap;
  gap:9px;
  align-items:center;
  justify-content:flex-end;
  margin-top:2px;
  padding-top:5px;
}

.entry-v3-page .entry-v3-actions button {
  width:auto;
  margin:0;
}

.entry-v3-button {
  min-height:44px !important;
  padding:10px 17px !important;
  border-radius:11px !important;
  font-size:.88rem !important;
}

.entry-v3-button--primary {
  color:#fff !important;
  background:linear-gradient(
    135deg,
    var(--contest-blue),
    #103b9f
  ) !important;
}

.entry-v3-button--light {
  color:#25579f !important;
  border:1px solid #bfd0ed !important;
  background:#f1f6ff !important;
  box-shadow:none !important;
}

.entry-v3-representative-note {
  max-width:560px;
  padding:9px 12px;
  border-radius:10px;
  color:#5f4a88;
  background:#f2edff;
  font-size:.82rem;
  font-weight:800;
}

.entry-v3-history {
  margin-top:19px;
  border:1px solid #d6e0f0;
  border-radius:15px;
  background:#fafcff;
}

.entry-v3-history > details > summary {
  display:flex;
  justify-content:space-between;
  gap:12px;
  padding:14px 16px;
  color:#294f91;
  font-weight:900;
  cursor:pointer;
}

.entry-v3-history > details > summary strong {
  min-width:34px;
  padding:2px 8px;
  border-radius:999px;
  color:#fff;
  background:var(--contest-blue);
  text-align:center;
  font-size:.72rem;
}

.entry-v3-history__body {
  padding:0 14px 14px;
}

.entry-v3-history__lead {
  margin:0 0 9px;
  color:#6d798d;
  font-size:.8rem;
}

.entry-v3-revision {
  margin-top:9px;
  padding:12px 13px;
  border:1px solid #dce4f1;
  border-radius:12px;
  background:#fff;
}

.entry-v3-revision__head {
  display:flex;
  justify-content:space-between;
  gap:12px;
  align-items:flex-start;
}

.entry-v3-revision__head span {
  display:block;
  color:#7c889c;
  font-size:.67rem;
  font-weight:800;
}

.entry-v3-revision__head strong {
  color:#31548b;
}

.entry-v3-revision__head small {
  color:#7b8798;
  text-align:right;
}

.entry-v3-revision__note {
  margin:8px 0;
  padding:8px 10px;
  border-radius:9px;
  color:#5d5272;
  background:#f6f2ff;
  font-size:.8rem;
}

.entry-v3-revision > details {
  margin-top:8px;
}

.entry-v3-revision > details > summary {
  color:#315ca2;
  font-size:.8rem;
  font-weight:850;
  cursor:pointer;
}

.entry-v3-revision dl {
  display:grid;
  grid-template-columns:120px minmax(0,1fr);
  gap:7px 12px;
  margin:10px 0 0;
  padding-top:10px;
  border-top:1px solid #e4eaf3;
}

.entry-v3-revision dt {
  margin:0 !important;
  color:#738097 !important;
  font-size:.76rem;
}

.entry-v3-revision dd {
  margin:0;
  color:#3f506b;
}

.entry-v3-revision dd ul {
  margin:0;
  padding-left:1.2em;
}

.entry-v3-prewrap {
  white-space:normal;
}

.entry-v3-help {
  margin-top:19px;
  padding:17px 19px;
  border-top:1px solid #e0e7f2;
  border-radius:14px;
  background:#f8faff;
}

.entry-v3-help h2 {
  margin:0 0 5px;
  font-size:1rem;
}

.entry-v3-help p {
  margin:5px 0;
  color:#657289;
  font-size:.83rem;
}

@media (max-width:800px) {

  .entry-v3-hero {
    grid-template-columns:74px minmax(0,1fr);
  }

  .entry-v3-deadline {
    grid-column:1 / -1;
  }

  .entry-v3-simple-rules {
    grid-template-columns:1fr;
  }

  .entry-v3-tool-row {
    grid-template-columns:1fr;
  }
}

@media (max-width:700px) {

  .entry-v3-page .entry-v3-wrap {
    width:calc(100% - 20px);
  }

  .entry-v3-page .entry-v3-panel {
    padding:23px 14px 28px;
  }

  .entry-v3-hero {
    gap:11px;
    padding:16px 14px;
  }

  .entry-v3-hero__icon {
    width:62px;
    height:62px;
    border-radius:18px;
  }

  .entry-v3-hero__icon svg {
    width:42px;
    height:42px;
  }

  .entry-v3-owner {
    grid-template-columns:45px minmax(0,1fr);
  }

  .entry-v3-owner__icon {
    width:42px;
    height:42px;
  }

  .entry-v3-owner__badge {
    grid-column:1 / -1;
    width:max-content;
  }

  .entry-v3-autosave {
    top:72px;
  }

  .entry-v3-section {
    grid-template-columns:43px minmax(0,1fr);
    gap:9px;
    padding:16px 12px 17px 8px;
  }

  .entry-v3-section__number {
    width:37px;
    height:37px;
    border-radius:12px;
  }

  .entry-v3-section__heading {
    gap:7px;
  }

  .entry-v3-flex-label,
  .entry-v3-important-label {
    white-space:normal;
    text-align:center;
  }

  .entry-v3-actions {
    display:grid;
    grid-template-columns:1fr;
  }

  .entry-v3-page .entry-v3-actions button {
    width:100%;
  }

  .entry-v3-revision dl {
    grid-template-columns:1fr;
  }
}

@media (max-width:440px) {

  .entry-v3-section {
    grid-template-columns:1fr;
  }

  .entry-v3-section__heading {
    align-items:flex-start;
  }

  .entry-v3-section__number {
    margin-bottom:-3px;
  }

  .entry-v3-judge-note {
    grid-template-columns:1fr;
  }
}


/* ==========================================================================
   13. Judging v2 / judging.php
   ========================================================================== */

/* =========================================================
   審査基準ページ v2
   HOME画像の人物・ロボットを活用した大人っぽい版
   ========================================================= */

.judging-v2-page .judging-v2-wrap {
  width:min(var(--contest-max), calc(100% - 40px));
}

.judging-v2-page .judging-v2-panel {
  padding:34px 38px 42px;
}

.judging-v2-root {
  --judging-home-art:url('images/home_main.png');
}

.judging-v2-kicker {
  display:block;
  margin-bottom:4px;
  color:#6d82ad;
  font-size:.68rem;
  font-weight:950;
  letter-spacing:.13em;
}

.judging-v2-hero {
  display:grid;
  grid-template-columns:minmax(0,1.05fr) minmax(310px,.95fr);
  gap:26px;
  align-items:center;
  padding:28px;
  border:1px solid #cbdcff;
  border-radius:24px;
  background:
    radial-gradient(circle at 10% 18%,rgba(0,174,234,.12),transparent 13rem),
    radial-gradient(circle at 92% 10%,rgba(113,72,232,.09),transparent 14rem),
    linear-gradient(135deg,#f3f8ff,#fff 58%,#fbf8ff);
}

.judging-v2-hero__copy h2 {
  margin:0 0 9px;
  color:var(--contest-navy) !important;
  font-size:2rem;
  line-height:1.32;
}

.judging-v2-hero__copy h2 span {
  color:var(--contest-blue);
}

.judging-v2-hero__copy p {
  margin:0;
  color:#53637d;
  font-size:.98rem;
  line-height:1.9;
}

.judging-v2-summary {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:8px;
  margin-top:18px;
}

.judging-v2-summary > div {
  padding:11px 10px;
  border:1px solid #d9e4f6;
  border-radius:13px;
  background:rgba(255,255,255,.86);
  text-align:center;
}

.judging-v2-summary span,
.judging-v2-summary strong {
  display:block;
}

.judging-v2-summary span {
  color:#7a8799;
  font-size:.72rem;
  font-weight:800;
}

.judging-v2-summary strong {
  color:#244b8d;
  font-size:1.12rem;
}

.judging-v2-note-inline {
  margin-top:14px;
  padding:12px 14px;
  border-left:4px solid var(--contest-blue);
  border-radius:12px;
  color:#4a5e81;
  background:#f3f7ff;
  font-size:.84rem;
  line-height:1.7;
}

.judging-v2-note-inline strong {
  margin-right:.5em;
  color:#244c92;
}

.judging-v2-hero__visual {
  position:relative;
  min-height:360px;
}

.judging-v2-hero__art,
.judging-v2-final__art,
.judging-v2-shot {
  background-image:
    linear-gradient(135deg,rgba(20,53,116,.08),rgba(20,53,116,.04)),
    var(--judging-home-art);
  background-repeat:no-repeat;
  background-size:cover;
  border:1px solid rgba(73,112,179,.14);
}

.judging-v2-hero__art {
  position:absolute;
  inset:0;
  border-radius:22px;
  background-position:78% 48%;
  box-shadow:0 16px 36px rgba(12,53,126,.10);
}

.judging-v2-bubble {
  display:inline-block;
  max-width:280px;
  padding:9px 12px;
  border:2px solid #335c9b;
  border-radius:16px;
  color:#24497f;
  background:rgba(255,255,255,.97);
  font-size:.78rem;
  font-weight:850;
  line-height:1.6;
}

.judging-v2-bubble--hero {
  position:absolute;
  right:10px;
  top:16px;
}

.judging-v2-header-block {
  display:grid;
  grid-template-columns:300px minmax(0,1fr);
  gap:20px;
  align-items:end;
  margin:20px 0 14px;
  padding:0 2px;
}

.judging-v2-header-block h2 {
  margin:0;
  color:#274d8e !important;
  font-size:1.28rem;
}

.judging-v2-header-block p {
  margin:0;
  color:#5d6c83;
  font-size:.89rem;
  line-height:1.8;
}

.judging-v2-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:16px;
}

.judging-v2-card {
  position:relative;
  padding:18px;
  overflow:hidden;
  border:1px solid #d8e3f2;
  border-radius:20px;
  background:#fff;
  box-shadow:0 8px 24px rgba(12,53,126,.05);
}

.judging-v2-card:before {
  content:"";
  position:absolute;
  left:0;
  top:0;
  bottom:0;
  width:5px;
  background:var(--contest-blue);
}

.judging-v2-card--idea:before { background:var(--contest-orange); }
.judging-v2-card--ai:before { background:var(--contest-blue); }
.judging-v2-card--creative:before { background:var(--contest-purple); }
.judging-v2-card--appeal:before { background:var(--contest-pink); }

.judging-v2-card__head {
  display:grid;
  grid-template-columns:42px minmax(0,1fr) 74px;
  gap:10px;
  align-items:start;
}

.judging-v2-card__no {
  width:39px;
  height:39px;
  display:grid;
  place-items:center;
  border-radius:12px;
  color:#fff;
  background:#355a9a;
  font-size:.73rem;
  font-weight:950;
}

.judging-v2-card--idea .judging-v2-card__no { background:var(--contest-orange); }
.judging-v2-card--ai .judging-v2-card__no { background:var(--contest-blue); }
.judging-v2-card--creative .judging-v2-card__no { background:var(--contest-purple); }
.judging-v2-card--appeal .judging-v2-card__no { background:var(--contest-pink); }

.judging-v2-card__head h2 {
  margin:0;
  color:#274b87 !important;
  font-size:1.18rem;
}

.judging-v2-card__head small {
  display:block;
  margin-top:2px;
  color:#78849a;
  font-size:.7rem;
  font-weight:800;
}

.judging-v2-score {
  display:flex;
  justify-content:center;
  align-items:baseline;
  gap:2px;
  padding:7px 6px;
  border-radius:13px;
  background:#f2f6fd;
}

.judging-v2-score strong {
  color:#244d91;
  font-size:1.65rem;
  line-height:1;
}

.judging-v2-score span {
  color:#63738b;
  font-size:.72rem;
  font-weight:850;
}

.judging-v2-shot {
  position:relative;
  min-height:190px;
  margin:13px 0 11px;
  overflow:hidden;
  border-radius:16px;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.45);
}

.judging-v2-shot .judging-v2-bubble {
  position:absolute;
  left:12px;
  bottom:12px;
  max-width:72%;
}

.judging-v2-shot--presenter {
  background-position:67% 29%;
}

.judging-v2-shot--robot {
  background-position:57% 62%;
}

.judging-v2-shot--team {
  background-position:82% 52%;
}

.judging-v2-shot--student {
  background-position:95% 62%;
}

.judging-v2-shot--wide {
  min-height:100%;
  border-radius:20px;
  background-position:79% 46%;
}

.judging-v2-lead {
  margin:0 0 11px;
  color:#53627a;
  font-size:.87rem;
  line-height:1.78;
}

.judging-v2-checklist {
  padding:12px 13px;
  border-radius:12px;
  background:#f5f8fd;
}

.judging-v2-checklist strong {
  display:block;
  margin-bottom:4px;
  color:#2e579b;
  font-size:.81rem;
}

.judging-v2-checklist ul {
  margin:0;
  padding-left:1.22em;
}

.judging-v2-checklist li {
  margin:3px 0;
  color:#5a6980;
  font-size:.79rem;
  line-height:1.58;
}

.judging-v2-process {
  display:grid;
  grid-template-columns:minmax(280px,.92fr) minmax(0,1.08fr);
  gap:22px;
  align-items:stretch;
  margin-top:20px;
  padding:21px;
  border:1px solid #d4e0f2;
  border-radius:22px;
  background:linear-gradient(135deg,#f8faff,#fff);
}

.judging-v2-process__visual {
  min-height:320px;
}

.judging-v2-process__body h2 {
  margin:0 0 10px;
  color:#284d8c !important;
  font-size:1.2rem;
}

.judging-v2-process__body ol {
  margin:0;
  padding-left:1.25em;
}

.judging-v2-process__body li {
  margin:0 0 10px;
  color:#54647d;
}

.judging-v2-process__body li strong {
  display:block;
  color:#274b88;
  margin-bottom:2px;
}

.judging-v2-process__body li p {
  margin:0;
  font-size:.84rem;
  line-height:1.7;
}

.judging-v2-process__note {
  margin-top:8px;
  padding:12px 14px;
  border-left:4px solid var(--contest-green);
  border-radius:12px;
  color:#476071;
  background:#eefdf7;
  font-size:.84rem;
  line-height:1.7;
}

.judging-v2-process__note strong {
  color:#186956;
}

.judging-v2-faq {
  margin-top:20px;
  padding:20px;
  border-radius:20px;
  background:#f6f8fe;
}

.judging-v2-faq__head h2 {
  margin:0;
  color:#294d8d !important;
  font-size:1.15rem;
}

.judging-v2-faq__head p {
  margin:6px 0 0;
  color:#607086;
  font-size:.83rem;
  line-height:1.75;
}

.judging-v2-faq__grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
  margin-top:12px;
}

.judging-v2-faq__grid article {
  padding:15px 15px 13px;
  border:1px solid #dce4f1;
  border-radius:14px;
  background:#fff;
}

.judging-v2-note-badge {
  display:inline-flex;
  align-items:center;
  padding:4px 8px;
  border-radius:999px;
  color:#2856a2;
  background:#e8efff;
  font-size:.68rem;
  font-weight:950;
  letter-spacing:.06em;
}

.judging-v2-faq__grid h3 {
  margin:8px 0 5px;
  color:#365486;
  font-size:.9rem;
}

.judging-v2-faq__grid p {
  margin:0;
  color:#68768b;
  font-size:.79rem;
  line-height:1.68;
}

.judging-v2-final {
  display:grid;
  grid-template-columns:190px minmax(0,1fr);
  gap:22px;
  align-items:center;
  margin-top:20px;
  padding:24px;
  border:1px solid #bcd2f7;
  border-radius:22px;
  background:
    radial-gradient(circle at 7% 30%,rgba(0,174,234,.12),transparent 10rem),
    linear-gradient(135deg,#f3f8ff,#fff);
}

.judging-v2-final__art {
  min-height:215px;
  border-radius:20px;
  background-position:60% 58%;
}

.judging-v2-final__body h2 {
  margin:0 0 8px;
  color:var(--contest-navy) !important;
  font-size:1.34rem;
  line-height:1.5;
}

.judging-v2-final__body p {
  margin:0;
  color:#5e6e84;
  font-size:.86rem;
  line-height:1.82;
}

.judging-v2-actions {
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-top:13px;
}

.judging-v2-button {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:42px;
  padding:9px 15px;
  border-radius:10px;
  text-decoration:none !important;
  font-size:.82rem;
  font-weight:900;
}

.judging-v2-button--primary {
  color:#fff !important;
  background:linear-gradient(135deg,var(--contest-blue),#173f9f);
}

.judging-v2-button--sub {
  color:#2857a2 !important;
  border:1px solid #bed0ee;
  background:#f3f7ff;
}

@media (max-width:960px) {

  .judging-v2-grid {
    grid-template-columns:1fr;
  }

  .judging-v2-process {
    grid-template-columns:1fr;
  }
}

@media (max-width:760px) {

  .judging-v2-page .judging-v2-wrap {
    width:calc(100% - 20px);
  }

  .judging-v2-page .judging-v2-panel {
    padding:22px 14px 28px;
  }

  .judging-v2-hero {
    grid-template-columns:1fr;
    padding:20px 16px;
  }

  .judging-v2-hero__visual {
    min-height:300px;
  }

  .judging-v2-header-block {
    grid-template-columns:1fr;
    gap:8px;
  }

  .judging-v2-final {
    grid-template-columns:1fr;
  }

  .judging-v2-final__art {
    min-height:180px;
  }
}

@media (max-width:560px) {

  .judging-v2-hero__copy h2 {
    font-size:1.55rem;
  }

  .judging-v2-summary,
  .judging-v2-faq__grid {
    grid-template-columns:1fr;
  }

  .judging-v2-card {
    padding:15px 13px;
  }

  .judging-v2-card__head {
    grid-template-columns:40px minmax(0,1fr) 63px;
  }

  .judging-v2-shot .judging-v2-bubble {
    max-width:82%;
    left:10px;
    right:10px;
  }

  .judging-v2-final {
    padding:18px 15px;
  }
}


/* ==========================================================================
   18. Header v2 / public information pages
   2026-09-02
   ========================================================================== */

/* ----- Header v2 ----- */
.contest-header-v2 {
  position:sticky;
  top:0;
  z-index:200;
  border-bottom:0;
  background:#fff;
  box-shadow:0 7px 24px rgba(8,41,120,.09);
  backdrop-filter:none;
}

.contest-header-v2 .contest-header-main {
  position:relative;
  z-index:2;
  border-bottom:1px solid #e7edf8;
  background:
    radial-gradient(circle at 10% 0%,rgba(0,174,234,.065),transparent 18rem),
    linear-gradient(180deg,#fff,#fbfdff);
}

.contest-header-v2 .contest-header-inner--main {
  min-height:72px;
  gap:12px;
}

.contest-header-v2 .contest-brand-v2 {
  flex:0 1 auto;
}

.contest-header-v2 .contest-brand-text strong {
  max-width:none;
  font-size:1rem;
  letter-spacing:.01em;
}

.contest-header-v2 .contest-brand-text small {
  color:#6b7998;
  font-size:.66rem;
}

.contest-header-v2 .contest-free-badge {
  min-height:30px;
  padding:4px 9px;
  font-size:.7rem;
  box-shadow:none;
}

.contest-header-tools {
  margin-left:auto;
  display:flex;
  align-items:center;
  gap:14px;
}

.contest-utility-nav,
.contest-account-nav {
  display:flex;
  align-items:center;
  gap:5px;
}

.contest-header-v2 .contest-utility-nav .contest-nav-link {
  min-height:30px;
  padding:4px 7px;
  color:#65738e;
  font-size:.72rem;
  font-weight:800;
}

.contest-header-v2 .contest-utility-nav .contest-nav-link:hover {
  color:var(--contest-blue);
  background:#f3f7ff;
}

.contest-header-v2 .contest-account-nav .contest-nav-link {
  min-height:38px;
  padding:6px 12px;
  font-size:.79rem;
}

.contest-header-v2 .contest-account-nav .account-primary {
  color:#fff;
  border:1px solid transparent;
  background:linear-gradient(135deg,var(--contest-blue),#173a9b);
  box-shadow:0 6px 15px rgba(13,86,216,.17);
}

.contest-header-v2 .contest-account-nav .signin {
  color:#214b95;
  border:1px solid #b8ccef;
  background:#fff;
}

.contest-header-v2 .contest-account-nav .logout-link {
  color:#9f3451;
  border:1px solid #efc7d2;
  background:#fff;
}

.contest-header-navrow {
  background:#fff;
}

.contest-header-v2 .contest-header-inner--nav {
  min-height:43px;
  justify-content:flex-start;
}

.contest-header-v2 .contest-desktop-nav {
  width:100%;
  margin-left:0;
  justify-content:flex-start;
  gap:2px;
}

.contest-header-v2 .contest-header-inner--nav .contest-nav-link {
  position:relative;
  min-height:42px;
  padding:7px 14px;
  border-radius:0;
  color:#29477d;
  background:transparent;
  font-size:.8rem;
  font-weight:850;
}

.contest-header-v2 .contest-header-inner--nav .contest-nav-link::after {
  content:"";
  position:absolute;
  left:14px;
  right:14px;
  bottom:0;
  height:3px;
  border-radius:999px 999px 0 0;
  background:transparent;
}

.contest-header-v2 .contest-header-inner--nav .contest-nav-link:hover,
.contest-header-v2 .contest-header-inner--nav .contest-nav-link.is-current {
  color:var(--contest-blue);
  background:#f6f9ff;
}

.contest-header-v2 .contest-header-inner--nav .contest-nav-link.is-current::after {
  background:linear-gradient(90deg,var(--contest-cyan),var(--contest-blue),var(--contest-purple));
}

.contest-header-v2 .contest-mobile-menu {
  margin-left:auto;
}

.contest-header-v2 .contest-mobile-menu-panel {
  position:absolute;
  right:0;
  top:48px;
  width:min(330px,calc(100vw - 22px));
  max-height:calc(100vh - 82px);
  overflow:auto;
  padding:12px;
  border:1px solid #d5e0f3;
  border-radius:16px;
  background:#fff;
  box-shadow:0 16px 38px rgba(7,37,112,.2);
}

.contest-header-v2 .contest-mobile-nav {
  position:static;
  width:auto;
  padding:0;
  border:0;
  border-radius:0;
  background:transparent;
  box-shadow:none;
}

.contest-mobile-menu-title {
  margin:2px 4px 6px;
  color:#71809c;
  font-size:.66rem;
  font-weight:900;
  letter-spacing:.08em;
}

.contest-mobile-menu-title--sub {
  margin-top:12px;
  padding-top:10px;
  border-top:1px solid #edf1f8;
}

.contest-header-v2 .contest-mobile-nav .contest-nav-link.mobile-link {
  min-height:42px;
  border-radius:10px;
}

.contest-header-v2 .contest-mobile-nav--account .account-primary {
  color:#fff;
  background:linear-gradient(135deg,var(--contest-blue),#173a9b);
}

.contest-header-v2 .contest-mobile-nav--account .signin {
  border:1px solid #b8ccef;
}

/* ----- Public info pages ----- */
.public-info-main {
  padding-top:28px;
}

.public-info-wrap {
  width:min(1080px,calc(100% - 34px));
  margin:0 auto;
}

.public-info-hero {
  position:relative;
  overflow:hidden;
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:24px;
  align-items:center;
  min-height:210px;
  padding:34px 38px;
  border:1px solid #cbdcff;
  border-radius:24px;
  background:
    radial-gradient(circle at 8% 12%,rgba(0,174,234,.13),transparent 15rem),
    radial-gradient(circle at 92% 8%,rgba(113,72,232,.10),transparent 15rem),
    linear-gradient(135deg,#f4f9ff,#fff 60%,#fbf8ff);
  box-shadow:0 14px 34px rgba(8,41,120,.09);
}

.public-info-hero--schedule {
  background:
    radial-gradient(circle at 8% 15%,rgba(17,140,120,.10),transparent 14rem),
    radial-gradient(circle at 92% 10%,rgba(0,174,234,.10),transparent 14rem),
    linear-gradient(135deg,#f4fffb,#fff 62%,#f5fbff);
}

.public-info-hero--workshop {
  background:
    radial-gradient(circle at 10% 15%,rgba(245,30,87,.08),transparent 15rem),
    radial-gradient(circle at 90% 12%,rgba(113,72,232,.12),transparent 15rem),
    linear-gradient(135deg,#fff7fa,#fff 58%,#f8f5ff);
}

.public-info-kicker {
  display:block;
  margin-bottom:5px;
  color:#7183a6;
  font-size:.68rem;
  font-weight:950;
  letter-spacing:.13em;
}

.public-info-hero h1 {
  margin:0;
  color:var(--contest-navy)!important;
  font-size:2rem;
  line-height:1.35;
}

.public-info-hero p {
  max-width:720px;
  margin:9px 0 0;
  color:#596b86;
  font-size:.93rem;
  line-height:1.85;
}

.public-info-hero__badge {
  min-width:104px;
  min-height:104px;
  display:grid;
  place-items:center;
  padding:14px;
  border-radius:28px;
  color:#fff;
  background:linear-gradient(135deg,var(--contest-cyan),var(--contest-blue),var(--contest-purple));
  box-shadow:0 12px 26px rgba(13,86,216,.19);
  text-align:center;
  font-size:.8rem;
  font-weight:950;
  letter-spacing:.06em;
}

.public-info-card {
  margin-top:18px;
  padding:24px 26px;
  border:1px solid #dbe5f5;
  border-radius:19px;
  background:#fff;
  box-shadow:0 9px 25px rgba(11,49,117,.055);
}

.public-info-card--soft {
  background:#f8fbff;
}

.public-info-theme-card {
  border-left:6px solid var(--contest-blue);
}

.public-info-label {
  display:inline-flex;
  margin-bottom:6px;
  padding:4px 9px;
  border-radius:999px;
  color:#2153a4;
  background:#eaf2ff;
  font-size:.7rem;
  font-weight:900;
}

.public-info-theme-card h2,
.public-info-card h2,
.public-info-next h2 {
  margin:0;
  color:#234780!important;
}

.public-info-theme-card h2 {
  font-size:1.3rem;
}

.public-info-card p {
  margin:7px 0 0;
  color:#5d6d84;
  font-size:.87rem;
  line-height:1.85;
}

.public-info-grid {
  display:grid;
  gap:12px;
  margin-top:18px;
}

.public-info-grid--3 {
  grid-template-columns:repeat(3,minmax(0,1fr));
}

.public-info-mini-card {
  position:relative;
  min-height:220px;
  padding:22px 20px 19px;
  border:1px solid #dbe5f5;
  border-radius:18px;
  background:#fff;
  box-shadow:0 9px 24px rgba(11,49,117,.05);
}

.public-info-number {
  display:grid;
  place-items:center;
  width:34px;
  height:34px;
  margin-bottom:13px;
  border-radius:11px;
  color:#fff;
  background:linear-gradient(135deg,var(--contest-cyan),var(--contest-blue));
  font-size:.7rem;
  font-weight:950;
}

.public-info-mini-card h2 {
  margin:0 0 7px;
  color:#254a86!important;
  font-size:1rem;
}

.public-info-mini-card p {
  margin:0;
  color:#617087;
  font-size:.8rem;
  line-height:1.75;
}

.public-info-mini-card .public-info-note,
.public-info-note {
  margin-top:8px;
  color:#7a6a50;
  font-size:.73rem;
}

.public-info-date {
  margin-bottom:7px!important;
  color:#174da2!important;
  font-size:1rem!important;
  font-weight:950;
}

.public-info-section-head {
  margin-bottom:8px;
}

.public-info-section-head h2 {
  font-size:1.08rem;
}

.public-info-chip-row {
  display:flex;
  flex-wrap:wrap;
  gap:7px;
  margin-top:13px;
}

.public-info-chip-row span {
  display:inline-flex;
  padding:6px 10px;
  border:1px solid #cbdaf1;
  border-radius:999px;
  color:#315791;
  background:#f8fbff;
  font-size:.74rem;
  font-weight:850;
}

.public-info-next {
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:20px;
  align-items:center;
  margin-top:20px;
  padding:20px 22px;
  border:1px solid #cdddf6;
  border-radius:18px;
  background:linear-gradient(135deg,#f4f8ff,#fff);
}

.public-info-next h2 {
  font-size:1.05rem;
}

.public-info-actions {
  display:flex;
  flex-wrap:wrap;
  justify-content:flex-end;
  gap:8px;
}

.public-info-button {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:40px;
  padding:7px 13px;
  border:1px solid #aec6ef;
  border-radius:10px;
  color:#24539f!important;
  background:#fff;
  text-decoration:none;
  font-size:.78rem;
  font-weight:900;
}

.public-info-button:hover {
  transform:translateY(-1px);
  box-shadow:0 6px 14px rgba(13,86,216,.10);
}

.public-info-button--accent {
  color:#fff!important;
  border-color:transparent;
  background:linear-gradient(135deg,var(--contest-blue),#163b9d);
}

.public-info-button--sub {
  color:#6546aa!important;
  border-color:#c9baf0;
}

.public-info-inline-link {
  color:#1455b4!important;
  font-weight:900;
}

/* Schedule */
.schedule-v2-timeline {
  position:relative;
  margin-top:12px;
}

.schedule-v2-timeline::before {
  content:"";
  position:absolute;
  left:104px;
  top:27px;
  bottom:28px;
  width:3px;
  border-radius:999px;
  background:linear-gradient(180deg,var(--contest-cyan),var(--contest-blue),var(--contest-purple),var(--contest-pink));
}

.schedule-v2-item {
  position:relative;
  display:grid;
  grid-template-columns:82px 22px minmax(0,1fr);
  gap:11px;
  align-items:start;
  padding:13px 0;
}

.schedule-v2-date {
  padding:9px 7px;
  border:1px solid #d6e2f3;
  border-radius:13px;
  background:#fff;
  text-align:center;
}

.schedule-v2-date strong,
.schedule-v2-date span {
  display:block;
}

.schedule-v2-date strong {
  color:#174a9d;
  font-size:1.04rem;
}

.schedule-v2-date span {
  color:#7c899c;
  font-size:.67rem;
}

.schedule-v2-dot {
  position:relative;
  z-index:2;
  width:17px;
  height:17px;
  margin-top:18px;
  border:4px solid #fff;
  border-radius:50%;
  background:var(--contest-blue);
  box-shadow:0 0 0 2px #9dbcf1;
}

.schedule-v2-body {
  padding:10px 13px 12px;
  border:1px solid #e0e7f4;
  border-radius:14px;
  background:#fbfcff;
}

.schedule-v2-body > span {
  color:#7586a5;
  font-size:.64rem;
  font-weight:950;
  letter-spacing:.1em;
}

.schedule-v2-body h3 {
  margin:1px 0 3px;
  color:#264a86!important;
  font-size:.95rem;
}

.schedule-v2-body p {
  margin:0;
  color:#637188;
  font-size:.78rem;
  line-height:1.7;
}

.schedule-v2-body a {
  display:inline-block;
  margin-top:5px;
  color:#1654ad!important;
  font-size:.74rem;
  font-weight:900;
}

.schedule-v2-note strong {
  color:#245088;
}

/* Workshop */
.workshop-v2-grid {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:13px;
  margin-top:10px;
}

.workshop-v2-session {
  display:grid;
  grid-template-columns:62px minmax(0,1fr);
  gap:14px;
  align-items:center;
  padding:18px;
  border:1px solid #cbdcff;
  border-radius:17px;
  background:linear-gradient(135deg,#f4f9ff,#fff);
}

.workshop-v2-session--purple {
  border-color:#d8cdf6;
  background:linear-gradient(135deg,#faf7ff,#fff);
}

.workshop-v2-session__number {
  width:58px;
  height:58px;
  display:grid;
  place-items:center;
  border-radius:18px;
  color:#fff;
  background:linear-gradient(135deg,var(--contest-cyan),var(--contest-blue));
  font-weight:950;
}

.workshop-v2-session--purple .workshop-v2-session__number {
  background:linear-gradient(135deg,var(--contest-purple),var(--contest-pink));
}

.workshop-v2-session__copy span,
.workshop-v2-session__copy h3,
.workshop-v2-session__copy strong {
  display:block;
}

.workshop-v2-session__copy span {
  color:#7484a1;
  font-size:.68rem;
  font-weight:900;
}

.workshop-v2-session__copy h3 {
  margin:2px 0 2px;
  color:#264a86!important;
  font-size:.92rem;
}

.workshop-v2-session__copy strong {
  color:#174da2;
  font-size:1.18rem;
}

.workshop-v2-vod {
  display:grid;
  grid-template-columns:72px minmax(0,1fr);
  gap:16px;
  align-items:center;
  margin-top:18px;
  padding:18px 20px;
  border:1px solid #aadaca;
  border-radius:18px;
  background:#f2fff9;
}

.workshop-v2-vod__mark {
  width:62px;
  height:62px;
  display:grid;
  place-items:center;
  border-radius:18px;
  color:#fff;
  background:var(--contest-green);
  font-size:.78rem;
  font-weight:950;
}

.workshop-v2-vod h2 {
  margin:0;
  color:#176c59!important;
  font-size:1rem;
}

.workshop-v2-vod p {
  margin:4px 0 0;
  color:#557069;
  font-size:.81rem;
  line-height:1.75;
}

@media (max-width:1080px) {
  .contest-header-v2 .contest-header-tools,
  .contest-header-v2 .contest-header-navrow {
    display:none;
  }

  .contest-header-v2 .contest-mobile-menu {
    display:block;
  }
}

@media (min-width:1081px) {
  .contest-header-v2 .contest-mobile-menu {
    display:none;
  }
}

@media (max-width:760px) {
  .contest-header-v2 .contest-header-inner--main {
    min-height:67px;
  }

  .contest-header-v2 .contest-brand-text strong {
    max-width:215px;
    font-size:.83rem;
  }

  .public-info-main {
    padding-top:18px;
  }

  .public-info-wrap {
    width:calc(100% - 20px);
  }

  .public-info-hero {
    grid-template-columns:1fr;
    min-height:0;
    padding:23px 19px;
    border-radius:18px;
  }

  .public-info-hero h1 {
    font-size:1.55rem;
  }

  .public-info-hero__badge {
    min-width:0;
    min-height:0;
    width:max-content;
    padding:7px 11px;
    border-radius:999px;
    font-size:.7rem;
  }

  .public-info-grid--3,
  .workshop-v2-grid {
    grid-template-columns:1fr;
  }

  .public-info-mini-card {
    min-height:0;
  }

  .public-info-card {
    padding:19px 17px;
    border-radius:16px;
  }

  .public-info-next {
    grid-template-columns:1fr;
    padding:17px;
  }

  .public-info-actions {
    justify-content:flex-start;
  }

  .public-info-button {
    flex:1 1 150px;
  }

  .schedule-v2-timeline::before {
    left:82px;
  }

  .schedule-v2-item {
    grid-template-columns:61px 18px minmax(0,1fr);
    gap:9px;
  }

  .schedule-v2-date strong {
    font-size:.86rem;
  }

  .schedule-v2-dot {
    width:15px;
    height:15px;
  }

  .workshop-v2-vod {
    grid-template-columns:1fr;
  }
}

@media (max-width:430px) {
  .contest-header-v2 .contest-brand-text strong {
    max-width:175px;
    font-size:.75rem;
  }

  .contest-header-v2 .contest-logo-mark {
    width:38px;
    height:38px;
    flex-basis:38px;
  }

  .schedule-v2-timeline::before {
    display:none;
  }

  .schedule-v2-item {
    grid-template-columns:56px minmax(0,1fr);
  }

  .schedule-v2-dot {
    display:none;
  }
}


/* =========================================================
   審査基準ページ
   ========================================================= */

.judging-page .judging-wrap {
  width:min(var(--contest-max), calc(100% - 40px));
}

.judging-page .judging-panel {
  padding:34px 38px 42px;
}

.judging-kicker {
  display:block;
  margin-bottom:4px;
  color:#6f82a8;
  font-size:.67rem;
  font-weight:950;
  letter-spacing:.13em;
}

.judging-hero {
  display:grid;
  grid-template-columns:minmax(0,1.1fr) minmax(280px,.9fr);
  gap:25px;
  align-items:center;
  padding:28px;
  overflow:hidden;
  border:1px solid #cbdcff;
  border-radius:23px;
  background:
    radial-gradient(circle at 10% 15%,rgba(0,174,234,.13),transparent 13rem),
    radial-gradient(circle at 92% 8%,rgba(113,72,232,.12),transparent 14rem),
    linear-gradient(135deg,#f3f8ff,#fff 58%,#fbf7ff);
}

.judging-hero h2 {
  margin:0 0 7px;
  color:var(--contest-navy) !important;
  font-size:2rem;
  line-height:1.25;
}

.judging-hero p {
  margin:0;
  color:#53637d;
  font-size:.98rem;
  line-height:1.85;
}

.judging-hero__summary {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:8px;
  margin-top:18px;
}

.judging-hero__summary > div {
  padding:11px 10px;
  border:1px solid #d9e4f6;
  border-radius:13px;
  background:rgba(255,255,255,.85);
  text-align:center;
}

.judging-hero__summary span,
.judging-hero__summary strong {
  display:block;
}

.judging-hero__summary span {
  color:#7b879a;
  font-size:.72rem;
  font-weight:800;
}

.judging-hero__summary strong {
  margin-top:1px;
  color:#244b8d;
  font-size:1.12rem;
}

.judging-hero__art {
  position:relative;
  min-height:250px;
  display:grid;
  place-items:center;
}

.judging-hero__art svg {
  width:min(100%,360px);
  fill:#fff;
  stroke:#31589d;
  stroke-width:3;
  stroke-linecap:round;
  stroke-linejoin:round;
  filter:drop-shadow(0 10px 18px rgba(17,60,130,.08));
}

.judging-hero__bubble {
  position:absolute;
  right:0;
  top:0;
  max-width:190px;
  padding:10px 12px;
  border:2px solid #335b9e;
  border-radius:18px;
  color:#24457e;
  background:#fff;
  font-size:.8rem;
  font-weight:900;
  line-height:1.55;
  text-align:center;
}

.judging-hero__bubble:after {
  content:"";
  position:absolute;
  left:28px;
  bottom:-12px;
  width:18px;
  height:18px;
  border-right:2px solid #335b9e;
  border-bottom:2px solid #335b9e;
  background:#fff;
  transform:rotate(45deg);
}

.judging-intro {
  margin:19px 0 13px;
  padding:17px 19px;
  border-left:5px solid var(--contest-blue);
  border-radius:14px;
  background:#f3f7ff;
}

.judging-intro h2 {
  margin:0 0 4px;
  color:#274d8e !important;
  font-size:1.08rem;
}

.judging-intro p {
  margin:0;
  color:#5d6c83;
  font-size:.88rem;
}

.judging-score-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:15px;
}

.judging-score-card {
  position:relative;
  overflow:hidden;
  padding:18px;
  border:1px solid #d9e3f2;
  border-radius:19px;
  background:#fff;
  box-shadow:0 8px 25px rgba(12,53,126,.05);
}

.judging-score-card:before {
  content:"";
  position:absolute;
  inset:0 auto 0 0;
  width:5px;
  background:var(--contest-blue);
}

.judging-score-card--idea:before {
  background:var(--contest-orange);
}

.judging-score-card--ai:before {
  background:var(--contest-blue);
}

.judging-score-card--creative:before {
  background:var(--contest-purple);
}

.judging-score-card--appeal:before {
  background:var(--contest-pink);
}

.judging-score-card__top {
  display:grid;
  grid-template-columns:42px minmax(0,1fr) 70px;
  gap:10px;
  align-items:start;
}

.judging-score-card__number {
  width:39px;
  height:39px;
  display:grid;
  place-items:center;
  border-radius:12px;
  color:#fff;
  background:#365a9b;
  font-size:.73rem;
  font-weight:950;
}

.judging-score-card--idea .judging-score-card__number {
  background:var(--contest-orange);
}

.judging-score-card--ai .judging-score-card__number {
  background:var(--contest-blue);
}

.judging-score-card--creative .judging-score-card__number {
  background:var(--contest-purple);
}

.judging-score-card--appeal .judging-score-card__number {
  background:var(--contest-pink);
}

.judging-score-card__top h2 {
  margin:0;
  color:#274b87 !important;
  font-size:1.2rem;
}

.judging-score-card__top small {
  display:block;
  margin-top:1px;
  color:#75839a;
  font-size:.7rem;
  font-weight:800;
}

.judging-score-card__score {
  display:flex;
  justify-content:center;
  align-items:baseline;
  gap:2px;
  padding:7px 6px;
  border-radius:13px;
  background:#f2f6fd;
}

.judging-score-card__score strong {
  color:#244d91;
  font-size:1.65rem;
  line-height:1;
}

.judging-score-card__score span {
  color:#64738b;
  font-size:.72rem;
  font-weight:850;
}

.judging-mini-comic {
  position:relative;
  min-height:165px;
  margin:13px 0 11px;
  overflow:hidden;
  border:1px solid #dde6f3;
  border-radius:15px;
  background:
    linear-gradient(0deg,rgba(228,236,249,.6) 1px,transparent 1px),
    linear-gradient(90deg,rgba(228,236,249,.45) 1px,transparent 1px),
    #fbfdff;
  background-size:18px 18px;
}

.judging-mini-comic__art {
  height:100%;
  display:grid;
  place-items:center;
}

.judging-mini-comic__art svg {
  width:min(85%,260px);
  height:150px;
  fill:#fff;
  stroke:#355891;
  stroke-width:3;
  stroke-linecap:round;
  stroke-linejoin:round;
}

.judging-mini-comic__bubble {
  position:absolute;
  right:10px;
  top:9px;
  max-width:170px;
  padding:7px 10px;
  border:2px solid #425d8a;
  border-radius:14px;
  color:#2f4c7c;
  background:#fff;
  font-size:.72rem;
  font-weight:900;
  line-height:1.45;
}

.judging-score-card__lead {
  margin:0 0 11px;
  color:#53627a;
  font-size:.87rem;
  line-height:1.75;
}

.judging-check {
  padding:12px 13px;
  border-radius:12px;
  background:#f5f8fd;
}

.judging-check > strong {
  display:block;
  margin-bottom:4px;
  color:#2e579b;
  font-size:.81rem;
}

.judging-check ul {
  margin:0;
  padding-left:1.25em;
}

.judging-check li {
  margin:3px 0;
  color:#596981;
  font-size:.79rem;
  line-height:1.55;
}

.judging-tip {
  margin-top:10px;
  padding:10px 12px;
  border-radius:11px;
  color:#665323;
  background:#fff9e9;
}

.judging-tip strong {
  display:block;
  font-size:.75rem;
}

.judging-tip p {
  margin:2px 0 0;
  font-size:.78rem;
  line-height:1.6;
}

.judging-comic {
  margin-top:19px;
  padding:19px;
  border:1px solid #d5def0;
  border-radius:19px;
  background:linear-gradient(135deg,#f8faff,#fff);
}

.judging-comic__heading {
  margin-bottom:12px;
}

.judging-comic__heading h2 {
  margin:0;
  color:#284c89 !important;
  font-size:1.15rem;
}

.judging-comic__panels {
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:8px;
}

.judging-comic__panels article {
  position:relative;
  min-height:240px;
  padding:10px;
  overflow:hidden;
  border:2px solid #3f506e;
  border-radius:9px;
  background:#fff;
}

.judging-comic__panel-no {
  position:absolute;
  left:7px;
  top:7px;
  width:25px;
  height:25px;
  display:grid;
  place-items:center;
  border-radius:50%;
  color:#fff;
  background:#344c76;
  font-size:.68rem;
  font-weight:950;
}

.judging-comic__scene {
  position:relative;
  height:135px;
}

.judging-face {
  position:absolute;
  left:50%;
  top:28px;
  width:44px;
  height:44px;
  border:3px solid #3f506e;
  border-radius:50%;
  background:#fff;
  transform:translateX(-50%);
}

.judging-face:before,
.judging-face:after {
  content:"";
  position:absolute;
  top:17px;
  width:4px;
  height:4px;
  border-radius:50%;
  background:#3f506e;
}

.judging-face:before {
  left:11px;
}

.judging-face:after {
  right:11px;
}

.judging-body {
  position:absolute;
  left:50%;
  top:77px;
  width:74px;
  height:68px;
  border:3px solid #3f506e;
  border-bottom:0;
  border-radius:35px 35px 0 0;
  transform:translateX(-50%);
}

.judging-cross,
.judging-checkmark {
  position:absolute;
  right:12px;
  top:14px;
  font-size:2.2rem;
  font-weight:950;
}

.judging-cross {
  color:var(--contest-pink);
}

.judging-checkmark {
  color:var(--contest-green);
}

.judging-thought-dot {
  position:absolute;
  border:2px solid #3f506e;
  border-radius:50%;
  background:#fff;
}

.judging-thought-dot--1 {
  right:45px;
  top:24px;
  width:12px;
  height:12px;
}

.judging-thought-dot--2 {
  right:26px;
  top:10px;
  width:18px;
  height:18px;
}

.judging-thought-box {
  position:absolute;
  right:4px;
  top:2px;
  padding:5px 7px;
  border:2px solid #3f506e;
  border-radius:9px;
  color:#354e78;
  background:#fff;
  font-size:.72rem;
  font-weight:950;
}

.judging-comic__speech {
  margin:0;
  padding:9px 8px;
  border-top:1px solid #d8dfeb;
  color:#41516c;
  font-size:.78rem;
  font-weight:750;
  line-height:1.6;
  text-align:center;
}

.judging-misunderstandings {
  margin-top:19px;
  padding:20px;
  border-radius:19px;
  background:#f5f8fe;
}

.judging-misunderstandings__head h2 {
  margin:0;
  color:#284e8f !important;
  font-size:1.14rem;
}

.judging-myth-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
  margin-top:11px;
}

.judging-myth-grid article {
  position:relative;
  min-height:130px;
  padding:14px 14px 13px 52px;
  border:1px solid #dce4f1;
  border-radius:13px;
  background:#fff;
}

.judging-myth-mark {
  position:absolute;
  left:13px;
  top:14px;
  width:29px;
  height:29px;
  display:grid;
  place-items:center;
  border-radius:50%;
  color:#fff;
  background:linear-gradient(135deg,var(--contest-purple),var(--contest-blue));
  font-size:.9rem;
  font-weight:950;
}

.judging-myth-grid h3 {
  margin:0 0 4px;
  color:#345486;
  font-size:.88rem;
}

.judging-myth-grid p {
  margin:0;
  color:#67758a;
  font-size:.78rem;
  line-height:1.65;
}

.judging-final-message {
  display:grid;
  grid-template-columns:180px minmax(0,1fr);
  gap:22px;
  align-items:center;
  margin-top:19px;
  padding:24px;
  border:1px solid #bcd2f7;
  border-radius:20px;
  background:
    radial-gradient(circle at 7% 30%,rgba(0,174,234,.12),transparent 10rem),
    linear-gradient(135deg,#f3f8ff,#fff);
}

.judging-final-message__art svg {
  width:100%;
  fill:#fff;
  stroke:#33598f;
  stroke-width:3;
  stroke-linecap:round;
  stroke-linejoin:round;
}

.judging-final-message h2 {
  margin:0 0 7px;
  color:var(--contest-navy) !important;
  font-size:1.34rem;
  line-height:1.5;
}

.judging-final-message p {
  margin:0;
  color:#5e6e85;
  font-size:.86rem;
  line-height:1.8;
}

.judging-final-message__actions {
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-top:13px;
}

.judging-button {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:42px;
  padding:9px 15px;
  border-radius:10px;
  text-decoration:none !important;
  font-size:.82rem;
  font-weight:900;
}

.judging-button--primary {
  color:#fff !important;
  background:linear-gradient(135deg,var(--contest-blue),#173f9f);
}

.judging-button--sub {
  color:#2857a2 !important;
  border:1px solid #bed0ee;
  background:#f3f7ff;
}

@media (max-width:900px) {

  .judging-score-grid {
    grid-template-columns:1fr;
  }

  .judging-comic__panels {
    grid-template-columns:1fr 1fr;
  }
}

@media (max-width:760px) {

  .judging-page .judging-wrap {
    width:calc(100% - 20px);
  }

  .judging-page .judging-panel {
    padding:22px 14px 28px;
  }

  .judging-hero {
    grid-template-columns:1fr;
    padding:20px 17px;
  }

  .judging-hero__art {
    min-height:220px;
  }

  .judging-final-message {
    grid-template-columns:1fr;
  }

  .judging-final-message__art {
    max-width:170px;
    margin:auto;
  }
}

@media (max-width:560px) {

  .judging-hero h2 {
    font-size:1.55rem;
  }

  .judging-hero__summary {
    grid-template-columns:1fr;
  }

  .judging-score-card__top {
    grid-template-columns:40px minmax(0,1fr) 62px;
  }

  .judging-score-card {
    padding:15px 13px;
  }

  .judging-comic__panels,
  .judging-myth-grid {
    grid-template-columns:1fr;
  }

  .judging-mini-comic__bubble {
    max-width:145px;
  }

  .judging-final-message {
    padding:18px 15px;
  }
}



/* ==========================================================================
   19. Corrected public pages v2
   Source content: user-edited rules/schedules/workshop files
   ========================================================================== */

.rules-v2-eligibility {
  display:grid;
  grid-template-columns:92px minmax(0,1fr);
  gap:16px;
  align-items:start;
}

.rules-v2-eligibility__mark {
  display:grid;
  place-items:center;
  min-height:82px;
  padding:10px;
  border-radius:20px;
  color:#fff;
  background:linear-gradient(135deg,var(--contest-cyan),var(--contest-blue));
  text-align:center;
  font-size:.72rem;
  font-weight:950;
  letter-spacing:.05em;
}

.rules-v2-eligibility h2 {
  margin:0;
  color:#234780!important;
  font-size:1.08rem;
}

.rules-v2-eligibility p {
  margin:5px 0 0;
}

.rules-v2-warning {
  margin-top:10px;
  padding:10px 12px;
  border-left:4px solid var(--contest-orange);
  border-radius:10px;
  color:#74591d;
  background:#fff9e9;
  font-size:.77rem;
  line-height:1.7;
}

.rules-v2-steps {
  counter-reset:rulesstep;
  display:grid;
  gap:10px;
  margin-top:12px;
}

.rules-v2-step {
  position:relative;
  display:grid;
  grid-template-columns:45px minmax(0,1fr);
  gap:12px;
  padding:13px 15px;
  border:1px solid #dce6f6;
  border-radius:14px;
  background:#fbfdff;
}

.rules-v2-step__no {
  width:40px;
  height:40px;
  display:grid;
  place-items:center;
  border-radius:13px;
  color:#fff;
  background:linear-gradient(135deg,var(--contest-blue),#173c9e);
  font-size:.73rem;
  font-weight:950;
}

.rules-v2-step p {
  margin:0;
  color:#596b83;
  font-size:.82rem;
  line-height:1.78;
}

.rules-v2-step a,
.rules-v2-link-card a {
  color:#1656b4!important;
  font-weight:900;
}

.rules-v2-theme {
  border-left:6px solid var(--contest-purple);
  background:
    radial-gradient(circle at 95% 15%,rgba(113,72,232,.08),transparent 12rem),
    #fff;
}

.rules-v2-theme-title {
  margin:4px 0 9px!important;
  color:#5d42ac!important;
  font-size:1.35rem!important;
  font-weight:950;
}

.rules-v2-format-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:8px;
  margin-top:13px;
}

.rules-v2-format-grid span {
  display:grid;
  place-items:center;
  min-height:42px;
  padding:7px 9px;
  border:1px solid #d8d0f0;
  border-radius:11px;
  color:#5b4797;
  background:#faf8ff;
  text-align:center;
  font-size:.74rem;
  font-weight:850;
}

.rules-v2-two-col {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:13px;
  margin-top:18px;
}

.rules-v2-link-card {
  padding:18px 19px;
  border:1px solid #dce6f4;
  border-radius:16px;
  background:#fff;
  box-shadow:0 8px 22px rgba(11,49,117,.045);
}

.rules-v2-link-card h2 {
  margin:0 0 5px;
  color:#274b86!important;
  font-size:1rem;
}

.rules-v2-link-card p {
  margin:0;
  color:#637188;
  font-size:.8rem;
  line-height:1.7;
}

.rules-v2-prize {
  position:relative;
  overflow:hidden;
  background:linear-gradient(135deg,#fff9ed,#fff);
  border-color:#f1d19d;
}

.rules-v2-prize::after {
  content:"AWARD";
  position:absolute;
  right:14px;
  top:10px;
  color:rgba(255,138,0,.12);
  font-size:2.3rem;
  font-weight:950;
  letter-spacing:.06em;
}

.rules-v2-prize strong {
  position:relative;
  z-index:1;
  color:#9a5c00;
}

.rules-v2-copyright-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:11px;
  margin-top:12px;
}

.rules-v2-copyright-grid article {
  padding:14px 15px;
  border:1px solid #dde5f2;
  border-radius:13px;
  background:#fbfcff;
}

.rules-v2-copyright-grid h3 {
  margin:0 0 5px;
  color:#2a4e88!important;
  font-size:.9rem;
}

.rules-v2-copyright-grid p {
  margin:0;
  font-size:.78rem;
  line-height:1.75;
}

.schedule-v2-item--production .schedule-v2-dot { background:var(--contest-purple); }
.schedule-v2-item--submission .schedule-v2-dot { background:var(--contest-pink); }
.schedule-v2-item--award .schedule-v2-dot { background:var(--contest-orange); }

.schedule-v2-period {
  display:inline-flex;
  margin-top:7px;
  padding:4px 8px;
  border-radius:999px;
  color:#5f4aa5;
  background:#f0ecff;
  font-size:.68rem;
  font-weight:900;
}

.schedule-v2-account-note {
  display:grid;
  grid-template-columns:58px minmax(0,1fr) auto;
  gap:13px;
  align-items:center;
}

.schedule-v2-account-note__mark {
  width:54px;
  height:54px;
  display:grid;
  place-items:center;
  border-radius:16px;
  color:#fff;
  background:var(--contest-green);
  font-size:.7rem;
  font-weight:950;
}

.schedule-v2-account-note h2 {
  margin:0;
  color:#176c59!important;
  font-size:.95rem;
}

.schedule-v2-account-note p {
  margin:3px 0 0;
  color:#5b706b;
  font-size:.79rem;
  line-height:1.7;
}

.workshop-v2-program {
  margin-top:10px;
  padding:12px 13px;
  border-radius:12px;
  background:#f5f8ff;
}

.workshop-v2-program strong {
  display:block;
  margin-bottom:4px;
  color:#31558f;
  font-size:.76rem;
}

.workshop-v2-program ul {
  margin:0;
  padding-left:1.2em;
}

.workshop-v2-program li {
  margin:2px 0;
  color:#5e6d83;
  font-size:.78rem;
  line-height:1.65;
}

.workshop-v2-tool-guide {
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:16px;
  align-items:center;
  margin-top:18px;
  padding:18px 20px;
  border:1px solid #c6d8f7;
  border-radius:17px;
  background:
    radial-gradient(circle at 90% 10%,rgba(113,72,232,.08),transparent 10rem),
    linear-gradient(135deg,#f4f9ff,#fff);
}

.workshop-v2-tool-guide h2 {
  margin:0;
  color:#264b89!important;
  font-size:1rem;
}

.workshop-v2-tool-guide p {
  margin:4px 0 0;
  color:#5e6f87;
  font-size:.79rem;
  line-height:1.7;
}

@media (max-width:760px) {
  .rules-v2-eligibility,
  .schedule-v2-account-note,
  .workshop-v2-tool-guide {
    grid-template-columns:1fr;
  }

  .rules-v2-eligibility__mark {
    min-height:0;
    width:max-content;
    padding:7px 10px;
    border-radius:999px;
  }

  .rules-v2-format-grid {
    grid-template-columns:repeat(2,minmax(0,1fr));
  }

  .rules-v2-two-col,
  .rules-v2-copyright-grid {
    grid-template-columns:1fr;
  }
}

/* ==========================================================================
   20. My Page: 生成AIツールガイドボックス 復元
   ========================================================================== */

.member-ai-tools-guide {
  display:grid;
  grid-template-columns:58px minmax(0,1fr) auto;
  gap:14px;
  align-items:center;
  margin:0 0 20px;
  padding:15px 17px;
  border:1px solid #c8dbf5;
  border-radius:16px;
  background:
    radial-gradient(circle at 94% 10%,rgba(113,72,232,.07),transparent 10rem),
    linear-gradient(135deg,#f3f8ff,#fff 70%,#faf7ff);
  box-shadow:0 7px 20px rgba(13,86,216,.055);
}

.member-ai-tools-guide__icon {
  width:54px;
  height:54px;
  display:grid;
  place-items:center;
  border-radius:15px;
  color:#fff;
  background:linear-gradient(
    135deg,
    var(--contest-cyan),
    var(--contest-blue),
    var(--contest-purple)
  );
  box-shadow:0 7px 18px rgba(13,86,216,.14);
  font-size:.88rem;
  font-weight:950;
}

.member-ai-tools-guide__body {
  min-width:0;
}

.member-ai-tools-guide__body h2 {
  margin:0;
  color:var(--contest-navy)!important;
  font-size:1rem;
}

.member-ai-tools-guide__body p {
  margin:3px 0 0;
  color:#60708a;
  font-size:.78rem;
  line-height:1.65;
}

.member-ai-tools-guide__button {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:38px;
  padding:8px 12px;
  border-radius:9px;
  color:#fff!important;
  background:linear-gradient(135deg,var(--contest-blue),#173f9f);
  box-shadow:0 6px 14px rgba(13,86,216,.14);
  text-decoration:none;
  white-space:nowrap;
  font-size:.75rem;
  font-weight:900;
}

.member-ai-tools-guide__button:hover {
  transform:translateY(-1px);
  box-shadow:0 8px 18px rgba(13,86,216,.19);
}

@media (max-width:760px) {

  .member-ai-tools-guide {
    grid-template-columns:48px minmax(0,1fr);
    gap:11px;
    padding:14px;
  }

  .member-ai-tools-guide__icon {
    width:46px;
    height:46px;
    border-radius:13px;
  }

  .member-ai-tools-guide__button {
    grid-column:1 / -1;
    width:100%;
  }
}

@media (max-width:430px) {

  .member-ai-tools-guide {
    grid-template-columns:1fr;
  }

  .member-ai-tools-guide__icon {
    width:42px;
    height:42px;
  }
}

/* ==========================================================================
   21. Common footer v2
   ========================================================================== */

.contest-ui-footer--v2 {
  margin-top:34px;
}

.contest-ui-footer--v2 .contest-ui-footer-inner {
  display:grid;
  grid-template-columns:minmax(240px,.72fr) minmax(0,1.55fr);
  gap:20px 30px;
  align-items:start;
}

.contest-ui-footer--v2 .contest-footer-brand {
  padding-right:15px;
}

.contest-ui-footer--v2 .contest-footer-brand strong {
  display:block;
  font-size:.92rem;
  line-height:1.55;
}

.contest-ui-footer--v2 .contest-footer-brand span {
  display:block;
  margin-top:4px;
  color:#c9d5f3;
  font-size:.7rem;
  line-height:1.5;
}

.contest-footer-orgs {
  display:grid;
  gap:8px;
}

.contest-footer-org-row {
  display:grid;
  grid-template-columns:52px minmax(0,1fr);
  gap:10px;
  align-items:start;
}

.contest-footer-org-label {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:26px;
  padding:3px 7px;
  border:1px solid rgba(255,255,255,.55);
  border-radius:999px;
  color:#fff;
  font-size:.66rem;
  font-weight:900;
}

.contest-footer-org-row p {
  margin:0;
  color:#dce5fa;
  font-size:.7rem;
  line-height:1.68;
}

.contest-ui-footer--v2 .contest-footer-links {
  grid-column:1 / -1;
  padding-top:12px;
  border-top:1px solid rgba(255,255,255,.16);
}

@media (max-width:760px) {
  .contest-ui-footer--v2 .contest-ui-footer-inner {
    grid-template-columns:1fr;
    gap:15px;
  }

  .contest-footer-org-row {
    grid-template-columns:48px minmax(0,1fr);
  }

  .contest-ui-footer--v2 .contest-footer-links {
    grid-column:auto;
  }
}

/* ==========================================================================
   22. Readability + current-position schedule marker
   ========================================================================== */

/* 本文は黒を基本色にする。
   見出し・ボタン・バッジ等のアクセントカラーはそのまま維持。 */
.contest-ui-main,
.contest-ui-main p,
.contest-ui-main li,
.contest-ui-main dd,
.contest-ui-main dt,
.contest-ui-main small,
.contest-ui-main .public-info-note,
.contest-ui-main .member-dashboard-step__description,
.contest-ui-main .member-dashboard-note,
.contest-ui-main .judging-criterion-card p,
.contest-ui-main .judging-mini-comic p,
.contest-ui-main .ait-intro p,
.contest-ui-main .ait-facts dd,
.contest-ui-main .ait-topic,
.contest-ui-main .ait-news p,
.contest-ui-main .ait-updates p,
.contest-ui-main .ait-public-faq p {
  color:#111 !important;
}

/* 薄いグレーだった主要説明文も黒へ */
.public-info-hero p,
.public-info-card p,
.public-info-mini-card p,
.public-info-next p,
.schedule-v2-body p,
.schedule-v2-account-note p,
.workshop-v2-vod p,
.workshop-v2-tool-guide p,
.rules-v2-step p,
.rules-v2-link-card p,
.member-ai-tools-guide__body p,
.ait-hero__copy p,
.ait-hero__status p,
.ait-verification p,
.ait-contest-guide p,
.ait-important__grid p,
.ait-section__heading p,
.ait-final-notes p {
  color:#111 !important;
}

/* 補助英字・日付などは黒に近い濃色 */
.public-info-kicker,
.schedule-v2-body > span,
.schedule-v2-date span,
.workshop-v2-session__copy span,
.ait-kicker {
  color:#263238 !important;
}

/* スケジュール主要行 */
.schedule-v2-main-lines {
  margin:7px 0 7px;
  padding-left:1.2em;
}

.schedule-v2-main-lines li {
  margin:3px 0;
  color:#111 !important;
  font-size:.83rem;
  font-weight:850;
  line-height:1.7;
}

/* 今日マーカー */
.schedule-v2-timeline--with-today {
  position:relative;
}

.schedule-v2-today {
  position:relative;
  z-index:8;
  display:grid;
  grid-template-columns:82px 22px minmax(0,1fr);
  gap:11px;
  align-items:center;
  min-height:78px;
  margin:4px 0 7px;
}

.schedule-v2-today__date {
  padding:8px 7px;
  border:2px solid #e32a52;
  border-radius:13px;
  color:#b2183c;
  background:#fff;
  text-align:center;
  font-size:.68rem;
  font-weight:950;
  letter-spacing:.06em;
  box-shadow:0 7px 18px rgba(245,30,87,.10);
}

.schedule-v2-today__date strong {
  display:block;
  margin-top:1px;
  color:#c40f3f;
  font-size:1.03rem;
  letter-spacing:0;
}

.schedule-v2-today__arrow {
  position:relative;
  z-index:9;
  width:30px;
  margin-left:-4px;
  color:#f51e57;
  text-align:center;
  font-size:2.15rem;
  line-height:1;
  filter:drop-shadow(0 3px 4px rgba(245,30,87,.22));
  transform:rotate(-90deg);
}

.schedule-v2-today__label {
  display:inline-flex;
  align-items:center;
  width:max-content;
  max-width:100%;
  min-height:42px;
  padding:9px 14px;
  border:2px solid #f3a3b7;
  border-radius:13px;
  color:#961635;
  background:linear-gradient(90deg,#fff0f4,#fff);
  font-size:.86rem;
  font-weight:950;
  box-shadow:0 7px 18px rgba(245,30,87,.08);
}

/* 日付ごとの色分け */
.schedule-v2-item--deadline .schedule-v2-dot {
  background:#f51e57;
}

.schedule-v2-item--submission .schedule-v2-dot {
  background:#7148e8;
}

.schedule-v2-item--finish .schedule-v2-dot {
  background:#b3133f;
}

.schedule-v2-item--result .schedule-v2-dot {
  background:#118c78;
}

.schedule-v2-item--award .schedule-v2-dot {
  background:#ff8a00;
}

/* タイムラインの線も少し濃く */
.schedule-v2-timeline::before {
  opacity:1;
  width:4px;
}

/* 日付と項目タイトルを読みやすく */
.schedule-v2-date strong {
  color:#111 !important;
}

.schedule-v2-body h3 {
  color:#111 !important;
  font-weight:950;
}

@media (max-width:760px) {
  .schedule-v2-today {
    grid-template-columns:61px 18px minmax(0,1fr);
    gap:9px;
  }

  .schedule-v2-today__date {
    padding:7px 4px;
  }

  .schedule-v2-today__arrow {
    width:24px;
    margin-left:-3px;
    font-size:1.8rem;
  }

  .schedule-v2-today__label {
    width:100%;
    padding:8px 10px;
    font-size:.76rem;
  }
}

@media (max-width:430px) {
  .schedule-v2-today {
    grid-template-columns:56px minmax(0,1fr);
  }

  .schedule-v2-today__arrow {
    display:none;
  }

  .schedule-v2-today__label {
    font-size:.73rem;
  }
}

/* ==========================================================================
   23. Page color system v5
   HOMEの各カード色を、公開ページ・参加者ページへ展開
   ========================================================================== */

/* ----------------------------------------------------------
   Theme variables
   ---------------------------------------------------------- */

.theme-register {
  --page-accent:#c71555;
  --page-accent-dark:#7d123c;
  --page-accent-mid:#a91449;
  --page-soft:#fff3f7;
  --page-soft-2:#fff9fb;
  --page-border:#e9a8bf;
}

.theme-workshop {
  --page-accent:#006b4f;
  --page-accent-dark:#003f2f;
  --page-accent-mid:#0a7b5d;
  --page-soft:#f0faf6;
  --page-soft-2:#f8fdfb;
  --page-border:#9fcfbe;
}

.theme-schedules {
  --page-accent:#7a1838;
  --page-accent-dark:#4d0d22;
  --page-accent-mid:#952548;
  --page-soft:#fff4f7;
  --page-soft-2:#fff9fa;
  --page-border:#d8a0b1;
}

.theme-rules,
.theme-tools-public {
  --page-accent:#082978;
  --page-accent-dark:#04194c;
  --page-accent-mid:#0d438f;
  --page-soft:#f2f6ff;
  --page-soft-2:#f8faff;
  --page-border:#9eb6df;
}

.theme-judging {
  --page-accent:#5d2b86;
  --page-accent-dark:#35134f;
  --page-accent-mid:#7640a0;
  --page-soft:#f8f2fc;
  --page-soft-2:#fcf9fe;
  --page-border:#c5a7d9;
}

.theme-contact {
  --page-accent:#c86500;
  --page-accent-dark:#834000;
  --page-accent-mid:#df7b12;
  --page-soft:#fff7ed;
  --page-soft-2:#fffaf4;
  --page-border:#edbd86;
}

.theme-account {
  --page-accent:#65483a;
  --page-accent-dark:#3d2a22;
  --page-accent-mid:#806052;
  --page-soft:#f5f1ed;
  --page-soft-2:#faf8f6;
  --page-border:#cbb9ad;
}


/* ----------------------------------------------------------
   Page backgrounds
   ---------------------------------------------------------- */

body.theme-register,
body.theme-workshop,
body.theme-schedules,
body.theme-rules,
body.theme-judging,
body.theme-tools-public,
body.theme-contact,
body.theme-account {
  background:
    radial-gradient(circle at 10% 4%,color-mix(in srgb,var(--page-accent) 6%,transparent),transparent 24rem),
    linear-gradient(180deg,var(--page-soft-2),var(--page-soft) 70%,#fff 100%);
}


/* ----------------------------------------------------------
   Common panel pages: register / forgot / login / contact
   ---------------------------------------------------------- */

.theme-register .contest-ui-main .panel,
.theme-contact .contest-ui-main .panel,
.theme-account .contest-ui-main .panel,
.theme-judging .contest-ui-main .panel {
  border-color:color-mix(in srgb,var(--page-accent) 28%,white);
  box-shadow:0 12px 30px color-mix(in srgb,var(--page-accent) 9%,transparent);
}

.theme-register .contest-ui-main .panel::before,
.theme-contact .contest-ui-main .panel::before,
.theme-account .contest-ui-main .panel::before,
.theme-judging .contest-ui-main .panel::before {
  height:6px;
  background:
    linear-gradient(
      90deg,
      var(--page-accent-dark),
      var(--page-accent),
      var(--page-accent-mid)
    );
}

.theme-register .panel-heading,
.theme-contact .panel-heading,
.theme-account .panel-heading,
.theme-judging .panel-heading {
  border-bottom-color:color-mix(in srgb,var(--page-accent) 20%,white);
}

.theme-register .panel-kicker,
.theme-contact .panel-kicker,
.theme-account .panel-kicker,
.theme-judging .panel-kicker {
  color:var(--page-accent);
}

.theme-register .contest-ui-main .panel h1,
.theme-register .contest-ui-main .panel h2,
.theme-contact .contest-ui-main .panel h1,
.theme-contact .contest-ui-main .panel h2,
.theme-account .contest-ui-main .panel h1,
.theme-account .contest-ui-main .panel h2,
.theme-judging .contest-ui-main .panel > .panel-heading h1 {
  color:var(--page-accent-dark) !important;
}

.theme-register .contest-ui-main .panel label,
.theme-contact .contest-ui-main .panel label,
.theme-account .contest-ui-main .panel label {
  color:#111;
}

.theme-register .contest-ui-main .panel input:focus,
.theme-register .contest-ui-main .panel textarea:focus,
.theme-contact .contest-ui-main .panel input:focus,
.theme-contact .contest-ui-main .panel textarea:focus,
.theme-account .contest-ui-main .panel input:focus,
.theme-account .contest-ui-main .panel textarea:focus {
  border-color:var(--page-accent);
  box-shadow:0 0 0 4px color-mix(in srgb,var(--page-accent) 12%,transparent);
}

.theme-register .contest-ui-main .panel button,
.theme-contact .contest-ui-main .panel button,
.theme-account .contest-ui-main .panel button {
  background:
    linear-gradient(
      135deg,
      var(--page-accent),
      var(--page-accent-dark)
    );
  box-shadow:0 7px 17px color-mix(in srgb,var(--page-accent) 22%,transparent);
}

.theme-register .contest-ui-main .readonly,
.theme-contact .contest-ui-main .readonly,
.theme-account .contest-ui-main .readonly {
  border-color:color-mix(in srgb,var(--page-accent) 25%,white);
  background:
    linear-gradient(
      135deg,
      var(--page-soft),
      #fff
    );
}

.theme-register .contest-ui-main .home,
.theme-contact .contest-ui-main .home,
.theme-account .contest-ui-main .home,
.theme-register .login-links a,
.theme-contact .login-links a,
.theme-account .login-links a {
  color:var(--page-accent-dark);
}

.theme-register .contest-ui-main .home,
.theme-contact .contest-ui-main .home,
.theme-account .contest-ui-main .home {
  border-color:color-mix(in srgb,var(--page-accent) 27%,white);
  background:var(--page-soft);
}


/* Registration / password-reset pages: deep pink */
.theme-register .page-back:hover {
  color:var(--page-accent);
  border-color:var(--page-border);
}

.theme-register .email-check-message.ok {
  color:#166b38;
}


/* Contact: orange */
.theme-contact .contact-panel {
  background:
    radial-gradient(circle at 95% 5%,rgba(255,138,0,.06),transparent 13rem),
    #fff;
}


/* ----------------------------------------------------------
   Login / member: muted brown participant area
   ---------------------------------------------------------- */

.theme-account .contest-ui-main {
  background:transparent;
}

.theme-account .page-back {
  color:#594237;
  border-color:#d4c6bd;
  background:#fbf8f6;
}

.theme-account .page-back:hover {
  color:var(--page-accent-dark);
  border-color:#ad9485;
  background:#fff;
}

.theme-account .login-links {
  border-top-color:#ddd2cb;
}

.theme-account.theme-member .member-dashboard-hero {
  border-color:#cbbcaf;
  background:
    radial-gradient(circle at 8% 15%,rgba(101,72,58,.08),transparent 15rem),
    radial-gradient(circle at 90% 10%,rgba(164,125,94,.08),transparent 14rem),
    linear-gradient(135deg,#f4efeb,#fff 58%,#faf7f4);
}

.theme-account.theme-member .member-dashboard-hero__label,
.theme-account.theme-member .member-dashboard-next__label,
.theme-account.theme-member .member-dashboard-account__label {
  color:#70574a;
}

.theme-account.theme-member .member-dashboard-hero__copy h2,
.theme-account.theme-member .member-dashboard-next__body h2 {
  color:#4d3429 !important;
}

.theme-account.theme-member .member-dashboard-progress-copy span,
.theme-account.theme-member .member-dashboard-progress-copy strong {
  color:#604438;
}

.theme-account.theme-member .member-dashboard-progress {
  border-color:#d7c9c0;
  background:#eee7e2;
}

.theme-account.theme-member .member-dashboard-progress > span {
  background:
    linear-gradient(
      90deg,
      #94715f,
      #735244,
      #51372e
    );
}

.theme-account.theme-member .member-dashboard-next {
  border-color:#cbbbae;
  background:linear-gradient(135deg,#f1ebe7,#fbf8f6);
}

.theme-account.theme-member .member-dashboard-next__icon {
  background:linear-gradient(135deg,#8a6857,#5d4135,#3f2b23);
  box-shadow:0 7px 16px rgba(70,45,35,.14);
}


/* ----------------------------------------------------------
   Rules / schedule / workshop: dark hero color blocks
   ---------------------------------------------------------- */

.theme-rules .public-info-hero,
.theme-schedules .public-info-hero,
.theme-workshop .public-info-hero {
  border-color:var(--page-accent);
  background:
    radial-gradient(circle at 88% 10%,rgba(255,255,255,.10),transparent 15rem),
    linear-gradient(
      135deg,
      var(--page-accent-dark),
      var(--page-accent) 60%,
      var(--page-accent-mid)
    );
  box-shadow:0 14px 32px color-mix(in srgb,var(--page-accent) 18%,transparent);
}

.theme-rules .public-info-hero h1,
.theme-schedules .public-info-hero h1,
.theme-workshop .public-info-hero h1 {
  color:#fff !important;
}

.theme-rules .public-info-hero p,
.theme-schedules .public-info-hero p,
.theme-workshop .public-info-hero p {
  color:#fff !important;
}

.theme-rules .public-info-hero .public-info-kicker,
.theme-schedules .public-info-hero .public-info-kicker,
.theme-workshop .public-info-hero .public-info-kicker {
  color:rgba(255,255,255,.80) !important;
}

.theme-rules .public-info-hero__badge,
.theme-schedules .public-info-hero__badge,
.theme-workshop .public-info-hero__badge {
  color:var(--page-accent-dark);
  background:#fff;
  box-shadow:0 10px 24px rgba(0,0,0,.16);
}

.theme-rules .public-info-card,
.theme-schedules .public-info-card,
.theme-workshop .public-info-card {
  border-color:color-mix(in srgb,var(--page-accent) 20%,white);
}

.theme-rules .public-info-section-head h2,
.theme-rules .public-info-theme-card h2,
.theme-rules .public-info-next h2,
.theme-schedules .public-info-section-head h2,
.theme-schedules .public-info-next h2,
.theme-workshop .public-info-section-head h2,
.theme-workshop .public-info-next h2 {
  color:var(--page-accent-dark) !important;
}

.theme-rules .public-info-theme-card {
  border-left-color:var(--page-accent);
}

.theme-rules .public-info-label,
.theme-schedules .schedule-v2-period {
  color:var(--page-accent-dark);
  background:var(--page-soft);
}

.theme-rules .public-info-button,
.theme-schedules .public-info-button,
.theme-workshop .public-info-button {
  color:var(--page-accent-dark) !important;
  border-color:color-mix(in srgb,var(--page-accent) 35%,white);
}

.theme-rules .public-info-button--accent,
.theme-schedules .public-info-button--accent,
.theme-workshop .public-info-button--accent {
  color:#fff !important;
  border-color:transparent;
  background:
    linear-gradient(
      135deg,
      var(--page-accent),
      var(--page-accent-dark)
    );
}


/* Schedule timeline: wine-red base */
.theme-schedules .schedule-v2-timeline::before {
  background:
    linear-gradient(
      180deg,
      #a74a66,
      #7a1838 46%,
      #541025 76%,
      #b56b7d
    );
}

.theme-schedules .schedule-v2-dot,
.theme-schedules .schedule-v2-item--deadline .schedule-v2-dot,
.theme-schedules .schedule-v2-item--submission .schedule-v2-dot,
.theme-schedules .schedule-v2-item--finish .schedule-v2-dot,
.theme-schedules .schedule-v2-item--result .schedule-v2-dot,
.theme-schedules .schedule-v2-item--award .schedule-v2-dot {
  background:var(--page-accent);
  box-shadow:0 0 0 2px #d9a6b5;
}

.theme-schedules .schedule-v2-date {
  border-color:#dab3bf;
  background:#fffafb;
}

.theme-schedules .schedule-v2-body {
  border-color:#e2c8d0;
  background:#fffafb;
}

.theme-schedules .schedule-v2-account-note__mark {
  background:linear-gradient(135deg,#9b3555,#69172f);
}

.theme-schedules .schedule-v2-account-note h2 {
  color:#65172f !important;
}


/* Workshop: deep green */
.theme-workshop .workshop-v2-session {
  border-color:#a8d3c4;
  background:linear-gradient(135deg,#eef9f5,#fff);
}

.theme-workshop .workshop-v2-session--purple {
  border-color:#a8d3c4;
  background:linear-gradient(135deg,#f3fbf8,#fff);
}

.theme-workshop .workshop-v2-session__number,
.theme-workshop .workshop-v2-session--purple .workshop-v2-session__number {
  background:linear-gradient(135deg,#118c78,#004c39);
}

.theme-workshop .workshop-v2-session__copy h3,
.theme-workshop .workshop-v2-session__copy strong {
  color:#004c39 !important;
}

.theme-workshop .workshop-v2-program {
  background:#eff8f4;
}

.theme-workshop .workshop-v2-program strong {
  color:#004c39;
}

.theme-workshop .workshop-v2-vod {
  border-color:#96cab8;
  background:#f0faf6;
}

.theme-workshop .workshop-v2-vod__mark {
  background:linear-gradient(135deg,#118c78,#004c39);
}

.theme-workshop .workshop-v2-vod h2,
.theme-workshop .workshop-v2-tool-guide h2 {
  color:#004c39 !important;
}

.theme-workshop .workshop-v2-tool-guide {
  border-color:#a8d3c4;
  background:linear-gradient(135deg,#eef9f5,#fff);
}


/* ----------------------------------------------------------
   Judging: deep purple
   ---------------------------------------------------------- */

.theme-judging .judging-hero {
  border-color:#6d3b91;
  background:
    radial-gradient(circle at 88% 8%,rgba(255,255,255,.10),transparent 14rem),
    linear-gradient(135deg,#35134f,#5d2b86 60%,#7640a0);
}

.theme-judging .judging-kicker {
  color:#5d2b86;
}

.theme-judging .judging-hero .judging-kicker {
  color:rgba(255,255,255,.78);
}

.theme-judging .judging-hero h2,
.theme-judging .judging-hero p {
  color:#fff !important;
}

.theme-judging .judging-hero__summary > div {
  border-color:rgba(255,255,255,.35);
  background:rgba(255,255,255,.94);
}

.theme-judging .judging-hero__summary span {
  color:#4e3a5d !important;
}

.theme-judging .judging-hero__summary strong {
  color:#512476;
}

.theme-judging .judging-hero__art svg {
  fill:rgba(255,255,255,.10);
  stroke:#fff;
  filter:drop-shadow(0 10px 18px rgba(0,0,0,.12));
}

.theme-judging .judging-intro {
  border-left-color:#5d2b86;
  background:#f8f2fc;
}

.theme-judging .judging-intro h2,
.theme-judging .judging-comic__heading h2,
.theme-judging .judging-misunderstandings__head h2,
.theme-judging .judging-final-message h2 {
  color:#4c216f !important;
}

.theme-judging .judging-button--primary {
  background:linear-gradient(135deg,#7640a0,#421860);
}


/* ----------------------------------------------------------
   Contact: strong orange
   ---------------------------------------------------------- */

.theme-contact .contact-panel .panel-heading h1 {
  color:#834000 !important;
}


/* ----------------------------------------------------------
   Navigation: each destination gets its HOME-card color
   ---------------------------------------------------------- */

.contest-header-v2 .contest-nav-link[data-nav-key="home"] {
  --nav-accent:#0d56d8;
  --nav-soft:#eef4ff;
}

.contest-header-v2 .contest-nav-link[data-nav-key="rules"],
.contest-header-v2 .contest-nav-link[data-nav-key="tools"] {
  --nav-accent:#082978;
  --nav-soft:#eef2fb;
}

.contest-header-v2 .contest-nav-link[data-nav-key="schedules"] {
  --nav-accent:#7a1838;
  --nav-soft:#fff0f4;
}

.contest-header-v2 .contest-nav-link[data-nav-key="workshop"] {
  --nav-accent:#006b4f;
  --nav-soft:#edf8f4;
}

.contest-header-v2 .contest-nav-link[data-nav-key="judging"] {
  --nav-accent:#5d2b86;
  --nav-soft:#f5eef9;
}

.contest-header-v2 .contest-nav-link[data-nav-key="contact"] {
  --nav-accent:#c86500;
  --nav-soft:#fff3e5;
}

.contest-header-v2 .contest-nav-link[data-nav-key="register"] {
  --nav-accent:#c71555;
  --nav-soft:#fff0f5;
}

.contest-header-v2 .contest-nav-link[data-nav-key="login"],
.contest-header-v2 .contest-nav-link[data-nav-key="member"] {
  --nav-accent:#65483a;
  --nav-soft:#f4efeb;
}

.contest-header-v2 .contest-nav-link[data-nav-key="elementary"] {
  --nav-accent:#59677e;
  --nav-soft:#f2f4f7;
}

.contest-header-v2 .contest-header-inner--nav .contest-nav-link:hover,
.contest-header-v2 .contest-header-inner--nav .contest-nav-link.is-current,
.contest-header-v2 .contest-utility-nav .contest-nav-link:hover,
.contest-header-v2 .contest-utility-nav .contest-nav-link.is-current {
  color:var(--nav-accent) !important;
  background:var(--nav-soft) !important;
}

.contest-header-v2 .contest-header-inner--nav .contest-nav-link.is-current::after {
  background:var(--nav-accent) !important;
}

.contest-header-v2 .contest-mobile-nav .contest-nav-link:hover,
.contest-header-v2 .contest-mobile-nav .contest-nav-link.is-current {
  color:var(--nav-accent) !important;
  background:var(--nav-soft) !important;
}


/* Account buttons also follow their areas */
.contest-header-v2 .contest-account-nav .contest-nav-link[data-nav-key="register"] {
  color:#fff !important;
  border-color:#a91248;
  background:linear-gradient(135deg,#d0185d,#94103f);
  box-shadow:0 5px 13px rgba(174,23,73,.15);
}

.contest-header-v2 .contest-account-nav .contest-nav-link[data-nav-key="login"] {
  color:#573d32 !important;
  border-color:#c9b9af;
  background:#faf7f5;
}

.contest-header-v2 .contest-account-nav .contest-nav-link[data-nav-key="member"] {
  color:#fff !important;
  border-color:#553a30;
  background:linear-gradient(135deg,#745344,#493229);
  box-shadow:0 5px 13px rgba(72,47,37,.14);
}


/* ----------------------------------------------------------
   "参加無料" is informational, not a CTA
   ---------------------------------------------------------- */

.contest-header-v2 .contest-free-badge {
  min-width:auto;
  min-height:26px;
  padding:3px 8px;
  border:1px solid #d8dee9;
  color:#687389;
  background:#f6f7fa;
  box-shadow:none;
  font-size:.63rem;
  font-weight:800;
  letter-spacing:.02em;
}


/* ----------------------------------------------------------
   Small-screen theme refinements
   ---------------------------------------------------------- */

@media (max-width:760px) {
  .theme-rules .public-info-hero,
  .theme-schedules .public-info-hero,
  .theme-workshop .public-info-hero {
    box-shadow:0 9px 22px color-mix(in srgb,var(--page-accent) 15%,transparent);
  }
}

/* ==========================================================================
   24. Signed-in workspace: brown / ivory v6
   team.php + entry.php
   ========================================================================== */

.theme-account-workspace {
  --workspace-brown:#65483a;
  --workspace-brown-dark:#3d2a22;
  --workspace-brown-mid:#806052;
  --workspace-brown-light:#a88470;
  --workspace-ivory:#f5f1ed;
  --workspace-ivory-2:#faf8f6;
  --workspace-border:#cbb9ad;
  --workspace-border-light:#ded2ca;
  --workspace-text:#111;
}

body.theme-account-workspace {
  background:
    radial-gradient(circle at 8% 3%,rgba(101,72,58,.07),transparent 25rem),
    radial-gradient(circle at 92% 8%,rgba(168,132,112,.055),transparent 24rem),
    linear-gradient(180deg,#fbf9f7,#f4f0ec 72%,#fff);
}

.theme-account-workspace .panel {
  border-color:#d0c1b8;
  box-shadow:0 12px 31px rgba(74,49,38,.075);
}

.theme-account-workspace .panel::before {
  background:linear-gradient(
    90deg,
    var(--workspace-brown-dark),
    var(--workspace-brown),
    var(--workspace-brown-light)
  );
}

.theme-account-workspace .panel-kicker,
.theme-account-workspace .team-kicker,
.theme-account-workspace .entry-v3-kicker {
  color:#725346 !important;
}

.theme-account-workspace .panel-heading h1 {
  color:#4a332a !important;
}

.theme-account-workspace .page-back {
  color:#594237;
  border-color:#d4c6bd;
  background:#fbf8f6;
}

.theme-account-workspace .page-back:hover {
  color:#3d2a22;
  border-color:#ad9485;
  background:#fff;
}

/* TEAM */
.theme-team .team-guide {
  border-color:#cbb9ad;
  background:
    radial-gradient(circle at 9% 18%,rgba(101,72,58,.08),transparent 12rem),
    linear-gradient(135deg,#f3eeea,#fff 58%,#faf7f4);
}

.theme-team .team-guide__art,
.theme-team .team-section-heading__icon {
  background:linear-gradient(135deg,#987260,#65483a,#3d2a22);
  box-shadow:0 9px 22px rgba(72,47,37,.15);
}

.theme-team .team-guide h2,
.theme-team .team-section-heading h2,
.theme-team .team-current__header h2,
.theme-team .team-share-card h2,
.theme-team .team-change-section h2,
.theme-team .team-rule-summary h2 {
  color:#4b3329 !important;
}

.theme-team .team-guide p,
.theme-team .team-current__header p,
.theme-team .team-choice-card p,
.theme-team .team-share-card li,
.theme-team .team-change-section p,
.theme-team .team-rule-summary p,
.theme-team .team-user-id-card p {
  color:#111 !important;
}

.theme-team .team-flow > i {
  color:#ae9689;
}

.theme-team .team-flow__item {
  border-color:#ddd0c8;
  background:#faf8f6;
}

.theme-team .team-flow__item > span {
  background:#65483a;
}

.theme-team .team-flow__item strong {
  color:#4e372d;
}

.theme-team .team-flow__item small {
  color:#111;
}

.theme-team .team-user-id-card {
  border-color:#b99376;
  background:#fbf5ef;
}

.theme-team .team-user-id-card span {
  color:#65483a;
}

.theme-team .team-user-id-card strong {
  color:#4b3025;
}

.theme-team .team-section-heading__mark {
  background:linear-gradient(135deg,#9b6b4a,#684333);
}

.theme-team .team-choice-card {
  border-color:#d8cbc3;
}

.theme-team .team-choice-card--solo,
.theme-team .team-choice-card--team {
  background:linear-gradient(135deg,#faf7f5,#fff);
}

.theme-team .team-choice-card__label {
  color:#65483a;
  background:#eee5df;
}

.theme-team .team-choice-card h3 {
  color:#4b3329 !important;
}

.theme-team .team-current__header {
  border-color:#cbb9ad;
  background:linear-gradient(135deg,#f3eeea,#fff);
}

.theme-team .team-member-progress {
  background:#f5f1ed;
}

.theme-team .team-member-progress span {
  color:#4e3a31;
}

.theme-team .team-member-progress strong {
  color:#4b3329;
}

.theme-team .team-member-progress__track {
  background:#e5ddd8;
}

.theme-team .team-member-progress__track > span {
  background:linear-gradient(90deg,#a17a66,#765346,#4d352b);
}

.theme-team .team-member-card {
  border-color:#ddd1ca;
}

.theme-team .team-member-card.is-representative {
  border-color:#bba495;
  background:linear-gradient(135deg,#f4eee9,#fff);
}

.theme-team .team-member-card__avatar,
.theme-team .team-member-card.is-representative .team-member-card__avatar {
  background:linear-gradient(135deg,#95705d,#65483a,#3d2a22);
}

.theme-team .team-member-card__top strong {
  color:#473229;
}

.theme-team .team-member-role {
  background:#65483a;
}

.theme-team .team-member-role--member {
  color:#573f34;
  background:#eee5df;
}

.theme-team .team-button--primary,
.theme-team button.team-button--primary {
  color:#fff !important;
  background:linear-gradient(135deg,#725144,#3d2a22) !important;
  box-shadow:0 7px 17px rgba(72,47,37,.16) !important;
}

.theme-team .team-button--light,
.theme-team .team-button--light-link {
  color:#553c31 !important;
  border-color:#cab9ae !important;
  background:#f7f3f0 !important;
}

.theme-team .team-mini-button {
  color:#553c31 !important;
  border-color:#cdbdb3 !important;
  background:#faf8f6 !important;
}

.theme-team .team-share-card {
  border-color:#c9b7ab;
  background:
    radial-gradient(circle at 94% 10%,rgba(101,72,58,.07),transparent 11rem),
    linear-gradient(135deg,#f4efeb,#fff);
}

.theme-team .team-share-card__icon {
  color:#fff;
  background:linear-gradient(135deg,#876354,#543a30);
}

.theme-team .team-rule-grid > div {
  border-color:#d9cdc5;
  background:#faf8f6;
}

.theme-team .team-rule-grid strong {
  color:#4b3329;
}

/* ENTRY */
.theme-entry .entry-v3-hero {
  border-color:#cbb9ad;
  background:
    radial-gradient(circle at 9% 18%,rgba(101,72,58,.08),transparent 11rem),
    radial-gradient(circle at 88% 10%,rgba(168,132,112,.07),transparent 12rem),
    linear-gradient(135deg,#f3eeea,#fff 60%,#faf7f4);
}

.theme-entry .entry-v3-hero__icon,
.theme-entry .entry-v3-owner__icon,
.theme-entry .entry-v3-section__number,
.theme-entry .entry-v3-section--idea .entry-v3-section__number {
  background:linear-gradient(135deg,#96705e,#65483a,#3d2a22);
  box-shadow:0 8px 18px rgba(72,47,37,.13);
}

.theme-entry .entry-v3-hero h2,
.theme-entry .entry-v3-owner h2,
.theme-entry .entry-v3-section__heading h2,
.theme-entry .entry-v3-judge-note h2,
.theme-entry .entry-v3-change-note h2,
.theme-entry .entry-v3-help h2 {
  color:#4b3329 !important;
}

.theme-entry .entry-v3-hero p,
.theme-entry .entry-v3-owner p,
.theme-entry .entry-v3-guide,
.theme-entry .entry-v3-help p,
.theme-entry .entry-v3-example > div,
.theme-entry .entry-v3-simple-rules small {
  color:#111 !important;
}

.theme-entry .entry-v3-deadline {
  border-color:#aa8066;
  background:#fbf5ef;
}

.theme-entry .entry-v3-deadline span,
.theme-entry .entry-v3-deadline strong,
.theme-entry .entry-v3-deadline small {
  color:#51372d;
}

.theme-entry .entry-v3-simple-rules > div {
  border-color:#ddd0c8;
  background:#faf8f6;
}

.theme-entry .entry-v3-simple-rules > div > span {
  background:#65483a;
}

.theme-entry .entry-v3-simple-rules strong {
  color:#4c352b;
}

.theme-entry .entry-v3-owner {
  border-color:#d7cac2;
  background:#f9f6f3;
}

.theme-entry .entry-v3-owner__badge,
.theme-entry .entry-v3-flex-label {
  color:#583f34;
  background:#eee5df;
}

.theme-entry .entry-v3-autosave {
  border-color:#d5c6bd;
  background:#f8f5f2;
}

.theme-entry .entry-v3-autosave__dot {
  background:#806052;
}

.theme-entry .entry-v3-section {
  border-color:#ddd1c9;
  background:#fff;
}

.theme-entry .entry-v3-section--idea {
  border-color:#cbb9ad;
  background:linear-gradient(135deg,#f8f4f1,#fff);
}

.theme-entry .entry-v3-ai-rule {
  border-left-color:#65483a;
  color:#3f3029;
  background:#f5f1ed;
}

.theme-entry .entry-v3-example {
  border-color:#ddd1c9;
  background:#faf8f6;
}

.theme-entry .entry-v3-example summary {
  color:#5c4034;
}

.theme-entry .entry-v3-tool-row {
  border-color:#ddd2ca;
  background:#faf8f6;
}

.theme-entry .entry-v3-button--primary {
  color:#fff !important;
  background:linear-gradient(135deg,#725144,#3d2a22) !important;
  box-shadow:0 7px 17px rgba(72,47,37,.16) !important;
}

.theme-entry .entry-v3-button--light {
  color:#553c31 !important;
  border-color:#cab9ae !important;
  background:#f7f3f0 !important;
}

.theme-entry .entry-v3-representative-note {
  color:#533e34;
  background:#f1eae5;
}

.theme-entry .entry-v3-history {
  border-color:#d6c9c1;
  background:#faf8f6;
}

.theme-entry .entry-v3-history > details > summary {
  color:#553b30;
}

.theme-entry .entry-v3-history > details > summary strong {
  background:#65483a;
}

.theme-entry .entry-v3-revision {
  border-color:#ddd1c9;
}

.theme-entry .entry-v3-revision__head strong,
.theme-entry .entry-v3-revision > details > summary {
  color:#553b30;
}

.theme-entry .entry-v3-revision__note {
  color:#49372f;
  background:#f3eeea;
}

.theme-entry .entry-v3-help {
  border-top-color:#d9ccc4;
  background:#f8f5f2;
}

.theme-entry .entry-v3-page input:focus,
.theme-entry .entry-v3-page textarea:focus {
  border-color:#806052 !important;
  box-shadow:0 0 0 4px rgba(101,72,58,.10) !important;
}

/* Signed-in AI guide: current nav is brown instead of public navy. */
.theme-ai-tools .contest-header-v2
.contest-nav-link[data-nav-key="tools"].is-current {
  color:#65483a !important;
  background:#f4efeb !important;
}

.theme-ai-tools .contest-header-v2
.contest-nav-link[data-nav-key="tools"].is-current::after {
  background:#65483a !important;
}

