Aucune description
Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.

danka-detail.scss 23KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442
  1. :host {
  2. position: relative;
  3. display: block;
  4. min-height: 100vh;
  5. background: #f6f0e7;
  6. color: #2f2720;
  7. }
  8. .danka-detail-page {
  9. display: grid;
  10. grid-template-columns: 172px minmax(0, 1fr);
  11. gap: 20px;
  12. padding: 0 38px 36px 0;
  13. background: #f6f0e7;
  14. }
  15. .danka-detail-main {
  16. min-width: 0;
  17. box-sizing: border-box;
  18. }
  19. .detail-panel {
  20. min-height: 760px;
  21. padding: 34px 42px 40px;
  22. background: #fffdf9;
  23. border: 2px solid #d8caba;
  24. border-radius: 64px;
  25. box-sizing: border-box;
  26. }
  27. .page-title-row {
  28. display: flex;
  29. justify-content: space-between;
  30. align-items: flex-start;
  31. gap: 24px;
  32. margin-bottom: 22px;
  33. }
  34. .page-title-row h1 {
  35. margin: 0 0 18px;
  36. color: #2f2720;
  37. font-size: 34px;
  38. line-height: 1.1;
  39. font-weight: 800;
  40. letter-spacing: 0;
  41. }
  42. .tab-list {
  43. display: flex;
  44. align-items: center;
  45. gap: 8px;
  46. }
  47. .tab-button {
  48. width: 150px;
  49. height: 42px;
  50. border: 2px solid #d8caba;
  51. border-radius: 6px;
  52. background: #f1e7d8;
  53. color: #2f2720;
  54. font-size: 16px;
  55. font-weight: 700;
  56. text-decoration: none;
  57. display: flex;
  58. align-items: center;
  59. justify-content: center;
  60. box-sizing: border-box;
  61. }
  62. .tab-button.active {
  63. background: #8a6543;
  64. border-color: #8a6543;
  65. color: #ffffff;
  66. }
  67. .tab-button:hover {
  68. background: #eadfce;
  69. }
  70. .tab-button.active:hover {
  71. background: #765639;
  72. }
  73. .edit-button {
  74. width: 140px;
  75. height: 46px;
  76. margin-top: 54px;
  77. border: 2px solid #8a6543;
  78. border-radius: 6px;
  79. background: #ffffff;
  80. color: #8a6543;
  81. font-size: 18px;
  82. font-weight: 800;
  83. cursor: pointer;
  84. box-sizing: border-box;
  85. }
  86. .edit-button:hover {
  87. background: #f6efe6;
  88. }
  89. .family-summary {
  90. min-height: 64px;
  91. margin-bottom: 22px;
  92. padding: 14px 24px;
  93. border: 2px solid #d8caba;
  94. border-radius: 8px;
  95. background: #fbf7f0;
  96. display: flex;
  97. align-items: center;
  98. box-sizing: border-box;
  99. }
  100. .family-name-area {
  101. display: flex;
  102. align-items: center;
  103. gap: 18px;
  104. }
  105. .family-summary-mark {
  106. width: 42px;
  107. height: 42px;
  108. border-radius: 999px;
  109. background: #8a6543;
  110. color: #ffffff;
  111. font-weight: 800;
  112. display: flex;
  113. align-items: center;
  114. justify-content: center;
  115. flex: 0 0 auto;
  116. }
  117. .family-name {
  118. margin: 0;
  119. color: #2f2720;
  120. font-size: 28px;
  121. font-weight: 800;
  122. line-height: 1.1;
  123. }
  124. .family-head {
  125. margin: 0;
  126. color: #6f6257;
  127. font-size: 16px;
  128. }
  129. .family-address p {
  130. margin: 2px 0;
  131. color: #2f2720;
  132. font-size: 16px;
  133. }
  134. .memo-button {
  135. width: 150px;
  136. height: 40px;
  137. border: 2px solid #d8caba;
  138. border-radius: 6px;
  139. background: #ffffff;
  140. color: #2f2720;
  141. font-size: 16px;
  142. font-weight: 800;
  143. cursor: pointer;
  144. box-sizing: border-box;
  145. }
  146. .memo-button:hover {
  147. background: #f6efe6;
  148. }
  149. .add-button {
  150. width: 140px;
  151. height: 46px;
  152. margin-top: 54px;
  153. border: 2px solid #8a6543;
  154. border-radius: 6px;
  155. background: #ffffff;
  156. color: #8a6543;
  157. font-size: 18px;
  158. font-weight: 800;
  159. cursor: pointer;
  160. box-sizing: border-box;
  161. }
  162. .add-button:hover {
  163. background: #f6efe6;
  164. }
  165. .family-page-add-button {
  166. width: 140px;
  167. height: 46px;
  168. margin-top: 54px;
  169. border: 2px solid #8a6543;
  170. border-radius: 6px;
  171. background: #ffffff;
  172. color: #8a6543;
  173. font-size: 18px;
  174. font-weight: 800;
  175. text-decoration: none;
  176. display: flex;
  177. align-items: center;
  178. justify-content: center;
  179. box-sizing: border-box;
  180. }
  181. .family-page-add-button:hover {
  182. background: #f6efe6;
  183. }
  184. .detail-content {
  185. display: grid;
  186. grid-template-columns: minmax(0, 1fr) 420px;
  187. gap: 20px;
  188. align-items: start;
  189. }
  190. .basic-info-section {
  191. padding: 24px 20px 22px;
  192. border: 2px solid #d8caba;
  193. border-radius: 12px;
  194. background: #fffdf9;
  195. box-sizing: border-box;
  196. }
  197. .section-heading {
  198. margin-bottom: 14px;
  199. }
  200. .section-heading h2 {
  201. margin: 0;
  202. color: #2f2720;
  203. font-size: 22px;
  204. font-weight: 800;
  205. line-height: 1.3;
  206. }
  207. .section-heading p {
  208. margin: 3px 0 0;
  209. color: #7b6b5c;
  210. font-size: 14px;
  211. }
  212. .info-form {
  213. width: 100%;
  214. }
  215. .info-pair-row {
  216. border-top: 1px solid #eadfce;
  217. }
  218. .info-pair-row:first-child {
  219. border-top: 0;
  220. }
  221. .info-two-column {
  222. display: grid;
  223. grid-template-columns: minmax(0, 1fr) minmax(260px, 0.85fr);
  224. gap: 18px;
  225. }
  226. .info-row {
  227. display: grid;
  228. grid-template-columns: 154px 1fr;
  229. align-items: center;
  230. margin-top: 0;
  231. min-height: 62px;
  232. padding: 6px 0;
  233. box-sizing: border-box;
  234. }
  235. .info-form > .info-row {
  236. margin-top: 10px;
  237. }
  238. .info-label {
  239. min-height: 42px;
  240. padding: 0 14px;
  241. border-radius: 6px;
  242. background: #f3eee8;
  243. color: #4b3c31;
  244. font-size: 16px;
  245. font-weight: 800;
  246. display: flex;
  247. align-items: center;
  248. box-sizing: border-box;
  249. }
  250. .info-value {
  251. min-height: 42px;
  252. padding: 8px 18px;
  253. border: 0;
  254. border-radius: 0;
  255. background: transparent;
  256. color: #2f2720;
  257. font-size: 16px;
  258. font-weight: 700;
  259. box-sizing: border-box;
  260. display: flex;
  261. align-items: center;
  262. }
  263. .phone-row {
  264. align-items: start;
  265. min-height: 104px;
  266. }
  267. .phone-row .info-label {
  268. min-height: 104px;
  269. align-items: flex-start;
  270. padding-top: 16px;
  271. }
  272. .phone-table {
  273. width: 100%;
  274. padding: 8px 18px;
  275. box-sizing: border-box;
  276. }
  277. .phone-header,
  278. .phone-item {
  279. display: grid;
  280. grid-template-columns: 1fr 1fr;
  281. align-items: center;
  282. }
  283. .phone-header {
  284. min-height: 36px;
  285. padding: 0 10px;
  286. border: 2px solid #d8caba;
  287. border-radius: 6px;
  288. background: #eadfce;
  289. color: #5a4a3c;
  290. font-size: 15px;
  291. font-weight: 800;
  292. box-sizing: border-box;
  293. }
  294. .phone-item {
  295. min-height: 36px;
  296. padding: 0;
  297. border: 0;
  298. border-radius: 0;
  299. border-top: 1px solid #eadfce;
  300. background: transparent;
  301. color: #2f2720;
  302. font-size: 16px;
  303. box-sizing: border-box;
  304. }
  305. .phone-item:first-child {
  306. border-top: 0;
  307. }
  308. .phone-note {
  309. min-height: 28px;
  310. width: fit-content;
  311. min-width: 88px;
  312. border-radius: 6px;
  313. background: #f3eee8;
  314. display: flex;
  315. align-items: center;
  316. justify-content: center;
  317. justify-self: start;
  318. padding: 0 14px;
  319. box-sizing: border-box;
  320. }
  321. .note-info-row {
  322. align-items: center;
  323. }
  324. .note-info-row .info-label {
  325. margin-top: 0;
  326. }
  327. .note-info-value {
  328. align-items: center;
  329. min-height: 64px;
  330. white-space: pre-wrap;
  331. }
  332. .status-panel {
  333. min-height: 100%;
  334. padding: 26px 20px 24px;
  335. border: 2px solid #d8caba;
  336. border-radius: 12px;
  337. background: #fffdf9;
  338. box-sizing: border-box;
  339. }
  340. .status-panel h2 {
  341. margin: 0 0 24px;
  342. color: #2f2720;
  343. font-size: 22px;
  344. font-weight: 800;
  345. line-height: 1.3;
  346. display: flex;
  347. align-items: center;
  348. gap: 12px;
  349. }
  350. .panel-heading-icon {
  351. color: #8a6543;
  352. font-weight: 800;
  353. }
  354. .status-card-list {
  355. display: grid;
  356. grid-template-columns: 1fr 1fr;
  357. gap: 16px;
  358. margin-bottom: 28px;
  359. }
  360. .status-card {
  361. min-height: 126px;
  362. padding: 18px 16px;
  363. border: 2px solid #d8caba;
  364. border-radius: 8px;
  365. background: #ffffff;
  366. color: #2f2720;
  367. text-decoration: none;
  368. box-sizing: border-box;
  369. }
  370. .status-card:hover {
  371. background: #f6efe6;
  372. }
  373. .status-label {
  374. margin: 0;
  375. color: #7b6b5c;
  376. font-size: 16px;
  377. text-align: center;
  378. }
  379. .status-count {
  380. margin: 10px 0 0;
  381. color: #2f2720;
  382. font-size: 32px;
  383. font-weight: 800;
  384. line-height: 1.1;
  385. text-align: center;
  386. }
  387. .status-link {
  388. margin: 10px 0 0;
  389. color: #7b6b5c;
  390. font-size: 14px;
  391. text-align: center;
  392. }
  393. .next-memorial {
  394. margin-bottom: 20px;
  395. }
  396. .next-memorial h3 {
  397. margin: 0 0 16px;
  398. color: #4b3c31;
  399. font-size: 18px;
  400. font-weight: 800;
  401. display: flex;
  402. align-items: center;
  403. gap: 12px;
  404. }
  405. .memorial-card {
  406. min-height: 116px;
  407. padding: 24px 18px;
  408. border: 2px solid #d8caba;
  409. border-radius: 8px;
  410. background: #ffffff;
  411. box-sizing: border-box;
  412. display: flex;
  413. flex-direction: column;
  414. justify-content: center;
  415. text-align: center;
  416. }
  417. .memorial-title {
  418. margin: 0;
  419. color: #2f2720;
  420. font-size: 16px;
  421. font-weight: 800;
  422. }
  423. .memorial-text {
  424. margin: 4px 0 0;
  425. color: #7b6b5c;
  426. font-size: 14px;
  427. }
  428. .status-button-list {
  429. display: grid;
  430. grid-template-columns: 1fr 1fr;
  431. gap: 14px;
  432. }
  433. .status-button {
  434. height: 48px;
  435. border: 2px solid #d8caba;
  436. border-radius: 8px;
  437. background: #ffffff;
  438. color: #2f2720;
  439. font-size: 16px;
  440. font-weight: 800;
  441. text-decoration: none;
  442. display: flex;
  443. align-items: center;
  444. justify-content: center;
  445. box-sizing: border-box;
  446. }
  447. .status-button:hover {
  448. background: #f6efe6;
  449. }
  450. .bottom-note {
  451. width: 700px;
  452. margin: 18px 0 22px 36px;
  453. padding: 4px 12px;
  454. border: 2px solid #d8caba;
  455. border-radius: 4px;
  456. background: #eadfce;
  457. color: #7b6b5c;
  458. font-size: 14px;
  459. box-sizing: border-box;
  460. }
  461. /* =========================
  462. 家族タブ
  463. ========================= */
  464. .family-tab-content {
  465. margin-top: 24px;
  466. }
  467. .family-tab-content .section-heading {
  468. margin-bottom: 16px;
  469. h2 {
  470. margin: 0;
  471. font-size: 22px;
  472. line-height: 1.3;
  473. font-weight: 800;
  474. }
  475. }
  476. .family-list-summary {
  477. display: flex;
  478. justify-content: space-between;
  479. align-items: center;
  480. gap: 16px;
  481. padding: 14px 18px;
  482. margin-bottom: 20px;
  483. background: #efe4d6;
  484. border: 2px solid #d8c2aa;
  485. border-radius: 12px;
  486. }
  487. .family-search-box {
  488. flex: 1;
  489. min-width: 0;
  490. display: grid;
  491. grid-template-columns: 96px minmax(0, 1fr);
  492. gap: 12px;
  493. align-items: center;
  494. }
  495. .family-search-label {
  496. color: #4b3c31;
  497. font-size: 16px;
  498. font-weight: 800;
  499. }
  500. .family-search-box input {
  501. width: 100%;
  502. height: 42px;
  503. padding: 0 14px;
  504. border: 2px solid #d8c2aa;
  505. border-radius: 8px;
  506. background: #fffdf9;
  507. color: #2f2720;
  508. font-size: 15px;
  509. font-weight: 700;
  510. box-sizing: border-box;
  511. }
  512. .family-table-section {
  513. margin-top: 16px;
  514. }
  515. .family-table {
  516. display: grid;
  517. gap: 8px;
  518. }
  519. .family-table-header,
  520. .family-table-row {
  521. display: grid;
  522. grid-template-columns: 1.1fr 1.1fr 0.8fr 0.6fr 1fr 1.2fr 80px;
  523. gap: 10px;
  524. align-items: center;
  525. }
  526. .family-table-action {
  527. display: flex;
  528. justify-content: center;
  529. align-items: center;
  530. }
  531. .family-edit-link {
  532. width: 64px;
  533. height: 34px;
  534. border: 2px solid #8a6543;
  535. border-radius: 6px;
  536. background: #ffffff;
  537. color: #8a6543;
  538. font-size: 14px;
  539. font-weight: 800;
  540. text-decoration: none;
  541. display: flex;
  542. align-items: center;
  543. justify-content: center;
  544. box-sizing: border-box;
  545. }
  546. .family-edit-link:hover {
  547. background: #f6efe6;
  548. }
  549. .event-status-select {
  550. width: 84px;
  551. height: 34px;
  552. padding: 0 8px;
  553. border: 2px solid #d8c2aa;
  554. border-radius: 6px;
  555. background: #ffffff;
  556. color: #6f6256;
  557. font-size: 13px;
  558. font-weight: 800;
  559. cursor: pointer;
  560. box-sizing: border-box;
  561. outline: none;
  562. }
  563. .event-status-select.sent {
  564. border-color: #8a6543;
  565. background: #f1e7d8;
  566. color: #8a6543;
  567. }
  568. .event-status-select:focus {
  569. border-color: #8a6543;
  570. box-shadow: 0 0 0 3px rgba(138, 101, 67, 0.15);
  571. }
  572. .family-table-header {
  573. padding: 12px 14px;
  574. background: #efe4d6;
  575. border: 2px solid #d8c2aa;
  576. border-radius: 10px;
  577. font-size: 14px;
  578. font-weight: 700;
  579. color: #111111;
  580. }
  581. .family-table-row {
  582. min-height: 56px;
  583. padding: 12px 14px;
  584. background: #fffaf3;
  585. border: 2px solid #d8c2aa;
  586. border-radius: 10px;
  587. font-size: 15px;
  588. color: #111111;
  589. }
  590. .family-table-row:hover {
  591. background: #fff4e8;
  592. }
  593. /* 既存の .family-name と名前がかぶるので、家族表の中だけに効かせる */
  594. .family-table-row .family-person-name {
  595. margin: 0;
  596. font-size: 15px;
  597. font-weight: 700;
  598. color: #111111;
  599. }
  600. .family-member-table {
  601. gap: 0;
  602. border: 2px solid #d8c2aa;
  603. border-radius: 8px;
  604. overflow: hidden;
  605. }
  606. .family-member-table .family-table-header,
  607. .family-member-table .family-table-row {
  608. grid-template-columns: 1.35fr 0.75fr 1.05fr 1fr 1.2fr 168px;
  609. gap: 12px;
  610. border: 0;
  611. border-radius: 0;
  612. }
  613. .family-member-table .family-table-header {
  614. min-height: 46px;
  615. padding: 0 14px;
  616. background: #efe4d6;
  617. }
  618. .family-member-table .family-table-row {
  619. min-height: 78px;
  620. padding: 10px 14px;
  621. background: #fffdf9;
  622. border-top: 1px solid #d8c2aa;
  623. }
  624. .family-member-table .family-table-row:hover {
  625. background: #fff8ee;
  626. }
  627. .family-person-sub,
  628. .family-person-date {
  629. margin: 0;
  630. }
  631. .family-person-sub {
  632. margin-top: 4px;
  633. color: #111111;
  634. font-size: 13px;
  635. line-height: 1.35;
  636. }
  637. .family-person-date {
  638. color: #111111;
  639. font-size: 15px;
  640. }
  641. .family-member-table .family-table-action {
  642. justify-content: center;
  643. gap: 8px;
  644. }
  645. .family-member-table .family-table-header > div:last-child {
  646. text-align: center;
  647. }
  648. .family-member-table .family-edit-link {
  649. width: 74px;
  650. }
  651. .kakocho-member-table .family-table-header,
  652. .kakocho-member-table .family-table-row {
  653. grid-template-columns: 1.25fr 1.15fr 1.05fr 0.65fr 0.6fr 1.1fr 82px;
  654. }
  655. .event-member-table .family-table-header,
  656. .event-member-table .family-table-row {
  657. grid-template-columns: 1.35fr 1fr 0.75fr 1.05fr 0.95fr 96px;
  658. }
  659. .event-member-table .event-status-select {
  660. width: 90px;
  661. }
  662. .event-member-table .family-table-header > div:last-child,
  663. .event-member-table .family-table-row > div:last-child {
  664. text-align: center;
  665. }
  666. .empty-family-message {
  667. padding: 20px;
  668. background: #fffaf3;
  669. border: 2px solid #d8c2aa;
  670. border-radius: 12px;
  671. color: #6f6256;
  672. font-weight: 700;
  673. }
  674. .family-support-area {
  675. display: grid;
  676. grid-template-columns: 1fr 1fr;
  677. gap: 18px;
  678. margin-top: 24px;
  679. }
  680. .support-card {
  681. padding: 18px 20px;
  682. background: #fffaf3;
  683. border: 2px solid #d8c2aa;
  684. border-radius: 14px;
  685. h2 {
  686. margin: 0 0 8px;
  687. font-size: 17px;
  688. font-weight: 700;
  689. color: #5d3b24;
  690. }
  691. p {
  692. margin: 0;
  693. font-size: 14px;
  694. color: #6f6256;
  695. line-height: 1.7;
  696. }
  697. }
  698. .coming-soon-section {
  699. margin-top: 24px;
  700. }
  701. .coming-soon-section .section-heading {
  702. margin-bottom: 16px;
  703. h2 {
  704. margin: 0;
  705. font-size: 22px;
  706. line-height: 1.3;
  707. font-weight: 800;
  708. }
  709. }
  710. /* =========================
  711. 家系図タブ
  712. ========================= */
  713. .family-tree-tab-content {
  714. margin-top: 24px;
  715. }
  716. .family-tree-tab-content .section-heading {
  717. margin-bottom: 16px;
  718. }
  719. .family-tree-layout {
  720. display: grid;
  721. grid-template-columns: minmax(0, 1fr) 360px;
  722. gap: 24px;
  723. align-items: start;
  724. }
  725. .family-tree-area {
  726. min-height: 460px;
  727. padding: 22px;
  728. background: #fffaf3;
  729. border: 2px solid #d8c2aa;
  730. border-radius: 18px;
  731. box-sizing: border-box;
  732. }
  733. .family-tree-toolbar {
  734. display: flex;
  735. justify-content: space-between;
  736. align-items: flex-start;
  737. gap: 18px;
  738. margin-bottom: 22px;
  739. }
  740. .family-tree-title {
  741. margin: 0;
  742. color: #2f2720;
  743. font-size: 20px;
  744. font-weight: 800;
  745. }
  746. .family-tree-caption {
  747. margin: 4px 0 0;
  748. color: #7b6b5c;
  749. font-size: 14px;
  750. line-height: 1.6;
  751. }
  752. .family-tree-action-list {
  753. display: flex;
  754. gap: 10px;
  755. flex-shrink: 0;
  756. }
  757. .tree-action-button {
  758. min-width: 112px;
  759. height: 38px;
  760. padding: 0 14px;
  761. border: 2px solid #d8caba;
  762. border-radius: 6px;
  763. background: #ffffff;
  764. color: #2f2720;
  765. font-size: 14px;
  766. font-weight: 800;
  767. cursor: pointer;
  768. box-sizing: border-box;
  769. }
  770. .tree-action-button:hover {
  771. background: #f6efe6;
  772. }
  773. .family-tree-card-list {
  774. display: grid;
  775. grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  776. gap: 14px;
  777. }
  778. .family-tree-card {
  779. min-height: 112px;
  780. padding: 16px 18px;
  781. border: 2px solid #d8c2aa;
  782. border-radius: 14px;
  783. background: #ffffff;
  784. color: #2f2720;
  785. text-align: left;
  786. cursor: pointer;
  787. box-sizing: border-box;
  788. display: flex;
  789. flex-direction: column;
  790. gap: 6px;
  791. }
  792. .family-tree-card:hover {
  793. background: #f6efe6;
  794. }
  795. .family-tree-card.active {
  796. border-color: #8a6543;
  797. background: #eadfce;
  798. box-shadow: 0 0 0 3px rgba(138, 101, 67, 0.16);
  799. }
  800. .tree-card-name {
  801. color: #5d3b24;
  802. font-size: 18px;
  803. font-weight: 800;
  804. }
  805. .tree-card-relationship {
  806. color: #2f2720;
  807. font-size: 14px;
  808. font-weight: 700;
  809. }
  810. .tree-card-birth {
  811. color: #7b6b5c;
  812. font-size: 13px;
  813. }
  814. .family-tree-side-panel {
  815. min-height: 460px;
  816. padding: 24px 22px;
  817. background: #fffdf9;
  818. border: 2px solid #d8caba;
  819. border-radius: 36px;
  820. box-sizing: border-box;
  821. }
  822. .family-tree-side-panel h3 {
  823. margin: 0 0 16px;
  824. color: #2f2720;
  825. font-size: 20px;
  826. font-weight: 800;
  827. }
  828. .selected-person-card {
  829. margin-bottom: 18px;
  830. padding: 16px 18px;
  831. background: #eadfce;
  832. border: 2px solid #d8caba;
  833. border-radius: 14px;
  834. box-sizing: border-box;
  835. }
  836. .selected-person-name {
  837. margin: 0;
  838. color: #2f2720;
  839. font-size: 22px;
  840. font-weight: 800;
  841. line-height: 1.2;
  842. }
  843. .selected-person-sub {
  844. margin: 4px 0 0;
  845. color: #7b6b5c;
  846. font-size: 14px;
  847. }
  848. .selected-info-list {
  849. display: grid;
  850. gap: 10px;
  851. }
  852. .selected-info-row {
  853. display: grid;
  854. grid-template-columns: 82px 1fr;
  855. gap: 10px;
  856. align-items: start;
  857. padding: 10px 12px;
  858. background: #ffffff;
  859. border: 2px solid #d8caba;
  860. border-radius: 8px;
  861. box-sizing: border-box;
  862. }
  863. .selected-info-row span {
  864. color: #7b6b5c;
  865. font-size: 14px;
  866. font-weight: 700;
  867. }
  868. .selected-info-row strong {
  869. color: #2f2720;
  870. font-size: 15px;
  871. font-weight: 800;
  872. line-height: 1.6;
  873. }
  874. .children-row strong {
  875. display: flex;
  876. flex-wrap: wrap;
  877. gap: 6px;
  878. }
  879. .child-name {
  880. display: inline-flex;
  881. align-items: center;
  882. min-height: 26px;
  883. padding: 2px 8px;
  884. border-radius: 999px;
  885. background: #f1e7d8;
  886. color: #5d3b24;
  887. font-size: 13px;
  888. font-weight: 800;
  889. }
  890. .marriage-summary-panel {
  891. margin-top: 18px;
  892. padding: 14px 16px;
  893. background: #fffaf3;
  894. border: 2px solid #d8caba;
  895. border-radius: 12px;
  896. box-sizing: border-box;
  897. }
  898. .marriage-summary-panel h4 {
  899. margin: 0 0 12px;
  900. color: #2f2720;
  901. font-size: 16px;
  902. font-weight: 800;
  903. }
  904. .marriage-summary-block + .marriage-summary-block {
  905. margin-top: 14px;
  906. }
  907. .marriage-summary-label {
  908. margin: 0 0 8px;
  909. color: #7b6b5c;
  910. font-size: 13px;
  911. font-weight: 800;
  912. }
  913. .marriage-history-list {
  914. display: grid;
  915. gap: 8px;
  916. }
  917. .marriage-person-button {
  918. width: 100%;
  919. min-height: 40px;
  920. padding: 8px 10px;
  921. border: 2px solid #8a6543;
  922. border-radius: 8px;
  923. background: #ffffff;
  924. color: #2f2720;
  925. font-size: 14px;
  926. font-weight: 800;
  927. cursor: pointer;
  928. display: flex;
  929. align-items: center;
  930. justify-content: space-between;
  931. gap: 8px;
  932. box-sizing: border-box;
  933. }
  934. .marriage-person-button:hover {
  935. background: #f6efe6;
  936. }
  937. .marriage-person-button small {
  938. color: #7b6b5c;
  939. font-size: 12px;
  940. font-weight: 800;
  941. }
  942. .marriage-person-button.secondary {
  943. border-color: #d8caba;
  944. }
  945. .marriage-empty-text {
  946. margin: 0;
  947. color: #7b6b5c;
  948. font-size: 14px;
  949. font-weight: 700;
  950. }
  951. .selected-person-actions {
  952. display: grid;
  953. gap: 10px;
  954. margin-top: 18px;
  955. }
  956. .selected-person-button {
  957. min-height: 42px;
  958. border: 2px solid #8a6543;
  959. border-radius: 6px;
  960. background: #8a6543;
  961. color: #ffffff;
  962. font-size: 15px;
  963. font-weight: 800;
  964. text-decoration: none;
  965. cursor: pointer;
  966. display: flex;
  967. align-items: center;
  968. justify-content: center;
  969. box-sizing: border-box;
  970. }
  971. .selected-person-button:hover {
  972. background: #765639;
  973. }
  974. .selected-person-button.secondary {
  975. background: #ffffff;
  976. color: #8a6543;
  977. }
  978. .selected-person-button.secondary:hover {
  979. background: #f6efe6;
  980. }
  981. /* =========================
  982. 家系図 図式レイアウト
  983. ========================= */
  984. .family-tree-diagram {
  985. min-height: 330px;
  986. padding: 28px 18px;
  987. background: #fffdf9;
  988. border: 2px dashed #d8c2aa;
  989. border-radius: 18px;
  990. box-sizing: border-box;
  991. display: grid;
  992. gap: 34px;
  993. }
  994. .tree-generation {
  995. display: flex;
  996. justify-content: center;
  997. align-items: center;
  998. gap: 18px;
  999. position: relative;
  1000. }
  1001. .parent-generation {
  1002. padding-bottom: 8px;
  1003. }
  1004. .main-generation {
  1005. padding: 8px 0;
  1006. }
  1007. .child-generation {
  1008. padding-top: 8px;
  1009. flex-wrap: wrap;
  1010. }
  1011. .family-tree-card.small {
  1012. min-height: 86px;
  1013. max-width: 180px;
  1014. }
  1015. .family-tree-card.main-person {
  1016. min-width: 210px;
  1017. }
  1018. .family-tree-card.spouse-person {
  1019. min-width: 190px;
  1020. }
  1021. /* 本人と配偶者の間の線 */
  1022. .main-generation .main-person::after {
  1023. content: "";
  1024. position: absolute;
  1025. top: 50%;
  1026. right: -20px;
  1027. width: 20px;
  1028. height: 2px;
  1029. background: #8a6543;
  1030. }
  1031. /* カードを線の基準にする */
  1032. .main-generation .family-tree-card {
  1033. position: relative;
  1034. }
  1035. /* 親世代から本人世代への縦線 */
  1036. .parent-generation::after {
  1037. content: "";
  1038. position: absolute;
  1039. bottom: -28px;
  1040. left: 50%;
  1041. width: 2px;
  1042. height: 28px;
  1043. background: #d8c2aa;
  1044. transform: translateX(-50%);
  1045. }
  1046. /* 本人世代から子世代への縦線 */
  1047. .main-generation::after {
  1048. content: "";
  1049. position: absolute;
  1050. bottom: -30px;
  1051. left: 50%;
  1052. width: 2px;
  1053. height: 30px;
  1054. background: #d8c2aa;
  1055. transform: translateX(-50%);
  1056. }
  1057. /* 子どもがいない場合の文言 */
  1058. .tree-empty-text {
  1059. margin: 0;
  1060. padding: 12px 18px;
  1061. background: #ffffff;
  1062. border: 2px solid #d8c2aa;
  1063. border-radius: 10px;
  1064. color: #7b6b5c;
  1065. font-size: 14px;
  1066. font-weight: 700;
  1067. }
  1068. .family-tree-member-list {
  1069. margin-top: 18px;
  1070. padding: 16px 18px;
  1071. background: #ffffff;
  1072. border: 2px solid #d8c2aa;
  1073. border-radius: 14px;
  1074. box-sizing: border-box;
  1075. }
  1076. .member-list-title {
  1077. margin: 0 0 10px;
  1078. color: #5d3b24;
  1079. font-size: 15px;
  1080. font-weight: 800;
  1081. }
  1082. .member-chip-list {
  1083. display: flex;
  1084. flex-wrap: wrap;
  1085. gap: 8px;
  1086. }
  1087. .member-chip {
  1088. min-height: 34px;
  1089. padding: 6px 12px;
  1090. border: 2px solid #d8caba;
  1091. border-radius: 999px;
  1092. background: #fffdf9;
  1093. color: #2f2720;
  1094. font-size: 14px;
  1095. font-weight: 700;
  1096. cursor: pointer;
  1097. }
  1098. .member-chip:hover {
  1099. background: #f6efe6;
  1100. }
  1101. .member-chip.active {
  1102. border-color: #8a6543;
  1103. background: #8a6543;
  1104. color: #ffffff;
  1105. }
  1106. @media (max-width: 1100px) {
  1107. .danka-detail-page {
  1108. grid-template-columns: 1fr;
  1109. padding: 0 24px 32px;
  1110. }
  1111. .detail-panel {
  1112. min-height: auto;
  1113. border-radius: 28px;
  1114. padding: 28px 24px 32px;
  1115. }
  1116. .detail-content {
  1117. grid-template-columns: 1fr;
  1118. }
  1119. .page-title-row {
  1120. flex-direction: column;
  1121. }
  1122. .edit-button,
  1123. .add-button,
  1124. .family-page-add-button {
  1125. margin-top: 0;
  1126. }
  1127. }
  1128. /* 家族表が狭い画面では横スクロール */
  1129. @media (max-width: 800px) {
  1130. .detail-content,
  1131. .info-two-column {
  1132. grid-template-columns: 1fr;
  1133. }
  1134. .info-row {
  1135. grid-template-columns: 1fr;
  1136. gap: 8px;
  1137. }
  1138. .phone-row .info-label {
  1139. min-height: 42px;
  1140. }
  1141. .family-list-summary {
  1142. align-items: flex-start;
  1143. flex-direction: column;
  1144. }
  1145. .family-search-box {
  1146. width: 100%;
  1147. grid-template-columns: 1fr;
  1148. }
  1149. .family-table {
  1150. overflow-x: auto;
  1151. }
  1152. .family-table-header,
  1153. .family-table-row {
  1154. min-width: 880px;
  1155. }
  1156. .family-support-area {
  1157. grid-template-columns: 1fr;
  1158. }
  1159. //家系図タブ
  1160. .family-tree-layout {
  1161. grid-template-columns: 1fr;
  1162. }
  1163. .family-tree-toolbar {
  1164. flex-direction: column;
  1165. }
  1166. .family-tree-action-list {
  1167. width: 100%;
  1168. flex-direction: column;
  1169. }
  1170. .tree-action-button {
  1171. width: 100%;
  1172. }
  1173. .family-tree-side-panel {
  1174. border-radius: 28px;
  1175. }
  1176. .selected-info-row {
  1177. grid-template-columns: 1fr;
  1178. gap: 4px;
  1179. }
  1180. .family-tree-diagram {
  1181. padding: 22px 12px;
  1182. gap: 26px;
  1183. }
  1184. .tree-generation {
  1185. flex-direction: column;
  1186. gap: 12px;
  1187. }
  1188. .family-tree-card.small,
  1189. .family-tree-card.main-person,
  1190. .family-tree-card.spouse-person {
  1191. width: 100%;
  1192. max-width: none;
  1193. min-width: 0;
  1194. }
  1195. .main-generation .main-person::after {
  1196. display: none;
  1197. }
  1198. .parent-generation::after,
  1199. .main-generation::after {
  1200. height: 20px;
  1201. bottom: -22px;
  1202. }
  1203. }
  1204. .family-tree-svg-container {
  1205. width: 100%;
  1206. height: 700px;
  1207. overflow: auto;
  1208. border: 1px solid #ddd;
  1209. }
  1210. .family-tree-svg-container {
  1211. width: 100%;
  1212. height: 700px;
  1213. overflow: hidden;
  1214. border: 1px solid #ddd;
  1215. }
  1216. .family-node {
  1217. cursor: pointer;
  1218. }
  1219. .family-text {
  1220. cursor: pointer;
  1221. }
  1222. .family-tree-svg-container svg {
  1223. width: 100%;
  1224. height: 100%;
  1225. }
  1226. .family-text {
  1227. writing-mode: vertical-rl;
  1228. text-orientation: upright;
  1229. }