zammad.scss 227 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080408140824083408440854086408740884089409040914092409340944095409640974098409941004101410241034104410541064107410841094110411141124113411441154116411741184119412041214122412341244125412641274128412941304131413241334134413541364137413841394140414141424143414441454146414741484149415041514152415341544155415641574158415941604161416241634164416541664167416841694170417141724173417441754176417741784179418041814182418341844185418641874188418941904191419241934194419541964197419841994200420142024203420442054206420742084209421042114212421342144215421642174218421942204221422242234224422542264227422842294230423142324233423442354236423742384239424042414242424342444245424642474248424942504251425242534254425542564257425842594260426142624263426442654266426742684269427042714272427342744275427642774278427942804281428242834284428542864287428842894290429142924293429442954296429742984299430043014302430343044305430643074308430943104311431243134314431543164317431843194320432143224323432443254326432743284329433043314332433343344335433643374338433943404341434243434344434543464347434843494350435143524353435443554356435743584359436043614362436343644365436643674368436943704371437243734374437543764377437843794380438143824383438443854386438743884389439043914392439343944395439643974398439944004401440244034404440544064407440844094410441144124413441444154416441744184419442044214422442344244425442644274428442944304431443244334434443544364437443844394440444144424443444444454446444744484449445044514452445344544455445644574458445944604461446244634464446544664467446844694470447144724473447444754476447744784479448044814482448344844485448644874488448944904491449244934494449544964497449844994500450145024503450445054506450745084509451045114512451345144515451645174518451945204521452245234524452545264527452845294530453145324533453445354536453745384539454045414542454345444545454645474548454945504551455245534554455545564557455845594560456145624563456445654566456745684569457045714572457345744575457645774578457945804581458245834584458545864587458845894590459145924593459445954596459745984599460046014602460346044605460646074608460946104611461246134614461546164617461846194620462146224623462446254626462746284629463046314632463346344635463646374638463946404641464246434644464546464647464846494650465146524653465446554656465746584659466046614662466346644665466646674668466946704671467246734674467546764677467846794680468146824683468446854686468746884689469046914692469346944695469646974698469947004701470247034704470547064707470847094710471147124713471447154716471747184719472047214722472347244725472647274728472947304731473247334734473547364737473847394740474147424743474447454746474747484749475047514752475347544755475647574758475947604761476247634764476547664767476847694770477147724773477447754776477747784779478047814782478347844785478647874788478947904791479247934794479547964797479847994800480148024803480448054806480748084809481048114812481348144815481648174818481948204821482248234824482548264827482848294830483148324833483448354836483748384839484048414842484348444845484648474848484948504851485248534854485548564857485848594860486148624863486448654866486748684869487048714872487348744875487648774878487948804881488248834884488548864887488848894890489148924893489448954896489748984899490049014902490349044905490649074908490949104911491249134914491549164917491849194920492149224923492449254926492749284929493049314932493349344935493649374938493949404941494249434944494549464947494849494950495149524953495449554956495749584959496049614962496349644965496649674968496949704971497249734974497549764977497849794980498149824983498449854986498749884989499049914992499349944995499649974998499950005001500250035004500550065007500850095010501150125013501450155016501750185019502050215022502350245025502650275028502950305031503250335034503550365037503850395040504150425043504450455046504750485049505050515052505350545055505650575058505950605061506250635064506550665067506850695070507150725073507450755076507750785079508050815082508350845085508650875088508950905091509250935094509550965097509850995100510151025103510451055106510751085109511051115112511351145115511651175118511951205121512251235124512551265127512851295130513151325133513451355136513751385139514051415142514351445145514651475148514951505151515251535154515551565157515851595160516151625163516451655166516751685169517051715172517351745175517651775178517951805181518251835184518551865187518851895190519151925193519451955196519751985199520052015202520352045205520652075208520952105211521252135214521552165217521852195220522152225223522452255226522752285229523052315232523352345235523652375238523952405241524252435244524552465247524852495250525152525253525452555256525752585259526052615262526352645265526652675268526952705271527252735274527552765277527852795280528152825283528452855286528752885289529052915292529352945295529652975298529953005301530253035304530553065307530853095310531153125313531453155316531753185319532053215322532353245325532653275328532953305331533253335334533553365337533853395340534153425343534453455346534753485349535053515352535353545355535653575358535953605361536253635364536553665367536853695370537153725373537453755376537753785379538053815382538353845385538653875388538953905391539253935394539553965397539853995400540154025403540454055406540754085409541054115412541354145415541654175418541954205421542254235424542554265427542854295430543154325433543454355436543754385439544054415442544354445445544654475448544954505451545254535454545554565457545854595460546154625463546454655466546754685469547054715472547354745475547654775478547954805481548254835484548554865487548854895490549154925493549454955496549754985499550055015502550355045505550655075508550955105511551255135514551555165517551855195520552155225523552455255526552755285529553055315532553355345535553655375538553955405541554255435544554555465547554855495550555155525553555455555556555755585559556055615562556355645565556655675568556955705571557255735574557555765577557855795580558155825583558455855586558755885589559055915592559355945595559655975598559956005601560256035604560556065607560856095610561156125613561456155616561756185619562056215622562356245625562656275628562956305631563256335634563556365637563856395640564156425643564456455646564756485649565056515652565356545655565656575658565956605661566256635664566556665667566856695670567156725673567456755676567756785679568056815682568356845685568656875688568956905691569256935694569556965697569856995700570157025703570457055706570757085709571057115712571357145715571657175718571957205721572257235724572557265727572857295730573157325733573457355736573757385739574057415742574357445745574657475748574957505751575257535754575557565757575857595760576157625763576457655766576757685769577057715772577357745775577657775778577957805781578257835784578557865787578857895790579157925793579457955796579757985799580058015802580358045805580658075808580958105811581258135814581558165817581858195820582158225823582458255826582758285829583058315832583358345835583658375838583958405841584258435844584558465847584858495850585158525853585458555856585758585859586058615862586358645865586658675868586958705871587258735874587558765877587858795880588158825883588458855886588758885889589058915892589358945895589658975898589959005901590259035904590559065907590859095910591159125913591459155916591759185919592059215922592359245925592659275928592959305931593259335934593559365937593859395940594159425943594459455946594759485949595059515952595359545955595659575958595959605961596259635964596559665967596859695970597159725973597459755976597759785979598059815982598359845985598659875988598959905991599259935994599559965997599859996000600160026003600460056006600760086009601060116012601360146015601660176018601960206021602260236024602560266027602860296030603160326033603460356036603760386039604060416042604360446045604660476048604960506051605260536054605560566057605860596060606160626063606460656066606760686069607060716072607360746075607660776078607960806081608260836084608560866087608860896090609160926093609460956096609760986099610061016102610361046105610661076108610961106111611261136114611561166117611861196120612161226123612461256126612761286129613061316132613361346135613661376138613961406141614261436144614561466147614861496150615161526153615461556156615761586159616061616162616361646165616661676168616961706171617261736174617561766177617861796180618161826183618461856186618761886189619061916192619361946195619661976198619962006201620262036204620562066207620862096210621162126213621462156216621762186219622062216222622362246225622662276228622962306231623262336234623562366237623862396240624162426243624462456246624762486249625062516252625362546255625662576258625962606261626262636264626562666267626862696270627162726273627462756276627762786279628062816282628362846285628662876288628962906291629262936294629562966297629862996300630163026303630463056306630763086309631063116312631363146315631663176318631963206321632263236324632563266327632863296330633163326333633463356336633763386339634063416342634363446345634663476348634963506351635263536354635563566357635863596360636163626363636463656366636763686369637063716372637363746375637663776378637963806381638263836384638563866387638863896390639163926393639463956396639763986399640064016402640364046405640664076408640964106411641264136414641564166417641864196420642164226423642464256426642764286429643064316432643364346435643664376438643964406441644264436444644564466447644864496450645164526453645464556456645764586459646064616462646364646465646664676468646964706471647264736474647564766477647864796480648164826483648464856486648764886489649064916492649364946495649664976498649965006501650265036504650565066507650865096510651165126513651465156516651765186519652065216522652365246525652665276528652965306531653265336534653565366537653865396540654165426543654465456546654765486549655065516552655365546555655665576558655965606561656265636564656565666567656865696570657165726573657465756576657765786579658065816582658365846585658665876588658965906591659265936594659565966597659865996600660166026603660466056606660766086609661066116612661366146615661666176618661966206621662266236624662566266627662866296630663166326633663466356636663766386639664066416642664366446645664666476648664966506651665266536654665566566657665866596660666166626663666466656666666766686669667066716672667366746675667666776678667966806681668266836684668566866687668866896690669166926693669466956696669766986699670067016702670367046705670667076708670967106711671267136714671567166717671867196720672167226723672467256726672767286729673067316732673367346735673667376738673967406741674267436744674567466747674867496750675167526753675467556756675767586759676067616762676367646765676667676768676967706771677267736774677567766777677867796780678167826783678467856786678767886789679067916792679367946795679667976798679968006801680268036804680568066807680868096810681168126813681468156816681768186819682068216822682368246825682668276828682968306831683268336834683568366837683868396840684168426843684468456846684768486849685068516852685368546855685668576858685968606861686268636864686568666867686868696870687168726873687468756876687768786879688068816882688368846885688668876888688968906891689268936894689568966897689868996900690169026903690469056906690769086909691069116912691369146915691669176918691969206921692269236924692569266927692869296930693169326933693469356936693769386939694069416942694369446945694669476948694969506951695269536954695569566957695869596960696169626963696469656966696769686969697069716972697369746975697669776978697969806981698269836984698569866987698869896990699169926993699469956996699769986999700070017002700370047005700670077008700970107011701270137014701570167017701870197020702170227023702470257026702770287029703070317032703370347035703670377038703970407041704270437044704570467047704870497050705170527053705470557056705770587059706070617062706370647065706670677068706970707071707270737074707570767077707870797080708170827083708470857086708770887089709070917092709370947095709670977098709971007101710271037104710571067107710871097110711171127113711471157116711771187119712071217122712371247125712671277128712971307131713271337134713571367137713871397140714171427143714471457146714771487149715071517152715371547155715671577158715971607161716271637164716571667167716871697170717171727173717471757176717771787179718071817182718371847185718671877188718971907191719271937194719571967197719871997200720172027203720472057206720772087209721072117212721372147215721672177218721972207221722272237224722572267227722872297230723172327233723472357236723772387239724072417242724372447245724672477248724972507251725272537254725572567257725872597260726172627263726472657266726772687269727072717272727372747275727672777278727972807281728272837284728572867287728872897290729172927293729472957296729772987299730073017302730373047305730673077308730973107311731273137314731573167317731873197320732173227323732473257326732773287329733073317332733373347335733673377338733973407341734273437344734573467347734873497350735173527353735473557356735773587359736073617362736373647365736673677368736973707371737273737374737573767377737873797380738173827383738473857386738773887389739073917392739373947395739673977398739974007401740274037404740574067407740874097410741174127413741474157416741774187419742074217422742374247425742674277428742974307431743274337434743574367437743874397440744174427443744474457446744774487449745074517452745374547455745674577458745974607461746274637464746574667467746874697470747174727473747474757476747774787479748074817482748374847485748674877488748974907491749274937494749574967497749874997500750175027503750475057506750775087509751075117512751375147515751675177518751975207521752275237524752575267527752875297530753175327533753475357536753775387539754075417542754375447545754675477548754975507551755275537554755575567557755875597560756175627563756475657566756775687569757075717572757375747575757675777578757975807581758275837584758575867587758875897590759175927593759475957596759775987599760076017602760376047605760676077608760976107611761276137614761576167617761876197620762176227623762476257626762776287629763076317632763376347635763676377638763976407641764276437644764576467647764876497650765176527653765476557656765776587659766076617662766376647665766676677668766976707671767276737674767576767677767876797680768176827683768476857686768776887689769076917692769376947695769676977698769977007701770277037704770577067707770877097710771177127713771477157716771777187719772077217722772377247725772677277728772977307731773277337734773577367737773877397740774177427743774477457746774777487749775077517752775377547755775677577758775977607761776277637764776577667767776877697770777177727773777477757776777777787779778077817782778377847785778677877788778977907791779277937794779577967797779877997800780178027803780478057806780778087809781078117812781378147815781678177818781978207821782278237824782578267827782878297830783178327833783478357836783778387839784078417842784378447845784678477848784978507851785278537854785578567857785878597860786178627863786478657866786778687869787078717872787378747875787678777878787978807881788278837884788578867887788878897890789178927893789478957896789778987899790079017902790379047905790679077908790979107911791279137914791579167917791879197920792179227923792479257926792779287929793079317932793379347935793679377938793979407941794279437944794579467947794879497950795179527953795479557956795779587959796079617962796379647965796679677968796979707971797279737974797579767977797879797980798179827983798479857986798779887989799079917992799379947995799679977998799980008001800280038004800580068007800880098010801180128013801480158016801780188019802080218022802380248025802680278028802980308031803280338034803580368037803880398040804180428043804480458046804780488049805080518052805380548055805680578058805980608061806280638064806580668067806880698070807180728073807480758076807780788079808080818082808380848085808680878088808980908091809280938094809580968097809880998100810181028103810481058106810781088109811081118112811381148115811681178118811981208121812281238124812581268127812881298130813181328133813481358136813781388139814081418142814381448145814681478148814981508151815281538154815581568157815881598160816181628163816481658166816781688169817081718172817381748175817681778178817981808181818281838184818581868187818881898190819181928193819481958196819781988199820082018202820382048205820682078208820982108211821282138214821582168217821882198220822182228223822482258226822782288229823082318232823382348235823682378238823982408241824282438244824582468247824882498250825182528253825482558256825782588259826082618262826382648265826682678268826982708271827282738274827582768277827882798280828182828283828482858286828782888289829082918292829382948295829682978298829983008301830283038304830583068307830883098310831183128313831483158316831783188319832083218322832383248325832683278328832983308331833283338334833583368337833883398340834183428343834483458346834783488349835083518352835383548355835683578358835983608361836283638364836583668367836883698370837183728373837483758376837783788379838083818382838383848385838683878388838983908391839283938394839583968397839883998400840184028403840484058406840784088409841084118412841384148415841684178418841984208421842284238424842584268427842884298430843184328433843484358436843784388439844084418442844384448445844684478448844984508451845284538454845584568457845884598460846184628463846484658466846784688469847084718472847384748475847684778478847984808481848284838484848584868487848884898490849184928493849484958496849784988499850085018502850385048505850685078508850985108511851285138514851585168517851885198520852185228523852485258526852785288529853085318532853385348535853685378538853985408541854285438544854585468547854885498550855185528553855485558556855785588559856085618562856385648565856685678568856985708571857285738574857585768577857885798580858185828583858485858586858785888589859085918592859385948595859685978598859986008601860286038604860586068607860886098610861186128613861486158616861786188619862086218622862386248625862686278628862986308631863286338634863586368637863886398640864186428643864486458646864786488649865086518652865386548655865686578658865986608661866286638664866586668667866886698670867186728673867486758676867786788679868086818682868386848685868686878688868986908691869286938694869586968697869886998700870187028703870487058706870787088709871087118712871387148715871687178718871987208721872287238724872587268727872887298730873187328733873487358736873787388739874087418742874387448745874687478748874987508751875287538754875587568757875887598760876187628763876487658766876787688769877087718772877387748775877687778778877987808781878287838784878587868787878887898790879187928793879487958796879787988799880088018802880388048805880688078808880988108811881288138814881588168817881888198820882188228823882488258826882788288829883088318832883388348835883688378838883988408841884288438844884588468847884888498850885188528853885488558856885788588859886088618862886388648865886688678868886988708871887288738874887588768877887888798880888188828883888488858886888788888889889088918892889388948895889688978898889989008901890289038904890589068907890889098910891189128913891489158916891789188919892089218922892389248925892689278928892989308931893289338934893589368937893889398940894189428943894489458946894789488949895089518952895389548955895689578958895989608961896289638964896589668967896889698970897189728973897489758976897789788979898089818982898389848985898689878988898989908991899289938994899589968997899889999000900190029003900490059006900790089009901090119012901390149015901690179018901990209021902290239024902590269027902890299030903190329033903490359036903790389039904090419042904390449045904690479048904990509051905290539054905590569057905890599060906190629063906490659066906790689069907090719072907390749075907690779078907990809081908290839084908590869087908890899090909190929093909490959096909790989099910091019102910391049105910691079108910991109111911291139114911591169117911891199120912191229123912491259126912791289129913091319132913391349135913691379138913991409141914291439144914591469147914891499150915191529153915491559156915791589159916091619162916391649165916691679168916991709171917291739174917591769177917891799180918191829183918491859186918791889189919091919192919391949195919691979198919992009201920292039204920592069207920892099210921192129213921492159216921792189219922092219222922392249225922692279228922992309231923292339234923592369237923892399240924192429243924492459246924792489249925092519252925392549255925692579258925992609261926292639264926592669267926892699270927192729273927492759276927792789279928092819282928392849285928692879288928992909291929292939294929592969297929892999300930193029303930493059306930793089309931093119312931393149315931693179318931993209321932293239324932593269327932893299330933193329333933493359336933793389339934093419342934393449345934693479348934993509351935293539354935593569357935893599360936193629363936493659366936793689369937093719372937393749375937693779378937993809381938293839384938593869387938893899390939193929393939493959396939793989399940094019402940394049405940694079408940994109411941294139414941594169417941894199420942194229423942494259426942794289429943094319432943394349435943694379438943994409441944294439444944594469447944894499450945194529453945494559456945794589459946094619462946394649465946694679468946994709471947294739474947594769477947894799480948194829483948494859486948794889489949094919492949394949495949694979498949995009501950295039504950595069507950895099510951195129513951495159516951795189519952095219522952395249525952695279528952995309531953295339534953595369537953895399540954195429543954495459546954795489549955095519552955395549555955695579558955995609561956295639564956595669567956895699570957195729573957495759576957795789579958095819582958395849585958695879588958995909591959295939594959595969597959895999600960196029603960496059606960796089609961096119612961396149615961696179618961996209621962296239624962596269627962896299630963196329633963496359636963796389639964096419642964396449645964696479648964996509651965296539654965596569657965896599660966196629663966496659666966796689669967096719672967396749675967696779678967996809681968296839684968596869687968896899690969196929693969496959696969796989699970097019702970397049705970697079708970997109711971297139714971597169717971897199720972197229723972497259726972797289729973097319732973397349735973697379738973997409741974297439744974597469747974897499750975197529753975497559756975797589759976097619762976397649765976697679768976997709771977297739774977597769777977897799780978197829783978497859786978797889789979097919792979397949795979697979798979998009801980298039804980598069807980898099810981198129813981498159816981798189819982098219822982398249825982698279828982998309831983298339834983598369837983898399840984198429843984498459846984798489849985098519852985398549855985698579858985998609861986298639864986598669867986898699870987198729873987498759876987798789879988098819882988398849885988698879888988998909891989298939894989598969897989898999900990199029903990499059906990799089909991099119912991399149915991699179918991999209921992299239924992599269927992899299930993199329933993499359936993799389939994099419942994399449945994699479948994999509951995299539954995599569957995899599960996199629963996499659966996799689969997099719972997399749975997699779978997999809981998299839984998599869987998899899990999199929993999499959996999799989999100001000110002100031000410005100061000710008100091001010011100121001310014100151001610017100181001910020100211002210023100241002510026100271002810029100301003110032100331003410035100361003710038100391004010041100421004310044100451004610047100481004910050100511005210053100541005510056100571005810059100601006110062100631006410065100661006710068100691007010071100721007310074100751007610077100781007910080100811008210083100841008510086100871008810089100901009110092100931009410095100961009710098100991010010101101021010310104101051010610107101081010910110101111011210113101141011510116101171011810119101201012110122101231012410125101261012710128101291013010131101321013310134101351013610137101381013910140101411014210143101441014510146101471014810149101501015110152101531015410155101561015710158101591016010161101621016310164101651016610167101681016910170101711017210173101741017510176101771017810179101801018110182101831018410185101861018710188101891019010191101921019310194101951019610197101981019910200102011020210203102041020510206102071020810209102101021110212102131021410215102161021710218102191022010221102221022310224102251022610227102281022910230102311023210233102341023510236102371023810239102401024110242102431024410245102461024710248102491025010251102521025310254102551025610257102581025910260102611026210263102641026510266102671026810269102701027110272102731027410275102761027710278102791028010281102821028310284102851028610287102881028910290102911029210293102941029510296102971029810299103001030110302103031030410305103061030710308103091031010311103121031310314103151031610317103181031910320103211032210323103241032510326103271032810329103301033110332103331033410335103361033710338103391034010341103421034310344103451034610347103481034910350103511035210353103541035510356103571035810359103601036110362103631036410365103661036710368103691037010371103721037310374103751037610377103781037910380103811038210383103841038510386103871038810389103901039110392103931039410395103961039710398103991040010401104021040310404104051040610407104081040910410104111041210413104141041510416104171041810419104201042110422104231042410425104261042710428104291043010431104321043310434104351043610437104381043910440104411044210443104441044510446104471044810449104501045110452104531045410455104561045710458104591046010461104621046310464104651046610467104681046910470104711047210473104741047510476104771047810479104801048110482104831048410485104861048710488104891049010491104921049310494104951049610497104981049910500105011050210503105041050510506105071050810509105101051110512105131051410515105161051710518105191052010521105221052310524105251052610527105281052910530105311053210533105341053510536105371053810539105401054110542105431054410545105461054710548105491055010551105521055310554105551055610557105581055910560105611056210563105641056510566105671056810569105701057110572105731057410575105761057710578105791058010581105821058310584105851058610587105881058910590105911059210593105941059510596105971059810599106001060110602106031060410605106061060710608106091061010611106121061310614106151061610617106181061910620106211062210623106241062510626106271062810629106301063110632106331063410635106361063710638106391064010641106421064310644106451064610647106481064910650106511065210653106541065510656106571065810659106601066110662106631066410665106661066710668106691067010671106721067310674106751067610677106781067910680106811068210683106841068510686106871068810689106901069110692106931069410695106961069710698106991070010701107021070310704107051070610707107081070910710107111071210713107141071510716107171071810719107201072110722107231072410725107261072710728107291073010731107321073310734107351073610737107381073910740107411074210743107441074510746107471074810749107501075110752107531075410755107561075710758107591076010761107621076310764107651076610767107681076910770107711077210773107741077510776107771077810779107801078110782107831078410785107861078710788107891079010791107921079310794107951079610797107981079910800108011080210803108041080510806108071080810809108101081110812108131081410815108161081710818108191082010821108221082310824108251082610827108281082910830108311083210833108341083510836108371083810839108401084110842108431084410845108461084710848108491085010851108521085310854108551085610857108581085910860108611086210863108641086510866108671086810869108701087110872108731087410875108761087710878108791088010881108821088310884108851088610887108881088910890108911089210893108941089510896108971089810899109001090110902109031090410905109061090710908109091091010911109121091310914109151091610917109181091910920109211092210923109241092510926109271092810929109301093110932109331093410935109361093710938109391094010941109421094310944109451094610947109481094910950109511095210953109541095510956109571095810959109601096110962109631096410965109661096710968109691097010971109721097310974109751097610977109781097910980109811098210983109841098510986109871098810989109901099110992109931099410995109961099710998109991100011001110021100311004110051100611007110081100911010110111101211013110141101511016110171101811019110201102111022110231102411025110261102711028110291103011031110321103311034110351103611037110381103911040110411104211043110441104511046110471104811049110501105111052110531105411055110561105711058110591106011061110621106311064110651106611067110681106911070110711107211073110741107511076110771107811079110801108111082110831108411085110861108711088110891109011091110921109311094110951109611097110981109911100111011110211103111041110511106111071110811109111101111111112111131111411115111161111711118111191112011121111221112311124111251112611127111281112911130111311113211133111341113511136111371113811139111401114111142111431114411145111461114711148111491115011151111521115311154111551115611157111581115911160111611116211163111641116511166111671116811169111701117111172111731117411175111761117711178111791118011181111821118311184111851118611187111881118911190111911119211193111941119511196111971119811199112001120111202112031120411205112061120711208112091121011211112121121311214112151121611217112181121911220112211122211223112241122511226112271122811229112301123111232112331123411235112361123711238112391124011241112421124311244112451124611247112481124911250112511125211253112541125511256112571125811259112601126111262112631126411265112661126711268112691127011271112721127311274112751127611277112781127911280112811128211283112841128511286112871128811289112901129111292112931129411295112961129711298112991130011301113021130311304113051130611307113081130911310113111131211313113141131511316113171131811319113201132111322113231132411325113261132711328113291133011331113321133311334113351133611337113381133911340113411134211343113441134511346113471134811349113501135111352113531135411355113561135711358113591136011361113621136311364113651136611367113681136911370113711137211373113741137511376113771137811379113801138111382113831138411385113861138711388113891139011391113921139311394113951139611397113981139911400114011140211403114041140511406114071140811409114101141111412114131141411415114161141711418114191142011421114221142311424114251142611427114281142911430114311143211433114341143511436114371143811439114401144111442114431144411445114461144711448114491145011451114521145311454114551145611457114581145911460114611146211463114641146511466114671146811469114701147111472114731147411475114761147711478114791148011481114821148311484114851148611487114881148911490114911149211493114941149511496114971149811499115001150111502115031150411505115061150711508115091151011511115121151311514115151151611517115181151911520115211152211523115241152511526115271152811529115301153111532115331153411535115361153711538115391154011541115421154311544115451154611547115481154911550115511155211553115541155511556115571155811559115601156111562115631156411565115661156711568115691157011571115721157311574115751157611577115781157911580115811158211583115841158511586115871158811589115901159111592115931159411595115961159711598115991160011601116021160311604116051160611607116081160911610116111161211613116141161511616116171161811619116201162111622116231162411625116261162711628116291163011631116321163311634116351163611637116381163911640116411164211643116441164511646116471164811649116501165111652116531165411655116561165711658116591166011661116621166311664116651166611667116681166911670116711167211673116741167511676116771167811679116801168111682116831168411685116861168711688116891169011691116921169311694116951169611697116981169911700117011170211703117041170511706117071170811709117101171111712117131171411715117161171711718117191172011721117221172311724117251172611727117281172911730117311173211733117341173511736117371173811739117401174111742117431174411745117461174711748117491175011751117521175311754117551175611757117581175911760117611176211763117641176511766117671176811769117701177111772117731177411775117761177711778117791178011781117821178311784117851178611787117881178911790117911179211793117941179511796117971179811799118001180111802118031180411805118061180711808118091181011811118121181311814118151181611817118181181911820118211182211823118241182511826118271182811829118301183111832118331183411835118361183711838118391184011841118421184311844118451184611847118481184911850118511185211853118541185511856118571185811859118601186111862118631186411865118661186711868118691187011871118721187311874118751187611877118781187911880118811188211883118841188511886118871188811889118901189111892118931189411895118961189711898118991190011901119021190311904119051190611907119081190911910119111191211913119141191511916119171191811919119201192111922119231192411925119261192711928119291193011931119321193311934119351193611937119381193911940119411194211943119441194511946119471194811949119501195111952119531195411955119561195711958119591196011961119621196311964119651196611967119681196911970119711197211973119741197511976119771197811979119801198111982119831198411985119861198711988119891199011991119921199311994119951199611997119981199912000120011200212003120041200512006120071200812009120101201112012120131201412015120161201712018120191202012021120221202312024120251202612027120281202912030120311203212033120341203512036120371203812039120401204112042120431204412045120461204712048120491205012051120521205312054120551205612057120581205912060120611206212063120641206512066120671206812069120701207112072120731207412075120761207712078120791208012081120821208312084120851208612087120881208912090120911209212093120941209512096120971209812099121001210112102121031210412105121061210712108121091211012111121121211312114121151211612117121181211912120121211212212123121241212512126121271212812129121301213112132121331213412135121361213712138121391214012141121421214312144121451214612147121481214912150121511215212153121541215512156121571215812159121601216112162121631216412165121661216712168121691217012171121721217312174121751217612177121781217912180121811218212183121841218512186121871218812189121901219112192121931219412195121961219712198121991220012201122021220312204122051220612207122081220912210122111221212213122141221512216122171221812219122201222112222122231222412225122261222712228122291223012231122321223312234122351223612237122381223912240122411224212243122441224512246122471224812249122501225112252122531225412255122561225712258122591226012261122621226312264122651226612267122681226912270122711227212273122741227512276122771227812279122801228112282122831228412285122861228712288122891229012291122921229312294122951229612297122981229912300123011230212303123041230512306123071230812309123101231112312123131231412315123161231712318123191232012321123221232312324123251232612327123281232912330123311233212333123341233512336123371233812339123401234112342123431234412345123461234712348123491235012351123521235312354123551235612357123581235912360123611236212363123641236512366123671236812369123701237112372123731237412375123761237712378123791238012381123821238312384123851238612387123881238912390123911239212393123941239512396123971239812399124001240112402124031240412405124061240712408124091241012411124121241312414124151241612417124181241912420124211242212423124241242512426124271242812429124301243112432124331243412435124361243712438124391244012441124421244312444124451244612447124481244912450124511245212453124541245512456124571245812459124601246112462124631246412465124661246712468124691247012471124721247312474124751247612477124781247912480124811248212483124841248512486124871248812489124901249112492124931249412495124961249712498124991250012501125021250312504125051250612507125081250912510125111251212513125141251512516125171251812519125201252112522125231252412525125261252712528125291253012531125321253312534125351253612537125381253912540125411254212543125441254512546125471254812549125501255112552125531255412555125561255712558125591256012561125621256312564125651256612567125681256912570125711257212573125741257512576125771257812579125801258112582125831258412585125861258712588125891259012591125921259312594125951259612597125981259912600126011260212603126041260512606126071260812609126101261112612126131261412615126161261712618126191262012621126221262312624126251262612627126281262912630126311263212633126341263512636126371263812639126401264112642126431264412645126461264712648126491265012651126521265312654126551265612657126581265912660126611266212663126641266512666126671266812669126701267112672126731267412675126761267712678126791268012681126821268312684126851268612687126881268912690126911269212693126941269512696126971269812699127001270112702127031270412705127061270712708127091271012711127121271312714127151271612717127181271912720127211272212723127241272512726127271272812729127301273112732127331273412735127361273712738127391274012741127421274312744127451274612747127481274912750127511275212753127541275512756127571275812759127601276112762127631276412765127661276712768127691277012771127721277312774127751277612777127781277912780127811278212783127841278512786127871278812789127901279112792127931279412795127961279712798127991280012801128021280312804128051280612807128081280912810128111281212813128141281512816128171281812819128201282112822128231282412825128261282712828128291283012831128321283312834128351283612837128381283912840128411284212843128441284512846128471284812849128501285112852128531285412855128561285712858128591286012861128621286312864128651286612867128681286912870128711287212873128741287512876128771287812879128801288112882128831288412885128861288712888128891289012891128921289312894128951289612897128981289912900129011290212903129041290512906129071290812909129101291112912129131291412915129161291712918129191292012921129221292312924129251292612927129281292912930129311293212933129341293512936129371293812939129401294112942129431294412945129461294712948129491295012951129521295312954129551295612957129581295912960129611296212963129641296512966129671296812969129701297112972129731297412975129761297712978129791298012981129821298312984129851298612987129881298912990129911299212993129941299512996129971299812999130001300113002130031300413005130061300713008130091301013011130121301313014130151301613017130181301913020130211302213023130241302513026130271302813029130301303113032130331303413035130361303713038130391304013041130421304313044130451304613047130481304913050130511305213053130541305513056130571305813059130601306113062130631306413065130661306713068130691307013071130721307313074130751307613077130781307913080130811308213083130841308513086130871308813089130901309113092130931309413095130961309713098130991310013101131021310313104131051310613107131081310913110131111311213113131141311513116131171311813119131201312113122131231312413125131261312713128131291313013131131321313313134131351313613137131381313913140131411314213143131441314513146131471314813149131501315113152131531315413155131561315713158131591316013161131621316313164131651316613167131681316913170131711317213173131741317513176131771317813179131801318113182131831318413185131861318713188131891319013191131921319313194131951319613197131981319913200132011320213203132041320513206132071320813209132101321113212132131321413215132161321713218132191322013221132221322313224132251322613227132281322913230132311323213233132341323513236132371323813239132401324113242132431324413245132461324713248132491325013251132521325313254132551325613257132581325913260132611326213263132641326513266132671326813269132701327113272132731327413275132761327713278132791328013281132821328313284132851328613287132881328913290132911329213293132941329513296132971329813299133001330113302133031330413305133061330713308133091331013311133121331313314133151331613317133181331913320133211332213323133241332513326133271332813329133301333113332133331333413335133361333713338133391334013341133421334313344133451334613347133481334913350133511335213353133541335513356133571335813359133601336113362133631336413365133661336713368133691337013371133721337313374133751337613377133781337913380133811338213383133841338513386133871338813389133901339113392133931339413395133961339713398133991340013401134021340313404134051340613407134081340913410134111341213413134141341513416134171341813419134201342113422134231342413425134261342713428134291343013431134321343313434134351343613437134381343913440134411344213443134441344513446134471344813449134501345113452134531345413455134561345713458134591346013461134621346313464134651346613467134681346913470134711347213473134741347513476134771347813479134801348113482134831348413485134861348713488134891349013491134921349313494134951349613497134981349913500135011350213503135041350513506135071350813509135101351113512135131351413515135161351713518135191352013521135221352313524135251352613527135281352913530135311353213533135341353513536135371353813539135401354113542135431354413545135461354713548135491355013551135521355313554135551355613557135581355913560135611356213563135641356513566135671356813569135701357113572135731357413575135761357713578135791358013581135821358313584135851358613587135881358913590135911359213593135941359513596135971359813599136001360113602136031360413605136061360713608136091361013611136121361313614136151361613617136181361913620136211362213623136241362513626136271362813629136301363113632136331363413635136361363713638136391364013641136421364313644136451364613647136481364913650136511365213653136541365513656136571365813659136601366113662136631366413665136661366713668136691367013671136721367313674136751367613677136781367913680136811368213683136841368513686136871368813689136901369113692136931369413695136961369713698136991370013701137021370313704137051370613707137081370913710137111371213713137141371513716137171371813719137201372113722137231372413725137261372713728137291373013731137321373313734137351373613737137381373913740137411374213743137441374513746137471374813749137501375113752137531375413755137561375713758137591376013761137621376313764137651376613767137681376913770137711377213773137741377513776137771377813779137801378113782137831378413785137861378713788137891379013791137921379313794137951379613797137981379913800138011380213803138041380513806138071380813809138101381113812138131381413815138161381713818138191382013821138221382313824138251382613827138281382913830138311383213833138341383513836138371383813839138401384113842138431384413845138461384713848138491385013851138521385313854138551385613857138581385913860138611386213863138641386513866138671386813869138701387113872138731387413875138761387713878138791388013881138821388313884138851388613887138881388913890138911389213893138941389513896138971389813899139001390113902139031390413905139061390713908139091391013911139121391313914139151391613917139181391913920139211392213923139241392513926139271392813929139301393113932139331393413935139361393713938139391394013941139421394313944139451394613947139481394913950139511395213953139541395513956139571395813959139601396113962139631396413965139661396713968139691397013971139721397313974139751397613977139781397913980139811398213983139841398513986139871398813989139901399113992139931399413995139961399713998139991400014001140021400314004140051400614007140081400914010140111401214013140141401514016140171401814019140201402114022140231402414025140261402714028140291403014031140321403314034140351403614037140381403914040140411404214043140441404514046140471404814049140501405114052140531405414055140561405714058140591406014061140621406314064140651406614067140681406914070140711407214073140741407514076140771407814079140801408114082140831408414085140861408714088140891409014091140921409314094140951409614097140981409914100141011410214103141041410514106141071410814109141101411114112141131411414115141161411714118141191412014121141221412314124141251412614127141281412914130141311413214133141341413514136141371413814139141401414114142141431414414145141461414714148141491415014151141521415314154141551415614157141581415914160141611416214163141641416514166141671416814169141701417114172141731417414175141761417714178141791418014181
  1. $high-priority-color: hsl(360, 71%, 60%);
  2. $low-priority-color: hsl(200, 68%, 73%);
  3. $minWidth: 1024px;
  4. $sidebarWidth: 280px;
  5. $navigationWidth: 260px;
  6. $mobileNavigationWidth: 50px;
  7. $mobileNavigationWidthOpen: 220px;
  8. :root {
  9. --button-action-color: hsl(0, 0%, 60%);
  10. --button-background: white;
  11. --button-background-active: hsl(0, 0, 98%);
  12. --button-active: hsl(204, 7%, 28%);
  13. --button-active-active: hsla(0, 0%, 0%, 0.55);
  14. --button-primary-background: hsl(203, 65%, 55%);
  15. --button-primary-background-active: hsl(203, 65%, 45%);
  16. --header-primary: hsl(202, 8%, 28%);
  17. --header-secondary: hsl(198, 10%, 69%);
  18. --text-normal: hsl(60, 1%, 34%);
  19. --text-muted: hsl(213, 3%, 64%);
  20. --text-muted-highlight: hsl(205, 90%, 90%);
  21. --text-muted-alt: hsl(197, 16%, 65%);
  22. --text-link: hsl(204, 72%, 50%);
  23. --text-inverted: white;
  24. --text-nav: hsl(204, 72%, 50%);
  25. --menu-text: hsl(0, 0%, 74%);
  26. --menu-icon: hsl(206, 5%, 42%);
  27. --nav-icon: hsl(0, 0%, 50%);
  28. --highlight: hsl(205, 90%, 60%);
  29. --interactive-primary: black;
  30. --interactive-muted: hsl(210, 3%, 71%);
  31. --interactive-muted-active: hsl(210, 4%, 71%);
  32. --interactive-muted-alt: hsl(197, 19%, 78%);
  33. --interactive-muted-alt-selected: hsl(206, 7%, 37%);
  34. --background-primary: hsl(210, 17%, 98%);
  35. --background-primary-alt: hsl(197, 16%, 94%);
  36. --background-secondary: white;
  37. --background-secondary-hover: hsl(239, 4%, 95%);
  38. --background-tertiary: hsl(233, 9%, 19%);
  39. --background-quaternary: hsl(231, 9%, 16%);
  40. --background-quaternary-alt: hsl(228, 17%, 91%);
  41. --background-popover: white;
  42. --background-active: hsl(233, 9%, 19%);
  43. --background-highlight: hsl(200, 100%, 91%);
  44. --background-article-meta: hsl(212, 14%, 99%);
  45. --background-article-customer: hsl(201, 46%, 93%);
  46. --background-article-customer-meta: hsl(201, 43%, 96%);
  47. --background-modifier-accent: hsla(0, 0%, 0%, 0.04);
  48. --background-modifier-accent-light: hsla(0, 0%, 0%, 0.02);
  49. --background-modifier-accent-dark: hsla(0, 0%, 0%, 0.3);
  50. --background-modifier-lighter: hsla(0, 0%, 100%, 0.06);
  51. --background-modifier-border: hsla(0, 0%, 0%, 0.1);
  52. --background-modifier-hover: hsla(240, 3%, 50%, 0.1);
  53. --backdrop-clue-start: hsla(202, 68%, 54%, 0.1);
  54. --backdrop-clue-end: hsla(202, 68%, 54%, 0.9);
  55. --border: hsl(0, 0%, 90%);
  56. --border-alt: hsl(198, 18%, 86%);
  57. --border-highlight: hsl(200, 71%, 59%);
  58. --border-internal: hsl(18, 91%, 89%);
  59. --border-internal-stripe: hsl(18, 94%, 95%);
  60. --border-article-customer: hsl(199, 38%, 90%);
  61. --border-article-customer-selected: hsl(199, 44%, 85%);
  62. --shadow-highlight: hsl(201, 62%, 90%);
  63. --supergood-color: hsl(145, 51%, 45%);
  64. --good-color: hsl(62, 45%, 46%);
  65. --ok-color: hsl(41, 100%, 49%);
  66. --bad-color: hsl(30, 93%, 50%);
  67. --superbad-color: hsl(19, 90%, 51%);
  68. --ghost-color: hsl(0, 0%, 74%);
  69. --danger-color: hsl(0, 65%, 55%);
  70. --pending-color: hsl(206, 7%, 28%);
  71. --elevation-stroke: 0 1px hsl(210, 7%, 94%);
  72. --elevation-low: 0 1px 5px hsla(205, 30%, 30%, 0.1);
  73. --elevation-high: 0 1px 14px hsla(208, 95%, 3%, 0.25);
  74. --highlighter-yellow: hsl(48, 81%, 82%);
  75. --highlighter-green: hsl(105, 54%, 80%);
  76. --highlighter-blue: hsl(207, 92%, 85%);
  77. --highlighter-pink: hsl(338, 90%, 82%);
  78. --highlighter-purple: hsl(288, 62%, 86%);
  79. --file-icon-background: white;
  80. --file-icon-color: hsl(198, 18%, 86%);
  81. --tag-text: hsl(198, 5%, 41%);
  82. --tag-background: hsl(198, 19%, 92%);
  83. }
  84. // dark mode
  85. [data-theme='dark'] {
  86. --button-action-color: hsl(0, 0%, 80%);
  87. --button-background: hsla(0, 0%, 100%, 0.03);
  88. --button-background-active: hsla(0, 0%, 100%, 0.015);
  89. --button-active: hsla(0, 0%, 100%, 0.1);
  90. --button-active-active: hsla(0, 0%, 100%, 0.08);
  91. --header-primary: white;
  92. --header-secondary: hsl(198, 5%, 73%);
  93. --text-normal: hsl(205, 1%, 86%);
  94. --text-muted: hsl(213, 3%, 60%);
  95. --text-muted-alt: hsl(213, 8%, 61%);
  96. --text-link: hsl(202, 72%, 50%);
  97. --text-inverted: white;
  98. --text-nav: hsl(205, 1%, 84%);
  99. --nav-icon: hsl(0, 0%, 50%);
  100. --highlight: hsl(205, 90%, 60%);
  101. --interactive-primary: white;
  102. --interactive-muted: hsl(213, 3%, 64%);
  103. --interactive-muted-active: hsl(213, 3%, 35%);
  104. --interactive-muted-alt: hsl(209, 5%, 35%);
  105. --interactive-muted-alt-selected: hsl(205, 4%, 75%);
  106. --background-primary: hsl(230, 5%, 19%);
  107. --background-primary-alt: hsl(230, 5%, 21%);
  108. --background-secondary: hsl(230, 5%, 23%);
  109. --background-secondary-hover: hsl(230, 5%, 20%);
  110. --background-tertiary: hsl(230, 7%, 17%);
  111. --background-quaternary: hsl(230, 7%, 13%);
  112. --background-quaternary-alt: hsl(230, 4%, 30%);
  113. --background-popover: hsl(216, 3%, 30%);
  114. --background-active: var(--highlight);
  115. --background-highlight: hsl(205, 30%, 27%);
  116. --background-article-meta: hsl(230, 7%, 25%);
  117. --background-article-customer: hsl(218, 8%, 32%);
  118. --background-article-customer-meta: hsl(218, 6%, 30%);
  119. --background-modifier-accent: hsla(0, 0%, 0%, 0.12);
  120. --background-modifier-accent-light: hsla(0, 0%, 0%, 0.06);
  121. --background-modifier-accent-dark: hsla(0, 0%, 0%, 0.3);
  122. --background-modifier-lighter: hsla(0, 0%, 100%, 0.08);
  123. --background-modifier-border: hsla(0, 0%, 0%, 0.17);
  124. --background-modifier-hover: hsla(230, 5%, 36%, 0.4);
  125. --backdrop-clue-start: hsla(202, 68%, 54%, 0.1);
  126. --backdrop-clue-end: hsla(202, 68%, 54%, 0.9);
  127. --border: hsl(230, 4%, 17%);
  128. --border-alt: hsl(230, 7%, 18%);
  129. --border-highlight: hsl(205, 70%, 50%);
  130. --border-internal: hsl(18, 30%, 39%);
  131. --border-internal-stripe: hsl(18, 30%, 30%);
  132. --border-article-customer: hsl(209, 6%, 30%);
  133. --border-article-customer-selected: hsl(199, 10%, 33%);
  134. --shadow-highlight: hsl(205, 42%, 36%);
  135. --supergood-color: hsl(145, 51%, 45%);
  136. --good-color: hsl(62, 45%, 46%);
  137. --ok-color: hsl(41, 100%, 49%);
  138. --bad-color: hsl(30, 93%, 50%);
  139. --superbad-color: hsl(19, 90%, 51%);
  140. --ghost-color: hsl(0, 0%, 50%);
  141. --danger-color: hsl(0, 82%, 59%);
  142. --pending-color: hsl(205, 1%, 44%);
  143. --elevation-stroke: 0 1px hsla(0, 0%, 0%, 0.13);
  144. --elevation-low: 0 1px 5px hsla(0, 0%, 0%, 0.15);
  145. --elevation-high: 0 1px 14px hsla(0, 0%, 0%, 0.25);
  146. --highlighter-yellow: hsl(48, 34%, 30%);
  147. --highlighter-green: hsl(105, 34%, 27%);
  148. --highlighter-blue: hsl(207, 41%, 30%);
  149. --highlighter-pink: hsl(338, 28%, 30%);
  150. --highlighter-purple: hsl(288, 22%, 36%);
  151. --file-icon-background: hsl(216, 5%, 77%);
  152. --file-icon-color: hsl(230, 7%, 21%);
  153. --tag-text: var(--text-normal);
  154. --tag-background: hsl(230, 5%, 32%);
  155. }
  156. @mixin dark {
  157. [data-theme='dark'] & {
  158. @content;
  159. }
  160. }
  161. @mixin desktop {
  162. @media screen and (min-width: 1260px) {
  163. @content;
  164. }
  165. }
  166. @mixin small-desktop {
  167. @media screen and (max-width: 1260px) {
  168. @content;
  169. }
  170. }
  171. @mixin tablet {
  172. @media screen and (min-width: 768px) {
  173. @content;
  174. }
  175. }
  176. @mixin phone {
  177. @media screen and (max-width: 767px) {
  178. @content;
  179. }
  180. }
  181. /* sets LTR and RTL within the same style call */
  182. @mixin bidi-style($prop, $value, $inverse-prop, $default-value) {
  183. #{$prop}: $value;
  184. html[dir='rtl'] & {
  185. #{$inverse-prop}: $value;
  186. #{$prop}: $default-value;
  187. }
  188. }
  189. /* adds a property only in RTL */
  190. @mixin rtl($prop, $value) {
  191. html[dir='rtl'] & {
  192. #{$prop}: $value;
  193. }
  194. }
  195. /* adds a property only in LTR */
  196. @mixin ltr($prop, $value) {
  197. html[dir='ltr'] & {
  198. #{$prop}: $value;
  199. }
  200. }
  201. %clickable {
  202. cursor: pointer;
  203. user-select: none;
  204. touch-action: manipulation;
  205. }
  206. html {
  207. height: 100%;
  208. }
  209. body {
  210. font-family: 'Fira Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif;
  211. line-height: 1.45;
  212. font-weight: normal;
  213. background: var(--background-primary);
  214. height: 100%;
  215. color: var(--text-normal);
  216. word-wrap: break-word;
  217. overflow-wrap: break-word;
  218. display: flex;
  219. flex-direction: column;
  220. }
  221. /* prevent clickable <use xlink:href="#icon-abc"></use> */
  222. use {
  223. pointer-events: none;
  224. }
  225. p {
  226. margin: 12px 0;
  227. &.subtle {
  228. color: var(--text-muted);
  229. }
  230. &.description {
  231. color: var(--text-muted);
  232. }
  233. }
  234. h3 + .description {
  235. margin-top: 0;
  236. }
  237. strong {
  238. font-weight: 500;
  239. }
  240. hr {
  241. border-top-color: var(--background-modifier-border);
  242. }
  243. .inherit-color {
  244. color: inherit;
  245. }
  246. .text-muted {
  247. color: var(--text-muted);
  248. }
  249. .text-placeholder {
  250. color: var(--interactive-muted);
  251. }
  252. .text-small {
  253. font-size: 12px;
  254. }
  255. .u-highlight {
  256. color: var(--text-link);
  257. }
  258. .u-dontfold {
  259. flex-shrink: 0;
  260. }
  261. .u-invisible {
  262. opacity: 0;
  263. pointer-events: none;
  264. position: absolute !important;
  265. }
  266. [data-dir='ltr'] {
  267. direction: ltr;
  268. }
  269. [data-dir='rtl'] {
  270. direction: rtl;
  271. }
  272. a {
  273. outline: none !important;
  274. @extend .u-highlight;
  275. &.is-disabled,
  276. &[disabled] {
  277. pointer-events: none;
  278. cursor: not-allowed !important;
  279. opacity: 0.33;
  280. }
  281. }
  282. a.create {
  283. color: hsl(145, 51%, 45%);
  284. text-decoration: underline;
  285. }
  286. small {
  287. color: var(--text-muted);
  288. font-size: 12px;
  289. }
  290. blockquote {
  291. font-size: inherit;
  292. }
  293. ol,
  294. ul {
  295. padding-inline-start: 20px;
  296. }
  297. #app {
  298. display: flex;
  299. flex: 1;
  300. min-width: $minWidth;
  301. overflow: auto;
  302. -webkit-overflow-scrolling: touch;
  303. @include phone {
  304. min-width: auto;
  305. position: absolute;
  306. left: 0;
  307. top: 0;
  308. width: 100%;
  309. height: 100%;
  310. }
  311. }
  312. .u-unclickable {
  313. pointer-events: none;
  314. }
  315. .u-clickable {
  316. @extend %clickable;
  317. }
  318. .u-unselectable {
  319. pointer-events: none;
  320. user-select: none;
  321. }
  322. .u-no-userselect {
  323. user-select: none;
  324. }
  325. .u-textTruncate {
  326. white-space: nowrap;
  327. overflow: hidden;
  328. text-overflow: ellipsis;
  329. }
  330. .u-positionOrigin {
  331. position: relative;
  332. }
  333. .u-inlineBlock {
  334. display: inline-block;
  335. }
  336. .u-inlinePad {
  337. margin: 0 5px;
  338. }
  339. .u-notAllowed {
  340. cursor: not-allowed;
  341. }
  342. .u-overflow-wrap {
  343. word-break: break-word;
  344. @supports (overflow-wrap: anywhere) {
  345. overflow-wrap: anywhere;
  346. word-break: unset;
  347. }
  348. }
  349. .zIndex-1 {
  350. z-index: 100;
  351. }
  352. .zIndex-2 {
  353. z-index: 200;
  354. }
  355. .zIndex-3 {
  356. z-index: 300;
  357. }
  358. .zIndex-4 {
  359. z-index: 400;
  360. }
  361. .zIndex-5 {
  362. z-index: 500;
  363. }
  364. .zIndex-6 {
  365. z-index: 600;
  366. }
  367. .zIndex-7 {
  368. z-index: 700;
  369. }
  370. .zIndex-8 {
  371. z-index: 800;
  372. }
  373. .zIndex-9 {
  374. z-index: 900;
  375. }
  376. .zIndex-10 {
  377. z-index: 1000;
  378. }
  379. .zIndex-11 {
  380. z-index: 1100;
  381. }
  382. .clickCatcher {
  383. top: 0;
  384. left: 0;
  385. width: 100%;
  386. height: 100%;
  387. position: absolute;
  388. cursor: default;
  389. }
  390. .debug .clickCatcher {
  391. background: hsla(0, 100%, 50%, 0.13);
  392. }
  393. .debug .clickCatcher + .clickCatcher {
  394. background: hsla(50, 100%, 50%, 0.13);
  395. }
  396. .clearfix::after {
  397. visibility: hidden;
  398. display: block;
  399. font-size: 0;
  400. content: ' ';
  401. clear: both;
  402. height: 0;
  403. }
  404. .clearfix {
  405. display: inline-block;
  406. }
  407. /* start commented backslash hack \ */
  408. * html .clearfix {
  409. height: 1%;
  410. }
  411. .clearfix {
  412. display: block;
  413. }
  414. /* close commented backslash hack */
  415. [contenteditable] {
  416. display: block;
  417. outline-style: none;
  418. border-radius: 3px;
  419. /* needed to make empty tags editable, otherwise no focus can be set */
  420. min-height: 10px;
  421. min-width: 20px;
  422. }
  423. [contenteditable]:hover,
  424. [contenteditable]:focus {
  425. background: var(--background-primary);
  426. }
  427. [contenteditable]:focus {
  428. text-overflow: clip !important;
  429. }
  430. [contenteditable].invalid {
  431. background: #f92;
  432. }
  433. [contenteditable] > .placeholder {
  434. color: var(--text-muted);
  435. }
  436. [contenteditable] p {
  437. margin: 0;
  438. }
  439. /* fix for placeholder */
  440. .Medium-placeholder {
  441. position: relative;
  442. }
  443. .close,
  444. .close:hover {
  445. float: none;
  446. opacity: 1;
  447. }
  448. #app > nav {
  449. position: relative;
  450. z-index: 1;
  451. }
  452. code {
  453. background: var(--background-modifier-accent);
  454. border-radius: 3px;
  455. box-decoration-break: clone;
  456. }
  457. code,
  458. .hljs {
  459. padding: 2px 4px;
  460. font-size: 0.88em;
  461. }
  462. .hljs {
  463. background: none;
  464. @include dark {
  465. filter: invert(1);
  466. }
  467. }
  468. pre code.hljs {
  469. font-size: 1em;
  470. }
  471. pre {
  472. display: block;
  473. padding: 9.5px;
  474. margin: 0 0 20px;
  475. font-size: 13px;
  476. line-height: 1.42857143;
  477. word-break: break-all;
  478. word-wrap: break-word;
  479. background: var(--background-secondary);
  480. border: 1px solid var(--border);
  481. border-radius: 3px;
  482. }
  483. .modal-content pre {
  484. background: var(--background-modifier-accent);
  485. border-color: var(--background-modifier-border);
  486. }
  487. pre code {
  488. padding: 0;
  489. font-size: inherit;
  490. color: inherit;
  491. white-space: pre-wrap;
  492. background: none;
  493. border-radius: 0;
  494. border: none;
  495. overflow-x: auto;
  496. &.hljs {
  497. padding: 0;
  498. background: none;
  499. }
  500. }
  501. .textarea::placeholder,
  502. .form-control::placeholder,
  503. .token-input::placeholder,
  504. .u-placeholder {
  505. color: var(--ghost-color);
  506. }
  507. .btn {
  508. display: inline-block;
  509. font-size: 14px;
  510. padding: 10px 24px 9px;
  511. color: var(--text-normal);
  512. background: var(--button-background);
  513. border: 1px solid var(--border);
  514. outline: none !important;
  515. border-radius: 4px;
  516. text-align: center;
  517. white-space: nowrap;
  518. vertical-align: middle;
  519. text-decoration: none;
  520. @extend %clickable;
  521. @include phone {
  522. padding-left: 12px;
  523. padding-right: 12px;
  524. }
  525. .icon {
  526. vertical-align: middle;
  527. margin-top: -2px;
  528. @include bidi-style(margin-right, 5px, margin-right, -2px);
  529. @include bidi-style(margin-left, -2px, margin-right, 5px);
  530. flex-shrink: 0;
  531. &.icon-arrow-up {
  532. margin-top: -3px;
  533. }
  534. }
  535. span {
  536. min-width: 0;
  537. overflow: hidden;
  538. text-overflow: ellipsis;
  539. display: block;
  540. }
  541. &--only-icon .icon,
  542. &--icon-only .icon {
  543. margin-left: 0 !important;
  544. margin-right: 0 !important;
  545. }
  546. &--icon--last .icon {
  547. @include bidi-style(
  548. margin-left,
  549. 5px,
  550. margin-right,
  551. 0
  552. ); // so far only used in ticket_zoom secondaryAction dropup
  553. }
  554. &:focus {
  555. box-shadow: 0 0 0 3px var(--shadow-highlight);
  556. }
  557. &--small {
  558. padding-top: 5px;
  559. padding-bottom: 4px;
  560. &.btn--quad {
  561. padding: 4px 5px;
  562. }
  563. }
  564. &--slim {
  565. padding-left: 12px;
  566. padding-right: 12px;
  567. }
  568. &--fullWidth {
  569. width: 100%;
  570. text-align: center;
  571. justify-content: center;
  572. }
  573. &.is-disabled,
  574. &[disabled],
  575. &:disabled {
  576. pointer-events: none;
  577. cursor: not-allowed;
  578. opacity: 0.33;
  579. }
  580. &:active {
  581. box-shadow: none;
  582. background: var(--button-background-active);
  583. }
  584. &--capitalized {
  585. text-transform: capitalize;
  586. }
  587. &--action {
  588. text-transform: uppercase;
  589. color: var(--button-action-color);
  590. font-size: 12px;
  591. letter-spacing: 0.05em;
  592. height: 31px;
  593. padding: 0 11px !important;
  594. display: inline-flex;
  595. align-items: center;
  596. min-width: 0;
  597. .icon {
  598. @include ltr(margin, -2px 5px 0 -2px);
  599. @include rtl(margin, -2px -2px 0 5px);
  600. }
  601. .icon:only-child {
  602. margin: 0 !important;
  603. }
  604. &.btn--slim {
  605. padding-left: 7px !important;
  606. padding-right: 7px !important;
  607. .btn-label {
  608. @include bidi-style(margin-left, 0, margin-right, 0);
  609. }
  610. &.btn--small {
  611. padding-left: 5px !important;
  612. padding-right: 5px !important;
  613. }
  614. }
  615. &.btn--small {
  616. height: 26px;
  617. font-size: 11px;
  618. padding-left: 8px !important;
  619. padding-right: 8px !important;
  620. }
  621. }
  622. &-active-icon {
  623. display: none;
  624. }
  625. &--active {
  626. background: var(--button-active);
  627. color: var(--text-inverted);
  628. &:active {
  629. background: var(--button-active-active);
  630. }
  631. .btn-inactive-icon {
  632. display: none;
  633. }
  634. .btn-active-icon {
  635. display: inline;
  636. }
  637. }
  638. // used in .recipientList-controls
  639. &--onDark {
  640. background: var(--background-modifier-lighter);
  641. border-color: var(--background-modifier-accent-dark);
  642. color: var(--text-inverted);
  643. .icon {
  644. opacity: 1;
  645. }
  646. }
  647. &--primary {
  648. color: var(--text-inverted);
  649. background: var(--button-primary-background);
  650. &:active {
  651. background: var(--button-primary-background-active);
  652. }
  653. .icon {
  654. opacity: 1;
  655. fill: currentColor;
  656. }
  657. }
  658. &--secondary {
  659. color: var(--button-primary-background);
  660. }
  661. &--positive,
  662. &--create,
  663. &--success {
  664. color: var(--text-inverted);
  665. background: hsl(145, 51%, 45%);
  666. &:active {
  667. background: hsl(145, 51%, 35%);
  668. }
  669. &.btn--secondary {
  670. background: var(--background-secondary);
  671. color: hsl(145, 51%, 45%);
  672. &:active {
  673. background: var(--button-background-active);
  674. }
  675. }
  676. &.btn--text {
  677. color: var(--supergood-color);
  678. }
  679. }
  680. &--danger {
  681. color: var(--text-inverted);
  682. background: var(--danger-color);
  683. &:active {
  684. background: linear-gradient(hsla(0, 0%, 0%, 0.1), hsla(0, 0%, 0%, 0.1)),
  685. linear-gradient(var(--danger-color), var(--danger-color));
  686. }
  687. &.btn--secondary {
  688. background: var(--background-secondary);
  689. color: var(--danger-color);
  690. &:active {
  691. background: var(--button-background-active);
  692. }
  693. }
  694. }
  695. &--text {
  696. display: inline-flex;
  697. align-items: center;
  698. font-size: inherit;
  699. margin: -10px;
  700. padding: 10px;
  701. color: var(--button-primary-background);
  702. border: none;
  703. background: none;
  704. vertical-align: baseline;
  705. text-align: start;
  706. .table & {
  707. margin: 0;
  708. min-height: 38px;
  709. }
  710. &.no-padding {
  711. padding: 0;
  712. margin: 0;
  713. min-height: auto;
  714. }
  715. .icon {
  716. opacity: 1;
  717. @include bidi-style(margin-left, -2px, margin-right, 6px);
  718. @include bidi-style(margin-right, 6px, margin-right, -2px);
  719. width: 16px;
  720. max-height: 16px;
  721. object-fit: contain;
  722. }
  723. &.btn--icon--last .icon {
  724. @include bidi-style(margin-left, 6px, margin-right, -2px);
  725. @include bidi-style(margin-right, -2px, margin-right, 6px);
  726. }
  727. &:active {
  728. color: var(--button-primary-background-active);
  729. background: none;
  730. }
  731. &.btn--secondary {
  732. color: var(--interactive-muted);
  733. text-decoration: underline;
  734. &:active {
  735. opacity: 0.75;
  736. }
  737. }
  738. &.btn--positive {
  739. color: hsl(145, 51%, 45%);
  740. &:active {
  741. color: hsl(145, 51%, 30%);
  742. background: none;
  743. }
  744. }
  745. &.btn--danger {
  746. color: var(--danger-color);
  747. &:active {
  748. color: hsl(0, 65%, 40%);
  749. background: none;
  750. }
  751. }
  752. &.btn--subtle {
  753. text-decoration: underline;
  754. color: var(--interactive-muted);
  755. &:active {
  756. opacity: 0.75;
  757. }
  758. }
  759. &.space-left {
  760. @include bidi-style(margin-left, 0, margin-right, -10px);
  761. }
  762. &.space-right {
  763. @include bidi-style(margin-right, 0, margin-left, -10px);
  764. }
  765. }
  766. &--large {
  767. &.btn--text {
  768. margin: 0;
  769. }
  770. }
  771. &--quad {
  772. padding: 10px 12px 9px;
  773. .icon {
  774. margin: -1px;
  775. }
  776. }
  777. &--split--first {
  778. @include bidi-style(border-radius, 3px 0 0 3px, border-radius, 0 3px 3px 0);
  779. }
  780. &--split,
  781. &--split--last {
  782. border-radius: 0;
  783. @include bidi-style(border-left-width, 0, border-right-width, 1px);
  784. @include ltr(margin-left, 0 !important);
  785. @include rtl(margin-right, 0 !important);
  786. .icon {
  787. margin-left: 2px !important;
  788. margin-right: 2px !important;
  789. }
  790. }
  791. &--split--last {
  792. @include bidi-style(border-radius, 0 3px 3px 0, border-radius, 3px 0 0 3px);
  793. }
  794. &--dropdown {
  795. position: relative;
  796. select {
  797. opacity: 0;
  798. width: 100%;
  799. height: 100%;
  800. left: 0;
  801. top: 0;
  802. position: absolute;
  803. @extend %clickable;
  804. }
  805. }
  806. }
  807. .btn + .btn,
  808. .btn + .buttonDropdown,
  809. .buttonDropdown + .buttonDropdown {
  810. @include bidi-style(margin-left, 10px, margin-right, 0);
  811. }
  812. .btn + .btn.align-right {
  813. @include bidi-style(margin-left, auto, margin-right, 0);
  814. }
  815. .btn.align-right ~ .btn {
  816. @include bidi-style(margin-left, 15px, margin-right, 0);
  817. }
  818. .vertical > .btn:not(.hidden) + .btn {
  819. @include bidi-style(margin-left, 0, margin-right, 0);
  820. margin-top: 10px;
  821. &--text {
  822. @include bidi-style(margin-left, -10px, margin-right, -10px);
  823. margin-top: 0;
  824. }
  825. }
  826. .btn--download .icon-download {
  827. margin-right: 6px;
  828. @include rtl(margin-right, -10px);
  829. margin-top: 4px;
  830. margin-left: -10px;
  831. @include rtl(margin-left, 6px);
  832. vertical-align: top;
  833. fill: var(--text-inverted);
  834. }
  835. .btn-label {
  836. @include bidi-style(margin-left, 7px, margin-right, 0);
  837. }
  838. .btn-show-all {
  839. &[aria-expanded='false'] [data-show='collapsed'],
  840. &[aria-expanded='true'] [data-show='open'] {
  841. display: none;
  842. }
  843. .icon {
  844. margin-left: 0;
  845. margin-right: 0;
  846. }
  847. }
  848. .visibility-change {
  849. /*
  850. Interactive Visibility Change Classes:
  851. <div class="visibility-change">
  852. <svg class="icon-marker" data-visible="active"><use xlink:href="#icon-marker" /></svg>
  853. </div>
  854. Important: HTML Order active > hover > normal
  855. */
  856. [data-visible='active'],
  857. [data-visible='hover'] {
  858. display: none;
  859. }
  860. &.is-active [data-visible='active'] {
  861. display: block;
  862. & ~ [data-visible='normal'] {
  863. display: none;
  864. }
  865. }
  866. &:hover [data-visible='hover'] {
  867. display: block;
  868. & ~ [data-visible='normal'] {
  869. display: none;
  870. }
  871. }
  872. }
  873. .btn-group {
  874. display: inline-flex;
  875. flex-wrap: wrap;
  876. &--full {
  877. display: flex;
  878. }
  879. & + .btn-group {
  880. margin-top: 10px;
  881. padding-top: 10px;
  882. border-top: 1px solid var(--border);
  883. }
  884. .btn {
  885. &:not(:first-child) {
  886. border-top-left-radius: 0;
  887. border-bottom-left-radius: 0;
  888. }
  889. &:not(:last-child) {
  890. border-top-right-radius: 0;
  891. border-bottom-right-radius: 0;
  892. border-right-width: 0;
  893. }
  894. + .btn {
  895. @include bidi-style(margin-left, 0, margin-right, 10px);
  896. }
  897. }
  898. .btn--text {
  899. padding: 6px 10px 5px; /* reporting main.eco */
  900. display: inline-block;
  901. border-radius: 3px;
  902. &.is-selected {
  903. background: var(--button-primary-background);
  904. color: var(--text-inverted);
  905. }
  906. }
  907. }
  908. .buttonDropdown {
  909. display: flex;
  910. align-items: center;
  911. position: relative;
  912. user-select: none;
  913. .dropdown-menu {
  914. margin-bottom: 0;
  915. }
  916. &.is-open .dropdown-menu {
  917. display: block;
  918. }
  919. .btn--text {
  920. padding-left: 13px;
  921. padding-right: 13px;
  922. }
  923. .dropdown-menu-accessories {
  924. cursor: pointer;
  925. &:focus {
  926. outline: none;
  927. .dropdown-menu {
  928. display: block;
  929. }
  930. .btn--split--last {
  931. box-shadow: 0 0 0 3px var(--shadow-highlight);
  932. pointer-events: initial;
  933. }
  934. }
  935. .btn--split--last {
  936. pointer-events: none;
  937. &:focus {
  938. box-shadow: none;
  939. pointer-events: none;
  940. }
  941. &:active {
  942. background-color: #429ed7;
  943. }
  944. }
  945. }
  946. }
  947. .dropdown-menu-right {
  948. @include rtl(right, auto);
  949. @include rtl(left, 0);
  950. }
  951. .dropdown-menu-left {
  952. @include rtl(left, auto);
  953. @include rtl(right, 0);
  954. }
  955. .status-fields {
  956. display: flex;
  957. max-width: 100%;
  958. @include phone {
  959. display: block;
  960. }
  961. .dropdown li {
  962. display: flex;
  963. align-items: center;
  964. padding: 0 10px;
  965. }
  966. .dropdown-menu .status-badge {
  967. margin-left: 10px;
  968. }
  969. .dropdown-menu .badge {
  970. margin-top: -2px;
  971. margin-right: 7px;
  972. background: hsla(0, 0%, 0%, 0.5);
  973. }
  974. }
  975. .status-field {
  976. border: 1px solid var(--border);
  977. background: var(--button-background);
  978. display: flex;
  979. height: 34px;
  980. flex-shrink: 1;
  981. min-width: 20px;
  982. padding: 5px 0;
  983. align-items: center;
  984. white-space: nowrap;
  985. text-overflow: ellipsis;
  986. overflow: hidden;
  987. @include phone {
  988. border-bottom-width: 0;
  989. }
  990. &.is-active {
  991. background: var(--button-primary-background);
  992. color: var(--text-inverted);
  993. border-color: var(--button-primary-background-active);
  994. box-shadow: 1px 0 var(--button-primary-background-active);
  995. position: relative;
  996. @extend %clickable;
  997. .icon {
  998. fill: currentColor;
  999. opacity: 1;
  1000. }
  1001. }
  1002. &:not(:last-child, :only-child) {
  1003. @include bidi-style(border-right-width, 0, border-left-width, 1px);
  1004. @include phone {
  1005. border-right-width: 1px !important;
  1006. }
  1007. }
  1008. &:first-child {
  1009. border-radius: 5px 0 0 5px;
  1010. @include rtl(border-radius, 0 5px 5px 0);
  1011. @include phone {
  1012. border-radius: 5px 5px 0 0 !important;
  1013. .dropdown & {
  1014. flex: 1;
  1015. border-top-right-radius: 0 !important;
  1016. border-right-width: 0 !important;
  1017. }
  1018. }
  1019. .dropdown.open & {
  1020. border-radius: 5px 0 0;
  1021. @include rtl(border-radius, 0 5px 0 0);
  1022. @include phone {
  1023. border-radius: 5px 0 0 !important;
  1024. }
  1025. }
  1026. }
  1027. &:last-child {
  1028. border-radius: 0 5px 5px 0;
  1029. @include rtl(border-radius, 5px 0 0 5px);
  1030. @include phone {
  1031. border-radius: 0 0 5px 5px !important;
  1032. border-bottom-width: 1px;
  1033. }
  1034. }
  1035. &:only-child {
  1036. border-radius: 5px;
  1037. @include phone {
  1038. border-radius: 5px !important;
  1039. }
  1040. }
  1041. .badge {
  1042. @include bidi-style(margin, 0 7px 0 10px, margin, 0 10px 0 7px);
  1043. background: hsla(210, 50%, 10%, 0.24);
  1044. }
  1045. .status-badge {
  1046. width: 32px;
  1047. display: inline-flex;
  1048. align-items: center;
  1049. justify-content: center;
  1050. align-self: stretch;
  1051. }
  1052. &--arrow {
  1053. @extend %clickable;
  1054. border-left: none;
  1055. width: 34px;
  1056. justify-content: center;
  1057. @include phone {
  1058. border-top-right-radius: 5px !important;
  1059. }
  1060. }
  1061. &--spacer {
  1062. padding-left: 16px;
  1063. padding-right: 2px;
  1064. }
  1065. }
  1066. .status-badge {
  1067. display: inline-block;
  1068. }
  1069. .info-badge {
  1070. fill: currentColor;
  1071. padding: 3px 6px 1px;
  1072. line-height: 12px;
  1073. opacity: 0.5;
  1074. position: relative;
  1075. /*
  1076. border in its own layer to make it more
  1077. translucend but still depend on the currentColor
  1078. */
  1079. &::after {
  1080. content: '';
  1081. position: absolute;
  1082. width: 100%;
  1083. height: 100%;
  1084. left: 0;
  1085. top: 0;
  1086. border: 1px solid currentColor;
  1087. opacity: 0.5;
  1088. border-radius: 100%;
  1089. }
  1090. }
  1091. @keyframes pulsate {
  1092. to {
  1093. filter: brightness(1.2);
  1094. }
  1095. }
  1096. .badge {
  1097. display: inline-block;
  1098. min-width: 18px;
  1099. padding: 3px 5px;
  1100. font-size: 12px;
  1101. font-weight: 500;
  1102. line-height: 1;
  1103. color: var(--text-inverted);
  1104. text-align: center;
  1105. white-space: nowrap;
  1106. vertical-align: top;
  1107. border-radius: 9px;
  1108. background: var(--border-alt);
  1109. @include bidi-style(margin-right, 3px, margin-left, 0);
  1110. flex-shrink: 0;
  1111. &:empty {
  1112. display: none;
  1113. }
  1114. &.badge--big {
  1115. min-width: 22px;
  1116. font-size: 14px;
  1117. border-radius: 11px;
  1118. padding: 5px 7px 3px;
  1119. }
  1120. &.badge--text {
  1121. min-width: 0;
  1122. padding: 0;
  1123. margin-right: 0;
  1124. @include bidi-style(margin-right, 0, margin-left, 0);
  1125. font-size: inherit;
  1126. font-weight: inherit;
  1127. text-align: inherit;
  1128. line-height: inherit;
  1129. color: var(--text-muted);
  1130. background: none;
  1131. border-radius: 0;
  1132. vertical-align: baseline;
  1133. }
  1134. }
  1135. .key-value {
  1136. td:first-child {
  1137. @include bidi-style(padding-right, 10px, padding-left, 0);
  1138. color: var(--text-muted);
  1139. }
  1140. }
  1141. table {
  1142. table-layout: fixed;
  1143. }
  1144. .table {
  1145. display: table;
  1146. small {
  1147. color: inherit;
  1148. }
  1149. &-icon {
  1150. max-width: 20px;
  1151. max-height: 20px;
  1152. object-fit: contain;
  1153. vertical-align: middle;
  1154. fill: hsla(0, 0%, 0%, 0.3);
  1155. }
  1156. &-buttons {
  1157. padding-top: 0 !important;
  1158. padding-bottom: 0 !important;
  1159. height: 38px;
  1160. display: flex;
  1161. align-items: center;
  1162. justify-content: flex-end;
  1163. text-align: right;
  1164. }
  1165. }
  1166. .table--light {
  1167. color: var(--text-muted);
  1168. }
  1169. .table-fluid {
  1170. table-layout: auto;
  1171. }
  1172. .table .table-row {
  1173. display: table-row;
  1174. }
  1175. .table.table--placeholder {
  1176. th {
  1177. text-align: center;
  1178. }
  1179. td {
  1180. height: 40px;
  1181. }
  1182. > thead > tr > th {
  1183. background: var(--background-modifier-accent);
  1184. }
  1185. }
  1186. .table th:not(.noTruncate) .table-column-title,
  1187. .table td:not(.noTruncate) {
  1188. @extend .u-textTruncate;
  1189. }
  1190. .table > thead > tr > th {
  1191. padding: 12px 9px 10px;
  1192. border-bottom: none;
  1193. border-top: 1px solid #ececec;
  1194. background: var(--background-primary-alt);
  1195. color: var(--text-normal);
  1196. font-weight: normal;
  1197. font-size: 12px;
  1198. text-transform: uppercase;
  1199. letter-spacing: 0.05em;
  1200. position: relative;
  1201. user-select: none;
  1202. }
  1203. .table-column-head {
  1204. display: flex;
  1205. @extend %clickable;
  1206. &-unclickable {
  1207. cursor: default;
  1208. }
  1209. }
  1210. .table-column-sortIcon {
  1211. @include bidi-style(margin-left, auto, margin-right, 0);
  1212. }
  1213. th.align-right {
  1214. .table-column-title {
  1215. @include bidi-style(margin-left, auto, margin-right, 0);
  1216. }
  1217. .table-column-sortIcon {
  1218. @include bidi-style(margin-left, 0, margin-right, 0);
  1219. }
  1220. }
  1221. .table-striped > tbody > tr:nth-child(2n + 1) {
  1222. background-color: var(--background-secondary);
  1223. }
  1224. .table > tbody > tr > td {
  1225. padding: 10px 10px 8px;
  1226. border-color: var(--background-modifier-accent);
  1227. &.no-side-padding {
  1228. padding-left: 0;
  1229. padding-right: 0;
  1230. text-align: center;
  1231. }
  1232. }
  1233. .table > tbody > tr.u-center > td {
  1234. vertical-align: middle;
  1235. }
  1236. .table-hover > tbody > tr:hover,
  1237. .table-hover > tbody > tr.is-hover {
  1238. background: var(--background-secondary);
  1239. }
  1240. .table-hover-in-modal > tbody > tr:hover > td {
  1241. background-color: var(--background-primary);
  1242. }
  1243. .table-hover > tbody > tr:hover > th {
  1244. background: rgba(0, 8, 14, 0.015);
  1245. }
  1246. .table-col-resize {
  1247. position: absolute;
  1248. @include bidi-style(right, 0, left, auto);
  1249. top: 0;
  1250. height: 100%;
  1251. cursor: col-resize;
  1252. padding: 10px;
  1253. @include bidi-style(margin-right, -10px, margin-left, 0);
  1254. z-index: 1;
  1255. &::after {
  1256. content: '';
  1257. display: block;
  1258. width: 1px;
  1259. height: 100%;
  1260. background: var(--border);
  1261. }
  1262. }
  1263. .table > thead:first-child > tr:first-child > th.no-padding,
  1264. .table > thead > tr > th.no-padding,
  1265. .table > tbody > tr > td.no-padding {
  1266. padding: 0;
  1267. }
  1268. .table tr.is-inactive,
  1269. .table tr td span.is-inactive {
  1270. color: var(--text-muted);
  1271. text-decoration: line-through;
  1272. a {
  1273. color: inherit;
  1274. }
  1275. }
  1276. .table tr.is-grayed-out {
  1277. color: var(--text-muted);
  1278. .icon,
  1279. .btn span {
  1280. opacity: 0.33;
  1281. }
  1282. .avatar {
  1283. opacity: 0.5;
  1284. }
  1285. .avatar--unique {
  1286. background: var(--background-secondary-hover);
  1287. text-shadow: none;
  1288. opacity: initial;
  1289. }
  1290. }
  1291. td .icon {
  1292. vertical-align: middle;
  1293. margin-top: -3px;
  1294. }
  1295. td .icon-draggable,
  1296. td .icon-trash {
  1297. vertical-align: middle;
  1298. }
  1299. td .prefix-icon > .icon {
  1300. vertical-align: top;
  1301. }
  1302. .table-checkbox,
  1303. .table-radio {
  1304. padding: 0 !important;
  1305. .icon {
  1306. margin-top: 0;
  1307. }
  1308. }
  1309. .table .table-sort-arrow {
  1310. opacity: 1;
  1311. width: 8px;
  1312. height: 8px;
  1313. @include bidi-style(margin-left, 3px, margin-right, 0);
  1314. margin-top: -2px;
  1315. vertical-align: middle;
  1316. }
  1317. .item {
  1318. &--high-priority {
  1319. a {
  1320. color: $high-priority-color;
  1321. }
  1322. }
  1323. &--low-priority {
  1324. a {
  1325. color: $low-priority-color;
  1326. }
  1327. }
  1328. }
  1329. .checkbox-list {
  1330. list-style: none;
  1331. margin-bottom: 15px;
  1332. padding: 3px 12px;
  1333. font-size: 14px;
  1334. line-height: 25px;
  1335. color: var(--text-normal);
  1336. background: var(--background-secondary);
  1337. border: 1px solid var(--border);
  1338. border-radius: 3px;
  1339. }
  1340. .checkbox-replacement,
  1341. .radio-replacement {
  1342. padding: 0;
  1343. margin: 0;
  1344. display: flex;
  1345. align-items: center;
  1346. justify-content: center;
  1347. position: relative;
  1348. @extend .u-clickable;
  1349. > .icon {
  1350. vertical-align: middle;
  1351. margin-top: -2px;
  1352. fill: var(--button-background);
  1353. @include dark {
  1354. fill: transparent;
  1355. }
  1356. }
  1357. .icon-checked {
  1358. color: var(--interactive-primary);
  1359. }
  1360. .icon-unchecked {
  1361. color: var(--text-muted);
  1362. }
  1363. .icon-indeterminate {
  1364. display: none;
  1365. color: var(--text-muted);
  1366. }
  1367. &.is-disabled {
  1368. cursor: not-allowed;
  1369. }
  1370. &.checkbox-replacement--fullscreen,
  1371. &.radio-replacement--fullscreen {
  1372. position: absolute;
  1373. left: 0;
  1374. top: 0;
  1375. width: 100%;
  1376. height: 100%;
  1377. }
  1378. &.checkbox-replacement--inline,
  1379. &.radio-replacement--inline {
  1380. display: inline-flex;
  1381. @include bidi-style(margin-right, 3px, margin-left, 0);
  1382. }
  1383. input[type='checkbox'],
  1384. input[type='radio'] {
  1385. position: absolute;
  1386. opacity: 0;
  1387. cursor: pointer;
  1388. &:disabled {
  1389. cursor: not-allowed;
  1390. ~ .icon {
  1391. opacity: 0.33;
  1392. fill: none;
  1393. }
  1394. }
  1395. &:not(:checked) ~ .icon-checked,
  1396. &:checked ~ .icon-unchecked {
  1397. display: none;
  1398. }
  1399. &:focus:not(.is-active) ~ .icon-checked,
  1400. &:focus:not(.is-active) ~ .icon-unchecked {
  1401. box-shadow: 0 0 0 2px var(--border-highlight),
  1402. 0 0 0 3px var(--shadow-highlight);
  1403. }
  1404. }
  1405. + .label-text {
  1406. @include bidi-style(margin-left, 0, margin-right, 3px);
  1407. }
  1408. }
  1409. .checkbox-replacement {
  1410. &:indeterminate {
  1411. ~ .icon-checked,
  1412. ~ .icon-unchecked {
  1413. display: none;
  1414. }
  1415. ~ .icon-indeterminate {
  1416. display: block;
  1417. }
  1418. }
  1419. }
  1420. .radio-replacement {
  1421. input:focus ~ .icon-checked,
  1422. input:focus ~ .icon-unchecked {
  1423. border-radius: 100%;
  1424. }
  1425. > .icon {
  1426. margin-top: -3px;
  1427. }
  1428. }
  1429. .table .checkbox-replacement,
  1430. .table .radio-replacement {
  1431. height: 40px;
  1432. width: 40px;
  1433. &.checkbox-replacement--fullscreen {
  1434. width: 100%;
  1435. height: 100%;
  1436. }
  1437. }
  1438. .table-overview tbody .icon-checkbox,
  1439. .table-overview tbody .icon-radio,
  1440. .table-overview tbody .icon-checkbox-checked,
  1441. .table-overview tbody .icon-radio-checked {
  1442. fill: transparent;
  1443. }
  1444. .table .table-cell {
  1445. vertical-align: top;
  1446. display: table-cell;
  1447. border-bottom: 1px solid var(--background-primary-alt);
  1448. }
  1449. .hero-two {
  1450. width: 100%;
  1451. }
  1452. .hero-two .hero-left {
  1453. width: 50%;
  1454. float: left;
  1455. }
  1456. .hero-two .hero-right {
  1457. width: 50%;
  1458. float: right;
  1459. }
  1460. .max-size-scroll {
  1461. max-height: 240px;
  1462. overflow-y: scroll;
  1463. }
  1464. /*
  1465. #content > *:not(.active) {
  1466. display: none !important;
  1467. }
  1468. */
  1469. h1,
  1470. h2,
  1471. h3,
  1472. h4,
  1473. h5,
  1474. h6 {
  1475. font-weight: normal;
  1476. color: var(--header-primary);
  1477. }
  1478. h1 {
  1479. font-size: 24px;
  1480. line-height: 30px;
  1481. }
  1482. h2,
  1483. h2.popover-title {
  1484. font-size: 20px;
  1485. line-height: 25px;
  1486. }
  1487. h3 {
  1488. font-size: 16px;
  1489. margin: 20px 0 8px;
  1490. font-weight: normal;
  1491. .subtitle {
  1492. display: inline;
  1493. font-size: 12px;
  1494. text-transform: none;
  1495. color: var(--text-muted);
  1496. letter-spacing: initial;
  1497. }
  1498. }
  1499. h4 {
  1500. font-size: 13px;
  1501. text-transform: uppercase;
  1502. }
  1503. h5 {
  1504. font-size: 13px;
  1505. font-weight: bold;
  1506. }
  1507. label,
  1508. .checkbox.form-group label,
  1509. .label {
  1510. text-transform: uppercase;
  1511. color: var(--text-muted);
  1512. display: block;
  1513. font-size: 13px;
  1514. font-weight: normal;
  1515. letter-spacing: 0.05em;
  1516. margin-bottom: 4px;
  1517. text-align: start;
  1518. padding: 0;
  1519. &.input-group-addon {
  1520. color: var(--text-muted);
  1521. }
  1522. /* user-select: none; disabled because of chrome51 https://github.com/martini/zammad/issues/183 */
  1523. h2 & {
  1524. color: inherit !important;
  1525. font-size: inherit;
  1526. font-weight: inherit;
  1527. letter-spacing: 0;
  1528. margin-bottom: 0;
  1529. padding: 0 !important;
  1530. text-transform: inherit;
  1531. }
  1532. }
  1533. /* circumventing the label:not(.inline-label) selector because it's too strong */
  1534. .inline-label,
  1535. .label-success,
  1536. .label-warning,
  1537. .label-danger {
  1538. font-size: inherit;
  1539. font-weight: inherit;
  1540. text-align: inherit;
  1541. color: inherit;
  1542. letter-spacing: 0;
  1543. margin: 0;
  1544. text-transform: none;
  1545. display: inline;
  1546. }
  1547. table {
  1548. .inline-label,
  1549. .label-success,
  1550. .label-warning,
  1551. .label-danger {
  1552. white-space: nowrap; /* for labels in tables that might get crushed view: calendar_subscriptions */
  1553. }
  1554. }
  1555. .label-text {
  1556. @include bidi-style(margin-left, 3px, margin-right, 0);
  1557. @extend %clickable;
  1558. }
  1559. .label-success,
  1560. .label-warning,
  1561. .label-danger {
  1562. background: none;
  1563. }
  1564. .label-success {
  1565. color: var(--supergood-color);
  1566. }
  1567. .label-highlight {
  1568. color: var(--highlight);
  1569. }
  1570. .label-warning {
  1571. color: var(--ok-color);
  1572. }
  1573. .label-danger {
  1574. color: var(--superbad-color);
  1575. }
  1576. .label-subtle {
  1577. color: var(--ghost-color);
  1578. }
  1579. .state-archived,
  1580. .state-draft {
  1581. color: hsl(0, 0%, 68%);
  1582. }
  1583. .state-published {
  1584. color: var(--supergood-color);
  1585. }
  1586. .state-internal {
  1587. color: var(--highlight);
  1588. }
  1589. fieldset {
  1590. margin: 0 -4px;
  1591. @extend .clearfix;
  1592. @include phone {
  1593. width: calc(100% + 8px);
  1594. }
  1595. h2,
  1596. .help-text {
  1597. margin-left: 4px;
  1598. margin-right: 4px;
  1599. }
  1600. }
  1601. .form-field-group {
  1602. padding: 20px;
  1603. background: var(--background-secondary);
  1604. border-radius: 4px;
  1605. margin-bottom: 16px;
  1606. border: 1px solid var(--border);
  1607. .modal-body & {
  1608. background: var(--background-primary);
  1609. }
  1610. > .form-group:last-child {
  1611. margin-bottom: 0;
  1612. }
  1613. }
  1614. fieldset > .form-group {
  1615. padding: 0 4px;
  1616. }
  1617. .form-group {
  1618. margin-bottom: 16px;
  1619. &.form-group--inactive {
  1620. opacity: 0.5;
  1621. }
  1622. &.is-readonly .controls:not(.ignore-readonly) {
  1623. pointer-events: none;
  1624. cursor: not-allowed !important;
  1625. }
  1626. }
  1627. .date.form-group .controls {
  1628. position: relative;
  1629. }
  1630. .form-group + .form-group {
  1631. margin-top: 0;
  1632. }
  1633. .merge-group {
  1634. display: flex;
  1635. align-items: stretch;
  1636. &.merge-group--header {
  1637. h2 {
  1638. margin-bottom: 0;
  1639. }
  1640. label {
  1641. display: inline;
  1642. }
  1643. .merge-source,
  1644. .merge-target {
  1645. border-bottom: 1px solid var(--border);
  1646. }
  1647. }
  1648. .merge-target,
  1649. .merge-source {
  1650. flex: 1;
  1651. width: 33%;
  1652. display: flex;
  1653. flex-direction: column;
  1654. justify-content: flex-end;
  1655. }
  1656. .merge-source,
  1657. .merge-target {
  1658. padding-bottom: 3px;
  1659. border-left: 1px solid var(--border);
  1660. border-right: 1px solid var(--border);
  1661. padding: 7px 13px;
  1662. }
  1663. &:first-of-type {
  1664. margin-top: 6px;
  1665. .merge-source,
  1666. .merge-target {
  1667. border-top: 1px solid var(--border);
  1668. border-radius: 3px 3px 0 0;
  1669. }
  1670. }
  1671. &:last-of-type {
  1672. margin-bottom: 6px;
  1673. .merge-source,
  1674. .merge-target {
  1675. border-bottom: 1px solid var(--border);
  1676. border-radius: 0 0 3px 3px;
  1677. }
  1678. }
  1679. .merge-value {
  1680. margin-bottom: 3px;
  1681. }
  1682. .form-group {
  1683. padding: 0;
  1684. }
  1685. .form-control {
  1686. margin: 0 !important;
  1687. }
  1688. &.merge-group--multi {
  1689. .merge-value + .merge-value {
  1690. margin-top: 12px;
  1691. }
  1692. }
  1693. }
  1694. .merge-controls {
  1695. flex: 1;
  1696. align-self: flex-end;
  1697. }
  1698. .merge-control {
  1699. margin-bottom: 5px;
  1700. height: 31px;
  1701. text-align: center;
  1702. display: flex;
  1703. flex: 1;
  1704. justify-content: space-between;
  1705. align-items: center;
  1706. align-self: flex-end;
  1707. }
  1708. .merge-control-input {
  1709. flex: 1;
  1710. }
  1711. .merge-arrow {
  1712. margin: 0 12px;
  1713. display: flex;
  1714. align-items: center;
  1715. justify-content: center;
  1716. .line-arrow {
  1717. fill: var(--border);
  1718. }
  1719. }
  1720. .formGroup-label {
  1721. padding: 0 2px;
  1722. margin-bottom: 5px;
  1723. position: relative;
  1724. display: flex;
  1725. align-items: center;
  1726. h2 & {
  1727. padding: 0;
  1728. margin: 0;
  1729. }
  1730. label {
  1731. margin: 0;
  1732. }
  1733. .bookmark.icon {
  1734. margin-bottom: -1px;
  1735. }
  1736. .formGroup-metaControl {
  1737. @extend .u-clickable;
  1738. padding: 6px 4px;
  1739. margin: -6px 0 -6px auto;
  1740. font-size: 20px;
  1741. line-height: 1;
  1742. color: var(--interactive-muted);
  1743. }
  1744. }
  1745. .formGroup-bookmark {
  1746. @extend .u-clickable;
  1747. display: flex;
  1748. align-items: center;
  1749. flex-direction: row-reverse;
  1750. width: 30px;
  1751. height: 30px;
  1752. position: absolute;
  1753. right: 0;
  1754. top: -10px;
  1755. }
  1756. .form-group .controls .richtext {
  1757. position: relative;
  1758. height: auto;
  1759. }
  1760. .form-group .help-message {
  1761. cursor: help;
  1762. color: var(--interactive-muted);
  1763. top: -2px;
  1764. position: relative;
  1765. @include bidi-style(margin-left, auto, margin-right, 0);
  1766. .icon-help {
  1767. display: block;
  1768. }
  1769. }
  1770. .form-group:not(.formGroup--halfSize) {
  1771. clear: left;
  1772. }
  1773. .form-group.formGroup--halfSize {
  1774. width: 50%;
  1775. float: left;
  1776. @include phone {
  1777. width: auto;
  1778. float: none;
  1779. }
  1780. .form-control {
  1781. min-width: initial;
  1782. }
  1783. }
  1784. .formGroup--standalone .form-control {
  1785. margin-bottom: 0;
  1786. }
  1787. .controls--select {
  1788. position: relative;
  1789. }
  1790. .controls--datetime {
  1791. position: relative;
  1792. display: flex;
  1793. }
  1794. .controls--date {
  1795. position: relative;
  1796. }
  1797. .controls--datetime {
  1798. position: relative;
  1799. display: flex;
  1800. }
  1801. .controls--date {
  1802. position: relative;
  1803. }
  1804. .controls-label {
  1805. margin: 11px 10px 0;
  1806. flex-shrink: 0;
  1807. .form-control--small + & {
  1808. margin-top: 7px;
  1809. }
  1810. }
  1811. /* do not show safari auto fill icon - see issue #962 */
  1812. input::-webkit-contacts-auto-fill-button {
  1813. visibility: hidden;
  1814. display: none !important;
  1815. pointer-events: none;
  1816. position: absolute;
  1817. right: 0;
  1818. }
  1819. input[type='radio'],
  1820. input[type='checkbox'] {
  1821. margin: 0;
  1822. }
  1823. input[type='text'],
  1824. input[type='password'],
  1825. input[type='email'],
  1826. input[type='date'],
  1827. input[type='url'],
  1828. textarea,
  1829. .form-control,
  1830. .form-group .checkbox,
  1831. .form-group .radio {
  1832. display: block;
  1833. padding: 7px 12px;
  1834. width: 100%;
  1835. height: 41px;
  1836. font-size: 14px;
  1837. font-weight: normal;
  1838. line-height: 25px;
  1839. color: var(--text-normal);
  1840. background: var(--background-secondary);
  1841. border: 1px solid var(--border);
  1842. border-radius: 3px;
  1843. transition: none;
  1844. box-shadow: none;
  1845. outline: none;
  1846. appearance: none;
  1847. @include phone {
  1848. font-size: 16px;
  1849. }
  1850. .modal-body &,
  1851. .box &,
  1852. .sidebar &,
  1853. .hero-unit &,
  1854. .form-field-group &,
  1855. .popover & {
  1856. background: var(--background-primary);
  1857. }
  1858. .modal-body .form-field-group &,
  1859. .formset-inset & {
  1860. background: var(--background-secondary);
  1861. }
  1862. &.form-control--small {
  1863. padding: 5px 8px 4px;
  1864. height: 30px;
  1865. line-height: 20px;
  1866. &[multiple] {
  1867. height: auto;
  1868. }
  1869. &.form-control--multiline {
  1870. min-height: 30px;
  1871. }
  1872. }
  1873. &.form-control--inline {
  1874. display: inline-block;
  1875. width: auto;
  1876. }
  1877. &.form-control--multiline {
  1878. height: auto;
  1879. min-height: 41px;
  1880. }
  1881. &:focus,
  1882. &:focus-within,
  1883. &.focus {
  1884. border-color: var(--border-highlight);
  1885. box-shadow: 0 0 0 3px var(--shadow-highlight);
  1886. }
  1887. &.is-disabled, // .is-disabled should not be used - legacy support
  1888. &[disabled],
  1889. &[readonly] {
  1890. opacity: 0.38;
  1891. &:focus,
  1892. &.focus {
  1893. border-color: var(--border-highlight);
  1894. }
  1895. }
  1896. &.is-disabled, // .is-disabled should not be used
  1897. &[disabled] {
  1898. cursor: not-allowed;
  1899. }
  1900. }
  1901. input[type='url'] {
  1902. min-width: 400px;
  1903. }
  1904. .sidebar-content input[type='url'] {
  1905. min-width: inherit;
  1906. }
  1907. .user-select.form-control {
  1908. padding-right: 35px;
  1909. min-width: 300px;
  1910. }
  1911. input[type='time'] {
  1912. width: auto;
  1913. padding-left: 6px;
  1914. padding-right: 6px;
  1915. }
  1916. input.timeframe,
  1917. input.time {
  1918. box-sizing: content-box;
  1919. padding: 0 6px;
  1920. height: 39px;
  1921. line-height: 42px;
  1922. flex-shrink: 0;
  1923. &.form-control--small {
  1924. line-height: 20px;
  1925. padding-top: 0;
  1926. padding-bottom: 0;
  1927. }
  1928. }
  1929. input.timeframe {
  1930. width: 5.5ch;
  1931. }
  1932. input.time {
  1933. width: 4.5ch;
  1934. }
  1935. input.time.time--12 {
  1936. width: 7.5ch;
  1937. }
  1938. .tokenfield.focus {
  1939. border-color: var(--border-highlight);
  1940. box-shadow: 0 0 0 3px var(--shadow-highlight);
  1941. }
  1942. .richtext.form-control {
  1943. padding: 0;
  1944. }
  1945. .richtext.form-control [contenteditable] {
  1946. height: auto;
  1947. min-height: 82px;
  1948. background: none;
  1949. padding: 7px 12px 35px;
  1950. }
  1951. .richtext.form-control [contenteditable='false'] {
  1952. cursor: not-allowed;
  1953. opacity: 0.38;
  1954. border-color: var(--border);
  1955. padding: unset;
  1956. &:focus,
  1957. &.focus {
  1958. border-color: var(--border-highlight);
  1959. }
  1960. }
  1961. .richtext.form-control .attachments.attachments--list:not(:empty) {
  1962. border-top: 1px solid var(--background-modifier-border);
  1963. white-space: normal;
  1964. margin: 0 -12px -28px;
  1965. padding: 25px 20px 21px 72px;
  1966. position: relative;
  1967. line-height: 1;
  1968. }
  1969. .richtext-controls {
  1970. display: flex;
  1971. margin: 7px 7px 0;
  1972. padding: 3px 5px 10px;
  1973. border-bottom: 1px solid var(--background-modifier-border);
  1974. @include phone {
  1975. flex-wrap: nowrap;
  1976. }
  1977. }
  1978. textarea.form-control {
  1979. height: 118px;
  1980. resize: vertical;
  1981. &[rows] {
  1982. height: auto;
  1983. }
  1984. }
  1985. select.form-control:not([multiple]) {
  1986. @include bidi-style(padding-right, 34px, padding-left, 12px);
  1987. word-wrap: normal;
  1988. }
  1989. .form-control.is-hidden {
  1990. display: none;
  1991. }
  1992. .form-control.form-control--borderless {
  1993. border: none;
  1994. padding: 0;
  1995. line-height: inherit;
  1996. height: auto;
  1997. &:focus {
  1998. box-shadow: none;
  1999. }
  2000. }
  2001. select[multiple],
  2002. select[multiple]:focus {
  2003. option:checked {
  2004. color: var(--interactive-primary);
  2005. background: var(--ghost-color);
  2006. }
  2007. }
  2008. .select.form-group,
  2009. .user_autocompletion.form-group {
  2010. .form-control:not([multiple]) {
  2011. padding-right: 21px;
  2012. }
  2013. }
  2014. .form-control + .icon-arrow-down,
  2015. .dropdown-arrow {
  2016. position: absolute;
  2017. @include bidi-style(right, 12px, left, auto);
  2018. top: 50%;
  2019. margin-top: -3px;
  2020. width: 13px;
  2021. height: 7px;
  2022. @extend .u-unclickable;
  2023. }
  2024. select::-ms-expand {
  2025. display: none;
  2026. }
  2027. .has-error .form-control,
  2028. .has-error .form-control:focus,
  2029. .has-error .form-control.focus {
  2030. box-shadow: none;
  2031. border-color: var(--danger-color) !important;
  2032. }
  2033. input.has-error {
  2034. box-shadow: none;
  2035. border-color: var(--danger-color) !important;
  2036. }
  2037. .help-inline:not(:empty) {
  2038. color: var(--danger-color);
  2039. padding: 2px;
  2040. font-size: 13px;
  2041. }
  2042. .zammad-form-modal-body {
  2043. background: var(--background-primary) !important;
  2044. }
  2045. /* use on input[type=radio] */
  2046. .primary-email-switch {
  2047. display: none;
  2048. & + label {
  2049. font-size: 11px;
  2050. color: var(--interactive-muted);
  2051. margin: 0;
  2052. @extend %clickable;
  2053. }
  2054. &:checked + label {
  2055. color: var(--highlight);
  2056. }
  2057. }
  2058. .primary-email-switch-label {
  2059. text-overflow: ellipsis;
  2060. overflow: hidden;
  2061. white-space: nowrap;
  2062. }
  2063. .primary-email-switch + label {
  2064. align-self: stretch;
  2065. padding: 0 5px;
  2066. display: flex;
  2067. align-items: center;
  2068. }
  2069. .controls--button {
  2070. display: flex;
  2071. flex-wrap: wrap;
  2072. .controls {
  2073. flex: 1;
  2074. }
  2075. .help-inline,
  2076. .help-block {
  2077. flex-basis: 100%;
  2078. }
  2079. input,
  2080. .form-control {
  2081. flex: 1 1 0%;
  2082. @include bidi-style(border-right-width, 0, border-left-width, 1px);
  2083. @include bidi-style(
  2084. border-top-right-radius,
  2085. 0,
  2086. border-top-left-radius,
  2087. 3px
  2088. );
  2089. @include bidi-style(
  2090. border-bottom-right-radius,
  2091. 0,
  2092. border-bottom-left-radius,
  2093. 3px
  2094. );
  2095. &:focus + .controls-button {
  2096. .controls-button-inner {
  2097. border-color: var(--border-highlight);
  2098. }
  2099. /*
  2100. fake the form-control outline
  2101. */
  2102. &::before {
  2103. content: '';
  2104. position: absolute;
  2105. left: 0;
  2106. @include rtl(left, -3px);
  2107. top: -3px;
  2108. right: -3px;
  2109. @include rtl(right, 0);
  2110. bottom: -3px;
  2111. background: var(--shadow-highlight);
  2112. @include bidi-style(
  2113. border-radius,
  2114. 0 7px 7px 0,
  2115. border-radius,
  2116. 7px 0 0 7px
  2117. );
  2118. }
  2119. }
  2120. }
  2121. }
  2122. .controls-button {
  2123. position: relative;
  2124. display: flex;
  2125. &.is-active .icon {
  2126. fill: var(--highlight);
  2127. }
  2128. }
  2129. .controls-button-inner {
  2130. display: flex;
  2131. justify-content: center;
  2132. align-items: center;
  2133. padding: 0 10px;
  2134. background: var(--background-secondary);
  2135. position: relative;
  2136. border: 1px solid var(--border);
  2137. @include bidi-style(border-radius, 0 3px 3px 0, border-radius, 3px 0 0 3px);
  2138. .icon {
  2139. fill: var(--text-muted);
  2140. }
  2141. &:hover .icon {
  2142. fill: currentColor;
  2143. }
  2144. }
  2145. .searchfield {
  2146. position: relative;
  2147. margin-bottom: 20px;
  2148. .icon-magnifier,
  2149. .search-loader {
  2150. @include bidi-style(left, 15px, right, auto);
  2151. top: 12px;
  2152. width: 17px;
  2153. height: 17px;
  2154. position: absolute;
  2155. fill: var(--text-muted);
  2156. transition: 0.1s 0s;
  2157. pointer-events: none;
  2158. }
  2159. .search-loader {
  2160. z-index: 2;
  2161. opacity: 0;
  2162. .icon {
  2163. width: 17px;
  2164. height: 17px;
  2165. }
  2166. }
  2167. input[type='search'] {
  2168. appearance: textfield;
  2169. border-radius: 19px;
  2170. padding: 0 17px 0 42px;
  2171. @include rtl(padding, 0 42px 0 17px);
  2172. will-change: transform;
  2173. &.is-empty ~ .empty-search,
  2174. &:placeholder-shown ~ .empty-search {
  2175. visibility: hidden;
  2176. }
  2177. &.loading {
  2178. ~ .search-loader {
  2179. opacity: 1;
  2180. transition: 0.2s 0.5s;
  2181. }
  2182. ~ .icon-magnifier {
  2183. opacity: 0;
  2184. transition: 0.2s 0.5s;
  2185. }
  2186. }
  2187. }
  2188. input[type='search']::-webkit-search-cancel-button,
  2189. input[type='search']::-webkit-search-decoration {
  2190. -webkit-appearance: none;
  2191. }
  2192. .empty-search {
  2193. height: 100%;
  2194. width: 50px;
  2195. visibility: visible;
  2196. .icon {
  2197. width: 13px;
  2198. height: 13px;
  2199. fill: var(--text-muted);
  2200. opacity: 0.5;
  2201. }
  2202. }
  2203. }
  2204. .content {
  2205. overflow: auto;
  2206. -webkit-overflow-scrolling: touch;
  2207. position: relative;
  2208. background-color: var(--background-primary);
  2209. @include phone {
  2210. @include bidi-style(margin-left, $mobileNavigationWidth, margin-right, 0);
  2211. -webkit-overflow-scrolling: touch;
  2212. .navigation:hover ~ &,
  2213. .navigation.is-hovered ~ &,
  2214. .navigation:active ~ & {
  2215. transform: translateX(
  2216. #{$mobileNavigationWidthOpen - $mobileNavigationWidth}
  2217. );
  2218. @include rtl(
  2219. transform,
  2220. translateX(-#{$mobileNavigationWidthOpen - $mobileNavigationWidth})
  2221. );
  2222. }
  2223. }
  2224. }
  2225. .content.fit {
  2226. padding: 10px;
  2227. background: var(--background-tertiary);
  2228. z-index: 501;
  2229. }
  2230. .fullscreenMessage {
  2231. padding: 22px;
  2232. display: flex;
  2233. align-items: center;
  2234. justify-content: center;
  2235. flex: 1;
  2236. .icon {
  2237. @include bidi-style(margin-right, 14px, margin-left, 0);
  2238. }
  2239. .icon-error {
  2240. margin-top: -2px;
  2241. width: 19px;
  2242. height: 19px;
  2243. }
  2244. .icon-checkmark {
  2245. width: 21px;
  2246. height: 18px;
  2247. margin-right: 11px;
  2248. margin-top: -2px;
  2249. }
  2250. h2 {
  2251. margin: 0;
  2252. }
  2253. }
  2254. .fullscreenMessage--placeholder {
  2255. flex-direction: column;
  2256. .icon {
  2257. width: 100px;
  2258. height: 100px;
  2259. }
  2260. h2 {
  2261. margin: 15px;
  2262. color: var(--text-muted);
  2263. }
  2264. }
  2265. .selected-clue {
  2266. position: relative;
  2267. @extend .zIndex-11;
  2268. pointer-events: none;
  2269. }
  2270. .modal--clue {
  2271. display: flex;
  2272. align-items: center;
  2273. justify-content: center;
  2274. z-index: 500;
  2275. .modal-backdrop {
  2276. bottom: 0;
  2277. width: 200%;
  2278. height: 200%;
  2279. left: -100%;
  2280. top: -100%;
  2281. background: radial-gradient(
  2282. var(--backdrop-clue-start),
  2283. var(--backdrop-clue-end)
  2284. );
  2285. }
  2286. .modal-spacer {
  2287. position: absolute;
  2288. opacity: 0;
  2289. padding: 18px;
  2290. @extend .zIndex-11;
  2291. }
  2292. .modal-arrow {
  2293. background: inherit;
  2294. width: 20px;
  2295. height: 20px;
  2296. position: absolute;
  2297. margin: -10px 0 53px -10px;
  2298. left: 0;
  2299. top: 50%;
  2300. transform: rotate(45deg);
  2301. }
  2302. .modal-spacer[data-position='above'] .modal-arrow {
  2303. left: 50%;
  2304. top: 100%;
  2305. background: var(--background-primary);
  2306. }
  2307. .modal-spacer[data-position='below'] .modal-arrow {
  2308. left: 50%;
  2309. top: 0;
  2310. }
  2311. .modal-spacer[data-position='left'] .modal-arrow {
  2312. left: 100%;
  2313. top: 50%;
  2314. }
  2315. .modal-content {
  2316. border: none;
  2317. width: 300px;
  2318. box-shadow: 0 8px 17px 0 rgba(0, 0, 0, 0.1),
  2319. 0 6px 20px 0 rgba(0, 0, 0, 0.05);
  2320. @include phone {
  2321. width: 280px;
  2322. }
  2323. }
  2324. .modal-controls {
  2325. background: var(--background-primary);
  2326. margin: 23px 0 0;
  2327. padding: 10px;
  2328. display: flex;
  2329. align-items: center;
  2330. justify-content: space-between;
  2331. }
  2332. .modal-control {
  2333. padding-left: 14px;
  2334. padding-right: 14px;
  2335. .btn.is-disabled {
  2336. color: var(--text-normal);
  2337. }
  2338. }
  2339. .modal-header {
  2340. padding-bottom: 7px;
  2341. font-size: 18px;
  2342. }
  2343. .modal-body {
  2344. max-width: 340px;
  2345. }
  2346. }
  2347. .knowledge-base-content-can-be-published-dialog-current {
  2348. margin-bottom: 20px;
  2349. text-align: center;
  2350. }
  2351. .knowledge-base-content-can-be-published-dialog {
  2352. display: flex;
  2353. .side-panel {
  2354. flex-grow: 1;
  2355. width: 300px;
  2356. }
  2357. .call-to-action {
  2358. display: flex;
  2359. align-items: center;
  2360. justify-content: center;
  2361. }
  2362. }
  2363. .kb-sidebar-block-content {
  2364. & .kb-item--invisible {
  2365. opacity: 0.5;
  2366. }
  2367. & .kb-item--missing-translation,
  2368. & .kb-item--missing-translation:active,
  2369. & .kb-item--missing-translation:focus {
  2370. color: hsl(45, 98%, 63%);
  2371. }
  2372. }
  2373. .kb-menu-preview {
  2374. margin-bottom: 1em;
  2375. &-container {
  2376. display: flex;
  2377. flex-wrap: wrap;
  2378. justify-content: flex-end;
  2379. border: 1px solid var(--border-alt);
  2380. &--footer {
  2381. justify-content: center;
  2382. }
  2383. }
  2384. a,
  2385. span {
  2386. font-size: 14px;
  2387. padding: 0.5em 1em;
  2388. white-space: nowrap;
  2389. text-decoration: none;
  2390. line-height: 2em;
  2391. }
  2392. a {
  2393. color: inherit;
  2394. }
  2395. .label {
  2396. text-transform: none;
  2397. }
  2398. }
  2399. .modified-icon {
  2400. position: relative;
  2401. line-height: 1;
  2402. display: block;
  2403. .nav-pills > li > a & {
  2404. align-self: center;
  2405. }
  2406. .modified-icon-modifier {
  2407. bottom: 0;
  2408. right: 0;
  2409. position: absolute;
  2410. z-index: 1;
  2411. fill: var(--background-primary);
  2412. margin: 0 -2px -1px 0;
  2413. .nav-pills > li > a & {
  2414. fill: var(--background-secondary);
  2415. }
  2416. .nav-pills > li:hover > a & {
  2417. fill: var(--background-secondary-hover);
  2418. }
  2419. }
  2420. .icon-knowledge-base-answer + .modified-icon-modifier {
  2421. margin: 0 -1px 2px 0;
  2422. }
  2423. .icon-published-modifier {
  2424. display: none;
  2425. }
  2426. }
  2427. kbd {
  2428. background: var(--background-modifier-accent);
  2429. border-radius: 3px;
  2430. border: 1px solid var(--background-modifier-border);
  2431. box-shadow: var(--elevation-stroke);
  2432. display: inline-block;
  2433. font-size: 12px;
  2434. margin: 0 1px;
  2435. padding: 0 4px;
  2436. vertical-align: top;
  2437. }
  2438. .form-stacked .checkbox label {
  2439. color: inherit;
  2440. font-size: 13px;
  2441. text-transform: inherit;
  2442. vertical-align: baseline;
  2443. letter-spacing: inherit;
  2444. }
  2445. .pagination {
  2446. margin: 0 0 0 19px;
  2447. @include rtl(margin, 0 19px 0 0);
  2448. display: flex;
  2449. }
  2450. .pagination-counter {
  2451. margin: 0 0 0 19px;
  2452. @include rtl(margin, 0 19px 0 0);
  2453. line-height: 33px;
  2454. color: var(--text-muted);
  2455. }
  2456. .page-header {
  2457. margin: 0 0 15px;
  2458. padding: 0;
  2459. display: flex;
  2460. align-items: center;
  2461. flex-wrap: wrap;
  2462. width: 100%;
  2463. @include phone {
  2464. align-items: flex-start;
  2465. flex-wrap: nowrap;
  2466. }
  2467. }
  2468. .page-header--center {
  2469. justify-content: center;
  2470. }
  2471. .page-header-title {
  2472. display: flex;
  2473. align-items: center;
  2474. .zammad-switch {
  2475. @include bidi-style(margin-right, 9px, margin-left, 0);
  2476. }
  2477. h1,
  2478. h2 {
  2479. margin-top: 9px;
  2480. margin-bottom: 7px;
  2481. @include phone {
  2482. margin-top: 4px;
  2483. }
  2484. }
  2485. .suffix {
  2486. margin-left: 5px;
  2487. margin-top: 6px;
  2488. display: inline-block;
  2489. @include phone {
  2490. margin-top: 4px;
  2491. }
  2492. }
  2493. }
  2494. .page-header-center {
  2495. justify-self: center;
  2496. @include bidi-style(padding-left, 9px, padding-right, 0);
  2497. margin: 0 auto;
  2498. & + .page-header-meta {
  2499. @include bidi-style(margin-left, 0, margin-right, auto);
  2500. flex: none;
  2501. }
  2502. }
  2503. .page-header-meta {
  2504. @include bidi-style(margin-left, auto, margin-right, 0);
  2505. @include bidi-style(padding-left, 20px, padding-right, 0);
  2506. display: flex;
  2507. justify-content: flex-end;
  2508. flex: 1;
  2509. min-width: 0; /* firefox flexbug */
  2510. @include phone {
  2511. flex: 0 1 auto;
  2512. min-width: auto;
  2513. }
  2514. .btn {
  2515. overflow: hidden;
  2516. text-overflow: ellipsis;
  2517. white-space: nowrap;
  2518. @include phone {
  2519. flex-shrink: 0;
  2520. }
  2521. }
  2522. .btn + .btn {
  2523. @include bidi-style(margin-left, 9px, margin-right, 0);
  2524. }
  2525. }
  2526. .page-content {
  2527. .formGroup-label label,
  2528. .label {
  2529. color: var(--header-secondary);
  2530. }
  2531. .content-controls-align-right {
  2532. display: flex;
  2533. justify-content: flex-end;
  2534. }
  2535. }
  2536. .page-body--two-column {
  2537. display: flex;
  2538. }
  2539. .page-aside {
  2540. @include bidi-style(padding-right, 20px, padding-left, 0);
  2541. @include bidi-style(border-right, 1px solid var(--border), border-left, none);
  2542. @include bidi-style(margin-right, 20px, margin-left, 0);
  2543. width: 240px;
  2544. flex-shrink: 0;
  2545. flex-grow: 0;
  2546. }
  2547. .page-main {
  2548. flex: 1;
  2549. }
  2550. .page-loading {
  2551. min-height: 500px;
  2552. flex-grow: 1;
  2553. display: flex;
  2554. align-items: center;
  2555. justify-content: center;
  2556. }
  2557. .page-loading-label {
  2558. @include bidi-style(margin-left, 10px, margin-right, 0);
  2559. margin-top: 1px;
  2560. }
  2561. .dropdown-menu .count {
  2562. padding-top: 1px;
  2563. @include bidi-style(margin-left, 10px, margin-right, 0);
  2564. }
  2565. .help-text,
  2566. .help-block {
  2567. color: var(--text-muted);
  2568. }
  2569. .help-block {
  2570. margin: 0;
  2571. font-size: 13px;
  2572. &.help-block--center {
  2573. text-align: center;
  2574. }
  2575. }
  2576. .help-block:not(:empty) {
  2577. margin: 8px 2px 0;
  2578. }
  2579. /* replace music icon with attachment */
  2580. .icon-attachment {
  2581. background-position: -24px 0;
  2582. }
  2583. /*
  2584. * hero-unit (used on getstarted, login, signup)
  2585. */
  2586. .hero-unit {
  2587. width: 500px;
  2588. margin: 10px 0;
  2589. padding: 23px 25px;
  2590. border: 1px solid var(--border);
  2591. color: var(--text-normal);
  2592. background-color: var(--background-secondary);
  2593. border-radius: 6px;
  2594. box-shadow: 0 8px 17px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);
  2595. @include phone {
  2596. width: auto;
  2597. padding: 12px 15px;
  2598. }
  2599. .inline-label {
  2600. font-size: inherit;
  2601. }
  2602. }
  2603. .hero-unit h1,
  2604. .hero-unit h2 {
  2605. margin-top: 0;
  2606. }
  2607. .getstarted,
  2608. .reset_password,
  2609. .request_admin_password_auth,
  2610. .signup,
  2611. .darkBackground,
  2612. .login {
  2613. padding: 10px;
  2614. background: var(--background-tertiary);
  2615. }
  2616. .content.getstarted {
  2617. padding: 0;
  2618. .main {
  2619. padding: 20px 10px;
  2620. }
  2621. }
  2622. .login,
  2623. .reset_password,
  2624. .request_admin_password_auth,
  2625. .signup {
  2626. padding: 24px;
  2627. color: var(--text-muted);
  2628. a {
  2629. color: var(--text-inverted);
  2630. &.text-muted {
  2631. color: inherit;
  2632. }
  2633. }
  2634. }
  2635. .login {
  2636. .form-controls {
  2637. flex-direction: column;
  2638. .btn {
  2639. width: 100%;
  2640. }
  2641. .btn--text {
  2642. display: block;
  2643. overflow: hidden;
  2644. text-overflow: ellipsis;
  2645. margin: initial;
  2646. text-align: center;
  2647. }
  2648. .btn + .btn:not(.align-right) {
  2649. margin-left: initial;
  2650. margin-right: initial;
  2651. }
  2652. }
  2653. }
  2654. .login .hero-unit {
  2655. width: 430px;
  2656. margin: 0 0 28px;
  2657. @include phone {
  2658. width: auto;
  2659. }
  2660. }
  2661. .login .company-logo {
  2662. max-height: 100px;
  2663. max-width: 200px;
  2664. margin: 20px auto 42px;
  2665. display: block;
  2666. @include phone {
  2667. margin: 15px auto 28px;
  2668. }
  2669. }
  2670. .login p,
  2671. .reset_password p,
  2672. .signup p {
  2673. margin: 0 auto 22px;
  2674. max-width: 400px;
  2675. text-align: center;
  2676. @include phone {
  2677. margin: 0 auto 15px;
  2678. }
  2679. }
  2680. .reset_password p,
  2681. .signup p {
  2682. padding-top: 28px;
  2683. }
  2684. .login hr {
  2685. margin: 0 auto 22px;
  2686. width: 100%;
  2687. max-width: 400px;
  2688. }
  2689. .login p a,
  2690. .reset_password p a,
  2691. .signup p a {
  2692. text-decoration: underline;
  2693. }
  2694. .poweredBy {
  2695. display: flex;
  2696. align-items: center;
  2697. justify-content: center;
  2698. color: hsl(233, 7%, 26%);
  2699. margin: 34px 0 10px -16px;
  2700. @include rtl(margin, 34px -16px 10px 0);
  2701. cursor: default;
  2702. a {
  2703. color: inherit;
  2704. }
  2705. .icon-logo {
  2706. @include bidi-style(margin-right, 8px, margin-left, 0);
  2707. margin-top: -11px;
  2708. }
  2709. .logotype {
  2710. @include bidi-style(margin-left, 7px, margin-left, 0);
  2711. margin-top: -3px;
  2712. }
  2713. }
  2714. .fullscreen {
  2715. @extend .fit;
  2716. display: flex;
  2717. flex-direction: column;
  2718. align-items: center;
  2719. width: 100%;
  2720. height: 100%;
  2721. min-height: 100vh;
  2722. overflow: auto;
  2723. -webkit-overflow-scrolling: touch;
  2724. }
  2725. .fullscreen p {
  2726. color: var(--text-muted);
  2727. }
  2728. .fullscreen-center {
  2729. margin: auto;
  2730. }
  2731. .fullscreen-body {
  2732. text-align: start;
  2733. display: inline-block;
  2734. }
  2735. ol.tabs {
  2736. list-style: decimal inside;
  2737. }
  2738. ol.tabs li {
  2739. display: list-item;
  2740. }
  2741. .tabs {
  2742. display: flex;
  2743. padding: 0;
  2744. margin-bottom: 20px;
  2745. color: var(--interactive-muted);
  2746. border: 1px solid var(--border);
  2747. border-radius: 3px;
  2748. background: var(--background-secondary);
  2749. @include phone {
  2750. overflow: auto;
  2751. -webkit-overflow-scrolling: touch;
  2752. }
  2753. }
  2754. .tabs-condensed .tab {
  2755. padding-left: 5px;
  2756. padding-right: 5px;
  2757. }
  2758. .progress-tabs .tab {
  2759. cursor: default;
  2760. }
  2761. .tab {
  2762. color: inherit;
  2763. height: 35px;
  2764. padding: 8px 20px;
  2765. display: flex;
  2766. justify-content: center;
  2767. align-items: center;
  2768. border-right: 1px solid var(--border);
  2769. min-width: 0;
  2770. flex-grow: 1;
  2771. @extend .u-clickable;
  2772. @include phone {
  2773. flex-shrink: 0;
  2774. display: block;
  2775. text-align: center;
  2776. }
  2777. &.active {
  2778. color: var(--text-inverted);
  2779. background: var(--button-active);
  2780. box-shadow: none;
  2781. flex-shrink: 0;
  2782. }
  2783. &-name {
  2784. min-width: 20px;
  2785. text-align: center;
  2786. white-space: nowrap;
  2787. overflow: hidden;
  2788. text-overflow: ellipsis;
  2789. }
  2790. &-badge {
  2791. flex-shrink: 0;
  2792. @include bidi-style(margin-left, 6px, margin-right, 0);
  2793. font-size: 13px;
  2794. margin-right: -7px;
  2795. background: var(--background-modifier-accent);
  2796. min-width: 21px;
  2797. padding: 0 7px;
  2798. height: 21px;
  2799. line-height: 21px;
  2800. white-space: nowrap;
  2801. text-align: center;
  2802. display: inline-block;
  2803. border-radius: 999px;
  2804. }
  2805. }
  2806. .tab-dropdown {
  2807. position: relative;
  2808. display: flex;
  2809. align-items: center;
  2810. justify-content: center;
  2811. .arrow {
  2812. @include bidi-style(margin-left, 10px, margin-right, 0);
  2813. opacity: 0.75;
  2814. }
  2815. .icon {
  2816. fill: var(--text-muted);
  2817. }
  2818. &.active {
  2819. background: var(--background-secondary);
  2820. .icon {
  2821. opacity: 1;
  2822. }
  2823. }
  2824. }
  2825. .tab:first-child {
  2826. border-radius: 3px 0 0 3px;
  2827. @include rtl(border-radius, 0 3px 3px 0);
  2828. @include bidi-style(border-right-width, 1px, border-right-width, 0);
  2829. }
  2830. .tab:last-child:not(:only-child) {
  2831. border-radius: 0 3px 3px 0;
  2832. @include bidi-style(border-right-width, 0, border-right-width, 1px);
  2833. @include rtl(border-radius, 3px 0 0 3px);
  2834. }
  2835. .tab:only-child {
  2836. border-radius: 3px;
  2837. @include bidi-style(border-right-width, 0, border-right-width, 1px);
  2838. }
  2839. .tabs.tabs--inline {
  2840. display: inline-flex;
  2841. margin-left: 0;
  2842. margin-right: 0;
  2843. .tab {
  2844. flex: none;
  2845. &:nth-last-child(2) {
  2846. @include bidi-style(border-right-width, 0, border-right-width, 1px);
  2847. }
  2848. }
  2849. }
  2850. .tabs--big {
  2851. margin: 28px auto;
  2852. font-size: 14px;
  2853. border-radius: 8px;
  2854. @include phone {
  2855. margin: 5px auto 28px;
  2856. }
  2857. .tab {
  2858. height: auto;
  2859. padding: 10px 23px 9px;
  2860. @include phone {
  2861. padding: 8px 20px;
  2862. }
  2863. &:first-child {
  2864. border-radius: 8px 0 0 8px;
  2865. @include rtl(border-radius, 0 8px 8px 0);
  2866. }
  2867. &:last-child {
  2868. border-radius: 0 8px 8px 0;
  2869. @include rtl(border-radius, 8px 0 0 8px);
  2870. }
  2871. &:only-child {
  2872. border-radius: 8px;
  2873. }
  2874. }
  2875. .tab-dropdown {
  2876. padding-left: 18px;
  2877. padding-right: 15px;
  2878. @include rtl(padding-left, 15px);
  2879. @include rtl(padding-right, 18px);
  2880. }
  2881. }
  2882. .dashboard .tabs--big {
  2883. width: 50%;
  2884. @include phone {
  2885. width: auto;
  2886. }
  2887. }
  2888. .separator {
  2889. margin: 20px 0;
  2890. position: relative;
  2891. text-align: center;
  2892. }
  2893. .separator::before {
  2894. content: '';
  2895. position: absolute;
  2896. width: 100%;
  2897. height: 1px;
  2898. top: 50%;
  2899. left: 0;
  2900. background: var(--border);
  2901. }
  2902. .separator-text {
  2903. padding: 0 10px;
  2904. color: var(--text-muted);
  2905. font-size: 12px;
  2906. letter-spacing: 0.05em;
  2907. text-transform: uppercase;
  2908. background: var(--background-secondary);
  2909. display: inline-block;
  2910. position: relative;
  2911. }
  2912. .auth-providers {
  2913. display: flex;
  2914. flex-wrap: wrap;
  2915. > form {
  2916. display: flex;
  2917. flex-grow: 1;
  2918. min-width: calc(100% / 2 - 8px);
  2919. &:last-child {
  2920. .auth-provider {
  2921. margin-bottom: initial;
  2922. }
  2923. }
  2924. }
  2925. }
  2926. .auth-provider {
  2927. height: 40px;
  2928. padding: 0 10px 0 7px;
  2929. margin-bottom: 14px;
  2930. margin-right: 14px;
  2931. color: white !important;
  2932. line-height: 23px;
  2933. border-radius: 4px;
  2934. display: flex;
  2935. flex-grow: 1;
  2936. justify-content: center;
  2937. align-items: center;
  2938. text-decoration: none;
  2939. border: none;
  2940. text-align: initial;
  2941. white-space: nowrap;
  2942. overflow: hidden;
  2943. @extend %clickable;
  2944. &.auth-provider--wide {
  2945. padding-right: 25px;
  2946. }
  2947. &.auth-provider--facebook {
  2948. background: #4f699c;
  2949. }
  2950. &.auth-provider--google {
  2951. background: hsl(0, 0%, 93%);
  2952. color: hsl(0, 0%, 46%) !important;
  2953. }
  2954. &.auth-provider--twitter {
  2955. background: #2daee1;
  2956. }
  2957. &.auth-provider--email {
  2958. background: #ffd22e;
  2959. }
  2960. &.auth-provider--linkedin {
  2961. background: #006087;
  2962. }
  2963. &.auth-provider--github {
  2964. background: hsl(0, 0%, 27%);
  2965. }
  2966. &.auth-provider--gitlab {
  2967. background: hsl(10, 78%, 53%);
  2968. }
  2969. &.auth-provider--microsoft {
  2970. background: hsl(0, 0%, 93%);
  2971. color: hsl(0, 0%, 46%) !important;
  2972. }
  2973. &.auth-provider--weibo {
  2974. background: hsl(0, 0%, 27%);
  2975. }
  2976. &.auth-provider--saml {
  2977. background: hsl(0, 0%, 27%);
  2978. }
  2979. &.auth-provider--sso {
  2980. background: #454545;
  2981. }
  2982. .provider-icon {
  2983. width: 29px;
  2984. height: 24px;
  2985. flex-shrink: 0;
  2986. @include bidi-style(margin-right, 10px, margin-left, 0);
  2987. }
  2988. .provider-name {
  2989. overflow: hidden;
  2990. text-overflow: ellipsis;
  2991. }
  2992. }
  2993. /*
  2994. global icon definitions
  2995. =======================
  2996. */
  2997. [data-font] {
  2998. font-style: normal;
  2999. text-rendering: auto;
  3000. font-feature-settings: 'liga';
  3001. -webkit-font-smoothing: antialiased;
  3002. -moz-osx-font-smoothing: grayscale;
  3003. font-size: 16px;
  3004. }
  3005. [data-font='FontAwesome'] {
  3006. font-size: 14px;
  3007. }
  3008. [data-font='material'] {
  3009. font-size: 18px;
  3010. }
  3011. [data-font='ionicons'] {
  3012. font-size: 18px;
  3013. }
  3014. .icon {
  3015. fill: currentColor;
  3016. }
  3017. [class*='icon-file-'] {
  3018. color: var(--file-icon-background);
  3019. fill: var(--file-icon-color);
  3020. }
  3021. .icon-arrow-down,
  3022. .icon-arrow-up,
  3023. .icon-arrow-left,
  3024. .icon-arrow-right {
  3025. fill: var(--text-muted);
  3026. opacity: 0.39;
  3027. .btn--action & {
  3028. opacity: var(--interactive-primary);
  3029. }
  3030. }
  3031. .icon-arrow-left,
  3032. .icon-arrow-right {
  3033. &.arrow--x2 {
  3034. width: 14px;
  3035. height: 26px;
  3036. }
  3037. }
  3038. .icon-arrow-left,
  3039. .icon-arrow-right,
  3040. .icon-line-left-arrow,
  3041. .icon-line-right-arrow,
  3042. .icon-long-arrow-right {
  3043. @include rtl(transform, scaleX(-1));
  3044. }
  3045. .arrow--disabled {
  3046. opacity: 0.23;
  3047. }
  3048. .icon-checkmark {
  3049. fill: var(--supergood-color);
  3050. }
  3051. .icon-error {
  3052. fill: var(--superbad-color);
  3053. }
  3054. .icon-danger {
  3055. color: hsl(41, 100%, 49%);
  3056. }
  3057. .icon-draggable {
  3058. opacity: 0.3;
  3059. .table-draggable & {
  3060. vertical-align: middle;
  3061. cursor: move;
  3062. }
  3063. }
  3064. .loading.icon {
  3065. display: inline-block;
  3066. width: 30px;
  3067. height: 30px;
  3068. background: hsl(145, 51%, 45%);
  3069. animation: rotateplane 1.2s infinite ease-in-out;
  3070. }
  3071. .small.loading.icon {
  3072. width: 20px;
  3073. height: 20px;
  3074. }
  3075. .tiny.loading.icon {
  3076. width: 12px;
  3077. height: 12px;
  3078. }
  3079. .loading.icon.muted {
  3080. background: var(--ghost-color);
  3081. }
  3082. @keyframes rotateplane {
  3083. 0% {
  3084. transform: perspective(120px) rotateX(0deg) rotateY(0deg);
  3085. }
  3086. 50% {
  3087. transform: perspective(120px) rotateX(-180.1deg) rotateY(0deg);
  3088. }
  3089. 100% {
  3090. transform: perspective(120px) rotateX(-180deg) rotateY(-179.9deg);
  3091. }
  3092. }
  3093. .icon-spinner-medium {
  3094. animation: spinIcon 0.9s steps(12) infinite;
  3095. }
  3096. .icon-spinner-small {
  3097. animation: spinIcon 0.9s steps(8) infinite;
  3098. }
  3099. @keyframes spinIcon {
  3100. to {
  3101. transform: rotate(-1turn);
  3102. }
  3103. }
  3104. .color-swatch {
  3105. padding: 2px;
  3106. margin: -2px 0 -4px;
  3107. @extend %clickable;
  3108. /* :after technique for bigger click area */
  3109. &::after {
  3110. content: '';
  3111. display: inline-block;
  3112. height: 11px;
  3113. width: 11px;
  3114. border-radius: 100%;
  3115. background: currentColor;
  3116. }
  3117. }
  3118. .icon-status {
  3119. fill: var(--ok-color);
  3120. &.inline {
  3121. margin-top: -3px;
  3122. vertical-align: middle;
  3123. }
  3124. &.inactive {
  3125. fill: var(--ghost-color);
  3126. }
  3127. &.ok {
  3128. fill: var(--supergood-color);
  3129. }
  3130. &.error {
  3131. fill: var(--superbad-color);
  3132. }
  3133. &.neutral {
  3134. fill: var(--ok-color);
  3135. }
  3136. }
  3137. .icon-status-modified-inner-circle {
  3138. position: absolute;
  3139. left: 50%;
  3140. top: 0;
  3141. will-change: opacity;
  3142. transform: translate3d(-50%, 0, 0);
  3143. animation: fade 1.8s ease-in-out infinite;
  3144. }
  3145. @keyframes fade {
  3146. 54% {
  3147. opacity: 1;
  3148. }
  3149. 90% {
  3150. opacity: 0;
  3151. }
  3152. 100% {
  3153. opacity: 1;
  3154. }
  3155. }
  3156. .icon-checkbox,
  3157. .icon-checkbox-checked,
  3158. .icon-checkbox-indeterminate {
  3159. fill: var(--text-inverted);
  3160. }
  3161. .icon-sso-button {
  3162. fill: var(--text-inverted);
  3163. }
  3164. /*
  3165. * removed margin of forms to not break the layout with submit buttons within <form></form> area e. g. for modal dialogs
  3166. */
  3167. .form {
  3168. margin: 0;
  3169. &--flexibleWidth .controls {
  3170. display: table;
  3171. }
  3172. &--horizontal {
  3173. display: flex;
  3174. flex-wrap: wrap;
  3175. align-items: flex-end;
  3176. .alert {
  3177. flex-basis: 100%;
  3178. }
  3179. fieldset {
  3180. flex: 1 1 auto;
  3181. margin-right: 6px;
  3182. }
  3183. .form-group:last-child {
  3184. margin-bottom: 0;
  3185. }
  3186. .form-buttons {
  3187. margin: 10px 10px 0 auto;
  3188. }
  3189. .controls {
  3190. min-width: 250px;
  3191. }
  3192. }
  3193. &--grid {
  3194. display: flex;
  3195. flex-wrap: wrap;
  3196. width: calc(100% + 20px);
  3197. margin-left: -10px;
  3198. margin-right: -10px;
  3199. @include phone {
  3200. display: block;
  3201. }
  3202. fieldset {
  3203. flex-basis: 100%;
  3204. display: flex;
  3205. flex-wrap: wrap;
  3206. }
  3207. .alert {
  3208. width: 100%;
  3209. margin-left: 10px;
  3210. margin-right: 10px;
  3211. margin-bottom: 10px;
  3212. margin-top: 0;
  3213. }
  3214. .form-group {
  3215. display: block;
  3216. padding: 0 10px;
  3217. width: 100%;
  3218. $sizes: '1/2', '1/3', '2/3', '1/4', '2/4', '3/4', '1/5', '2/5', '3/5',
  3219. '4/5';
  3220. @each $size in $sizes {
  3221. &[data-width='#{$size}'] {
  3222. width: calc(#{$size} * 100%);
  3223. @include phone {
  3224. width: 100%;
  3225. }
  3226. }
  3227. }
  3228. }
  3229. }
  3230. }
  3231. .form-controls {
  3232. @extend .clearfix;
  3233. display: flex;
  3234. align-items: center;
  3235. margin-top: 10px;
  3236. .btn + .btn:not(.align-right) {
  3237. @include bidi-style(margin-left, 20px, margin-right, 10px);
  3238. }
  3239. }
  3240. .form-buttons {
  3241. display: flex;
  3242. }
  3243. form a.standalone {
  3244. line-height: 40px;
  3245. margin: 0 5px;
  3246. }
  3247. form a.standalone.align-right {
  3248. @include bidi-style(margin-left, auto, margin-right, 0);
  3249. }
  3250. footer {
  3251. clear: both;
  3252. padding-top: 10px;
  3253. padding-left: 10px;
  3254. padding-right: 22px;
  3255. @include rtl(padding-left, 22px);
  3256. @include rtl(padding-right, 10px);
  3257. }
  3258. .overviews {
  3259. .sidebar {
  3260. @include small-desktop {
  3261. display: none;
  3262. }
  3263. }
  3264. .table > tbody > tr > td {
  3265. user-select: none;
  3266. }
  3267. }
  3268. .overview-header {
  3269. position: relative;
  3270. margin: 20px 0 32px;
  3271. height: 41px;
  3272. display: none;
  3273. align-items: center;
  3274. @include phone {
  3275. margin-top: 0;
  3276. }
  3277. .tabsHolder {
  3278. flex: 1;
  3279. @include bidi-style(margin-right, 20px, margin-left, 0);
  3280. min-width: 0; /* Firefox bug fix */
  3281. }
  3282. .tabs {
  3283. margin: 0;
  3284. position: relative;
  3285. @include phone {
  3286. overflow: visible;
  3287. }
  3288. }
  3289. .tab {
  3290. @include phone {
  3291. flex-shrink: 1;
  3292. }
  3293. }
  3294. .tabs-clone {
  3295. right: 0;
  3296. }
  3297. .dropdown {
  3298. min-width: 0;
  3299. width: 336px;
  3300. @include phone {
  3301. left: -1px;
  3302. right: auto;
  3303. width: calc(100vw - 70px);
  3304. }
  3305. }
  3306. @include small-desktop {
  3307. display: flex;
  3308. }
  3309. }
  3310. .table-overview {
  3311. @include phone {
  3312. margin-left: -10px;
  3313. margin-right: -10px;
  3314. }
  3315. }
  3316. .tableOverview-edit {
  3317. @extend .u-clickable, .u-highlight;
  3318. }
  3319. .bulkAction {
  3320. position: fixed;
  3321. bottom: 0;
  3322. @include bidi-style(left, $sidebarWidth + $navigationWidth, right, 0);
  3323. min-width: $minWidth - $sidebarWidth - $navigationWidth;
  3324. background: var(--background-secondary);
  3325. z-index: 1;
  3326. box-shadow: 0 -1px rgba(0, 0, 0, 0.05), 0 -2px rgba(0, 0, 0, 0.03),
  3327. 0 -3px rgba(0, 0, 0, 0.01);
  3328. @include small-desktop {
  3329. @include bidi-style(left, $navigationWidth, right, 0);
  3330. min-width: $minWidth - $sidebarWidth;
  3331. }
  3332. &.no-sidebar {
  3333. @include bidi-style(left, $navigationWidth, right, 0);
  3334. min-width: $minWidth - $navigationWidth;
  3335. @include small-desktop {
  3336. min-width: $minWidth;
  3337. }
  3338. }
  3339. @include phone {
  3340. @include bidi-style(left, $mobileNavigationWidth, right, 0);
  3341. min-width: 0;
  3342. .navigation:hover ~ &,
  3343. .navigation.is-hovered ~ &,
  3344. .navigation:active ~ & {
  3345. @include bidi-style(left, $mobileNavigationWidthOpen, right, 0);
  3346. }
  3347. }
  3348. }
  3349. .bulkAction-firstStep {
  3350. display: flex;
  3351. align-items: center;
  3352. @include phone {
  3353. flex-direction: column;
  3354. align-items: flex-end;
  3355. }
  3356. }
  3357. .bulkAction-firstStep .has-error {
  3358. border-color: red !important;
  3359. border: 1px solid;
  3360. }
  3361. .bulkAction-secondStep {
  3362. display: flex;
  3363. flex-direction: column;
  3364. &-bottom {
  3365. display: flex;
  3366. @include phone {
  3367. display: block;
  3368. }
  3369. }
  3370. }
  3371. .bulkAction .btn {
  3372. margin: 0 16px;
  3373. @include phone {
  3374. margin: 10px;
  3375. }
  3376. }
  3377. .bulkAction .btn--text {
  3378. @include bidi-style(margin-right, 0, margin-left, 16px);
  3379. }
  3380. .bulkAction-controls {
  3381. margin-top: 10px;
  3382. @include bidi-style(margin-left, auto, margin-right, 0);
  3383. @include phone {
  3384. margin-top: 0;
  3385. display: flex;
  3386. justify-content: space-between;
  3387. }
  3388. }
  3389. .panel {
  3390. box-shadow: none;
  3391. background: var(--background-secondary);
  3392. color: var(--text-normal);
  3393. }
  3394. .panel-default {
  3395. border-color: var(--border-alt);
  3396. }
  3397. .panel-default > .panel-heading {
  3398. padding-bottom: 8px;
  3399. font-weight: normal;
  3400. text-transform: uppercase;
  3401. font-size: 12px;
  3402. line-height: 17px;
  3403. letter-spacing: 0.05em;
  3404. color: inherit;
  3405. background: var(--background-primary-alt);
  3406. border-color: var(--border-alt);
  3407. + .panel-collapse > .panel-body {
  3408. border-top-color: var(--border-alt);
  3409. }
  3410. }
  3411. .panel-title {
  3412. font-size: inherit;
  3413. }
  3414. .panel-group .panel-heading {
  3415. display: block;
  3416. }
  3417. .panel-body ul {
  3418. list-style: none;
  3419. padding: 0;
  3420. margin: 0;
  3421. }
  3422. .well {
  3423. background: var(--background-secondary);
  3424. border: 1px solid var(--border);
  3425. border-radius: 3px;
  3426. padding: 10px;
  3427. }
  3428. .well-muted {
  3429. background-color: var(--background-secondary);
  3430. border: 1px solid rgba(0, 0, 0, 0.05);
  3431. border-radius: 4px;
  3432. box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);
  3433. }
  3434. .merged,
  3435. .merge:hover {
  3436. text-decoration: line-through;
  3437. }
  3438. .translation {
  3439. border: 1px dotted #f92;
  3440. border-radius: 3px;
  3441. cursor: text;
  3442. }
  3443. .translation[contenteditable='true'] {
  3444. display: inline;
  3445. }
  3446. .translation[contenteditable='true']:hover,
  3447. .translation[contenteditable='true']:focus {
  3448. background: none;
  3449. }
  3450. .translation .icon-edit {
  3451. display: none;
  3452. }
  3453. .translation:hover .icon-edit {
  3454. display: inline-block;
  3455. }
  3456. .translationOverview .btn + .btn {
  3457. margin: -10px;
  3458. }
  3459. .sub_attribute .control-label {
  3460. width: 60px;
  3461. }
  3462. .sub_attribute .controls {
  3463. @include bidi-style(margin-left, 80px, margin-right, 0);
  3464. }
  3465. .splash {
  3466. position: absolute;
  3467. left: 0;
  3468. top: 0;
  3469. width: 100%;
  3470. height: 100%;
  3471. background: var(--background-primary);
  3472. display: flex;
  3473. align-items: center;
  3474. justify-content: center;
  3475. font-size: 16px;
  3476. color: var(--text-normal);
  3477. .icon {
  3478. @include bidi-style(margin-right, 10px, margin-left, 0);
  3479. }
  3480. }
  3481. .navigation {
  3482. width: $navigationWidth;
  3483. background: var(--background-quaternary);
  3484. position: relative;
  3485. @include phone {
  3486. position: absolute;
  3487. @include bidi-style(left, 0, right, auto);
  3488. top: 0;
  3489. left: 0;
  3490. width: $mobileNavigationWidth;
  3491. height: 100%;
  3492. z-index: 1;
  3493. overflow-x: hidden;
  3494. overflow-y: auto;
  3495. &:empty {
  3496. display: none !important;
  3497. }
  3498. &:hover,
  3499. &:active,
  3500. &.is-hovered {
  3501. width: $mobileNavigationWidthOpen;
  3502. .menu-item-name {
  3503. display: block;
  3504. padding-left: 15px;
  3505. }
  3506. }
  3507. }
  3508. }
  3509. .menu {
  3510. padding: 0;
  3511. margin: 0;
  3512. list-style: none;
  3513. flex-shrink: 0;
  3514. }
  3515. .menu .badge {
  3516. background: var(--ok-color);
  3517. color: hsl(233, 10%, 16%);
  3518. @include bidi-style(margin-right, 8px, margin-left, 0);
  3519. }
  3520. .menu .zammad-switch {
  3521. height: 22px;
  3522. }
  3523. .menu .dropdown-menu {
  3524. left: 10px;
  3525. right: 15px;
  3526. min-width: 0;
  3527. }
  3528. .menu-item {
  3529. padding: 0 15px;
  3530. height: 48px;
  3531. color: var(--menu-text);
  3532. border-bottom: 1px solid hsla(230, 4%, 84%, 0.05);
  3533. text-decoration: none;
  3534. display: flex;
  3535. align-items: center;
  3536. @extend %clickable;
  3537. @include phone {
  3538. padding: 0 13px;
  3539. position: relative;
  3540. }
  3541. .icon {
  3542. fill: var(--menu-icon);
  3543. &.accessory-icon {
  3544. opacity: 0.7;
  3545. }
  3546. }
  3547. &:hover {
  3548. background: hsla(0, 0%, 0%, 0.3);
  3549. border-bottom-color: hsla(230, 4%, 84%, 0.1);
  3550. }
  3551. &.is-active,
  3552. &.is-hovered {
  3553. background: none;
  3554. color: var(--text-inverted);
  3555. }
  3556. &.is-active .menu-item-icon,
  3557. &.is-active .dropdown-icon,
  3558. &.is-hovered .menu-item-icon {
  3559. fill: currentColor;
  3560. }
  3561. &.is-active,
  3562. &.is-hovered {
  3563. background: var(--button-primary-background);
  3564. }
  3565. &.is-active .zammad-switch {
  3566. input:not(:checked) + label {
  3567. // switch background
  3568. background: var(--button-primary-background-active);
  3569. }
  3570. label::after {
  3571. background: var(--text-inverted);
  3572. }
  3573. }
  3574. .dropdown-icon {
  3575. fill: currentColor;
  3576. }
  3577. .zammad-switch {
  3578. @include phone {
  3579. .navigation:not(:hover, :active, .is-hovered) & {
  3580. position: absolute;
  3581. right: 12px;
  3582. top: 12px;
  3583. width: auto;
  3584. height: auto;
  3585. border-radius: 0;
  3586. input:checked + label {
  3587. background: var(--supergood-color);
  3588. }
  3589. label {
  3590. width: 8px;
  3591. height: 8px;
  3592. background: red;
  3593. border-radius: 100%;
  3594. transition: none;
  3595. &::after {
  3596. display: none;
  3597. }
  3598. }
  3599. }
  3600. }
  3601. }
  3602. }
  3603. .menu-item-icon {
  3604. @include bidi-style(margin-right, 15px, margin-left, 0);
  3605. width: 24px;
  3606. height: 24px;
  3607. @include phone {
  3608. @include bidi-style(margin-right, 0, margin-left, 0);
  3609. }
  3610. }
  3611. .menu-item-name {
  3612. flex: 1;
  3613. margin-top: 2px;
  3614. @include phone {
  3615. display: none;
  3616. }
  3617. }
  3618. .call-widgets {
  3619. overflow-y: auto;
  3620. max-height: 30vh;
  3621. }
  3622. .call-widget {
  3623. background: var(--background-quaternary-alt);
  3624. padding: 8px 10px;
  3625. & + & {
  3626. border-top: 1px solid var(--background-modifier-border);
  3627. }
  3628. &-header {
  3629. display: flex;
  3630. color: inherit;
  3631. margin-bottom: 3px;
  3632. .label {
  3633. color: inherit;
  3634. margin: 0;
  3635. }
  3636. .btn--text {
  3637. color: inherit;
  3638. opacity: 0.5;
  3639. &:hover {
  3640. opacity: 1;
  3641. }
  3642. }
  3643. .icon-diagonal-cross {
  3644. width: 9px;
  3645. height: 9px;
  3646. margin-top: -5px;
  3647. }
  3648. }
  3649. }
  3650. .tasks {
  3651. background: var(--background-tertiary);
  3652. flex: 1;
  3653. overflow: auto;
  3654. -webkit-overflow-scrolling: touch;
  3655. @include phone {
  3656. overflow-x: hidden;
  3657. min-height: 60px;
  3658. }
  3659. }
  3660. .tasks.tasks--standalone {
  3661. background: none;
  3662. margin: 8px 0 0;
  3663. padding: 0;
  3664. overflow: visible;
  3665. }
  3666. .tasks--standalone .task {
  3667. padding: 0;
  3668. margin-bottom: 9px;
  3669. display: flex;
  3670. .icon-holder {
  3671. &:first-child .icon-task-state {
  3672. margin-left: -2px;
  3673. }
  3674. .icon {
  3675. width: 16px;
  3676. height: 16px;
  3677. vertical-align: middle;
  3678. margin-top: -3px;
  3679. @include bidi-style(margin-right, 4px, margin-left, 0);
  3680. }
  3681. }
  3682. }
  3683. .tasks--standalone .task-text {
  3684. flex: 1;
  3685. min-width: 0; /* Firefox wrong content-calculation with word-wrap workaround */
  3686. }
  3687. .tasks--standalone .task-id {
  3688. &::after {
  3689. content: ' - ';
  3690. }
  3691. }
  3692. .tasks--standalone .name {
  3693. @extend .u-highlight, .u-textTruncate;
  3694. display: block;
  3695. }
  3696. .tasks--standalone .time {
  3697. color: var(--text-muted);
  3698. }
  3699. .tasks--standalone .btn-show-all {
  3700. margin-bottom: 9px;
  3701. }
  3702. .nav-tab {
  3703. @include bidi-style(padding, 10px 15px 9px 0, padding, 10px 0 9px 15px);
  3704. position: relative;
  3705. color: var(--menu-text);
  3706. display: flex;
  3707. align-items: center;
  3708. @extend .u-clickable;
  3709. @include phone {
  3710. width: $mobileNavigationWidthOpen;
  3711. }
  3712. }
  3713. .tasks-navigation .nav-tab {
  3714. height: 40px;
  3715. border-bottom: 1px solid hsla(230, 4%, 84%, 0.05);
  3716. }
  3717. .tasks-navigation .nav-tab:not(.is-active):hover {
  3718. background: var(--background-quaternary);
  3719. border-bottom-color: hsla(230, 4%, 84%, 0.1);
  3720. }
  3721. .navigation .nav-tab-name {
  3722. text-align: start;
  3723. &.is-inactive {
  3724. text-decoration: line-through;
  3725. opacity: 0.73;
  3726. }
  3727. }
  3728. .tasks-navigation .nav-tab-icon .error {
  3729. transform: scale(0.85);
  3730. }
  3731. .nav-tab.is-active,
  3732. .nav-tab.nav-tab--search:hover,
  3733. .nav-tab.nav-tab--search.is-hover {
  3734. background: #389ed9;
  3735. color: var(--text-inverted);
  3736. .nav-tab-icon .icon {
  3737. fill: currentColor;
  3738. }
  3739. }
  3740. .nav-tab.ui-sortable-helper {
  3741. border-bottom-color: transparent;
  3742. }
  3743. .nav-tab.nav-tab--search {
  3744. height: 30px;
  3745. padding-top: 9px;
  3746. &.is-inactive {
  3747. text-decoration: line-through;
  3748. opacity: 0.73;
  3749. }
  3750. }
  3751. .nav-tab-icon {
  3752. margin-top: -3px;
  3753. display: flex;
  3754. align-items: center;
  3755. justify-content: center;
  3756. position: relative;
  3757. width: 30px;
  3758. }
  3759. .nav-tab-icon .icon {
  3760. max-width: 18px;
  3761. max-height: 18px;
  3762. fill: var(--nav-icon);
  3763. }
  3764. .nav-tab-icon .icon-diagonal-cross {
  3765. fill: #f35910;
  3766. width: 12px;
  3767. height: 12px;
  3768. }
  3769. .nav-tab-icon .icon.icon-loading {
  3770. animation: rotateplane 1.2s infinite ease-in-out;
  3771. fill: var(--supergood-color);
  3772. /*
  3773. Safari font rendering bugfix while animating
  3774. http://stackoverflow.com/questions/9733011/safari-changing-font-weights-when-unrelated-animations-are-running
  3775. */
  3776. @extend .zIndex-5; // stay beneath .global-search-menu
  3777. position: relative;
  3778. }
  3779. .nav-tab-close {
  3780. position: absolute;
  3781. @include bidi-style(right, 0, left, auto);
  3782. top: 0;
  3783. height: 100%;
  3784. @include bidi-style(padding-right, 16px, padding-left, 0);
  3785. visibility: hidden;
  3786. @extend .u-clickable;
  3787. display: flex;
  3788. align-items: center;
  3789. @include phone {
  3790. visibility: visible;
  3791. }
  3792. }
  3793. .nav-tab:hover .nav-tab-close {
  3794. visibility: visible;
  3795. }
  3796. .nav-tab-close-inner {
  3797. width: 19px;
  3798. height: 19px;
  3799. background-color: var(--background-tertiary);
  3800. border-radius: 100%;
  3801. display: flex;
  3802. align-items: center;
  3803. justify-content: center;
  3804. }
  3805. .nav-tab-close:hover .nav-tab-close-inner {
  3806. background-color: #972e29;
  3807. }
  3808. .nav-tab-close svg {
  3809. width: 9px;
  3810. height: 9px;
  3811. fill: var(--text-inverted);
  3812. opacity: 0.3;
  3813. }
  3814. .nav-tab-close:hover svg {
  3815. opacity: 1;
  3816. }
  3817. .icon-task-state {
  3818. vertical-align: middle;
  3819. }
  3820. .nav-tab-icon .icon-task-state {
  3821. margin: 0;
  3822. }
  3823. .nav-tab.task-state-open.is-active {
  3824. background-color: var(--ok-color);
  3825. }
  3826. .task-state-open-color {
  3827. color: var(--ok-color);
  3828. }
  3829. .icon-task-state.open {
  3830. fill: var(--ok-color);
  3831. }
  3832. .nav-tab.task-state-closed.is-active {
  3833. background-color: var(--supergood-color);
  3834. }
  3835. .task-state-closed-color {
  3836. color: var(--supergood-color);
  3837. }
  3838. .icon-task-state.closed {
  3839. fill: var(--supergood-color);
  3840. }
  3841. .nav-tab.task-state-escalating.is-active {
  3842. background-color: var(--superbad-color);
  3843. }
  3844. .task-state-escalating-color {
  3845. color: var(--superbad-color);
  3846. }
  3847. .icon-task-state.escalating {
  3848. fill: var(--superbad-color);
  3849. }
  3850. // TODO: rename to knowledgebase icon when it's available
  3851. .icon-task-state.archived {
  3852. fill: var(--superbad-color);
  3853. }
  3854. .icon-task-state.published {
  3855. fill: var(--supergood-color);
  3856. }
  3857. .icon-task-state.draft {
  3858. fill: var(--ghost-color);
  3859. }
  3860. // pending: stays blue
  3861. // .nav-tab.task-state-pending.is-active {
  3862. // background-color: var(--pending-color);
  3863. // }
  3864. .task-state-pending-color {
  3865. color: var(--text-muted);
  3866. }
  3867. .icon-task-state.pending {
  3868. fill: var(--pending-color);
  3869. }
  3870. .state-badge {
  3871. display: flex;
  3872. align-items: center;
  3873. .icon-task-state {
  3874. @include bidi-style(margin-right, 2px, margin-left, 0);
  3875. }
  3876. }
  3877. .search {
  3878. padding: 11px 5px 4px 10px;
  3879. @include rtl(padding, 11px 10px 4px 0);
  3880. border-bottom: 1px solid rgba(240, 250, 255, 0.05);
  3881. flex-shrink: 0;
  3882. display: flex;
  3883. align-items: flex-start;
  3884. background-color: inherit;
  3885. @include phone {
  3886. padding: 10px 5px 5px;
  3887. @include rtl(padding, 10px 5px 5px);
  3888. display: block;
  3889. }
  3890. }
  3891. .search-holder {
  3892. flex: 1;
  3893. border-radius: 15px;
  3894. position: relative;
  3895. transition: margin-right 120ms;
  3896. will-change: margin-right;
  3897. @include phone {
  3898. transition: none;
  3899. will-change: initial;
  3900. }
  3901. }
  3902. .empty-search {
  3903. position: absolute;
  3904. @include bidi-style(right, 0, left, auto);
  3905. top: 0;
  3906. height: 30px;
  3907. width: 40px;
  3908. z-index: 1;
  3909. visibility: hidden;
  3910. display: flex;
  3911. align-items: center;
  3912. justify-content: center;
  3913. @extend %clickable;
  3914. }
  3915. .search .empty-search .icon-diagonal-cross {
  3916. fill: var(--text-inverted);
  3917. opacity: 0.5;
  3918. }
  3919. .filled.search .empty-search {
  3920. visibility: visible;
  3921. }
  3922. .search input[type='search'] {
  3923. width: 100%;
  3924. padding: 5px 33px;
  3925. height: 30px;
  3926. color: #ececec;
  3927. background: #31373b;
  3928. line-height: 20px;
  3929. outline: none;
  3930. border: none;
  3931. border-radius: 15px;
  3932. position: relative;
  3933. z-index: 1;
  3934. appearance: textfield;
  3935. @include phone {
  3936. padding: 5px 33px;
  3937. font-size: 16px;
  3938. }
  3939. }
  3940. .search:not(.filled, .focused) input[type='search'] {
  3941. @include phone {
  3942. padding: 0;
  3943. }
  3944. }
  3945. input[type='search']::-webkit-search-cancel-button,
  3946. input[type='search']::-webkit-search-decoration {
  3947. -webkit-appearance: none;
  3948. }
  3949. .search .search-loader {
  3950. position: absolute;
  3951. top: 8px;
  3952. left: 10px;
  3953. z-index: 2;
  3954. opacity: 0;
  3955. transition: 0.1s 0s;
  3956. pointer-events: none;
  3957. .icon {
  3958. fill: var(--text-inverted);
  3959. opacity: 0.5;
  3960. }
  3961. }
  3962. .search.loading .search-loader {
  3963. opacity: 1;
  3964. transition: 0.2s 0.5s;
  3965. }
  3966. .search .icon-magnifier {
  3967. position: absolute;
  3968. top: 8px;
  3969. left: 10px;
  3970. @include bidi-style(left, 10px, right, auto);
  3971. z-index: 2;
  3972. opacity: 0.5;
  3973. fill: var(--text-inverted);
  3974. transition: 0.1s 0s;
  3975. pointer-events: none;
  3976. }
  3977. .search.loading .icon-magnifier {
  3978. opacity: 0;
  3979. transition: 0.2s 0.5s;
  3980. }
  3981. .search.focused .search-holder {
  3982. transition: margin-right 240ms;
  3983. @include bidi-style(margin-right, -59px, margin-left, 0);
  3984. @include phone {
  3985. margin: 0 !important;
  3986. }
  3987. }
  3988. .search.focused .logo {
  3989. opacity: 0;
  3990. z-index: -1;
  3991. @include phone {
  3992. opacity: 1;
  3993. z-index: initial;
  3994. }
  3995. }
  3996. .search.filled {
  3997. .search-holder {
  3998. @include phone {
  3999. .navigation:not(:hover, :active, .is-hovered) & {
  4000. width: 210px;
  4001. }
  4002. }
  4003. }
  4004. .logo {
  4005. @include phone {
  4006. opacity: 0;
  4007. }
  4008. }
  4009. }
  4010. .search .logo {
  4011. position: relative;
  4012. @extend .u-clickable, .zIndex-3;
  4013. margin: -4px 10px 0 12px;
  4014. transition: 240ms;
  4015. @include phone {
  4016. margin: 10px 0 0;
  4017. }
  4018. }
  4019. .search .logo .icon-logo {
  4020. position: relative;
  4021. @include phone {
  4022. width: 35px;
  4023. height: 30px;
  4024. margin-left: 4px;
  4025. }
  4026. }
  4027. .search .logo .activity-counter {
  4028. min-width: 21px;
  4029. position: absolute;
  4030. right: -3px;
  4031. bottom: 2px;
  4032. padding: 0 4px;
  4033. font-size: 12px;
  4034. font-weight: 300;
  4035. line-height: 16px;
  4036. text-align: center;
  4037. color: var(--text-inverted);
  4038. text-shadow: 0 1px 1px rgba(0, 0, 0, 0.21);
  4039. background: hsl(360, 71%, 60%);
  4040. border-radius: 10px;
  4041. border: 2px solid var(--background-quaternary);
  4042. }
  4043. .search .logo .activity-counter:empty {
  4044. display: none;
  4045. }
  4046. .global-search-menu {
  4047. @extend .zIndex-7;
  4048. background: var(--background-quaternary);
  4049. position: absolute;
  4050. left: 0;
  4051. right: 0;
  4052. bottom: 0;
  4053. top: 53px;
  4054. display: none;
  4055. overflow: auto;
  4056. -webkit-overflow-scrolling: touch;
  4057. .divider {
  4058. height: 1px;
  4059. background: #2f3238;
  4060. margin: 14px 0 17px;
  4061. }
  4062. }
  4063. .search.open .global-search-menu {
  4064. display: block;
  4065. }
  4066. .global-search-detail-link {
  4067. padding: 9px 15px 8px 0;
  4068. margin-bottom: 7px;
  4069. height: auto !important;
  4070. .no-match & {
  4071. display: none;
  4072. }
  4073. .nav-tab-icon {
  4074. width: 18px;
  4075. margin-left: 10px;
  4076. margin-right: 10px;
  4077. .icon {
  4078. width: 18px;
  4079. height: 14px;
  4080. }
  4081. }
  4082. .nav-tab-name {
  4083. .icon {
  4084. fill: currentColor;
  4085. margin: -2px 0 0 3px;
  4086. vertical-align: middle;
  4087. }
  4088. }
  4089. }
  4090. .global-search-result {
  4091. margin: 0;
  4092. padding: 0;
  4093. list-style: none;
  4094. }
  4095. .global-search-detail-no-result {
  4096. margin: 0 10px;
  4097. .icon {
  4098. width: 30px;
  4099. height: 29px;
  4100. }
  4101. }
  4102. .user-menu {
  4103. padding: 0;
  4104. margin: 0;
  4105. list-style: none;
  4106. position: relative;
  4107. flex-shrink: 0;
  4108. display: flex;
  4109. @include phone {
  4110. flex-direction: column;
  4111. }
  4112. }
  4113. .user-menu > li {
  4114. flex: 1;
  4115. background: var(--background-quaternary);
  4116. }
  4117. .user-menu .list-button {
  4118. height: 60px;
  4119. position: relative;
  4120. text-decoration: none;
  4121. @extend .u-clickable;
  4122. display: flex;
  4123. align-items: center;
  4124. justify-content: center;
  4125. @include phone {
  4126. height: 46px;
  4127. }
  4128. }
  4129. .user-menu .list-button *:not(.dropdown-nose, .icon-crown) {
  4130. position: relative;
  4131. }
  4132. .user-menu > li:hover .list-button::before,
  4133. .user-menu > li.open .list-button::before,
  4134. .user-menu > li.is-active .list-button::before,
  4135. .user-menu > li.is-hovered .list-button::before {
  4136. content: '';
  4137. position: absolute;
  4138. top: 4px;
  4139. right: 4px;
  4140. bottom: 4px;
  4141. left: 4px;
  4142. background: var(--text-inverted);
  4143. }
  4144. .user-menu > li.is-active .list-button::before {
  4145. background: var(--highlight);
  4146. }
  4147. .user-menu li.add:hover .list-button::before,
  4148. .user-menu li.add.is-active .list-button::before,
  4149. .user-menu li.add.is-hovered .list-button::before {
  4150. background: #38ae6a;
  4151. }
  4152. .user-menu-icon {
  4153. width: 20px;
  4154. height: 20px;
  4155. fill: hsl(0, 0%, 30%);
  4156. }
  4157. .user-menu-icon.icon-plus {
  4158. fill: hsl(145, 51%, 45%);
  4159. }
  4160. .user-menu > li:hover .user-menu-icon {
  4161. fill: hsl(232, 10%, 16%);
  4162. }
  4163. .user-menu > li.is-active .user-menu-icon {
  4164. fill: var(--text-inverted);
  4165. }
  4166. .user-menu > li.add:hover .user-menu-icon.icon-plus,
  4167. .user-menu > li.add.is-hovered .user-menu-icon.icon-plus,
  4168. .user-menu > li.add.is-active .user-menu-icon.icon-plus {
  4169. fill: var(--text-inverted);
  4170. }
  4171. .user-menu > li:not(:last-child) {
  4172. border-right: 1px solid var(--background-modifier-accent);
  4173. @include phone {
  4174. border: none;
  4175. }
  4176. }
  4177. .dropdown-nose {
  4178. position: absolute;
  4179. border: 7px solid transparent;
  4180. border-bottom: none;
  4181. border-top: 7px solid var(--background-secondary);
  4182. left: 50%;
  4183. margin-left: -7px;
  4184. top: -6px;
  4185. display: none;
  4186. }
  4187. li.add .dropdown-nose {
  4188. border-top-color: #38af6e;
  4189. }
  4190. .open.dropdown .dropdown-nose,
  4191. .open.dropup .dropdown-nose {
  4192. display: block;
  4193. }
  4194. .user-menu .dropdown-menu {
  4195. padding: 0;
  4196. border-radius: 0;
  4197. margin-bottom: 5px;
  4198. min-width: 0;
  4199. left: 10px;
  4200. right: 15px;
  4201. width: auto;
  4202. &.selected-clue {
  4203. position: absolute;
  4204. }
  4205. }
  4206. .user-menu li.add .dropdown-menu {
  4207. background-color: #38af6e;
  4208. }
  4209. .user-menu li.add .dropdown-menu li > a {
  4210. color: var(--text-inverted);
  4211. }
  4212. .user-menu li.add .dropdown-menu .divider {
  4213. background: #4cb77c;
  4214. }
  4215. .user-menu .dropdown-menu .divider {
  4216. margin: 0;
  4217. }
  4218. .user-menu .dropdown-menu > li > a {
  4219. display: flex;
  4220. }
  4221. .avatar {
  4222. width: 40px;
  4223. height: 40px;
  4224. background-size: cover;
  4225. background-position: center;
  4226. border-radius: 100%;
  4227. display: inline-block;
  4228. vertical-align: bottom;
  4229. position: relative;
  4230. flex-shrink: 0;
  4231. @include phone {
  4232. width: 30px;
  4233. height: 30px;
  4234. }
  4235. a {
  4236. color: inherit;
  4237. }
  4238. &.size-30 {
  4239. width: 30px;
  4240. height: 30px;
  4241. @include phone {
  4242. width: 22px;
  4243. height: 22px;
  4244. }
  4245. }
  4246. .icon-crown {
  4247. position: absolute;
  4248. width: 28px;
  4249. left: 50%;
  4250. margin-left: -14px;
  4251. top: -15px;
  4252. fill: hsl(47, 100%, 59%);
  4253. @include phone {
  4254. width: 20px;
  4255. margin-left: -10px;
  4256. }
  4257. }
  4258. &-status {
  4259. position: absolute;
  4260. right: -4px;
  4261. bottom: -4px;
  4262. border-radius: 999px;
  4263. background: var(--background-tertiary);
  4264. fill: var(--text-inverted);
  4265. width: 21px;
  4266. height: 21px;
  4267. display: flex;
  4268. align-items: center;
  4269. justify-content: center;
  4270. }
  4271. &.size-50 {
  4272. width: 50px;
  4273. height: 50px;
  4274. @include phone {
  4275. width: 36px;
  4276. height: 36px;
  4277. }
  4278. .icon-crown {
  4279. width: 36px;
  4280. margin-left: -18px;
  4281. @include phone {
  4282. width: 26px;
  4283. margin-left: -13px;
  4284. }
  4285. }
  4286. }
  4287. &.size-80 {
  4288. width: 82px;
  4289. height: 82px;
  4290. @include phone {
  4291. width: 60px;
  4292. height: 60px;
  4293. }
  4294. .icon-crown {
  4295. width: 64px;
  4296. margin-left: -32px;
  4297. top: -16px;
  4298. @include phone {
  4299. width: 46px;
  4300. margin-left: -43px;
  4301. top: -15px;
  4302. }
  4303. }
  4304. }
  4305. &--vacation {
  4306. filter: grayscale(70%);
  4307. opacity: 1;
  4308. }
  4309. &--idle {
  4310. filter: grayscale(100%);
  4311. opacity: 0.5;
  4312. }
  4313. &--inactive {
  4314. filter: grayscale(100%);
  4315. opacity: 0.2;
  4316. }
  4317. &--unique {
  4318. background-image: image_url('/assets/images/avatar-bg.png');
  4319. background-size: 300px 226px;
  4320. color: var(--text-inverted);
  4321. line-height: 40px;
  4322. text-align: center;
  4323. font-size: 13px;
  4324. letter-spacing: 0.05em;
  4325. text-transform: uppercase;
  4326. text-shadow: 0 1px rgba(0, 0, 0, 0.2);
  4327. cursor: default;
  4328. @include phone {
  4329. line-height: 30px;
  4330. }
  4331. &.size-30 {
  4332. font-size: 10px;
  4333. line-height: 32px;
  4334. background-size: 225px 170px;
  4335. @include phone {
  4336. line-height: 22px;
  4337. }
  4338. }
  4339. &.size-50 {
  4340. font-size: 16px;
  4341. line-height: 52px;
  4342. background-size: 375px 283px;
  4343. @include phone {
  4344. line-height: 38px;
  4345. }
  4346. }
  4347. &.size-80 {
  4348. font-size: 26px;
  4349. line-height: 84px;
  4350. background-size: 600px 452px;
  4351. @include phone {
  4352. line-height: 62px;
  4353. }
  4354. }
  4355. }
  4356. &--organization {
  4357. display: flex;
  4358. align-items: center;
  4359. justify-content: center;
  4360. .icon-organization {
  4361. fill: currentColor;
  4362. }
  4363. &.size-80 {
  4364. .icon-organization {
  4365. width: 32px;
  4366. height: 32px;
  4367. }
  4368. }
  4369. }
  4370. &--group {
  4371. overflow: hidden;
  4372. .icon {
  4373. fill: var(--text-inverted);
  4374. position: absolute;
  4375. left: 50%;
  4376. transform: translateX(-50%);
  4377. width: 44px;
  4378. height: 44px;
  4379. bottom: -8px;
  4380. }
  4381. &.size-30 .icon {
  4382. width: 33px;
  4383. height: 33px;
  4384. bottom: -6px;
  4385. }
  4386. &.size-50 .icon {
  4387. width: 55px;
  4388. height: 55px;
  4389. bottom: -10px;
  4390. }
  4391. &.size-80 .icon {
  4392. width: 88px;
  4393. height: 88px;
  4394. bottom: -15px;
  4395. }
  4396. &-color-0 {
  4397. background: hsl(192, 100%, 38%);
  4398. }
  4399. &-color-1 {
  4400. background: hsl(148, 100%, 38%);
  4401. }
  4402. &-color-2 {
  4403. background: hsl(57, 100%, 37%);
  4404. }
  4405. }
  4406. .icon-logo {
  4407. width: 100%;
  4408. height: 100%;
  4409. }
  4410. }
  4411. .sidebar {
  4412. position: relative;
  4413. width: 280px;
  4414. padding: 20px;
  4415. color: var(--text-normal);
  4416. background: var(--background-secondary);
  4417. @include bidi-style(border-right, 1px solid var(--border), border-left, none);
  4418. overflow: auto;
  4419. -webkit-overflow-scrolling: touch;
  4420. @include small-desktop {
  4421. &.optional {
  4422. display: none;
  4423. }
  4424. }
  4425. h2 {
  4426. margin-top: 0;
  4427. }
  4428. h3 {
  4429. margin: 0;
  4430. font-weight: normal;
  4431. font-size: 16px;
  4432. text-transform: initial;
  4433. letter-spacing: 0;
  4434. }
  4435. }
  4436. .sidebar-block {
  4437. margin: 20px 0;
  4438. &:first-child {
  4439. margin-top: 0;
  4440. }
  4441. &-actions {
  4442. margin-bottom: 7px;
  4443. }
  4444. &-header {
  4445. margin-bottom: 7px;
  4446. h2 {
  4447. margin: 0;
  4448. }
  4449. }
  4450. [contenteditable='true'] {
  4451. white-space: normal; // do no u-textTruncate, we want to edit it inline
  4452. }
  4453. .btn-list {
  4454. margin-bottom: 5px;
  4455. }
  4456. &-button {
  4457. .sidebar-block-header + &.text-muted {
  4458. margin-top: 3px;
  4459. }
  4460. }
  4461. }
  4462. .sidebar-git-issue-delete {
  4463. text-align: right;
  4464. @include rtl(text-align, left);
  4465. float: right;
  4466. @include rtl(float, left);
  4467. }
  4468. .sidebar-git-issue-content {
  4469. width: 90%;
  4470. }
  4471. .main + .sidebar {
  4472. border-right: none;
  4473. border-left: 1px solid var(--border);
  4474. @include dark {
  4475. border-left: none;
  4476. }
  4477. }
  4478. .NavBarAdmin.sidebar,
  4479. .NavBarProfile.sidebar {
  4480. width: $sidebarWidth;
  4481. @include phone {
  4482. width: 50px;
  4483. padding-left: 10px;
  4484. padding-right: 10px;
  4485. &:hover,
  4486. &:active {
  4487. width: 165px;
  4488. padding-left: 15px;
  4489. padding-right: 15px;
  4490. }
  4491. }
  4492. h2 {
  4493. margin: 21px 0 12px;
  4494. @include phone {
  4495. white-space: nowrap;
  4496. }
  4497. }
  4498. h2:first-child {
  4499. margin-top: 0;
  4500. }
  4501. }
  4502. .nav-stacked > li + li {
  4503. margin-top: 0;
  4504. }
  4505. .nav-pills > li > a,
  4506. .nav-pills > li > a:focus,
  4507. .nav-pills > li > a:active,
  4508. .nav-pills .nav-pills-placeholder {
  4509. color: var(--text-nav);
  4510. border-radius: 0;
  4511. background: transparent; /* a:focus, a:active with bg: transparent fixes gray focus bg in IE 10 */
  4512. display: flex;
  4513. @extend .u-textTruncate;
  4514. }
  4515. .nav-pills.nav-stacked > li > a,
  4516. .nav-pills.nav-stacked > li > a:focus,
  4517. .nav-pills.nav-stacked > li > a:active,
  4518. .nav-pills.nav-stacked .nav-pills-placeholder {
  4519. padding: 0;
  4520. height: 40px;
  4521. line-height: 39px;
  4522. border-top: 1px solid var(--background-modifier-border);
  4523. }
  4524. .nav-pills.nav-stacked .nav-pills-placeholder {
  4525. display: block;
  4526. border-top: none;
  4527. @extend .label-subtle;
  4528. @extend .u-textTruncate;
  4529. }
  4530. .nav-pills > li:hover > a {
  4531. background: var(--background-secondary-hover);
  4532. }
  4533. .nav-pills.nav-stacked > li:hover > a,
  4534. .nav-pills.nav-stacked > li.active + li:not(.active) > a,
  4535. .nav-pills.nav-stacked > li:hover + li:not(.active) > a {
  4536. border-color: transparent;
  4537. }
  4538. .nav-pills > li.active > a,
  4539. .nav-pills > li.active > a:hover,
  4540. .nav-pills > li.active > a:focus {
  4541. color: var(--text-inverted);
  4542. background: var(--background-active);
  4543. border-color: var(--background-modifier-border);
  4544. }
  4545. .nav-pills.nav-stacked > li:hover > a,
  4546. .nav-pills.nav-stacked > li.active > a,
  4547. .nav-pills.nav-stacked > li.active > a:hover,
  4548. .nav-pills.nav-stacked > li.active > a:focus {
  4549. padding-left: 10px;
  4550. padding-right: 10px;
  4551. margin-left: -10px;
  4552. margin-right: -10px;
  4553. }
  4554. .sidebar:not(.NavBarAdmin) .nav-pills > li:first-child > a {
  4555. border-top: none;
  4556. }
  4557. .nav-pills > li > a > .icon {
  4558. fill: currentColor;
  4559. flex-shrink: 0;
  4560. align-self: center;
  4561. margin-top: -2px;
  4562. &:first-child {
  4563. @include bidi-style(margin-right, 5px, margin-left, 0);
  4564. &[data-font] {
  4565. @include bidi-style(margin-right, 10px, margin-left, 0);
  4566. @include bidi-style(margin-left, 5px, margin-right, 0);
  4567. }
  4568. }
  4569. }
  4570. .nav-pills > li > a > .badge {
  4571. margin-left: auto;
  4572. margin-right: 5px;
  4573. @include bidi-style(padding-left, 10px, padding-right, 0);
  4574. @include rtl(margin-left, 5px);
  4575. @include rtl(margin-right, auto);
  4576. }
  4577. a.list-group-item.active > .badge,
  4578. .nav-pills > .active > a > .badge {
  4579. color: var(--text-inverted);
  4580. background: none;
  4581. }
  4582. .main {
  4583. padding: 10px 20px;
  4584. overflow: auto;
  4585. -webkit-overflow-scrolling: touch;
  4586. position: relative;
  4587. @include phone {
  4588. padding: 10px;
  4589. }
  4590. &--large-padding {
  4591. padding: 30px 40px;
  4592. }
  4593. }
  4594. .main--tabs,
  4595. .main.no-padding {
  4596. padding: 0;
  4597. }
  4598. .tooltip {
  4599. font-family: inherit;
  4600. }
  4601. .tooltip-inner {
  4602. max-width: 400px;
  4603. }
  4604. .popover {
  4605. @extend .zIndex-7;
  4606. position: absolute;
  4607. font-family: inherit;
  4608. width: 372px;
  4609. max-width: 9999px;
  4610. border-radius: 0;
  4611. margin: 0 5px;
  4612. background: var(--background-popover);
  4613. border: none;
  4614. box-shadow: var(--elevation-high);
  4615. @include rtl(text-align, right);
  4616. @include phone {
  4617. width: auto;
  4618. }
  4619. > .arrow::after {
  4620. border-color: var(--background-popover);
  4621. }
  4622. }
  4623. .popover--has-horizontal-form {
  4624. width: auto;
  4625. }
  4626. .popover-body {
  4627. overflow: auto;
  4628. -webkit-overflow-scrolling: touch;
  4629. }
  4630. .popover-title {
  4631. border: none;
  4632. background: none;
  4633. padding: 21px 17px 4px;
  4634. .is-inactive {
  4635. text-decoration: line-through;
  4636. color: var(--interactive-muted);
  4637. }
  4638. }
  4639. .popover-content {
  4640. padding: 0 17px;
  4641. margin-bottom: 21px;
  4642. .popover--has-horizontal-form & {
  4643. padding: 10px 5px 15px 15px;
  4644. margin-bottom: 0;
  4645. }
  4646. }
  4647. .popover.right {
  4648. margin-left: 4px;
  4649. }
  4650. .popover.right > .arrow {
  4651. border-right: none;
  4652. left: -9px;
  4653. }
  4654. .popover.top {
  4655. margin-bottom: 9px;
  4656. }
  4657. .popover.top > .arrow {
  4658. border-top: none;
  4659. bottom: -9px;
  4660. }
  4661. .popover.left {
  4662. margin-right: 9px;
  4663. margin-left: 0;
  4664. }
  4665. .popover.left > .arrow {
  4666. border-left: none;
  4667. right: -9px;
  4668. }
  4669. .popover.bottom {
  4670. margin-top: 9px;
  4671. }
  4672. .popover.bottom > .arrow {
  4673. border-bottom: none;
  4674. top: -9px;
  4675. }
  4676. .popover > .arrow::after {
  4677. border-width: 8px;
  4678. }
  4679. .popover .priority.icon::after {
  4680. background: var(--background-secondary);
  4681. }
  4682. .popover .person .organization {
  4683. color: var(--text-muted);
  4684. }
  4685. .popover .person {
  4686. &.is-inactive {
  4687. text-decoration: line-through;
  4688. color: var(--ghost-color);
  4689. }
  4690. }
  4691. .popover .user-organization {
  4692. @extend .u-textTruncate;
  4693. margin-bottom: 8px;
  4694. margin-top: -4px;
  4695. &.is-inactive {
  4696. text-decoration: line-through;
  4697. color: var(--ghost-color);
  4698. }
  4699. }
  4700. .popover-block {
  4701. @extend .sidebar-block;
  4702. margin: 10px 0;
  4703. }
  4704. .popover hr {
  4705. margin: 8px 0;
  4706. }
  4707. .popover .person .organization::before {
  4708. content: '(';
  4709. }
  4710. .popover .person .organization::after {
  4711. content: ')';
  4712. }
  4713. .popover label {
  4714. font-size: 13px;
  4715. color: var(--header-secondary);
  4716. font-weight: 300;
  4717. text-transform: uppercase;
  4718. letter-spacing: 0.05em;
  4719. }
  4720. .popover .two-columns,
  4721. .popover .three-columns {
  4722. margin-top: -8px;
  4723. }
  4724. .popover .column label {
  4725. margin: 8px 0 1px;
  4726. }
  4727. .popover .column {
  4728. margin-top: 8px;
  4729. }
  4730. .popover--notifications {
  4731. padding: 0;
  4732. left: $navigationWidth;
  4733. @include rtl(right, $navigationWidth);
  4734. margin: 8px 2px;
  4735. max-height: calc(100% - 16px);
  4736. width: auto;
  4737. max-width: 400px;
  4738. min-width: 350px;
  4739. flex-direction: column;
  4740. @extend .zIndex-10;
  4741. @include phone {
  4742. left: $mobileNavigationWidth;
  4743. @include rtl(right, $mobileNavigationWidth);
  4744. min-width: auto;
  4745. width: calc(100% - #{$mobileNavigationWidth} - 8px);
  4746. }
  4747. &.is-visible {
  4748. display: flex;
  4749. }
  4750. &.is-empty .popover-notificationsHeader {
  4751. box-shadow: none;
  4752. }
  4753. .arrow {
  4754. top: 23px !important;
  4755. left: -11px;
  4756. @include rtl(left, 408px);
  4757. @include rtl(transform, rotate(180deg));
  4758. @include phone {
  4759. top: 61px !important;
  4760. }
  4761. }
  4762. .popover-content {
  4763. padding-left: 0;
  4764. padding-right: 0;
  4765. margin-bottom: 0;
  4766. overflow-y: auto;
  4767. }
  4768. .popover-notificationsHeader {
  4769. border-bottom: 1px solid var(--background-modifier-accent);
  4770. padding-bottom: 14px;
  4771. flex-shrink: 0;
  4772. .btn {
  4773. padding-top: 3px;
  4774. padding-bottom: 5px;
  4775. }
  4776. }
  4777. .activity-placeholder {
  4778. margin-bottom: 21px;
  4779. }
  4780. }
  4781. .popover-notificationsHeader {
  4782. padding-bottom: 8px;
  4783. margin: 21px 17px 0;
  4784. .popover-title {
  4785. @extend h1;
  4786. padding: 0;
  4787. line-height: 1;
  4788. }
  4789. .btn {
  4790. margin-top: 3px;
  4791. }
  4792. }
  4793. .popover-notificationsCounter {
  4794. color: #e25253;
  4795. @include bidi-style(padding-left, 3px, padding-right, 0);
  4796. }
  4797. .user-popover,
  4798. .ticket-popover,
  4799. .organization-popover {
  4800. @extend .u-clickable;
  4801. }
  4802. .user-card {
  4803. padding: 2px 0 0 50px;
  4804. position: relative;
  4805. min-height: 40px;
  4806. padding-right: 48px;
  4807. display: flex;
  4808. flex-direction: column;
  4809. justify-content: center;
  4810. min-width: 192px;
  4811. .avatar {
  4812. position: absolute;
  4813. left: 0;
  4814. top: 0;
  4815. }
  4816. .user-popover.is-inactive {
  4817. text-decoration: line-through;
  4818. opacity: 0.73;
  4819. }
  4820. .btn.js-newTicket {
  4821. position: absolute;
  4822. right: 0;
  4823. }
  4824. }
  4825. .stat-icon {
  4826. position: relative;
  4827. }
  4828. .mood-icon {
  4829. width: 60px;
  4830. height: 59px;
  4831. }
  4832. .stopwatch-icon {
  4833. position: absolute;
  4834. left: 0;
  4835. top: 0;
  4836. width: 100%;
  4837. height: 100%;
  4838. }
  4839. .stat-stopwatch {
  4840. width: 77px;
  4841. height: 83px;
  4842. position: relative;
  4843. }
  4844. .stat-channel-icon {
  4845. width: 16px;
  4846. height: 16px;
  4847. fill: var(--text-muted);
  4848. }
  4849. .total-tickets {
  4850. height: 83px;
  4851. width: 48px;
  4852. @include bidi-style(margin-right, 4px, margin-left, 0);
  4853. margin-bottom: -9px;
  4854. fill: hsl(196, 19%, 89%);
  4855. color: var(--background-secondary);
  4856. @include dark {
  4857. fill: hsl(196, 9%, 70%);
  4858. }
  4859. }
  4860. .one-ticket {
  4861. width: 48px;
  4862. height: 10px;
  4863. margin-top: -7px;
  4864. margin-bottom: 2px;
  4865. position: relative;
  4866. }
  4867. .stat-tickets {
  4868. height: 100px;
  4869. color: var(--background-secondary);
  4870. }
  4871. .in-process-icon {
  4872. width: 64px;
  4873. height: 64px;
  4874. }
  4875. .reopening-icon {
  4876. width: 68px;
  4877. height: 47px;
  4878. }
  4879. .supergood-color {
  4880. fill: var(--supergood-color);
  4881. }
  4882. .good-color {
  4883. fill: var(--good-color);
  4884. }
  4885. .ok-color {
  4886. fill: var(--ok-color);
  4887. }
  4888. .bad-color {
  4889. fill: var(--bad-color);
  4890. }
  4891. .superbad-color {
  4892. fill: var(--superbad-color);
  4893. }
  4894. .danger-color {
  4895. color: var(--danger-color);
  4896. }
  4897. .u-high-priority-color {
  4898. fill: $high-priority-color;
  4899. }
  4900. .u-low-priority-color {
  4901. fill: $low-priority-color;
  4902. }
  4903. .stat-widgets {
  4904. margin: -7px -7px 20px;
  4905. }
  4906. .stat-widget {
  4907. height: 200px;
  4908. padding: 10px 10px 8px;
  4909. text-align: center;
  4910. line-height: 20px;
  4911. }
  4912. .dashboard .stat-widget {
  4913. margin: 7px;
  4914. background: var(--background-secondary);
  4915. border: 1px solid var(--border);
  4916. border-radius: 1px;
  4917. box-shadow: var(--elevation-low);
  4918. }
  4919. .stat-title {
  4920. font-size: 13px;
  4921. margin: 2px 0 8px;
  4922. text-transform: uppercase;
  4923. font-weight: normal;
  4924. position: relative;
  4925. padding: 0 24px;
  4926. .tooltip {
  4927. text-transform: none;
  4928. width: 200px;
  4929. }
  4930. }
  4931. .stat-icon-help {
  4932. position: absolute;
  4933. right: 3px;
  4934. top: 1px;
  4935. cursor: help;
  4936. fill: var(--interactive-muted);
  4937. }
  4938. .notification-icon-help {
  4939. fill: var(--interactive-muted);
  4940. }
  4941. .stat-label {
  4942. @extend .u-textTruncate;
  4943. }
  4944. .stat-detail {
  4945. color: var(--text-muted);
  4946. @extend .u-textTruncate;
  4947. }
  4948. .stat-graphic {
  4949. flex: 1;
  4950. display: flex;
  4951. justify-content: center;
  4952. align-items: center;
  4953. user-select: none;
  4954. }
  4955. .time.stat-widget .stat-amount {
  4956. margin-top: 12px;
  4957. text-align: center;
  4958. font-size: 30px;
  4959. color: var(--text-inverted);
  4960. text-shadow: 0 2px rgba(0, 8, 14, 0.2);
  4961. position: relative;
  4962. cursor: default;
  4963. }
  4964. .time.stat-widget .stat-dial {
  4965. position: absolute;
  4966. top: 21px;
  4967. left: 14px;
  4968. width: 52px;
  4969. height: 52px;
  4970. }
  4971. .stats-row {
  4972. padding: 8px 0 7px;
  4973. border-radius: 3px;
  4974. display: flex;
  4975. flex-direction: column;
  4976. align-items: center;
  4977. flex: 0 1 38px;
  4978. height: 100%;
  4979. .icon {
  4980. display: block;
  4981. }
  4982. }
  4983. .stats-row:hover {
  4984. background: rgba(0, 8, 14, 0.03);
  4985. }
  4986. .stats-row .stat-bars {
  4987. flex: 1;
  4988. margin: 10px 0 13px;
  4989. padding: 2px 5px;
  4990. width: 100%;
  4991. background: linear-gradient(
  4992. to top,
  4993. var(--background-modifier-accent),
  4994. var(--background-modifier-accent) 1px,
  4995. transparent 1px
  4996. );
  4997. background-position: center bottom;
  4998. background-size: 100% 12px;
  4999. display: flex;
  5000. align-items: flex-end;
  5001. justify-content: center;
  5002. }
  5003. .stat-bars .stat-bar {
  5004. border-radius: 5px;
  5005. max-width: 10px;
  5006. flex: 1;
  5007. color: #a9bcc4;
  5008. background: #a9bcc4;
  5009. &--outbound {
  5010. opacity: 0.38;
  5011. color: #a9bcc4;
  5012. background: #a9bcc4;
  5013. }
  5014. }
  5015. .stat-legend {
  5016. margin-top: 30px;
  5017. @include bidi-style(margin-left, auto, margin-right, 0);
  5018. display: flex;
  5019. }
  5020. .stat-legendEntry {
  5021. font-size: 11px;
  5022. line-height: 1;
  5023. @include bidi-style(margin-left, 20px, margin-right, 0);
  5024. background: none !important;
  5025. }
  5026. .stat-circle {
  5027. margin-bottom: -1px;
  5028. @include bidi-style(margin-right, 3px, margin-left, 0);
  5029. width: 10px;
  5030. height: 10px;
  5031. border-radius: 100%;
  5032. display: inline-block;
  5033. }
  5034. .ticket_channel_distribution {
  5035. .stat-graphic {
  5036. align-items: stretch;
  5037. }
  5038. .stats-row {
  5039. margin-bottom: -4px;
  5040. position: relative;
  5041. }
  5042. }
  5043. .frequency.stat-widget {
  5044. .stat-bars {
  5045. margin-top: 0;
  5046. }
  5047. .stats-row {
  5048. margin-bottom: 0;
  5049. }
  5050. .stat-label {
  5051. color: var(--text-muted);
  5052. }
  5053. .primary {
  5054. color: hsl(145, 51%, 45%);
  5055. background: hsl(145, 51%, 45%);
  5056. }
  5057. }
  5058. .activity.sidebar {
  5059. width: 370px;
  5060. padding: 0;
  5061. border-left: 1px solid var(--border);
  5062. }
  5063. .activity h2 {
  5064. margin-left: 19px;
  5065. margin-bottom: 15px;
  5066. margin-right: 26px;
  5067. @include rtl(margin-right, 19px);
  5068. @include rtl(margin-left, 26px);
  5069. }
  5070. .activity-entries {
  5071. margin: 0 -17px;
  5072. }
  5073. .activity-placeholder {
  5074. @extend .u-textTruncate;
  5075. padding: 0 17px;
  5076. }
  5077. .activity-entry {
  5078. display: flex;
  5079. padding: 0 17px;
  5080. &.is-inactive {
  5081. opacity: 0.5;
  5082. }
  5083. &.is-hover {
  5084. background-color: var(--background-primary);
  5085. }
  5086. &.activity-entry--removeable {
  5087. @include bidi-style(padding-right, 0, margin-left, 17px);
  5088. }
  5089. &:not(:hover) .activity-remove {
  5090. opacity: 0;
  5091. }
  5092. &:not(:last-child) .activity-body::after {
  5093. content: '';
  5094. position: absolute;
  5095. bottom: 0;
  5096. right: 0;
  5097. left: 0;
  5098. border-bottom: 1px solid var(--background-modifier-accent);
  5099. }
  5100. &.activity-entry--removeable:not(:last-child) .activity-body::after {
  5101. right: 17px;
  5102. @include bidi-style(right, 17px, left, 0);
  5103. }
  5104. }
  5105. .activity-avatar {
  5106. padding: 16px 2px 0;
  5107. @include bidi-style(margin-right, 10px, margin-left, 0);
  5108. flex-shrink: 0;
  5109. }
  5110. .activity-body {
  5111. padding: 16px 0 16px 2px;
  5112. @include rtl(padding, 16px 2px 16px 0);
  5113. position: relative;
  5114. display: flex;
  5115. flex: 1;
  5116. min-width: 0; /* Firefox wrong content-calculation with word-wrap workaround */
  5117. color: inherit;
  5118. }
  5119. .activity-message {
  5120. color: inherit;
  5121. flex: 1;
  5122. min-width: 0; /* Firefox wrong content-calculation with word-wrap workaround */
  5123. &:hover .activity-text {
  5124. text-decoration: underline;
  5125. }
  5126. }
  5127. .activity-time {
  5128. margin-top: 2px;
  5129. color: var(--text-muted);
  5130. display: block;
  5131. }
  5132. .activity-remove {
  5133. display: flex;
  5134. align-items: center;
  5135. justify-content: center;
  5136. @extend %clickable;
  5137. padding-left: 10px;
  5138. padding-right: 27px;
  5139. @include rtl(padding-left, 27px);
  5140. @include rtl(padding-right, 10px);
  5141. .activity-remove-icon-holder {
  5142. width: 19px;
  5143. height: 19px;
  5144. border-radius: 100%;
  5145. display: flex;
  5146. align-items: center;
  5147. justify-content: center;
  5148. background: var(--ghost-color);
  5149. }
  5150. .icon {
  5151. fill: var(--text-inverted);
  5152. width: 9px;
  5153. height: 9px;
  5154. }
  5155. &:hover {
  5156. .activity-remove-icon-holder {
  5157. background: #972e29;
  5158. }
  5159. .icon {
  5160. opacity: 1;
  5161. }
  5162. }
  5163. }
  5164. .form-inline {
  5165. display: flex;
  5166. @include phone {
  5167. flex-wrap: wrap;
  5168. .alert {
  5169. flex-basis: 100%;
  5170. }
  5171. }
  5172. }
  5173. .form-inline .input-group-addon,
  5174. .form-inline .form-control:not(textarea) {
  5175. background: var(--background-secondary);
  5176. border: none;
  5177. line-height: 1;
  5178. }
  5179. .form-inline .form-group {
  5180. overflow: hidden;
  5181. position: relative;
  5182. height: 60px;
  5183. flex: 1 1 auto;
  5184. @include phone {
  5185. width: 50%;
  5186. margin-bottom: 0;
  5187. }
  5188. &.datetime {
  5189. min-width: 140px;
  5190. overflow: visible; // datepicker popup needs to be visible
  5191. }
  5192. }
  5193. .form-group.is-changed {
  5194. position: relative;
  5195. }
  5196. .form-group.is-changed::before {
  5197. content: '';
  5198. position: absolute;
  5199. top: 23px;
  5200. left: -12px;
  5201. bottom: 0;
  5202. width: 3px;
  5203. background: repeating-linear-gradient(
  5204. 45deg,
  5205. var(--background-modifier-border),
  5206. var(--background-modifier-border) 5px,
  5207. transparent 5px,
  5208. transparent 9px
  5209. )
  5210. repeat center;
  5211. background-size: 11px 11px;
  5212. }
  5213. .form-inline .form-group.is-changed::before {
  5214. width: 100%;
  5215. height: 3px;
  5216. top: 0;
  5217. left: 0;
  5218. bottom: auto;
  5219. }
  5220. .form-group.is-changed label {
  5221. color: var(--text-muted);
  5222. position: relative;
  5223. }
  5224. .form-group.is-changed label::before {
  5225. position: absolute;
  5226. content: '';
  5227. left: -10px;
  5228. width: 5px;
  5229. height: 5px;
  5230. top: 50%;
  5231. margin-top: -3px;
  5232. border-radius: 100%;
  5233. background: var(--interactive-muted-alt);
  5234. }
  5235. .form-inline .form-group .btn {
  5236. margin: 10px;
  5237. }
  5238. .form-inline .form-group:not(:last-child),
  5239. .form-inline.form-inline--enclosed .form-group {
  5240. border-right: 1px solid var(--border);
  5241. }
  5242. .form-inline .form-group,
  5243. .form-inline.form-inline--enclosed .form-group {
  5244. @include phone {
  5245. border-bottom: 1px solid var(--border);
  5246. &:nth-child(even) {
  5247. border-right-width: 0;
  5248. }
  5249. }
  5250. }
  5251. .form-inline .input-group-addon {
  5252. width: auto;
  5253. padding: 0;
  5254. margin: 10px 18px 0;
  5255. font-size: 13px;
  5256. letter-spacing: 0.05em;
  5257. display: inline-block;
  5258. position: relative;
  5259. }
  5260. .form-inline .form-control:not(textarea) {
  5261. width: 100%;
  5262. height: 100%;
  5263. left: 0;
  5264. top: 0;
  5265. position: absolute;
  5266. padding: 28px 5px 12px 20px;
  5267. float: none;
  5268. display: block;
  5269. border-radius: 0;
  5270. }
  5271. .form-inline {
  5272. .formGroup-label {
  5273. z-index: 1;
  5274. pointer-events: none;
  5275. }
  5276. .controls--datetime,
  5277. .controls--date,
  5278. .controls--select {
  5279. position: static;
  5280. }
  5281. .controls--datetime {
  5282. position: absolute;
  5283. bottom: 12px;
  5284. left: 0;
  5285. padding: 0 5px 0 20px;
  5286. width: 100%;
  5287. .controls-label {
  5288. display: none;
  5289. }
  5290. .form-control {
  5291. width: 70px;
  5292. line-height: inherit;
  5293. position: static;
  5294. padding: 0;
  5295. height: auto;
  5296. &.time {
  5297. margin-left: 5px;
  5298. width: 38px;
  5299. }
  5300. }
  5301. }
  5302. }
  5303. .bulkAction-secondStep .form-group {
  5304. min-width: 140px;
  5305. @include phone {
  5306. min-width: 0;
  5307. &.textarea {
  5308. border-bottom-width: 0;
  5309. }
  5310. }
  5311. }
  5312. .bulkAction-secondStep .form-inline .textarea.form-group {
  5313. padding: 5px 10px;
  5314. height: auto;
  5315. }
  5316. .bulkAction-secondStep .form-inline .textarea.form-group .input-group-addon {
  5317. margin-left: 8px;
  5318. margin-right: 8px;
  5319. margin-bottom: 5px;
  5320. }
  5321. .bulkAction-secondStep .form-inline textarea.form-control {
  5322. display: block;
  5323. width: 100%;
  5324. resize: vertical;
  5325. }
  5326. .bulkAction-secondStep .form-inline .textarea .controls {
  5327. margin: 0 6px;
  5328. }
  5329. .bulkAction-secondStep .form-inline textarea.form-control:not(:focus) {
  5330. border-color: #f0f0f0;
  5331. }
  5332. .ticketZoom {
  5333. background: var(--background-primary);
  5334. }
  5335. .ticketZoom-controls {
  5336. display: flex;
  5337. justify-content: flex-end;
  5338. align-items: center;
  5339. padding: 28px 0 0;
  5340. @include bidi-style(margin-right, -40px, margin-left, 0);
  5341. @include phone {
  5342. padding: 10px;
  5343. @include bidi-style(margin-right, 0, margin-left, 0);
  5344. }
  5345. }
  5346. .icon-marker {
  5347. fill: hsl(0, 0%, 61%);
  5348. width: 17px;
  5349. height: 19px;
  5350. }
  5351. .ticketNumberCopy-icon {
  5352. vertical-align: top;
  5353. fill: currentColor;
  5354. }
  5355. .ticketZoom .ticketZoom-header {
  5356. margin-top: 6px;
  5357. padding: 0;
  5358. @include phone {
  5359. margin-top: 10px;
  5360. }
  5361. }
  5362. .ticketZoom .ticket-article {
  5363. margin-top: 55px;
  5364. @include phone {
  5365. margin-top: 40px;
  5366. }
  5367. }
  5368. .ticketZoom > .overview-navigator {
  5369. margin-top: 32px;
  5370. @include bidi-style(padding-left, 20px, padding-right, 0);
  5371. }
  5372. .ticket-article,
  5373. .article-new {
  5374. max-width: 1080px;
  5375. margin: 0 auto;
  5376. padding: 0 21px;
  5377. @include phone {
  5378. padding: 0 10px;
  5379. }
  5380. }
  5381. .ticket-title {
  5382. max-width: 1080px;
  5383. padding: 0 81px;
  5384. @include phone {
  5385. padding: 0 10px;
  5386. }
  5387. }
  5388. .ticket-title-update {
  5389. @extend h1;
  5390. white-space: normal;
  5391. margin-top: 15px;
  5392. margin-bottom: 8px;
  5393. padding: 0 7px;
  5394. text-align: center;
  5395. .ticketZoom-header & {
  5396. &:hover,
  5397. &:focus {
  5398. background: var(--background-modifier-hover);
  5399. }
  5400. }
  5401. }
  5402. .task-subline {
  5403. text-align: center;
  5404. display: block;
  5405. }
  5406. .ticket-article-item {
  5407. padding-bottom: 33px;
  5408. position: relative;
  5409. z-index: 1; // fixed chrome 49 + flex issue, not shown article
  5410. .avatar {
  5411. position: absolute;
  5412. right: 0;
  5413. top: 5px;
  5414. @include phone {
  5415. position: static;
  5416. margin: 0 5px 7px;
  5417. }
  5418. }
  5419. &.agent .avatar {
  5420. right: auto;
  5421. left: 0;
  5422. }
  5423. }
  5424. /*
  5425. clip the article-meta to not stand out on the other side
  5426. of the textBubble if the text bubble is small
  5427. */
  5428. .article-meta-clip {
  5429. overflow: hidden;
  5430. position: relative;
  5431. height: 100%;
  5432. margin: 0 55px;
  5433. @include phone {
  5434. margin: 0;
  5435. }
  5436. }
  5437. .article-content {
  5438. color: var(--text-normal);
  5439. position: relative;
  5440. z-index: 1;
  5441. padding: 0 55px;
  5442. @include phone {
  5443. padding: 0;
  5444. }
  5445. &.article-actions {
  5446. justify-content: space-around;
  5447. }
  5448. }
  5449. .article-content-meta {
  5450. position: absolute;
  5451. width: 100%;
  5452. }
  5453. .article-meta {
  5454. background: var(--background-tertiary);
  5455. color: var(--text-inverted);
  5456. padding: 21px 25px 11px;
  5457. margin: 0 12px;
  5458. @include phone {
  5459. margin: 0 5px;
  5460. padding: 10px 10px 5px;
  5461. }
  5462. }
  5463. .article-meta.bottom {
  5464. padding-top: 17px;
  5465. padding-bottom: 8px;
  5466. @include phone {
  5467. padding-top: 10px;
  5468. padding-bottom: 5px;
  5469. }
  5470. }
  5471. .article-meta-row {
  5472. margin-bottom: 5px;
  5473. }
  5474. .article-meta-key {
  5475. width: 20%;
  5476. text-transform: uppercase;
  5477. flex-shrink: 0;
  5478. @include phone {
  5479. width: 50px;
  5480. }
  5481. }
  5482. .article-meta-value {
  5483. @include bidi-style(margin-left, 8px, margin-right, 0);
  5484. overflow: hidden;
  5485. text-overflow: ellipsis;
  5486. span {
  5487. white-space: nowrap;
  5488. }
  5489. }
  5490. .article-meta-icon {
  5491. fill: var(--text-inverted);
  5492. vertical-align: top;
  5493. margin: 2px 3px 0 0;
  5494. @include rtl(margin, 2px 0 0 3px);
  5495. &.icon-lock {
  5496. margin: 0;
  5497. }
  5498. }
  5499. .article-meta-permanent {
  5500. margin: 0 55px;
  5501. + .article-content .textBubble {
  5502. border-top-left-radius: 0;
  5503. border-top-right-radius: 0;
  5504. border-top-width: 0;
  5505. }
  5506. .alert {
  5507. margin-bottom: 0;
  5508. padding-left: 20px;
  5509. padding-right: 20px;
  5510. border-radius: 0;
  5511. box-shadow: 0 0 0 1px inset hsla(0, 0%, 0%, 0.04);
  5512. &:first-child {
  5513. border-top-left-radius: 2px;
  5514. border-top-right-radius: 2px;
  5515. }
  5516. &--blank {
  5517. background: var(--background-article-meta);
  5518. color: var(--text-muted-alt);
  5519. border: 1px solid var(--border-alt);
  5520. .customer.ticket-article-item & {
  5521. background: var(--background-article-customer-meta);
  5522. border-color: var(--border-article-customer);
  5523. }
  5524. .customer.state--folde-out & {
  5525. border-color: var(--border-article-customer-selected);
  5526. }
  5527. }
  5528. .icon {
  5529. fill: currentColor;
  5530. margin: 2px 6px 0 0;
  5531. vertical-align: top;
  5532. width: 14px;
  5533. height: 14px;
  5534. }
  5535. .icon-lock {
  5536. margin-top: 1px;
  5537. width: 16px;
  5538. height: 16px;
  5539. }
  5540. }
  5541. }
  5542. .internal-border {
  5543. padding: 5px;
  5544. border-radius: 5px;
  5545. margin: -5px;
  5546. }
  5547. .is-internal .internal-border {
  5548. background: repeating-linear-gradient(
  5549. 45deg,
  5550. var(--border-internal),
  5551. var(--border-internal) 5px,
  5552. var(--border-internal-stripe) 5px,
  5553. var(--border-internal-stripe) 10px
  5554. );
  5555. background-size: 14px 14px;
  5556. background-position: -1px;
  5557. }
  5558. .is-internal .bubble-arrow {
  5559. display: none;
  5560. }
  5561. .article-visibility-text-wrapper {
  5562. padding: 0 55px;
  5563. opacity: 0;
  5564. height: 0;
  5565. .article-visibility-text {
  5566. margin-bottom: 17px;
  5567. &.is-hidden {
  5568. display: none;
  5569. }
  5570. }
  5571. }
  5572. .textBubble {
  5573. padding: 10px 20px;
  5574. background: var(--background-secondary);
  5575. border-radius: 2px;
  5576. border: 1px solid var(--border-alt);
  5577. box-shadow: 0 0 1px rgba(0, 0, 0, 0.06) inset;
  5578. position: relative;
  5579. @include phone {
  5580. padding: 10px;
  5581. }
  5582. /* email css reset */
  5583. p {
  5584. margin: 0;
  5585. }
  5586. .is-internal & {
  5587. border-color: var(--border-internal) !important;
  5588. }
  5589. }
  5590. .textBubble-content {
  5591. overflow: hidden;
  5592. position: relative;
  5593. }
  5594. .textBubble-footer {
  5595. display: flex;
  5596. justify-content: space-between;
  5597. align-items: center;
  5598. margin: 0 -12px -28px;
  5599. padding: 6px 12px;
  5600. border-radius: 0 0 4px 4px;
  5601. }
  5602. .textBubble-control {
  5603. display: flex;
  5604. }
  5605. .textBubble-letterCount:not(.label-danger, .label-warning) {
  5606. color: var(--ghost-color);
  5607. }
  5608. .textBubble-overflowContainer {
  5609. position: absolute;
  5610. bottom: 0;
  5611. left: 0;
  5612. right: 0;
  5613. background: var(--background-secondary);
  5614. &.is-open {
  5615. &::before {
  5616. display: none;
  5617. }
  5618. }
  5619. .btn {
  5620. padding-top: 15px;
  5621. padding-bottom: 15px;
  5622. font-size: 10px;
  5623. }
  5624. &::before {
  5625. content: '';
  5626. position: absolute;
  5627. left: 0;
  5628. right: 0;
  5629. top: -30px;
  5630. height: 30px;
  5631. background: linear-gradient(
  5632. rgba(255, 255, 255, 0),
  5633. var(--background-secondary)
  5634. );
  5635. pointer-events: none;
  5636. }
  5637. }
  5638. .customer .textBubble-overflowContainer {
  5639. background: var(--background-article-customer);
  5640. &::before {
  5641. background: linear-gradient(
  5642. hsla(199, 44%, 93%, 0),
  5643. var(--background-article-customer)
  5644. );
  5645. }
  5646. }
  5647. .customer.ticket-article-item .textBubble {
  5648. background: var(--background-article-customer);
  5649. border-color: var(--border-article-customer);
  5650. box-shadow: none;
  5651. }
  5652. .customer .richtext-content blockquote {
  5653. border-left: 5px solid var(--background-modifier-border);
  5654. }
  5655. .customer.ticket-article-item.state--folde-out .textBubble {
  5656. border-color: var(--border-article-customer-selected);
  5657. }
  5658. .bubble-arrow {
  5659. position: absolute;
  5660. width: 6px;
  5661. height: 9px;
  5662. left: -6px;
  5663. top: 15px;
  5664. overflow: hidden;
  5665. @include phone {
  5666. left: 14px !important;
  5667. top: -5px;
  5668. width: 9px;
  5669. height: 6px;
  5670. }
  5671. }
  5672. .bubble-arrow::after {
  5673. content: '';
  5674. position: absolute;
  5675. top: -1px;
  5676. left: 1px;
  5677. width: 11px;
  5678. height: 11px;
  5679. background: var(--background-secondary);
  5680. border: 1px solid var(--border-alt);
  5681. box-shadow: 0 0 1px rgba(0, 0, 0, 0.06) inset;
  5682. transform: rotate(-45deg);
  5683. @include phone {
  5684. top: 2px;
  5685. left: -1px;
  5686. }
  5687. }
  5688. .customer.ticket-article-item .bubble-arrow {
  5689. left: auto;
  5690. right: -6px;
  5691. @include phone {
  5692. left: 14px;
  5693. right: auto;
  5694. top: -4px;
  5695. }
  5696. }
  5697. .customer.ticket-article-item .bubble-arrow::after {
  5698. background: var(--background-article-customer);
  5699. left: auto;
  5700. right: 2px;
  5701. border-color: var(--border-article-customer);
  5702. box-shadow: none;
  5703. @include phone {
  5704. left: -1px;
  5705. right: auto;
  5706. }
  5707. }
  5708. .customer.ticket-article-item.state--folde-out .bubble-arrow::after {
  5709. border-color: var(--border-article-customer-selected);
  5710. }
  5711. .attachments.attachments--list:not(:empty) {
  5712. border-top: 1px solid var(--background-modifier-border);
  5713. white-space: normal;
  5714. margin: 10px -20px 0;
  5715. padding: 26px 20px 7px 72px;
  5716. position: relative;
  5717. @include phone {
  5718. margin-left: -10px;
  5719. margin-right: -10px;
  5720. padding: 20px 15px 7px 30px;
  5721. }
  5722. }
  5723. .attachments.attachments--list .attachments-title {
  5724. font-size: 13px;
  5725. font-weight: 500;
  5726. text-transform: uppercase;
  5727. padding: 0 7px;
  5728. .badge {
  5729. margin: -1px 0 0 5px;
  5730. }
  5731. }
  5732. .attachments > .icon:first-child {
  5733. position: absolute;
  5734. left: 33px;
  5735. top: 27px;
  5736. fill: var(--ghost-color);
  5737. @include phone {
  5738. width: 16px;
  5739. height: 16px;
  5740. left: 12px;
  5741. top: 20px;
  5742. }
  5743. }
  5744. .attachments-block {
  5745. margin-bottom: 12px;
  5746. &:last-child {
  5747. margin-bottom: 0;
  5748. }
  5749. &-headline {
  5750. font-size: 13px;
  5751. color: var(--text-normal);
  5752. font-weight: 500;
  5753. text-transform: uppercase;
  5754. margin: 0 7px;
  5755. }
  5756. }
  5757. .ticket-article-item .task-subline {
  5758. margin-top: 7px;
  5759. }
  5760. .article-action {
  5761. padding: 5px 16px;
  5762. margin-top: 5px;
  5763. color: var(--interactive-muted);
  5764. font-size: 12px;
  5765. text-align: center;
  5766. @extend .u-clickable;
  5767. }
  5768. .article-action:hover {
  5769. color: var(--text-primary);
  5770. text-decoration: none;
  5771. }
  5772. .article-action-icon {
  5773. @include bidi-style(margin-right, 5px, margin-left, 0);
  5774. vertical-align: top;
  5775. width: 17px;
  5776. height: 17px;
  5777. fill: currentColor;
  5778. }
  5779. .article-action-name {
  5780. @media screen and (max-width: 1080px) {
  5781. display: none;
  5782. }
  5783. @media screen and (max-width: 1358px) {
  5784. .main:not(.is-closed) & {
  5785. display: none;
  5786. }
  5787. }
  5788. }
  5789. .article-add {
  5790. position: relative;
  5791. z-index: 1; // fixed chrome 49 + flex issue, not shown article
  5792. }
  5793. .article-new {
  5794. margin-top: auto;
  5795. margin-bottom: 36px;
  5796. }
  5797. .dropArea {
  5798. background: var(--background-secondary);
  5799. border: 5px solid;
  5800. color: hsl(202, 66%, 55%);
  5801. font-size: 20px;
  5802. margin: 5px;
  5803. display: none;
  5804. @extend .fit;
  5805. &--small {
  5806. margin: 0;
  5807. font-size: inherit;
  5808. border-width: 3px;
  5809. min-height: 38px;
  5810. }
  5811. }
  5812. .is-dropTarget .dropArea {
  5813. display: block;
  5814. }
  5815. .dropContainer {
  5816. position: relative;
  5817. }
  5818. .dropArea-inner {
  5819. @extend .fit;
  5820. display: flex;
  5821. align-items: center;
  5822. justify-content: center;
  5823. }
  5824. .shortcut .dropdown-menu > .is-active > a {
  5825. background: none;
  5826. }
  5827. .shortcut > .dropdown-menu {
  5828. overflow: auto;
  5829. -webkit-overflow-scrolling: touch;
  5830. position: absolute;
  5831. max-width: 100%;
  5832. min-width: 0;
  5833. }
  5834. .editControls {
  5835. position: absolute;
  5836. left: 0;
  5837. top: 5px;
  5838. @include phone {
  5839. position: static;
  5840. margin: 0 0 10px;
  5841. display: flex;
  5842. align-items: center;
  5843. }
  5844. }
  5845. .article-add[data-type='email'] .editControls {
  5846. top: 159px;
  5847. }
  5848. .editControls-item {
  5849. position: absolute;
  5850. top: 43px;
  5851. @extend .u-clickable, .zIndex-4;
  5852. @include phone {
  5853. position: relative;
  5854. z-index: initial;
  5855. top: 0 !important;
  5856. transform: none !important;
  5857. opacity: 1 !important;
  5858. }
  5859. &.is-hidden {
  5860. display: none;
  5861. @include phone {
  5862. display: block;
  5863. }
  5864. }
  5865. }
  5866. .editControls-item:nth-child(2) {
  5867. @include phone {
  5868. z-index: 1;
  5869. }
  5870. }
  5871. .editControls-item:nth-child(3) {
  5872. top: 79px;
  5873. }
  5874. .editControls-item:nth-child(4) {
  5875. top: 115px;
  5876. }
  5877. .editControls-item:not(:last-child) {
  5878. border-bottom: 1px solid var(--border);
  5879. @include phone {
  5880. border-bottom: 0;
  5881. border-right: 1px solid var(--border);
  5882. }
  5883. }
  5884. .editControls-iconHolder {
  5885. width: 38px;
  5886. height: 35px;
  5887. display: flex;
  5888. align-items: center;
  5889. justify-content: center;
  5890. @include phone {
  5891. width: 48px;
  5892. height: 32px;
  5893. }
  5894. }
  5895. .editControls-icon {
  5896. @include phone {
  5897. line-height: 0.7;
  5898. }
  5899. }
  5900. .editControls-icon .icon {
  5901. fill: var(--interactive-muted);
  5902. }
  5903. .pop-selector {
  5904. position: absolute;
  5905. top: 0;
  5906. left: 0;
  5907. display: flex;
  5908. align-items: center;
  5909. justify-content: center;
  5910. border-radius: 4px;
  5911. box-shadow: var(--elevation-low);
  5912. @include phone {
  5913. top: -4px;
  5914. left: 7px;
  5915. }
  5916. &.is-hidden {
  5917. display: none;
  5918. }
  5919. }
  5920. .pop-selectable {
  5921. width: 35px;
  5922. height: 35px;
  5923. display: flex;
  5924. align-items: center;
  5925. justify-content: center;
  5926. @extend .u-clickable;
  5927. background: var(--background-tertiary);
  5928. }
  5929. .pop-selectable:hover {
  5930. background: var(--highlight);
  5931. }
  5932. .pop-selectable:first-child {
  5933. @include bidi-style(border-radius, 4px 0 0 4px, border-radius, 0 4px 4px 0);
  5934. }
  5935. .pop-selectable:last-child {
  5936. @include bidi-style(border-radius, 0 4px 4px 0, border-radius, 4px 0 0 4px);
  5937. }
  5938. .pop-selectable:only-child {
  5939. border-radius: 4px;
  5940. }
  5941. .pop-selectable:hover .pop-selectable-icon {
  5942. fill: var(--text-inverted);
  5943. }
  5944. .article-add .icon-internal {
  5945. fill: hsl(18, 87%, 65%);
  5946. }
  5947. .article-add.is-public .icon-internal,
  5948. .article-add.is-internal .icon-public {
  5949. display: none;
  5950. }
  5951. .article-new .textBubble {
  5952. border-radius: 5px;
  5953. padding-left: 12px;
  5954. padding-right: 12px;
  5955. cursor: text;
  5956. }
  5957. .articleNewEdit-body {
  5958. width: 100%;
  5959. position: relative;
  5960. min-height: 20px;
  5961. vertical-align: bottom;
  5962. border: none;
  5963. outline: none;
  5964. resize: none;
  5965. height: auto;
  5966. @include phone {
  5967. font-size: 16px;
  5968. }
  5969. }
  5970. .article-new .bubble-arrow::after {
  5971. box-shadow: none;
  5972. }
  5973. .article-attachment {
  5974. position: absolute;
  5975. bottom: -4px;
  5976. left: 10px;
  5977. right: 10px;
  5978. height: 42px;
  5979. padding: 10px 0;
  5980. color: var(--text-muted);
  5981. overflow: hidden;
  5982. @extend .u-textTruncate;
  5983. }
  5984. .attachments:not(:empty) {
  5985. padding: 9px 5px;
  5986. border-top: 1px solid var(--background-modifier-border);
  5987. margin: 6px -12px 30px;
  5988. }
  5989. .ticket-create .attachments:not(:empty) {
  5990. margin-left: 0;
  5991. margin-right: 0;
  5992. margin-bottom: 56px;
  5993. }
  5994. .ticket-create .attachment--row {
  5995. line-height: 1.45;
  5996. }
  5997. .attachment.attachment--row {
  5998. font-size: 13px;
  5999. padding: 1px 10px 1px 7px;
  6000. @include rtl(padding, 1px 7px 1px 10px);
  6001. cursor: default;
  6002. position: relative;
  6003. display: flex;
  6004. }
  6005. .attachment.attachment--preview {
  6006. display: flex;
  6007. font-size: 13px;
  6008. padding: 9px 4px;
  6009. position: relative;
  6010. min-height: 42px;
  6011. color: inherit;
  6012. align-items: flex-start;
  6013. border-bottom: 1px solid var(--background-modifier-border);
  6014. &:last-child {
  6015. border-bottom: none;
  6016. }
  6017. }
  6018. .attachment-icon {
  6019. margin-top: 2px;
  6020. width: 38px;
  6021. text-align: center;
  6022. flex-shrink: 0;
  6023. .icon {
  6024. vertical-align: bottom;
  6025. }
  6026. img {
  6027. width: 30px;
  6028. height: 30px;
  6029. object-fit: cover;
  6030. }
  6031. }
  6032. .attachment--preview {
  6033. .attachment-text {
  6034. margin: 0 4px;
  6035. }
  6036. }
  6037. .attachment--preview .attachment-name {
  6038. min-width: 0;
  6039. display: block;
  6040. @extend .u-highlight;
  6041. word-break: break-all;
  6042. }
  6043. .attachment--preview .attachment-size {
  6044. white-space: nowrap;
  6045. font-size: 11px;
  6046. color: var(--text-muted);
  6047. }
  6048. .attachment--preview .attachment-delete {
  6049. color: var(--interactive-muted);
  6050. text-decoration: underline;
  6051. display: none;
  6052. white-space: nowrap;
  6053. @include bidi-style(margin-left, auto, margin-right, 0);
  6054. @extend .u-clickable;
  6055. @include phone {
  6056. display: block;
  6057. }
  6058. }
  6059. .attachment:hover .attachment--preview .attachment-delete {
  6060. padding: 0 10px 0 30px;
  6061. float: right;
  6062. display: block;
  6063. position: absolute;
  6064. right: 0;
  6065. background: linear-gradient(
  6066. to right,
  6067. transparent,
  6068. var(--background-secondary-hover) 20px
  6069. );
  6070. }
  6071. .attachment--preview .attachment-delete .icon {
  6072. fill: var(--interactive-muted);
  6073. width: 9px;
  6074. height: 9px;
  6075. @include bidi-style(margin-right, 5px, margin-left, 0);
  6076. }
  6077. .attachment:hover {
  6078. background: var(--background-secondary-hover);
  6079. }
  6080. .attachment--row .attachment-name {
  6081. @include bidi-style(margin-right, 5px, margin-left, 0);
  6082. min-width: 0;
  6083. @extend .u-highlight;
  6084. }
  6085. .attachment--row .attachment-size {
  6086. white-space: nowrap;
  6087. float: right;
  6088. @include bidi-style(margin-right, 10px, margin-left, 0);
  6089. }
  6090. .attachment--row .attachment-delete {
  6091. color: var(--interactive-muted);
  6092. text-decoration: underline;
  6093. display: none;
  6094. white-space: nowrap;
  6095. @include bidi-style(margin-left, auto, margin-right, 0);
  6096. @extend %clickable;
  6097. }
  6098. .attachment:hover.attachment--row .attachment-delete {
  6099. padding: 0 10px 0 30px;
  6100. float: right;
  6101. display: block;
  6102. position: absolute;
  6103. right: 0;
  6104. background: linear-gradient(
  6105. to right,
  6106. transparent,
  6107. var(--background-secondary-hover) 20px
  6108. );
  6109. }
  6110. .attachment--row .attachment-delete .icon {
  6111. width: 9px;
  6112. height: 9px;
  6113. @include bidi-style(margin-right, 5px, margin-left, 0);
  6114. }
  6115. .attachmentPlaceholder-inputHolder {
  6116. position: relative;
  6117. display: inline-block;
  6118. overflow: hidden;
  6119. vertical-align: bottom;
  6120. pointer-events: auto;
  6121. @extend .u-highlight;
  6122. }
  6123. .attachmentUpload {
  6124. color: var(--text-muted);
  6125. }
  6126. .attachmentUpload-cancel {
  6127. @extend .u-clickable;
  6128. @include bidi-style(margin-left, auto, margin-right, 0);
  6129. text-decoration: underline;
  6130. }
  6131. .attachmentUpload .icon {
  6132. fill: var(--interactive-muted);
  6133. width: 9px;
  6134. height: 9px;
  6135. @include bidi-style(margin-right, 5px, margin-left, 0);
  6136. }
  6137. .attachmentUpload-progressBar {
  6138. position: absolute;
  6139. height: 4px;
  6140. background: hsl(202, 66%, 55%);
  6141. left: 0;
  6142. bottom: 0;
  6143. }
  6144. .attachmentUpload--standalone {
  6145. position: relative;
  6146. margin-bottom: 7px;
  6147. padding-bottom: 2px;
  6148. box-shadow: 0 -4px var(--border) inset;
  6149. &:last-child {
  6150. margin-bottom: 0;
  6151. }
  6152. .attachmentUpload-cancel {
  6153. padding: 0 2px 0 7px;
  6154. }
  6155. }
  6156. .attachmentUploadContainer {
  6157. .attachmentUpload-progressBar {
  6158. position: inherit;
  6159. }
  6160. }
  6161. .tabsSidebar-tabsSpacer {
  6162. @include bidi-style(padding-right, 62px !important, padding-left, 0);
  6163. /*
  6164. force div to show scrollbars
  6165. because we offset the sidebar tabs when the os shows scrollbars
  6166. */
  6167. overflow-x: hidden;
  6168. overflow-y: scroll;
  6169. @include phone {
  6170. @include bidi-style(padding-right, 0 !important, padding-left, 0);
  6171. }
  6172. }
  6173. .tabsSidebar-sidebarSpacer {
  6174. @include bidi-style(margin-right, $sidebarWidth, margin-left, 0);
  6175. transition: margin-right 500ms;
  6176. @include rtl(transition, margin-left 500ms);
  6177. }
  6178. .tabsSidebar-sidebarSpacer.is-closed {
  6179. margin-right: 0;
  6180. @include rtl(margin-left, 0);
  6181. }
  6182. .tabsSidebar-holder {
  6183. overflow: hidden;
  6184. position: relative;
  6185. flex: 1;
  6186. display: flex;
  6187. flex-direction: column;
  6188. }
  6189. .tabsSidebar .sidebar {
  6190. width: $sidebarWidth;
  6191. border-left: 1px solid var(--border);
  6192. padding: 0;
  6193. margin-bottom: 1px;
  6194. }
  6195. .tabsSidebar .sidebar > hr {
  6196. margin: 20px;
  6197. }
  6198. .tabsSidebar .sidebar-header {
  6199. display: flex;
  6200. align-content: stretch;
  6201. position: relative;
  6202. margin: 0 20px;
  6203. + hr {
  6204. margin-top: 0;
  6205. }
  6206. }
  6207. .sidebar-header-headline {
  6208. padding: 33px 8px 17px 25px;
  6209. @include rtl(padding, 33px 25px 17px 8px);
  6210. margin: 0 0 0 -20px;
  6211. @include rtl(margin, 0 -20px 0 0);
  6212. line-height: 1;
  6213. @extend .u-clickable, .u-textTruncate;
  6214. }
  6215. .sidebar-header-actions {
  6216. flex: 1;
  6217. @include bidi-style(margin-right, 5px, margin-left, 0);
  6218. display: flex;
  6219. align-items: center;
  6220. .dropdown {
  6221. flex: 1;
  6222. position: static;
  6223. }
  6224. .dropdown-toggle {
  6225. padding-top: 38px;
  6226. padding-bottom: 24px;
  6227. }
  6228. }
  6229. .tabsSidebar-close {
  6230. padding: 27px 35px 12px 0;
  6231. margin: 0 -20px 0 0;
  6232. @extend .u-clickable;
  6233. display: flex;
  6234. align-items: center;
  6235. justify-content: center;
  6236. .icon {
  6237. fill: var(--interactive-primary);
  6238. }
  6239. }
  6240. .tabsSidebar .sidebar-content {
  6241. padding: 0 20px 20px;
  6242. }
  6243. .sidebar.bottom-form-shadow {
  6244. box-shadow: 0 -1px rgba(0, 0, 0, 0.005) inset,
  6245. 0 -2px rgba(0, 0, 0, 0.005) inset, 0 -3px rgba(0, 0, 0, 0.005) inset,
  6246. 0 -4px rgba(0, 0, 0, 0.005) inset;
  6247. }
  6248. .tabsSidebar {
  6249. position: absolute;
  6250. @include bidi-style(right, 0, left, auto);
  6251. top: 0;
  6252. bottom: 0;
  6253. transition: 500ms;
  6254. z-index: 300;
  6255. &.tabsSidebar--attributeBarSpacer {
  6256. bottom: 60px;
  6257. }
  6258. }
  6259. .tabsSidebar.is-closed {
  6260. transform: translateX($sidebarWidth);
  6261. @include rtl(transform, translateX(-$sidebarWidth));
  6262. }
  6263. .tabsSidebar-tabs {
  6264. display: flex;
  6265. flex-direction: column;
  6266. justify-content: center;
  6267. position: absolute;
  6268. @include bidi-style(left, -55px, right, auto);
  6269. top: 0;
  6270. bottom: 0;
  6271. pointer-events: none;
  6272. @include phone {
  6273. @include bidi-style(left, -47px, right, auto);
  6274. }
  6275. }
  6276. .test {
  6277. position: absolute;
  6278. width: 100%;
  6279. }
  6280. .tabsSidebar-tab {
  6281. width: 56px;
  6282. height: 60px;
  6283. background: var(--background-primary-alt);
  6284. position: relative;
  6285. border-top: 1px solid var(--border-alt);
  6286. @extend .u-clickable;
  6287. pointer-events: auto;
  6288. display: flex;
  6289. align-items: center;
  6290. justify-content: center;
  6291. @include phone {
  6292. width: 47px;
  6293. height: 50px;
  6294. }
  6295. }
  6296. .tabsSidebar-tab.is-changed::before {
  6297. position: absolute;
  6298. content: '';
  6299. left: -3px;
  6300. width: 6px;
  6301. height: 6px;
  6302. top: 50%;
  6303. margin-top: -3px;
  6304. border-radius: 100%;
  6305. background: var(--interactive-muted-alt);
  6306. box-shadow: 0 0 0 2px var(--background-primary);
  6307. }
  6308. .tabsSidebar-tab:first-child {
  6309. @include bidi-style(border-top-left-radius, 8px, border-top-right-radius, 0);
  6310. border-top: none;
  6311. }
  6312. .tabsSidebar-tab:last-child {
  6313. @include bidi-style(
  6314. border-bottom-left-radius,
  6315. 8px,
  6316. border-bottom-right-radius,
  6317. 0
  6318. );
  6319. }
  6320. .tabsSidebar-tab .icon {
  6321. width: 24px;
  6322. height: 24px;
  6323. fill: var(--interactive-muted-alt);
  6324. }
  6325. .tabsSidebar-tab.active {
  6326. .tabsSidebar-tab-count {
  6327. background: var(--interactive-muted-alt-selected);
  6328. &::after {
  6329. border-right-color: var(--interactive-muted-alt-selected);
  6330. }
  6331. &.tabsSidebar-tab-count--info {
  6332. background: var(--button-primary-background);
  6333. opacity: 1;
  6334. &::after {
  6335. border-right-color: var(--button-primary-background);
  6336. }
  6337. }
  6338. &.tabsSidebar-tab-count--success {
  6339. background: hsl(145, 51%, 45%);
  6340. opacity: 1;
  6341. &::after {
  6342. border-right-color: hsl(145, 51%, 45%);
  6343. }
  6344. }
  6345. &.tabsSidebar-tab-count--warning {
  6346. background: hsl(45, 98%, 63%);
  6347. opacity: 1;
  6348. &::after {
  6349. border-right-color: hsl(45, 98%, 63%);
  6350. }
  6351. }
  6352. &.tabsSidebar-tab-count--danger {
  6353. background: hsl(11, 85%, 48%);
  6354. opacity: 1;
  6355. &::after {
  6356. border-right-color: hsl(11, 85%, 48%);
  6357. }
  6358. }
  6359. }
  6360. .icon {
  6361. fill: var(--interactive-muted-alt-selected);
  6362. }
  6363. }
  6364. .tabsSidebar-tab-count {
  6365. position: absolute;
  6366. left: 9px;
  6367. top: 5px;
  6368. background: var(--interactive-muted-alt);
  6369. width: 16px;
  6370. height: 13px;
  6371. text-align: center;
  6372. border-radius: 2px;
  6373. font-size: 9px;
  6374. line-height: 14px;
  6375. color: var(--background-primary-alt);
  6376. @include phone {
  6377. left: 4px;
  6378. top: 4px;
  6379. }
  6380. [data-tab='organization'] & {
  6381. left: 7px;
  6382. + .icon {
  6383. margin-left: 3px;
  6384. }
  6385. }
  6386. + .icon {
  6387. margin-top: 6px;
  6388. }
  6389. &::after {
  6390. content: '';
  6391. position: absolute;
  6392. top: 100%;
  6393. right: 20%;
  6394. border-bottom: 3px solid transparent;
  6395. border-right: 5px solid var(--interactive-muted-alt);
  6396. }
  6397. &.tabsSidebar-tab-count--info {
  6398. background: var(--button-primary-background);
  6399. opacity: 0.5;
  6400. &::after {
  6401. border-right-color: var(--button-primary-background);
  6402. }
  6403. }
  6404. &.tabsSidebar-tab-count--success {
  6405. background: hsl(145, 51%, 45%);
  6406. opacity: 0.5;
  6407. &::after {
  6408. border-right-color: hsl(145, 51%, 45%);
  6409. }
  6410. }
  6411. &.tabsSidebar-tab-count--warning {
  6412. background: hsl(45, 98%, 63%);
  6413. opacity: 0.5;
  6414. &::after {
  6415. border-right-color: hsl(45, 98%, 63%);
  6416. }
  6417. }
  6418. &.tabsSidebar-tab-count--danger {
  6419. background: hsl(11, 85%, 48%);
  6420. opacity: 0.5;
  6421. &::after {
  6422. border-right-color: hsl(11, 85%, 48%);
  6423. }
  6424. }
  6425. }
  6426. .alert {
  6427. padding: 10px 15px 8px;
  6428. border-radius: 3px;
  6429. color: var(--text-inverted);
  6430. border: none;
  6431. background: hsla(0, 0%, 0%, 0.3);
  6432. .icon {
  6433. @include bidi-style(margin-right, 10px, margin-left, 0);
  6434. fill: currentColor;
  6435. }
  6436. .btn {
  6437. background: hsla(0, 0%, 0%, 0.2);
  6438. border-color: hsla(0, 0%, 0%, 0.1);
  6439. color: inherit;
  6440. }
  6441. &--info {
  6442. background: var(--button-primary-background);
  6443. }
  6444. &--success {
  6445. &,
  6446. &[contenteditable]:hover,
  6447. &[contenteditable]:focus {
  6448. background: hsl(145, 51%, 45%);
  6449. }
  6450. }
  6451. &--warning {
  6452. color: hsl(45, 98%, 17%);
  6453. background: hsl(45, 98%, 63%);
  6454. .btn {
  6455. background: hsla(0, 0%, 100%, 0.2);
  6456. }
  6457. }
  6458. &--danger {
  6459. background: hsl(11, 85%, 48%);
  6460. }
  6461. &--square {
  6462. border-radius: 0;
  6463. }
  6464. &.horizontal .btn {
  6465. margin-top: -5px;
  6466. margin-bottom: -4px;
  6467. &:last-child {
  6468. margin-right: -5px;
  6469. }
  6470. }
  6471. &-row {
  6472. margin: 3px 0;
  6473. + .btn {
  6474. margin-top: 3px;
  6475. }
  6476. }
  6477. }
  6478. .tags,
  6479. .links,
  6480. .link_kb_answers {
  6481. margin: 20px 0;
  6482. }
  6483. .tags {
  6484. margin-top: 10px;
  6485. }
  6486. .userNotifications label + .btn {
  6487. margin-top: 1px;
  6488. }
  6489. .list {
  6490. padding: 0;
  6491. margin-bottom: 5px;
  6492. }
  6493. .list-title {
  6494. margin-top: 7px;
  6495. margin-bottom: 4px;
  6496. text-transform: uppercase;
  6497. color: var(--ghost-color);
  6498. display: block;
  6499. font-size: 12px;
  6500. font-weight: normal;
  6501. letter-spacing: 0.05em;
  6502. }
  6503. .list-item {
  6504. display: flex;
  6505. align-items: center;
  6506. border-bottom: 1px solid var(--background-modifier-border);
  6507. }
  6508. .list-item-name {
  6509. flex: 1;
  6510. padding: 4px 1px;
  6511. }
  6512. .list-item-delete {
  6513. padding: 0 10px;
  6514. @include bidi-style(margin-right, -3px, margin-left, 0);
  6515. display: flex;
  6516. align-items: center;
  6517. justify-content: center;
  6518. align-self: stretch;
  6519. @extend .u-clickable;
  6520. .icon {
  6521. width: 9px;
  6522. height: 9px;
  6523. fill: var(--interactive-muted);
  6524. }
  6525. }
  6526. .list-item-delete:hover .icon {
  6527. fill: hsl(1, 77%, 47%);
  6528. }
  6529. li.list-item-none {
  6530. list-style-type: none;
  6531. }
  6532. .ticket-id {
  6533. color: var(--text-inverted);
  6534. background: var(--interactive-muted-alt);
  6535. font-size: 11px;
  6536. border-radius: 7px;
  6537. padding: 0 5px;
  6538. @include bidi-style(margin-right, 2px, margin-left, 0);
  6539. }
  6540. .attributeBar {
  6541. background: var(--background-secondary);
  6542. transition: margin 250ms;
  6543. flex-shrink: 0;
  6544. border-top: 1px solid var(--border);
  6545. &.is-closed {
  6546. margin-bottom: -60px;
  6547. }
  6548. @include phone {
  6549. &-reset {
  6550. flex-shrink: 5;
  6551. }
  6552. .btn,
  6553. .buttonDropdown {
  6554. min-width: 20px;
  6555. &--only-icon {
  6556. min-width: 36px;
  6557. }
  6558. }
  6559. }
  6560. &-inner {
  6561. height: 60px;
  6562. display: flex;
  6563. align-items: center;
  6564. justify-content: flex-end;
  6565. padding: 10px;
  6566. }
  6567. &-avatars {
  6568. margin-right: 10px;
  6569. }
  6570. &-draft-spacer {
  6571. width: 1px;
  6572. height: 60px;
  6573. margin-right: 15px;
  6574. background: var(--background-modifier-accent);
  6575. }
  6576. &-avatars:empty + &-draft-spacer {
  6577. display: none;
  6578. }
  6579. &--border {
  6580. border-top: 1px solid var(--border);
  6581. }
  6582. &--spacer-after {
  6583. margin-right: auto;
  6584. }
  6585. }
  6586. .newTicket {
  6587. padding: 14px 34px;
  6588. @include phone {
  6589. padding: 0;
  6590. }
  6591. }
  6592. .newTicket .sidebar {
  6593. width: 290px;
  6594. }
  6595. .newTicket .form-control {
  6596. border-color: var(--border);
  6597. &:focus,
  6598. &.focus {
  6599. border-color: var(--border-highlight);
  6600. }
  6601. }
  6602. .newTicket .article-form-top {
  6603. margin-top: 15px;
  6604. }
  6605. .newTicket--chatTicket {
  6606. flex: 1;
  6607. display: flex;
  6608. padding: 0;
  6609. height: 100%;
  6610. & > .icon {
  6611. position: absolute;
  6612. top: 50%;
  6613. transform: translateY(-50%) translateX(-50%);
  6614. }
  6615. & > .box {
  6616. width: calc(50% - 47px);
  6617. margin: 34px;
  6618. }
  6619. .chatHistory {
  6620. display: flex;
  6621. flex-direction: column;
  6622. }
  6623. .boxFade {
  6624. width: 94px;
  6625. top: 34px;
  6626. height: 100%;
  6627. position: absolute;
  6628. @include bidi-style(margin-left, -34px, margin-right, 0);
  6629. z-index: 1;
  6630. }
  6631. }
  6632. .box {
  6633. background: var(--background-secondary);
  6634. margin: 20px 0;
  6635. border: 1px solid var(--border);
  6636. padding: 20px 24px;
  6637. }
  6638. .box.box--newTicket {
  6639. max-width: 1080px;
  6640. margin-left: auto;
  6641. margin-right: auto;
  6642. @include phone {
  6643. margin: 0;
  6644. border: none;
  6645. padding: 15px;
  6646. }
  6647. }
  6648. .box .page-header {
  6649. text-align: center;
  6650. margin-bottom: 12px;
  6651. }
  6652. .box--paper {
  6653. background-image: linear-gradient(
  6654. transparent 30px,
  6655. var(--background-modifier-border) 31px
  6656. );
  6657. background-size: 100% 31px;
  6658. line-height: 31px;
  6659. padding-top: 31px;
  6660. padding-bottom: 31px;
  6661. h1,
  6662. h2,
  6663. h3 {
  6664. margin: 0;
  6665. line-height: inherit;
  6666. }
  6667. h3:not(:first-child) {
  6668. margin-top: 31px;
  6669. }
  6670. }
  6671. .box h1 {
  6672. margin-top: 10px;
  6673. margin-bottom: 12px;
  6674. color: var(--text-normal);
  6675. flex: 1;
  6676. }
  6677. .box h2 {
  6678. margin-top: 12px;
  6679. }
  6680. .box .two-columns {
  6681. margin-left: -4px;
  6682. margin-right: -4px;
  6683. }
  6684. .box .two-columns .column {
  6685. margin-left: 4px;
  6686. margin-right: 4px;
  6687. width: calc(50% - 8px);
  6688. @include phone {
  6689. width: auto;
  6690. }
  6691. }
  6692. .box-controls {
  6693. margin-top: 20px;
  6694. display: flex;
  6695. align-items: center;
  6696. }
  6697. .box--yellow {
  6698. background: hsl(47, 100%, 93%);
  6699. border-color: hsl(47, 100%, 75%);
  6700. color: hsl(47, 20%, 67%);
  6701. h1,
  6702. h2 {
  6703. color: hsl(47, 3%, 28%);
  6704. }
  6705. }
  6706. .box-progress {
  6707. display: flex;
  6708. align-items: center;
  6709. justify-content: center;
  6710. }
  6711. .box-progress-title {
  6712. color: hsl(47, 3%, 28%);
  6713. }
  6714. .box-progress-body {
  6715. flex: 1;
  6716. @include bidi-style(margin-left, 24px, margin-right, 0);
  6717. display: flex;
  6718. align-items: center;
  6719. justify-content: center;
  6720. progress {
  6721. width: 100%;
  6722. }
  6723. }
  6724. .horizontal > .box {
  6725. margin-top: 4px;
  6726. margin-bottom: 4px;
  6727. & + .box {
  6728. border-left-width: 0;
  6729. }
  6730. }
  6731. .formset-inset {
  6732. margin: 34px -24px 24px;
  6733. padding: 19px 24px 24px;
  6734. background: var(--background-primary-alt);
  6735. border-top: 1px solid var(--border);
  6736. border-bottom: 1px solid var(--border);
  6737. }
  6738. .type-tabs {
  6739. @include phone {
  6740. overflow: hidden;
  6741. -webkit-overflow-scrolling: none;
  6742. }
  6743. }
  6744. .type-tabs .tab {
  6745. height: 40px;
  6746. line-height: 42px;
  6747. padding: 0 12px;
  6748. list-style: none;
  6749. align-items: flex-start;
  6750. @include phone {
  6751. display: block;
  6752. text-align: center;
  6753. flex-shrink: 1;
  6754. }
  6755. }
  6756. .type-tabs .tab-icon {
  6757. width: 17px;
  6758. height: 17px;
  6759. fill: var(--interactive-muted);
  6760. vertical-align: top;
  6761. @include bidi-style(margin-right, 9px, margin-left, 0);
  6762. margin-top: 11px;
  6763. transform: scale(1.2);
  6764. flex-shrink: 0;
  6765. }
  6766. .type-tabs .tab.active .tab-icon {
  6767. fill: var(--text-inverted);
  6768. }
  6769. .token {
  6770. padding: 0 0 0 10px;
  6771. margin: 0 5px 6px 0;
  6772. height: 26px;
  6773. color: var(--tag-text);
  6774. border-radius: 3px;
  6775. background: var(--tag-background);
  6776. border: none;
  6777. float: none;
  6778. display: inline-flex;
  6779. align-items: center;
  6780. cursor: default;
  6781. max-width: 100%;
  6782. &.active {
  6783. background: var(--highlight);
  6784. color: var(--text-inverted);
  6785. .close,
  6786. .token-close {
  6787. opacity: 1;
  6788. }
  6789. }
  6790. }
  6791. /*
  6792. selector needs to be stronger than .token-input
  6793. in order to override input[type=text]
  6794. */
  6795. .tokenfield .token-input {
  6796. vertical-align: top;
  6797. padding: 0 10px 7px 5px;
  6798. margin: 0;
  6799. min-width: 60px;
  6800. height: 32px;
  6801. display: inline-block;
  6802. border: none;
  6803. background: none;
  6804. box-shadow: none;
  6805. outline: none;
  6806. flex: 1;
  6807. &:focus {
  6808. box-shadow: none;
  6809. }
  6810. &[disabled] {
  6811. background: none;
  6812. }
  6813. }
  6814. .tokenfield .token ~ .token-input {
  6815. padding: 0 5px 7px 0;
  6816. }
  6817. .token-label {
  6818. padding: 0;
  6819. white-space: nowrap;
  6820. overflow: hidden;
  6821. text-overflow: ellipsis;
  6822. }
  6823. .tokenfield.form-control {
  6824. padding: 7px 7px 0;
  6825. height: auto;
  6826. display: flex;
  6827. flex-wrap: wrap;
  6828. }
  6829. .token .close,
  6830. .token-close {
  6831. margin: 0;
  6832. padding: 0 9px 1px 6px;
  6833. font-family: inherit;
  6834. font-weight: 100;
  6835. font-size: 28px;
  6836. line-height: 1;
  6837. color: inherit;
  6838. text-shadow: none;
  6839. opacity: 0.5;
  6840. outline: none;
  6841. height: auto;
  6842. @extend %clickable;
  6843. }
  6844. .token .close:hover,
  6845. .token-close:hover {
  6846. opacity: 0.5;
  6847. }
  6848. /* allow/show autocomplete in modal dialog */
  6849. .ui-autocomplete.ui-widget-content {
  6850. @extend .zIndex-11;
  6851. position: absolute;
  6852. max-height: 380px;
  6853. overflow: auto;
  6854. -webkit-overflow-scrolling: touch;
  6855. }
  6856. .ui-menu {
  6857. background: var(--background-tertiary);
  6858. border: none;
  6859. color: var(--text-inverted);
  6860. font-family: inherit;
  6861. font-size: inherit;
  6862. .ui-menu-item {
  6863. padding: 9px 15px;
  6864. list-style-image: none;
  6865. &.is-inactive {
  6866. text-decoration: line-through;
  6867. opacity: 0.73;
  6868. }
  6869. &:not(:first-child) {
  6870. box-shadow: 0 1px rgba(255, 255, 255, 0.13) inset;
  6871. }
  6872. &.ui-state-focus {
  6873. margin: 0;
  6874. border: none;
  6875. background: var(--highlight);
  6876. color: inherit;
  6877. + li {
  6878. box-shadow: none;
  6879. }
  6880. }
  6881. }
  6882. }
  6883. .drox {
  6884. color: var(--text-muted);
  6885. }
  6886. .drox .drox-header {
  6887. padding-bottom: 2px;
  6888. margin-bottom: 16px;
  6889. border-bottom: 1px solid var(--background-modifier-border);
  6890. }
  6891. .drox a.create {
  6892. margin-top: 2px;
  6893. display: inline-block;
  6894. }
  6895. .drox .form-group {
  6896. margin-bottom: 22px;
  6897. }
  6898. .drox .drox-body p:first-child {
  6899. margin-top: 20px;
  6900. }
  6901. .newTicket .templates {
  6902. border-bottom: 1px solid var(--background-modifier-border);
  6903. padding-bottom: 14px;
  6904. }
  6905. .templates-manage fieldset {
  6906. margin: 0;
  6907. }
  6908. .template-attributes {
  6909. margin: 17px 0 19px;
  6910. }
  6911. .template-attribute {
  6912. height: 24px;
  6913. line-height: 25px;
  6914. @include bidi-style(padding-left, 10px, padding-right, 0);
  6915. margin-bottom: 2px;
  6916. font-size: 13px;
  6917. color: var(--text-muted-alt);
  6918. background: var(--background-primary-alt);
  6919. border: 1px solid var(--border);
  6920. border-radius: 3px;
  6921. }
  6922. .template-attribute .key {
  6923. text-transform: uppercase;
  6924. @include bidi-style(margin-right, 3px, margin-left, 0);
  6925. }
  6926. .template-attribute .value {
  6927. @include bidi-style(margin-left, 3px, margin-right, 0);
  6928. }
  6929. .template-attribute .delete {
  6930. padding: 0 7px;
  6931. margin-top: 4px;
  6932. line-height: 19px;
  6933. font-size: 28px;
  6934. font-weight: 300;
  6935. opacity: 0.4;
  6936. }
  6937. .customer-name {
  6938. color: var(--text-normal);
  6939. }
  6940. .customer-email {
  6941. margin-top: 5px;
  6942. margin-bottom: 20px;
  6943. display: block;
  6944. }
  6945. .table.user-list {
  6946. tr:hover .switchView {
  6947. visibility: visible;
  6948. }
  6949. td .list {
  6950. margin-top: -4px;
  6951. }
  6952. .switchView {
  6953. visibility: hidden;
  6954. display: block;
  6955. text-overflow: ellipsis;
  6956. overflow: hidden;
  6957. }
  6958. .btn {
  6959. margin: 3px 5px 0;
  6960. }
  6961. }
  6962. .switchBackToUser {
  6963. display: flex;
  6964. align-items: center;
  6965. background: hsl(200, 87%, 45%);
  6966. color: var(--text-inverted);
  6967. height: 45px;
  6968. padding: 0 17px;
  6969. /* top: -45px !important; */
  6970. border-bottom: 5px solid hsl(205, 90%, 60%);
  6971. }
  6972. .switchBackToUser-icon {
  6973. width: 19px;
  6974. height: 18px;
  6975. }
  6976. .switchBackToUser-text {
  6977. @include bidi-style(margin-left, 10px, margin-right, 0);
  6978. }
  6979. .switchBackToUser-close {
  6980. width: 40px;
  6981. height: 40px;
  6982. @include bidi-style(margin-right, -10px, margin-left, 0);
  6983. display: flex;
  6984. align-items: center;
  6985. justify-content: center;
  6986. svg {
  6987. fill: var(--text-inverted);
  6988. }
  6989. }
  6990. .modal {
  6991. @extend .zIndex-11;
  6992. &-loader {
  6993. text-align: center;
  6994. padding: 70px;
  6995. }
  6996. &-backdrop--local {
  6997. background: var(--background-primary-alt);
  6998. }
  6999. }
  7000. .modal-dialog {
  7001. width: auto;
  7002. max-width: 660px;
  7003. margin-top: 35px;
  7004. margin-bottom: 35px;
  7005. @extend .zIndex-11;
  7006. @include phone {
  7007. max-width: calc(100% - 20px) !important;
  7008. margin: 10px;
  7009. }
  7010. &.wizard {
  7011. margin: 35px auto;
  7012. }
  7013. }
  7014. .modal--veryLarge .modal-dialog {
  7015. max-width: 990px;
  7016. }
  7017. .modal--large .modal-dialog {
  7018. max-width: 740px;
  7019. }
  7020. .modal--small .modal-dialog {
  7021. max-width: 440px;
  7022. }
  7023. .modal--dynamicSize .modal-dialog {
  7024. max-width: 100%;
  7025. width: max-content;
  7026. padding: 0 35px;
  7027. @include phone {
  7028. padding: 0;
  7029. margin: 10px;
  7030. }
  7031. }
  7032. .modal-dialog.wizard {
  7033. max-width: 460px;
  7034. }
  7035. .modal-content {
  7036. border-radius: 0;
  7037. border: 1px solid var(--border);
  7038. box-shadow: none;
  7039. color: var(--text-normal);
  7040. background: var(--background-secondary);
  7041. }
  7042. .modal-header {
  7043. padding: 30px 23px 23px;
  7044. border: none;
  7045. @include phone {
  7046. padding: 14px 15px;
  7047. }
  7048. &--empty {
  7049. padding: 0;
  7050. }
  7051. }
  7052. .modal-header h1 {
  7053. text-align: center;
  7054. @include phone {
  7055. text-align: initial;
  7056. line-height: 1.2;
  7057. }
  7058. }
  7059. .modal-close {
  7060. padding: 23px;
  7061. position: absolute;
  7062. z-index: 1;
  7063. right: 0;
  7064. color: var(--interactive-muted);
  7065. @include rtl(right, auto);
  7066. @include rtl(left, 0);
  7067. top: 0;
  7068. @extend .u-clickable;
  7069. @include phone {
  7070. position: static;
  7071. padding: 21px;
  7072. margin: -14px -15px 0 0;
  7073. float: right;
  7074. }
  7075. &:active {
  7076. color: var(--interactive-muted-active);
  7077. }
  7078. .icon-diagonal-cross {
  7079. fill: currentColor;
  7080. }
  7081. }
  7082. .modal-alerts-container {
  7083. padding: 0 23px;
  7084. }
  7085. .modal-body {
  7086. padding: 0 23px;
  7087. clear: both;
  7088. @include phone {
  7089. padding: 0 15px;
  7090. }
  7091. h2:first-child {
  7092. margin-top: 0;
  7093. }
  7094. p:first-child,
  7095. .alert.hidden:first-child + p {
  7096. margin-top: 0;
  7097. }
  7098. .table > thead > tr > th {
  7099. background: var(--background-primary-alt);
  7100. }
  7101. }
  7102. .modal-footer {
  7103. padding: 23px 23px 20px;
  7104. border: none;
  7105. display: flex;
  7106. @include rtl(text-align, left);
  7107. @include phone {
  7108. padding: 15px;
  7109. }
  7110. .btn--text + .btn--text {
  7111. margin-bottom: -10px;
  7112. }
  7113. }
  7114. .modal-leftFooter,
  7115. .modal-centerFooter,
  7116. .modal-rightFooter {
  7117. display: flex;
  7118. align-items: center; /* because of btn--text btn--subtle being thinner than the rest */
  7119. flex: 1;
  7120. }
  7121. .modal.modal--local {
  7122. display: block;
  7123. padding: 0 40px;
  7124. @extend .zIndex-11;
  7125. @include bidi-style(padding-left, 40px, padding-right, 0);
  7126. @include phone {
  7127. padding: 0 !important;
  7128. }
  7129. .modal-dialog {
  7130. box-shadow: 0 0 40px hsla(210, 17%, 40%, 0.34);
  7131. @include dark {
  7132. box-shadow: 0 0 40px hsla(0, 0%, 0%, 0.34);
  7133. }
  7134. }
  7135. }
  7136. .caret {
  7137. position: absolute;
  7138. top: 50%;
  7139. margin-top: -3px;
  7140. right: 10px;
  7141. }
  7142. .dropdown-backdrop {
  7143. @extend .zIndex-5; // has to be behind dropdown-menu
  7144. }
  7145. .dropdown-menu {
  7146. @extend .zIndex-6; // has to be behind modal windows and beneath notifications (popover)
  7147. margin: 0;
  7148. padding: 0;
  7149. min-width: 100%;
  7150. color: var(--text-inverted);
  7151. text-transform: initial;
  7152. letter-spacing: 0;
  7153. background: var(--background-tertiary);
  7154. border-radius: 0;
  7155. border: none;
  7156. box-shadow: none;
  7157. overflow: hidden;
  7158. @include rtl(text-align, right);
  7159. overscroll-behavior: contain;
  7160. }
  7161. .dropdown-menu .divider {
  7162. background: var(--background-modifier-border);
  7163. }
  7164. .dropdown-menu kbd {
  7165. background: none;
  7166. color: inherit;
  7167. padding: 2px 5px;
  7168. @include bidi-style(margin-left, 7px, margin-right, 0);
  7169. line-height: 1;
  7170. vertical-align: baseline;
  7171. opacity: 0.5;
  7172. }
  7173. .dropdown-toggle {
  7174. display: flex;
  7175. align-items: center;
  7176. @extend .u-clickable;
  7177. }
  7178. .dropdown-icon {
  7179. width: 16px;
  7180. height: 16px;
  7181. }
  7182. .dropdown-menu.dropdown-menu--light {
  7183. background: var(--background-secondary);
  7184. color: var(--text-muted);
  7185. }
  7186. .dropdown-menu.dropdown-menu--light > li {
  7187. color: var(--text-nav);
  7188. &.dropdown-header {
  7189. color: var(--text-muted);
  7190. }
  7191. }
  7192. .dropdown-menu.dropdown-menu--light > li > a:hover {
  7193. background: var(--background-secondary-hover);
  7194. }
  7195. .dropdown-menu.dropdown-menu--light li:hover {
  7196. background: none;
  7197. }
  7198. .dropdown-menu.dropdown-menu--light li.is-active {
  7199. color: var(--text-inverted);
  7200. }
  7201. .dropdown ul {
  7202. margin: 0;
  7203. padding: 0;
  7204. }
  7205. .dropdown li,
  7206. .dropup li {
  7207. height: 39px;
  7208. line-height: 39px;
  7209. padding: 0 15px;
  7210. @extend %clickable;
  7211. white-space: nowrap;
  7212. &:focus {
  7213. outline: none;
  7214. }
  7215. &.is-active {
  7216. small {
  7217. color: var(--text-muted-highlight);
  7218. }
  7219. }
  7220. }
  7221. .dropdown.dropdown--actions li.with-category {
  7222. height: 39px;
  7223. padding: 2.5px 15px;
  7224. display: block;
  7225. }
  7226. .dropdown li:not(:first-child) {
  7227. box-shadow: 0 1px rgba(255, 255, 255, 0.13) inset;
  7228. }
  7229. .dropdown li.label {
  7230. box-shadow: none;
  7231. + li {
  7232. box-shadow: none;
  7233. }
  7234. }
  7235. .dropdown li:hover,
  7236. .dropdown li.is-active {
  7237. background: var(--highlight);
  7238. + li {
  7239. box-shadow: none;
  7240. }
  7241. }
  7242. .dropdown-menu > li.danger:hover,
  7243. .dropdown-menu > li.danger.is-active {
  7244. background: var(--danger-color);
  7245. }
  7246. .dropdown-menu > li.create:hover,
  7247. .dropdown-menu > li.create.is-active {
  7248. background: hsl(145, 51%, 45%);
  7249. }
  7250. .dropdown-menu > li[disabled] {
  7251. opacity: 0.33;
  7252. &:hover,
  7253. &.is-active {
  7254. background: none;
  7255. cursor: default;
  7256. }
  7257. }
  7258. .dropdown-menu > li > a {
  7259. color: inherit;
  7260. padding: 0 15px;
  7261. margin: 0 -15px;
  7262. line-height: inherit;
  7263. }
  7264. .dropdown-menu > li > a:hover {
  7265. color: inherit;
  7266. background: none;
  7267. }
  7268. .dropdown-menu > li > a span {
  7269. display: block;
  7270. }
  7271. .dropdown-menu .badge--text {
  7272. @include bidi-style(padding-left, 10px, padding-right, 0);
  7273. }
  7274. .dropdown.dropdown--actions {
  7275. li {
  7276. line-height: initial;
  7277. height: auto;
  7278. padding: 11px 15px;
  7279. display: flex;
  7280. align-items: center;
  7281. word-break: break-all;
  7282. }
  7283. .dropdown-iconSpacer,
  7284. .dropdown-selectedSpacer {
  7285. display: flex;
  7286. align-items: center;
  7287. }
  7288. .dropdown-iconSpacer {
  7289. width: 25px;
  7290. }
  7291. .dropdown-selectedSpacer {
  7292. width: 34px;
  7293. @include bidi-style(margin-left, auto, margin-right, 0);
  7294. justify-content: flex-end;
  7295. opacity: 0;
  7296. .icon {
  7297. fill: var(--text-inverted);
  7298. }
  7299. &.is-selected {
  7300. opacity: 1;
  7301. }
  7302. }
  7303. a {
  7304. @extend .u-clickable;
  7305. display: flex;
  7306. flex: 1;
  7307. padding: 0 18px;
  7308. }
  7309. li.dropdown-highlight-list {
  7310. padding: 0 10px;
  7311. a {
  7312. padding: 11px 18px;
  7313. }
  7314. }
  7315. }
  7316. .dropdown.dropdown--wide {
  7317. li {
  7318. padding-top: 12px;
  7319. padding-bottom: 12px;
  7320. }
  7321. }
  7322. li.dropdown-header {
  7323. line-height: 34px;
  7324. height: 30px;
  7325. color: var(--text-muted);
  7326. box-shadow: none !important;
  7327. pointer-events: none;
  7328. }
  7329. .dropdown-menu--has-submenu {
  7330. overflow: hidden;
  7331. background: none;
  7332. ul {
  7333. background: var(--background-tertiary);
  7334. }
  7335. }
  7336. .dropdown-submenu {
  7337. position: absolute;
  7338. top: 0;
  7339. left: 0;
  7340. width: 100%;
  7341. }
  7342. .dropdown.dropdown--actions .dropdown-controls {
  7343. @extend .u-clickable;
  7344. display: flex;
  7345. &:not(:hover, .is-active) {
  7346. background: hsl(206, 7%, 28%);
  7347. }
  7348. .icon {
  7349. fill: var(--text-inverted);
  7350. @include bidi-style(margin-right, 10px, margin-left, 0);
  7351. flex-shrink: 0;
  7352. }
  7353. }
  7354. .dropdown-title {
  7355. flex-shrink: 1;
  7356. overflow: hidden;
  7357. text-overflow: ellipsis;
  7358. white-space: nowrap;
  7359. }
  7360. .dropdown-detail {
  7361. opacity: 0.5;
  7362. }
  7363. .dropdown {
  7364. .dropdown-menu-full-height {
  7365. li {
  7366. padding: 0;
  7367. }
  7368. a {
  7369. padding: 11px 18px;
  7370. margin: 0;
  7371. }
  7372. }
  7373. }
  7374. .recipientList,
  7375. .recipientList-organizationMembers {
  7376. list-style: none;
  7377. padding: 0;
  7378. }
  7379. .recipientList-entry {
  7380. display: flex;
  7381. align-items: center;
  7382. @extend .u-clickable;
  7383. &.is-inactive {
  7384. .recipientList-name {
  7385. text-decoration: line-through;
  7386. opacity: 0.73;
  7387. }
  7388. }
  7389. }
  7390. .recipientList-entry .recipientList-iconSpacer {
  7391. width: 20px;
  7392. @include bidi-style(margin-left, -5px, margin-right, 0);
  7393. display: flex;
  7394. align-items: center;
  7395. justify-content: center;
  7396. flex-shrink: 0;
  7397. }
  7398. .recipientList-icon {
  7399. width: 16px;
  7400. height: 16px;
  7401. fill: var(--text-inverted);
  7402. opacity: 0.2;
  7403. }
  7404. .recipientList--new,
  7405. .recipientList-entry:hover,
  7406. .recipientList-entry.is-active {
  7407. .recipientList-icon {
  7408. opacity: 1;
  7409. }
  7410. }
  7411. .recipientList-name {
  7412. color: var(--text-inverted);
  7413. @include bidi-style(margin-left, 10px, margin-right, 0);
  7414. flex: 1;
  7415. @extend .u-textTruncate;
  7416. }
  7417. .recipientList-status {
  7418. opacity: 0.5;
  7419. margin: 0 10px;
  7420. flex-shrink: 1;
  7421. &:last-child {
  7422. margin-right: 0;
  7423. }
  7424. }
  7425. .recipientList-arrow {
  7426. fill: var(--text-inverted);
  7427. opacity: 0.39;
  7428. }
  7429. .recipientList-entry:hover .recipientList-arrow {
  7430. opacity: 1;
  7431. }
  7432. .recipientList-detail {
  7433. opacity: 0.5;
  7434. &.is-inactive > span {
  7435. text-decoration: line-through;
  7436. }
  7437. }
  7438. .recipientList-icon.plus {
  7439. @include bidi-style(margin-left, 13px, margin-right, 0);
  7440. }
  7441. .recipientList--new {
  7442. background: hsl(145, 51%, 45%);
  7443. }
  7444. .dropdown .recipientList--new:hover {
  7445. background: hsl(147, 52%, 43%);
  7446. }
  7447. .recipientList-controls,
  7448. .recipientList-controls:hover {
  7449. @extend .u-clickable;
  7450. padding: 0 10px !important;
  7451. background: var(--background-modifier-lighter);
  7452. & + li {
  7453. box-shadow: 0 1px rgba(255, 255, 255, 0.13) inset;
  7454. }
  7455. }
  7456. .recipientList-organizationMembers {
  7457. position: absolute;
  7458. top: 0;
  7459. left: 0;
  7460. right: 0;
  7461. }
  7462. .userInfo-avatar {
  7463. float: right;
  7464. @include rtl(float, left);
  7465. position: relative;
  7466. }
  7467. .organizationInfo-avatar {
  7468. @extend .userInfo-avatar;
  7469. @include bidi-style(padding, 18px 0 0 18px, padding, 18px 18px 0 0);
  7470. background: var(--background-modifier-accent);
  7471. color: var(--text-muted);
  7472. }
  7473. .userList {
  7474. list-style: none;
  7475. padding: 0;
  7476. .userList-entry {
  7477. margin: 10px 0;
  7478. display: flex;
  7479. align-items: center;
  7480. &:last-child {
  7481. margin-bottom: 0;
  7482. }
  7483. }
  7484. .userList-name {
  7485. @extend .u-textTruncate;
  7486. @include bidi-style(margin-left, 7px, margin-right, 0);
  7487. }
  7488. }
  7489. .checkbox,
  7490. .radio {
  7491. font-size: 14px;
  7492. padding: 0 6px;
  7493. .form-group & {
  7494. padding: 10px 12px;
  7495. margin: 0;
  7496. list-style: none;
  7497. height: auto;
  7498. display: flex;
  7499. flex-direction: column;
  7500. align-items: flex-start;
  7501. background: var(--background-secondary);
  7502. border: 1px solid var(--border);
  7503. }
  7504. .checkbox-replacement {
  7505. display: inline-block;
  7506. }
  7507. label {
  7508. padding-left: 0;
  7509. min-height: 0;
  7510. }
  7511. > label,
  7512. &-child {
  7513. margin-top: 5px;
  7514. font-family: inherit;
  7515. font-size: 14px;
  7516. color: inherit;
  7517. text-transform: inherit;
  7518. letter-spacing: 0;
  7519. line-height: 1.2;
  7520. &:first-child {
  7521. margin-top: 0;
  7522. }
  7523. &.is-disabled {
  7524. cursor: default;
  7525. touch-action: default;
  7526. span {
  7527. opacity: 0.33;
  7528. }
  7529. }
  7530. &.additional-radio-controls {
  7531. margin-top: 0;
  7532. .controls {
  7533. display: inline-flex;
  7534. margin-left: 5px;
  7535. }
  7536. }
  7537. }
  7538. &-child {
  7539. padding-left: 20px;
  7540. }
  7541. .help-text {
  7542. display: table;
  7543. font-size: 0.92em;
  7544. margin: 2px 0 3px 18px;
  7545. }
  7546. }
  7547. .checkbox.form-group .checkbox--list,
  7548. .radio.form-group .radio--list {
  7549. margin-top: 0;
  7550. margin-bottom: 15px;
  7551. height: auto;
  7552. padding-top: 3px;
  7553. padding-bottom: 3px;
  7554. }
  7555. .checkbox,
  7556. .radio {
  7557. &.form-group .controls label {
  7558. padding: 2px 0;
  7559. font: inherit;
  7560. margin-bottom: 0;
  7561. color: inherit;
  7562. text-transform: inherit;
  7563. letter-spacing: 0;
  7564. line-height: 1.2;
  7565. &:first-child {
  7566. margin-top: 0;
  7567. }
  7568. &.is-disabled {
  7569. cursor: default;
  7570. touch-action: default;
  7571. span {
  7572. opacity: 0.33;
  7573. }
  7574. }
  7575. }
  7576. &-child {
  7577. padding-left: 20px;
  7578. }
  7579. }
  7580. .radio_graphic .selections-container {
  7581. display: grid;
  7582. grid-gap: 10px;
  7583. // fit as many as possible in one line, they must at least be 112px wide
  7584. grid-template-columns: repeat(auto-fill, minmax(112px, 1fr));
  7585. label {
  7586. margin-top: 0;
  7587. position: relative;
  7588. }
  7589. .icon {
  7590. flex-shrink: 0;
  7591. }
  7592. .icon-checked {
  7593. display: none;
  7594. }
  7595. .label-box {
  7596. display: block;
  7597. background: var(--background-secondary);
  7598. border: 1px solid var(--border);
  7599. border-radius: 5px;
  7600. overflow: hidden;
  7601. }
  7602. .label-row {
  7603. display: flex;
  7604. align-items: center;
  7605. padding: 5px 10px;
  7606. }
  7607. .label-text {
  7608. display: block;
  7609. margin-left: 5px;
  7610. white-space: nowrap;
  7611. overflow: hidden;
  7612. text-overflow: ellipsis;
  7613. }
  7614. .radio-illustration {
  7615. display: block;
  7616. width: 100%;
  7617. padding-bottom: 100%;
  7618. position: relative;
  7619. img {
  7620. width: 100%;
  7621. height: 100%;
  7622. position: absolute;
  7623. left: 0;
  7624. top: 0;
  7625. object-fit: cover;
  7626. }
  7627. }
  7628. input {
  7629. &:checked {
  7630. ~ .label-box {
  7631. border-color: var(--border-highlight);
  7632. box-shadow: 0 0 0 3px var(--shadow-highlight);
  7633. .icon-checked {
  7634. display: inline;
  7635. }
  7636. .icon-unchecked {
  7637. display: none;
  7638. }
  7639. }
  7640. }
  7641. }
  7642. }
  7643. .userSearch-label {
  7644. margin-top: 11px;
  7645. @include bidi-style(margin-right, 10px, margin-left, 0);
  7646. }
  7647. .userSearch .tab:not(.active) {
  7648. background: var(--background-secondary);
  7649. }
  7650. .userSearch {
  7651. margin: 0 0 20px;
  7652. }
  7653. .userSearch .tabs {
  7654. margin: 0;
  7655. }
  7656. .nav {
  7657. list-style: none;
  7658. padding: 0;
  7659. margin: 0;
  7660. }
  7661. .nav a {
  7662. padding: 10px 15px;
  7663. display: block;
  7664. }
  7665. .nav-tabs {
  7666. display: flex;
  7667. margin: 10px -20px 20px;
  7668. padding: 0 20px 0 21px; /* margin-left: -1px */
  7669. @include rtl(padding, 0 21px 0 20px);
  7670. position: relative;
  7671. }
  7672. .nav-tabs li {
  7673. margin: 0;
  7674. color: var(--interactive-muted);
  7675. border: 1px solid var(--border);
  7676. margin-left: -1px;
  7677. background: var(--background-secondary);
  7678. position: relative;
  7679. &:first-child {
  7680. border-radius: 7px 0 0 7px;
  7681. @include rtl(border-radius, 0 7px 7px 0);
  7682. }
  7683. &:last-child {
  7684. border-radius: 0 7px 7px 0;
  7685. @include rtl(border-radius, 7px 0 0 7px);
  7686. }
  7687. &:only-child {
  7688. border-radius: 7px;
  7689. }
  7690. &.active {
  7691. color: var(--text-inverted);
  7692. background: var(--button-active);
  7693. }
  7694. a {
  7695. padding: 10px 24px 8px;
  7696. color: inherit;
  7697. color: inherit;
  7698. }
  7699. }
  7700. .tab-content {
  7701. h2:first-child {
  7702. margin-top: 0;
  7703. }
  7704. }
  7705. .or-divider {
  7706. position: relative;
  7707. margin: 16px 0;
  7708. text-align: center;
  7709. &::before {
  7710. content: '';
  7711. position: absolute;
  7712. left: 0;
  7713. width: 100%;
  7714. top: 50%;
  7715. margin-top: -1px;
  7716. height: 1px;
  7717. background: hsla(0, 0%, 0%, 0.1);
  7718. }
  7719. span {
  7720. position: relative;
  7721. background: var(--background-secondary);
  7722. padding: 0 10px;
  7723. .modal-body & {
  7724. background: var(--background-primary);
  7725. }
  7726. }
  7727. }
  7728. .settings-entry {
  7729. margin-bottom: 42px;
  7730. max-width: 700px;
  7731. @include phone {
  7732. overflow: auto;
  7733. -webkit-overflow-scrolling: touch;
  7734. }
  7735. &--stretched {
  7736. max-width: none;
  7737. }
  7738. }
  7739. .setting-controls {
  7740. margin-top: 14px;
  7741. display: flex;
  7742. justify-content: flex-end;
  7743. }
  7744. .form-item .form-group {
  7745. margin-bottom: 0;
  7746. }
  7747. .form-item .form-group + .form-group {
  7748. margin-top: 15px;
  7749. }
  7750. .form-item + .btn {
  7751. @include bidi-style(margin-left, 23px, margin-right, 0);
  7752. }
  7753. .scrollPageHeader {
  7754. @extend .zIndex-5;
  7755. display: flex;
  7756. align-items: center;
  7757. background: var(--background-secondary);
  7758. border-bottom: 1px solid var(--border);
  7759. height: 64px;
  7760. top: 0;
  7761. left: 0;
  7762. right: 0;
  7763. padding: 0 22px;
  7764. position: absolute;
  7765. transform: translateY(-100%);
  7766. @include phone {
  7767. height: 50px;
  7768. padding: 0 6px;
  7769. overflow: hidden;
  7770. &.is-closed {
  7771. overflow: visible;
  7772. }
  7773. }
  7774. }
  7775. .scrollPageHeader small {
  7776. color: var(--text-muted-alt);
  7777. @include phone {
  7778. margin-top: 1px;
  7779. @include bidi-style(margin-left, 3px, margin-right, 0);
  7780. }
  7781. }
  7782. .scrollPageHeader .ticket-title {
  7783. max-width: initial;
  7784. padding: 0;
  7785. min-width: 0;
  7786. flex: 1;
  7787. }
  7788. .scrollPageHeader h1 {
  7789. font-size: 19px;
  7790. margin: 0 15px;
  7791. @extend .u-textTruncate;
  7792. @include phone {
  7793. font-size: 17px;
  7794. margin: 0 5px;
  7795. }
  7796. }
  7797. .wizard {
  7798. margin: auto; // makes sure that the wizard is scrollable
  7799. }
  7800. .wizard-logo {
  7801. fill: var(--text-inverted);
  7802. @include bidi-style(margin-left, -25px, margin-right, 0);
  7803. margin-bottom: 5px;
  7804. }
  7805. .wizard-slide {
  7806. @extend .hero-unit;
  7807. display: flex;
  7808. flex-direction: column;
  7809. width: 400px;
  7810. padding-bottom: 18px;
  7811. margin-bottom: 20px;
  7812. &.wizard-slide--large {
  7813. width: 460px;
  7814. }
  7815. }
  7816. .wizard h2 {
  7817. text-align: center;
  7818. border-bottom: 1px solid rgba(0, 0, 0, 0.13);
  7819. padding-bottom: 8px;
  7820. margin-bottom: 16px;
  7821. & + p {
  7822. margin-top: 0;
  7823. }
  7824. }
  7825. .wizard-body {
  7826. flex: 1;
  7827. padding-bottom: 15px;
  7828. @include phone {
  7829. width: 100%;
  7830. }
  7831. .form-control {
  7832. min-width: 0;
  7833. }
  7834. }
  7835. .wizard-controls {
  7836. display: flex;
  7837. margin-top: 15px;
  7838. height: 39px;
  7839. }
  7840. .wizard-buttonList {
  7841. margin-top: 15px;
  7842. min-width: 200px;
  7843. }
  7844. p + .wizard-buttonList,
  7845. label + .wizard-buttonList {
  7846. margin-top: 5px;
  7847. }
  7848. .wizard-loadingText {
  7849. text-align: center;
  7850. margin: 0;
  7851. }
  7852. .wizard-loadingText .loading {
  7853. vertical-align: middle;
  7854. @include bidi-style(margin-right, 10px, margin-left, 0);
  7855. }
  7856. .wizard-aside {
  7857. padding-top: 15px;
  7858. text-align: center;
  7859. border-top: 1px solid rgba(0, 0, 0, 0.13);
  7860. }
  7861. .setup.wizard .wizard-body {
  7862. min-height: 140px;
  7863. & > p:first-child {
  7864. margin-top: 0;
  7865. }
  7866. }
  7867. .setup.wizard .logo-preview,
  7868. .branding .logo-preview {
  7869. display: block;
  7870. height: 0;
  7871. max-width: 200px;
  7872. max-height: 100px;
  7873. &[src=''] {
  7874. visibility: hidden;
  7875. }
  7876. + .logo-preview-placeholder {
  7877. height: 100px;
  7878. color: var(--text-muted);
  7879. background: var(--background-modifier-accent);
  7880. margin-bottom: 10px;
  7881. display: flex;
  7882. align-items: center;
  7883. justify-content: center;
  7884. }
  7885. }
  7886. .setup.wizard .logo-preview:not([src='']) {
  7887. margin: 0 auto 15px;
  7888. height: auto;
  7889. + .logo-preview-placeholder {
  7890. display: none;
  7891. }
  7892. }
  7893. .setup.wizard .base-outbound-settings {
  7894. margin-top: 15px;
  7895. }
  7896. .branding .logo-preview:not([src='']) {
  7897. margin: 20px auto 12px;
  7898. height: auto;
  7899. + .logo-preview-placeholder {
  7900. display: none;
  7901. }
  7902. }
  7903. .branding.login {
  7904. padding: 24px 24px 0;
  7905. }
  7906. .import.wizard .wizard-slide {
  7907. min-height: 300px;
  7908. }
  7909. .import-source {
  7910. border-radius: 5px;
  7911. border: 1px solid rgba(0, 0, 0, 0.13);
  7912. height: 50px;
  7913. margin: 5px 0;
  7914. @extend .u-clickable;
  7915. }
  7916. .input-feedback {
  7917. position: absolute;
  7918. @include bidi-style(padding-left, 10px, padding-right, 0);
  7919. right: 1px;
  7920. top: 1px;
  7921. bottom: 1px;
  7922. width: 52px;
  7923. border-radius: 0 5px 5px 0;
  7924. background: linear-gradient(to right, rgba(255, 255, 255, 0), white 33%);
  7925. &--no-background {
  7926. background: none;
  7927. }
  7928. }
  7929. .input-group-addon {
  7930. color: inherit;
  7931. }
  7932. .input-feedback--no-background {
  7933. background: none;
  7934. }
  7935. .input-feedback .icon {
  7936. display: none;
  7937. }
  7938. .input-feedback[data-state='loading'] .loading.icon,
  7939. .input-feedback[data-state='error'] .icon-error,
  7940. .input-feedback[data-state='success'] .icon-checkmark {
  7941. display: block;
  7942. }
  7943. .progressTable {
  7944. width: 100%;
  7945. margin: 0 auto;
  7946. }
  7947. .progressTable td {
  7948. padding: 8px;
  7949. overflow: auto;
  7950. -webkit-overflow-scrolling: touch;
  7951. width: 33%;
  7952. }
  7953. .progressTable tr:not(:last-child) {
  7954. border-bottom: 1px solid #eee;
  7955. }
  7956. .progressTable td:first-child {
  7957. text-align: end;
  7958. }
  7959. .progressTable progress {
  7960. width: 100%;
  7961. min-width: 60px;
  7962. display: block;
  7963. }
  7964. .progressTable .icon-checkmark {
  7965. @include bidi-style(margin-left, 10px, margin-right, 0);
  7966. opacity: 0;
  7967. }
  7968. .progressTable tr.is-done .icon-checkmark {
  7969. opacity: 1;
  7970. }
  7971. .channelList {
  7972. flex: 1;
  7973. display: flex;
  7974. flex-direction: column;
  7975. background: var(--background-secondary);
  7976. border-radius: 2px;
  7977. margin: 5px 0 20px;
  7978. box-shadow: var(--elevation-low);
  7979. }
  7980. .channelList,
  7981. .channelList-controls,
  7982. .channelList-controlEntry {
  7983. border: 1px solid var(--border);
  7984. }
  7985. .channelList-entry {
  7986. display: flex;
  7987. cursor: default;
  7988. padding: 5px 8px;
  7989. &:not(:last-child) {
  7990. border-bottom: 1px solid var(--border);
  7991. }
  7992. }
  7993. .channelList-label {
  7994. margin: 0 10px;
  7995. flex: 1;
  7996. & > * {
  7997. @extend .u-textTruncate;
  7998. }
  7999. }
  8000. .channelList-status {
  8001. font-size: 12px;
  8002. color: var(--text-muted);
  8003. }
  8004. .channelList-placeholder {
  8005. display: flex;
  8006. align-items: center;
  8007. justify-content: center;
  8008. flex: 1;
  8009. color: var(--text-muted);
  8010. }
  8011. .channelList-controls {
  8012. margin-top: auto;
  8013. display: flex;
  8014. background: var(--background-quaternary-alt);
  8015. border-left: none;
  8016. border-right: none;
  8017. border-bottom: none;
  8018. }
  8019. .channelList-controlEntry {
  8020. display: flex;
  8021. justify-content: center;
  8022. width: 26px;
  8023. height: 26px;
  8024. border-left: none;
  8025. border-top: none;
  8026. border-bottom: none;
  8027. position: relative;
  8028. [data-toggle='dropdown'] {
  8029. position: relative;
  8030. }
  8031. .icon {
  8032. opacity: 0.8;
  8033. }
  8034. }
  8035. .avatar-gallery {
  8036. display: flex;
  8037. flex-wrap: wrap;
  8038. }
  8039. .avatar-holder {
  8040. display: inline-block;
  8041. position: relative;
  8042. margin: 0 32px 32px 0;
  8043. border-radius: 100%;
  8044. box-shadow: 0 0 0 4px var(--background-secondary);
  8045. .avatar {
  8046. @extend .u-clickable;
  8047. &.is-active {
  8048. box-shadow: 0 0 0 4px var(--border-highlight);
  8049. }
  8050. }
  8051. }
  8052. .avatar--new {
  8053. background: hsl(145, 51%, 45%);
  8054. @extend .u-clickable;
  8055. }
  8056. .avatar-holder .avatar-delete {
  8057. position: absolute;
  8058. right: -15px;
  8059. top: -15px;
  8060. width: 40px;
  8061. height: 40px;
  8062. pointer-events: none;
  8063. visibility: hidden;
  8064. background: var(--background-secondary);
  8065. display: flex;
  8066. align-items: center;
  8067. justify-content: center;
  8068. border-radius: 100%;
  8069. box-shadow: 0 1px 5px rgba(0, 0, 0, 0.05);
  8070. @extend .u-clickable;
  8071. svg {
  8072. opacity: 0.5;
  8073. fill: var(--interactive-primary);
  8074. }
  8075. &:hover svg {
  8076. opacity: 1;
  8077. }
  8078. }
  8079. .avatar-holder:hover .avatar-delete {
  8080. visibility: visible;
  8081. pointer-events: auto;
  8082. }
  8083. .camera video {
  8084. position: absolute;
  8085. visibility: hidden;
  8086. pointer-events: none;
  8087. }
  8088. .camera-preview {
  8089. display: block;
  8090. margin: 0 auto;
  8091. }
  8092. .camera-flash {
  8093. @extend .fit;
  8094. background: var(--background-secondary);
  8095. opacity: 0;
  8096. @extend .u-unclickable;
  8097. }
  8098. .camera-flash.is-active {
  8099. animation: flash 500ms ease;
  8100. }
  8101. @keyframes flash {
  8102. 0% {
  8103. opacity: 0;
  8104. }
  8105. 50% {
  8106. opacity: 1;
  8107. }
  8108. 100% {
  8109. opacity: 0;
  8110. }
  8111. }
  8112. .fileUpload {
  8113. position: relative;
  8114. overflow: hidden;
  8115. &.btn input:focus + label {
  8116. text-decoration: none;
  8117. }
  8118. }
  8119. .fileUpload label {
  8120. font-size: inherit;
  8121. color: inherit;
  8122. letter-spacing: inherit;
  8123. text-transform: inherit;
  8124. display: inline;
  8125. margin: 0;
  8126. }
  8127. .fileUpload input {
  8128. position: absolute;
  8129. right: 0;
  8130. top: 0;
  8131. font-size: 118px;
  8132. margin: 0;
  8133. padding: 0;
  8134. @extend %clickable;
  8135. opacity: 0;
  8136. &:focus + label {
  8137. text-decoration: underline;
  8138. }
  8139. }
  8140. .imagePreview {
  8141. margin-top: 45px;
  8142. @include phone {
  8143. margin-top: 0;
  8144. }
  8145. img {
  8146. width: auto !important;
  8147. max-width: 100% !important;
  8148. max-height: calc(100vh - 218px) !important;
  8149. }
  8150. }
  8151. .imageCropper p {
  8152. margin: 0;
  8153. }
  8154. .imageCropper-holder {
  8155. height: 340px;
  8156. margin: 15px 0;
  8157. }
  8158. .imageCropper-image {
  8159. max-width: 100%;
  8160. max-height: 100%;
  8161. opacity: 0;
  8162. }
  8163. .imageCropper-preview {
  8164. width: 40px;
  8165. height: 40px;
  8166. border-radius: 100%;
  8167. overflow: hidden;
  8168. margin: 0 10px;
  8169. }
  8170. .cropper-container {
  8171. /* prevent cropper.js's centering – we center via flex */
  8172. left: 0 !important;
  8173. }
  8174. .profile {
  8175. padding: 60px;
  8176. overflow: auto;
  8177. -webkit-overflow-scrolling: touch;
  8178. flex: 1;
  8179. @include phone {
  8180. padding: 0;
  8181. margin: 0;
  8182. }
  8183. h1 {
  8184. margin: 18px 0 0;
  8185. }
  8186. .tabs {
  8187. margin-top: 2px;
  8188. margin-bottom: 25px;
  8189. }
  8190. }
  8191. .profile-window {
  8192. color: var(--text-normal);
  8193. background: var(--background-secondary);
  8194. max-width: 660px;
  8195. margin: 0 auto;
  8196. border: 1px solid var(--border);
  8197. }
  8198. .profile-section {
  8199. padding: 20px 50px;
  8200. @include phone {
  8201. padding: 10px;
  8202. }
  8203. &.profile-memberSection {
  8204. margin-bottom: 10px;
  8205. }
  8206. }
  8207. .profile-section:not(:last-child) {
  8208. border-bottom: 1px solid var(--background-modifier-border);
  8209. }
  8210. .profile-action {
  8211. @include bidi-style(margin-right, -20px, margin-left, 0);
  8212. @include phone {
  8213. @include bidi-style(margin-right, 0, margin-left, 0);
  8214. }
  8215. .dropdown-toggle {
  8216. margin-top: -20px;
  8217. @include bidi-style(margin-right, -30px, margin-left, 0);
  8218. margin-bottom: 8px;
  8219. padding: 26px 40px 2px;
  8220. @include phone {
  8221. margin-top: -5px;
  8222. padding: 10px 0 5px;
  8223. @include bidi-style(margin-right, 0, margin-left, 0);
  8224. }
  8225. }
  8226. label {
  8227. margin: 0 8px;
  8228. padding: 0;
  8229. cursor: inherit;
  8230. }
  8231. }
  8232. .profile-subtitle {
  8233. font-size: 16px;
  8234. @extend .u-highlight;
  8235. }
  8236. .profile-details {
  8237. @include bidi-style(margin-left, -50px, margin-right, 0);
  8238. }
  8239. .profile-ticketsPlaceholder {
  8240. flex: 1;
  8241. margin: 8px 0 22px;
  8242. color: var(--text-muted);
  8243. .stat-icon {
  8244. margin-bottom: 10px;
  8245. }
  8246. }
  8247. .profile-detailsEntry {
  8248. margin: 8px 0;
  8249. @include bidi-style(padding-left, 50px, padding-right, 0);
  8250. width: 50%;
  8251. }
  8252. .profile-detailsEntry label {
  8253. padding: 0;
  8254. margin-bottom: 2px;
  8255. display: block;
  8256. }
  8257. .profile-organizationMember {
  8258. @extend .profile-detailsEntry;
  8259. display: flex;
  8260. align-items: center;
  8261. .avatar {
  8262. @include bidi-style(margin-right, 10px, margin-left, 0);
  8263. }
  8264. }
  8265. .profile-ticketLists {
  8266. display: flex;
  8267. margin: 0 -25px;
  8268. @include phone {
  8269. display: block;
  8270. margin: 0;
  8271. }
  8272. }
  8273. .profile-ticketList {
  8274. display: flex;
  8275. flex-direction: column;
  8276. flex: 1 1 50%;
  8277. padding: 0 25px;
  8278. min-width: 0; /* Firefox wrong content-calculation with word-wrap workaround */
  8279. @include phone {
  8280. padding: 0;
  8281. margin-bottom: 10px;
  8282. &:last-child {
  8283. margin-bottom: 0;
  8284. }
  8285. }
  8286. .tasks {
  8287. margin-bottom: 10px;
  8288. display: flex;
  8289. flex-basis: auto;
  8290. flex-direction: column;
  8291. }
  8292. }
  8293. .profile .frequency.stat-widget {
  8294. height: 230px;
  8295. @include phone {
  8296. display: none;
  8297. }
  8298. .stat-bars {
  8299. height: 100px;
  8300. }
  8301. }
  8302. .profile-organizationIcon {
  8303. display: flex;
  8304. align-items: center;
  8305. justify-content: center;
  8306. width: 80px;
  8307. height: 80px;
  8308. background: var(--background-modifier-accent);
  8309. color: var(--text-muted);
  8310. border-radius: 100%;
  8311. svg {
  8312. width: 32px;
  8313. height: 32px;
  8314. }
  8315. }
  8316. .highlighter {
  8317. display: flex;
  8318. }
  8319. [data-highlightcolor='Yellow']::selection {
  8320. background: var(--highlighter-yellow);
  8321. }
  8322. .highlight-Yellow {
  8323. background: var(--highlighter-yellow);
  8324. }
  8325. [data-highlightcolor='Green']::selection {
  8326. background: var(--highlighter-green);
  8327. }
  8328. .highlight-Green {
  8329. background: var(--highlighter-green);
  8330. }
  8331. [data-highlightcolor='Blue']::selection {
  8332. background: var(--highlighter-blue);
  8333. }
  8334. .highlight-Blue {
  8335. background: var(--highlighter-blue);
  8336. }
  8337. [data-highlightcolor='Pink']::selection {
  8338. background: var(--highlighter-pink);
  8339. }
  8340. .highlight-Pink {
  8341. background: var(--highlighter-pink);
  8342. }
  8343. [data-highlightcolor='Purple']::selection {
  8344. background: var(--highlighter-purple);
  8345. }
  8346. .highlight-Purple {
  8347. background: var(--highlighter-purple);
  8348. }
  8349. .translationOverview {
  8350. tbody > tr > td {
  8351. padding: 20px 0 0 10px;
  8352. }
  8353. .translationOverview-itemContainer {
  8354. padding: 10px 0 10px 10px;
  8355. }
  8356. .translationOverview-source {
  8357. width: 25%;
  8358. }
  8359. .translationOverview-target {
  8360. width: 35%;
  8361. }
  8362. .translationOverview-initial {
  8363. width: 25%;
  8364. }
  8365. .translationOverview-item {
  8366. width: 100%;
  8367. }
  8368. }
  8369. .overview-navigator {
  8370. display: flex;
  8371. }
  8372. .overview-navigator .pagination {
  8373. margin: 0 0 0 10px;
  8374. @include rtl(margin, 0 10px 0 0);
  8375. }
  8376. .empty-space {
  8377. padding: 50px;
  8378. svg {
  8379. width: 200px;
  8380. height: auto;
  8381. }
  8382. .empty-space-tagline {
  8383. color: var(--text-muted);
  8384. margin-top: 15px;
  8385. font-size: 18px;
  8386. }
  8387. }
  8388. .horizontal-filters-alert {
  8389. margin-bottom: 10px;
  8390. }
  8391. .horizontal-filters {
  8392. margin-bottom: 20px;
  8393. &--with-switch {
  8394. margin-bottom: 10px;
  8395. }
  8396. }
  8397. .horizontal-filter {
  8398. position: relative;
  8399. display: flex;
  8400. background: var(--background-primary-alt);
  8401. padding: 7px;
  8402. border: 1px solid var(--border-alt);
  8403. &:first-child {
  8404. border-radius: 4px 4px 0 0;
  8405. }
  8406. &:last-child {
  8407. border-radius: 0 0 4px 4px;
  8408. }
  8409. &:only-child {
  8410. border-radius: 4px;
  8411. }
  8412. & + .horizontal-filter {
  8413. border-top: none;
  8414. }
  8415. select,
  8416. input {
  8417. border-color: var(--border-alt);
  8418. }
  8419. input[type='text'] {
  8420. width: 100%;
  8421. }
  8422. input[data-item='time'] {
  8423. width: 4.5ch;
  8424. }
  8425. &[data-level] {
  8426. padding-left: 54px;
  8427. @include rtl(padding-left, 7px);
  8428. @include rtl(padding-right, 54px);
  8429. }
  8430. &[data-level='1'] {
  8431. padding-left: 0;
  8432. @include rtl(padding-left, 7px);
  8433. @include rtl(padding-right, 0);
  8434. }
  8435. &[data-level='2'] {
  8436. padding-left: 27px;
  8437. @include rtl(padding-left, 7px);
  8438. @include rtl(padding-right, 27px);
  8439. }
  8440. &[data-level]::before {
  8441. content: '';
  8442. background-color: var(--border-alt);
  8443. width: 54px;
  8444. position: absolute;
  8445. top: 0;
  8446. left: 0;
  8447. bottom: 0;
  8448. @include rtl(right, 0);
  8449. }
  8450. &[data-level='1']::before {
  8451. width: 0;
  8452. }
  8453. &[data-level='2']::before {
  8454. width: 27px;
  8455. }
  8456. .draggable {
  8457. display: flex;
  8458. align-items: center;
  8459. justify-content: center;
  8460. width: 36px;
  8461. height: 39px;
  8462. vertical-align: middle;
  8463. cursor: move;
  8464. }
  8465. .ui-sortable-helper & {
  8466. border-color: transparent;
  8467. border-radius: none;
  8468. background: var(--background-modifier-lighter);
  8469. &[data-level]::before {
  8470. background-color: transparent;
  8471. }
  8472. }
  8473. &.ui-sortable-placeholder {
  8474. visibility: visible !important;
  8475. background: var(--background-primary-alt);
  8476. &[data-level]::before {
  8477. background-color: var(--border-highlight);
  8478. }
  8479. }
  8480. }
  8481. .horizontal-filter-body {
  8482. display: flex;
  8483. flex: 1;
  8484. min-width: 100px;
  8485. @include phone {
  8486. display: block;
  8487. margin-right: 5px;
  8488. }
  8489. > .controls,
  8490. > input {
  8491. @include bidi-style(margin-right, 5px, margin-left, 0);
  8492. @include phone {
  8493. margin: 0 0 5px !important;
  8494. }
  8495. > .controls-label {
  8496. margin-left: 0;
  8497. margin-right: 5px;
  8498. @include rtl(margin-left, 5px);
  8499. @include rtl(margin-right, 0);
  8500. }
  8501. .horizontal-filter-value {
  8502. max-width: 100%;
  8503. }
  8504. }
  8505. > .controls > .controls {
  8506. max-width: 100%;
  8507. + .controls {
  8508. @include bidi-style(margin-left, 5px, margin-right, 0);
  8509. }
  8510. }
  8511. }
  8512. .horizontal-filter-group {
  8513. padding: 10px;
  8514. background: var(--background-secondary);
  8515. border: 1px solid var(--border-alt);
  8516. border-radius: 5px;
  8517. margin: 0 5px;
  8518. > .form-group:last-child {
  8519. margin-bottom: 0;
  8520. }
  8521. }
  8522. .horizontal-filter-value {
  8523. max-width: 60%;
  8524. flex-grow: 1;
  8525. margin-bottom: 0;
  8526. @include phone {
  8527. max-width: 100%;
  8528. }
  8529. // lower the min-width of url input fields (normally 400px) so that it fits in
  8530. input[type='url'] {
  8531. min-width: 200px;
  8532. }
  8533. .dropdown:only-child {
  8534. flex-grow: 1;
  8535. }
  8536. }
  8537. .horizontal-filters-switch {
  8538. display: flex;
  8539. justify-content: end;
  8540. & > label {
  8541. display: flex;
  8542. align-items: center;
  8543. margin-bottom: 0;
  8544. .zammad-switch {
  8545. margin-top: 0;
  8546. margin-left: 10px;
  8547. @include rtl(margin-left, 0);
  8548. @include rtl(margin-right, 10px);
  8549. }
  8550. }
  8551. & + .js-preview h3 {
  8552. margin-top: 0;
  8553. }
  8554. }
  8555. .output-input {
  8556. margin: 0 0 14px;
  8557. output {
  8558. margin: 0;
  8559. border-radius: 3px 3px 0 0;
  8560. border: 1px solid var(--border-highlight);
  8561. border-bottom: none;
  8562. display: block;
  8563. }
  8564. input {
  8565. flex: 1;
  8566. border-top-left-radius: 0;
  8567. border-top-right-radius: 0;
  8568. border-top: none;
  8569. &:focus {
  8570. border-color: var(--border);
  8571. box-shadow: none;
  8572. }
  8573. }
  8574. }
  8575. output {
  8576. border-bottom: 1px solid var(--border-highlight);
  8577. margin: 0 0 19px;
  8578. display: inline-block;
  8579. padding: 10px 12px 8px;
  8580. color: inherit;
  8581. background: var(--background-article-customer);
  8582. &[disabled] {
  8583. border-color: hsl(358, 53%, 56%);
  8584. background: hsl(358, 53%, 76%);
  8585. color: var(--text-inverted);
  8586. }
  8587. p {
  8588. margin: 0;
  8589. }
  8590. }
  8591. .zammad-switch {
  8592. overflow: hidden;
  8593. width: 50px;
  8594. height: 30px;
  8595. border-radius: 15px;
  8596. &.zammad-switch--small {
  8597. width: 40px;
  8598. height: 24px;
  8599. border-radius: 12px;
  8600. }
  8601. &.zammad-switch--tiny {
  8602. width: 30px;
  8603. height: 18px;
  8604. border-radius: 9px;
  8605. }
  8606. &.zammad-switch--dark {
  8607. label {
  8608. background: hsl(234, 10%, 5%);
  8609. }
  8610. label::before {
  8611. background: hsl(233, 10%, 10%);
  8612. }
  8613. label::after {
  8614. background: var(--background-tertiary);
  8615. }
  8616. }
  8617. &.zammad-switch--green input:checked + label {
  8618. background: var(--supergood-color);
  8619. }
  8620. }
  8621. .zammad-switch label {
  8622. margin: 0;
  8623. position: relative;
  8624. width: 100%;
  8625. height: 100%;
  8626. border-radius: inherit;
  8627. outline: none;
  8628. background: var(--background-secondary);
  8629. box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.1) inset;
  8630. transition: background 200ms;
  8631. @extend %clickable;
  8632. &::after {
  8633. content: '';
  8634. position: absolute;
  8635. transition: transform 200ms;
  8636. width: calc(60% - 2px);
  8637. height: calc(100% - 2px);
  8638. border-radius: inherit;
  8639. left: 1px;
  8640. top: 1px;
  8641. box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.05), 0 1px 3px rgba(0, 0, 0, 0.2);
  8642. background: var(--background-secondary);
  8643. @include rtl(transform, translateX(70%));
  8644. }
  8645. }
  8646. .dropdown-menu.dropdown-menu--light .zammad-switch input:not(:checked) + label {
  8647. background: var(--background-primary);
  8648. }
  8649. .zammad-switch input {
  8650. display: none;
  8651. &[disabled] + label {
  8652. cursor: not-allowed;
  8653. opacity: 0.38;
  8654. border-color: var(--border);
  8655. }
  8656. &[disabled] + label::after {
  8657. background: hsl(210, 17%, 97%);
  8658. }
  8659. &:focus + label {
  8660. transition: none;
  8661. background: var(--border-highlight);
  8662. box-shadow: 0 0 0 3px var();
  8663. }
  8664. &:checked + label {
  8665. background: var(--highlight);
  8666. }
  8667. &:checked + label::after {
  8668. transform: translateX(70%);
  8669. @include rtl(transform, none);
  8670. }
  8671. }
  8672. .controls .zammad-switch {
  8673. margin-top: 10px;
  8674. }
  8675. .horizontal-filter-text {
  8676. @include bidi-style(margin-right, 5px, margin-left, 0);
  8677. }
  8678. .filter-controls {
  8679. display: flex;
  8680. margin: 5.5px 0;
  8681. }
  8682. .filter-control {
  8683. display: flex;
  8684. align-items: center;
  8685. justify-content: center;
  8686. width: 30px;
  8687. height: 30px;
  8688. box-shadow: 0 0 0 1px var(--border-alt) inset;
  8689. border-radius: 100%;
  8690. background: var(--background-secondary);
  8691. @extend %clickable;
  8692. &:hover:not(.is-disabled) {
  8693. .icon {
  8694. fill: var(--interactive-primary);
  8695. }
  8696. }
  8697. &.is-disabled {
  8698. cursor: not-allowed;
  8699. opacity: 0.5;
  8700. }
  8701. &:not(:last-child) {
  8702. @include bidi-style(margin-right, 7px, margin-left, 0);
  8703. }
  8704. .icon {
  8705. fill: var(--interactive-muted);
  8706. }
  8707. }
  8708. .filter-preview {
  8709. margin: 20px 0;
  8710. }
  8711. .day-name {
  8712. text-align: center;
  8713. margin-bottom: 0;
  8714. color: inherit;
  8715. white-space: nowrap;
  8716. }
  8717. .form-group.day-time {
  8718. padding: 10px 5px 6px;
  8719. margin: 0;
  8720. label {
  8721. text-align: center;
  8722. }
  8723. .form-control {
  8724. margin-left: auto;
  8725. margin-right: auto;
  8726. margin-bottom: 8px;
  8727. }
  8728. }
  8729. .settings-row {
  8730. margin-bottom: 10px;
  8731. }
  8732. .settings-list {
  8733. border-collapse: separate;
  8734. color: var(--text-normal);
  8735. table-layout: auto;
  8736. margin-bottom: 20px;
  8737. & > caption {
  8738. color: var(--text-normal);
  8739. }
  8740. &.is-invalid {
  8741. border-radius: 3px;
  8742. box-shadow: 0 0 0 2px var(--background-primary), 0 0 0 4px hsl(0, 90%, 70%);
  8743. }
  8744. &.settings-list--fixed {
  8745. table-layout: fixed;
  8746. }
  8747. &.settings-list--stretch {
  8748. width: 100%;
  8749. }
  8750. &:not(:last-child) {
  8751. margin-bottom: 34px;
  8752. }
  8753. .form-group & {
  8754. margin-bottom: 0;
  8755. }
  8756. &.settings-list--toggleRow {
  8757. tr:not(.is-active) td > *:not(.dont-grey-out) {
  8758. opacity: 0.33;
  8759. }
  8760. }
  8761. &.settings-list--toggleColumn {
  8762. td:not(.is-active) * {
  8763. opacity: 0.33;
  8764. }
  8765. }
  8766. &.settings-list--placeholder {
  8767. th {
  8768. text-align: center;
  8769. border-bottom: 1px solid var(--border-alt);
  8770. border-radius: 4px;
  8771. }
  8772. td {
  8773. height: 40px;
  8774. }
  8775. }
  8776. .settings-list--deleted {
  8777. td {
  8778. text-decoration: line-through;
  8779. }
  8780. }
  8781. th,
  8782. td {
  8783. vertical-align: top;
  8784. padding: 10px;
  8785. border: 1px solid var(--border-alt);
  8786. background: var(--background-secondary);
  8787. }
  8788. th {
  8789. font-weight: normal;
  8790. text-transform: uppercase;
  8791. font-size: 12px;
  8792. line-height: 17px;
  8793. letter-spacing: 0.05em;
  8794. background: var(--background-primary-alt);
  8795. border-bottom: none;
  8796. word-break: normal;
  8797. }
  8798. td {
  8799. word-break: break-word;
  8800. > fieldset {
  8801. margin: 0;
  8802. > .form-group {
  8803. margin-left: 0;
  8804. margin-right: 0;
  8805. }
  8806. > .checkbox,
  8807. > .radio {
  8808. margin: 7px 0;
  8809. }
  8810. }
  8811. }
  8812. td.empty-cell {
  8813. border-top: none;
  8814. }
  8815. .settings-list-separator {
  8816. @include bidi-style(border-left-width, 3px, border-right-width, 1px);
  8817. }
  8818. .text-muted {
  8819. text-transform: none;
  8820. font-size: 10px;
  8821. letter-spacing: 0;
  8822. color: var(--text-muted-alt);
  8823. }
  8824. .inline-label {
  8825. color: inherit;
  8826. }
  8827. th:not(:last-child),
  8828. td:not(:last-child) {
  8829. @include bidi-style(border-right-width, 0, border-left-width, 1px);
  8830. }
  8831. .ui-sortable-placeholder {
  8832. visibility: visible !important;
  8833. td {
  8834. background: none;
  8835. border-left-width: 0;
  8836. border-right-width: 0;
  8837. }
  8838. }
  8839. .ui-sortable-helper td {
  8840. border-bottom-width: 1px !important;
  8841. }
  8842. tr:not(:last-child) td,
  8843. & > tbody:not(:last-child) tr td {
  8844. border-bottom-width: 0;
  8845. }
  8846. tr.is-inactive td {
  8847. color: hsl(199, 19%, 80%);
  8848. text-decoration: line-through;
  8849. }
  8850. & > thead > tr > th:first-child {
  8851. @include bidi-style(
  8852. border-top-left-radius,
  8853. 4px,
  8854. border-top-right-radius,
  8855. 0
  8856. );
  8857. }
  8858. & > thead > tr > th:last-child {
  8859. @include bidi-style(
  8860. border-top-right-radius,
  8861. 4px,
  8862. border-top-left-radius,
  8863. 0
  8864. );
  8865. }
  8866. & > tbody:last-child > tr:last-child > td:first-child,
  8867. & > tfoot:last-child > tr:last-child > td:first-child {
  8868. @include bidi-style(
  8869. border-bottom-left-radius,
  8870. 4px,
  8871. border-bottom-right-radius,
  8872. 0
  8873. );
  8874. }
  8875. & > tbody:last-child > tr:last-child > td:last-child,
  8876. & > tfoot:last-child > tr:last-child > td:last-child {
  8877. @include bidi-style(
  8878. border-bottom-right-radius,
  8879. 4px,
  8880. border-bottom-left-radius,
  8881. 0
  8882. );
  8883. }
  8884. p {
  8885. margin: 0;
  8886. }
  8887. .settings-list-action-cell {
  8888. @extend .u-clickable;
  8889. text-align: center;
  8890. color: var(--interactive-muted);
  8891. background: linear-gradient(
  8892. hsla(0, 0%, 100%, 0.02),
  8893. hsla(0, 0%, 100%, 0.02)
  8894. ),
  8895. linear-gradient(
  8896. var(--background-primary-alt),
  8897. var(--background-primary-alt)
  8898. );
  8899. line-height: 1;
  8900. padding-top: 11px;
  8901. padding-bottom: 9px;
  8902. &:hover {
  8903. color: var(--text-normal);
  8904. }
  8905. .icon {
  8906. fill: currentColor;
  8907. vertical-align: top;
  8908. margin-top: -2px;
  8909. }
  8910. }
  8911. .settings-list-controls {
  8912. padding: 0;
  8913. & > div,
  8914. & > a {
  8915. display: flex;
  8916. min-height: 40px;
  8917. }
  8918. .settings-list-control {
  8919. display: flex;
  8920. align-items: center;
  8921. justify-content: center;
  8922. padding: 0 10px;
  8923. @extend %clickable;
  8924. .icon {
  8925. fill: currentColor;
  8926. }
  8927. }
  8928. }
  8929. .settings-list-control-cell {
  8930. padding: 5px;
  8931. .btn--text {
  8932. margin: -5px;
  8933. }
  8934. & ~ .settings-list-row-control {
  8935. padding-bottom: 7px;
  8936. }
  8937. }
  8938. .settings-list-checkbox-cell,
  8939. .settings-list-radio-cell {
  8940. vertical-align: middle;
  8941. padding-left: 8px;
  8942. }
  8943. .settings-list-radio-cell {
  8944. text-align: center;
  8945. }
  8946. }
  8947. .settings-list--roles-permissions {
  8948. margin-left: 18px;
  8949. margin-right: 18px;
  8950. margin-top: 10px;
  8951. th:first-child {
  8952. min-width: 150px;
  8953. }
  8954. }
  8955. .select-boxes {
  8956. display: flex;
  8957. align-items: flex-start;
  8958. }
  8959. .select-box {
  8960. display: flex;
  8961. flex-wrap: wrap;
  8962. margin: 0 14px;
  8963. background: var(--background-secondary);
  8964. color: var(--text-normal);
  8965. @include bidi-style(
  8966. border-right,
  8967. 1px solid var(--border-alt),
  8968. border-left,
  8969. none
  8970. );
  8971. border-bottom: 1px solid var(--border-alt);
  8972. border-radius: 3px 3px 0 0;
  8973. &.select-box--vertical .select-value {
  8974. flex-basis: 100%;
  8975. }
  8976. &.select-box--four .select-value {
  8977. flex-basis: 25%;
  8978. }
  8979. &.select-box--six .select-value {
  8980. flex-basis: calc(100% / 6);
  8981. }
  8982. .select-box-header {
  8983. @extend label;
  8984. margin: 0;
  8985. color: inherit;
  8986. display: flex;
  8987. align-items: center;
  8988. padding: 8px 10px;
  8989. flex-basis: 100%;
  8990. white-space: nowrap;
  8991. background: var(--background-primary-alt);
  8992. @include bidi-style(
  8993. border-left,
  8994. 1px solid var(--border-alt),
  8995. border-right,
  8996. none
  8997. );
  8998. border-top: 1px solid var(--border-alt);
  8999. border-radius: 3px 3px 0 0;
  9000. }
  9001. .select-value {
  9002. display: flex;
  9003. align-items: center;
  9004. justify-content: center;
  9005. min-height: 34px;
  9006. background-clip: content-box;
  9007. box-shadow: 1px 0 var(--border-alt) inset, 0 1px var(--border-alt) inset;
  9008. @extend %clickable;
  9009. &.is-selected {
  9010. background-color: var(--highlight);
  9011. box-shadow: none;
  9012. color: var(--text-inverted);
  9013. }
  9014. }
  9015. &:first-child {
  9016. @include bidi-style(margin-left, 0, margin-left, 14px);
  9017. }
  9018. &:last-child {
  9019. @include bidi-style(margin-right, 0, margin-left, 14px);
  9020. }
  9021. }
  9022. .searchableSelect {
  9023. position: relative;
  9024. .form-control {
  9025. padding-right: 37px;
  9026. @include bidi-style(padding-right, 37px, padding-left, 12px);
  9027. }
  9028. .searchableSelect-main {
  9029. position: relative;
  9030. line-height: 19px;
  9031. &.form-control--small ~ .searchableSelect-autocomplete {
  9032. top: 6px;
  9033. left: 9px;
  9034. }
  9035. }
  9036. .searchableSelect-shadow {
  9037. position: absolute;
  9038. left: -9999px;
  9039. }
  9040. .dropdown-menu {
  9041. margin-top: -3px;
  9042. max-width: 100%;
  9043. }
  9044. &-option-text {
  9045. flex: 1 1 0%;
  9046. text-overflow: ellipsis;
  9047. overflow: hidden;
  9048. white-space: nowrap;
  9049. display: block;
  9050. & + .icon {
  9051. @include bidi-style(margin-left, 10px, margin-right, 0);
  9052. }
  9053. &.is-inactive {
  9054. opacity: 0.73;
  9055. text-decoration: line-through;
  9056. }
  9057. }
  9058. &.dropdown li {
  9059. &:hover:not(.is-active) {
  9060. background: none;
  9061. }
  9062. &.is-hidden {
  9063. display: none;
  9064. }
  9065. &.js-enter {
  9066. padding: 0;
  9067. span.searchableSelect-option-text {
  9068. padding: 11px 15px;
  9069. }
  9070. span.searchableSelect-option-arrow {
  9071. padding: 11px 15px;
  9072. }
  9073. }
  9074. }
  9075. li:not(.is-active):hover + li {
  9076. box-shadow: 0 1px rgba(255, 255, 255, 0.13) inset;
  9077. }
  9078. .searchableSelect-autocomplete {
  9079. position: absolute;
  9080. left: 13px;
  9081. top: 11px;
  9082. right: 37px;
  9083. white-space: nowrap;
  9084. overflow: hidden;
  9085. display: flex;
  9086. pointer-events: none;
  9087. white-space: pre;
  9088. line-height: 19px;
  9089. }
  9090. .searchableSelect-autocomplete-invisible {
  9091. color: transparent;
  9092. }
  9093. .searchableSelect-autocomplete-visible {
  9094. color: hsl(0, 0%, 33%);
  9095. background: hsl(201, 61%, 90%);
  9096. }
  9097. .loading.icon {
  9098. position: absolute;
  9099. right: 11px;
  9100. top: 11px;
  9101. display: none;
  9102. }
  9103. &.is-loading {
  9104. .loading.icon {
  9105. display: block;
  9106. }
  9107. .icon-arrow-down {
  9108. display: none;
  9109. }
  9110. }
  9111. }
  9112. .action {
  9113. background: var(--background-secondary);
  9114. border: 1px solid var(--border);
  9115. box-shadow: var(--elevation-stroke);
  9116. display: flex;
  9117. flex-wrap: wrap;
  9118. padding: 10px;
  9119. margin-bottom: 17px;
  9120. &.is-inactive {
  9121. background: none;
  9122. box-shadow: none;
  9123. position: relative;
  9124. top: 2px;
  9125. border-color: var(--border-alt);
  9126. & > *:not(.action-controls) {
  9127. opacity: 0.33;
  9128. }
  9129. }
  9130. &--placeholder {
  9131. padding: 30px;
  9132. align-items: center;
  9133. justify-content: center;
  9134. color: hsl(206, 9%, 69%);
  9135. box-shadow: none;
  9136. background: none;
  9137. border-style: dashed;
  9138. font-style: italic;
  9139. }
  9140. &-alert {
  9141. width: calc(100% + 20px);
  9142. margin: -10px -10px 10px;
  9143. }
  9144. &-flow {
  9145. display: flex;
  9146. flex-wrap: wrap;
  9147. &.action-flow--noWrap {
  9148. flex-wrap: nowrap;
  9149. }
  9150. &.action-flow--row {
  9151. flex-basis: 100%;
  9152. }
  9153. }
  9154. &-separator {
  9155. width: 1px;
  9156. background: hsl(0, 0%, 97%);
  9157. margin: 0 10px;
  9158. }
  9159. .table {
  9160. margin-left: -9px;
  9161. margin-right: -9px;
  9162. }
  9163. h2 {
  9164. margin-bottom: 0;
  9165. .action-form-status .icon {
  9166. margin-top: 0;
  9167. }
  9168. }
  9169. &-block,
  9170. &-controls,
  9171. &-row {
  9172. padding: 10px;
  9173. h2:first-child,
  9174. h3:first-child {
  9175. margin-top: 0;
  9176. }
  9177. }
  9178. &-block {
  9179. &.action-block--flex {
  9180. flex: 1;
  9181. }
  9182. }
  9183. &-row {
  9184. flex-basis: 100%;
  9185. }
  9186. h3 {
  9187. color: var(--text-muted);
  9188. margin-top: 0;
  9189. + .btn--text {
  9190. position: relative;
  9191. top: -1px;
  9192. }
  9193. }
  9194. &-label {
  9195. background: var(--background-primary-alt);
  9196. border: 1px solid var(--border-alt);
  9197. align-self: flex-start;
  9198. padding: 5px 10px;
  9199. margin: -4px 0 -5px auto;
  9200. @include rtl(margin, -4px auto -5px 0);
  9201. color: var(--text-muted-alt);
  9202. cursor: default;
  9203. }
  9204. &-flow-icon {
  9205. width: 15px;
  9206. height: 24px;
  9207. margin-top: 16px; /* compensate for h3 height */
  9208. margin-left: 20px;
  9209. margin-right: 20px;
  9210. fill: var(--background-modifier-accent-light);
  9211. }
  9212. &-controls {
  9213. display: flex;
  9214. @include bidi-style(margin-left, auto, margin-right, 0);
  9215. align-self: flex-end;
  9216. .btn {
  9217. align-self: center;
  9218. }
  9219. }
  9220. }
  9221. /*
  9222. datepicker resets some css it potentially inherits when its rendered inside a table
  9223. */
  9224. .datepicker {
  9225. background: var(--background-tertiary);
  9226. color: var(--text-inverted);
  9227. padding: 0 14px 11px;
  9228. position: absolute;
  9229. min-width: 0;
  9230. cursor: default;
  9231. &.datepicker-rtl {
  9232. left: auto;
  9233. right: 0;
  9234. }
  9235. .datepicker-switch {
  9236. padding: 12px 0;
  9237. font-weight: bold;
  9238. font-size: 15px;
  9239. text-align: center;
  9240. letter-spacing: 0;
  9241. line-height: 1.5;
  9242. text-transform: none;
  9243. @extend %clickable;
  9244. &:hover {
  9245. background: hsl(240, 10%, 14%);
  9246. }
  9247. }
  9248. th {
  9249. background: none;
  9250. font-weight: 500;
  9251. }
  9252. th,
  9253. td {
  9254. border: none;
  9255. }
  9256. .next,
  9257. .prev {
  9258. padding: 12px 9px 0;
  9259. vertical-align: top;
  9260. text-align: center;
  9261. @extend %clickable;
  9262. .icon {
  9263. margin-top: 4px;
  9264. fill: var(--text-inverted);
  9265. opacity: 1;
  9266. }
  9267. &:hover {
  9268. background: hsl(240, 10%, 14%);
  9269. }
  9270. }
  9271. .dow {
  9272. text-transform: uppercase;
  9273. font-size: 12px;
  9274. padding: 0;
  9275. text-align: center;
  9276. vertical-align: inherit;
  9277. }
  9278. td.cw {
  9279. // background: 1px gap on the right towards the days + 1px border
  9280. background: linear-gradient(
  9281. to right,
  9282. var(--background-modifier-lighter),
  9283. var(--background-modifier-lighter) calc(100% - 2px),
  9284. transparent calc(100% - 2px),
  9285. var(--background-modifier-accent) calc(100% - 1px),
  9286. transparent calc(100% - 1px)
  9287. );
  9288. padding: 0 5px 0 3px !important;
  9289. text-align: center;
  9290. border-radius: 0;
  9291. }
  9292. tbody td {
  9293. width: 27px;
  9294. height: 27px;
  9295. border-radius: 14px;
  9296. padding: 1px 0 0 !important;
  9297. background-color: inherit;
  9298. vertical-align: inherit;
  9299. }
  9300. .month,
  9301. .year {
  9302. float: left;
  9303. width: 23%;
  9304. margin: 1%;
  9305. padding: 5px 0;
  9306. }
  9307. .day,
  9308. .month,
  9309. .year {
  9310. text-align: center;
  9311. &:not(.disabled) {
  9312. @extend %clickable;
  9313. }
  9314. &.disabled,
  9315. &.old,
  9316. &.new {
  9317. color: hsl(0, 0%, 33%);
  9318. }
  9319. &.today {
  9320. background: #777;
  9321. }
  9322. &.focused {
  9323. box-shadow: 0 0 0 1px hsl(207, 82%, 64%) inset;
  9324. }
  9325. &.active {
  9326. color: var(--text-inverted);
  9327. background: hsl(207, 82%, 64%);
  9328. }
  9329. }
  9330. .today,
  9331. .clear {
  9332. text-align: center;
  9333. padding: 2px 0 0;
  9334. @extend %clickable;
  9335. &.hidden {
  9336. display: none;
  9337. }
  9338. }
  9339. .datepicker-footer-buttons {
  9340. display: flex;
  9341. justify-content: space-between;
  9342. gap: 20px;
  9343. align-items: stretch;
  9344. height: 31px;
  9345. margin-top: 15px;
  9346. div {
  9347. flex-grow: 1;
  9348. border: 1px solid #56575e;
  9349. border-radius: 3px;
  9350. display: flex;
  9351. align-items: center;
  9352. justify-content: center;
  9353. }
  9354. }
  9355. }
  9356. #notify {
  9357. position: absolute;
  9358. top: 10px;
  9359. left: 0;
  9360. right: 0;
  9361. @extend .zIndex-9;
  9362. pointer-events: none;
  9363. .noty_bar {
  9364. max-width: 500px;
  9365. text-align: center;
  9366. margin: 0 auto 10px;
  9367. .noty_message {
  9368. pointer-events: auto;
  9369. display: inline-block;
  9370. background: rgba(0, 0, 0, 0.75);
  9371. padding: 10px 15px 8px;
  9372. border-radius: 3px;
  9373. color: var(--text-inverted);
  9374. }
  9375. .icon {
  9376. vertical-align: middle;
  9377. margin-top: -3px;
  9378. @include bidi-style(margin-right, 5px, margin-left, 0);
  9379. }
  9380. a {
  9381. color: inherit;
  9382. text-decoration: none;
  9383. }
  9384. }
  9385. }
  9386. .animated {
  9387. animation-duration: 300ms;
  9388. animation-fill-mode: both;
  9389. }
  9390. .fadeInDown {
  9391. animation-name: fadeInDown;
  9392. }
  9393. @keyframes fadeInDown {
  9394. from {
  9395. opacity: 0;
  9396. transform: translate3d(0, -50%, 0);
  9397. }
  9398. to {
  9399. opacity: 1;
  9400. transform: none;
  9401. }
  9402. }
  9403. .fadeOutDown {
  9404. animation-name: fadeOutDown;
  9405. }
  9406. @keyframes fadeOutDown {
  9407. from {
  9408. opacity: 1;
  9409. }
  9410. to {
  9411. opacity: 0;
  9412. transform: translate3d(0, 50%, 0);
  9413. }
  9414. }
  9415. .loading-placeholder {
  9416. display: flex;
  9417. align-items: center;
  9418. justify-content: center;
  9419. height: 133px;
  9420. .loading-text {
  9421. @include bidi-style(margin-left, 10px, margin-right, 0);
  9422. }
  9423. }
  9424. .chat {
  9425. flex: 1;
  9426. display: flex;
  9427. flex-direction: column;
  9428. padding: 0 14px;
  9429. @include phone {
  9430. padding: 0;
  9431. }
  9432. .page-header {
  9433. margin: 15px 6px 5px;
  9434. @include phone {
  9435. flex-wrap: wrap;
  9436. margin: 0;
  9437. padding: 5px 8px;
  9438. }
  9439. }
  9440. .page-header-title {
  9441. @include phone {
  9442. order: 1;
  9443. }
  9444. }
  9445. .page-header-center {
  9446. @include phone {
  9447. flex-basis: 100%;
  9448. padding: 0;
  9449. order: 3;
  9450. }
  9451. }
  9452. .page-header-meta {
  9453. @include phone {
  9454. order: 2;
  9455. @include bidi-style(margin-left, auto, margin-right, auto);
  9456. padding-top: 4px;
  9457. @include bidi-style(padding-left, 10px, padding-right, 0);
  9458. }
  9459. }
  9460. }
  9461. .chat-workspace {
  9462. display: flex;
  9463. flex-wrap: wrap;
  9464. padding: 0 0 10px;
  9465. margin: 0 -4px;
  9466. flex: 1;
  9467. @include phone {
  9468. margin: 0;
  9469. padding: 0;
  9470. flex-wrap: nowrap;
  9471. overflow: auto;
  9472. -webkit-overflow-scrolling: touch;
  9473. scroll-snap-mode: x mandatory;
  9474. }
  9475. }
  9476. .chat-window {
  9477. flex: 0 1 0;
  9478. overflow: hidden;
  9479. display: flex;
  9480. flex-direction: column;
  9481. transition-duration: 500ms;
  9482. transition-property: transform, flex, padding;
  9483. transform: scale(0);
  9484. @include phone {
  9485. min-width: calc(100vw - #{$mobileNavigationWidth} - 16px);
  9486. scroll-snap-align: center;
  9487. }
  9488. &.is-open {
  9489. flex: 1 0 25%;
  9490. transform: scale(1);
  9491. padding: 10px;
  9492. @include phone {
  9493. padding: 8px;
  9494. }
  9495. }
  9496. &.is-offline {
  9497. .chat-controls {
  9498. opacity: 0.5;
  9499. }
  9500. }
  9501. }
  9502. .chat-header {
  9503. background: var(--background-primary-alt);
  9504. border: 1px solid var(--border-alt);
  9505. border-radius: 3px 3px 0 0;
  9506. height: 43px;
  9507. line-height: 13px;
  9508. flex-shrink: 0;
  9509. display: flex;
  9510. justify-content: space-between;
  9511. align-items: center;
  9512. }
  9513. .chat-name {
  9514. margin: 0 2px;
  9515. overflow: hidden;
  9516. text-overflow: ellipsis;
  9517. white-space: nowrap;
  9518. .status-badge {
  9519. @include bidi-style(margin-left, 2px, margin-right, 0);
  9520. vertical-align: middle;
  9521. height: 100%;
  9522. }
  9523. }
  9524. .chat-status {
  9525. @include bidi-style(margin-left, 10px, margin-right, 0);
  9526. &[data-status='online'] .icon {
  9527. fill: var(--supergood-color);
  9528. }
  9529. &[data-status='offline'] .icon {
  9530. fill: var(--superbad-color);
  9531. }
  9532. .icon-status-modified-inner-circle,
  9533. .icon-status-modified-outer-circle {
  9534. display: none;
  9535. }
  9536. &.is-modified {
  9537. .icon-status {
  9538. display: none;
  9539. }
  9540. .icon-status-modified-inner-circle,
  9541. .icon-status-modified-outer-circle {
  9542. display: block;
  9543. }
  9544. }
  9545. }
  9546. .chat-status-holder {
  9547. position: relative;
  9548. }
  9549. .chat-disconnect,
  9550. .chat-close {
  9551. @extend %clickable;
  9552. padding: 10px;
  9553. .btn {
  9554. min-width: 80px;
  9555. justify-content: center;
  9556. }
  9557. }
  9558. .chat-disconnect.is-hidden,
  9559. .chat-close.is-hidden {
  9560. display: none;
  9561. }
  9562. .chat-scroll-hint {
  9563. background: var(--background-primary);
  9564. display: flex;
  9565. align-items: center;
  9566. border: 1px solid var(--border-alt);
  9567. border-top: none;
  9568. padding: 7px 10px 6px;
  9569. color: var(--text-muted);
  9570. @extend %clickable;
  9571. &.is-hidden {
  9572. display: none;
  9573. }
  9574. .icon {
  9575. fill: hsl(210, 5%, 78%);
  9576. @include bidi-style(margin-right, 8px, margin-left, 0);
  9577. }
  9578. }
  9579. .chat-body-holder {
  9580. flex: 1;
  9581. background: var(--background-secondary);
  9582. font-size: 13px;
  9583. line-height: 18px;
  9584. overflow: auto;
  9585. -webkit-overflow-scrolling: touch;
  9586. border-left: 1px solid var(--border-alt);
  9587. border-right: 1px solid var(--border-alt);
  9588. position: relative;
  9589. }
  9590. .chat-body-holder--standalone {
  9591. border-top: 1px solid var(--border-alt);
  9592. border-bottom: 1px solid var(--border-alt);
  9593. }
  9594. .chat-body {
  9595. padding: 10px;
  9596. display: flex;
  9597. flex-direction: column;
  9598. align-items: flex-start;
  9599. position: absolute;
  9600. width: 100%;
  9601. top: 0;
  9602. left: 0;
  9603. }
  9604. .chat-timestamp,
  9605. .chat-notice-message {
  9606. font-size: 12px;
  9607. color: var(--text-muted);
  9608. margin-bottom: 4px;
  9609. align-self: center;
  9610. word-break: break-word;
  9611. }
  9612. .chat-timestamp-label {
  9613. font-weight: 500;
  9614. }
  9615. .chat-message {
  9616. max-width: 90%;
  9617. background: var(--background-primary);
  9618. padding: 6px 12px;
  9619. border-radius: 16px;
  9620. margin-bottom: 4px;
  9621. }
  9622. .chat-message img {
  9623. @extend %clickable;
  9624. }
  9625. .chat-message--customer.chat-message--new {
  9626. font-weight: bold;
  9627. }
  9628. .chat-message--agent {
  9629. @include bidi-style(margin-left, auto, margin-right, 0);
  9630. background: var(--background-article-customer);
  9631. align-self: flex-end;
  9632. }
  9633. .chat-message--agent + .chat-message--customer,
  9634. .chat-message--customer + .chat-message--agent {
  9635. margin-top: 10px;
  9636. }
  9637. .chat-status-message {
  9638. align-self: center;
  9639. background: var(--background-primary-alt);
  9640. padding: 6px 12px;
  9641. margin: 4px 0 10px;
  9642. border-radius: 3px;
  9643. }
  9644. .chat-loader {
  9645. @include bidi-style(margin-right, -4px, margin-left, 0);
  9646. .icon {
  9647. width: 12px;
  9648. height: 12px;
  9649. fill: var(--border);
  9650. @include bidi-style(margin-left, -4px, margin-right, 0);
  9651. vertical-align: middle;
  9652. animation: ease-in-out load-fade 600ms infinite alternate;
  9653. }
  9654. .icon + .icon {
  9655. animation-delay: 0.13s;
  9656. }
  9657. .icon + .icon + .icon {
  9658. animation-delay: 0.26s;
  9659. }
  9660. }
  9661. @keyframes load-fade {
  9662. 0% {
  9663. opacity: 0.5;
  9664. transform: scale(0.6);
  9665. }
  9666. 67% {
  9667. opacity: 1;
  9668. transform: scale(1);
  9669. }
  9670. }
  9671. .chat-footer {
  9672. border-top: 1px solid var(--border-alt);
  9673. padding: 10px 10px 0;
  9674. display: flex;
  9675. justify-content: center;
  9676. align-self: stretch;
  9677. margin: 0 -10px;
  9678. }
  9679. .chat-controls {
  9680. display: flex;
  9681. align-items: flex-start;
  9682. padding: 10px;
  9683. background: var(--background-primary-alt);
  9684. border: 1px solid var(--border-alt);
  9685. border-radius: 0 0 3px 3px;
  9686. flex-shrink: 0;
  9687. }
  9688. .chat-input {
  9689. @include bidi-style(margin-right, 10px, margin-left, 0);
  9690. flex-grow: 1;
  9691. position: relative;
  9692. .form-control {
  9693. overflow: auto;
  9694. -webkit-overflow-scrolling: touch;
  9695. max-height: 50vh;
  9696. }
  9697. }
  9698. .browser {
  9699. margin: 0 0 20px;
  9700. position: relative;
  9701. &[data-size] {
  9702. padding-bottom: 65%; // 16:10 aspect ratio;
  9703. .browser-ratio {
  9704. width: 100%;
  9705. height: 100%;
  9706. position: absolute;
  9707. left: 0;
  9708. top: 0;
  9709. transition: width 500ms;
  9710. display: flex;
  9711. flex-direction: column;
  9712. }
  9713. .browser-body {
  9714. padding: 0;
  9715. }
  9716. }
  9717. &[data-size='mobile'] .browser-ratio {
  9718. width: 375px;
  9719. }
  9720. &-ratio {
  9721. border: 1px solid var(--border);
  9722. border-radius: 5px;
  9723. }
  9724. }
  9725. @media screen and (min-width: #{1280 + $sidebarWidth + $navigationWidth}) {
  9726. // hide 1:1 button when it gets inrelevant
  9727. [data-size='1:1'] {
  9728. display: none;
  9729. }
  9730. .browser[data-size='mobile'] .browser-ratio {
  9731. width: 500px;
  9732. }
  9733. }
  9734. .browser-body {
  9735. flex: 1;
  9736. position: relative;
  9737. overflow: hidden;
  9738. padding: 20px;
  9739. &-inner {
  9740. position: absolute;
  9741. left: 0;
  9742. top: 0;
  9743. width: 100%;
  9744. height: 100%;
  9745. }
  9746. .browser-website {
  9747. position: relative;
  9748. height: 100%;
  9749. transform-origin: right bottom;
  9750. transition: 500ms;
  9751. overflow: hidden;
  9752. &.is-picking {
  9753. cursor: image_url('/assets/images/eyedropper.gif') 0 15, auto;
  9754. }
  9755. &-background {
  9756. position: absolute;
  9757. top: 0;
  9758. left: 0;
  9759. width: 100%;
  9760. height: 100%;
  9761. object-fit: cover;
  9762. object-position: left top;
  9763. }
  9764. }
  9765. }
  9766. .browser-head {
  9767. display: flex;
  9768. padding: 10px;
  9769. border-bottom: 1px solid var(--border);
  9770. .browser-input {
  9771. position: relative;
  9772. flex: 1;
  9773. @include bidi-style(margin-right, 10px, margin-left, 0);
  9774. input {
  9775. min-width: 0;
  9776. @include bidi-style(padding-right, 40px, padding-left, 12px);
  9777. &.is-loading + .loading.icon {
  9778. display: block;
  9779. }
  9780. }
  9781. .loading.icon {
  9782. position: absolute;
  9783. @include bidi-style(right, 11px, left, auto);
  9784. top: 10px;
  9785. display: none;
  9786. }
  9787. }
  9788. .help-block {
  9789. margin-bottom: -3px;
  9790. }
  9791. }
  9792. .browser-inline-form {
  9793. width: 300px;
  9794. &.no-css {
  9795. all: initial;
  9796. * {
  9797. all: unset;
  9798. }
  9799. input,
  9800. textarea,
  9801. button {
  9802. padding: 2px;
  9803. background: var(--background-secondary);
  9804. border: 1px solid;
  9805. font: 400 11px system-ui;
  9806. }
  9807. button {
  9808. padding: 2px 6px 3px;
  9809. background-color: buttonface;
  9810. border: 2px outset buttonface;
  9811. }
  9812. }
  9813. }
  9814. .chat-demo {
  9815. .zammad-chat {
  9816. position: absolute;
  9817. transform-origin: right bottom;
  9818. transition: 500ms;
  9819. user-select: none;
  9820. will-change: transform;
  9821. &.is-fullscreen {
  9822. right: 0;
  9823. width: 100%;
  9824. height: 100%;
  9825. border-radius: 0 !important;
  9826. .zammad-chat-header {
  9827. border-radius: 0 !important;
  9828. box-shadow: 0 -1px rgba(0, 0, 0, 0.1), 0 -1px rgba(0, 0, 0, 0.1) inset,
  9829. 0 1px 1px rgba(0, 0, 0, 0.13);
  9830. }
  9831. .zammad-chat-controls {
  9832. border-radius: 0 0 5px 5px;
  9833. }
  9834. }
  9835. &.no-transition {
  9836. transition: none;
  9837. }
  9838. .zammad-chat-welcome {
  9839. display: block !important;
  9840. }
  9841. .zammad-chat-header-icon-open {
  9842. display: inline !important;
  9843. }
  9844. .zammad-chat-agent-status,
  9845. .zammad-chat-header-icon-close,
  9846. .zammad-chat-agent {
  9847. display: none !important;
  9848. }
  9849. &.is-open {
  9850. .zammad-chat-agent {
  9851. display: block !important;
  9852. }
  9853. .zammad-chat-header-icon-close,
  9854. .zammad-chat-agent-status {
  9855. display: inline-block !important;
  9856. }
  9857. .zammad-chat-welcome,
  9858. .zammad-chat-header-icon-open {
  9859. display: none !important;
  9860. }
  9861. }
  9862. &.is-fullscreen {
  9863. height: 100%;
  9864. .zammad-chat-controls {
  9865. border-radius: 0 0 5px 5px;
  9866. }
  9867. }
  9868. }
  9869. .zammad-chat-header {
  9870. pointer-events: auto;
  9871. }
  9872. .chat-demo-animationHolder {
  9873. position: absolute;
  9874. bottom: 0;
  9875. left: 0;
  9876. width: 100%;
  9877. height: 100%;
  9878. animation: slide-up 500ms;
  9879. pointer-events: none;
  9880. }
  9881. }
  9882. @keyframes slide-up {
  9883. from {
  9884. transform: translateY(100%);
  9885. }
  9886. }
  9887. .todo {
  9888. position: relative;
  9889. display: block;
  9890. .icon {
  9891. fill: var(--ghost-color);
  9892. vertical-align: middle;
  9893. margin: -2px 3px 0 0;
  9894. }
  9895. &.is-done .icon {
  9896. fill: var(--supergood-color);
  9897. }
  9898. }
  9899. .columnSelect {
  9900. height: 234px;
  9901. display: flex;
  9902. padding: 0;
  9903. line-height: 22px;
  9904. &-shadow {
  9905. display: none;
  9906. }
  9907. &-column--selected {
  9908. flex: 1 1 66%;
  9909. overflow: auto;
  9910. -webkit-overflow-scrolling: touch;
  9911. padding: 7px;
  9912. }
  9913. &-column--sidebar {
  9914. flex-basis: 33%;
  9915. flex-shrink: 1;
  9916. border-left: 1px solid var(--border);
  9917. background: var(--background-modifier-accent);
  9918. display: flex;
  9919. flex-direction: column;
  9920. min-width: 0;
  9921. .columnSelect-option:hover {
  9922. background: var(--background-modifier-hover);
  9923. }
  9924. }
  9925. &-pool {
  9926. flex: 1 1 auto;
  9927. overflow: auto;
  9928. -webkit-overflow-scrolling: touch;
  9929. padding: 7px;
  9930. }
  9931. &-option {
  9932. @extend %clickable;
  9933. padding: 0 5px;
  9934. border-radius: 1px;
  9935. overflow: hidden;
  9936. white-space: nowrap;
  9937. text-overflow: ellipsis;
  9938. &:hover {
  9939. background: var(--background-modifier-hover);
  9940. }
  9941. }
  9942. &-group-label {
  9943. opacity: 0.5;
  9944. .filter-active & {
  9945. display: none;
  9946. }
  9947. ~ .columnSelect-option {
  9948. padding-left: 10px;
  9949. }
  9950. }
  9951. .is-hidden,
  9952. .is-filtered {
  9953. display: none;
  9954. }
  9955. &-search {
  9956. position: relative;
  9957. .icon-magnifier {
  9958. left: 7px;
  9959. top: 5px;
  9960. position: absolute;
  9961. opacity: 0.3;
  9962. }
  9963. &-clear {
  9964. position: absolute;
  9965. right: 0;
  9966. top: 0;
  9967. padding: 6px 7px 4px;
  9968. @extend %clickable;
  9969. line-height: 1;
  9970. .icon {
  9971. opacity: 0.6;
  9972. }
  9973. }
  9974. input {
  9975. width: 100%;
  9976. padding: 2px 30px 1px;
  9977. border: none;
  9978. outline: none;
  9979. border-bottom: 1px solid var(--border);
  9980. background: none;
  9981. }
  9982. }
  9983. }
  9984. .pulsate-animation {
  9985. animation: pulsate 667ms ease-in-out infinite alternate;
  9986. }
  9987. .richtext-content {
  9988. &[contenteditable] {
  9989. &,
  9990. &:hover,
  9991. &:focus {
  9992. background: none;
  9993. }
  9994. }
  9995. h1,
  9996. h2,
  9997. h3,
  9998. h4 {
  9999. &:first-child {
  10000. margin-top: 6px;
  10001. }
  10002. }
  10003. table,
  10004. pre,
  10005. blockquote {
  10006. margin-bottom: 16px;
  10007. }
  10008. & > p,
  10009. & > table,
  10010. & > pre,
  10011. & > blockquote {
  10012. &:first-child {
  10013. margin-top: 6px;
  10014. }
  10015. &:last-child {
  10016. margin-bottom: 6px;
  10017. }
  10018. }
  10019. table {
  10020. table-layout: auto;
  10021. display: block;
  10022. width: 100%;
  10023. overflow: auto;
  10024. -webkit-overflow-scrolling: touch;
  10025. word-break: keep-all;
  10026. col {
  10027. width: auto;
  10028. }
  10029. span,
  10030. p,
  10031. a {
  10032. overflow-wrap: anywhere;
  10033. }
  10034. }
  10035. blockquote {
  10036. padding: 8px 12px;
  10037. border-left: 5px solid var(--background-primary-alt);
  10038. }
  10039. code {
  10040. border: none;
  10041. white-space: pre-wrap;
  10042. }
  10043. pre {
  10044. padding: 12px 15px;
  10045. font-size: 13px;
  10046. line-height: 1.45;
  10047. background: var(--background-modifier-accent-light);
  10048. white-space: pre-wrap;
  10049. border-radius: 3px;
  10050. border: none;
  10051. overflow: auto;
  10052. -webkit-overflow-scrolling: touch;
  10053. }
  10054. hr {
  10055. margin-top: 6px;
  10056. margin-bottom: 6px;
  10057. border: 0;
  10058. border-top: 1px solid var(--background-modifier-border);
  10059. }
  10060. @include dark {
  10061. // remove custom backgrounds and colors
  10062. [style*='background'] {
  10063. background: none !important;
  10064. }
  10065. [style*='color'] {
  10066. color: inherit !important;
  10067. }
  10068. }
  10069. }
  10070. .detail-search-header {
  10071. margin: 20px 0 32px;
  10072. }
  10073. .batch-overlay {
  10074. @extend .fit, .zIndex-1;
  10075. color: var(--text-inverted);
  10076. text-transform: uppercase;
  10077. text-align: center;
  10078. letter-spacing: 0.07em;
  10079. font-size: 0.95em;
  10080. line-height: 1.3;
  10081. display: none;
  10082. will-change: display;
  10083. cursor: grabbing;
  10084. overflow: hidden;
  10085. user-select: none;
  10086. &.is-visible {
  10087. display: block;
  10088. }
  10089. &-backdrop {
  10090. @extend .fit;
  10091. background: hsla(231, 20%, 8%, 0.8);
  10092. opacity: 0;
  10093. will-change: opacity;
  10094. }
  10095. &-circle {
  10096. margin: 35px auto;
  10097. background: hsl(207, 7%, 29%);
  10098. border-radius: 100%;
  10099. border: 4px solid var(--background-secondary);
  10100. width: 140px;
  10101. height: 140px;
  10102. padding: 20px 0;
  10103. display: flex;
  10104. flex-direction: column;
  10105. justify-content: space-around;
  10106. align-items: center;
  10107. position: absolute;
  10108. left: 0;
  10109. right: 0;
  10110. will-change: transform, opacity;
  10111. visibility: hidden;
  10112. &--top {
  10113. top: 0;
  10114. }
  10115. &--bottom {
  10116. bottom: 0;
  10117. }
  10118. .icon {
  10119. fill: currentColor;
  10120. opacity: 1;
  10121. }
  10122. &-label {
  10123. width: 80%;
  10124. margin: 10px 0;
  10125. }
  10126. }
  10127. &-cancel {
  10128. background: hsla(0, 0%, 100%, 0.21);
  10129. background-clip: padding-box;
  10130. border: 2px dashed hsla(0, 0%, 100%, 0.3);
  10131. border-radius: 8px;
  10132. padding: 28px;
  10133. margin: auto 200px;
  10134. position: absolute;
  10135. left: 0;
  10136. right: 0;
  10137. max-height: 100px;
  10138. visibility: hidden;
  10139. will-change: opacity;
  10140. display: flex;
  10141. justify-content: center;
  10142. align-items: center;
  10143. }
  10144. &-box {
  10145. background: hsl(232, 9%, 17%);
  10146. width: 100%;
  10147. position: absolute;
  10148. visibility: hidden;
  10149. will-change: opacity, transition;
  10150. &-inner {
  10151. margin: 37px 25px;
  10152. display: flex;
  10153. flex-wrap: wrap;
  10154. justify-content: center;
  10155. overflow: hidden;
  10156. }
  10157. }
  10158. &-assign {
  10159. padding-bottom: 50px;
  10160. bottom: -50px; // extra space for bounce animation
  10161. .batch-overlay-box-inner {
  10162. max-height: 40vh;
  10163. }
  10164. &-group {
  10165. box-shadow: 0 0 35px hsla(0, 0%, 0%, 0.5);
  10166. .batch-overlay-box-inner {
  10167. margin-top: 42px;
  10168. margin-bottom: 10px;
  10169. }
  10170. &-name {
  10171. position: absolute;
  10172. left: 0;
  10173. right: 0;
  10174. top: 0;
  10175. padding: 11px 13px 8px;
  10176. line-height: 1;
  10177. position: absolute;
  10178. background: hsl(233, 10%, 15%);
  10179. }
  10180. }
  10181. &-entry {
  10182. padding: 13px;
  10183. width: 116px;
  10184. height: 155px;
  10185. &.is-hovered {
  10186. .avatar {
  10187. border-color: var(--highlight);
  10188. transform: scale(1.05);
  10189. }
  10190. }
  10191. .avatar {
  10192. border: 4px solid hsl(231, 5%, 30%);
  10193. margin-bottom: 10px;
  10194. box-sizing: content-box;
  10195. transition: transform 120ms;
  10196. cursor: inherit;
  10197. z-index: 1;
  10198. }
  10199. &-name {
  10200. max-height: 34px;
  10201. overflow: hidden;
  10202. display: -webkit-box;
  10203. -webkit-box-orient: vertical;
  10204. -webkit-line-clamp: 2;
  10205. overflow: hidden;
  10206. word-break: break-word;
  10207. }
  10208. &-detail {
  10209. color: gray;
  10210. }
  10211. }
  10212. }
  10213. &-macro {
  10214. padding-top: 50px;
  10215. top: -50px; // extra space for bounce animation
  10216. .batch-overlay-box-inner {
  10217. max-height: 55vh;
  10218. margin: 24px 12px;
  10219. }
  10220. &-entry {
  10221. margin: 13px;
  10222. border: 4px solid hsl(231, 5%, 30%);
  10223. background: hsl(233, 9%, 24%);
  10224. border-radius: 100%;
  10225. height: 120px;
  10226. width: 120px;
  10227. padding: 13px 13px 10px;
  10228. display: flex;
  10229. align-items: center;
  10230. justify-content: center;
  10231. font-size: 0.9em;
  10232. &.is-hovered {
  10233. border-color: var(--highlight);
  10234. transform: scale(1.05);
  10235. }
  10236. &.small {
  10237. @include small-desktop {
  10238. height: 80px;
  10239. width: 80px;
  10240. padding: 11px 11px 8px;
  10241. }
  10242. }
  10243. }
  10244. }
  10245. }
  10246. .batch-dragger {
  10247. position: absolute;
  10248. left: 0;
  10249. top: 0;
  10250. pointer-events: none;
  10251. width: 250px;
  10252. height: 40px;
  10253. will-change: transform;
  10254. @extend .zIndex-10;
  10255. &-item {
  10256. position: absolute;
  10257. left: 0;
  10258. width: 100%;
  10259. background: var(--background-highlight);
  10260. border-radius: 4px;
  10261. display: flex;
  10262. align-items: center;
  10263. padding: 11px 0 9px 11px;
  10264. box-shadow: 0 0 10px hsla(0, 0%, 0%, 0.28);
  10265. will-change: transform;
  10266. a {
  10267. color: inherit;
  10268. }
  10269. td:not(:first-child) {
  10270. display: block;
  10271. padding: 0 12px;
  10272. white-space: nowrap;
  10273. text-overflow: ellipsis;
  10274. overflow: hidden;
  10275. flex-shrink: 0;
  10276. &:nth-child(3) {
  10277. flex-shrink: 1;
  10278. }
  10279. &:nth-child(n + 4) {
  10280. display: none;
  10281. }
  10282. }
  10283. .checkbox-replacement > .icon,
  10284. .radio-replacement > .icon {
  10285. fill: none;
  10286. }
  10287. }
  10288. &-counter {
  10289. position: absolute;
  10290. right: -8px;
  10291. bottom: -8px;
  10292. width: 25px;
  10293. height: 25px;
  10294. border-radius: 99px;
  10295. z-index: 1;
  10296. color: var(--text-inverted);
  10297. background: var(--highlight);
  10298. display: flex;
  10299. align-items: center;
  10300. justify-content: center;
  10301. box-shadow: 0 0 10px hsla(0, 0%, 0%, 0.28);
  10302. will-change: transform;
  10303. &:empty {
  10304. display: none;
  10305. }
  10306. }
  10307. }
  10308. /*
  10309. -------------
  10310. breadcrumbs
  10311. -------------
  10312. */
  10313. .breadcrumbs {
  10314. display: flex;
  10315. align-items: center;
  10316. min-width: 88px;
  10317. @include phone {
  10318. overflow: hidden;
  10319. }
  10320. &-menu {
  10321. display: flex;
  10322. @include ltr(margin-left, auto);
  10323. @include rtl(margin-right, auto);
  10324. @include bidi-style(padding-left, 20px, padding-right, 0);
  10325. @include phone {
  10326. @include bidi-style(padding-left, 10px, padding-right, 0);
  10327. }
  10328. }
  10329. }
  10330. .breadcrumb {
  10331. position: relative;
  10332. padding-top: 11px;
  10333. padding-bottom: 8px;
  10334. @include ltr(padding-right, 21px);
  10335. @include ltr(padding-left, 13px);
  10336. @include rtl(padding-left, 21px);
  10337. @include rtl(padding-right, 13px);
  10338. color: inherit;
  10339. cursor: pointer;
  10340. @extend .u-textTruncate;
  10341. @include phone {
  10342. flex-shrink: 0;
  10343. }
  10344. &::before,
  10345. &::after {
  10346. content: '';
  10347. position: absolute;
  10348. width: 1px;
  10349. height: 50%;
  10350. background: currentColor;
  10351. opacity: 0.33;
  10352. @include ltr(right, 0);
  10353. @include rtl(left, 0);
  10354. top: 0;
  10355. transform-origin: bottom;
  10356. @include ltr(transform, rotate(-37deg));
  10357. @include rtl(transform, rotate(37deg));
  10358. }
  10359. &::after {
  10360. top: 50%;
  10361. transform-origin: top;
  10362. @include ltr(transform, rotate(37deg));
  10363. @include rtl(transform, rotate(-37deg));
  10364. }
  10365. &:last-child {
  10366. &::before,
  10367. &::after {
  10368. display: none;
  10369. }
  10370. }
  10371. .modified-icon {
  10372. @include bidi-style(margin-right, 3px, margin-left, 0);
  10373. display: inline-block;
  10374. vertical-align: middle;
  10375. line-height: 1;
  10376. margin-top: -3px;
  10377. }
  10378. &-icon {
  10379. fill: currentColor;
  10380. width: 20px;
  10381. height: 20px;
  10382. object-fit: contain;
  10383. }
  10384. .modified-icon-modifier {
  10385. fill: var(--background-primary-alt);
  10386. }
  10387. }
  10388. /*
  10389. ---------------------
  10390. iconfont icon picker
  10391. ---------------------
  10392. */
  10393. .icon_picker {
  10394. .dropdown-menu {
  10395. max-height: 500px;
  10396. width: 420px;
  10397. min-width: 0;
  10398. overflow-y: auto;
  10399. }
  10400. .controls {
  10401. position: relative;
  10402. }
  10403. &-shadow {
  10404. display: none;
  10405. }
  10406. .dropdown-grid {
  10407. &:empty {
  10408. padding: 0;
  10409. & + .dropdown-filter-placeholder {
  10410. display: block;
  10411. }
  10412. }
  10413. li:hover:not(.is-active) {
  10414. background: none;
  10415. }
  10416. .icon {
  10417. width: 40px;
  10418. line-height: 40px;
  10419. text-align: center;
  10420. }
  10421. }
  10422. .dropdown-filter-placeholder {
  10423. display: none;
  10424. padding: 10px;
  10425. text-align: center;
  10426. text-rendering: auto;
  10427. font-feature-settings: 'liga';
  10428. -webkit-font-smoothing: antialiased;
  10429. -moz-osx-font-smoothing: grayscale;
  10430. transition: letter-spacing 200ms;
  10431. cursor: default;
  10432. line-height: 40px;
  10433. &:hover {
  10434. letter-spacing: -2px;
  10435. }
  10436. span {
  10437. display: none;
  10438. &.is-active {
  10439. display: block;
  10440. }
  10441. }
  10442. }
  10443. .dropdown-filter {
  10444. background: none;
  10445. width: 100%;
  10446. background: var(--background-modifier-accent);
  10447. border: none;
  10448. padding: 13px 20px 11px;
  10449. outline: none;
  10450. }
  10451. .dropdown-grid {
  10452. display: flex;
  10453. flex-wrap: wrap;
  10454. padding: 10px;
  10455. margin: 0;
  10456. li {
  10457. list-style: none;
  10458. cursor: pointer;
  10459. user-select: none;
  10460. border-radius: 2px;
  10461. &:hover,
  10462. &.is-active {
  10463. background: var(--highlight);
  10464. }
  10465. }
  10466. }
  10467. }
  10468. /*
  10469. --------------
  10470. color picker
  10471. --------------
  10472. */
  10473. .color {
  10474. .controls {
  10475. position: relative;
  10476. }
  10477. .controls-button {
  10478. align-self: stretch;
  10479. }
  10480. .controls-button-inner {
  10481. padding: 4px;
  10482. }
  10483. .color-field {
  10484. width: 31px;
  10485. height: 100%;
  10486. position: relative;
  10487. // unparsable color
  10488. &[style='']::before {
  10489. content: '';
  10490. position: absolute;
  10491. left: 10%;
  10492. top: 10%;
  10493. width: 80%;
  10494. height: 80%;
  10495. background: var(--background-primary-alt);
  10496. animation: rotateplane 1.2s infinite ease-in-out;
  10497. }
  10498. }
  10499. }
  10500. .colorpicker {
  10501. &.dropdown-menu {
  10502. box-sizing: content-box;
  10503. width: 380px;
  10504. min-width: 0;
  10505. }
  10506. .open > & {
  10507. display: flex;
  10508. }
  10509. &-hue-saturation {
  10510. flex-grow: 1;
  10511. width: 200px;
  10512. height: 150px;
  10513. margin: 14px;
  10514. @include ltr(margin-right, 0);
  10515. @include rtl(margin-left, 0);
  10516. $i: 0;
  10517. $rainbow: ();
  10518. @while $i <= 360 {
  10519. $rainbow: append($rainbow, unquote('hsl(#{$i},100%,50%)'), comma);
  10520. $i: $i + 60;
  10521. }
  10522. background: linear-gradient(to right, $rainbow);
  10523. position: relative;
  10524. overflow: hidden;
  10525. cursor: image_url('/assets/images/colorcircle.gif') 8 8, auto;
  10526. user-select: none;
  10527. }
  10528. &-lightness-plane,
  10529. &-saturation-gradient {
  10530. position: absolute;
  10531. left: 0;
  10532. top: 0;
  10533. height: 100%;
  10534. width: 100%;
  10535. }
  10536. &-circle {
  10537. position: absolute;
  10538. left: 0;
  10539. top: 0;
  10540. border: 1px solid black;
  10541. width: 12px;
  10542. height: 12px;
  10543. margin: -6px 0 0 -6px;
  10544. border-radius: 100%;
  10545. }
  10546. &-lightness {
  10547. height: 150px;
  10548. margin: 14px;
  10549. position: relative;
  10550. user-select: none;
  10551. }
  10552. &-hue-plane {
  10553. height: 100%;
  10554. width: 20px;
  10555. background: red;
  10556. }
  10557. &-hue-gradient {
  10558. height: 100%;
  10559. width: 100%;
  10560. background: linear-gradient(white, transparent, black);
  10561. }
  10562. &-slider {
  10563. position: absolute;
  10564. top: 0;
  10565. left: -7px;
  10566. right: -7px;
  10567. &-arrow {
  10568. position: absolute;
  10569. top: 0;
  10570. margin-top: -4px;
  10571. border: 4px solid transparent;
  10572. border-left: 7px solid hsl(240, 8%, 100%);
  10573. border-right: 7px solid hsl(240, 8%, 100%);
  10574. &--left {
  10575. left: 0;
  10576. border-right: none;
  10577. }
  10578. &--right {
  10579. right: 0;
  10580. border-left: none;
  10581. }
  10582. }
  10583. }
  10584. }
  10585. /*
  10586. ----------------
  10587. iconset picker
  10588. ----------------
  10589. */
  10590. .iconset_picker {
  10591. .controls input {
  10592. display: none;
  10593. }
  10594. }
  10595. .icon-sets {
  10596. margin: 0 -10px;
  10597. }
  10598. .icon-set {
  10599. margin: 10px;
  10600. display: flex;
  10601. border: 1px solid var(--border);
  10602. border-radius: 3px;
  10603. &.is-active {
  10604. border-color: var(--border-highlight);
  10605. box-shadow: 0 0 0 3px var(--shadow-highlight);
  10606. }
  10607. &-preview {
  10608. flex-grow: 1;
  10609. display: flex;
  10610. flex-wrap: wrap;
  10611. align-items: center;
  10612. justify-content: center;
  10613. overflow: hidden;
  10614. cursor: pointer;
  10615. user-select: none;
  10616. height: 250px;
  10617. border-radius: 0 3px 3px 0;
  10618. border-left: 1px solid var(--border);
  10619. background: var(--background-primary);
  10620. color: var(--text-muted);
  10621. position: relative;
  10622. }
  10623. &-meta {
  10624. flex-basis: 197px;
  10625. order: -1;
  10626. display: flex;
  10627. flex-direction: column;
  10628. flex-shrink: 0;
  10629. padding: 10px;
  10630. background: var(--background-secondary);
  10631. border-radius: 3px 0 0 3px;
  10632. }
  10633. &-version {
  10634. color: var(--text-muted);
  10635. }
  10636. &-website {
  10637. margin-top: auto;
  10638. display: block;
  10639. }
  10640. .icon {
  10641. width: 50px;
  10642. line-height: 50px;
  10643. text-align: center;
  10644. font-size: 18px;
  10645. &:not(.loading).do-flash {
  10646. animation: iconset-flash 0.7s ease-out;
  10647. }
  10648. }
  10649. }
  10650. @keyframes iconset-flash {
  10651. from {
  10652. background: var(--background-modifier-hover);
  10653. color: var(--text-normal);
  10654. }
  10655. to {
  10656. background: transparent;
  10657. color: inherit;
  10658. }
  10659. }
  10660. /*
  10661. -----------------------------
  10662. generic flex layout classes
  10663. -----------------------------
  10664. */
  10665. .horizontal,
  10666. .vertical,
  10667. .centered {
  10668. display: flex;
  10669. }
  10670. .horizontal.hide,
  10671. .vertical.hide,
  10672. .centered.hide {
  10673. display: none;
  10674. }
  10675. .horizontal {
  10676. flex-direction: row;
  10677. }
  10678. .horizontal.multiline {
  10679. flex-wrap: wrap;
  10680. }
  10681. .horizontal.reverse {
  10682. flex-direction: row-reverse;
  10683. }
  10684. .vertical {
  10685. flex-direction: column;
  10686. }
  10687. .vertical.reverse {
  10688. flex-direction: column-reverse;
  10689. }
  10690. .vertical.stretch > *,
  10691. .horizontal.stretch > * {
  10692. flex: 1;
  10693. }
  10694. .stretch {
  10695. align-self: stretch;
  10696. }
  10697. .relative {
  10698. position: relative;
  10699. }
  10700. .fit {
  10701. position: absolute;
  10702. top: 0;
  10703. left: 0;
  10704. bottom: 0;
  10705. right: 0;
  10706. }
  10707. body.fit {
  10708. margin: 0;
  10709. }
  10710. .scrollable {
  10711. overflow: auto;
  10712. -webkit-overflow-scrolling: touch;
  10713. }
  10714. .flex {
  10715. flex: 1;
  10716. }
  10717. .margin-bottom-5 {
  10718. margin-bottom: 5px;
  10719. }
  10720. /*
  10721. Firefox minimum content bugfix
  10722. https://github.com/philipwalton/flexbugs#1-minimum-content-sizing-of-flex-items-not-honored
  10723. "By default, flex items won’t shrink below their minimum
  10724. content size (the length of the longest word or fixed-size element).
  10725. To change this, set the min-width or min-height property."
  10726. */
  10727. .flex-shrink-horizontal {
  10728. min-width: 0;
  10729. }
  10730. .flex-full {
  10731. flex: 1 1 100%;
  10732. }
  10733. .flex-auto {
  10734. flex: 1 1 auto;
  10735. }
  10736. .flex-shrink {
  10737. flex: 0 1 auto;
  10738. }
  10739. .flex-no-shrink {
  10740. flex-shrink: 0;
  10741. }
  10742. .flex-none {
  10743. flex: none;
  10744. }
  10745. .flex-1 {
  10746. flex: 1;
  10747. }
  10748. .flex-2 {
  10749. flex: 2;
  10750. }
  10751. .flex-3 {
  10752. flex: 3;
  10753. }
  10754. .justify-start {
  10755. justify-content: flex-start;
  10756. }
  10757. .justified {
  10758. justify-content: center;
  10759. }
  10760. .justify-end {
  10761. justify-content: flex-end;
  10762. }
  10763. .justify-between {
  10764. justify-content: space-between;
  10765. }
  10766. .start {
  10767. align-items: flex-start;
  10768. }
  10769. .center {
  10770. align-items: center;
  10771. }
  10772. .baseline {
  10773. align-items: baseline;
  10774. }
  10775. .centered {
  10776. align-items: center;
  10777. justify-content: center;
  10778. }
  10779. .end {
  10780. align-items: flex-end;
  10781. }
  10782. .self-start {
  10783. align-self: start;
  10784. }
  10785. .self-end {
  10786. align-self: end;
  10787. }
  10788. .span-width {
  10789. flex-basis: 100%;
  10790. }
  10791. .two-columns,
  10792. .three-columns,
  10793. .wrap {
  10794. flex-wrap: wrap;
  10795. }
  10796. .two-columns,
  10797. .three-columns {
  10798. @include phone {
  10799. display: block;
  10800. }
  10801. }
  10802. .two-columns > .column {
  10803. width: 50%;
  10804. @include phone {
  10805. width: auto;
  10806. }
  10807. }
  10808. .three-columns > .column {
  10809. width: 33.33%;
  10810. @include phone {
  10811. width: auto;
  10812. }
  10813. }
  10814. .align-left {
  10815. @include bidi-style(margin-right, auto, margin-left, 0);
  10816. }
  10817. .align-right {
  10818. @include bidi-style(margin-left, auto, margin-right, 0);
  10819. }
  10820. .space-left {
  10821. @include bidi-style(margin-left, 10px, margin-right, 0);
  10822. }
  10823. .space-right {
  10824. @include bidi-style(margin-right, 10px, margin-left, 0);
  10825. }
  10826. .half-space-left {
  10827. @include bidi-style(margin-left, 5px, margin-right, 0);
  10828. }
  10829. .half-space-right {
  10830. @include bidi-style(margin-right, 5px, margin-left, 0);
  10831. }
  10832. .align-center {
  10833. margin-left: auto;
  10834. margin-right: auto;
  10835. }
  10836. .flex-space-after {
  10837. @include bidi-style(margin-right, auto, margin-left, 0);
  10838. }
  10839. .flex-space-before {
  10840. @include bidi-style(margin-left, auto, margin-right, 0);
  10841. }
  10842. .half-spacer {
  10843. width: 5px;
  10844. height: 5px;
  10845. }
  10846. .spacer {
  10847. width: 10px;
  10848. height: 10px;
  10849. }
  10850. .double-spacer {
  10851. width: 20px;
  10852. height: 20px;
  10853. }
  10854. .flex-spacer {
  10855. flex: 1;
  10856. }
  10857. span.is-disabled {
  10858. cursor: not-allowed;
  10859. opacity: 0.5;
  10860. }
  10861. .inline-label + .scheduled-widget {
  10862. margin-left: 18px;
  10863. }
  10864. .scheduled-widget {
  10865. display: flex;
  10866. align-items: center;
  10867. padding: 5px 5px 5px 10px;
  10868. border: 1px solid rgba(0, 0, 0, 0.1);
  10869. border-radius: 4px;
  10870. &[data-state='published'] {
  10871. color: var(--supergood-color);
  10872. border-color: currentColor;
  10873. .btn {
  10874. border-color: currentColor;
  10875. }
  10876. }
  10877. &[data-state='archived'] {
  10878. border-color: var(--ghost-color);
  10879. .btn {
  10880. border-color: var(--ghost-color);
  10881. }
  10882. }
  10883. &[data-state='internal'] {
  10884. color: var(--highlight);
  10885. border-color: currentColor;
  10886. .btn {
  10887. border-color: currentColor;
  10888. }
  10889. }
  10890. .help-text & {
  10891. margin-top: 4px;
  10892. }
  10893. .icon {
  10894. color: inherit;
  10895. fill: currentColor;
  10896. vertical-align: middle;
  10897. }
  10898. &-label {
  10899. margin: 0 10px 0 6px;
  10900. }
  10901. .icon-diagonal-cross {
  10902. width: 10px;
  10903. height: 10px;
  10904. }
  10905. .btn {
  10906. color: inherit;
  10907. }
  10908. }
  10909. .knowledge-base {
  10910. &-navigation {
  10911. display: flex;
  10912. align-items: center;
  10913. color: var(--interactive-muted);
  10914. background: var(--background-primary-alt);
  10915. border-bottom: 1px solid var(--border);
  10916. padding: 7px;
  10917. @include phone {
  10918. flex-shrink: 0;
  10919. overflow: auto;
  10920. -webkit-overflow-scrolling: touch;
  10921. }
  10922. .breadcrumb:not(:first-child) .breadcrumb-icon {
  10923. width: 16px;
  10924. height: 16px;
  10925. }
  10926. }
  10927. &-body {
  10928. position: relative;
  10929. overflow-x: hidden;
  10930. @include phone {
  10931. flex-direction: column-reverse;
  10932. overflow: visible;
  10933. }
  10934. }
  10935. &-sidebar {
  10936. position: absolute;
  10937. @include ltr(right, 0);
  10938. @include rtl(left, 0);
  10939. top: 0;
  10940. width: 280px;
  10941. height: 100%;
  10942. overflow: auto;
  10943. -webkit-overflow-scrolling: touch;
  10944. transition: transform 500ms;
  10945. @include bidi-style(
  10946. border-left,
  10947. 1px solid var(--border),
  10948. border-right,
  10949. none
  10950. );
  10951. @include phone {
  10952. width: auto;
  10953. position: static;
  10954. @include bidi-style(border-left, none, border-right, none);
  10955. border-top: 1px solid var(--border);
  10956. overflow: visible;
  10957. }
  10958. @include desktop {
  10959. width: 28%;
  10960. }
  10961. &.hidden {
  10962. display: block !important;
  10963. visibility: visible !important;
  10964. @include ltr(transform, translateX(100%));
  10965. @include rtl(transform, translateX(-100%));
  10966. @include phone {
  10967. transform: none !important;
  10968. display: none !important;
  10969. }
  10970. + .knowledge-base-main {
  10971. @include ltr(margin-right, 0);
  10972. @include rtl(margin-left, 0);
  10973. }
  10974. }
  10975. h2 {
  10976. font-size: 17px;
  10977. line-height: 1;
  10978. }
  10979. }
  10980. &-main {
  10981. width: 100%;
  10982. @include ltr(transition, margin-right 500ms);
  10983. @include ltr(margin-right, 280px);
  10984. @include rtl(transition, margin-left 500ms);
  10985. @include rtl(margin-left, 280px);
  10986. @include phone {
  10987. margin: 0 0 10px !important;
  10988. }
  10989. @include desktop {
  10990. @include ltr(margin-right, 28%);
  10991. @include rtl(margin-left, 28%);
  10992. }
  10993. }
  10994. form {
  10995. flex-shrink: 0;
  10996. }
  10997. .richtext-content {
  10998. word-break: break-word;
  10999. word-wrap: anywhere;
  11000. }
  11001. .page-header {
  11002. margin: 1px 0 3px;
  11003. flex-shrink: 0;
  11004. }
  11005. }
  11006. .modal-manage-attachments {
  11007. input:focus + label {
  11008. text-decoration: none;
  11009. }
  11010. }
  11011. .modal-knowledge-base-server-snippet {
  11012. label.radio-replacement:first-child {
  11013. padding-left: 0;
  11014. }
  11015. }
  11016. .container {
  11017. max-width: 960px;
  11018. width: 100%;
  11019. margin: 20px auto;
  11020. }
  11021. .sections {
  11022. list-style: none;
  11023. padding: 0;
  11024. margin: 0 -10px;
  11025. &:not(:empty) + &:not(:empty) {
  11026. border-top: 1px solid var(--border);
  11027. margin-top: 20px;
  11028. padding-top: 20px;
  11029. }
  11030. &--grid {
  11031. display: flex;
  11032. flex-wrap: wrap;
  11033. .section {
  11034. a {
  11035. padding-bottom: 72%;
  11036. position: relative;
  11037. line-height: 1.3;
  11038. }
  11039. [data-font] {
  11040. font-size: 60px;
  11041. }
  11042. .modified-icon {
  11043. margin: 10px 0 20px;
  11044. }
  11045. &--subsection {
  11046. display: none;
  11047. }
  11048. &-inner {
  11049. position: absolute;
  11050. padding: 10px;
  11051. left: 0;
  11052. top: 0;
  11053. right: 0;
  11054. bottom: 0;
  11055. align-items: center;
  11056. justify-content: center;
  11057. flex-direction: column;
  11058. text-align: center;
  11059. .title {
  11060. display: -webkit-box;
  11061. overflow: auto;
  11062. -webkit-box-orient: vertical;
  11063. -webkit-line-clamp: 5;
  11064. }
  11065. }
  11066. }
  11067. &[data-size='medium'] {
  11068. .section {
  11069. width: 25%;
  11070. @include phone {
  11071. width: 100%;
  11072. }
  11073. a {
  11074. font-size: 14px;
  11075. }
  11076. [data-font] {
  11077. font-size: 42px;
  11078. }
  11079. .modified-icon-modifier {
  11080. width: 18px;
  11081. height: 18px;
  11082. margin: 0 -6px -2px 0;
  11083. }
  11084. }
  11085. }
  11086. &[data-size='large'] {
  11087. .section {
  11088. width: 33.33%;
  11089. @include phone {
  11090. width: 100%;
  11091. }
  11092. a {
  11093. font-size: 15px;
  11094. }
  11095. .modified-icon-modifier {
  11096. width: 22.5px;
  11097. height: 22.5px;
  11098. margin: 0 -8px -5px 0;
  11099. }
  11100. }
  11101. }
  11102. }
  11103. &--list {
  11104. .section-detail {
  11105. margin-left: 0.2em;
  11106. }
  11107. }
  11108. }
  11109. .section {
  11110. &.kb-item--invisible {
  11111. opacity: 0.5;
  11112. }
  11113. &.kb-item--missing-translation,
  11114. &.kb-item--missing-translation:active,
  11115. &.kb-item--missing-translation:focus {
  11116. color: hsl(45, 98%, 63%);
  11117. }
  11118. a {
  11119. display: block;
  11120. text-decoration: none;
  11121. color: inherit;
  11122. }
  11123. &-title {
  11124. color: #444a4f;
  11125. }
  11126. &-detail {
  11127. color: #b4b7b9;
  11128. }
  11129. }
  11130. .section-inner {
  11131. position: relative;
  11132. display: flex;
  11133. align-items: flex-start;
  11134. padding: 10px 14px;
  11135. margin: 10px;
  11136. background: var(--background-secondary);
  11137. border-radius: 3px;
  11138. border: 1px solid var(--border);
  11139. box-shadow: var(--elevation-low);
  11140. @include phone {
  11141. margin: 5px;
  11142. }
  11143. &:active {
  11144. box-shadow: none;
  11145. }
  11146. &-title {
  11147. font-weight: 500;
  11148. font-size: 15px;
  11149. line-height: 1.15;
  11150. }
  11151. &-date {
  11152. display: inline;
  11153. color: hsl(0, 0%, 75%);
  11154. &::after {
  11155. content: ' — ';
  11156. color: var(--text-normal);
  11157. }
  11158. &:only-child::after {
  11159. content: '';
  11160. }
  11161. }
  11162. &-detail {
  11163. display: block;
  11164. margin-top: 5px;
  11165. }
  11166. &-icon {
  11167. flex-shrink: 0;
  11168. vertical-align: middle;
  11169. &-holder {
  11170. @include ltr(margin-right, 11px);
  11171. @include rtl(margin-left, 11px);
  11172. margin-top: 1px;
  11173. .nav-pills & {
  11174. @include ltr(margin-right, 7px);
  11175. @include rtl(margin-left, 7px);
  11176. }
  11177. }
  11178. &[data-font] {
  11179. font-size: 16px;
  11180. line-height: 1;
  11181. }
  11182. &.icon {
  11183. fill: currentColor;
  11184. width: 16px;
  11185. height: 16px;
  11186. object-fit: contain;
  11187. object-position: center top;
  11188. }
  11189. }
  11190. em {
  11191. font-style: normal;
  11192. background: hsla(205, 90%, 60%, 0.75);
  11193. }
  11194. }
  11195. .knowledge-base-article {
  11196. &-header {
  11197. text-align: center;
  11198. }
  11199. &-meta {
  11200. display: block;
  11201. text-align: center;
  11202. > * {
  11203. &:first-child {
  11204. text-transform: capitalize;
  11205. }
  11206. &::after {
  11207. content: ' · ';
  11208. }
  11209. &:last-child::after {
  11210. display: none;
  11211. }
  11212. }
  11213. }
  11214. &-body {
  11215. margin-top: 20px;
  11216. background: var(--background-secondary);
  11217. border-radius: 2px;
  11218. padding: 50px 50px 10px;
  11219. border: 1px solid var(--border);
  11220. @include phone {
  11221. padding: 15px 15px 5px;
  11222. }
  11223. }
  11224. &-content {
  11225. margin-bottom: 40px;
  11226. @include phone {
  11227. margin-bottom: 10px;
  11228. }
  11229. }
  11230. &-attachments,
  11231. &-tags,
  11232. &-linked-tickets {
  11233. margin: 0 -30px;
  11234. @include phone {
  11235. margin: 0 -5px;
  11236. }
  11237. }
  11238. .tasks {
  11239. @include bidi-style(margin-left, 7px, margin-right, 0);
  11240. }
  11241. &-tags--container {
  11242. padding: 6px 5px 11px;
  11243. display: flex;
  11244. flex-wrap: wrap;
  11245. .tag {
  11246. margin: 2px;
  11247. display: inline-block;
  11248. background: #0f94d6;
  11249. color: var(--text-inverted);
  11250. border-radius: 999px;
  11251. padding: 2px 12px 1px;
  11252. &:hover {
  11253. background: hsl(200deg, 87%, 34%);
  11254. }
  11255. }
  11256. }
  11257. &-nav {
  11258. display: flex;
  11259. &-link {
  11260. padding: 15px;
  11261. max-width: 50%;
  11262. display: flex;
  11263. align-items: center;
  11264. .knowledge-base-article > & {
  11265. margin-top: -10px;
  11266. }
  11267. .spacer {
  11268. width: 5px;
  11269. }
  11270. .icon {
  11271. flex-shrink: 0;
  11272. fill: currentColor;
  11273. opacity: 1;
  11274. vertical-align: top;
  11275. }
  11276. &--next {
  11277. @include bidi-style(margin-left, auto, margin-right, inherit);
  11278. }
  11279. &-title {
  11280. @extend .u-textTruncate;
  11281. }
  11282. }
  11283. }
  11284. }
  11285. .miller-columns {
  11286. display: flex;
  11287. font-size: 12px;
  11288. border: 1px solid var(--border);
  11289. border-radius: 3px;
  11290. .column {
  11291. list-style: none;
  11292. padding: 0;
  11293. margin: 0;
  11294. flex: 1 1 33%;
  11295. height: 300px;
  11296. overflow: auto;
  11297. -webkit-overflow-scrolling: touch;
  11298. border-right: 1px solid var(--border);
  11299. &:last-child {
  11300. border-right-width: 0;
  11301. }
  11302. &-item {
  11303. display: flex;
  11304. align-items: center;
  11305. padding: 5px 10px;
  11306. cursor: default;
  11307. &:hover {
  11308. background: var(--background-modifier-accent-light);
  11309. }
  11310. &.is-selected {
  11311. background: var(--background-secondary-hover);
  11312. }
  11313. &--has-children {
  11314. @extend %clickable;
  11315. cursor: pointer;
  11316. }
  11317. span {
  11318. @extend .u-textTruncate;
  11319. margin-right: 10px;
  11320. }
  11321. > .icon:first-child,
  11322. [data-font] {
  11323. fill: currentColor;
  11324. margin-right: 8px;
  11325. vertical-align: middle;
  11326. flex-shrink: 0;
  11327. }
  11328. .icon-arrow-right {
  11329. margin-left: auto;
  11330. flex-shrink: 0;
  11331. }
  11332. .btn {
  11333. margin-left: auto;
  11334. }
  11335. }
  11336. }
  11337. }
  11338. .highlight-emulator {
  11339. background-color: highlight;
  11340. }
  11341. .videoWrapper {
  11342. position: relative;
  11343. padding-bottom: 56.25%; /* 16:9 */
  11344. padding-top: 25px;
  11345. height: 0;
  11346. }
  11347. .videoWrapper iframe {
  11348. position: absolute;
  11349. top: 0;
  11350. left: 0;
  11351. width: 100%;
  11352. height: 100%;
  11353. }
  11354. .btn-manage-public-menu-edit {
  11355. margin-top: 0;
  11356. }
  11357. .kb-menu-settings-entry {
  11358. margin-bottom: 12px;
  11359. }
  11360. .text-modules-box {
  11361. max-height: 40vh;
  11362. }
  11363. .sla_times {
  11364. .sla_radio_container {
  11365. padding-top: 0.5em;
  11366. padding-left: 0.5em;
  11367. }
  11368. }
  11369. .calendar-preview {
  11370. .calendar-events {
  11371. margin-top: 12px;
  11372. p {
  11373. margin: 0;
  11374. }
  11375. h2 {
  11376. margin-bottom: 24px;
  11377. }
  11378. h4 {
  11379. margin-bottom: 4px;
  11380. }
  11381. section.description {
  11382. margin: 24px 0 0;
  11383. padding: 4px;
  11384. }
  11385. .event-row {
  11386. display: flex;
  11387. div {
  11388. width: 50%;
  11389. margin-bottom: 4px;
  11390. }
  11391. }
  11392. }
  11393. div.divider {
  11394. margin-top: 18px;
  11395. margin-bottom: 6px;
  11396. border-top: 1px solid #dfdfdf;
  11397. &:last-of-type {
  11398. display: none;
  11399. }
  11400. }
  11401. }
  11402. .reporting {
  11403. .legend > div {
  11404. background: var(--background-secondary) !important;
  11405. }
  11406. .legendColorBox {
  11407. padding-right: 4px;
  11408. }
  11409. }