.urukosoko-ecsd {
--ecsd-navy: #0f2b4c;
--ecsd-blue: #185f9b;
--ecsd-teal: #15977f;
--ecsd-teal-light: #eaf7f4;
--ecsd-mint: #f3faf8;
--ecsd-gold: #d99b2b;
--ecsd-red: #bf3c43;
--ecsd-ink: #162536;
--ecsd-muted: #607080;
--ecsd-line: #d9e5e7;
--ecsd-white: #ffffff;
--ecsd-shadow: 0 18px 44px rgba(15, 43, 76, .10);
width: 100%;
max-width: 1240px;
margin: 28px auto;
color: var(--ecsd-ink);
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Yu Gothic", "YuGothic", "Meiryo", sans-serif;
font-size: 17px;
line-height: 1.7;
box-sizing: border-box;
}
.urukosoko-ecsd *,
.urukosoko-ecsd *::before,
.urukosoko-ecsd *::after { box-sizing: border-box; }
.urukosoko-ecsd button,
.urukosoko-ecsd input,
.urukosoko-ecsd select { font: inherit; }
.urukosoko-ecsd__hero {
position: relative;
display: grid;
grid-template-columns: minmax(0, 1fr) 180px;
gap: 36px;
align-items: center;
padding: 54px 58px;
border-radius: 28px;
overflow: hidden;
color: #fff;
background: linear-gradient(125deg, #102f53 0%, #155f79 55%, #15977f 100%);
box-shadow: var(--ecsd-shadow);
}
.urukosoko-ecsd__hero::after {
content: "";
position: absolute;
width: 320px;
height: 320px;
border-radius: 50%;
right: -95px;
top: -145px;
background: rgba(255,255,255,.09);
}
.urukosoko-ecsd__hero-copy { position: relative; z-index: 1; }
.urukosoko-ecsd__eyebrow {
margin: 0 0 16px;
font-size: 15px;
font-weight: 800;
letter-spacing: .08em;
}
.urukosoko-ecsd__hero h2 {
margin: 0 0 18px;
color: #fff;
font-size: clamp(32px, 4vw, 54px);
line-height: 1.24;
letter-spacing: .01em;
}
.urukosoko-ecsd__hero-copy > p:last-child {
max-width: 830px;
margin: 0;
font-size: 18px;
line-height: 1.8;
}
.urukosoko-ecsd__hero-score {
position: relative;
z-index: 1;
width: 166px;
height: 166px;
border-radius: 50%;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
border: 2px solid rgba(255,255,255,.58);
background: rgba(255,255,255,.12);
backdrop-filter: blur(4px);
}
.urukosoko-ecsd__hero-score span { font-size: 15px; font-weight: 800; }
.urukosoko-ecsd__hero-score strong { font-size: 54px; line-height: 1.05; }
.urukosoko-ecsd__hero-score small { font-size: 13px; }
.urukosoko-ecsd__intro-cards {
display: grid;
grid-template-columns: repeat(3, minmax(0, 1fr));
gap: 16px;
margin: 20px 0 26px;
}
.urukosoko-ecsd__intro-cards > div {
padding: 20px 24px;
border: 1px solid var(--ecsd-line);
border-radius: 16px;
background: #fff;
box-shadow: 0 8px 24px rgba(15,43,76,.05);
}
.urukosoko-ecsd__intro-cards strong { display: block; font-size: 20px; color: var(--ecsd-teal); }
.urukosoko-ecsd__intro-cards span { display: block; margin-top: 4px; color: var(--ecsd-muted); font-size: 14px; }
.urukosoko-ecsd__form,
.urukosoko-ecsd__result,
.urukosoko-ecsd__cta {
border: 1px solid var(--ecsd-line);
border-radius: 22px;
background: #fff;
box-shadow: var(--ecsd-shadow);
}
.urukosoko-ecsd__form { overflow: hidden; }
.urukosoko-ecsd__basic-panel,
.urukosoko-ecsd__question-section { padding: 38px 42px; }
.urukosoko-ecsd__question-section:nth-of-type(even) { background: var(--ecsd-mint); }
.urukosoko-ecsd__section-heading {
display: flex;
gap: 18px;
align-items: flex-start;
margin-bottom: 28px;
}
.urukosoko-ecsd__section-heading > span {
flex: 0 0 auto;
display: inline-flex;
align-items: center;
justify-content: center;
min-width: 86px;
min-height: 34px;
padding: 5px 13px;
border-radius: 999px;
color: #fff;
background: var(--ecsd-teal);
font-size: 13px;
font-weight: 800;
letter-spacing: .05em;
}
.urukosoko-ecsd__section-heading h3 {
margin: 0 0 4px;
color: var(--ecsd-navy);
font-size: 26px;
line-height: 1.4;
}
.urukosoko-ecsd__section-heading p { margin: 0; color: var(--ecsd-muted); font-size: 15px; }
.urukosoko-ecsd__basic-fields {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 18px;
}
.urukosoko-ecsd__basic-fields label { display: block; }
.urukosoko-ecsd__basic-fields label > span { display: block; margin-bottom: 8px; font-size: 15px; font-weight: 800; }
.urukosoko-ecsd__basic-fields input,
.urukosoko-ecsd__basic-fields select {
width: 100%;
min-height: 54px;
padding: 12px 15px;
border: 1px solid #cbdadd;
border-radius: 12px;
color: var(--ecsd-ink);
background: #fff;
font-size: 16px;
}
.urukosoko-ecsd__basic-fields input:focus,
.urukosoko-ecsd__basic-fields select:focus {
outline: 3px solid rgba(21,151,127,.16);
border-color: var(--ecsd-teal);
}
.urukosoko-ecsd__progress {
position: sticky;
top: 0;
z-index: 6;
display: grid;
grid-template-columns: minmax(0, 1fr) auto;
gap: 18px;
align-items: center;
padding: 15px 42px;
border-top: 1px solid var(--ecsd-line);
border-bottom: 1px solid var(--ecsd-line);
background: rgba(255,255,255,.97);
}
.admin-bar .urukosoko-ecsd__progress { top: 32px; }
.urukosoko-ecsd__progress-bar { height: 10px; border-radius: 999px; overflow: hidden; background: #e8f0f1; }
.urukosoko-ecsd__progress-bar span { display: block; width: 0; height: 100%; border-radius: inherit; background: linear-gradient(90deg, var(--ecsd-blue), var(--ecsd-teal)); transition: width .25s ease; }
.urukosoko-ecsd__progress p { margin: 0; color: var(--ecsd-muted); font-size: 14px; white-space: nowrap; }
.urukosoko-ecsd__progress strong { color: var(--ecsd-teal); font-size: 18px; }
.urukosoko-ecsd__questions { display: grid; gap: 22px; }
.urukosoko-ecsd__question {
min-width: 0;
margin: 0;
padding: 24px;
border: 1px solid var(--ecsd-line);
border-radius: 17px;
background: #fff;
}
.urukosoko-ecsd__question legend {
width: 100%;
padding: 0;
display: flex;
gap: 12px;
align-items: flex-start;
color: var(--ecsd-navy);
font-weight: 800;
}
.urukosoko-ecsd__question-number {
flex: 0 0 auto;
display: inline-flex;
align-items: center;
justify-content: center;
width: 44px;
height: 30px;
border-radius: 8px;
color: var(--ecsd-teal);
background: var(--ecsd-teal-light);
font-size: 13px;
}
.urukosoko-ecsd__question-title { font-size: 19px; line-height: 1.55; }
.urukosoko-ecsd__question-help { margin: 8px 0 16px 56px; color: var(--ecsd-muted); font-size: 14px; }
.urukosoko-ecsd__option-grid {
display: grid;
grid-template-columns: repeat(4, minmax(0, 1fr));
gap: 12px;
}
.urukosoko-ecsd__option { position: relative; display: block; cursor: pointer; }
.urukosoko-ecsd__option input { position: absolute; opacity: 0; pointer-events: none; }
.urukosoko-ecsd__option-box {
position: relative;
display: flex;
flex-direction: column;
gap: 5px;
min-height: 102px;
padding: 17px 16px 16px 43px;
border: 1px solid #cad9dc;
border-radius: 13px;
background: #fff;
transition: border-color .18s ease, background .18s ease, transform .18s ease, box-shadow .18s ease;
}
.urukosoko-ecsd__option-box::before {
content: "";
position: absolute;
left: 15px;
top: 19px;
width: 17px;
height: 17px;
border: 2px solid #9eb2b7;
border-radius: 50%;
background: #fff;
}
.urukosoko-ecsd__option:hover .urukosoko-ecsd__option-box { transform: translateY(-2px); border-color: #8dc8bd; box-shadow: 0 8px 18px rgba(15,43,76,.07); }
.urukosoko-ecsd__option input:focus-visible + .urukosoko-ecsd__option-box { outline: 3px solid rgba(21,151,127,.22); outline-offset: 2px; }
.urukosoko-ecsd__option input:checked + .urukosoko-ecsd__option-box { border-color: var(--ecsd-teal); background: var(--ecsd-teal-light); box-shadow: 0 0 0 2px rgba(21,151,127,.10); }
.urukosoko-ecsd__option input:checked + .urukosoko-ecsd__option-box::before { border-color: var(--ecsd-teal); box-shadow: inset 0 0 0 4px #fff; background: var(--ecsd-teal); }
.urukosoko-ecsd__option-box strong { color: var(--ecsd-ink); font-size: 15px; line-height: 1.5; }
.urukosoko-ecsd__option-box small { color: var(--ecsd-muted); font-size: 12px; line-height: 1.5; }
.urukosoko-ecsd__actions {
display: flex;
gap: 12px;
padding: 30px 42px 12px;
border-top: 1px solid var(--ecsd-line);
}
.urukosoko-ecsd__actions button,
.urukosoko-ecsd__result-actions button {
min-height: 54px;
border-radius: 12px;
padding: 12px 24px;
font-weight: 800;
cursor: pointer;
}
.urukosoko-ecsd__diagnose { flex: 1 1 auto; border: 0; color: #fff; background: var(--ecsd-navy); font-size: 18px; }
.urukosoko-ecsd__diagnose:hover { background: #17456f; }
.urukosoko-ecsd__reset { flex: 0 0 auto; border: 1px solid #bdced2; color: var(--ecsd-muted); background: #fff; }
.urukosoko-ecsd__status,
.urukosoko-ecsd__error { margin: 0; padding: 0 42px 24px; font-size: 14px; }
.urukosoko-ecsd__status { color: var(--ecsd-muted); }
.urukosoko-ecsd__error { color: var(--ecsd-red); font-weight: 800; }
.urukosoko-ecsd__result { margin-top: 28px; overflow: hidden; }
.urukosoko-ecsd__result-placeholder { padding: 56px 30px; text-align: center; }
.urukosoko-ecsd__placeholder-icon {
width: 72px;
height: 72px;
margin: 0 auto 18px;
display: grid;
place-items: center;
border-radius: 50%;
color: var(--ecsd-teal);
background: var(--ecsd-teal-light);
font-size: 34px;
font-weight: 800;
}
.urukosoko-ecsd__result-placeholder h3 { margin: 0 0 8px; color: var(--ecsd-navy); font-size: 26px; }
.urukosoko-ecsd__result-placeholder p { margin: 0; color: var(--ecsd-muted); }
.urukosoko-ecsd__result-header {
display: grid;
grid-template-columns: minmax(0, 1fr) 150px;
gap: 34px;
align-items: center;
padding: 42px;
background: linear-gradient(135deg, #eff9f6 0%, #f6fbfd 100%);
}
.urukosoko-ecsd__result-label { margin: 0 0 10px; color: var(--ecsd-teal); font-size: 14px; font-weight: 800; letter-spacing: .08em; }
.urukosoko-ecsd__result-header h3 { margin: 0 0 12px; color: var(--ecsd-navy); font-size: 31px; line-height: 1.4; }
.urukosoko-ecsd__result-header p:last-child { margin: 0; color: var(--ecsd-muted); font-size: 16px; }
.urukosoko-ecsd__score-ring {
--score: 0;
width: 138px;
height: 138px;
border-radius: 50%;
display: flex;
align-items: baseline;
justify-content: center;
padding-top: 45px;
background: conic-gradient(var(--ecsd-teal) calc(var(--score) * 1%), #dce9e8 0);
position: relative;
}
.urukosoko-ecsd__score-ring::before { content: ""; position: absolute; inset: 10px; border-radius: 50%; background: #fff; }
.urukosoko-ecsd__score-ring strong,
.urukosoko-ecsd__score-ring span { position: relative; z-index: 1; }
.urukosoko-ecsd__score-ring strong { color: var(--ecsd-navy); font-size: 39px; line-height: 1; }
.urukosoko-ecsd__score-ring span { color: var(--ecsd-muted); font-size: 14px; }
.urukosoko-ecsd__axis-grid {
display: grid;
grid-template-columns: repeat(5, minmax(0, 1fr));
border-top: 1px solid var(--ecsd-line);
border-bottom: 1px solid var(--ecsd-line);
}
.urukosoko-ecsd__axis-card { padding: 24px 20px; border-right: 1px solid var(--ecsd-line); }
.urukosoko-ecsd__axis-card:last-child { border-right: 0; }
.urukosoko-ecsd__axis-card span { display: block; color: var(--ecsd-muted); font-size: 13px; }
.urukosoko-ecsd__axis-card strong { display: block; margin: 3px 0 10px; color: var(--ecsd-navy); font-size: 27px; }
.urukosoko-ecsd__axis-meter { height: 7px; overflow: hidden; border-radius: 999px; background: #e7eeee; }
.urukosoko-ecsd__axis-meter i { display: block; height: 100%; width: 0; border-radius: inherit; background: linear-gradient(90deg, var(--ecsd-blue), var(--ecsd-teal)); }
.urukosoko-ecsd__diagnosis-block,
.urukosoko-ecsd__next-tools { padding: 34px 42px; border-bottom: 1px solid var(--ecsd-line); }
.urukosoko-ecsd__block-heading { display: flex; align-items: center; gap: 12px; margin-bottom: 18px; }
.urukosoko-ecsd__block-heading span { padding: 4px 10px; border-radius: 999px; color: var(--ecsd-teal); background: var(--ecsd-teal-light); font-size: 12px; font-weight: 800; }
.urukosoko-ecsd__block-heading h4 { margin: 0; color: var(--ecsd-navy); font-size: 23px; }
.urukosoko-ecsd__direction {
padding: 22px 24px;
border-left: 5px solid var(--ecsd-teal);
border-radius: 10px;
background: var(--ecsd-mint);
}
.urukosoko-ecsd__direction strong { display: block; margin-bottom: 5px; color: var(--ecsd-navy); font-size: 20px; }
.urukosoko-ecsd__direction p { margin: 0; }
.urukosoko-ecsd__recommendations { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.urukosoko-ecsd__recommendation { padding: 21px; border: 1px solid var(--ecsd-line); border-radius: 14px; background: #fff; }
.urukosoko-ecsd__recommendation b { display: inline-grid; place-items: center; width: 30px; height: 30px; margin-bottom: 10px; border-radius: 50%; color: #fff; background: var(--ecsd-teal); font-size: 13px; }
.urukosoko-ecsd__recommendation strong { display: block; margin-bottom: 6px; color: var(--ecsd-navy); font-size: 17px; }
.urukosoko-ecsd__recommendation p { margin: 0; color: var(--ecsd-muted); font-size: 14px; }
.urukosoko-ecsd__strengths { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px 24px; margin: 0; padding: 0; list-style: none; }
.urukosoko-ecsd__strengths li { position: relative; padding: 12px 14px 12px 42px; border-radius: 10px; background: #f7fbfb; }
.urukosoko-ecsd__strengths li::before { content: "✓"; position: absolute; left: 15px; top: 11px; color: var(--ecsd-teal); font-weight: 900; }
.urukosoko-ecsd__tool-links { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.urukosoko-ecsd__tool-link { display: block; min-height: 154px; padding: 20px; border: 1px solid var(--ecsd-line); border-radius: 14px; color: inherit; text-decoration: none !important; background: #fff; transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease; }
.urukosoko-ecsd__tool-link:hover { transform: translateY(-2px); border-color: var(--ecsd-teal); box-shadow: 0 10px 24px rgba(15,43,76,.08); }
.urukosoko-ecsd__tool-link span { display: block; margin-bottom: 7px; color: var(--ecsd-teal); font-size: 12px; font-weight: 800; }
.urukosoko-ecsd__tool-link strong { display: block; margin-bottom: 7px; color: var(--ecsd-navy); font-size: 17px; }
.urukosoko-ecsd__tool-link small { color: var(--ecsd-muted); font-size: 13px; }
.urukosoko-ecsd__result-actions { display: flex; flex-wrap: wrap; gap: 10px; padding: 26px 42px; }
.urukosoko-ecsd__result-actions button { border: 1px solid #bdced2; color: var(--ecsd-navy); background: #fff; font-size: 14px; }
.urukosoko-ecsd__details { margin: 0 42px 34px; border: 1px solid var(--ecsd-line); border-radius: 12px; overflow: hidden; }
.urukosoko-ecsd__details summary { padding: 15px 18px; cursor: pointer; color: var(--ecsd-navy); font-weight: 800; background: #f7fafb; }
.urukosoko-ecsd__details div { padding: 3px 18px 16px; color: var(--ecsd-muted); font-size: 14px; }
.urukosoko-ecsd__cta {
margin-top: 28px;
padding: 32px 36px;
display: grid;
grid-template-columns: minmax(0, 1fr) auto;
gap: 28px;
align-items: center;
color: #fff;
background: linear-gradient(125deg, #102f53 0%, #155f79 58%, #15977f 100%);
}
.urukosoko-ecsd__cta p:first-child { margin: 0 0 5px; font-size: 13px; font-weight: 800; letter-spacing: .08em; }
.urukosoko-ecsd__cta h3 { margin: 0 0 8px; color: #fff; font-size: 26px; }
.urukosoko-ecsd__cta p:last-child { margin: 0; max-width: 800px; font-size: 15px; }
.urukosoko-ecsd__cta a { display: inline-flex; min-height: 54px; align-items: center; justify-content: center; padding: 12px 24px; border-radius: 12px; color: var(--ecsd-navy); text-decoration: none !important; background: #fff; font-weight: 800; white-space: nowrap; }
@media (max-width: 1024px) {
.urukosoko-ecsd__option-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.urukosoko-ecsd__axis-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.urukosoko-ecsd__axis-card:nth-child(3) { border-right: 0; }
.urukosoko-ecsd__axis-card:nth-child(n+4) { border-top: 1px solid var(--ecsd-line); }
.urukosoko-ecsd__recommendations,
.urukosoko-ecsd__tool-links { grid-template-columns: 1fr; }
}
@media (max-width: 782px) {
.admin-bar .urukosoko-ecsd__progress { top: 46px; }
.urukosoko-ecsd { font-size: 16px; }
.urukosoko-ecsd__hero { grid-template-columns: 1fr; padding: 38px 26px; }
.urukosoko-ecsd__hero-score { display: none; }
.urukosoko-ecsd__intro-cards { grid-template-columns: 1fr; }
.urukosoko-ecsd__basic-panel,
.urukosoko-ecsd__question-section { padding: 30px 22px; }
.urukosoko-ecsd__basic-fields { grid-template-columns: 1fr; }
.urukosoko-ecsd__progress { padding: 13px 22px; }
.urukosoko-ecsd__section-heading { gap: 12px; }
.urukosoko-ecsd__section-heading > span { min-width: 72px; }
.urukosoko-ecsd__section-heading h3 { font-size: 22px; }
.urukosoko-ecsd__question { padding: 20px 16px; }
.urukosoko-ecsd__question-help { margin-left: 0; }
.urukosoko-ecsd__option-grid { grid-template-columns: 1fr; }
.urukosoko-ecsd__option-box { min-height: 0; }
.urukosoko-ecsd__actions { flex-direction: column; padding: 24px 22px 10px; }
.urukosoko-ecsd__status,
.urukosoko-ecsd__error { padding-left: 22px; padding-right: 22px; }
.urukosoko-ecsd__result-header { grid-template-columns: 1fr; padding: 30px 22px; }
.urukosoko-ecsd__score-ring { width: 120px; height: 120px; padding-top: 39px; }
.urukosoko-ecsd__axis-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.urukosoko-ecsd__axis-card { border-top: 1px solid var(--ecsd-line); }
.urukosoko-ecsd__axis-card:nth-child(odd) { border-right: 1px solid var(--ecsd-line); }
.urukosoko-ecsd__axis-card:nth-child(even) { border-right: 0; }
.urukosoko-ecsd__diagnosis-block,
.urukosoko-ecsd__next-tools { padding: 28px 22px; }
.urukosoko-ecsd__strengths { grid-template-columns: 1fr; }
.urukosoko-ecsd__result-actions { padding: 22px; }
.urukosoko-ecsd__result-actions button { width: 100%; }
.urukosoko-ecsd__details { margin: 0 22px 28px; }
.urukosoko-ecsd__cta { grid-template-columns: 1fr; padding: 28px 24px; }
.urukosoko-ecsd__cta a { width: 100%; }
}
@media print {
body * { visibility: hidden !important; }
.urukosoko-ecsd,
.urukosoko-ecsd * { visibility: visible !important; }
.urukosoko-ecsd { position: absolute; left: 0; top: 0; max-width: none; margin: 0; font-size: 12px; }
.urukosoko-ecsd__hero,
.urukosoko-ecsd__intro-cards,
.urukosoko-ecsd__form,
.urukosoko-ecsd__result-placeholder,
.urukosoko-ecsd__result-actions,
.urukosoko-ecsd__cta,
.urukosoko-ecsd__details { display: none !important; }
.urukosoko-ecsd__result { box-shadow: none; border: 0; }
.urukosoko-ecsd__result-content { display: block !important; }
.urukosoko-ecsd__result-header,
.urukosoko-ecsd__diagnosis-block,
.urukosoko-ecsd__next-tools { break-inside: avoid; }
}