*{
    box-sizing:border-box;
}

body{
    margin:0;
    font-family:Arial,'Hiragino Kaku Gothic ProN','Yu Gothic',Meiryo,sans-serif;
    background:#f4f6f8;
    color:#222;
}


/* ========================================
   ヘッダー
   ======================================== */

.topbar{
    background:#17233c;
    color:#fff;
    padding:18px 24px;
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:20px;
}

.brand{
    font-size:24px;
    font-weight:700;
}

.sub{
    font-size:13px;
    opacity:.8;
}

.topbar a{
    color:#fff;
    text-decoration:none;
    margin-left:12px;
    font-size:14px;
}


/* ========================================
   共通レイアウト
   ======================================== */

.container{
    max-width:1100px;
    margin:28px auto;
    padding:0 18px;
}

.footer{
    text-align:center;
    color:#666;
    padding:28px;
}

.card{
    background:#fff;
    border-radius:14px;
    padding:24px;
    margin:18px 0;
    box-shadow:0 6px 22px rgba(0,0,0,.07);
}

.grid{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(230px,1fr));
    gap:18px;
}


/* ========================================
   ボタン
   ======================================== */

.btn,
.button,
button,
input[type=submit]{
    display:inline-block;
    background:#1f5eff;
    color:#fff;
    border:none;
    border-radius:9px;
    padding:10px 16px;
    text-decoration:none;
    cursor:pointer;
    font-weight:700;
}

.btn.gray{
    background:#667085;
}

.btn.red{
    background:#d92d20;
}

.btn.green{
    background:#079455;
}


/* ========================================
   フォーム
   ======================================== */

label{
    display:block;
    margin:14px 0 6px;
    font-weight:700;
}

input,
textarea,
select{
    width:100%;
    padding:11px;
    border:1px solid #ccd1d8;
    border-radius:8px;
    font-size:15px;
    background:#fff;
}

textarea{
    min-height:140px;
}

.actions{
    display:flex;
    gap:10px;
    flex-wrap:wrap;
    margin-top:16px;
}


/* ========================================
   管理画面ログイン
   ======================================== */

.admin-login{
    max-width:460px;
    margin:60px auto;
}

.admin-login form{
    max-width:360px;
}

.admin-login input[type="password"]{
    width:100%;
}

.admin-login input[type="submit"]{
    width:auto;
}


/* ========================================
   テーブル
   ======================================== */

table{
    width:100%;
    border-collapse:collapse;
    background:#fff;
}

th,
td{
    border-bottom:1px solid #e5e7eb;
    padding:10px;
    text-align:left;
    vertical-align:top;
}

th{
    background:#f8fafc;
}


/* ========================================
   共通表示
   ======================================== */

.badge{
    display:inline-block;
    padding:4px 9px;
    border-radius:999px;
    background:#eef2ff;
    color:#1f3a8a;
    font-size:12px;
}

.danger{
    color:#d92d20;
}

.muted{
    color:#667085;
}

.small{
    font-size:13px;
    color:#667085;
}

.message{
    border-left:4px solid #1f5eff;
    background:#f8fafc;
    padding:12px;
    margin:12px 0;
    border-radius:8px;
}

.message.get{
    border-left-color:#079455;
}


/* ========================================
   エントランス
   ======================================== */

.entrance-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
    align-items:stretch;
}

.entrance-card{
    display:flex;
    flex-direction:column;
    min-height:300px;
}

.entrance-card .actions{
    margin-top:auto;
}

.entrance-icon{
    width:64px;
    height:64px;
    border-radius:18px;
    display:flex;
    align-items:center;
    justify-content:center;
    font-weight:800;
    letter-spacing:1px;
    margin-bottom:18px;
    background:#eef2ff;
    color:#1f5eff;
}

.get-card .entrance-icon{
    background:#ecfdf3;
    color:#079455;
}

.entrance-btn{
    font-size:16px;
    padding:13px 20px;
}

.get-welcome{
    border-top:5px solid #079455;
}

.flow-list{
    display:grid;
    gap:12px;
}

.flow-list>div{
    display:flex;
    align-items:center;
    gap:14px;
    padding:14px;
    background:#f8fafc;
    border-radius:10px;
}

.flow-list b{
    width:32px;
    height:32px;
    border-radius:50%;
    display:flex;
    align-items:center;
    justify-content:center;
    background:#17233c;
    color:#fff;
    flex:0 0 32px;
}


/* ========================================
   登録ID
   ======================================== */

.id-card{
    margin:24px 0;
    padding:22px;
    border:2px solid #bfdbfe;
    border-radius:18px;
    background:#eff6ff;
    text-align:center;
}

.id-card span{
    display:block;
    color:#475569;
    font-weight:700;
    margin-bottom:7px;
}

.id-card strong{
    display:block;
    font-size:38px;
    letter-spacing:.18em;
    color:#1d4ed8;
}

.id-login-form{
    max-width:520px;
}


/* ========================================
   専用掲示板 メッセージ表示
   ======================================== */

.board-room-name{
    color:#667085;
    margin-top:8px;
}

.board-message-list{
    width:100%;
}

.board-message-card{
    padding:18px 0 0;
}

.board-message-date{
    font-size:13px;
    color:#94a3b8;
    margin-bottom:10px;
}

.board-message-name{
    font-size:15px;
    color:#475569;
    margin:0 0 7px 18px;
}

.board-message-title{
    font-size:17px;
    color:#172033;
    margin:0 0 9px 18px;
}

.board-message-body{
    font-size:15px;
    line-height:1.9;
    color:#334155;
    margin:0 0 0 18px;
}

.board-message-separator{
    border:0;
    border-top:1px solid #cfd6df;
    margin:30px 0 18px 0;
}

.board-message-card:last-child .board-message-separator{
    margin-bottom:8px;
}


/* ========================================
   スマートフォン対応
   ======================================== */

@media(max-width:700px){

    .topbar{
        display:block;
    }

    .topbar nav{
        margin-top:14px;
    }

    .topbar a{
        display:inline-block;
        margin:4px 8px 4px 0;
    }

    table{
        font-size:13px;
    }

    .entrance-grid{
        grid-template-columns:1fr;
    }

    .entrance-card{
        min-height:auto;
    }

    .board-message-name,
    .board-message-title,
    .board-message-body{
        margin-left:8px;
    }

    .board-message-separator{
        margin-top:26px;
    }

    .admin-login{
        max-width:100%;
        margin:30px auto;
    }

    .admin-login form{
        max-width:100%;
    }
}


/* ========================================
   prinx 本体サイトとのデザイン統一 (2026-09-14)
   ======================================== */
:root{
    --prinx-bg:#070914;
    --prinx-surface:#111827;
    --prinx-surface-2:#0b1220;
    --prinx-accent:#38bdf8;
    --prinx-text:#ffffff;
    --prinx-muted:#b9c6d8;
    --prinx-line:rgba(100,116,139,.25);
}
html{scroll-behavior:smooth;}
body{
    font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif;
    background:var(--prinx-bg);
    color:var(--prinx-text);
    line-height:1.75;
}
a{color:inherit;}

/* prinx 共通ヘッダー */
.topbar.prinx-header{
    position:sticky;
    top:0;
    z-index:50;
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:20px;
    padding:14px clamp(18px,4vw,60px);
    background:rgba(5,8,22,.88);
    backdrop-filter:blur(14px);
    border-bottom:1px solid var(--prinx-line);
    color:#fff;
}
.prinx-header .brand{font-size:inherit;font-weight:900;letter-spacing:.04em;}
.prinx-header .brand a{display:block;margin:0;padding:0;}
.prinx-header .brand img{display:block;width:240px;max-width:100%;height:auto;}
.prinx-header .global-nav-links{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end;}
.prinx-header .global-nav-links a{
    color:#fff;
    text-decoration:none;
    margin:0;
    padding:8px 13px;
    font-size:14px;
    font-weight:800;
    border:1px solid transparent;
}
.prinx-header .global-nav-links a:hover{border-color:var(--prinx-accent);color:var(--prinx-accent);}

/* OMS 内部導線。主サイトのヘッダーを邪魔しないサブナビ */
.oms-contextbar{
    max-width:1180px;
    margin:20px auto 0;
    padding:12px 18px;
    display:flex;
    gap:10px 16px;
    align-items:center;
    flex-wrap:wrap;
    color:var(--prinx-muted);
    border:1px solid var(--prinx-line);
    border-left:4px solid var(--prinx-accent);
    background:rgba(17,24,39,.82);
}
.oms-contextbar span{font-weight:800;color:#fff;margin-right:auto;}
.oms-contextbar a{color:#fff;text-decoration:none;font-weight:700;}
.oms-contextbar a:hover{color:var(--prinx-accent);}

/* OMS 本文 */
.container{max-width:1180px;margin:28px auto 70px;padding:0 clamp(18px,4vw,40px);}
h1,h2,h3{color:#fff;}
p,.muted,.small{color:var(--prinx-muted);}
.card{
    background:var(--prinx-surface);
    border:1px solid var(--prinx-line);
    border-radius:0;
    padding:24px;
    margin:18px 0;
    box-shadow:0 18px 50px rgba(0,0,0,.18);
}
.card h1,.card h2,.card h3{margin-top:0;}
.grid{gap:18px;}

/* ボタン */
.btn,.button,button,input[type=submit]{
    background:var(--prinx-accent);
    color:#fff;
    border:none;
    border-radius:10px;
    padding:11px 17px;
    font-weight:900;
}
.btn:hover,.button:hover,button:hover,input[type=submit]:hover{filter:brightness(1.08);}
.btn.gray{background:#667085}.btn.red{background:#d92d20}.btn.green{background:#079455}

/* フォーム */
label{color:#e5edf7;}
input,textarea,select{
    color:#172033;
    background:#fff;
    border:1px solid #cbd5e1;
    border-radius:8px;
}

/* テーブル */
table{background:var(--prinx-surface);color:#fff;border:1px solid var(--prinx-line);}
th,td{border-bottom:1px solid var(--prinx-line);}
th{background:#17233c;color:#fff;}
td{background:var(--prinx-surface);}

.badge{background:rgba(56,189,248,.15);color:#8ddcff;border:1px solid rgba(56,189,248,.35);}
.message{background:var(--prinx-surface-2);color:#dbeafe;}
.flow-list>div{background:var(--prinx-surface-2);border:1px solid var(--prinx-line);}
.id-card{background:#0b1930;border-color:rgba(56,189,248,.45);}
.id-card span{color:var(--prinx-muted);}.id-card strong{color:#7dd3fc;}
.board-message-name,.board-message-title,.board-message-body{color:#e5edf7;}
.board-message-date{color:#94a3b8;}
.board-message-separator{border-top-color:var(--prinx-line);}

/* prinx 共通フッター */
.footer.prinx-footer{
    padding:40px;
    text-align:center;
    border-top:1px solid var(--prinx-line);
    color:#fff;
    background:transparent;
}
.prinx-footer p{margin:0;color:#fff;}

/* index.html 内の生成系パーツも OMS だけ本体色へ寄せる */
.flb-section,.flb-col,.flb-card,.child-box,.ses-form,.ses-table{border-color:var(--prinx-line)!important;}
.flb-col,.flb-card,.child-box,.ses-form,.ses-table{background:var(--prinx-surface)!important;color:#fff!important;}
.flb-hero{background:radial-gradient(circle at 70% 20%,rgba(56,189,248,.22),transparent 34%),linear-gradient(135deg,#050816,#111827)!important;}
.ses-table thead th{background:#17233c!important;color:#fff!important;}
.ses-table-striped tbody tr:nth-child(even){background:#0b1220!important;}

@media(max-width:800px){
    .topbar.prinx-header{align-items:flex-start;flex-direction:column;}
    .prinx-header .global-nav-links{justify-content:flex-start;}
    .prinx-header .global-nav-links a{padding:6px 9px;font-size:13px;}
    .oms-contextbar{margin:14px 18px 0;}
}


/* ===== prinx common mobile hamburger navigation ===== */
.prinx-header .nav-toggle{display:none;background:transparent;border:1px solid rgba(255,255,255,.45);width:46px;height:42px;padding:9px;border-radius:4px;cursor:pointer;align-items:center;justify-content:center;flex-direction:column;gap:5px;color:#fff;margin:0}
.prinx-header .nav-toggle span{display:block;width:24px;height:2px;background:currentColor;transition:transform .25s ease,opacity .25s ease}
@media(max-width:800px){
  .topbar.prinx-header{display:grid!important;grid-template-columns:1fr auto;align-items:center!important;flex-direction:initial!important;padding:12px 18px;gap:12px}
  .prinx-header .brand{min-width:0}.prinx-header .brand img{width:min(220px,68vw)}
  .prinx-header .nav-toggle{display:flex}
  .prinx-header .global-nav-links{grid-column:1/-1;display:none!important;width:100%;padding:8px 0 4px;flex-direction:column;gap:2px!important;align-items:stretch;justify-content:flex-start}
  .prinx-header.nav-open .global-nav-links{display:flex!important}
  .prinx-header .global-nav-links a{display:block;width:100%;margin:0!important;padding:11px 10px!important;border-bottom:1px solid rgba(255,255,255,.12)!important}
  .prinx-header.nav-open .nav-toggle span:nth-child(1){transform:translateY(7px) rotate(45deg)}
  .prinx-header.nav-open .nav-toggle span:nth-child(2){opacity:0}
  .prinx-header.nav-open .nav-toggle span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
}
