aitori.css 74 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301
  1. /* font */
  2. @import url('https://fonts.googleapis.com/css2?family=Manrope:wght@300;400;500;600;700;800&display=swap');
  3. /* variable */
  4. :root {
  5. --alt-font: 'Manrope', sans-serif;
  6. --primary-font: 'Manrope', sans-serif;
  7. --base-color:#9c70ed;
  8. --dark-gray: #2c2e3c;
  9. --medium-gray:#797a85;
  10. }
  11. /* reset */
  12. ::-webkit-input-placeholder {
  13. color: var(--aluminium-gray) !important;
  14. text-overflow: ellipsis;
  15. }
  16. ::-moz-placeholder {
  17. color: var(--aluminium-gray) !important;
  18. text-overflow: ellipsis;
  19. opacity: 1;
  20. }
  21. :-ms-input-placeholder {
  22. color: var(--aluminium-gray) !important;
  23. text-overflow: ellipsis;
  24. opacity: 1;
  25. }
  26. /* custom cursor */
  27. @media (hover: hover) and (pointer: fine) {
  28. .custom-cursor .circle-cursor-outer {
  29. border: 1px solid transparent;
  30. }
  31. .custom-cursor .circle-cursor-inner {
  32. width: 25px;
  33. height: 25px;
  34. background: rgba(44,46,60,.15)
  35. }
  36. }
  37. /* bg gradient color */
  38. .bg-gradient-pink-orchid {
  39. background-image: linear-gradient(to right top, #e958a1, #e15aae, #d15ec7, #c561db, #bf63e5);
  40. }
  41. .bg-dark-haiti {
  42. background-color: #2e2b39;
  43. }
  44. .bg-floral-white {
  45. background-color: #fff8e7;
  46. }
  47. .bg-licorice-blue {
  48. background-color: #585d72;
  49. }
  50. .bg-black-pearl-blue {
  51. background-color: #232530;
  52. }
  53. .bg-black-pearl-blue-dark {
  54. background-color: #1f212a;
  55. }
  56. .bg-linen{
  57. background-color: #fdedea;
  58. }
  59. .bg-oxford-blue{
  60. background-color: #262D38;
  61. }
  62. /* text gradient color */
  63. .text-gradient-pink-orchid {
  64. background-image: linear-gradient(to right, #e958a1, #e15aae, #d15ec7, #c561db, #bf63e5);
  65. -webkit-background-clip: text;
  66. -webkit-text-fill-color: transparent;
  67. }
  68. .h1, .h2, .h3, .h4, .h5, .h6, h1, h2, h3, h4, h5, h6 {
  69. margin-bottom: 25px;
  70. }
  71. /* btn */
  72. .btn {
  73. font-weight: 600;
  74. text-transform: none;
  75. letter-spacing: 0;
  76. }
  77. .btn.btn-extra-large {
  78. font-size: 17px;
  79. }
  80. .btn.btn-large {
  81. font-size:15px;
  82. }
  83. .btn.btn-medium {
  84. font-size: 14px;
  85. }
  86. .btn.btn-small {
  87. font-size: 13px;
  88. }
  89. .btn.btn-very-small {
  90. font-size: 12px;
  91. }
  92. .btn-gradient-pink-orchid {
  93. background-image: linear-gradient(to right, #e958a1, #bf63e5, #bf63e5);
  94. background-size: 200% auto;
  95. color: var(--white);
  96. }
  97. /* newsletter */
  98. .newsletter-style-02 .btn {
  99. padding: 7px 18px 9px 18px;
  100. }
  101. .newsletter-style-02 input {
  102. padding-right: 50px;
  103. font-size: 14px;
  104. }
  105. /* border color gradient */
  106. .border-gradient-pink-orchid {
  107. border-image: linear-gradient(to right top, #e958a1, #e15aae, #d15ec7, #c561db, #bf63e5);
  108. border-image-slice: 1;
  109. }
  110. /* header */
  111. header .navbar-brand img {
  112. max-height: 32px;
  113. }
  114. .navbar .navbar-nav .nav-link {
  115. font-weight: 700;
  116. font-size: 17px;
  117. }
  118. header .btn i {
  119. top: -1px !important;
  120. }
  121. header.sticky.sticky-active .disable-fixed[data-header-hover=light] {
  122. background-color: transparent !important;
  123. box-shadow: none !important;
  124. }
  125. /* hero visual */
  126. .hero-visual {
  127. display: grid;
  128. gap: 18px;
  129. }
  130. .hero-main-card img {
  131. aspect-ratio: 3 / 2;
  132. object-fit: cover;
  133. display: block;
  134. }
  135. .hero-comparison-strip {
  136. display: grid;
  137. grid-template-columns: repeat(2, minmax(0, 1fr));
  138. gap: 18px;
  139. width: min(92%, 460px);
  140. margin: 0 auto;
  141. position: relative;
  142. z-index: 2;
  143. }
  144. .hero-comparison-card img {
  145. aspect-ratio: 4 / 5;
  146. object-fit: cover;
  147. display: block;
  148. }
  149. .results-gallery-image {
  150. aspect-ratio: 4 / 5;
  151. object-fit: cover;
  152. display: block;
  153. }
  154. .results-gallery-card a {
  155. cursor: zoom-in;
  156. overflow: hidden;
  157. }
  158. .results-gallery-card img {
  159. transition: transform 0.3s ease;
  160. }
  161. .results-gallery-card a:hover img {
  162. transform: scale(1.03);
  163. }
  164. .results-gallery-image-wide {
  165. aspect-ratio: 5 / 4;
  166. }
  167. .about-step-image {
  168. aspect-ratio: 16 / 9;
  169. object-fit: cover;
  170. display: block;
  171. }
  172. .stylist-profile-hero {
  173. padding-top: 130px;
  174. padding-bottom: 90px;
  175. }
  176. .public-profile-hero {
  177. background: linear-gradient(135deg, #fff8f6 0%, #ffffff 54%, #f3f6f0 100%);
  178. }
  179. .public-profile-photo {
  180. background: linear-gradient(180deg, #ffffff 0%, #f7f4ef 100%);
  181. }
  182. .stylist-profile-photo img {
  183. aspect-ratio: 4 / 5;
  184. object-fit: cover;
  185. display: block;
  186. }
  187. .public-profile-stats > .col > div {
  188. border: 1px solid rgba(35, 35, 35, 0.06);
  189. box-shadow: 0 14px 34px rgba(35, 35, 35, 0.06);
  190. }
  191. .public-profile-actions {
  192. margin-top: -40px;
  193. position: relative;
  194. z-index: 2;
  195. }
  196. .public-profile-action-card {
  197. min-height: 118px;
  198. padding: 24px;
  199. border-radius: 8px;
  200. display: flex;
  201. align-items: center;
  202. gap: 18px;
  203. color: var(--dark-gray);
  204. box-shadow: 0 18px 45px rgba(35, 35, 35, 0.08);
  205. transition: transform 0.25s ease, box-shadow 0.25s ease;
  206. }
  207. .public-profile-action-card:hover {
  208. color: var(--dark-gray);
  209. transform: translateY(-4px);
  210. box-shadow: 0 24px 60px rgba(35, 35, 35, 0.12);
  211. }
  212. .public-profile-action-card i {
  213. width: 48px;
  214. height: 48px;
  215. border-radius: 50%;
  216. display: inline-flex;
  217. align-items: center;
  218. justify-content: center;
  219. flex: 0 0 auto;
  220. background: rgba(255, 255, 255, 0.7);
  221. font-size: 22px;
  222. }
  223. .public-profile-action-card strong,
  224. .public-profile-action-card small {
  225. display: block;
  226. }
  227. .public-profile-action-card strong {
  228. margin-bottom: 5px;
  229. font-size: 18px;
  230. font-weight: 800;
  231. }
  232. .public-profile-action-card small {
  233. color: rgba(35, 35, 35, 0.68);
  234. line-height: 1.5;
  235. }
  236. .public-profile-action-booking {
  237. background: #d9cfc4;
  238. }
  239. .public-profile-action-simulation {
  240. background: #c8d2cc;
  241. }
  242. .public-profile-action-gallery {
  243. background: #d1c8d6;
  244. }
  245. .public-profile-bottom-cta {
  246. padding: 34px;
  247. border-radius: 8px;
  248. background: #ffffff;
  249. box-shadow: 0 18px 45px rgba(35, 35, 35, 0.08);
  250. display: flex;
  251. align-items: center;
  252. justify-content: space-between;
  253. gap: 24px;
  254. }
  255. .stylist-template-image {
  256. aspect-ratio: 4 / 5;
  257. object-fit: cover;
  258. display: block;
  259. }
  260. .stylist-template-image-wide {
  261. aspect-ratio: 5 / 4;
  262. }
  263. .login-hero {
  264. min-height: 100vh;
  265. padding-top: 120px;
  266. padding-bottom: 80px;
  267. }
  268. .login-hero:before {
  269. content: "";
  270. position: absolute;
  271. inset: 0;
  272. background: linear-gradient(90deg, rgba(255, 248, 246, 0.94) 0%, rgba(255, 248, 246, 0.82) 48%, rgba(255, 255, 255, 0.72) 100%);
  273. }
  274. .login-header-link {
  275. width: auto !important;
  276. min-width: 0 !important;
  277. min-height: 32px !important;
  278. height: 32px !important;
  279. padding: 0 14px !important;
  280. border: 1px solid var(--dark-gray) !important;
  281. border-radius: 999px;
  282. display: inline-flex;
  283. align-items: center;
  284. justify-content: center;
  285. color: var(--dark-gray);
  286. font-size: 13px;
  287. font-weight: 700;
  288. line-height: 1;
  289. text-decoration: none;
  290. white-space: nowrap;
  291. }
  292. .login-header-link:hover {
  293. background-color: var(--dark-gray);
  294. color: var(--white);
  295. }
  296. .login-card .form-control {
  297. border: 1px solid rgba(44, 46, 60, 0.08);
  298. min-height: 54px;
  299. }
  300. .login-card .form-control:focus {
  301. border-color: var(--base-color);
  302. box-shadow: 0 0 0 3px rgba(253, 111, 99, 0.12);
  303. }
  304. .login-form-options {
  305. display: flex;
  306. align-items: center;
  307. justify-content: space-between;
  308. gap: 16px;
  309. }
  310. .login-remember {
  311. display: inline-flex;
  312. align-items: center;
  313. gap: 10px;
  314. min-width: 0;
  315. color: var(--medium-gray);
  316. font-size: 14px;
  317. line-height: 1.4;
  318. }
  319. .login-remember input {
  320. width: 16px;
  321. height: 16px;
  322. flex: 0 0 16px;
  323. margin: 0;
  324. }
  325. .login-remember span {
  326. white-space: nowrap;
  327. }
  328. .stylist-workbench-body {
  329. background-color: #fff8f6;
  330. }
  331. .stylist-dashboard-nav .container-fluid {
  332. min-height: 86px;
  333. display: grid;
  334. grid-template-columns: 1fr auto 1fr;
  335. align-items: center;
  336. }
  337. .stylist-dashboard-menu {
  338. justify-self: center;
  339. }
  340. .stylist-dashboard-actions {
  341. justify-self: end;
  342. align-items: center;
  343. }
  344. .stylist-workbench {
  345. background: linear-gradient(180deg, #fff8f6 0%, #ffffff 42%, #f7f4ef 100%);
  346. min-height: 100vh;
  347. }
  348. .stylist-workbench-top {
  349. padding-top: 120px;
  350. padding-bottom: 0;
  351. }
  352. .dashboard-invite-code {
  353. display: inline-flex;
  354. align-items: center;
  355. gap: 14px;
  356. padding: 12px 14px;
  357. border: 1px solid rgba(44, 46, 60, 0.08);
  358. border-radius: 8px;
  359. background: rgba(255, 255, 255, 0.78);
  360. box-shadow: 0 8px 22px rgba(44, 46, 60, 0.05);
  361. }
  362. .dashboard-invite-code > div {
  363. min-width: 0;
  364. }
  365. .dashboard-invite-code span {
  366. display: block;
  367. margin-bottom: 2px;
  368. color: #82828f;
  369. font-size: 12px;
  370. font-weight: 600;
  371. }
  372. .dashboard-invite-code strong {
  373. display: block;
  374. color: #2c2e3c;
  375. font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
  376. font-size: 20px;
  377. font-weight: 800;
  378. letter-spacing: 0.1em;
  379. line-height: 1.1;
  380. }
  381. .workbench-action-card {
  382. display: block;
  383. color: inherit;
  384. text-decoration: none;
  385. overflow: hidden;
  386. border: 1px solid rgba(44, 46, 60, 0.06);
  387. transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
  388. }
  389. .workbench-action-card:hover {
  390. transform: translateY(-3px);
  391. border-color: rgba(253, 111, 99, 0.35);
  392. }
  393. .workbench-action-card.is-primary {
  394. border-color: rgba(253, 111, 99, 0.35);
  395. }
  396. .workbench-action-card-customer {
  397. background: linear-gradient(135deg, #ffffff 0%, #f3e8e4 100%) !important;
  398. }
  399. .workbench-action-card-simulation {
  400. background: linear-gradient(135deg, #ffffff 0%, #e6edf0 100%) !important;
  401. }
  402. .workbench-action-card-template {
  403. background: linear-gradient(135deg, #ffffff 0%, #e8ede4 100%) !important;
  404. }
  405. .workbench-action-card-profile {
  406. background: linear-gradient(135deg, #ffffff 0%, #eee8dd 100%) !important;
  407. }
  408. .workbench-action-card-customer .workbench-action-image {
  409. background-color: #eadbd6;
  410. }
  411. .workbench-action-card-simulation .workbench-action-image {
  412. background-color: #dce7eb;
  413. }
  414. .workbench-action-card-template .workbench-action-image {
  415. background-color: #dfe8dc;
  416. }
  417. .workbench-action-card-profile .workbench-action-image {
  418. background-color: #e6dfd2;
  419. }
  420. .workbench-action-card-customer .workbench-action-illustration {
  421. background-color: #d7c4bd;
  422. color: #8c736c;
  423. }
  424. .workbench-action-card-simulation .workbench-action-illustration {
  425. background-color: #c9d8de;
  426. color: #687f8a;
  427. }
  428. .workbench-action-card-template .workbench-action-illustration {
  429. background-color: #cddbc8;
  430. color: #6e8068;
  431. }
  432. .workbench-action-card-profile .workbench-action-illustration {
  433. background-color: #d8cdbb;
  434. color: #85735c;
  435. }
  436. .workbench-action-image {
  437. display: flex;
  438. align-items: center;
  439. justify-content: center;
  440. aspect-ratio: 16 / 10;
  441. background-color: #f1f3f5;
  442. overflow: hidden;
  443. }
  444. .workbench-action-illustration {
  445. width: 118px;
  446. height: 118px;
  447. border-radius: 50%;
  448. background-color: #e6e9ee;
  449. color: #aeb6c2;
  450. display: inline-flex;
  451. align-items: center;
  452. justify-content: center;
  453. font-size: 46px;
  454. transition: transform 0.25s ease, background-color 0.25s ease, color 0.25s ease;
  455. }
  456. .workbench-action-card:hover .workbench-action-illustration {
  457. transform: scale(1.04);
  458. background-color: #fdedea;
  459. color: var(--base-color);
  460. }
  461. .workbench-action-body {
  462. display: block;
  463. padding: 25px;
  464. }
  465. .stylist-profile-manage-layout {
  466. display: grid;
  467. grid-template-columns: 360px minmax(0, 1fr);
  468. gap: 24px;
  469. align-items: start;
  470. }
  471. .stylist-profile-manage-card {
  472. overflow: hidden;
  473. border: 1px solid rgba(44, 46, 60, 0.08);
  474. border-radius: 8px;
  475. background-color: #f7f7f8;
  476. }
  477. .stylist-profile-manage-card > img {
  478. width: 100%;
  479. aspect-ratio: 4 / 5;
  480. object-fit: cover;
  481. display: block;
  482. }
  483. .stylist-profile-manage-card > div {
  484. padding: 20px;
  485. }
  486. .stylist-profile-manage-card h2 {
  487. margin: 12px 0 10px;
  488. color: var(--dark-gray);
  489. font-size: 24px;
  490. font-weight: 800;
  491. }
  492. .stylist-profile-manage-card p {
  493. color: var(--medium-gray);
  494. font-size: 14px;
  495. line-height: 1.7;
  496. margin-bottom: 16px;
  497. }
  498. .stylist-profile-manage-stats {
  499. display: grid;
  500. grid-template-columns: repeat(3, minmax(0, 1fr));
  501. gap: 8px;
  502. }
  503. .stylist-profile-manage-stats span {
  504. padding: 10px 8px;
  505. border-radius: 8px;
  506. background-color: #fff;
  507. color: var(--medium-gray);
  508. font-size: 12px;
  509. text-align: center;
  510. }
  511. .stylist-profile-manage-stats strong {
  512. display: block;
  513. color: var(--dark-gray);
  514. font-size: 18px;
  515. font-weight: 900;
  516. }
  517. .stylist-profile-form-section {
  518. margin-top: 28px;
  519. padding-top: 24px;
  520. border-top: 1px solid rgba(44, 46, 60, 0.08);
  521. }
  522. .stylist-profile-form-section h3 {
  523. margin: 0 0 6px;
  524. color: var(--dark-gray);
  525. font-size: 20px;
  526. font-weight: 700;
  527. }
  528. .stylist-profile-form-section > p {
  529. margin-bottom: 18px;
  530. color: var(--medium-gray);
  531. line-height: 1.7;
  532. }
  533. .stylist-profile-field-hint {
  534. display: block;
  535. margin-top: 8px;
  536. color: var(--medium-gray);
  537. font-size: 13px;
  538. line-height: 1.6;
  539. }
  540. .stylist-live-template-grid {
  541. display: grid;
  542. grid-template-columns: repeat(3, minmax(0, 1fr));
  543. gap: 24px;
  544. padding: 0;
  545. margin: 0;
  546. list-style: none;
  547. }
  548. .stylist-live-template-card {
  549. width: 100%;
  550. padding: 0;
  551. border: 0;
  552. background: #fff;
  553. border-radius: 8px;
  554. overflow: hidden;
  555. box-shadow: 0 18px 45px rgba(35, 35, 35, 0.08);
  556. text-align: left;
  557. }
  558. .stylist-live-template-card img {
  559. width: 100%;
  560. aspect-ratio: 4 / 5;
  561. object-fit: cover;
  562. display: block;
  563. }
  564. .stylist-live-template-card div {
  565. padding: 18px 20px 22px;
  566. }
  567. .stylist-live-template-card h3 {
  568. margin: 0 0 8px;
  569. color: var(--dark-gray);
  570. font-size: 20px;
  571. font-weight: 700;
  572. }
  573. .stylist-live-template-card p {
  574. margin: 0;
  575. color: var(--medium-gray);
  576. line-height: 1.7;
  577. }
  578. .ws-pre-line {
  579. white-space: pre-line;
  580. }
  581. .workbench-action-icon {
  582. width: 46px;
  583. height: 46px;
  584. border-radius: 50%;
  585. background-color: #fdedea;
  586. color: var(--base-color);
  587. display: inline-flex;
  588. align-items: center;
  589. justify-content: center;
  590. font-size: 22px;
  591. margin-bottom: 18px;
  592. }
  593. .workbench-stat,
  594. .workbench-panel {
  595. border: 1px solid rgba(44, 46, 60, 0.06);
  596. }
  597. .workbench-list {
  598. display: grid;
  599. gap: 12px;
  600. }
  601. .workbench-list-item {
  602. min-height: 66px;
  603. padding: 14px 0;
  604. border-bottom: 1px solid rgba(44, 46, 60, 0.08);
  605. display: flex;
  606. align-items: center;
  607. justify-content: space-between;
  608. gap: 16px;
  609. }
  610. .workbench-list-item:last-child {
  611. border-bottom: 0;
  612. }
  613. .workbench-list.compact .workbench-list-item {
  614. min-height: 60px;
  615. }
  616. .workbench-badge {
  617. border-radius: 999px;
  618. background-color: #fdedea;
  619. color: var(--base-color);
  620. display: inline-flex;
  621. align-items: center;
  622. justify-content: center;
  623. min-height: 30px;
  624. padding: 0 12px;
  625. font-size: 12px;
  626. font-weight: 700;
  627. white-space: nowrap;
  628. }
  629. .workbench-record-table {
  630. display: grid;
  631. overflow-x: auto;
  632. }
  633. .workbench-record-row {
  634. min-width: 820px;
  635. display: grid;
  636. grid-template-columns: 130px 150px 180px 180px 1fr;
  637. gap: 16px;
  638. padding: 16px 0;
  639. border-bottom: 1px solid rgba(44, 46, 60, 0.08);
  640. align-items: center;
  641. }
  642. .workbench-record-row:last-child {
  643. border-bottom: 0;
  644. }
  645. .workbench-record-head {
  646. padding-top: 0;
  647. color: var(--medium-gray);
  648. font-size: 13px;
  649. font-weight: 700;
  650. }
  651. .customer-search-field {
  652. position: relative;
  653. }
  654. .customer-search-field i {
  655. position: absolute;
  656. left: 18px;
  657. top: 50%;
  658. transform: translateY(-50%);
  659. color: var(--medium-gray);
  660. z-index: 1;
  661. }
  662. .customer-search-field .form-control {
  663. min-height: 52px;
  664. padding-left: 48px;
  665. border: 1px solid rgba(44, 46, 60, 0.08);
  666. background-color: #f7f7f8;
  667. }
  668. .customer-filter-control {
  669. min-height: 52px;
  670. border: 1px solid rgba(44, 46, 60, 0.08);
  671. background-color: #f7f7f8;
  672. }
  673. .customer-table {
  674. overflow-x: auto;
  675. }
  676. .customer-row {
  677. min-width: 720px;
  678. display: grid;
  679. grid-template-columns: 260px minmax(0, 1fr) 86px;
  680. gap: 16px;
  681. align-items: center;
  682. padding: 16px 0;
  683. border-bottom: 1px solid rgba(44, 46, 60, 0.08);
  684. }
  685. .customer-empty-row {
  686. grid-template-columns: 1fr;
  687. min-height: 92px;
  688. color: var(--medium-gray);
  689. justify-items: center;
  690. }
  691. .customer-row:last-child {
  692. border-bottom: 0;
  693. }
  694. .customer-head {
  695. padding-top: 0;
  696. color: var(--medium-gray);
  697. font-size: 13px;
  698. font-weight: 700;
  699. }
  700. .customer-profile {
  701. display: flex;
  702. align-items: center;
  703. gap: 14px;
  704. }
  705. .customer-avatar {
  706. width: 42px;
  707. height: 42px;
  708. border-radius: 50%;
  709. object-fit: cover;
  710. display: block;
  711. flex: 0 0 42px;
  712. background-color: #fdedea;
  713. }
  714. .customer-profile-summary {
  715. display: flex;
  716. align-items: center;
  717. gap: 16px;
  718. }
  719. .customer-profile-summary .customer-avatar {
  720. width: 58px;
  721. height: 58px;
  722. flex-basis: 58px;
  723. }
  724. .customer-profile-summary div {
  725. min-width: 0;
  726. flex: 1 1 auto;
  727. }
  728. .customer-profile-summary strong,
  729. .customer-profile-summary span {
  730. display: block;
  731. }
  732. .customer-profile-summary strong {
  733. color: var(--dark-gray);
  734. font-size: 20px;
  735. font-weight: 800;
  736. }
  737. .customer-profile-summary div > span:last-child {
  738. color: var(--medium-gray);
  739. }
  740. .customer-photo-upload {
  741. display: flex;
  742. flex-direction: column;
  743. align-items: center;
  744. justify-content: center;
  745. min-height: 260px;
  746. cursor: pointer;
  747. text-align: center;
  748. }
  749. .customer-photo-upload input {
  750. position: absolute;
  751. opacity: 0;
  752. pointer-events: none;
  753. }
  754. .customer-photo-preview {
  755. width: 150px;
  756. height: 150px;
  757. border-radius: 50%;
  758. background-color: #f1f3f5;
  759. display: inline-flex;
  760. align-items: center;
  761. justify-content: center;
  762. overflow: hidden;
  763. }
  764. .customer-photo-preview img {
  765. width: 100%;
  766. height: 100%;
  767. object-fit: cover;
  768. display: block;
  769. }
  770. .customer-pager {
  771. display: flex;
  772. align-items: center;
  773. justify-content: center;
  774. gap: 8px;
  775. margin-top: 28px;
  776. }
  777. .customer-pager-link,
  778. .customer-pager-dots {
  779. min-width: 36px;
  780. height: 36px;
  781. display: inline-flex;
  782. align-items: center;
  783. justify-content: center;
  784. border-radius: 18px;
  785. color: var(--medium-gray);
  786. font-size: 14px;
  787. font-weight: 700;
  788. }
  789. .customer-pager-link {
  790. border: 1px solid rgba(44, 46, 60, 0.12);
  791. background-color: #fff;
  792. }
  793. .customer-pager-link:hover,
  794. .customer-pager-link.is-active {
  795. border-color: var(--base-color);
  796. background-color: var(--base-color);
  797. color: #fff;
  798. }
  799. .customer-pager-link.is-disabled {
  800. pointer-events: none;
  801. opacity: 0.45;
  802. }
  803. .customer-detail-hero {
  804. display: grid;
  805. grid-template-columns: minmax(0, 1fr) 320px;
  806. gap: 30px;
  807. align-items: center;
  808. }
  809. .customer-detail-profile {
  810. display: flex;
  811. align-items: center;
  812. gap: 28px;
  813. }
  814. .customer-detail-avatar {
  815. width: 160px;
  816. height: 160px;
  817. border-radius: 50%;
  818. object-fit: cover;
  819. flex: 0 0 160px;
  820. }
  821. .customer-detail-tags {
  822. display: flex;
  823. flex-wrap: wrap;
  824. gap: 8px;
  825. margin-top: 18px;
  826. }
  827. .customer-detail-tags span {
  828. display: inline-flex;
  829. align-items: center;
  830. min-height: 32px;
  831. padding: 0 12px;
  832. border-radius: 16px;
  833. background-color: #f7f7f8;
  834. color: var(--medium-gray);
  835. font-size: 13px;
  836. font-weight: 700;
  837. }
  838. .customer-next-visit {
  839. padding: 24px;
  840. border-radius: 8px;
  841. background-color: #f7f7f8;
  842. }
  843. .customer-next-visit strong {
  844. display: block;
  845. margin: 8px 0;
  846. color: var(--dark-gray);
  847. font-size: 32px;
  848. line-height: 1.1;
  849. }
  850. .customer-next-visit p {
  851. margin-bottom: 18px;
  852. color: var(--medium-gray);
  853. line-height: 1.7;
  854. }
  855. .customer-info-list {
  856. display: grid;
  857. gap: 16px;
  858. }
  859. .customer-info-list div {
  860. padding-bottom: 16px;
  861. border-bottom: 1px solid rgba(44, 46, 60, 0.08);
  862. }
  863. .customer-info-list div:last-child {
  864. padding-bottom: 0;
  865. border-bottom: 0;
  866. }
  867. .customer-info-list span {
  868. display: block;
  869. margin-bottom: 4px;
  870. color: var(--medium-gray);
  871. font-size: 13px;
  872. font-weight: 700;
  873. }
  874. .customer-info-list strong {
  875. color: var(--dark-gray);
  876. font-size: 15px;
  877. }
  878. .customer-history {
  879. display: grid;
  880. gap: 18px;
  881. }
  882. .customer-history-item {
  883. display: grid;
  884. grid-template-columns: 120px minmax(0, 1fr);
  885. gap: 20px;
  886. padding-bottom: 18px;
  887. border-bottom: 1px solid rgba(44, 46, 60, 0.08);
  888. }
  889. .customer-history-item:last-child {
  890. padding-bottom: 0;
  891. border-bottom: 0;
  892. }
  893. .customer-history-date {
  894. color: var(--base-color);
  895. font-size: 14px;
  896. font-weight: 800;
  897. }
  898. .customer-history-item strong {
  899. display: block;
  900. margin-bottom: 6px;
  901. color: var(--dark-gray);
  902. }
  903. .customer-history-item p {
  904. margin-bottom: 0;
  905. color: var(--medium-gray);
  906. line-height: 1.7;
  907. }
  908. .customer-photo-grid {
  909. display: grid;
  910. grid-template-columns: repeat(4, minmax(0, 1fr));
  911. gap: 18px;
  912. }
  913. .customer-simulation-batches {
  914. display: grid;
  915. gap: 18px;
  916. }
  917. .customer-simulation-batch {
  918. padding: 18px;
  919. border: 1px solid rgba(44, 46, 60, 0.08);
  920. border-radius: 8px;
  921. background-color: #f7f7f8;
  922. }
  923. .customer-simulation-batch-heading {
  924. display: flex;
  925. align-items: center;
  926. justify-content: space-between;
  927. gap: 16px;
  928. margin-bottom: 16px;
  929. }
  930. .customer-simulation-batch-heading span {
  931. display: block;
  932. margin-bottom: 4px;
  933. color: var(--base-color);
  934. font-size: 13px;
  935. font-weight: 800;
  936. }
  937. .customer-simulation-batch-heading strong {
  938. display: block;
  939. color: var(--dark-gray);
  940. font-size: 18px;
  941. font-weight: 800;
  942. }
  943. .customer-simulation-batch-heading a {
  944. color: var(--base-color);
  945. font-size: 13px;
  946. font-weight: 800;
  947. text-decoration: none;
  948. white-space: nowrap;
  949. }
  950. .customer-simulation-history {
  951. grid-template-columns: repeat(3, minmax(0, 1fr));
  952. gap: 14px;
  953. }
  954. .customer-photo-card-link {
  955. text-decoration: none;
  956. }
  957. .customer-photo-card {
  958. overflow: hidden;
  959. border: 1px solid rgba(44, 46, 60, 0.08);
  960. border-radius: 8px;
  961. background-color: #fff;
  962. display: block;
  963. color: inherit;
  964. transition: transform 0.2s ease, box-shadow 0.2s ease;
  965. }
  966. .customer-photo-card:hover {
  967. color: inherit;
  968. transform: translateY(-2px);
  969. box-shadow: 0 16px 36px rgba(44, 46, 60, 0.12);
  970. }
  971. .customer-photo-card img {
  972. width: 100%;
  973. aspect-ratio: 4 / 5;
  974. object-fit: cover;
  975. display: block;
  976. }
  977. .customer-photo-card div {
  978. padding: 16px;
  979. }
  980. .customer-photo-card span {
  981. display: block;
  982. margin-bottom: 4px;
  983. color: var(--base-color);
  984. font-size: 12px;
  985. font-weight: 800;
  986. text-transform: uppercase;
  987. }
  988. .customer-photo-card strong {
  989. color: var(--dark-gray);
  990. font-size: 15px;
  991. }
  992. .customer-detail-cta {
  993. display: flex;
  994. align-items: center;
  995. justify-content: space-between;
  996. gap: 24px;
  997. background-color: var(--base-color);
  998. }
  999. .customer-detail-start-btn i {
  1000. margin-right: 12px;
  1001. }
  1002. .customer-edit-form {
  1003. margin-bottom: 40px;
  1004. }
  1005. .customer-edit-label {
  1006. display: block;
  1007. margin-bottom: 10px;
  1008. color: var(--dark-gray);
  1009. font-size: 14px;
  1010. font-weight: 700;
  1011. }
  1012. .customer-edit-control {
  1013. min-height: 52px;
  1014. border: 1px solid rgba(44, 46, 60, 0.08);
  1015. border-radius: 8px;
  1016. background-color: #f7f7f8;
  1017. color: var(--dark-gray);
  1018. }
  1019. textarea.customer-edit-control {
  1020. min-height: auto;
  1021. resize: vertical;
  1022. }
  1023. .customer-edit-control:focus {
  1024. border-color: rgba(146, 111, 232, 0.45);
  1025. background-color: #fff;
  1026. box-shadow: 0 0 0 4px rgba(146, 111, 232, 0.1);
  1027. }
  1028. .customer-edit-photo {
  1029. display: grid;
  1030. justify-items: center;
  1031. gap: 18px;
  1032. padding: 28px;
  1033. border-radius: 8px;
  1034. background-color: #f7f7f8;
  1035. }
  1036. .customer-edit-photo img {
  1037. width: 150px;
  1038. height: 150px;
  1039. border-radius: 50%;
  1040. object-fit: cover;
  1041. }
  1042. .customer-edit-note {
  1043. display: flex;
  1044. align-items: center;
  1045. justify-content: space-between;
  1046. gap: 16px;
  1047. padding-top: 18px;
  1048. border-top: 1px solid rgba(44, 46, 60, 0.08);
  1049. }
  1050. .customer-edit-note strong {
  1051. color: var(--dark-gray);
  1052. }
  1053. .customer-edit-note span {
  1054. color: var(--medium-gray);
  1055. font-size: 14px;
  1056. }
  1057. .customer-edit-actions {
  1058. display: flex;
  1059. align-items: center;
  1060. justify-content: space-between;
  1061. gap: 24px;
  1062. background-color: #fff;
  1063. }
  1064. .customer-edit-actions strong,
  1065. .customer-edit-actions span {
  1066. display: block;
  1067. }
  1068. .customer-edit-actions strong {
  1069. margin-bottom: 4px;
  1070. color: var(--dark-gray);
  1071. }
  1072. .customer-edit-actions span {
  1073. color: var(--medium-gray);
  1074. }
  1075. .customer-new-steps {
  1076. display: grid;
  1077. gap: 14px;
  1078. }
  1079. .customer-new-steps div {
  1080. display: flex;
  1081. align-items: center;
  1082. gap: 14px;
  1083. padding: 14px;
  1084. border-radius: 8px;
  1085. background-color: #f7f7f8;
  1086. }
  1087. .customer-new-steps span {
  1088. width: 32px;
  1089. height: 32px;
  1090. display: inline-flex;
  1091. align-items: center;
  1092. justify-content: center;
  1093. border-radius: 50%;
  1094. background-color: var(--base-color);
  1095. color: #fff;
  1096. font-size: 13px;
  1097. font-weight: 800;
  1098. flex: 0 0 32px;
  1099. }
  1100. .customer-new-steps strong {
  1101. color: var(--dark-gray);
  1102. font-size: 15px;
  1103. }
  1104. .customer-new-check {
  1105. display: flex;
  1106. align-items: flex-start;
  1107. gap: 10px;
  1108. color: var(--dark-gray);
  1109. font-size: 14px;
  1110. font-weight: 700;
  1111. }
  1112. .customer-new-check input {
  1113. width: 18px;
  1114. height: 18px;
  1115. margin-top: 2px;
  1116. accent-color: var(--base-color);
  1117. flex: 0 0 18px;
  1118. }
  1119. .template-grid {
  1120. display: grid;
  1121. grid-template-columns: repeat(4, minmax(0, 1fr));
  1122. gap: 20px;
  1123. }
  1124. .template-card {
  1125. overflow: hidden;
  1126. display: block;
  1127. border: 1px solid rgba(44, 46, 60, 0.08);
  1128. border-radius: 8px;
  1129. background-color: #fff;
  1130. color: inherit;
  1131. text-decoration: none;
  1132. transition: transform 0.2s ease, box-shadow 0.2s ease;
  1133. }
  1134. .template-card:hover {
  1135. transform: translateY(-2px);
  1136. box-shadow: 0 16px 36px rgba(44, 46, 60, 0.12);
  1137. color: inherit;
  1138. }
  1139. .template-card img {
  1140. width: 100%;
  1141. aspect-ratio: 4 / 5;
  1142. object-fit: cover;
  1143. display: block;
  1144. }
  1145. .template-card-shell {
  1146. display: block;
  1147. }
  1148. .template-card-image {
  1149. position: relative;
  1150. overflow: hidden;
  1151. }
  1152. .template-card-image-link {
  1153. display: block;
  1154. color: inherit;
  1155. }
  1156. .template-card-image-selection {
  1157. position: absolute;
  1158. top: 14px;
  1159. right: 14px;
  1160. z-index: 2;
  1161. display: inline-flex;
  1162. align-items: center;
  1163. justify-content: center;
  1164. width: 30px;
  1165. height: 30px;
  1166. border-radius: 50%;
  1167. background: rgba(255, 255, 255, 0.92);
  1168. box-shadow: 0 2px 8px rgba(44, 46, 60, 0.16);
  1169. }
  1170. .template-card-checkbox {
  1171. width: 18px;
  1172. height: 18px;
  1173. margin: 0;
  1174. accent-color: var(--base-color);
  1175. cursor: pointer;
  1176. }
  1177. .template-card-image-overlay {
  1178. position: absolute;
  1179. left: 14px;
  1180. bottom: 14px;
  1181. z-index: 1;
  1182. }
  1183. .template-card-content {
  1184. padding: 18px;
  1185. }
  1186. .template-card-body {
  1187. padding: 18px;
  1188. }
  1189. .template-card-meta,
  1190. .template-card-footer {
  1191. display: flex;
  1192. align-items: center;
  1193. justify-content: space-between;
  1194. gap: 12px;
  1195. }
  1196. .template-card-meta span {
  1197. color: var(--base-color);
  1198. font-size: 12px;
  1199. font-weight: 800;
  1200. text-transform: uppercase;
  1201. }
  1202. .template-card h3 {
  1203. margin: 12px 0 8px;
  1204. color: var(--dark-gray);
  1205. font-size: 18px;
  1206. font-weight: 800;
  1207. line-height: 1.35;
  1208. }
  1209. .template-card h3 a {
  1210. color: inherit;
  1211. text-decoration: none;
  1212. }
  1213. .template-card p {
  1214. min-height: 72px;
  1215. margin-bottom: 16px;
  1216. color: var(--medium-gray);
  1217. font-size: 14px;
  1218. line-height: 1.7;
  1219. }
  1220. .template-card-footer {
  1221. padding-top: 14px;
  1222. border-top: 1px solid rgba(44, 46, 60, 0.08);
  1223. }
  1224. .template-card-footer span,
  1225. .template-card-footer button {
  1226. font-size: 13px;
  1227. font-weight: 800;
  1228. }
  1229. .template-card-footer span:first-child {
  1230. color: var(--medium-gray);
  1231. }
  1232. .template-card-footer button {
  1233. padding: 0;
  1234. border: 0;
  1235. background: transparent;
  1236. color: var(--base-color);
  1237. cursor: pointer;
  1238. }
  1239. .simulation-step-heading {
  1240. display: flex;
  1241. align-items: center;
  1242. gap: 16px;
  1243. }
  1244. .simulation-step-heading > span {
  1245. display: inline-flex;
  1246. align-items: center;
  1247. justify-content: center;
  1248. width: 42px;
  1249. height: 42px;
  1250. border-radius: 50%;
  1251. background-color: var(--base-color);
  1252. color: #fff;
  1253. font-size: 18px;
  1254. font-weight: 800;
  1255. flex: 0 0 42px;
  1256. }
  1257. .simulation-choice-grid {
  1258. display: grid;
  1259. grid-template-columns: repeat(2, minmax(0, 1fr));
  1260. gap: 16px;
  1261. }
  1262. .simulation-choice-card {
  1263. position: relative;
  1264. min-height: 150px;
  1265. padding: 22px;
  1266. border: 2px solid rgba(44, 46, 60, 0.08);
  1267. border-radius: 8px;
  1268. background-color: #f7f7f8;
  1269. cursor: pointer;
  1270. }
  1271. .simulation-choice-card input,
  1272. .simulation-photo-card input,
  1273. .simulation-template-card input {
  1274. position: absolute;
  1275. top: 14px;
  1276. right: 14px;
  1277. width: 18px;
  1278. height: 18px;
  1279. accent-color: var(--base-color);
  1280. z-index: 1;
  1281. }
  1282. .simulation-choice-card:has(input:checked),
  1283. .simulation-photo-card:has(input:checked),
  1284. .simulation-template-card:has(input:checked) {
  1285. border-color: var(--base-color);
  1286. background-color: #fff;
  1287. }
  1288. .simulation-choice-icon {
  1289. display: inline-flex;
  1290. align-items: center;
  1291. justify-content: center;
  1292. width: 42px;
  1293. height: 42px;
  1294. margin-bottom: 16px;
  1295. border-radius: 50%;
  1296. background-color: rgba(245, 126, 72, 0.12);
  1297. color: var(--base-color);
  1298. font-size: 20px;
  1299. }
  1300. .simulation-choice-card strong,
  1301. .simulation-choice-card small {
  1302. display: block;
  1303. }
  1304. .simulation-choice-card strong {
  1305. color: var(--dark-gray);
  1306. font-size: 17px;
  1307. font-weight: 800;
  1308. }
  1309. .simulation-choice-card small {
  1310. margin-top: 8px;
  1311. color: var(--medium-gray);
  1312. font-size: 14px;
  1313. line-height: 1.7;
  1314. }
  1315. .simulation-choice-card.is-static {
  1316. min-height: auto;
  1317. cursor: default;
  1318. grid-column: 1 / -1;
  1319. }
  1320. .simulation-note-box {
  1321. display: flex;
  1322. align-items: flex-start;
  1323. gap: 12px;
  1324. padding: 16px 18px;
  1325. border-radius: 8px;
  1326. background-color: rgba(245, 126, 72, 0.08);
  1327. color: var(--dark-gray);
  1328. font-size: 15px;
  1329. line-height: 1.7;
  1330. }
  1331. .simulation-note-box i {
  1332. margin-top: 4px;
  1333. color: var(--base-color);
  1334. }
  1335. .simulation-note-box a {
  1336. color: var(--base-color);
  1337. font-weight: 800;
  1338. text-decoration: underline;
  1339. text-underline-offset: 3px;
  1340. }
  1341. .simulation-selected-customer {
  1342. display: flex;
  1343. align-items: center;
  1344. gap: 16px;
  1345. padding: 18px;
  1346. border: 1px solid rgba(44, 46, 60, 0.08);
  1347. border-radius: 8px;
  1348. background-color: #fff;
  1349. }
  1350. .simulation-selected-customer[hidden] {
  1351. display: none;
  1352. }
  1353. .simulation-selected-customer img {
  1354. width: 64px;
  1355. height: 64px;
  1356. border-radius: 50%;
  1357. object-fit: cover;
  1358. flex: 0 0 64px;
  1359. }
  1360. .simulation-selected-customer > div {
  1361. flex: 1 1 auto;
  1362. }
  1363. .simulation-save-warning {
  1364. display: flex;
  1365. align-items: center;
  1366. gap: 10px;
  1367. padding: 14px 16px;
  1368. border-radius: 8px;
  1369. background-color: rgba(245, 126, 72, 0.12);
  1370. color: var(--dark-gray);
  1371. font-size: 14px;
  1372. font-weight: 700;
  1373. }
  1374. .simulation-save-warning[hidden] {
  1375. display: none;
  1376. }
  1377. .simulation-save-warning i {
  1378. color: var(--base-color);
  1379. font-size: 18px;
  1380. }
  1381. .simulation-photo-grid,
  1382. .simulation-template-grid {
  1383. display: grid;
  1384. grid-template-columns: repeat(4, minmax(0, 1fr));
  1385. gap: 16px;
  1386. }
  1387. .simulation-photo-upload {
  1388. position: relative;
  1389. overflow: hidden;
  1390. display: block;
  1391. max-width: 420px;
  1392. border: 1px dashed rgba(44, 46, 60, 0.22);
  1393. border-radius: 8px;
  1394. background-color: #f7f7f8;
  1395. cursor: pointer;
  1396. }
  1397. .simulation-photo-upload input {
  1398. position: absolute;
  1399. width: 1px;
  1400. height: 1px;
  1401. opacity: 0;
  1402. pointer-events: none;
  1403. }
  1404. .simulation-photo-upload img {
  1405. width: 100%;
  1406. aspect-ratio: 4 / 3;
  1407. object-fit: cover;
  1408. display: block;
  1409. }
  1410. .simulation-photo-upload > span {
  1411. position: absolute;
  1412. left: 16px;
  1413. right: 16px;
  1414. bottom: 16px;
  1415. min-height: 42px;
  1416. display: inline-flex;
  1417. align-items: center;
  1418. justify-content: center;
  1419. border-radius: 21px;
  1420. background-color: rgba(255, 255, 255, 0.94);
  1421. color: var(--dark-gray);
  1422. font-size: 14px;
  1423. font-weight: 800;
  1424. }
  1425. .simulation-template-grid {
  1426. grid-template-columns: repeat(6, minmax(0, 1fr));
  1427. }
  1428. .simulation-template-tabs {
  1429. display: grid;
  1430. grid-template-columns: repeat(2, minmax(0, 1fr));
  1431. gap: 14px;
  1432. }
  1433. .simulation-template-tabs label {
  1434. position: relative;
  1435. min-height: 54px;
  1436. display: flex;
  1437. align-items: center;
  1438. padding: 0 18px;
  1439. border: 2px solid transparent;
  1440. border-radius: 8px;
  1441. background-color: #f7f7f8;
  1442. color: var(--dark-gray);
  1443. cursor: pointer;
  1444. }
  1445. .simulation-template-tabs input {
  1446. width: 18px;
  1447. height: 18px;
  1448. margin-right: 10px;
  1449. accent-color: var(--base-color);
  1450. }
  1451. .simulation-template-tabs span {
  1452. display: inline-flex;
  1453. align-items: center;
  1454. gap: 8px;
  1455. font-size: 14px;
  1456. font-weight: 800;
  1457. }
  1458. .simulation-template-tabs i {
  1459. color: var(--base-color);
  1460. font-size: 17px;
  1461. }
  1462. .simulation-template-tabs label:has(input:checked) {
  1463. border-color: var(--base-color);
  1464. background-color: #fff7f5;
  1465. }
  1466. .simulation-system-template-grid {
  1467. grid-template-columns: repeat(6, minmax(0, 1fr));
  1468. }
  1469. .simulation-aftercare-grid {
  1470. grid-template-columns: repeat(3, minmax(0, 1fr));
  1471. }
  1472. .simulation-photo-card,
  1473. .simulation-template-card {
  1474. position: relative;
  1475. overflow: hidden;
  1476. border: 2px solid transparent;
  1477. border-radius: 8px;
  1478. background-color: #f7f7f8;
  1479. cursor: pointer;
  1480. }
  1481. .simulation-photo-card img,
  1482. .simulation-template-card img {
  1483. width: 100%;
  1484. aspect-ratio: 4 / 5;
  1485. object-fit: cover;
  1486. display: block;
  1487. }
  1488. .simulation-photo-card span,
  1489. .simulation-template-card span {
  1490. display: block;
  1491. padding: 14px;
  1492. color: var(--dark-gray);
  1493. font-size: 14px;
  1494. font-weight: 800;
  1495. }
  1496. .simulation-upload-card input[type="file"] {
  1497. position: absolute;
  1498. width: 1px;
  1499. height: 1px;
  1500. opacity: 0;
  1501. pointer-events: none;
  1502. }
  1503. .simulation-count-badge {
  1504. display: inline-flex;
  1505. align-items: center;
  1506. min-height: 34px;
  1507. padding: 0 14px;
  1508. border-radius: 17px;
  1509. background-color: rgba(245, 126, 72, 0.12);
  1510. color: var(--base-color);
  1511. font-size: 13px;
  1512. font-weight: 800;
  1513. }
  1514. .simulation-template-card:has(input:disabled) {
  1515. opacity: 0.45;
  1516. cursor: not-allowed;
  1517. }
  1518. .simulation-result-layout {
  1519. display: grid;
  1520. grid-template-columns: 300px minmax(0, 1fr);
  1521. gap: 24px;
  1522. align-items: start;
  1523. }
  1524. .simulation-original-card {
  1525. overflow: hidden;
  1526. border-radius: 8px;
  1527. background-color: #f7f7f8;
  1528. }
  1529. .simulation-original-card img {
  1530. width: 100%;
  1531. aspect-ratio: 4 / 5;
  1532. object-fit: cover;
  1533. display: block;
  1534. }
  1535. .simulation-result-grid {
  1536. display: grid;
  1537. grid-template-columns: repeat(2, minmax(0, 1fr));
  1538. gap: 20px;
  1539. }
  1540. .simulation-result-card {
  1541. position: relative;
  1542. overflow: hidden;
  1543. border: 2px solid transparent;
  1544. border-radius: 8px;
  1545. background-color: #f7f7f8;
  1546. }
  1547. .simulation-result-card:hover {
  1548. border-color: rgba(245, 126, 72, 0.35);
  1549. box-shadow: 0 16px 36px rgba(44, 46, 60, 0.12);
  1550. }
  1551. .simulation-result-card > a {
  1552. display: block;
  1553. overflow: hidden;
  1554. }
  1555. .simulation-result-image {
  1556. width: 100%;
  1557. aspect-ratio: 4 / 3;
  1558. object-fit: cover;
  1559. display: block;
  1560. transition: transform 0.25s ease;
  1561. }
  1562. .simulation-result-card > a:hover .simulation-result-image {
  1563. transform: scale(1.03);
  1564. }
  1565. .simulation-compare-images {
  1566. display: grid;
  1567. grid-template-columns: repeat(2, minmax(0, 1fr));
  1568. gap: 2px;
  1569. background-color: rgba(44, 46, 60, 0.08);
  1570. }
  1571. .simulation-compare-images img {
  1572. width: 100%;
  1573. aspect-ratio: 4 / 5;
  1574. object-fit: cover;
  1575. display: block;
  1576. }
  1577. .simulation-result-body {
  1578. padding: 18px;
  1579. }
  1580. .simulation-result-body h3 {
  1581. margin: 12px 0 8px;
  1582. color: var(--dark-gray);
  1583. font-size: 18px;
  1584. font-weight: 800;
  1585. line-height: 1.35;
  1586. }
  1587. .simulation-result-body p {
  1588. margin-bottom: 16px;
  1589. color: var(--medium-gray);
  1590. font-size: 14px;
  1591. line-height: 1.7;
  1592. }
  1593. .simulation-result-card-loading {
  1594. display: block;
  1595. width: 36px;
  1596. height: 36px;
  1597. margin: 12px 0 10px;
  1598. object-fit: contain;
  1599. }
  1600. .simulation-result-actions {
  1601. display: flex;
  1602. align-items: center;
  1603. justify-content: flex-start;
  1604. flex-wrap: wrap;
  1605. gap: 8px;
  1606. padding-top: 14px;
  1607. border-top: 1px solid rgba(44, 46, 60, 0.08);
  1608. }
  1609. .simulation-result-actions .btn {
  1610. margin-bottom: 0;
  1611. }
  1612. .simulation-aftercare-layout {
  1613. display: grid;
  1614. grid-template-columns: 300px minmax(0, 1fr);
  1615. gap: 24px;
  1616. align-items: start;
  1617. }
  1618. .simulation-recommendation-grid {
  1619. display: grid;
  1620. grid-template-columns: repeat(3, minmax(0, 1fr));
  1621. gap: 24px;
  1622. }
  1623. .simulation-date-field {
  1624. display: grid;
  1625. gap: 10px;
  1626. }
  1627. .simulation-date-field span {
  1628. color: var(--dark-gray);
  1629. font-size: 14px;
  1630. font-weight: 800;
  1631. }
  1632. .simulation-date-field input {
  1633. width: 100%;
  1634. min-height: 52px;
  1635. padding: 0 16px;
  1636. border: 1px solid rgba(44, 46, 60, 0.08);
  1637. border-radius: 8px;
  1638. background-color: #f7f7f8;
  1639. color: var(--dark-gray);
  1640. font-size: 15px;
  1641. font-weight: 700;
  1642. }
  1643. .simulation-service-list {
  1644. display: grid;
  1645. gap: 12px;
  1646. }
  1647. .simulation-service-list label {
  1648. display: flex;
  1649. align-items: center;
  1650. gap: 12px;
  1651. min-height: 48px;
  1652. padding: 0 14px;
  1653. border: 1px solid rgba(44, 46, 60, 0.08);
  1654. border-radius: 8px;
  1655. background-color: #f7f7f8;
  1656. color: var(--dark-gray);
  1657. font-size: 14px;
  1658. font-weight: 800;
  1659. cursor: pointer;
  1660. }
  1661. .simulation-service-list input {
  1662. width: 18px;
  1663. height: 18px;
  1664. accent-color: var(--base-color);
  1665. flex: 0 0 18px;
  1666. }
  1667. .simulation-service-list label:has(input:checked) {
  1668. border-color: var(--base-color);
  1669. background-color: #fff;
  1670. }
  1671. .simulation-edit-layout {
  1672. display: grid;
  1673. grid-template-columns: 340px minmax(0, 1fr);
  1674. gap: 24px;
  1675. align-items: start;
  1676. }
  1677. .simulation-edit-grid {
  1678. display: grid;
  1679. grid-template-columns: repeat(2, minmax(0, 1fr));
  1680. gap: 18px;
  1681. }
  1682. .simulation-edit-control.is-wide {
  1683. grid-column: 1 / -1;
  1684. }
  1685. .simulation-edit-control label {
  1686. display: block;
  1687. margin-bottom: 10px;
  1688. color: var(--dark-gray);
  1689. font-size: 14px;
  1690. font-weight: 800;
  1691. }
  1692. .simulation-edit-upload-button {
  1693. position: relative;
  1694. display: flex;
  1695. align-items: center;
  1696. justify-content: center;
  1697. gap: 10px;
  1698. min-height: 48px;
  1699. padding: 0 16px;
  1700. border: 1px dashed rgba(44, 46, 60, 0.22);
  1701. border-radius: 8px;
  1702. background-color: #f7f7f8;
  1703. color: var(--dark-gray);
  1704. font-size: 14px;
  1705. font-weight: 800;
  1706. cursor: pointer;
  1707. }
  1708. .simulation-edit-upload-button input {
  1709. position: absolute;
  1710. width: 1px;
  1711. height: 1px;
  1712. opacity: 0;
  1713. pointer-events: none;
  1714. }
  1715. .simulation-edit-upload-button i {
  1716. color: var(--base-color);
  1717. font-size: 18px;
  1718. }
  1719. .simulation-preset-grid {
  1720. display: grid;
  1721. grid-template-columns: repeat(3, minmax(0, 1fr));
  1722. gap: 12px;
  1723. }
  1724. .simulation-preset-grid label {
  1725. position: relative;
  1726. min-height: 82px;
  1727. padding: 14px;
  1728. border: 2px solid rgba(44, 46, 60, 0.08);
  1729. border-radius: 8px;
  1730. background-color: #f7f7f8;
  1731. cursor: pointer;
  1732. }
  1733. .simulation-preset-grid input {
  1734. position: absolute;
  1735. top: 12px;
  1736. right: 12px;
  1737. width: 16px;
  1738. height: 16px;
  1739. accent-color: var(--base-color);
  1740. }
  1741. .simulation-preset-grid label:has(input:checked) {
  1742. border-color: var(--base-color);
  1743. background-color: #fff;
  1744. }
  1745. .simulation-preset-grid strong,
  1746. .simulation-preset-grid small {
  1747. display: block;
  1748. }
  1749. .simulation-preset-grid strong {
  1750. color: var(--dark-gray);
  1751. font-size: 14px;
  1752. font-weight: 800;
  1753. }
  1754. .simulation-preset-grid small {
  1755. margin-top: 6px;
  1756. color: var(--medium-gray);
  1757. font-size: 12px;
  1758. line-height: 1.5;
  1759. }
  1760. .simulation-preset-grid.color label {
  1761. min-height: 70px;
  1762. display: flex;
  1763. align-items: center;
  1764. gap: 10px;
  1765. }
  1766. .simulation-preset-grid.color span {
  1767. width: 24px;
  1768. height: 24px;
  1769. border-radius: 50%;
  1770. background-color: var(--swatch);
  1771. box-shadow: inset 0 0 0 1px rgba(44, 46, 60, 0.14);
  1772. flex: 0 0 24px;
  1773. }
  1774. .simulation-slider-field {
  1775. display: grid;
  1776. grid-template-columns: auto minmax(0, 1fr) auto;
  1777. align-items: center;
  1778. gap: 12px;
  1779. min-height: 52px;
  1780. padding: 0 16px;
  1781. border: 1px solid rgba(44, 46, 60, 0.08);
  1782. border-radius: 8px;
  1783. background-color: #f7f7f8;
  1784. }
  1785. .simulation-slider-field span {
  1786. color: var(--medium-gray);
  1787. font-size: 13px;
  1788. font-weight: 800;
  1789. }
  1790. .simulation-slider-field input {
  1791. width: 100%;
  1792. accent-color: var(--base-color);
  1793. }
  1794. .simulation-tune-grid {
  1795. display: grid;
  1796. grid-template-columns: repeat(4, minmax(0, 1fr));
  1797. gap: 16px;
  1798. }
  1799. .simulation-tune-grid label > span {
  1800. display: block;
  1801. margin-bottom: 10px;
  1802. color: var(--dark-gray);
  1803. font-size: 14px;
  1804. font-weight: 800;
  1805. }
  1806. .template-upload-box {
  1807. position: relative;
  1808. overflow: hidden;
  1809. display: block;
  1810. border: 1px dashed rgba(44, 46, 60, 0.22);
  1811. border-radius: 8px;
  1812. background-color: #f7f7f8;
  1813. cursor: pointer;
  1814. }
  1815. .template-upload-box input,
  1816. .template-background-upload input {
  1817. position: absolute;
  1818. width: 1px;
  1819. height: 1px;
  1820. opacity: 0;
  1821. pointer-events: none;
  1822. }
  1823. .template-upload-box img {
  1824. width: 100%;
  1825. aspect-ratio: 4 / 5;
  1826. object-fit: cover;
  1827. display: block;
  1828. }
  1829. .template-upload-box > span {
  1830. position: absolute;
  1831. left: 16px;
  1832. right: 16px;
  1833. bottom: 16px;
  1834. min-height: 42px;
  1835. display: inline-flex;
  1836. align-items: center;
  1837. justify-content: center;
  1838. gap: 8px;
  1839. border-radius: 21px;
  1840. background-color: rgba(255, 255, 255, 0.94);
  1841. color: var(--dark-gray);
  1842. font-size: 14px;
  1843. font-weight: 800;
  1844. }
  1845. .template-option-grid {
  1846. display: grid;
  1847. grid-template-columns: repeat(4, minmax(0, 1fr));
  1848. gap: 16px;
  1849. }
  1850. .template-source-toggle {
  1851. display: flex;
  1852. flex-wrap: wrap;
  1853. gap: 8px;
  1854. margin-bottom: 25px;
  1855. }
  1856. .template-hidden-file {
  1857. position: absolute;
  1858. width: 1px;
  1859. height: 1px;
  1860. opacity: 0;
  1861. pointer-events: none;
  1862. }
  1863. .template-option-card {
  1864. position: relative;
  1865. overflow: hidden;
  1866. border: 2px solid transparent;
  1867. border-radius: 8px;
  1868. background-color: #f7f7f8;
  1869. cursor: pointer;
  1870. }
  1871. .template-option-card input {
  1872. position: absolute;
  1873. top: 12px;
  1874. right: 12px;
  1875. width: 18px;
  1876. height: 18px;
  1877. accent-color: var(--base-color);
  1878. z-index: 1;
  1879. }
  1880. .template-option-card img {
  1881. width: 100%;
  1882. aspect-ratio: 4 / 5;
  1883. object-fit: cover;
  1884. display: block;
  1885. }
  1886. .template-option-card span {
  1887. display: block;
  1888. padding: 14px;
  1889. color: var(--dark-gray);
  1890. font-size: 14px;
  1891. font-weight: 800;
  1892. }
  1893. .template-option-card:has(input:checked) {
  1894. border-color: var(--base-color);
  1895. }
  1896. .template-choice-list {
  1897. display: grid;
  1898. gap: 12px;
  1899. }
  1900. .template-choice-list label,
  1901. .template-background-upload {
  1902. position: relative;
  1903. display: flex;
  1904. align-items: center;
  1905. gap: 12px;
  1906. min-height: 52px;
  1907. padding: 0 16px;
  1908. border: 1px solid rgba(44, 46, 60, 0.08);
  1909. border-radius: 8px;
  1910. background-color: #f7f7f8;
  1911. color: var(--dark-gray);
  1912. font-size: 14px;
  1913. font-weight: 800;
  1914. cursor: pointer;
  1915. }
  1916. .template-choice-list input {
  1917. width: 18px;
  1918. height: 18px;
  1919. accent-color: var(--base-color);
  1920. flex: 0 0 18px;
  1921. }
  1922. .template-background-upload i {
  1923. color: var(--base-color);
  1924. font-size: 18px;
  1925. }
  1926. .template-image-upload {
  1927. min-height: 78px;
  1928. padding: 12px 16px;
  1929. }
  1930. .template-image-upload img {
  1931. width: 56px;
  1932. height: 56px;
  1933. margin-left: auto;
  1934. border-radius: 8px;
  1935. object-fit: cover;
  1936. flex: 0 0 56px;
  1937. }
  1938. .template-detail-preview {
  1939. overflow: hidden;
  1940. border-radius: 8px;
  1941. background-color: #f7f7f8;
  1942. }
  1943. .template-detail-preview img {
  1944. width: 100%;
  1945. aspect-ratio: 4 / 5;
  1946. object-fit: cover;
  1947. display: block;
  1948. }
  1949. .template-status-badge {
  1950. display: inline-flex;
  1951. align-items: center;
  1952. justify-content: center;
  1953. min-height: 28px;
  1954. padding: 0 12px;
  1955. border-radius: 14px;
  1956. background-color: rgba(245, 126, 72, 0.12);
  1957. color: var(--base-color);
  1958. font-size: 12px;
  1959. font-weight: 800;
  1960. line-height: 1;
  1961. }
  1962. .template-status-badge.is-soft {
  1963. background-color: rgba(44, 46, 60, 0.08);
  1964. color: var(--dark-gray);
  1965. }
  1966. .template-detail-summary {
  1967. display: grid;
  1968. gap: 12px;
  1969. }
  1970. .template-detail-summary div {
  1971. display: flex;
  1972. align-items: center;
  1973. justify-content: space-between;
  1974. gap: 16px;
  1975. padding-bottom: 12px;
  1976. border-bottom: 1px solid rgba(44, 46, 60, 0.08);
  1977. }
  1978. .template-detail-summary div:last-child {
  1979. padding-bottom: 0;
  1980. border-bottom: 0;
  1981. }
  1982. .template-detail-summary span {
  1983. color: var(--medium-gray);
  1984. font-size: 14px;
  1985. font-weight: 700;
  1986. }
  1987. .template-detail-summary strong {
  1988. color: var(--dark-gray);
  1989. font-size: 14px;
  1990. font-weight: 800;
  1991. text-align: right;
  1992. }
  1993. .template-task-steps {
  1994. display: grid;
  1995. gap: 16px;
  1996. }
  1997. .template-task-steps div {
  1998. padding: 18px;
  1999. border: 1px solid rgba(44, 46, 60, 0.08);
  2000. border-radius: 8px;
  2001. background-color: #f7f7f8;
  2002. }
  2003. .template-task-steps span,
  2004. .template-task-assets span {
  2005. display: block;
  2006. margin-bottom: 8px;
  2007. color: var(--base-color);
  2008. font-size: 12px;
  2009. font-weight: 800;
  2010. text-transform: uppercase;
  2011. }
  2012. .template-task-steps strong {
  2013. display: block;
  2014. color: var(--dark-gray);
  2015. font-size: 18px;
  2016. font-weight: 800;
  2017. }
  2018. .template-task-steps em {
  2019. display: inline-block;
  2020. margin: 10px 0;
  2021. color: #6e8068;
  2022. font-size: 12px;
  2023. font-style: normal;
  2024. font-weight: 800;
  2025. }
  2026. .template-task-steps p {
  2027. margin-bottom: 0;
  2028. color: var(--medium-gray);
  2029. }
  2030. .template-task-assets {
  2031. display: grid;
  2032. grid-template-columns: repeat(4, minmax(0, 1fr));
  2033. gap: 18px;
  2034. }
  2035. .template-task-assets div {
  2036. padding: 16px;
  2037. border-radius: 8px;
  2038. background-color: #f7f7f8;
  2039. }
  2040. .template-task-assets img {
  2041. width: 100%;
  2042. aspect-ratio: 1 / 1;
  2043. object-fit: cover;
  2044. border-radius: 8px;
  2045. display: block;
  2046. }
  2047. .template-task-layout {
  2048. display: grid;
  2049. grid-template-columns: 340px minmax(0, 1fr);
  2050. gap: 24px;
  2051. align-items: start;
  2052. }
  2053. .template-task-page-head,
  2054. .template-task-result-header {
  2055. display: flex;
  2056. align-items: flex-start;
  2057. justify-content: space-between;
  2058. gap: 24px;
  2059. }
  2060. .template-task-head-actions {
  2061. display: flex;
  2062. flex-wrap: wrap;
  2063. justify-content: flex-end;
  2064. gap: 10px;
  2065. flex: 0 0 auto;
  2066. }
  2067. .template-task-result-layout {
  2068. display: grid;
  2069. grid-template-columns: minmax(0, 1fr) 320px;
  2070. gap: 24px;
  2071. align-items: start;
  2072. }
  2073. .template-task-detail-layout {
  2074. display: grid;
  2075. grid-template-columns: minmax(320px, 0.85fr) minmax(0, 1.15fr);
  2076. gap: 24px;
  2077. align-items: start;
  2078. }
  2079. .template-task-cover-preview {
  2080. width: 100%;
  2081. max-height: 520px;
  2082. object-fit: contain;
  2083. display: block;
  2084. margin-top: 24px;
  2085. border-radius: 8px;
  2086. background-color: #f7f7f8;
  2087. }
  2088. .template-task-info-panel {
  2089. position: sticky;
  2090. top: 96px;
  2091. }
  2092. .template-task-summary-panel .btn {
  2093. width: 100%;
  2094. }
  2095. .template-task-state-pill {
  2096. display: flex;
  2097. align-items: center;
  2098. justify-content: space-between;
  2099. gap: 12px;
  2100. padding: 16px;
  2101. border-radius: 8px;
  2102. background-color: #f3f7f0;
  2103. margin-bottom: 0;
  2104. min-width: 190px;
  2105. }
  2106. .template-task-state-pill span {
  2107. color: var(--medium-gray);
  2108. font-size: 13px;
  2109. font-weight: 800;
  2110. }
  2111. .template-task-state-pill strong {
  2112. color: #58724d;
  2113. font-size: 16px;
  2114. font-weight: 900;
  2115. }
  2116. .template-task-state-pill.is-processing {
  2117. background-color: #fff7df;
  2118. }
  2119. .template-task-state-pill.is-processing strong {
  2120. color: #9b6a21;
  2121. }
  2122. .template-task-demo .template-task-result-layout {
  2123. display: none;
  2124. }
  2125. .template-task-demo.is-generating .template-task-edit-section,
  2126. .template-task-demo.is-generating .template-task-head-actions a[href="#template-edit-section"] {
  2127. display: none;
  2128. }
  2129. .template-task-history {
  2130. display: block;
  2131. }
  2132. .template-task-history summary {
  2133. display: flex;
  2134. align-items: center;
  2135. justify-content: space-between;
  2136. gap: 18px;
  2137. padding: 18px 22px;
  2138. border-radius: 8px;
  2139. background-color: #fff;
  2140. box-shadow: 0 10px 35px rgba(44, 46, 60, 0.08);
  2141. cursor: pointer;
  2142. list-style: none;
  2143. }
  2144. .template-task-history summary::-webkit-details-marker {
  2145. display: none;
  2146. }
  2147. .template-task-history summary span {
  2148. color: var(--base-color);
  2149. font-size: 12px;
  2150. font-weight: 900;
  2151. text-transform: uppercase;
  2152. }
  2153. .template-task-history summary strong {
  2154. color: var(--dark-gray);
  2155. font-size: 17px;
  2156. font-weight: 900;
  2157. }
  2158. .template-task-history summary em {
  2159. color: var(--medium-gray);
  2160. font-size: 13px;
  2161. font-style: normal;
  2162. font-weight: 800;
  2163. }
  2164. .template-task-history[open] summary {
  2165. margin-bottom: 24px;
  2166. }
  2167. .template-task-generating-visual {
  2168. display: flex;
  2169. align-items: center;
  2170. gap: 18px;
  2171. padding: 18px;
  2172. margin-bottom: 18px;
  2173. border-radius: 8px;
  2174. background-color: #fffaf0;
  2175. border: 1px solid rgba(155, 106, 33, 0.16);
  2176. }
  2177. .template-task-generating-visual strong {
  2178. display: block;
  2179. color: var(--dark-gray);
  2180. font-size: 16px;
  2181. font-weight: 900;
  2182. margin-bottom: 4px;
  2183. }
  2184. .template-task-generating-visual p {
  2185. margin-bottom: 0;
  2186. color: var(--medium-gray);
  2187. font-size: 13px;
  2188. line-height: 1.6;
  2189. }
  2190. .template-task-generating-gif {
  2191. position: relative;
  2192. width: 72px;
  2193. height: 72px;
  2194. flex: 0 0 72px;
  2195. border-radius: 50%;
  2196. background: radial-gradient(circle, rgba(255,255,255,0.96) 34%, rgba(246,218,157,0.68) 35%, rgba(246,218,157,0.1) 68%);
  2197. overflow: hidden;
  2198. }
  2199. .template-task-generating-gif:before {
  2200. content: "";
  2201. position: absolute;
  2202. inset: 7px;
  2203. border-radius: 50%;
  2204. border: 3px solid rgba(155, 106, 33, 0.15);
  2205. border-top-color: #9b6a21;
  2206. animation: template-task-spin 1.05s linear infinite;
  2207. }
  2208. .template-task-generating-gif span {
  2209. position: absolute;
  2210. width: 8px;
  2211. height: 8px;
  2212. border-radius: 50%;
  2213. background-color: #9b6a21;
  2214. opacity: 0.35;
  2215. animation: template-task-pulse 1.4s ease-in-out infinite;
  2216. }
  2217. .template-task-generating-gif span:nth-child(1) {
  2218. left: 20px;
  2219. top: 22px;
  2220. }
  2221. .template-task-generating-gif span:nth-child(2) {
  2222. right: 18px;
  2223. top: 34px;
  2224. animation-delay: 0.18s;
  2225. }
  2226. .template-task-generating-gif span:nth-child(3) {
  2227. left: 32px;
  2228. bottom: 16px;
  2229. animation-delay: 0.36s;
  2230. }
  2231. .template-task-demo.is-complete .template-task-generating-visual {
  2232. display: none;
  2233. }
  2234. .template-task-demo.is-generating .template-task-detail-layout {
  2235. grid-template-columns: minmax(300px, 0.8fr) minmax(0, 1.2fr);
  2236. gap: 16px;
  2237. }
  2238. .template-task-demo.is-generating .template-task-detail-layout .workbench-panel {
  2239. padding: 20px !important;
  2240. }
  2241. .template-task-demo.is-generating .template-task-detail-layout h2 {
  2242. font-size: 19px !important;
  2243. margin-bottom: 14px !important;
  2244. }
  2245. .template-task-demo.is-generating .template-task-step-grid {
  2246. gap: 10px;
  2247. }
  2248. .template-task-demo.is-generating .template-task-step-card {
  2249. padding: 12px;
  2250. }
  2251. .template-task-demo.is-generating .template-task-step-header strong {
  2252. font-size: 14px;
  2253. }
  2254. .template-task-demo.is-generating .template-task-step-header span {
  2255. font-size: 10px;
  2256. }
  2257. .template-task-demo.is-generating .template-task-step-card p {
  2258. margin-top: 6px;
  2259. font-size: 12px;
  2260. line-height: 1.5;
  2261. }
  2262. .template-task-demo.is-generating .template-task-resource-grid {
  2263. grid-template-columns: repeat(4, minmax(0, 1fr));
  2264. gap: 10px;
  2265. }
  2266. .template-task-demo.is-generating .template-task-resource-card div {
  2267. padding: 8px;
  2268. }
  2269. .template-task-demo.is-generating .template-task-resource-card span {
  2270. font-size: 11px;
  2271. }
  2272. @keyframes template-task-spin {
  2273. to {
  2274. transform: rotate(360deg);
  2275. }
  2276. }
  2277. @keyframes template-task-pulse {
  2278. 0%, 100% {
  2279. transform: scale(0.8);
  2280. opacity: 0.28;
  2281. }
  2282. 50% {
  2283. transform: scale(1.25);
  2284. opacity: 0.76;
  2285. }
  2286. }
  2287. .template-task-headline {
  2288. padding-bottom: 22px;
  2289. margin-bottom: 22px;
  2290. border-bottom: 1px solid rgba(44, 46, 60, 0.08);
  2291. }
  2292. .template-task-meta-list {
  2293. display: grid;
  2294. gap: 14px;
  2295. }
  2296. .template-task-meta-list div {
  2297. display: flex;
  2298. align-items: center;
  2299. justify-content: space-between;
  2300. gap: 16px;
  2301. }
  2302. .template-task-meta-list span {
  2303. color: var(--medium-gray);
  2304. font-size: 13px;
  2305. font-weight: 800;
  2306. }
  2307. .template-task-meta-list strong {
  2308. color: var(--dark-gray);
  2309. font-size: 13px;
  2310. font-weight: 900;
  2311. text-align: right;
  2312. }
  2313. .template-task-step-grid {
  2314. display: grid;
  2315. gap: 18px;
  2316. }
  2317. .template-task-step-card {
  2318. padding: 18px;
  2319. border: 1px solid rgba(44, 46, 60, 0.08);
  2320. border-radius: 8px;
  2321. background-color: #f7f7f8;
  2322. }
  2323. .template-task-step-header {
  2324. display: flex;
  2325. align-items: flex-start;
  2326. justify-content: space-between;
  2327. gap: 14px;
  2328. }
  2329. .template-task-step-header strong {
  2330. color: var(--dark-gray);
  2331. font-size: 16px;
  2332. font-weight: 900;
  2333. }
  2334. .template-task-step-header span {
  2335. color: #6e8068;
  2336. font-size: 11px;
  2337. font-weight: 900;
  2338. white-space: nowrap;
  2339. }
  2340. .template-task-step-card p {
  2341. margin: 12px 0 0;
  2342. color: var(--medium-gray);
  2343. font-size: 14px;
  2344. }
  2345. .template-task-step-preview {
  2346. width: 100%;
  2347. max-height: 420px;
  2348. object-fit: contain;
  2349. display: block;
  2350. margin-top: 18px;
  2351. border-radius: 8px;
  2352. background-color: #fff;
  2353. }
  2354. .template-task-resource-grid {
  2355. display: grid;
  2356. grid-template-columns: repeat(4, minmax(0, 1fr));
  2357. gap: 16px;
  2358. margin-top: 0;
  2359. }
  2360. .template-task-resource-card {
  2361. overflow: hidden;
  2362. border-radius: 8px;
  2363. background-color: #f7f7f8;
  2364. }
  2365. .template-task-resource-card img {
  2366. width: 100%;
  2367. aspect-ratio: 4 / 3;
  2368. object-fit: cover;
  2369. display: block;
  2370. }
  2371. .template-task-resource-card div {
  2372. padding: 12px;
  2373. }
  2374. .template-task-resource-card span {
  2375. color: var(--base-color);
  2376. font-size: 12px;
  2377. font-weight: 900;
  2378. }
  2379. .template-task-bundle-note {
  2380. display: flex;
  2381. align-items: center;
  2382. justify-content: space-between;
  2383. gap: 12px;
  2384. margin-top: 24px;
  2385. padding: 16px;
  2386. border-radius: 8px;
  2387. background-color: #f3f7f0;
  2388. }
  2389. .template-task-bundle-note span,
  2390. .template-task-bundle-note a {
  2391. color: #58724d;
  2392. font-size: 14px;
  2393. font-weight: 900;
  2394. }
  2395. .template-task-edit-section {
  2396. scroll-margin-top: 96px;
  2397. }
  2398. .template-task-edit-head {
  2399. display: flex;
  2400. align-items: flex-start;
  2401. justify-content: space-between;
  2402. gap: 20px;
  2403. }
  2404. .template-task-edit-layout {
  2405. display: grid;
  2406. grid-template-columns: minmax(280px, 0.75fr) minmax(0, 1.25fr);
  2407. gap: 28px;
  2408. align-items: start;
  2409. }
  2410. .template-task-edit-section .customer-edit-actions {
  2411. background-color: #f7f7f8;
  2412. }
  2413. .template-delete-modal {
  2414. position: fixed;
  2415. z-index: 10020;
  2416. inset: 0;
  2417. display: grid;
  2418. place-items: center;
  2419. padding: 24px;
  2420. background-color: rgba(31, 36, 46, 0.42);
  2421. }
  2422. .template-delete-dialog {
  2423. width: min(460px, calc(100vw - 32px));
  2424. margin: 0;
  2425. padding: 28px;
  2426. border: 0;
  2427. border-radius: 8px;
  2428. background-color: #fff;
  2429. box-shadow: 0 24px 80px rgba(44, 46, 60, 0.22);
  2430. }
  2431. .template-delete-dialog .btn-base-color {
  2432. background-color: #b95d52;
  2433. border-color: #b95d52;
  2434. }
  2435. #delete-template-button {
  2436. color: #b95d52 !important;
  2437. }
  2438. .template-result-grid {
  2439. display: grid;
  2440. grid-template-columns: repeat(3, minmax(0, 1fr));
  2441. gap: 20px;
  2442. }
  2443. .template-result-card {
  2444. overflow: hidden;
  2445. border: 1px solid rgba(44, 46, 60, 0.08);
  2446. border-radius: 8px;
  2447. background-color: #fff;
  2448. }
  2449. .template-result-images {
  2450. display: grid;
  2451. grid-template-columns: repeat(2, minmax(0, 1fr));
  2452. gap: 2px;
  2453. background-color: rgba(44, 46, 60, 0.08);
  2454. }
  2455. .template-result-images img {
  2456. width: 100%;
  2457. aspect-ratio: 4 / 5;
  2458. object-fit: cover;
  2459. display: block;
  2460. }
  2461. .template-result-body {
  2462. padding: 18px;
  2463. }
  2464. .template-result-body > div {
  2465. display: flex;
  2466. align-items: center;
  2467. justify-content: space-between;
  2468. gap: 12px;
  2469. }
  2470. .template-result-body h3 {
  2471. margin: 14px 0 8px;
  2472. color: var(--dark-gray);
  2473. font-size: 18px;
  2474. font-weight: 800;
  2475. line-height: 1.35;
  2476. }
  2477. .template-result-body p {
  2478. margin-bottom: 0;
  2479. color: var(--medium-gray);
  2480. font-size: 14px;
  2481. line-height: 1.7;
  2482. }
  2483. .stylist-hairstyle-portfolio .portfolio-image img {
  2484. aspect-ratio: 4 / 5;
  2485. object-fit: cover;
  2486. display: block;
  2487. width: 100%;
  2488. }
  2489. .hairstyle-popup-cta-wrap {
  2490. padding-top: 16px;
  2491. text-align: center;
  2492. }
  2493. .hairstyle-popup-cta-wrap .hairstyle-popup-cta {
  2494. pointer-events: auto;
  2495. }
  2496. .portfolio-filter li button {
  2497. border: 0;
  2498. background: transparent;
  2499. padding: 0;
  2500. color: inherit;
  2501. font: inherit;
  2502. cursor: pointer;
  2503. }
  2504. .portfolio-filter li:hover button,
  2505. .portfolio-filter li:focus-within button,
  2506. .portfolio-filter li.active button {
  2507. color: var(--base-color);
  2508. }
  2509. .hairstyle-template-popup img.mfp-img {
  2510. max-height: calc(100vh - 160px) !important;
  2511. padding-bottom: 0;
  2512. }
  2513. .hairstyle-template-popup .mfp-figure:after {
  2514. display: none;
  2515. }
  2516. .hairstyle-template-popup .mfp-figure,
  2517. .hairstyle-template-popup .mfp-figure figure,
  2518. .hairstyle-template-popup .mfp-content {
  2519. background: transparent !important;
  2520. }
  2521. .hairstyle-template-popup .mfp-bottom-bar {
  2522. background: transparent !important;
  2523. position: static;
  2524. margin: 14px 0 0;
  2525. width: 100%;
  2526. }
  2527. .hairstyle-template-popup .mfp-title {
  2528. background: transparent !important;
  2529. padding-right: 0;
  2530. text-align: center;
  2531. }
  2532. .hairstyle-template-popup .hairstyle-popup-cta-wrap {
  2533. background: transparent !important;
  2534. }
  2535. /* top right bottom left */
  2536. .bottom-130px {
  2537. bottom: 130px;
  2538. }
  2539. .bottom-150px {
  2540. bottom: 150px;
  2541. }
  2542. .top-25 {
  2543. top: 25%!important;
  2544. }
  2545. /* height */
  2546. .h-64px {
  2547. height: 64px !important;
  2548. }
  2549. /* margin */
  2550. .margin-minus-95px-bottom {
  2551. margin-bottom: -95px;
  2552. }
  2553. /* border radius */
  2554. .border-radius-top-left{
  2555. border-radius: 10px 0 0 10px !important;
  2556. }
  2557. .border-color-transparent-dark {
  2558. border-color: rgba(31, 36, 46, 0.5) !important;
  2559. }
  2560. /* page title */
  2561. .page-title-extra-large h1 {
  2562. font-size: 4.063rem;
  2563. line-height: 4.375rem;
  2564. }
  2565. .page-title-extra-large h2 {
  2566. font-size: 16px;
  2567. line-height: 20px;
  2568. }
  2569. /* scrolling text */
  2570. .marquees-text {
  2571. word-break: normal;
  2572. }
  2573. /* review */
  2574. .review-star-icon i {
  2575. color: #ffae00;
  2576. }
  2577. /* process step style 05 */
  2578. .process-step-style-05 .progress-step-separator {
  2579. bottom: inherit;
  2580. height: 100%;
  2581. }
  2582. /* footer */
  2583. footer .footer-logo img {
  2584. max-height: 32px;
  2585. }
  2586. footer ul li {
  2587. margin-bottom: 0;
  2588. }
  2589. /* media query responsive */
  2590. @media (max-width: 1199px) {
  2591. .review-star-icon i {
  2592. letter-spacing: 2px;
  2593. }
  2594. .newsletter-style-02 input {
  2595. padding-left: 15px;
  2596. }
  2597. .customer-detail-hero {
  2598. grid-template-columns: 1fr;
  2599. }
  2600. .stylist-profile-manage-layout {
  2601. grid-template-columns: 1fr;
  2602. }
  2603. .stylist-live-template-grid {
  2604. grid-template-columns: 1fr;
  2605. }
  2606. .customer-photo-grid {
  2607. grid-template-columns: repeat(2, minmax(0, 1fr));
  2608. }
  2609. .template-grid {
  2610. grid-template-columns: repeat(2, minmax(0, 1fr));
  2611. }
  2612. .simulation-photo-grid,
  2613. .simulation-template-grid {
  2614. grid-template-columns: repeat(3, minmax(0, 1fr));
  2615. }
  2616. .simulation-result-layout,
  2617. .simulation-aftercare-layout {
  2618. grid-template-columns: 1fr;
  2619. }
  2620. .simulation-edit-layout {
  2621. grid-template-columns: 1fr;
  2622. }
  2623. .simulation-result-grid,
  2624. .simulation-tune-grid {
  2625. grid-template-columns: repeat(2, minmax(0, 1fr));
  2626. }
  2627. .simulation-preset-grid {
  2628. grid-template-columns: repeat(2, minmax(0, 1fr));
  2629. }
  2630. .simulation-aftercare-grid,
  2631. .simulation-recommendation-grid {
  2632. grid-template-columns: 1fr;
  2633. }
  2634. .template-option-grid {
  2635. grid-template-columns: repeat(2, minmax(0, 1fr));
  2636. }
  2637. .template-task-page-head,
  2638. .template-task-result-header {
  2639. align-items: flex-start;
  2640. flex-direction: column;
  2641. }
  2642. .template-task-head-actions {
  2643. justify-content: flex-start;
  2644. }
  2645. .template-task-result-layout,
  2646. .template-task-detail-layout,
  2647. .template-task-demo.is-generating .template-task-detail-layout,
  2648. .template-task-edit-layout {
  2649. grid-template-columns: 1fr;
  2650. }
  2651. .template-task-info-panel {
  2652. position: static;
  2653. }
  2654. .template-result-grid {
  2655. grid-template-columns: 1fr;
  2656. }
  2657. }
  2658. @media (max-width: 767px) {
  2659. .customer-detail-profile {
  2660. align-items: flex-start;
  2661. flex-direction: column;
  2662. }
  2663. .customer-detail-avatar {
  2664. width: 120px;
  2665. height: 120px;
  2666. flex-basis: 120px;
  2667. }
  2668. .customer-history-item {
  2669. grid-template-columns: 1fr;
  2670. gap: 8px;
  2671. }
  2672. .customer-detail-cta {
  2673. align-items: flex-start;
  2674. flex-direction: column;
  2675. }
  2676. .customer-edit-actions {
  2677. align-items: flex-start;
  2678. flex-direction: column;
  2679. }
  2680. .template-grid {
  2681. grid-template-columns: 1fr;
  2682. }
  2683. .simulation-choice-grid,
  2684. .simulation-photo-grid,
  2685. .simulation-template-grid,
  2686. .simulation-result-grid,
  2687. .simulation-edit-grid,
  2688. .simulation-preset-grid,
  2689. .simulation-aftercare-grid,
  2690. .simulation-recommendation-grid,
  2691. .simulation-tune-grid {
  2692. grid-template-columns: 1fr;
  2693. }
  2694. .simulation-selected-customer {
  2695. align-items: flex-start;
  2696. flex-direction: column;
  2697. }
  2698. .template-option-grid {
  2699. grid-template-columns: 1fr;
  2700. }
  2701. .template-task-head-actions {
  2702. width: 100%;
  2703. flex-direction: column;
  2704. }
  2705. .template-task-head-actions .btn {
  2706. width: 100%;
  2707. }
  2708. .template-task-resource-grid {
  2709. grid-template-columns: 1fr;
  2710. }
  2711. .template-task-demo.is-generating .template-task-resource-grid {
  2712. grid-template-columns: repeat(2, minmax(0, 1fr));
  2713. }
  2714. .template-task-generating-visual {
  2715. align-items: flex-start;
  2716. flex-direction: column;
  2717. }
  2718. .template-task-state-pill,
  2719. .template-task-step-header,
  2720. .template-task-meta-list div,
  2721. .template-task-edit-head,
  2722. .template-task-bundle-note {
  2723. align-items: flex-start;
  2724. flex-direction: column;
  2725. }
  2726. .template-result-body > div {
  2727. align-items: flex-start;
  2728. flex-direction: column;
  2729. }
  2730. }
  2731. @media (max-width: 575px) {
  2732. .hero-comparison-strip {
  2733. width: 100%;
  2734. gap: 12px;
  2735. }
  2736. .login-hero {
  2737. padding-top: 95px;
  2738. padding-bottom: 55px;
  2739. }
  2740. .login-header-link {
  2741. min-height: 30px !important;
  2742. height: 30px !important;
  2743. padding: 0 12px !important;
  2744. font-size: 12px;
  2745. }
  2746. .login-form-options {
  2747. align-items: flex-start;
  2748. flex-direction: column;
  2749. gap: 10px;
  2750. }
  2751. .stylist-workbench-top {
  2752. padding-top: 95px;
  2753. }
  2754. .workbench-list-item {
  2755. align-items: flex-start;
  2756. flex-direction: column;
  2757. }
  2758. .customer-profile-summary {
  2759. align-items: flex-start;
  2760. flex-direction: column;
  2761. }
  2762. .customer-simulation-batch-heading {
  2763. align-items: flex-start;
  2764. flex-direction: column;
  2765. }
  2766. .stylist-profile-hero {
  2767. padding-top: 100px;
  2768. padding-bottom: 55px;
  2769. }
  2770. .public-profile-actions {
  2771. margin-top: 0;
  2772. }
  2773. .public-profile-bottom-cta {
  2774. padding: 26px;
  2775. align-items: flex-start;
  2776. flex-direction: column;
  2777. }
  2778. header .header-icon .btn.btn-rounded.btn-small {
  2779. padding-left: 20px;
  2780. }
  2781. }
  2782. .aitori-invite-body {
  2783. overflow: hidden;
  2784. background: #f8f5ff;
  2785. }
  2786. .aitori-invite-page {
  2787. --video-shift-x: 0px;
  2788. --video-shift-y: 0px;
  2789. min-height: 100vh;
  2790. width: 100%;
  2791. position: relative;
  2792. overflow: hidden;
  2793. color: #2c2e3c;
  2794. background: #f8f5ff;
  2795. }
  2796. .aitori-invite-bg {
  2797. position: absolute;
  2798. inset: 0;
  2799. width: 100%;
  2800. height: 100%;
  2801. object-fit: cover;
  2802. transform: translate3d(var(--video-shift-x), var(--video-shift-y), 0) scale(1.09);
  2803. filter: saturate(1.05) contrast(1.04) brightness(1.02);
  2804. transition: transform 0.12s ease-out;
  2805. }
  2806. .aitori-invite-shell {
  2807. min-height: 100vh;
  2808. width: 100%;
  2809. padding: 28px clamp(22px, 4vw, 58px) 26px;
  2810. position: relative;
  2811. z-index: 2;
  2812. display: flex;
  2813. flex-direction: column;
  2814. }
  2815. .aitori-invite-nav {
  2816. display: flex;
  2817. align-items: center;
  2818. justify-content: space-between;
  2819. gap: 20px;
  2820. }
  2821. .aitori-invite-logo img {
  2822. width: 148px;
  2823. height: auto;
  2824. display: block;
  2825. }
  2826. .aitori-invite-links {
  2827. display: flex;
  2828. align-items: center;
  2829. gap: 30px;
  2830. }
  2831. .aitori-invite-links a {
  2832. color: #2c2e3c;
  2833. font-size: 13px;
  2834. font-weight: 800;
  2835. letter-spacing: 0.08em;
  2836. text-transform: uppercase;
  2837. }
  2838. .aitori-invite-links a:hover {
  2839. color: var(--base-color);
  2840. }
  2841. .aitori-invite-menu-button {
  2842. width: 42px;
  2843. height: 42px;
  2844. border: 1px solid rgba(44, 46, 60, 0.18);
  2845. border-radius: 50%;
  2846. background: rgba(255, 255, 255, 0.62);
  2847. color: #2c2e3c;
  2848. display: none;
  2849. align-items: center;
  2850. justify-content: center;
  2851. }
  2852. .aitori-invite-menu-button i {
  2853. font-size: 22px;
  2854. }
  2855. .aitori-invite-meta {
  2856. margin-top: clamp(34px, 5vh, 56px);
  2857. display: grid;
  2858. width: 100%;
  2859. max-width: none;
  2860. grid-template-columns: minmax(230px, 300px) minmax(230px, 300px);
  2861. grid-template-rows: repeat(2, auto);
  2862. justify-content: space-between;
  2863. gap: 12px clamp(28px, 6vw, 80px);
  2864. }
  2865. .aitori-invite-meta > div:nth-child(1),
  2866. .aitori-invite-meta > div:nth-child(2) {
  2867. grid-column: 1;
  2868. }
  2869. .aitori-invite-meta > div:nth-child(3),
  2870. .aitori-invite-meta > div:nth-child(4) {
  2871. grid-column: 2;
  2872. }
  2873. .aitori-invite-meta > div:nth-child(1),
  2874. .aitori-invite-meta > div:nth-child(3) {
  2875. grid-row: 1;
  2876. }
  2877. .aitori-invite-meta > div:nth-child(2),
  2878. .aitori-invite-meta > div:nth-child(4) {
  2879. grid-row: 2;
  2880. }
  2881. .aitori-invite-meta > div {
  2882. max-width: none;
  2883. position: relative;
  2884. overflow: hidden;
  2885. padding: 16px 16px 15px;
  2886. border: 0;
  2887. border-radius: 8px;
  2888. background: linear-gradient(145deg, rgba(255, 255, 255, 0.2), rgba(255, 255, 255, 0.07));
  2889. box-shadow: 0 18px 42px rgba(44, 46, 60, 0.04), inset 0 1px 0 rgba(255, 255, 255, 0.45), inset 0 -1px 0 rgba(255, 255, 255, 0.1);
  2890. backdrop-filter: blur(22px) saturate(1.35);
  2891. -webkit-backdrop-filter: blur(22px) saturate(1.35);
  2892. text-shadow: 0 1px 14px rgba(255, 255, 255, 0.76);
  2893. }
  2894. .aitori-invite-meta > div:before {
  2895. content: "";
  2896. position: absolute;
  2897. inset: 1px;
  2898. border-radius: 7px;
  2899. pointer-events: none;
  2900. background: linear-gradient(135deg, rgba(255, 255, 255, 0.28), transparent 34%, rgba(156, 112, 237, 0.07) 100%);
  2901. opacity: 0.62;
  2902. }
  2903. .aitori-invite-meta > div > * {
  2904. position: relative;
  2905. z-index: 1;
  2906. }
  2907. .aitori-invite-label,
  2908. .aitori-invite-kicker {
  2909. display: block;
  2910. margin-bottom: 12px;
  2911. color: rgba(44, 46, 60, 0.5);
  2912. font-size: 12px;
  2913. font-weight: 900;
  2914. letter-spacing: 0.18em;
  2915. text-transform: uppercase;
  2916. }
  2917. .aitori-invite-meta strong {
  2918. display: block;
  2919. color: #2c2e3c;
  2920. font-size: clamp(17px, 1.6vw, 22px);
  2921. font-weight: 900;
  2922. line-height: 1.15;
  2923. }
  2924. .aitori-invite-meta p {
  2925. margin: 12px 0 0;
  2926. color: rgba(44, 46, 60, 0.8);
  2927. font-size: 14px;
  2928. line-height: 1.65;
  2929. }
  2930. .aitori-invite-spacer {
  2931. flex: 1 1 auto;
  2932. min-height: 80px;
  2933. }
  2934. .aitori-invite-bottom {
  2935. display: grid;
  2936. grid-template-columns: minmax(0, 1.45fr) minmax(300px, 0.55fr);
  2937. align-items: end;
  2938. gap: clamp(28px, 5vw, 68px);
  2939. }
  2940. .aitori-invite-heading h1 {
  2941. margin: 0;
  2942. max-width: 1120px;
  2943. color: #2c2e3c;
  2944. font-size: clamp(48px, 6.8vw, 94px);
  2945. font-weight: 900;
  2946. letter-spacing: 0;
  2947. line-height: 1.02;
  2948. }
  2949. .aitori-invite-heading h1 .aitori-invite-headline-main {
  2950. display: block;
  2951. color: var(--base-color);
  2952. }
  2953. .aitori-invite-heading h1 .aitori-invite-headline-accent {
  2954. display: block;
  2955. margin-top: 8px;
  2956. color: var(--base-color);
  2957. white-space: nowrap;
  2958. }
  2959. .aitori-invite-page--en .aitori-invite-heading h1 {
  2960. max-width: 1200px;
  2961. font-size: clamp(44px, 4.4vw, 72px);
  2962. line-height: 1.08;
  2963. }
  2964. .aitori-invite-page--en .aitori-invite-heading h1 .aitori-invite-headline-accent {
  2965. white-space: normal;
  2966. }
  2967. .aitori-invite-side {
  2968. max-width: 430px;
  2969. justify-self: end;
  2970. }
  2971. .aitori-invite-side p {
  2972. margin: 0 0 24px;
  2973. padding: 18px 18px 17px;
  2974. border-radius: 8px;
  2975. background: linear-gradient(145deg, rgba(255, 255, 255, 0.24), rgba(255, 255, 255, 0.09));
  2976. box-shadow: 0 18px 42px rgba(44, 46, 60, 0.05), inset 0 1px 0 rgba(255, 255, 255, 0.46);
  2977. backdrop-filter: blur(20px) saturate(1.25);
  2978. -webkit-backdrop-filter: blur(20px) saturate(1.25);
  2979. color: rgba(44, 46, 60, 0.76);
  2980. font-size: 16px;
  2981. line-height: 1.8;
  2982. text-shadow: 0 1px 14px rgba(255, 255, 255, 0.72);
  2983. }
  2984. .aitori-invite-actions {
  2985. display: flex;
  2986. flex-wrap: wrap;
  2987. gap: 12px;
  2988. margin-bottom: 18px;
  2989. }
  2990. .aitori-invite-primary,
  2991. .aitori-invite-secondary {
  2992. min-height: 48px;
  2993. padding: 0 20px;
  2994. border-radius: 999px;
  2995. display: inline-flex;
  2996. align-items: center;
  2997. justify-content: center;
  2998. gap: 9px;
  2999. font-size: 14px;
  3000. font-weight: 900;
  3001. letter-spacing: 0.04em;
  3002. }
  3003. .aitori-invite-primary {
  3004. color: #ffffff;
  3005. background: var(--base-color);
  3006. box-shadow: 0 18px 42px rgba(156, 112, 237, 0.32);
  3007. }
  3008. .aitori-invite-primary:hover {
  3009. color: #ffffff;
  3010. background: #855bd8;
  3011. }
  3012. .aitori-invite-secondary {
  3013. color: #2c2e3c;
  3014. border: 1px solid rgba(44, 46, 60, 0.2);
  3015. background: rgba(255, 255, 255, 0.62);
  3016. backdrop-filter: blur(12px);
  3017. }
  3018. .aitori-invite-secondary:hover {
  3019. color: var(--base-color);
  3020. border-color: rgba(156, 112, 237, 0.42);
  3021. }
  3022. .aitori-invite-note {
  3023. padding: 14px 16px;
  3024. border-radius: 8px;
  3025. background: rgba(255, 255, 255, 0.54);
  3026. border: 1px solid rgba(44, 46, 60, 0.08);
  3027. backdrop-filter: blur(16px);
  3028. }
  3029. .aitori-invite-note span,
  3030. .aitori-invite-note strong {
  3031. display: block;
  3032. }
  3033. .aitori-invite-note span {
  3034. color: rgba(44, 46, 60, 0.52);
  3035. font-size: 12px;
  3036. font-weight: 800;
  3037. letter-spacing: 0.12em;
  3038. text-transform: uppercase;
  3039. }
  3040. .aitori-invite-note strong {
  3041. margin-top: 5px;
  3042. color: #2c2e3c;
  3043. font-size: 14px;
  3044. line-height: 1.5;
  3045. }
  3046. .aitori-invite-mobile-menu {
  3047. position: fixed;
  3048. inset: 0;
  3049. z-index: 50;
  3050. padding: 28px 24px;
  3051. background: rgba(248, 245, 255, 0.96);
  3052. backdrop-filter: blur(18px);
  3053. opacity: 0;
  3054. pointer-events: none;
  3055. transition: opacity 0.35s ease;
  3056. }
  3057. .aitori-invite-page.is-menu-open .aitori-invite-mobile-menu {
  3058. opacity: 1;
  3059. pointer-events: auto;
  3060. }
  3061. .aitori-invite-mobile-head {
  3062. display: flex;
  3063. align-items: center;
  3064. justify-content: space-between;
  3065. }
  3066. .aitori-invite-mobile-head img {
  3067. width: 148px;
  3068. }
  3069. .aitori-invite-mobile-head button {
  3070. width: 42px;
  3071. height: 42px;
  3072. border: 1px solid rgba(44, 46, 60, 0.18);
  3073. border-radius: 50%;
  3074. background: rgba(255, 255, 255, 0.72);
  3075. color: #2c2e3c;
  3076. }
  3077. .aitori-invite-mobile-head button i {
  3078. font-size: 22px;
  3079. }
  3080. .aitori-invite-mobile-links {
  3081. min-height: calc(100vh - 110px);
  3082. display: flex;
  3083. flex-direction: column;
  3084. align-items: center;
  3085. justify-content: center;
  3086. gap: 26px;
  3087. }
  3088. .aitori-invite-mobile-links a {
  3089. color: #2c2e3c;
  3090. font-size: 26px;
  3091. font-weight: 900;
  3092. letter-spacing: 0.08em;
  3093. }
  3094. .aitori-invite-mobile-links a:hover {
  3095. color: var(--base-color);
  3096. }
  3097. @media (max-width: 991px) {
  3098. .aitori-invite-body {
  3099. overflow: auto;
  3100. }
  3101. .aitori-invite-page {
  3102. min-height: 100svh;
  3103. overflow: auto;
  3104. padding-top: min(64vh, 520px);
  3105. background: #f8f5ff;
  3106. }
  3107. .aitori-invite-bg {
  3108. height: min(64vh, 520px);
  3109. bottom: auto;
  3110. transform: none;
  3111. transition: none;
  3112. }
  3113. .aitori-invite-shell {
  3114. min-height: auto;
  3115. padding-top: 18px;
  3116. background: #f8f5ff;
  3117. }
  3118. .aitori-invite-nav {
  3119. position: fixed;
  3120. top: 24px;
  3121. left: clamp(22px, 4vw, 58px);
  3122. right: clamp(22px, 4vw, 58px);
  3123. z-index: 12;
  3124. }
  3125. .aitori-invite-links {
  3126. display: none;
  3127. }
  3128. .aitori-invite-menu-button {
  3129. display: inline-flex;
  3130. }
  3131. .aitori-invite-meta {
  3132. margin-top: 0;
  3133. grid-template-columns: repeat(2, minmax(0, 1fr));
  3134. grid-template-rows: auto;
  3135. max-width: none;
  3136. }
  3137. .aitori-invite-meta > div:nth-child(1),
  3138. .aitori-invite-meta > div:nth-child(2),
  3139. .aitori-invite-meta > div:nth-child(3),
  3140. .aitori-invite-meta > div:nth-child(4) {
  3141. grid-column: auto;
  3142. grid-row: auto;
  3143. }
  3144. .aitori-invite-bottom {
  3145. grid-template-columns: 1fr;
  3146. }
  3147. .aitori-invite-side {
  3148. justify-self: start;
  3149. max-width: 620px;
  3150. }
  3151. }
  3152. @media (max-width: 575px) {
  3153. .aitori-invite-page {
  3154. padding-top: min(58vh, 430px);
  3155. }
  3156. .aitori-invite-bg {
  3157. height: min(58vh, 430px);
  3158. }
  3159. .aitori-invite-shell {
  3160. padding: 18px 18px 22px;
  3161. }
  3162. .aitori-invite-nav {
  3163. top: 18px;
  3164. left: 18px;
  3165. right: 18px;
  3166. }
  3167. .aitori-invite-logo img,
  3168. .aitori-invite-mobile-head img {
  3169. width: 132px;
  3170. }
  3171. .aitori-invite-meta {
  3172. margin-top: 0;
  3173. grid-template-columns: 1fr;
  3174. gap: 18px;
  3175. max-width: none;
  3176. }
  3177. .aitori-invite-meta > div {
  3178. max-width: none;
  3179. }
  3180. .aitori-invite-spacer {
  3181. min-height: 46px;
  3182. }
  3183. .aitori-invite-heading h1 {
  3184. font-size: clamp(42px, 14vw, 64px);
  3185. line-height: 1.08;
  3186. }
  3187. .aitori-invite-heading h1 .aitori-invite-headline-accent {
  3188. white-space: normal;
  3189. }
  3190. .aitori-invite-actions {
  3191. flex-direction: column;
  3192. }
  3193. .aitori-invite-primary,
  3194. .aitori-invite-secondary {
  3195. width: 100%;
  3196. }
  3197. }
  3198. .aitori-beta-apply-body {
  3199. background: #f8f6f2;
  3200. }
  3201. .aitori-beta-apply-page {
  3202. min-height: 100vh;
  3203. background:
  3204. radial-gradient(circle at 12% 12%, rgba(245, 126, 72, 0.16), transparent 30%),
  3205. radial-gradient(circle at 88% 18%, rgba(94, 128, 120, 0.16), transparent 28%),
  3206. linear-gradient(145deg, #fffaf6 0%, #f4f7f2 100%);
  3207. }
  3208. .aitori-beta-apply-hero {
  3209. padding: 115px 0 80px;
  3210. }
  3211. .aitori-beta-apply-points {
  3212. display: grid;
  3213. gap: 14px;
  3214. }
  3215. .aitori-beta-apply-points div {
  3216. display: flex;
  3217. align-items: center;
  3218. gap: 12px;
  3219. padding: 16px 18px;
  3220. border-radius: 8px;
  3221. background: rgba(255, 255, 255, 0.72);
  3222. box-shadow: 0 16px 42px rgba(44, 46, 60, 0.08);
  3223. color: var(--dark-gray);
  3224. font-weight: 700;
  3225. }
  3226. .aitori-beta-apply-points i {
  3227. display: inline-flex;
  3228. align-items: center;
  3229. justify-content: center;
  3230. width: 38px;
  3231. height: 38px;
  3232. border-radius: 50%;
  3233. background: rgba(245, 126, 72, 0.12);
  3234. color: var(--base-color);
  3235. }
  3236. .aitori-beta-apply-form {
  3237. border: 1px solid rgba(44, 46, 60, 0.06);
  3238. }
  3239. .aitori-beta-apply-checks {
  3240. display: grid;
  3241. grid-template-columns: repeat(2, minmax(0, 1fr));
  3242. gap: 12px;
  3243. }
  3244. .aitori-beta-apply-checks label {
  3245. display: flex;
  3246. align-items: center;
  3247. gap: 10px;
  3248. min-height: 48px;
  3249. padding: 12px 14px;
  3250. border-radius: 8px;
  3251. background: #f7f7f8;
  3252. color: var(--dark-gray);
  3253. font-weight: 700;
  3254. line-height: 1.4;
  3255. }
  3256. .aitori-beta-apply-checks input {
  3257. width: 18px;
  3258. height: 18px;
  3259. accent-color: var(--base-color);
  3260. flex: 0 0 auto;
  3261. }
  3262. .aitori-beta-apply-submit {
  3263. display: flex;
  3264. align-items: center;
  3265. justify-content: space-between;
  3266. gap: 18px;
  3267. }
  3268. .aitori-beta-apply-submit span {
  3269. color: var(--medium-gray);
  3270. font-size: 14px;
  3271. line-height: 1.6;
  3272. }
  3273. @media (max-width: 991px) {
  3274. .aitori-beta-apply-hero {
  3275. padding: 90px 0 60px;
  3276. }
  3277. }
  3278. @media (max-width: 575px) {
  3279. .aitori-beta-apply-hero {
  3280. padding: 72px 0 40px;
  3281. }
  3282. .aitori-beta-apply-form {
  3283. padding: 24px !important;
  3284. }
  3285. .aitori-beta-apply-checks {
  3286. grid-template-columns: 1fr;
  3287. }
  3288. .aitori-beta-apply-submit {
  3289. align-items: stretch;
  3290. flex-direction: column;
  3291. }
  3292. .aitori-beta-apply-submit .btn {
  3293. width: 100%;
  3294. }
  3295. }