const style=document.createElement('style');
style.textContent=`
/* ==========================================================================
1. 変数定義 (Design Tokens)
========================================================================== */
:root {
/* カラーパレット */
--color-main: #004080;
--color-accent: #50c6ff;
--color-primary: #2b6cb0;
--color-error: #d9534f;
--color-text: #2d3748;
--color-auxiliary: #8290a1;
--color-link: #0056b3;
/* 背景色(眩しさ防止の肝) */
--bg-card: #fcfcfc;
--bg-dark: rgba(20, 25, 30, 0.9);
--bg-light: rgba(230, 239, 248, 0.9);
--bg-hover: rgba(255, 255, 255, 0.1); /* サイドバーのリンクホバー背景 */
--bg-input: #f8fafc;
--bg-error: #fff5f5;
--bc-error: #d9534f;
/* タイポグラフィ */
--main-font: "Segoe UI", sans-serif;
--fz-small: 0.675rem;
--fz-normal: 0.75rem;
--fz-medium: 0.875rem;
--fz-body: 1rem;
--fw-normal: 400;
--fw-medium: 500;
--fw-semi-bold: 600;
--fw-bold: 700;
--fw-extra-bold: 800;
/* シャドウ */
--glow-blue: rgba(0, 120, 212, 0.3);
--shadow-light: rgba(255, 255, 255, 0.8);
--shadow-dark: rgba(174, 194, 224, 0.6);
--box-shadow-inset: inset 2px 2px 4px rgba(80, 120, 160, 0.25),
inset -2px -2px 4px rgba(255, 255, 255, 0.4);
--box-shadow-focus: inset -1px -1px 3px rgba(255, 255, 255, 0.8),
inset 1px 1px 3px rgba(0, 0, 0, 0.05),
0 0 8px var(--glow-blue);
/* その他 */
--radius-small: 8px;
--radius-normal: 1rem;
--radius-large: 2rem;
--nav-width: 5rem; /* サイドバーの幅 */
}
/* フェードインアニメーション */
@keyframes fadeIn {
0% { opacity: 0; }
100% { opacity: 1; }
}
/* ==========================================================================
2. ベーススタイル / リセット
========================================================================== */
*, *::before, *::after {
box-sizing: border-box;
-webkit-tap-highlight-color: transparent; /* スマホのデフォルト機能である「タップした時に出る半透明の青い四角」を消しています */
}
body {
/* 1. 配置・レイアウト(要素をどこに置くか) */
display: flex;
flex-direction: column;
justify-content: center;
align-items: stretch;
min-height: 100vh;
margin: 0;
padding: 1rem;
/* 2. 背景・外観(箱の見た目) */
/* background: linear-gradient(to bottom right, #dfefff, #f5fbff); */
background: linear-gradient(135deg, rgba(220, 238, 255, 1) 0%, rgba(220, 238, 255, 0.85) 100%);
background-attachment: fixed;
/* 3. タイポグラフィ(中身の文字のルール) */
color: var(--color-text);
font-family: var(--main-font);
line-height: 1.6;
letter-spacing: 0.16px;
word-break: break-all;
}
a {
opacity: 0.8;
cursor: pointer;
font-weight: var(--fw-bold);
color: var(--color-link);
text-decoration: none;
transition: all 0.2s ease-out;
}
a:hover,
a:focus {
outline: none;
opacity: 1;
}
menu, ol, ul {
list-style: none;
margin: 0;
padding: 0;
}
/* ==========================================================================
3. レイアウト・共通コンテナ
========================================================================== */
#SMP_STYLE .body_tbl {
width: 100%;
max-width: 800px;
margin: 0 auto;
padding: 3rem 2rem;
border: 1px solid rgba(255, 255, 255, 0.6);
border-radius: var(--radius-small);
background: var(--bg-card);
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
animation: fadeIn 0.2s ease;
}
/* 汎用クリアフィックス */
.cf:after {
content: "";
display: block;
clear: both;
}
@media screen and (max-width: 960px) {
#SMP_STYLE .body_tbl {
width: 100%;
padding: 2rem 1rem;
}
}
/* ==========================================================================
4. 見出し・テキスト装飾
========================================================================== */
h1 {
font-size: 1.625rem;
line-height: 1.5;
text-align: center;
margin-bottom: 1.5rem;
color: var(--color-main);
font-weight: var(--fw-bold);
}
h2.title {
margin-top: 2rem;
padding-left: 0.75rem;
font-size: 1.25rem;
color: var(--color-primary);
font-weight: var(--fw-bold);
}
h2.title::before {
content: "◆ ";
color: var(--color-accent);
}
/* メッセージボックス(通知・エラー) */
p.header_text, p.header_rmesg, p.header_emesg {
margin-bottom: 1.5rem;
padding: 1rem;
border-radius: var(--radius-small);
font-size: 0.9rem;
}
p.header_text {
border: 1px solid #b3d7f5;
border-left: 4px solid var(--color-accent);
color: var(--color-main);
}
p.header_rmesg {
background: #e7f4ff;
border: 1px solid #a3d1ff;
color: #005fa3;
}
p.header_emesg {
background: var(--bg-error);
border: 1px solid var(--bc-error);
color: var(--color-error);
}
@media (max-width: 768px) {
h1 {
font-size: 1.1rem;
}
}
/* ==========================================================================
5. フォーム基本要素 (Input, Select, Textarea)
========================================================================== */
/* 入力フィールド共通(ネオモーフィズム風) */
.input,
textarea,
select,
.data.file input[type="file"] {
width: 100%;
margin: 0; /* 必要に応じて明示 */
padding: 0.6rem;
border: none;
border-radius: var(--radius-large);
overflow-anchor: none;
background: var(--bg-light);
box-shadow: var(--box-shadow-inset);
color: currentColor;
font-family: var(--main-font);
font-size: 1rem;
cursor: text;
transition: background 0.2s ease, box-shadow 0.2s ease, color 0.2s ease;
scrollbar-width: thin;
scrollbar-color: #b1b9c4 #f0f4f7;
}
/* テキストエリア個別設定 */
textarea {
width: 100% !important;
min-height: 100px;
border-radius: var(--radius-small);
font-size: 0.85rem;
}
/* セレクトボックス個別設定 */
select {
/* 1. 配置・表示(ブラウザ標準の矢印を消す) */
display: block;
appearance: none;
-webkit-appearance: none;
/* 2. 余白(右側に矢印があるため、右パディングを少し広げる) */
padding: 0.6rem 2.5rem 0.6rem 0.6rem;
/* 3. 背景(個別に指定してアイコンを守る) */
background-color: var(--bg-light); /* ここはあえて個別のまま */
background-image: url('data:image/svg+xml;charset=UTF-8,');
background-repeat: no-repeat;
background-position: right 0.8rem center;
background-size: 1rem;
/* 4. タイポグラフィ */
text-align: center;
}
/* 1. ファイル入力エリア本体 */
.data.file input[type="file"] {
/* 1. 配置・表示(ボックスモデルの根幹) */
display: block; /* もし未設定なら追加推奨 */
position: relative;
min-height: 6rem;
margin-bottom: 1rem;
/* 2. 余白・枠線(箱の形を整える) */
padding: 3.5rem 2rem 0;
border-radius: var(--radius-normal);
/* 3. 背景・カーソル(表面のデザイン) */
background: var(--bg-light); /* 共通設定にあると思いますがここでも意識 */
cursor: pointer;
/* 4. テキスト・フォント(中身の見た目) */
color: var(--color-main);
font-size: smaller;
font-weight: var(--fw-bold);
line-height: 1.2;
text-align: left;
}
/* 2. 「+」アイコンの演出 */
.data.file input[type="file"]::before {
content: "+";
position: absolute;
top: 1rem;
left: 50%;
transform: translateX(-50%);
font-size: 2rem;
font-weight: var(--fw-bold);
color: var(--color-accent);
line-height: 1;
pointer-events: none;
}
/* 3. 標準ボタンの非表示(共通設定) */
.data.file input[type="file"]::file-selector-button,
.data.file input[type="file"]::-webkit-file-upload-button {
display: none;
}
/* 4. 操作時(クリック中や選択直後)に「+」を消す */
.data.file input[type="file"]:focus::before,
.data.file input[type="file"]:active::before {
opacity: 0;
}
/* フォーカス時共通 */
.input:focus,
textarea:focus,
select:focus,
.data.file input[type="file"]:focus {
outline: none;
background-color: var(--bg-input);
box-shadow: var(--box-shadow-focus);
}
/* ==========================================================================
6. ラジオボタン・チェックボックス (ボタン風スタイル)
========================================================================== */
/* ラベル全体のスタイル */
label {
display: flex;
align-items: center;
justify-content: center;
width: 100%;
padding: 0.6rem;
border-radius: var(--radius-large);
background: var(--bg-light);
box-shadow: var(--box-shadow-inset);
cursor: pointer;
transition: background 0.2s ease, box-shadow 0.2s ease, color 0.2s ease;
position: relative;
font-size: 0.9rem;
margin-bottom: 0.4rem;
}
/* --- input本体を非表示に --- */
label input[type="radio"],
label input[type="checkbox"] {
position: absolute;
opacity: 0;
pointer-events: none;
}
/* チェックされた時のスタイル(has対応ブラウザ) */
label:has(input:checked) {
background: var(--color-accent);
color: #fff;
box-shadow: 0 2px 6px rgba(0, 0, 0, 0.1) inset;
}
/* inputにフォーカスが当たったら、それを含むlabelにスタイルを当てる */
label:has(input:focus-visible) {
box-shadow: 0 0 8px var(--glow-blue);
}
/* ラジオボタン・チェックボックスのレイアウト最適化 */
@media screen and (min-width: 769px) {
.data.multi2 ul.cf {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
align-items: stretch;
gap: 0.2rem;
text-align: center;
}
}
.data.multi2 ul.cf li {
display: flex;
}
.data.multi2 ul.cf label {
padding: 0.6rem 1rem;
min-height: 2.5rem;
line-height: 1.2;
}
/* ==========================================================================
7. フォームの各ラベルとバリデーション
========================================================================== */
.smp_tmpl .title {
margin-bottom: 0.5rem;
color: var(--color-primary);
font-weight: var(--fw-bold);
}
.need {
display: inline-block;
vertical-align: middle;
margin-left: 0.5rem;
padding: 0.2rem 0.5rem;
border-radius: var(--radius-small);
background: var(--color-error);
color: white;
font-size: 0.8rem;
}
span.caution {
display: block;
margin-top: 0.4rem;
font-size: 0.8125rem;
font-weight: var(--fw-normal);
line-height: 1.6;
letter-spacing: 0.04em;
color: var(--color-text);
opacity: 0.9;
}
span.sample {
display: block;
margin-bottom: 0.5rem;
font-size: 0.8rem;
color: var(--color-auxiliary);
}
.msg {
display: block;
margin-top: 0.5rem;
padding: 0.2rem 0.5rem;
color: var(--color-error);
font-size: 0.85rem;
font-weight: var(--fw-bold);
}
/* エラーメッセージが空の時は非表示にして余白を消す */
.msg:empty {
display: none;
}
/* エラーがある項目の dl(親要素)を目立たせる */
/* SPIRALの仕様でdlに特定のクラスがつかない場合は、JSで付与するか
以下の「.msgが存在する場合のdl」という指定が有効です(モダンブラウザ対応) */
.smp_tmpl dl:has(.msg:not(:empty)) {
/* 1. レイアウト・形状 */
margin-bottom: 2rem;
padding: 1.2rem;
border-left: 4px solid var(--color-error);
border-radius: var(--radius-small);
/* 2. 背景・見た目 */
background: #fffaf0; /* ほんのり警告色(薄いオレンジ) */
box-shadow: 0 0 15px rgba(217, 83, 79, 0.25);
/* 3. 動き */
transition: all 0.3s ease;
}
/* ==========================================================================
8. 送信・操作ボタン
========================================================================== */
.submit,
input[name=SMPFORM_BACK],
input.clear,
.login-button {
width: 100%;
margin-top: 1rem;
padding: 0.8rem 2rem;
border: none;
border-radius: var(--radius-small);
color: #fff;
font-size: 1rem;
font-weight: var(--fw-bold);
cursor: pointer;
transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}
.submit {
background: linear-gradient(135deg, #004080 0%, #0056b3 100%);
box-shadow: 0 4px 10px rgba(0, 30, 60, 0.3);
}
input[name=SMPFORM_BACK] {
background: linear-gradient(135deg, #666666 0%, #999999 100%);
box-shadow: 0 4px 10px rgba(0, 0, 0, 0.15);
}
input.clear {
padding: 0.6rem;
border-radius: var(--radius-large);
background: var(--bg-light);
color: currentColor;
box-shadow: var(--box-shadow-inset);
font-size: 0.9rem;
font-weight: unset;
margin-bottom: 0.4rem;
}
/* --- ログインボタン (汎用) --- */
.login-button {
display: inline-flex;
justify-content: center;
align-items: center;
border-radius: var(--radius-large);
background: linear-gradient(135deg, #2196f3 0%, #1976d2 100%);
box-shadow: 0 4px 12px rgba(0, 120, 212, 0.3);
}
.submit:hover,
.submit:focus,
input[name=SMPFORM_BACK]:hover,
input[name=SMPFORM_BACK]:focus,
input.clear:hover,
input.clear:focus,
.login-button:hover,
.login-button:focus {
outline: none;
filter: brightness(1.05);
color: #fff;
/* background: linear-gradient(135deg, #0056b3 0%, #50c6ff 100%); */
/* background: linear-gradient(135deg, #888888 0%, #bbbbbb 100%); */
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
transform: translateY(1px);
}
input.clear:hover,
input.clear:focus {
background: var(--color-accent);
box-shadow: 0 2px 6px rgba(0, 0, 0, 0.1) inset;
}
.submit:active,
input[name=SMPFORM_BACK]:active,
input.clear:active,
.login-button:active {
filter: brightness(0.95);
box-shadow: 0 2px 6px rgba(0, 0, 0, 0.1) inset;
transform: translateY(1px) scale(0.98);
transition: all 0.1s linear;
}
/* ==========================================================================
9. 特殊レイアウト (定義リスト・インライン入力・表)
========================================================================== */
.smp_tmpl dl {
display: flex;
flex-wrap: wrap;
text-align: left;
margin-bottom: 1.5rem;
}
.smp_tmpl dt {
width: 100%;
margin-bottom: 0.3rem;
color: var(--color-main);
font-weight: var(--fw-bold);
}
.smp_tmpl dd {
width: 100%;
margin: 0;
}
/* 郵便番号・電話番号などの横並び設定 */
.zipcode ul, .phone ul, .time ul {
display: flex;
gap: 0.5rem;
flex-wrap: wrap;
}
.zipcode li.code01 input { max-width: 4rem; }
.zipcode li.code02 input { max-width: 5rem; }
.phone li input { max-width: 4rem; }
#SMP_STYLE .integer input { max-width: 6rem; }
#SMP_STYLE .real input { max-width: 10rem; }
#SMP_STYLE .num input { max-width: 6rem; }
#SMP_STYLE .time .year { max-width: 4rem; }
#SMP_STYLE .time input { max-width: 3rem; }
#SMP_STYLE .price input { max-width: 10rem; }
/* 表 PC・共通設定 */
.smp-card-list {
width: 100%;
margin: 10px auto;
border-collapse: collapse;
border: 1px solid #cccccc;
color: var(--color-text);
}
.smp-card-list th,
.smp-card-list td {
padding: 10px;
border: 1px solid #cccccc;
font-size: 0.8125rem;
text-align: left;
}
.smp-card-list th {
background: #f0f0f0;
}
/* --- スマホ用レスポンシブ設定 --- */
@media screen and (max-width: 768px) {
.smp-card-list {
border: none; /* 外枠を一旦消す */
}
.smp-card-list tr:nth-child(2) {
display: none;
}
.smp-card-list tr {
display: block;
overflow: hidden;
margin-bottom: 20px; /* カードごとの隙間 */
border: 1px solid #cccccc; /* trを外枠にする */
border-radius: 4px; /* 少し角を丸くするとカード感が出ます */
}
.smp-card-list th,
.smp-card-list td {
display: block;
width: 100% !important;
border: none; /* 個別の線を一旦すべて消す */
box-sizing: border-box;
}
.smp-card-list th:nth-child(1) {
background: #f0f0f0;
border-bottom: 1px solid #cccccc; /* 見出しの下だけに線を引く */
font-weight: var(--fw-bold);
}
.smp-card-list th:nth-child(2) {
background: transparent;
}
.smp-card-list td {
border-bottom: 1px dotted #eeeeee; /* 項目間の区切り(任意) */
}
.smp-card-list td:last-child {
border-bottom: none; /* 最後の項目は線を消す */
}
/* 資本金のセル(tr内の1番目のtd) */
.smp-card-list td:nth-of-type(1)::before {
content: "資本金:";
font-size: 0.7rem;
color: #888;
font-weight: var(--fw-normal);;
}
/* 従業員数のセル(tr内の2番目のtd) */
.smp-card-list td:nth-of-type(2)::before {
content: "従業員:";
font-size: 0.7rem;
color: #888;
font-weight: var(--fw-normal);
}
/* ラベルとデータの並びを整える */
.smp-card-list td {
display: flex; /* 横並びに */
justify-content: space-between; /* ラベルと数値を両端に */
align-items: center;
padding: 12px 15px;
}
}
/* ==========================================================================
10. フッター
========================================================================== */
.spiralSeal {
width: 100% !important;
margin-top: 2rem;
border: none !important;
}
/* trの中にあるtdをすべて縦並びにする */
.spiralSeal tr td {
display: block; /* 横並びのセルを縦並びに変える */
}
.spiralSeal td.description {
color: #8290a1; /* 文字色だけ調整 */
}
/* リンクも目立たないように色を調整 */
.description a {
color: inherit;
text-decoration: underline;
opacity: 0.8;
}
/* ==========================================================================
11. サイドバー
========================================================================== */
.side-header {
/* 1. 配置・レイアウト (一番重要な「固定」の定義) */
position: fixed;
z-index: 999;
top: 0;
left: 0;
display: flex;
justify-content: center;
align-items: center;
/* 2. サイズ・形状 */
width: var(--nav-width);
height: 100vh;
/* 3. 背景・見た目 */
background: linear-gradient(135deg, var(--color-main), var(--color-accent));
box-shadow: 2px 0 8px rgba(0, 0, 0, 0.2);
}
.side-nav {
width: 100%;
}
/* --- サイドメニュー(縦並びのメニュー) --- */
.side-menu {
display: flex;
flex-direction: column; /* 縦方向に並べる */
align-items: center;
gap: 1.2rem;
margin: 0;
padding: 0;
}
.side-menu li {
width: 100%;
}
.side-menu a {
/* 1. 配置・サイズ (リンクを押しやすく広げる) */
display: block;
width: 100%;
padding: 0.75rem 0;
text-align: center;
/* 2. 形状・枠線 */
border-radius: var(--radius-normal);
/* 3. タイポグラフィ */
color: white;
font-size: 0.85rem;
font-weight: var(--fw-normal);
text-decoration: none;
/* 4. 動き */
transition: all 0.2s ease;
}
.side-menu a:hover,
.side-menu a:focus {
outline: none;
background: var(--bg-hover); /* 半透明の背景 */
color: var(--color-accent); /* アクセントカラーに変更 */
letter-spacing: 0.05em; /* 文字間隔を広げる */
}
/* --- レスポンシブ切替ボトムバーへ --- */
@media (max-width: 768px) {
.side-header {
top: auto;
bottom: 0;
left: 0;
width: 100%;
height: 60px;
flex-direction: row; /* 横並び用 */
}
.side-menu {
flex-direction: row; /* 横方向に並べる */
justify-content: space-around; /* 均等配置 */
align-items: center; /* 縦中央寄せ */
height: 100%; /* 高さを揃える */
gap: 0;
}
.side-menu a {
font-size: 0.7rem;
height: 44px;
display: flex;
justify-content: center;
align-items: center;
}
}
/* ==========================================================================
12. アコーディオン
========================================================================== */
:root {
--icon-plus: url('data:image/svg+xml;utf8,');
--icon-minus: url('data:image/svg+xml;utf8,');
}
.accordion-item.s1 { --bg-color: #e6f2ff; --text-color: #004080; }
.accordion-item.s2 { --bg-color: #e9f9f0; --text-color: #006633; }
.accordion-item.s3 { --bg-color: #fff4e6; --text-color: #994d00; }
.accordion-item.s4 { --bg-color: #f0f0ff; --text-color: #333366; }
.accordion-item.s5 { --bg-color: #ffe6f0; --text-color: #993366; }
.accordion-item.s6 { --bg-color: #f0ffe6; --text-color: #336600; }
.accordion-item.s7 { --bg-color: #f9f0e9; --text-color: #804000; }
.accordion-item.s8 { --bg-color: #e6fff5; --text-color: #006680; }
.accordion-item.s9 { --bg-color: #fef6e4; --text-color: #a65e00; }
.accordion-item.s10 { --bg-color: #f3e6ff; --text-color: #4b0082; }
.accordion-container {
width: 100%;
max-width: 800px;
margin: 20px auto;
/* padding: 0 16px; */
}
.accordion-item {
margin-bottom: 12px;
border-radius: 16px;
box-shadow: 4px 4px 10px rgba(163, 177, 198, 0.6),
-4px -4px 10px rgba(255, 255, 255, 0.9);
}
.accordion-title {
position: relative;
margin: 0;
padding: 16px 48px 16px 24px;
border-radius: 16px;
background: var(--bg-color);
color: var(--text-color);
cursor: pointer;
font-size: 1rem;
font-weight: var(--fw-medium);
text-align: left;
transition: box-shadow 0.2s ease, transform 0.2s ease;
}
.accordion-title:hover {
box-shadow: 4px 4px 10px rgba(163, 177, 198, 0.6),
-4px -4px 10px rgba(255, 255, 255, 0.9);
transform: translateY(-1px);
}
.accordion-title.active {
border-radius: 16px 16px 0px 0px;
}
.accordion-title::after {
content: var(--icon-plus);
position: absolute;
top: 50%;
right: 16px;
width: 16px;
transform: translateY(-50%);
transition: transform 0.2s ease;
}
.accordion-title.active::after {
content: var(--icon-minus);
transform: translateY(-50%) rotate(180deg);
}
.accordion-content {
visibility: hidden;
overflow: hidden;
max-height: 0;
padding: 0 16px;
border-radius: 0 0 16px 16px;
background: var(--bg-color);
color: var(--text-color);
box-shadow: inset 2px 2px 4px rgba(163, 177, 198, 0.4),
inset -2px -2px 4px #fff;
transition: max-height 0.25s cubic-bezier(0.4, 0, 0.2, 1), padding 0.2s ease;
}
.accordion-content.active {
visibility: visible;
overflow-y: visible;
max-height: none;
padding: 16px;
}
/* レスポンシブ */
@media (max-width: 768px) {
.accordion-title {
padding: 12px 40px 12px 16px;
font-size: 0.9rem;
}
.accordion-content.active {
padding: 12px 16px;
}
}
`;
// --- 共通CSS設定のすぐ後ろに追記 ---
const pageTitle = document.title;
// 1. 判定条件:タイトルが「ログインページ」または「マイエリア ++ ERROR ++」を含む場合
const isLoginScreen = pageTitle.includes("ログインページ") || pageTitle.includes("マイエリア ++ ERROR ++");
if (isLoginScreen) {
/* 1. Font Awesome を動的に読み込む */
if (!document.querySelector('link[href*="font-awesome"]')) {
const faLink = document.createElement('link');
faLink.rel = 'stylesheet';
faLink.href = 'https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0/css/all.min.css';
document.head.appendChild(faLink);
}
/* 2. ログイン系画面専用スタイル(450px幅・アイコン付)を追加 */
style.textContent += `
/* --- ログイン専用コンテナ --- */
#SMP_STYLE .body_tbl {
max-width: 450px;
border-radius: 1.5rem;
}
/* サイドバーを非表示 */
.side-header { display: none !important; }
/* --- 入力エリアのアイコン配置 --- */
#SMP_STYLE dl { position: relative; }
#SMP_STYLE dl:nth-of-type(1)::before,
#SMP_STYLE dl:nth-of-type(2)::before {
font-family: "Font Awesome 6 Free";
font-weight: var(--fw-extra-bold);
position: absolute;
left: 1.2rem;
top: 2.8rem;
color: var(--color-main);
opacity: 0.4;
z-index: 10;
}
#SMP_STYLE dl:nth-of-type(1)::before { content: "\\f007"; } /* User icon */
#SMP_STYLE dl:nth-of-type(2)::before { content: "\\f023"; } /* Lock icon */
/* 入力欄の余白調整 */
#SMP_STYLE .input {
padding: 0.8rem 1rem 0.8rem 3rem;
}
/* ボタンをより強調 */
.submit {
border-radius: var(--radius-large);
padding: 1rem;
}
/* エラーメッセージ(ログイン失敗時など)の微調整 */
p {
font-size: 0.9rem;
color: var(--color-error);
}
`;
}
// 最後に全てが合体したstyleをheadに追加する
document.head.appendChild(style);